/* ==========================================================================
   1. ПЕРЕМЕННЫЕ И ТЕМЫ
   ========================================================================== */

:root {
	--bg-primary: #f5f5f5;
	--bg-secondary: #ffffff;
	--hover-bg: #f9f9f9;
	--text-color: #333;
	--text-secondary: #666;
	--border-color: #e0e0e0;
	--primary-color: #a8d5a8;
	--success-color: #a8d5a8;
	--danger-color: #e74c3c;
	--warning-color: #ffd93d;
	--shadow-color: rgba(0, 0, 0, 0.1);
	--toggle-bg: #ccc;
	--toggle-active: #a8d5a8;
}

[data-theme="dark"] {
	--bg-primary: #1a1a1a;
	--bg-secondary: #2d2d2d;
	--hover-bg: #3a3a3a;
	--text-color: #e0e0e0;
	--text-secondary: #a0a0a0;
	--border-color: #444;
	--shadow-color: rgba(0, 0, 0, 0.3);
	--toggle-bg: #555;
	--toggle-active: #a8d5a8;
}

/* ==========================================================================
   2. БАЗОВЫЕ СТИЛИ И СБРОС
   ========================================================================== */

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background: var(--bg-primary);
	color: var(--text-color);
	line-height: 1.6;
	padding-top: 80px;
}

/* Ссылки */
.link a {
	color: #007bff;
	text-decoration: none;
}

.link a:hover {
	text-decoration: underline;
}

.link a:visited {
	color: #007bff;
}

.admin-login-link {
	color: var(--text-color);
	text-decoration: none;
	padding: 6px 12px;
	border-radius: 6px;
	background: var(--hover-bg);
	border: 1px solid var(--border-color);
}

/* ==========================================================================
   3. МАКЕТ (Шапка, Подвал, Контейнеры)
   ========================================================================== */

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
}

.header {
	margin-bottom: 30px;
	text-align: center;
}

.header h1 {
	font-size: 1.8rem;
	font-weight: 600;
	color: var(--text-color);
	margin-bottom: 0;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.controls-bar {
	position: fixed;
	top: 20px;
	right: 20px;
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--bg-secondary);
	padding: 12px 20px;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	box-shadow: 0 4px 16px var(--shadow-color);
	z-index: 100;
	flex-wrap: wrap;
}

.connection-info {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
}

.footer {
	padding: 24px 20px;
	text-align: center;
	position: relative;
}

.footer::before {
	content: "";
	position: absolute;
	top: -2px;
	left: 20%;
	right: 20%;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--border-color), transparent);
}

.footer-content {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--text-secondary);
	font-weight: 500;
	opacity: 0.7;
}

/* Хлебные крошки (Breadcrumbs) */
.breadcrumb {
	padding: 10px 0;
	font-size: 15px;
}

.breadcrumb a {
	color: #7fb96d;
	text-decoration: none;
}

.breadcrumb a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   4. КОМПОНЕНТЫ UI (Кнопки, Формы, Карточки, Таблицы)
   ========================================================================== */

/* --- Карточки --- */
.card {
	background: var(--bg-secondary);
	border-radius: 12px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow: 0 1px 3px var(--shadow-color);
	border: 1px solid var(--border-color);
}

.card h3 {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--text-color);
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--border-color);
}

/* --- Формы --- */
.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.form-group {
	margin-bottom: 20px;
}

.form-group label {
	display: block;
	font-weight: 500;
	color: var(--text-color);
	margin-bottom: 6px;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	font-size: 14px;
	transition: all 0.2s ease;
	background: var(--bg-primary);
	color: var(--text-color);
}

input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--primary-color);
	box-shadow: 0 0 0 3px rgba(168, 213, 168, 0.1);
}

textarea {
	min-height: 100px;
	resize: vertical;
}

#daysInput {
	text-align: center;
	font-size: 14px;
}

#daysInput::-webkit-inner-spin-button,
#daysInput::-webkit-outer-spin-button {
	opacity: 1;
}

/* --- Кнопки --- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	margin: 0;
	border: none;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	text-decoration: none;
	gap: 8px;
	min-width: fit-content;
	white-space: nowrap;
	box-sizing: border-box;
}

.btn-primary {
	background: var(--primary-color);
	color: #333;
}

.btn-primary:hover {
	filter: brightness(0.9);
}

.btn-secondary {
	background: var(--text-secondary);
	color: white;
}

.btn-secondary:hover {
	filter: brightness(0.9);
}

.btn-success {
	background: var(--success-color);
	color: white;
}

.btn-success:hover {
	filter: brightness(0.9);
}

.btn-danger {
	background: var(--danger-color);
	color: white;
}

.btn-danger:hover {
	filter: brightness(0.9);
	background: #c82333; /* поддержка переопределения для совместимости */
}

.btn-small {
	padding: 8px 16px;
	font-size: 12px;
	min-width: 80px;
	justify-content: center;
	height: 32px;
	line-height: 1;
}

.btn-generate-link {
	padding: 12px 16px;
	background: var(--bg-secondary);
	color: var(--text-color);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	white-space: nowrap;
	transition: all 0.2s ease;
	height: 46px;
	display: flex;
	align-items: center;
	gap: 4px;
}

.btn-generate-link:hover {
	background: var(--hover-bg);
	border-color: var(--primary-color);
}

.btn-generate-link:active {
	transform: scale(0.98);
}

.btn-generate-link:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.action-buttons {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

/* --- Таблицы --- */
.table-wrapper {
	overflow-x: auto;
	width: 100%;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 15px;
	border-radius: 4px;
}

.users-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 20px;
}

.users-table th,
.users-table td {
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid var(--border-color);
}

.users-table th {
	background: var(--bg-color); /* fallback, если не определено, обычно наследуется */
	font-weight: 600;
}

.users-table tr:hover {
	background: var(--hover-bg);
}

/* --- Списки и Группы --- */
.group-item {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 16px;
	background: var(--hover-bg);
	border-radius: 8px;
	margin-bottom: 12px;
	border: 1px solid var(--border-color);
	flex-wrap: wrap;
	gap: 12px;
}

.group-item.disabled > *:not(.action-buttons) {
	opacity: 0.6;
}

.group-content {
	flex: 1;
	min-width: 300px;
}

.group-list {
	font-size: 13px;
	color: var(--text-secondary);
	margin-top: 4px;
}

.user-item {
	border-bottom: 1px solid #eee;
}

.user-item:hover {
	background-color: #f9f9f9;
}

.user-item label:hover {
	background-color: #f0f0f0;
}

.user-tag {
	animation: fadeInTag 0.2s ease-in;
}

@keyframes fadeInTag {
	from { opacity: 0; transform: scale(0.9); }
	to { opacity: 1; transform: scale(1); }
}

.admins-list {
	list-style: none;
	padding: 0;
}

.admins-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px;
	margin: 5px 0;
	background: var(--bg-color); /* fallback */
	border-radius: 4px;
}

/* --- Выпадающие меню (Dropdowns) --- */
.dropdown {
	position: relative;
	display: inline-block;
}

.dropdown-menu {
	display: none;
	position: absolute;
	right: 0;
	background-color: var(--bg-secondary);
	min-width: 210px;
	box-shadow: 0px 8px 16px 0px var(--shadow-color);
	z-index: 1;
	border-radius: 6px;
	padding: 6px 0;
	border: 1px solid var(--border-color);
}

.dropdown-menu.show {
	display: block;
}

.dropdown .dropdown-item {
	color: var(--text-color);
	padding: 8px 16px;
	text-decoration: none;
	display: block;
	font-size: 14px;
	transition: background-color 0.2s ease;
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	cursor: pointer;
	font-family: inherit;
	line-height: inherit;
	outline: none;
}

.dropdown .dropdown-item:hover,
.dropdown .dropdown-item:focus {
	background-color: var(--hover-bg);
	color: var(--text-color);
	text-decoration: none;
}

.dropdown .dropdown-item.dropdown-item-danger:hover,
.dropdown .dropdown-item.dropdown-item-danger:focus {
	background-color: var(--danger-color);
	color: white;
}

.dropdown .dropdown-item:visited {
	color: var(--text-color);
}

.dropdown-divider {
	height: 1px;
	margin: 6px 0;
	overflow: hidden;
	background-color: var(--border-color);
}

.dropdown-toggle {
	min-width: auto;
	padding: 0;
	background: transparent;
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s ease-in-out;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-secondary);
	font-size: 1.2rem;
	line-height: 1;
}

.dropdown-toggle:hover {
	background-color: var(--hover-bg);
}

/* --- Сообщения/Уведомления --- */
.message {
	padding: 12px 20px;
	margin: 10px 0;
	border-radius: 4px;
	animation: slideIn 0.3s ease-out;
}

.message-success {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.message-error {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.message-info {
	background: #d1ecf1;
	color: #0c5460;
	border: 1px solid #bee5eb;
}

[data-theme="dark"] .message-info {
	background: #1e4a54;
	color: #a3d5df;
	border: 1px solid #2c5f6b;
}

@keyframes slideIn {
	from { transform: translateY(-20px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

/* --- Переключатель темы (Theme Toggle) --- */
.theme-toggle-container {
	display: flex;
	align-items: center;
	gap: 8px;
}

.theme-toggle {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 28px;
}

.theme-toggle input {
	opacity: 0;
	width: 0;
	height: 0;
}

.theme-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--toggle-bg);
	border-radius: 34px;
	transition: 0.3s;
}

.theme-slider:before {
	position: absolute;
	content: "";
	height: 20px;
	width: 20px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	border-radius: 50%;
	transition: 0.3s;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 12px;
	background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 3V5M12 19V21M5 12H3M21 12H19M17.8 6.2L16.4 7.6M7.6 16.4L6.2 17.8M17.8 17.8L16.4 16.4M7.6 7.6L6.2 6.2" stroke="%23999" stroke-width="2" stroke-linecap="round"/><circle cx="12" cy="12" r="4.5" fill="%23999" stroke="%23999" stroke-width="1"/></svg>');
}

input:checked + .theme-slider {
	background: var(--toggle-active);
}

input:checked + .theme-slider:before {
	transform: translateX(32px);
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%234a90e2"><path d="M12 3a9 9 0 109 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 01-4.4 2.26 5.403 5.403 0 01-3.14-9.8c-.44-.06-.9-.1-1.36-.1z"/></svg>');
}

/* ==========================================================================
   5. МОДУЛИ И СПЕЦИФИЧЕСКИЕ ВИДЖЕТЫ
   ========================================================================== */

/* --- Виджет Календаря --- */
.calendar-container {
	display: flex;
	gap: 20px;
	margin-bottom: 30px;
}

.calendar-sidebar {
	min-width: 200px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.year-selector {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 12px;
	background: var(--hover-bg);
	border-radius: 8px;
	border: 1px solid var(--border-color);
}

.year-selector button {
	background: transparent;
	border: none;
	cursor: pointer;
	font-size: 20px;
	color: var(--text-color);
	padding: 4px 8px;
	border-radius: 4px;
	transition: background 0.2s;
}

.year-selector button:hover {
	background: var(--bg-primary);
}

.year-selector span {
	font-size: 18px;
	font-weight: 600;
	min-width: 60px;
	text-align: center;
}

.months-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.month-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 12px;
	background: var(--hover-bg);
	border-radius: 6px;
	cursor: pointer;
	transition: all 0.2s;
	border: 2px solid transparent;
}

.month-item:hover {
	background: var(--bg-primary);
	border-color: var(--primary-color);
}

.month-item.active {
	background: var(--primary-color);
	color: #333;
	font-weight: 600;
}

.month-name {
	flex: 1;
}

.month-count {
	background: var(--bg-secondary);
	padding: 2px 8px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
}

.month-item.active .month-count {
	background: rgba(0,0,0,0.1);
}

.calendar-main {
	flex: 1;
}

.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
	margin-top: 12px;
}

.calendar-day-header {
	text-align: center;
	font-weight: 600;
	padding: 8px;
	color: var(--text-secondary);
	font-size: 14px;
}

.calendar-day {
	aspect-ratio: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 8px;
	background: var(--hover-bg);
	border-radius: 8px;
	cursor: default;
	position: relative;
	border: 2px solid transparent;
	transition: all 0.2s;
}

.calendar-day.empty {
	background: transparent;
	cursor: default;
}

.calendar-day.has-events {
	background: var(--primary-color);
	cursor: pointer;
	font-weight: 600;
}

.calendar-day.has-events:hover {
	transform: scale(1.05);
	box-shadow: 0 4px 12px var(--shadow-color);
}

.calendar-day.today {
	border-color: var(--danger-color);
}

.calendar-day.selected {
	border-color: var(--text-color);
	box-shadow: 0 0 0 1px var(--text-color);
}

.day-number {
	font-size: 16px;
}

.day-events-count {
	font-size: 10px;
	color: var(--text-secondary);
	margin-top: 2px;
}

.calendar-day.has-events .day-events-count {
	color: #333;
}

.selected-date-info {
	margin-bottom: 16px;
	padding: 12px 16px;
	background: var(--hover-bg);
	border-radius: 8px;
	border-left: 4px solid var(--primary-color);
	font-weight: 600;
}

/* --- Карточки подразделений (Сетка и Расширенные) --- */
.departments-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin-top: 20px;
}

.department-card {
	background: var(--card-bg); /* fallback */
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	transition: transform 0.2s;
}

.department-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.department-card h3 {
	margin: 0 0 10px 0;
	color: var(--primary-color);
}

.department-card p {
	color: var(--text-secondary);
	margin-bottom: 15px;
}

.department-card-enhanced {
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	border-radius: 12px;
	padding: 24px;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
	overflow: hidden;
}

.department-card-enhanced::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, var(--primary-color), transparent);
	transition: left 0.3s ease;
}

.department-card-enhanced:hover {
	border-color: var(--primary-color);
	box-shadow: 0 8px 24px var(--shadow-color);
	transform: translateY(-4px);
}

.department-card-enhanced:hover::before {
	left: 0;
}

[data-theme="dark"] .department-card-enhanced {
	background: var(--bg-secondary);
	border-color: var(--border-color);
}

[data-theme="dark"] .department-card-enhanced:hover {
	border-color: var(--primary-color);
	box-shadow: 0 8px 24px rgba(168, 213, 168, 0.15);
}

.department-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 0;
	gap: 12px;
}

.department-card-title {
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--text-color);
	flex: 1;
	line-height: 1.3;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--border-color);
}

.department-card-icon {
	font-size: 1.5rem;
	color: var(--primary-color);
	opacity: 0;
	transition: all 0.3s ease;
	transform: translateX(-8px);
}

.department-card-enhanced:hover .department-card-icon {
	opacity: 1;
	transform: translateX(0);
}

.department-card-description {
	color: var(--text-secondary);
	font-size: 0.95rem;
	line-height: 1.5;
	margin-top: 8px;
	padding: 0;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.department-card-footer {
	display: flex;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
	border-top: 1px solid var(--border-color);
}

.department-card-footer .btn {
	flex: 1;
	justify-content: center;
}

.department-card-empty {
	color: var(--text-secondary);
	opacity: 0.2;
	text-align: center;
}

/* --- Логин (Вход) --- */
.login-container {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 80vh;
	padding: 20px;
}
.login-card {
	width: 100%;
	max-width: 400px;
}
.admin-link, .back-link {
	text-align: center;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--border-color);
}
.admin-link a, .back-link a {
	color: var(--text-color);
	text-decoration: none;
	font-size: 14px;
	position: relative;
	display: inline-block;
}
.admin-link a::after, .back-link a::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	bottom: -2px;
	left: 0;
	background-color: var(--text-color);
	transform: scaleX(0);
	transform-origin: bottom right;
	transition: transform 0.3s ease;
}
.admin-link a:hover::after, .back-link a:hover::after {
	transform: scaleX(1);
	transform-origin: bottom left;
}

/* --- Пустые состояния --- */
.empty-state {
	text-align: center;
	padding: 60px 20px;
	color: var(--text-secondary);
}

.empty-state p {
	font-size: 1.1rem;
	margin: 0;
}

/* --- Группы элементов управления --- */
.department-controls {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.ad-users-controls {
	margin-bottom: 20px;
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

.ad-users-controls > div {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

/* --- Результаты поиска --- */
.search-result-item:last-child {
	border-bottom: none !important;
}

/* --- Вложения --- */
.delete-attachment-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	font-size: 14px;
	font-weight: bold;
	color: var(--text-secondary);
	cursor: pointer;
	border-radius: 50%;
	margin-left: 4px;
}

.delete-attachment-icon:hover {
	color: var(--danger-color);
	background: rgba(255, 107, 107, 0.1);
}

#email-attachments-list .file-item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px;
	align-items: center;
	margin-bottom: 6px;
}

#email-attachments-list .file-checkbox {
	margin: 0;
}

#email-attachments-list .file-label {
	margin: 0;
	font-weight: normal;
	cursor: pointer;
	word-wrap: break-word;
}

/* ==========================================================================
   6. МОДАЛЬНЫЕ ОКНА
   ========================================================================== */

.schedule-modal, .confirm-modal {
	display: none;
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	backdrop-filter: blur(4px);
	overflow-y: auto;
}

.confirm-modal {
	z-index: 2000;
	animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

.schedule-modal-content {
	background-color: var(--bg-secondary);
	margin: 5% auto;
	padding: 24px;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	width: 600px;
	max-width: 90%;
	box-shadow: 0 4px 20px var(--shadow-color);
}

.schedule-modal-content h3 {
	margin-bottom: 20px;
}

.modal-actions {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 20px;
}

/* Модальное окно подтверждения */
.confirm-modal-content {
	background-color: var(--bg-secondary);
	margin: 15% auto;
	padding: 0;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	width: 450px;
	max-width: 90%;
	box-shadow: 0 8px 32px var(--shadow-color);
	animation: slideDown 0.3s ease;
}

/* Модальное окно уведомления */
.alert-modal-content {
	background-color: var(--bg-secondary);
	margin: 15% auto;
	padding: 0;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	width: 400px;
	max-width: 90%;
	box-shadow: 0 8px 32px var(--shadow-color);
	animation: slideDown 0.3s ease;
}

@keyframes slideDown {
	from { transform: translateY(-50px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

.confirm-modal-header, .alert-modal-header {
	padding: 20px 24px;
	border-bottom: 1px solid var(--border-color);
}

.confirm-modal-header h3, .alert-modal-header h3 {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--text-color);
	display: flex;
	align-items: center;
	gap: 10px;
}

.confirm-modal-body, .alert-modal-body {
	padding: 24px;
	color: var(--text-color);
	line-height: 1.6;
}

.confirm-modal-footer, .alert-modal-footer {
	padding: 16px 24px;
	background: var(--hover-bg);
	border-top: 1px solid var(--border-color);
	border-radius: 0 0 12px 12px;
	display: flex;
	gap: 12px;
}

.confirm-modal-footer {
	justify-content: flex-end;
}

.alert-modal-footer {
	justify-content: center;
}

/* Модальное окно выбора времени */
#timePickerModal {
	z-index: 1100;
}

.time-picker-modal {
	background-color: var(--bg-secondary);
	margin: 10% auto;
	padding: 24px;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	width: 400px;
	max-width: 90%;
	box-shadow: 0 4px 20px var(--shadow-color);
}

.time-picker-modal h3 {
	margin-bottom: 20px;
	text-align: center;
	color: var(--text-color);
}

.time-picker {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	margin-bottom: 20px;
}

.time-column {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.time-label {
	font-size: 12px;
	color: var(--text-secondary);
	margin-bottom: 8px;
}

.time-scroll {
	width: 80px;
	height: 200px;
	overflow-y: scroll;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--bg-primary);
	scroll-snap-type: y mandatory;
}

.time-scroll::-webkit-scrollbar {
	width: 6px;
}

.time-scroll::-webkit-scrollbar-track {
	background: var(--bg-primary);
}

.time-scroll::-webkit-scrollbar-thumb {
	background: var(--border-color);
	border-radius: 3px;
}

.time-scroll::-webkit-scrollbar-thumb:hover {
	background: var(--text-secondary);
}

.time-item {
	padding: 12px;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s ease;
	scroll-snap-align: center;
	font-size: 18px;
	color: var(--text-color);
}

.time-item:hover {
	background: var(--hover-bg);
}

.time-item.selected {
	background: var(--primary-color);
	color: #333;
	font-weight: 600;
}

.time-separator {
	font-size: 32px;
	font-weight: bold;
	color: var(--text-color);
	align-self: center;
	margin-top: 20px;
}

.time-input-wrapper {
	position: relative;
}

.time-input {
	padding-right: 45px;
}

.time-icon {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	font-size: 20px;
	user-select: none;
}

/* ==========================================================================
   7. АДАПТИВНОСТЬ (Media Queries)
   ========================================================================== */

/* Исправление стилей для кнопок в таблице на мобильных */
.mobile-btn-row {
	display: flex;
	gap: 8px;
	align-items: center;
}

@media (max-width: 1024px) {
	body {
		padding-top: 0;
	}

	.controls-bar {
		position: static;
		justify-content: center;
		margin-bottom: 20px;
		border-radius: 0;
		top: 0;
		right: 0;
		left: 0;
	}
}

@media (max-width: 768px) {
	.container {
		padding: 16px;
	}

	.card {
		padding: 16px;
	}

	.form-row {
		grid-template-columns: 1fr;
	}

	.group-item {
		flex-direction: column;
		align-items: stretch;
	}

	.action-buttons {
		justify-content: flex-end;
	}

	.departments-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.department-card-enhanced {
		padding: 16px;
	}

	.footer {
		padding: 20px 16px;
	}

	.footer-content {
		font-size: 12px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.calendar-container {
		flex-direction: column;
	}

	.calendar-sidebar {
		min-width: unset;
	}

	.months-list {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
	}

	/* Элементы управления в колонку на мобильных */
	.department-controls {
		flex-direction: column;
	}

	.department-controls .btn {
		width: 100%;
	}

	.ad-users-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.ad-users-controls > div {
		flex-direction: column;
		width: 100%;
	}

	.ad-users-controls .btn {
		width: 100%;
	}

	.group-item .action-buttons {
		flex-direction: column;
		width: 100%;
		gap: 8px;
		margin-top: 10px;
		justify-content: stretch;
	}

	.group-item .action-buttons .btn {
		width: 100%;
		margin-left: 0;
	}

	.controls-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		width: auto;
		left: 20px;
		right: 20px;
		top: 10px;
	}

	.connection-info {
		flex-wrap: wrap;
		justify-content: center;
	}

	.connection-info span {
		width: 100%;
		text-align: center;
		margin-bottom: 8px;
	}

	.connection-info .btn {
		flex: 1;
		min-width: auto;
	}

	.theme-toggle-container {
		justify-content: center;
		width: 100%;
		padding-top: 8px;
		border-top: 1px solid var(--border-color);
	}

	.mobile-btn-row {
		width: 100%;
		display: flex;
		gap: 8px;
	}

	.mobile-btn-row > .btn {
		flex: 1;
		width: auto;
		margin: 0;
	}

	.mobile-btn-row .dropdown {
		width: auto;
		flex: 0 0 auto;
	}

	.action-buttons .mobile-btn-row .dropdown .btn.dropdown-toggle {
		width: 32px;
		min-width: 32px;
		height: 32px;
		padding: 0;
		flex: 0 0 32px;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}
