/
dimono39
/
education-analytics
Обзор
Документация
Войти
/
dimono39
/
education-analytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
css/style2.css
1 184 строки
22 KB
dimono39
обновил
08 дек 2025, 15:28
08 дек 2025, 15:28
3a6615e
Код
Авторство
О чём код?
/* Основные стили для системы анализа образовательных результатов */ /* ==================== ОСНОВНЫЕ СТИЛИ ==================== */ * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 20px; } .container { max-width: 1600px; margin: 0 auto; background: white; border-radius: 15px; box-shadow: 0 20px 40px rgba(0,0,0,0.1); overflow: hidden; } /* ==================== ЗАГОЛОВОК ==================== */ .header { background: linear-gradient(135deg, #2c3e50, #3498db); color: white; padding: 30px; text-align: center; } .header h1 { font-size: 2.2em; margin-bottom: 10px; font-weight: 300; } /* ==================== ВКЛАДКИ ==================== */ .tabs { background: #34495e; padding: 0; display: flex; flex-wrap: wrap; } .tab-btn { background: none; color: white; border: none; padding: 15px 20px; cursor: pointer; transition: all 0.3s; font-size: 13px; flex: 1; min-width: 140px; } .tab-btn:hover { background: rgba(255,255,255,0.1); } .tab-btn.active { background: #3498db; box-shadow: inset 0 -3px 0 #2980b9; } .tab-content { display: none; padding: 25px; min-height: 600px; } .tab-content.active { display: block; } /* ==================== ФОРМЫ ==================== */ .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; font-weight: 600; color: #2c3e50; font-size: 14px; } input, select, textarea { width: 100%; padding: 10px; border: 2px solid #bdc3c7; border-radius: 6px; font-size: 14px; transition: border-color 0.3s; } input:focus, select:focus, textarea:focus { border-color: #3498db; outline: none; } /* ==================== КНОПКИ ==================== */ .btn { background: #3498db; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-size: 14px; transition: all 0.3s; margin: 3px; } .btn:hover { background: #2980b9; transform: translateY(-1px); } .btn-success { background: #27ae60; } .btn-success:hover { background: #219a52; } .btn-warning { background: #f39c12; } .btn-warning:hover { background: #e67e22; } .btn-danger { background: #e74c3c; } .btn-danger:hover { background: #c0392b; } .btn-print { background: #9b59b6; } .btn-print:hover { background: #8e44ad; } .btn-sm { padding: 5px 10px !important; font-size: 12px !important; } /* ==================== KPI КАРТОЧКИ ==================== */ .kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; margin: 15px 0; } .kpi-card { background: white; padding: 15px; border-radius: 8px; text-align: center; box-shadow: 0 3px 10px rgba(0,0,0,0.1); border-left: 4px solid #3498db; } .kpi-card.success { border-left-color: #27ae60 !important; } .kpi-card.warning { border-left-color: #f39c12 !important; } .kpi-card.danger { border-left-color: #e74c3c !important; } .kpi-card.success .kpi-value { color: #27ae60; } .kpi-card.warning .kpi-value { color: #f39c12; } .kpi-card.danger .kpi-value { color: #e74c3c; } .kpi-value { font-size: 1.6em; font-weight: bold; color: #2c3e50; margin: 8px 0; } .kpi-label { color: #7f8c8d; font-size: 0.85em; } /* ==================== ТАБЛИЦЫ ==================== */ .table-container { overflow-x: auto; margin: 15px 0; font-size: 13px; } table { width: 100%; border-collapse: collapse; background: white; font-size: 13px; } th, td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #ecf0f1; } th { background: #34495e; color: white; font-weight: 600; cursor: pointer; font-size: 12px; } th:hover { background: #2c3e50; } tr:nth-child(even) { background: #f8f9fa; } tr:hover { background: #e8f4fc; } /* ==================== ГРАФИКИ ==================== */ .chart-container { background: white; padding: 15px; margin: 15px 0; border-radius: 8px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); position: relative; } .chart-legend { display: flex; justify-content: center; gap: 20px; margin-top: 15px; flex-wrap: wrap; } .legend-item { display: flex; align-items: center; gap: 5px; font-size: 12px; } .legend-color { width: 15px; height: 15px; border-radius: 3px; } /* ==================== КРИТЕРИИ ==================== */ .criteria-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 12px 0; } .criteria-item { background: #f8f9fa; padding: 12px; border-radius: 6px; border-left: 4px solid #3498db; } .task-item { background: #f8f9fa; padding: 12px; margin: 8px 0; border-radius: 6px; border-left: 4px solid #27ae60; } .student-item { background: #f8f9fa; padding: 12px; margin: 8px 0; border-radius: 6px; border-left: 4px solid #e74c3c; } /* ==================== ЭКСПОРТ ==================== */ .export-buttons { display: flex; gap: 8px; flex-wrap: wrap; margin: 15px 0; } /* ==================== ОЦЕНКИ ==================== */ .grade-5 { background-color: #d4edda !important; } .grade-4 { background-color: #fff3cd !important; } .grade-3 { background-color: #ffeaa7 !important; } .grade-2 { background-color: #f8d7da !important; } .level-1 { border-left-color: #27ae60 !important; } .level-2 { border-left-color: #3498db !important; } .level-3 { border-left-color: #f39c12 !important; } .level-4 { border-left-color: #e74c3c !important; } .zone-green { background-color: #d4edda !important; } .zone-yellow { background-color: #fff3cd !important; } .zone-red { background-color: #f8d7da !important; } /* ==================== ТЕПЛОВАЯ КАРТА ==================== */ .heatmap-cell { text-align: center; font-weight: bold; font-size: 11px; padding: 5px !important; } .heatmap-100 { background-color: #27ae60; color: white; } .heatmap-80 { background-color: #87d37c; } .heatmap-60 { background-color: #fff3cd; } .heatmap-40 { background-color: #f9e79f; } .heatmap-20 { background-color: #f5b7b1; } .heatmap-0 { background-color: #e74c3c; color: white; } /* ==================== ОШИБКИ ==================== */ .error-type { display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 11px; margin: 2px; color: white; cursor: pointer; transition: opacity 0.2s; } .error-type:hover { opacity: 0.8; transform: translateY(-1px); } .error-factual { background: #e74c3c; } .error-conceptual { background: #9b59b6; } .error-application { background: #3498db; } .error-calculation { background: #f39c12; } .error-logical { background: #d35400; } .error-attention { background: #16a085; } .error-technical { background: #7f8c8d; } /* ==================== РЕКОМЕНДАЦИИ ==================== */ .recommendation-card { background: #e8f4fc; padding: 12px; margin: 8px 0; border-radius: 6px; border-left: 4px solid #3498db; } .recommendation-critical { background: #f8d7da; border-left-color: #e74c3c; } .recommendation-warning { background: #fff3cd; border-left-color: #f39c12; } .recommendation-info { background: #d1ecf1; border-left-color: #3498db; } /* ==================== УПРАВЛЕНИЕ ОШИБКАМИ ==================== */ .error-management-panel { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border-radius: 10px; padding: 15px; margin-bottom: 20px; border-left: 4px solid #3498db; } /* ==================== ЗАГОЛОВКИ РАЗДЕЛОВ ==================== */ .section-title { color: #2c3e50; margin: 20px 0 15px 0; padding-bottom: 8px; border-bottom: 2px solid #3498db; font-size: 1.3em; } .sub-section { margin-left: 20px; margin-bottom: 15px; } /* ==================== ПЕЧАТЬ ==================== */ .print-controls { background: #f8f9fa; padding: 15px; border-radius: 8px; margin: 15px 0; border-left: 4px solid #3498db; } .print-only { display: none; } .no-print { /* Элементы, скрываемые при печати */ } @media print { body { background: white !important; padding: 0 !important; margin: 0 !important; font-size: 12pt; } .container { max-width: 100% !important; box-shadow: none !important; border-radius: 0 !important; margin: 0 !important; } .tabs, .tab-btn, .btn, .search-box, input, select, textarea, .no-print, .print-controls, .export-buttons { display: none !important; } .tab-content { display: block !important; padding: 10mm !important; min-height: auto !important; page-break-after: always; } .tab-content:last-child { page-break-after: auto; } .header { background: #2c3e50 !important; padding: 10mm !important; margin-bottom: 5mm !important; color: white !important; } .chart-container { page-break-inside: avoid; break-inside: avoid; margin: 5mm 0 !important; padding: 3mm !important; } .kpi-grid { grid-template-columns: repeat(4, 1fr) !important; gap: 3mm !important; margin: 3mm 0 !important; } .kpi-card { padding: 3mm !important; margin: 2mm 0 !important; border-left: 2px solid #3498db !important; } table { font-size: 10pt !important; margin: 2mm 0 !important; } th, td { padding: 1mm 2mm !important; border: 0.5pt solid #ddd !important; } .print-only { display: block !important; } /* Обеспечиваем правильный размер для А4 */ @page { size: A4; margin: 15mm; } body, .container { width: 210mm; height: 297mm; } } /* ==================== БЭЙДЖИ ==================== */ .work-type-badge { display: inline-block; padding: 4px 8px; border-radius: 12px; font-size: 11px; margin: 2px; background: #3498db; color: white; } /* ==================== СТАТИСТИКА ==================== */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0; } .stat-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0 5px 15px rgba(0,0,0,0.2); } .stat-value { font-size: 2em; font-weight: bold; margin: 10px 0; } .stat-label { font-size: 0.9em; opacity: 0.9; } /* ==================== УВЕДОМЛЕНИЯ И МОДАЛЬНЫЕ ОКНА ==================== */ .notification { position: fixed; top: 20px; right: 20px; padding: 15px 20px; border-radius: 8px; color: white; z-index: 1000; box-shadow: 0 5px 15px rgba(0,0,0,0.2); transform: translateX(400px); transition: transform 0.3s ease; } .notification.show { transform: translateX(0); } .notification.success { background: #27ae60; } .notification.error { background: #e74c3c; } .notification.warning { background: #f39c12; } .notification.info { background: #3498db; } .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: none; justify-content: center; align-items: center; z-index: 2000; } .modal-overlay.show { display: flex; } .modal-content { background: white; padding: 30px; border-radius: 10px; max-width: 90%; max-height: 90%; overflow-y: auto; box-shadow: 0 20px 40px rgba(0,0,0,0.3); } /* ==================== СРАВНИТЕЛЬНЫЙ АНАЛИЗ ==================== */ .comparative-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; margin: 20px 0; } .comparative-card { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); text-align: center; } .comparative-value { font-size: 2em; font-weight: bold; margin: 10px 0; } .comparative-value.positive { color: #27ae60; } .comparative-value.negative { color: #e74c3c; } .comparative-previous { color: #7f8c8d; font-size: 0.9em; } .comparative-diff { font-weight: bold; margin-top: 5px; } .comparative-diff.positive { color: #27ae60; } .comparative-diff.negative { color: #e74c3c; } .trend { font-size: 0.8em; margin-left: 5px; } /* ==================== ПОИСК И ФИЛЬТРЫ ==================== */ .search-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0; padding: 20px; background: #f8f9fa; border-radius: 8px; } .search-box { width: 100%; padding: 10px; margin: 8px 0; border: 2px solid #3498db; border-radius: 20px; font-size: 14px; } /* ==================== БЭКАПЫ ==================== */ .backup-item { padding: 12px; border: 1px solid #ddd; margin: 8px 0; border-radius: 6px; cursor: pointer; transition: all 0.3s; } .backup-item:hover { background: #e8f4fc; border-color: #3498db; } /* ==================== УМНЫЕ РЕКОМЕНДАЦИИ ==================== */ .smart-recommendation { padding: 15px; margin: 10px 0; border-radius: 8px; border-left: 4px solid; } .recommendation-critical { background: #f8d7da; border-left-color: #e74c3c; } .recommendation-warning { background: #fff3cd; border-left-color: #f39c12; } .recommendation-info { background: #d1ecf1; border-left-color: #3498db; } /* ==================== АДАПТИВНОСТЬ ==================== */ @media (max-width: 768px) { .tabs { flex-direction: column; } .tab-btn { min-width: 100%; font-size: 12px; padding: 12px 15px; } .kpi-grid { grid-template-columns: 1fr; } .container { margin: 10px; border-radius: 10px; } .export-buttons { flex-direction: column; } .btn { width: 100%; margin: 2px 0; } .chart-row { grid-template-columns: 1fr !important; } .comparative-grid { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: 1fr; } } @media (max-width: 480px) { .header { padding: 20px 15px; } .header h1 { font-size: 1.8em; } .tab-content { padding: 15px; } .chart-container { padding: 10px; } } /* Стили модальных окон */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7); display: flex; justify-content: center; align-items: center; z-index: 2000; padding: 20px; animation: fadeIn 0.3s ease; } .modal-content { background: white; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); max-width: 90%; max-height: 90%; overflow-y: auto; animation: slideUp 0.3s ease; width: 800px; } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 30px; border-bottom: 1px solid #e0e0e0; background: linear-gradient(135deg, #2c3e50, #34495e); color: white; border-radius: 12px 12px 0 0; } .modal-header h3 { margin: 0; font-size: 1.4em; } .modal-close { background: none; border: none; font-size: 28px; color: white; cursor: pointer; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background 0.3s; } .modal-close:hover { background: rgba(255, 255, 255, 0.2); } .modal-body { padding: 25px 30px; } .modal-footer { padding: 20px 30px; border-top: 1px solid #e0e0e0; display: flex; justify-content: flex-end; gap: 10px; background: #f8f9fa; border-radius: 0 0 12px 12px; } /* Метод табы */ .method-tabs { display: flex; gap: 5px; margin-bottom: 20px; border-bottom: 2px solid #e0e0e0; padding-bottom: 5px; } .method-tab { padding: 10px 20px; background: none; border: none; border-radius: 6px 6px 0 0; cursor: pointer; font-size: 14px; transition: all 0.3s; color: #666; } .method-tab.active { background: #3498db; color: white; font-weight: 600; } .method-tab:hover:not(.active) { background: #f0f0f0; } .import-method { display: none; } .import-method.active { display: block; animation: fadeIn 0.3s; } /* Стили для импорта */ .import-textarea { width: 100%; padding: 12px; border: 2px solid #bdc3c7; border-radius: 8px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 14px; resize: vertical; min-height: 150px; } .import-textarea:focus { border-color: #3498db; outline: none; } .file-upload { margin: 15px 0; } .file-upload-label { display: inline-block; padding: 12px 24px; background: #3498db; color: white; border-radius: 8px; cursor: pointer; transition: background 0.3s; font-weight: 600; } .file-upload-label:hover { background: #2980b9; } .file-name { margin-top: 10px; color: #666; font-size: 14px; } /* Предпросмотр */ .preview-box { background: #f8f9fa; border: 1px solid #e0e0e0; border-radius: 8px; padding: 15px; margin: 15px 0; max-height: 200px; overflow-y: auto; font-size: 13px; } .scrollable-list { max-height: 200px; overflow-y: auto; border: 1px solid #e0e0e0; border-radius: 6px; padding: 10px; } /* Критерии */ .criteria-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; margin: 15px 0; } .criteria-item { background: #f8f9fa; padding: 15px; border-radius: 8px; border-left: 4px solid #3498db; } .criteria-inputs { display: flex; align-items: center; gap: 10px; margin-top: 8px; } .criteria-input { width: 60px; padding: 8px; border: 2px solid #bdc3c7; border-radius: 6px; text-align: center; } /* Пресеты */ .presets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 15px; margin: 20px 0; } .preset-btn { background: white; border: 2px solid #e0e0e0; border-radius: 10px; padding: 20px 10px; cursor: pointer; transition: all 0.3s; text-align: center; } .preset-btn:hover { border-color: #3498db; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(52, 152, 219, 0.2); } .preset-icon { font-size: 24px; margin-bottom: 10px; } .preset-name { font-weight: 600; color: #2c3e50; } /* Экспорт */ .export-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 15px; margin: 20px 0; } .export-option { background: white; border: 2px solid #e0e0e0; border-radius: 10px; padding: 20px; cursor: pointer; transition: all 0.3s; text-align: center; } .export-option:hover { border-color: #3498db; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(52, 152, 219, 0.2); } .export-icon { font-size: 32px; margin-bottom: 10px; } .export-name { font-weight: 600; color: #2c3e50; margin-bottom: 5px; } .export-desc { font-size: 12px; color: #7f8c8d; line-height: 1.4; } /* Управление ошибками */ .management-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 20px 0; } .management-card { background: #f8f9fa; padding: 20px; border-radius: 10px; border: 1px solid #e0e0e0; } .stats-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; margin: 20px 0; } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 15px; margin-top: 15px; } .stat-item { text-align: center; } .stat-value { font-size: 2em; font-weight: bold; margin-bottom: 5px; } .stat-label { font-size: 12px; opacity: 0.9; } /* Психологический отчет */ .psychology-report .report-section { margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #e0e0e0; } .psychology-report .report-section:last-child { border-bottom: none; } .report-meta { display: flex; gap: 20px; margin-top: 10px; font-size: 14px; } .meta-item { background: #f8f9fa; padding: 8px 15px; border-radius: 6px; } .conclusion-textarea { width: 100%; padding: 15px; border: 2px solid #bdc3c7; border-radius: 8px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 14px; resize: vertical; min-height: 120px; } .conclusion-tools { display: flex; gap: 10px; margin-top: 10px; } /* Анимации */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* Адаптивность */ @media (max-width: 768px) { .modal-content { width: 95%; max-height: 95%; } .management-grid { grid-template-columns: 1fr; } .export-grid { grid-template-columns: 1fr 1fr; } .presets-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 480px) { .modal-header { padding: 15px; } .modal-body { padding: 15px; } .export-grid { grid-template-columns: 1fr; } .presets-grid { grid-template-columns: 1fr; } }