/* ==============================================
   Глобальные стили и переменные
   ============================================== */
:root {
    /* Цветовая палитра */
    --primary: #4a89dc;
    --primary-light: rgba(74, 137, 220, 0.25);
    --secondary: #3bafda;
    --success: #8cc152;
    --danger: #e9573f;
    --warning: #f6bb42;
    --light: #f5f7fa;
    --dark: #434a54;
    --gray: #677779;
    --border: #ddd;
    --text-muted: #6c757d;
    --primary-rgb: 74, 137, 220;
    --danger-rgb: 233, 87, 63;
    --warning-rgb: 246, 187, 66;
    --success-rgb: 140, 193, 82;
    
    /* Тени */
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
    
    /* Отступы */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
}

/* Базовые стили */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; }
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; background-color: #d1e0e0; color: #333; }
.container { width: 95%; max-width: 1400px; margin: 0 auto; padding: 0 var(--space-md); }

/* Кнопки */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md); border-radius: 4px; border: none; cursor: pointer;
    font-weight: 500; transition: all 0.2s; color: white; text-decoration: none;
}
.btn--primary, .btn--view { background: var(--primary); }
.btn--primary:hover { background: #3a7bc8; }
.btn--secondary { background-color: var(--gray); }
.btn--secondary:hover { background-color: #5a6268; }
.btn-danger { background-color: #dc3545; color: white; border: none; }
.btn-danger:hover { background-color: #c82333; }
.btn-view { background-color: var(--primary); color: white; padding: var(--space-xs) var(--space-sm); }
.btn-edit { background-color: var(--secondary); color: white; }
.btn-back { background-color: var(--gray); color: white; }
.btn-back:hover { background-color: #5a6268; }
.btn-add { background-color: var(--success); color: white; }
.btn-add:hover { background-color: #7bb342; }
.btn-download { background-color: var(--success); color: white; padding: var(--space-xs) var(--space-sm); border: none; border-radius: 4px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; }
.btn-download:hover { background-color: #28a745; text-decoration: none; }
.btn.disabled, .btn:disabled { background-color: var(--gray-light); color: var(--gray-dark); cursor: not-allowed; opacity: 0.65; pointer-events: none; }
.btn-view.disabled { background-color: var(--gray-light); color: var(--gray-dark); }
.actions, .action-buttons { display: flex; gap: var(--space-xs); }
.btn--lg { padding: var(--space-md) var(--space-lg); font-size: 1.1rem; height: 50px; }
.btn-sm { padding: var(--space-xs) var(--space-sm); font-size: 0.875rem; border-radius: 4px; }
.btn i.fas { font-size: 0.9em; }

/* Дополнительные утилитные классы */
.highlight { color: var(--primary); font-weight: 600; }
.note { color: var(--text-muted); font-size: 0.85rem; margin-top: var(--space-xs); }
.text-center { text-align: center; }
.py-4 { padding-top: var(--space-md); padding-bottom: var(--space-md); }

/* ==============================================
   Компоненты: Header
   ============================================== */
/* Основные компоненты */
.main-header { background-color: #2c3e50; color: white; padding: var(--space-md) 0; box-shadow: var(--shadow-md); }
.header-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-md); }
.logo { font-size: 1.5rem; display: flex; align-items: center; gap: var(--space-sm); }
.user-info, .username { display: flex; align-items: center; gap: var(--space-md); }
.user-badge { padding: var(--space-xs) var(--space-sm); border-radius: 20px; font-size: 0.8rem; background: rgba(255,255,255,0.15); }
.user-badge.admin { background: var(--warning); color: #333; }
.user-badge--secondary { background-color: #6c757d; color: white; }

/* Навигация */
.main-nav, .nav-buttons { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; }
.nav-buttons { gap: var(--space-sm); justify-content: flex-start; }

/* Кнопки */
.nav-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md); height: 42px; min-width: 110px; border-radius: 6px;
    text-decoration: none; font-weight: 500; transition: all 0.2s; color: white; border: 1px solid transparent;
}
.nav-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.15); }

/* Модификаторы кнопок */
.nav-btn--main { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.2); }
.nav-btn--main:hover { background: rgba(255,255,255,0.25); }
.nav-btn--patients { background: var(--success); border-color: rgba(0,0,0,0.05); }
.nav-btn--patients:hover { background: #7bb342; }
.nav-btn--admin { background: var(--warning); color: #333; border-color: rgba(0,0,0,0.05); }
.nav-btn--admin:hover { background: #e0ac39; }
.nav-btn--backups { background: #17a2b8; border-color: rgba(0,0,0,0.05); }
.nav-btn--backups:hover { background: #138496; }
.nav-btn--import { background: #6f42c1; border-color: rgba(0,0,0,0.05); }
.nav-btn--import:hover { background: #5e35b1; }
.nav-btn--logout { background: var(--danger); border-color: rgba(0,0,0,0.05); margin-left: auto;}
.nav-btn--logout:hover { background: #d62c1a; }
.nav-btn--optimize { background: #6c757d; border-color: rgba(0,0,0,0.05); }
.nav-btn--optimize:hover { background: #5a6268; }

/* ==============================================
   Компоненты: Footer
   ============================================== */
.main-footer { margin-top: var(--space-xl); padding: var(--space-lg) 0; text-align: center; color: var(--gray); border-top: 1px solid var(--border); }
.developer-info { margin-top: var(--space-md); font-size: 0.9rem; }
.developer-links { display: flex; justify-content: center; gap: var(--space-md); margin-top: var(--space-sm); }
.developer-links a { color: var(--primary); text-decoration: none; display: flex; align-items: center; gap: var(--space-xs); }
.developer-links a:hover { text-decoration: underline; }

/* ==============================================
   Компоненты: Login Page
   ============================================== */

.login-container { display: flex; justify-content: center; align-items: center; min-height: calc(100vh - 200px); padding: var(--space-xl) 0; }
.login-card { width: 100%; max-width: 450px; margin: 0 auto; }
.login-card h2 { margin-bottom: var(--space-lg); text-align: center; }

.form-group { margin-bottom: var(--space-md); }
.form-group label { display: block; margin-bottom: var(--space-xs); color: var(--dark); font-weight: 500; }

.form-control { width: 100%; padding: var(--space-sm); border: 1px solid var(--border); border-radius: 4px; font-size: 1rem; transition: border-color 0.2s; }
.form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
.form-actions { margin-top: var(--space-lg); text-align: center; }

.alert { padding: var(--space-sm); margin-bottom: var(--space-md); border-radius: 4px; font-size: 0.9rem; }
.alert-danger { background-color: rgba(233, 87, 63, 0.15); border: 1px solid rgba(233, 87, 63, 0.3); color: var(--danger); }
.alert-info { background-color: rgba(59, 175, 218, 0.15); border: 1px solid rgba(59, 175, 218, 0.3); color: var(--secondary); }

/* ==============================================
   Компоненты: Dashboard (index.php)
   ============================================== */
/* Dashboard */
.dashboard{padding:1.5rem;background:#f8f9fa}.card{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1);padding:1.5rem;margin-bottom:1.5rem}.card h2{margin:0 0 1rem 0;display:flex;align-items:center;gap:0.5rem;color:#212529}.card--centered{text-align:center}.card--muted{font-size:0.9rem;color:#6c757d}

/* Stats */
.stats-row{display:flex;gap:1rem;margin-bottom:1.5rem}.stat-item{flex:1;text-align:center;padding:1.5rem;background:#f8f9fa;border-radius:6px}.stat-value{font-size:1.8rem;font-weight:700;color:#4e73df}.stat-label{font-size:0.9rem;color:#6c757d}

/* Consultations */
.consultations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.consultation-card{background:#fff;border-radius:8px;padding:1.5rem;transition:all 0.3s;border-left:4px solid #4e73df;box-shadow:0 1px 3px rgba(0,0,0,0.1)}.consultation-card:hover{transform:translateY(-3px);box-shadow:0 4px 6px rgba(0,0,0,0.1)}.consultation-date{font-weight:600;color:#4e73df;margin-bottom:0.75rem}.consultation-patient{font-weight:600;font-size:1.1rem;margin-bottom:0.75rem}.consultation-meta{display:flex;align-items:center;gap:0.5rem;font-size:0.9rem;color:#6c757d}.detail-row{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem}.detail-row i{color:#4e73df;width:20px;text-align:center}.consultation-actions{display:flex;gap:0.5rem;margin-top:1rem}

/* Badges */
.badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:0.8em;font-weight:500}.badge--gender--m{background:#d4e6ff;color:#1976d2}.badge--gender--f{background:#ffd4e5;color:#c2185b}.badge--first-visit{background:#e3f2fd;color:#1565c0}.badge--visit-type,.badge--followup-visit{background:#e8f5e9}.badge--visit-type{color:#388e3c}.badge--followup-visit{color:#2e7d32}

/* Admin Dashboard */
.admin-dashboard{margin-top:1.5rem}.admin-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.chart-container{position:relative;height:300px}.table-responsive{overflow-x:auto}.styled-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden;box-shadow:0 0 10px rgba(0,0,0,0.05)}.styled-table thead tr{background-color:#4e73df;color:#fff}.styled-table th,.styled-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #e0e0e0}.styled-table th{font-weight:600;text-transform:uppercase;font-size:0.8em;letter-spacing:0.5px}.styled-table tbody tr:nth-child(even){background-color:#f8f9fa}.styled-table tbody tr:hover{background-color:#f1f3f9}.styled-table .text-right{text-align:right}

/* Charts */
.chart-green-bars .chartjs-bar{background-color:#4CAF50!important}

/* Diagnoses Grid */
.diagnoses-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.diagnoses-column{overflow-x:auto}

/* Клиники header align */
.styled-table th.text-right{text-align:right}

/* Backup */
.backup-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.backup-item{display:flex;flex-direction:column}

/* Chart.js adjustments */
.chartjs-legend{display:none!important}
/* ==============================================
   Компоненты: Patients List
   ============================================== */

.page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-lg); flex-wrap: wrap; gap: var(--space-md); }

.search-box { margin-bottom: var(--space-lg); }
.search-form { display: flex; flex-direction: column; gap: var(--space-sm); }
.search-input { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.search-input input { flex: 1; min-width: 250px; padding: var(--space-sm); border: 1px solid var(--border); border-radius: 4px; font-size: 1rem; }
.search-hints small { color: var(--text-muted); font-size: 0.85rem; }

.patients-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.patients-table th, .patients-table td { padding: var(--space-sm) var(--space-md); text-align: left; border-bottom: 1px solid var(--border); }
.patients-table th { background-color: var(--light); font-weight: 600; color: var(--dark); }
.patients-table tr:hover td { background-color: rgba(74, 137, 220, 0.05); }
.patient-link { color: var(--primary); text-decoration: none; font-weight: 500; }
.patient-link:hover { text-decoration: underline; }
.page-item.disabled .page-link { color: var(--text-muted); }
.page-item.active .page-link { font-weight: bold; }

.sortable { cursor: pointer; position: relative; padding-right: 1.5rem !important; transition: background-color 0.2s; }
.sortable:hover { background-color: #e9ecef; }
.sortable::after { content: ''; position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; opacity: 0.5; }
.sortable.asc::after { border-bottom: 5px solid var(--dark); }
.sortable.desc::after { border-top: 5px solid var(--dark); }

.pagination-container { margin-top: var(--space-lg); padding-top: var(--space-md); border-top: 1px solid var(--border); }
.pagination { display: flex; justify-content: center; gap: var(--space-xs); flex-wrap: wrap; list-style: none; padding: 0; }
.page-link { padding: var(--space-xs) var(--space-sm); border-radius: 4px; color: var(--primary); border: 1px solid var(--border); transition: all 0.2s; text-decoration: none; font-size: 0.85rem; min-width: 32px; text-align: center; display: block; }
.page-item.active .page-link { background-color: var(--primary); color: white; border-color: var(--primary); }
.page-link:hover { background-color: var(--light); }
.page-item.disabled .page-link { color: var(--text-muted); pointer-events: none; background-color: var(--light); border-color: var(--border); }

.gender-m { color: #1976d2; }
.gender-f { color: #c2185b; }

.mb-0 { margin-bottom: 0 !important; }
.ml-2 { margin-left: var(--space-sm); }

/* ==============================================
   Компоненты: Patient View
   ============================================== */
.patient-view { padding: var(--space-lg); }
.patient-actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; padding: var(--space-xs); }

.detail-row { display: flex; margin-bottom: var(--space-sm); }
.detail-label { font-weight: 600; min-width: 150px; color: var(--gray); }
.detail-value { flex: 1; }

.consultation-item { border-left: 4px solid var(--primary); padding: var(--space-md); margin-bottom: var(--space-md); background: #f0f2f5; border-radius: 4px; }
.consultation-header { display: flex; justify-content: space-between; margin-bottom: var(--space-sm); font-weight: 600; }
.consultation-scores { display: flex; gap: var(--space-md); background-color: #f8f9fa; padding: var(--space-sm) var(--space-md); border-radius: 6px; }
.consultation-scores span { font-weight: 600; }
.consultation-scores div { display: flex; align-items: center; gap: var(--space-xs); }

.cgi-dashboard { display: grid; grid-template-columns: 1fr 2fr; gap: var(--space-lg); margin: var(--space-lg) 0; }
.cgi-section { background: white; padding: var(--space-md); border-radius: 8px; box-shadow: var(--shadow-sm); }
.severity-scale { height: 30px; background: var(--light); border-radius: 15px; position: relative; }
.severity-bar { height: 100%; position: relative; }
.severity-value { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); color: white; font-weight: 600; }

.chart-container { background: white; padding: var(--space-md); border-radius: 8px; margin-top: var(--space-md); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); }

/* Список диагнозов */

.diagnoses-list ul { list-style: none; padding: 0; margin: 0; }
.diagnoses-list li { padding: var(--space-sm); margin-bottom: var(--space-xs); background-color: #f8fafc; border-left: 3px solid var(--primary); border-radius: 4px; display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.diagnoses-list li::before { content: "•"; color: var(--primary); font-weight: bold; margin-right: var(--space-xs); }

/* ==============================================
   Компоненты: Patient Form
   ============================================== */
.card-header { padding: var(--space-md); border-bottom: 1px solid var(--border); }
.card-header h2 { margin: 0; display: flex; align-items: center; gap: var(--space-sm); }

.form-section { margin-bottom: var(--space-lg); }
.section-title { margin-bottom: var(--space-md); display: flex; align-items: center; gap: var(--space-sm); }

.form-label { display: block; margin-bottom: var(--space-xs); font-weight: 600; color: var(--dark); }
.form-check { display: inline-block; margin-right: var(--space-md); }
.form-check-label { display: flex; align-items: center; gap: var(--space-xl); margin-left: 8px;}

.large-textarea { min-height: 200px; resize: vertical; }
.form-actions { margin-top: var(--space-xl); display: flex; gap: var(--space-sm); }

.invalid-feedback { color: var(--danger); font-size: 0.85rem; margin-top: var(--space-xs); }
.is-invalid { border-color: var(--danger); }

.gender-select { display: flex; gap: var(--space-md); margin-top: var(--space-xs); }
.form-check-inline { display: inline-flex; align-items: center; margin-right: var(--space-md); }

.needs-validation .was-validated .form-control:invalid, .needs-validation .form-control.is-invalid { border-color: var(--danger); }
.needs-validation .was-validated .form-control:valid, .needs-validation .form-control.is-valid { border-color: var(--success); }

.consultation-item {
    background: white;
    border-radius: 8px;
    padding: var(--space-lg);
    margin-bottom: var(--space-md);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border-left: 4px solid var(--primary);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}
.consultation-item:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1); }

/* ==============================================
   Компоненты: Consultation View (оптимизировано)
   ============================================== */

.consultation-view { padding: var(--space-lg); }
.consultation-header, .consultation-actions { display: flex; gap: var(--space-md); flex-wrap: wrap; align-items: center; }
.consultation-header { margin-bottom: var(--space-lg); }
.consultation-section { margin-bottom: var(--space-lg); padding: var(--space-md); border-left: 4px solid var(--primary); }
.consultation-section h3 { margin-top: 0; display: flex; align-items: center; gap: var(--space-sm); }
.detail-row { display: flex; margin-bottom: var(--space-sm); }
.detail-label { min-width: 150px; font-weight: 600; color: var(--gray); }
.detail-value { flex: 1; }
.cgi-container { display: flex; gap: 20px; flex-wrap: wrap; }
.cgi-box { flex: 1; min-width: 200px; padding: 12px; margin-bottom: 15px; border-radius: 6px; background-color: #f8f9fa; }
.severity-rating { border-left: 4px solid var(--danger); }
.improvement-rating { border-left: 4px solid var(--success); }
.cgi-title { display: flex; align-items: center; margin-bottom: 8px; }
.cgi-title i { margin-right: 8px; font-size: 1.1em; }
.cgi-value { padding-left: 28px; }
.cgi-score { display: inline-block; width: 20px; text-align: center; font-weight: bold; }
.diagnosis-section { border-left-color: var(--primary); }
.cgi-notes-section { border-left-color: var(--gray); }
.documents-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.document-item { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm); border-radius: 4px; background-color: var(--light); }
.document-icon { font-size: 1.5rem; color: var(--gray); }
.document-info { flex: 1; }
.document-name { font-weight: 600; }
.document-meta { display: flex; gap: var(--space-md); font-size: 0.85rem; color: var(--text-muted); }
.document-actions { display: flex; gap: var(--space-sm); }
.severity-rating { border-left-color: var(--danger); }
.improvement-rating { border-left-color: var(--success); }

.diagnosis-list { list-style: none; padding: 0; margin: 0; }
.diagnosis-item { padding: 10px; margin-bottom: 10px; border-left: 3px solid #ddd; background-color: #f9f9f9; }
.diagnosis-item.primary-diagnosis { border-left-color: #007bff; background-color: #f0f7ff; }
.diagnosis-code { font-weight: bold; color: #007bff; margin-right: 10px; }
.diagnosis-description { color: #666; font-style: italic; }
.diagnosis-text { margin-top: 5px; }

/* Модальное окно печати (компактная версия) */
.btn-print { background-color: #727f66; color: white; }
#printModal .modal-body { padding: var(--space-md); }
#printForm .form-group { display: grid; gap: var(--space-sm); }
#printForm .form-check { display: flex; align-items: center; gap: var(--space-sm); }
#printForm .form-check-input { margin: 0; }
#printModal .modal-footer { border-top: 1px solid var(--border); }

/* ==============================================
   Компоненты: Consultation Form (оптимизировано)
   ============================================== */
.consultation-form-container { padding: var(--space-lg); }

.patient-info { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    flex-wrap: wrap; 
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--border);
}
.patient-info h3 { margin: 0; display: flex; align-items: center; gap: var(--space-sm); }
.patient-meta { font-size: 0.9em; color: var(--text-muted); font-weight: normal; }

/* Стили для drag-and-drop загрузки */
.file-uploader { margin-bottom: var(--space-lg); }
.dropzone-area { border: 2px dashed var(--border); border-radius: 8px; padding: var(--space-lg); text-align: center; transition: all 0.3s; background-color: #f9f9f9; }
.dropzone-area.dragover { border-color: var(--primary); background-color: rgba(var(--primary-rgb), 0.1); }
.dropzone-area:hover, .dropzone-area.dragover { border-color: var(--primary); background-color: rgba(var(--primary-rgb), 0.05); }
.dropzone-inner { max-width: 400px; margin: 0 auto; }
.dropzone-inner i { font-size: 2.5rem; color: var(--primary); margin-bottom: var(--space-sm); }
.dropzone-inner h4 { margin: var(--space-sm) 0; color: var(--dark); }
.file-input-wrapper { margin: var(--space-md) 0; }
.file-input { display: none; }
.file-requirements { margin-top: var(--space-sm); color: var(--text-muted); font-size: 0.85em; }

.file-preview { border: 1px solid var(--border); border-radius: 5px; padding: var(--space-md);  background: white; display: none; margin-top: var(--space-md); }
.file-preview-header { display: flex; justify-content: space-between; margin-bottom: var(--space-sm); font-weight: 500; }
.file-list { max-height: 200px; overflow-y: auto; }
.file-item { display: flex; align-items: center; padding: var(--space-xs) 0; border-bottom: 1px solid var(--light); }
.file-item:last-child { border-bottom: none; }
.file-icon { margin-right: var(--space-sm); color: var(--gray); }
.file-name { flex-grow: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-size { margin-left: var(--space-sm); color: var(--text-muted); font-size: 0.85em; }
.file-remove { margin-left: var(--space-sm); color: var(--danger); cursor: pointer; }

/* Существующие документы */
.existing-documents { margin-top: var(--space-lg); }
.existing-documents h4 { margin-bottom: var(--space-md); }
.document-item { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) 0; border-bottom: 1px solid var(--light); }
.document-item:last-child { border-bottom: none; }
.document-checkbox { display: flex; align-items: center; gap: var(--space-xs); }
.document-icon { font-size: 1.25rem; color: var(--gray); }

.file-upload-btn { background: #3a7bc8; display: inline-flex; align-items: center; justify-content: center; position: relative; }
.file-upload-btn:hover { background: #3a7bc8; transform: translateY(-1px); font-size: 1.1em; margin-right: 8px; }
.file-upload-btn:active { transform: translateY(0); box-shadow: none; }
.file-upload-btn i { font-size: 1.1em; margin-right: 8px; transition: transform 0.2s; }
.file-upload-btn:hover i { transform: scale(1.1); }
.mr-1 { margin-right: 0.25rem; }

.visit--type { @extend .badge--visit-type; }

/* Стили для Select2 */
.select2-container .select2-selection--single { height: 38px; border-radius: 4px; border: 1px solid #ced4da; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 36px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }


/* ==============================================
   Компоненты: Users & Backups Management
   ============================================== */

/* Users & Backups Management */
.users-management, .backups-management { padding: var(--space-lg); }
.users-management > .card, .backups-management > .card { margin-bottom: var(--space-lg); }

/* Tables */
.users-table, .backups-table {
  width: 100%; border-collapse: collapse; font-size: 0.95rem;
  th, td { padding: var(--space-md); text-align: left; border-bottom: 1px solid var(--border); vertical-align: middle; }
  th { background-color: var(--light); border-bottom-width: 2px; }
  tr:last-child td { border-bottom: none; }
}

/* Badges */
.badge-admin { background: var(--danger); color: white; }
.badge-doctor { background: var(--primary); color: white; }
.badge-assistant { background: var(--gray); color: white; }
.badge-old { background: var(--warning); color: #333; }
.text-monospace { font-family: monospace, monospace; }

/* Forms & Cards */
.user-form .form-group { margin-bottom: var(--space-md); }
.checkbox-label { display: flex; align-items: center; gap: var(--space-xs); margin-bottom: var(--space-xs); cursor: pointer; }

.backup-info-card, .info-card { margin-top: var(--space-lg); }
.backup-info-card ul, .info-card ul { padding-left: var(--space-md); margin-bottom: 0; }
.backup-info-card li, .info-card li { margin-bottom: var(--space-xs); }
.backup-info-card li:last-child, .info-card li:last-child { margin-bottom: 0; }
.backup-info-card code, .info-card code { background-color: var(--light); font-family: monospace, monospace; display: inline-block; padding: 2px 6px; border-radius: 4px; font-size: 0.8em; }

/* ==============================================
   Импорт данных (компактная версия)
   ============================================== */
.import-management { padding: var(--space-lg); background: var(--light); border-radius: 8px; box-shadow: var(--shadow-sm); }

.instruction-card, .stats-card { @extend .card; margin-bottom: var(--space-xl); }
.instruction-header, .stats-header, .block-header { display: flex; align-items: center; gap: var(--space-md); margin-bottom: var(--space-md); }
.instruction-header i, .stats-header i { font-size: 1.5rem; color: var(--primary); }
.instruction-header h4, .stats-header h4 { margin: 0; color: var(--dark); }

.instruction-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-md); }
.instruction-block { @extend .card; padding: var(--space-md); border-left: 4px solid var(--primary); transition: all 0.2s; }
.instruction-block:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.instruction-block.important { border-left-color: var(--warning); }
.instruction-block.critical { border-left-color: var(--danger); }

.requirement-item, .feature-item { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) 0; border-bottom: 1px solid var(--border); }
.requirement-item:last-child, .feature-item:last-child { border-bottom: none; }

.icon-badge, .feature-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }
.icon-badge.folder, .feature-icon.date { background: rgba(var(--warning-rgb), 0.1); color: var(--warning); }
.icon-badge.file, .feature-icon.patient { background: rgba(var(--primary-rgb), 0.1); color: var(--primary); }
.icon-badge.encoding { background: rgba(var(--success-rgb), 0.1); color: var(--success); }
.feature-icon.gender { background: rgba(155, 89, 182, 0.1); color: #8e44ad; }
.feature-icon.error { background: rgba(var(--danger-rgb), 0.1); color: var(--danger); }

.field-pills { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-bottom: var(--space-sm); }
.pill { background: var(--danger); color: white; padding: var(--space-xs) var(--space-sm); border-radius: 20px; font-size: 0.85rem; font-weight: 500; }

.field-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--space-sm); }
.field-item { font-size: 0.9rem; padding: var(--space-xs) 0; display: flex; align-items: center; gap: var(--space-sm); }

.stats-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-md); margin-bottom: var(--space-lg); }
.stat-card { text-align: center; padding: var(--space-lg); border-radius: 8px; color: white; transition: transform 0.2s; }
.stat-card:hover { transform: translateY(-3px); }
.stat-card h3 { font-size: 2rem; margin: 0 0 var(--space-xs) 0; font-weight: 600; }
.stat-card.success { background: var(--success); }
.stat-card.skipped { background: var(--warning); color: var(--dark); }
.stat-card.error { background: var(--danger); }

.file-results { margin-top: var(--space-md); }
.file-result-item { padding: var(--space-md); margin-bottom: var(--space-sm); border-radius: 6px; display: flex; justify-content: space-between; align-items: center; transition: transform 0.2s; background: var(--light); border-left: 4px solid var(--border); }
.file-result-item:hover { transform: translateX(5px); }
.file-result-item.success { background: rgba(var(--success-rgb), 0.1); color: var(--success); border-left-color: var(--success); }
.file-result-item.skipped { background: rgba(var(--warning-rgb), 0.1); color: var(--warning); border-left-color: var(--warning); }
.file-result-item.error { background: rgba(var(--danger-rgb), 0.1); color: var(--danger); border-left-color: var(--danger); }
.file-name { font-weight: 600; flex: 1; display: flex; align-items: center; gap: var(--space-sm); }
.file-message { flex: 2; font-size: 0.95rem; }

.import-btn-container { text-align: center; margin: var(--space-xl) 0; }

/* ==============================================
   Компоненты: Database Optimization
   ============================================== */
.optimization-container{padding:20px;background-color:#f8f9fa;border-radius:8px}
.optimization-header{display:flex;align-items:center;gap:15px;margin-bottom:25px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}
.optimization-header h2{margin:0;font-size:1.8rem;color:#2c3e50}
.optimization-header i{font-size:2rem;color:#3498db}
.optimization-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-bottom:30px}
.optimization-card{background:white;border-radius:10px;padding:20px;box-shadow:0 2px 15px rgba(0,0,0,0.08);transition:all 0.3s; position: relative; min-height: 300px}
.optimization-card:hover{transform:translateY(-3px);box-shadow:0 5px 15px rgba(0,0,0,0.1)}
.action-header{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.action-header i{font-size:1.5rem;color:#3498db}
.action-header h3{margin:0;font-size:1.2rem}
.action-description{color:#6c757d;margin-bottom:15px;font-size:0.95rem}
.action-form{margin-top:15px; text-align:right;position:absolute;bottom:20px;right:30px}
.btn-optimize{padding:10px;font-weight:500;align}
.btn-optimize.btn-primary { background: var(--primary); }
.btn-optimize.btn-warning { background: var(--warning); color: #333 !important; }
.btn-optimize.btn-info { background: var(--secondary); }
.btn-optimize.btn-success { background: var(--success); }
.btn-optimize.btn-danger { background: var(--danger); }
.results-container{margin-top:30px}
.result-card{background:white;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 2px 15px rgba(0,0,0,0.08);border-left:5px solid}
.result-card.success{border-left-color:#28a745}
.result-card.info{border-left-color:#17a2b8}
.result-card.error{border-left-color:#dc3545}
.result-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.result-header h3{margin:0;font-size:1.2rem}
.result-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-bottom:15px}
.stat-item{background:#f8f9fa;padding:10px;border-radius:6px;text-align:center}
.stat-value{font-size:1.5rem;font-weight:600;color:#2c3e50}
.stat-label{font-size:0.9rem;color:#6c757d}
.details-toggle{color:#17a2b8;cursor:pointer;margin-top:10px;display:inline-block}
.details-content{display:none;margin-top:15px;padding:15px;background:#f8f9fa;border-radius:6px;max-height:300px;overflow-y:auto}
.duplicate-item{padding:10px;border-bottom:1px solid #e0e0e0}
.duplicate-item:last-child{border-bottom:none}

/* ==============================================
   Адаптивность (мобильные устройства)
   ============================================== */
@media (max-width: 768px) {
  /* Общие стили */
  .header-top, .main-nav, .page-header, .action-buttons, .actions .action-buttons, 
  .file-result-item, .form-actions, .detail-row, .gender-select, 
  .consultation-header, .consultation-actions, .document-item, .patient-info { flex-direction: column; align-items: flex-start; gap: var(--space-sm); }
  .diagnoses-grid,.admin-row{grid-template-columns:1fr
  
  /* Специфичные отступы */
  .header-top, .main-nav { gap: var(--space-md); }
  .document-actions { width: 100%; justify-content: flex-end; margin-top: var(--space-xs); }
  .document-item { flex-wrap: wrap; }
  
  /* Сетки */
  .stats-row, .consultations-grid, .backup-info, .instruction-grid, 
  .stats-cards, .field-grid, .cgi-dashboard, .cgi-container { grid-template-columns: 1fr; }
  
  /* Таблицы */
  .users-table, .backups-table { display: block; overflow-x: auto; td, th { padding: var(--space-sm); } }
  .patients-table th:nth-child(n+4):nth-child(-n+6),
  .patients-table td:nth-child(n+4):nth-child(-n+6) { display: none; }
  
  /* Элементы */
  .nav-btn { width: 100%; justify-content: flex-start; padding-left: var(--space-lg); }
  .search-input, .search-input input, .file-name, .file-message { width: 100%; }
  .form-check, .form-check-inline { display: block; margin: 0 0 var(--space-xs) 0; }
  .detail-label { margin-bottom: var(--space-xs); }
  
  .optimization-actions, .result-stats { grid-template-columns: 1fr; }
  .optimization-header { flex-direction: column; align-items: flex-start; }
}
