/* app/frontend/css/activity_log.css */
/* Стили для оформления таймлайна логов активности */

.timeline-container {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 8px 4px;
}

.timeline-card {
	display: flex;
	gap: 16px;
	background: var(--background-primary);
	border: var(--divider-width) solid var(--divider-color);
	border-radius: var(--radius-l);
	padding: 16px;
	align-items: flex-start;
	box-shadow: var(--shadow-s);
	transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.timeline-card:hover {
	box-shadow: var(--shadow-m);
	border-color: var(--interactive-accent-soft);
}

.timeline-badge {
	font-size: var(--font-content-xlarge);
	min-width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--background-secondary);
	border-radius: var(--radius-m);
	box-shadow: inset 0 0 4px var(--divider-color);
}

.timeline-body {
	flex: 1;
	min-width: 0;
}

.timeline-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6px;
}

.timeline-title {
	color: var(--text-normal);
	font-weight: 600;
	font-size: var(--font-content-normal);
}

.timeline-time {
	font-size: var(--font-content-small);
	color: var(--text-muted);
}

.timeline-user-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: var(--font-content-small);;
	font-weight: 500;
	color: var(--interactive-accent);
	background: var(--background-secondary);
	border: var(--divider-width) solid var(--divider-color);
	padding: 2px 8px;
	border-radius: var(--radius-s);
	margin-bottom: 8px;
	text-decoration: none;
	transition: background var(--transition-base);
}

.timeline-user-badge:hover {
	background: var(--background-modifier-hover);
}

.timeline-desc {
	font-size: var(--font-content-medium);
	color: var(--text-muted);
	line-height: var(--line-height-normal);
}

.timeline-details {
	font-family: var(--font-monospace, monospace);
	font-size: var(--font-content-small);
	margin-top: 8px;
	background: var(--background-secondary);
	padding: 8px 12px;
	border-radius: var(--radius-s);
	color: var(--text-muted);
	white-space: pre-wrap;
	word-break: break-all;
	border: var(--divider-width) solid var(--divider-color);
}

.timeline-tech-tag {
	font-family: var(--font-monospace, monospace);
	font-size: var(--font-content-smaller);
	color: var(--text-muted);
	background: var(--background-secondary);
	padding: 2px 6px;
	border-radius: var(--radius-s);
	border: var(--divider-width) solid var(--divider-color);
	margin-left: 8px;
	display: inline-block;
	vertical-align: middle;
}

/* === Стили для панели технических логов (Админ-консоли логов) === */
.log-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-content-medium);
	margin-top: 10px;
}

.log-table th,
.log-table td {
	padding: 8px 12px;
	text-align: left;
	border-bottom: var(--divider-width) solid var(--divider-color);
	vertical-align: top;
	word-break: break-word;
}

.log-table th {
	background-color: var(--background-secondary);
	font-weight: 600;
	color: var(--text-muted);
	position: sticky;
	top: 0;
	z-index: 10;
}

.log-row {
	transition: background-color var(--transition-base);
}

.log-row:hover {
	background-color: var(--background-modifier-hover);
}

/* Цветовая кодировка строк по уровням (нежные пастельные тона) */
.log-row-debug {
	color: var(--text-muted);
}

.log-row-warning {
	background-color: var(--background-warning);
	color: var(--text-warning);
}

.log-row-critical,
.log-row-error {
	background-color: var(--background-error);
	color: var(--text-error);
}

.log-row-success {
	background-color: var(--background-success);
	color: var(--text-success);
}

/* Оформление значков уровней логов (badges) */
.log-badge {
	display: inline-block;
	padding: 2px 6px;
	border-radius: var(--radius-s);
	font-size: var(--font-content-smaller);
	font-weight: 600;
	text-transform: uppercase;
	white-space: nowrap;
}

.log-badge-debug {
	background: var(--background-secondary);
	color: var(--text-muted);
}

.log-badge-info {
	background: rgba(3, 102, 214, 0.1);
	color: #0366d6;
}

.log-badge-warning {
	background: rgba(217, 119, 6, 0.15);
	color: #d97706;
}

.log-badge-critical,
.log-badge-error {
	background: rgba(220, 38, 38, 0.15);
	color: #dc2626;
}

.log-badge-success {
	background: rgba(46, 160, 67, 0.15);
	color: #2ea043;
}

.log-badge-muted {
	background: rgba(156, 163, 175, 0.15);
	color: #9ca3af;
}

/* Дополнительные стили элементов интерфейса логов */
.log-filter-form {
	background: var(--background-secondary);
	border: var(--divider-width) solid var(--divider-color);
	border-radius: var(--radius-l);
	padding: 16px;
	margin-bottom: 16px;
}

.log-form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
	align-items: flex-end;
}

.log-form-actions {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	justify-content: flex-end;
}

.log-code-btn {
	background: var(--background-secondary);
	border: var(--divider-width) solid var(--divider-color);
	color: var(--text-normal);
	padding: 2px 8px;
	border-radius: var(--radius-s);
	font-size: var(--font-content-small);
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--transition-base);
}

.log-code-btn:hover {
	background: var(--background-modifier-hover);
}

/* Гарантированное скрытие неактивных панелей в App Mode для лог-консоли */
:root .admin-log-panel.hidden {
	display: none;
}

/* Контейнер для горизонтального скроллинга таблиц */
.log-table-container {
	overflow-x: auto;
	width: 100%;
}

/* Пустое состояние логов и инцидентов */
.log-empty-state {
	text-align: center;
	color: var(--text-muted);
	padding: 40px 0;
	font-style: italic;
}

/* Ширина колонок для таблицы логов */
.log-table-logs th:nth-child(1),
.log-table-logs td:nth-child(1) {
	width: 15%;
}

/* Время */
.log-table-logs th:nth-child(2),
.log-table-logs td:nth-child(2) {
	width: 10%;
}

/* Уровень */
.log-table-logs th:nth-child(3),
.log-table-logs td:nth-child(3) {
	width: 15%;
}

/* Модуль / Функция */
.log-table-logs th:nth-child(4),
.log-table-logs td:nth-child(4) {
	width: 40%;
}

/* Сообщение */
.log-table-logs th:nth-child(5),
.log-table-logs td:nth-child(5) {
	width: 20%;
}

/* Детали / Стек */

/* Ширина колонок для таблицы планировщика */
.log-table-scheduler th:nth-child(1),
.log-table-scheduler td:nth-child(1) {
	width: 8%;
}

/* ID */
.log-table-scheduler th:nth-child(2),
.log-table-scheduler td:nth-child(2) {
	width: 22%;
}

/* Команда */
.log-table-scheduler th:nth-child(3),
.log-table-scheduler td:nth-child(3) {
	width: 20%;
}

/* Запланирован на */
.log-table-scheduler th:nth-child(4),
.log-table-scheduler td:nth-child(4) {
	width: 15%;
}

/* Статус */
.log-table-scheduler th:nth-child(5),
.log-table-scheduler td:nth-child(5) {
	width: 25%;
}

/* Результат / Лог */
.log-table-scheduler th:nth-child(6),
.log-table-scheduler td:nth-child(6) {
	width: 10%;
}

/* Действие */


/* Ширина колонок для таблицы инцидентов */
.log-table-incidents th:nth-child(1),
.log-table-incidents td:nth-child(1) {
	width: 20%;
}

/* Сервис / Уровень / Код */
.log-table-incidents th:nth-child(2),
.log-table-incidents td:nth-child(2) {
	width: 45%;
}

/* Сообщение */
.log-table-incidents th:nth-child(3),
.log-table-incidents td:nth-child(3) {
	width: 20%;
}

/* Последний сбой / Повторы */
.log-table-incidents th:nth-child(4),
.log-table-incidents td:nth-child(4) {
	width: 15%;
}

/* Действия */

/* Оформление преформатированного текста для стектрейса */
.log-stacktrace {
	margin: 0;
	font-family: var(--font-monospace, monospace);
	white-space: pre-wrap;
	font-size: var(--font-content-small);
	max-height: 80px;
	overflow: auto;
	background: var(--background-secondary);
	border: var(--divider-width) solid var(--divider-color);
	padding: 4px;
	border-radius: var(--radius-s);
	color: var(--text-normal);
}

.log-table-incidents .log-stacktrace {
	margin-top: 4px;
	max-height: 150px;
	padding: 6px;
}

/* Компактный спойлер стектрейса в инцидентах */
.log-details-spoiler {
	margin-top: 6px;
	font-size: var(--font-content-small);
}

.log-details-summary {
	color: var(--text-link);
	cursor: pointer;
	user-select: none;
}

/* Контейнер кнопок действий в инцидентах */
.log-actions-container {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

/* Поддержка интерактивности для кодов ошибок */
.timeline-tech-tag[onclick] {
	cursor: pointer;
	transition: background-color var(--transition-base), border-color var(--transition-base);
}

.timeline-tech-tag[onclick]:hover {
	background-color: var(--background-modifier-hover);
	border-color: var(--interactive-accent-soft);
}

.log-table td .timeline-tech-tag,
.log-table td .tag,
.log-table td .mention {
	margin: 2px 4px 2px 0;
}