/* ADMIN CSS DEBUG - Поэтапное тестирование FilePond совместимости */

/* БЛОК 1: CSS Variables - базовые переменные */
:root {
	--bs-font-sans-serif: 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

	/* Core Colors */
	--color-white: #ffffff;
	--color-black: #000000;
	--color-primary: #3B82F6;
	--color-primary-light: #60A5FA;
	--color-primary-lighter: #93c5fd;
	--color-success: #10B981;
	--color-success-light: #34D399;
	--color-warning: #F59E0B;
	--color-warning-light: #FBBF24;
	--color-danger: #dc3545;
	--color-purple: #8B5CF6;
	--color-purple-light: #A78BFA;

	/* Text Colors */
	--text-primary: #1F2937;
	--text-secondary: #4B5563;
	--text-muted: #9CA3AF;
	--text-light: #E5E7EB;
	--text-lighter: #F9FAFB;

	/* Gray Scale */
	--gray-50: #f8fafc;
	--gray-100: #f1f5f9;
	--gray-200: #e2e8f0;
	--gray-300: #cbd5e1;
	--gray-400: #94a3b8;
	--gray-500: #64748b;
	--gray-600: #475569;
	--gray-700: #334155;
	--gray-800: #1e293b;
	--gray-900: #0f172a;

	/* Layout dimensions */
	--sidebar-width: 280px;
	--sidebar-width-collapsed: 80px;
	--mobile-breakpoint: 768px;

	/* Background and text colors */
	--main-bg: var(--gray-50);
	--text-color: var(--text-primary);
	--shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15);
	--link-color: var(--color-primary-light);
	--link-hover-color: var(--color-primary-lighter);

	/* Navigation hierarchy colors */
	--nav-parent-bg: #ffffff;
	--nav-child-bg: #f8f9fa;
	--nav-hierarchy-color: #6c757d;

	/* Effects */
	--blur-light: blur(10px);
	--blur-heavy: blur(20px);

	/* Opacity scale */
	--opacity-25: 0.25;
	--opacity-30: 0.30;
	--opacity-50: 0.50;
	--opacity-80: 0.80;

	/* Background Patterns */
	--bg-water-light: linear-gradient(135deg, #006994 0%, #004d6b 25%, #003d5c 50%, #002a42 75%, #001829 100%);
	--bg-space-light: radial-gradient(ellipse at center, #1e3c72 0%, #2a5298 25%, #1e3c72 50%, #0f1419 75%, #000000 100%);
	--bg-glassmorphism-light: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	--bg-water-dark: linear-gradient(135deg, #001829 0%, #002a42 25%, #003d5c 50%, #004d6b 75%, #006994 100%);
	--bg-space-dark: radial-gradient(ellipse at center, #000000 0%, #0f1419 25%, #1e3c72 50%, #2a5298 75%, #1e3c72 100%);
	--bg-glassmorphism-dark: linear-gradient(135deg, #764ba2 0%, #667eea 100%);

	/* Opacity variants - white */
	--white-02: rgba(255, 255, 255, 0.02);
	--white-03: rgba(255, 255, 255, 0.03);
	--white-05: rgba(255, 255, 255, 0.05);
	--white-06: rgba(255, 255, 255, 0.06);
	--white-08: rgba(255, 255, 255, 0.08);
	--white-10: rgba(255, 255, 255, 0.1);
	--white-15: rgba(255, 255, 255, 0.15);
	--white-20: rgba(255, 255, 255, 0.2);
	--white-30: rgba(255, 255, 255, 0.3);
	--white-40: rgba(255, 255, 255, 0.4);
	--white-50: rgba(255, 255, 255, 0.5);
	--white-60: rgba(255, 255, 255, 0.6);
	--white-70: rgba(255, 255, 255, 0.7);
	--white-80: rgba(255, 255, 255, 0.8);
	--white-90: rgba(255, 255, 255, 0.9);

	/* Opacity variants - black */
	--black-02: rgba(0, 0, 0, 0.02);
	--black-10: rgba(0, 0, 0, 0.1);
	--black-20: rgba(0, 0, 0, 0.2);
	--black-30: rgba(0, 0, 0, 0.3);
	--black-40: rgba(0, 0, 0, 0.4);
	--black-50: rgba(0, 0, 0, 0.5);
	--black-80: rgba(0, 0, 0, 0.8);

	/* Primary color with opacity */
	--primary-rgb: 59, 130, 246;
	--primary-05: rgba(59, 130, 246, 0.05);
	--primary-10: rgba(59, 130, 246, 0.1);
	--primary-15: rgba(59, 130, 246, 0.15);
	--primary-25: rgba(59, 130, 246, 0.25);

	/* Sidebar colors */
	--sidebar-bg: var(--bg-glassmorphism-light);
	--sidebar-color: var(--gray-100);
	--sidebar-hover-bg: var(--gray-600);
	--card-bg: var(--white-90);
	--border-color: var(--gray-200);

	/* Transitions */
	--transition: all 0.3s ease;
	--transition-fast: all 0.15s ease;
	--transition-slow: all 0.5s ease;

	/* Z-index scale */
	--z-dropdown: 1000;
	--z-sticky: 1020;
	--z-fixed: 1030;
	--z-modal-backdrop: 1040;
	--z-modal: 1050;
	--z-popover: 1060;
	--z-tooltip: 1070;
	--z-toast: 1080;
	--z-highest: 99999;
}

/* Dark theme variables */
[data-bs-theme="dark"] {
	--border-color: var(--white-15);
	--card-bg: var(--black-30);
	--text-color: var(--gray-100);
}

/* Card titles - theme-aware colors */
.card-title,
.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6 {
	color: var(--text-primary);
}

/* Dark theme card titles - always light text */
[data-bs-theme="dark"] .card-title,
[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .card-header h1,
[data-bs-theme="dark"] .card-header h2,
[data-bs-theme="dark"] .card-header h3,
[data-bs-theme="dark"] .card-header h4,
[data-bs-theme="dark"] .card-header h5,
[data-bs-theme="dark"] .card-header h6 {
	color: var(--gray-100) !important;
}

/* БЛОК 2: Base Styles и Utility Classes */
body {
	font-family: var(--bs-font-sans-serif);
	font-weight: 400;
	background-color: var(--main-bg);
	color: var(--text-color);
	overflow-x: hidden;
	position: relative;
	min-height: 100vh;
}

/* Card utilities */
.stat-card {
	border: 0 !important;
	box-shadow: var(--shadow) !important;
}

.stat-card-content {
	display: flex;
	align-items: center;
}

.stat-card-icon {
	margin-left: auto;
	font-size: 2rem;
}

/* Dropdown utilities */
.dropdown-end {
	right: 0;
	left: auto;
}

/* Card header utilities */
.card-header-actions {
	padding: 0.75rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.card-header-actions h6 {
	margin: 0;
	font-weight: 700;
}

/* БЛОК 3: Glass effects, Layout utilities, Transitions, Z-index, Links */

/* Glass effect utilities */
.glass-effect {
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	background: var(--white-10);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.glass-effect-heavy {
	backdrop-filter: var(--blur-heavy);
	-webkit-backdrop-filter: var(--blur-heavy);
}

/* Common layout utilities */
.flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}

.flex-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Transition utilities */
.transition-default {
	transition: var(--transition);
}

.transition-fast {
	transition: var(--transition-fast);
}

.transition-slow {
	transition: var(--transition-slow);
}

/* Z-index utilities */
.z-dropdown { z-index: var(--z-dropdown); }
.z-sticky { z-index: var(--z-sticky); }
.z-fixed { z-index: var(--z-fixed); }
.z-modal { z-index: var(--z-modal); }
.z-highest { z-index: var(--z-highest); }

/* Opacity utilities */
.opacity-25 { opacity: var(--opacity-25); }
.opacity-30 { opacity: var(--opacity-30); }
.opacity-50 { opacity: var(--opacity-50); }
.opacity-80 { opacity: var(--opacity-80); }

/* Global Link Styles */
a {
	text-decoration: none;
	color: var(--link-color);
	transition: var(--transition);
	position: relative;
}

a:hover {
	text-decoration: none;
	color: var(--link-hover-color);
}

/* Animated underline for text links */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.sidebar-link):not(.sidebar-toggle):not(.dropdown-toggle):not(.sidebar-brand)::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--link-hover-color);
	transition: width var(--transition-fast);
}

a:not(.btn):not(.nav-link):not(.dropdown-item):not(.sidebar-link):not(.sidebar-toggle):not(.dropdown-toggle):not(.sidebar-brand):hover::after {
	width: 100%;
}

/* БЛОК 4: Background Overlays и Animations - ПОТЕНЦИАЛЬНО ПРОБЛЕМНЫЙ */

/* Background Overlay */
body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--bg-glassmorphism-light);
	z-index: -1;
	transition: background 0.3s ease;
}


/* Background Variations */
body.bg-water::before {
	background: var(--bg-water-light);
}

body.bg-space::before {
	background: var(--bg-space-light);
}

/* Disable all background animations in admin */
body[data-context="admin"]::before,
body[data-context="admin"] .floating-shapes,
body[data-context="admin"] .wave,
body[data-context="admin"] .bubble,
body[data-context="admin"] .star,
body[data-context="admin"] .meteor,
body[data-context="admin"] .nebula {
	animation: none !important;
}

[data-bs-theme="dark"] body.bg-space::before {
	background: var(--bg-space-dark);
}

/* Water animation keyframes */
@keyframes waterFlow {
	0% {
		background-position: 0% 50%;
		filter: hue-rotate(0deg) brightness(1);
	}
	25% {
		background-position: 50% 0%;
		filter: hue-rotate(5deg) brightness(1.1);
	}
	50% {
		background-position: 100% 50%;
		filter: hue-rotate(10deg) brightness(1.2);
	}
	75% {
		background-position: 50% 100%;
		filter: hue-rotate(5deg) brightness(1.1);
	}
	100% {
		background-position: 0% 50%;
		filter: hue-rotate(0deg) brightness(1);
	}
}

/* БЛОК 5: Layout и Sidebar - КРИТИЧЕСКИ ВАЖНО */

/* Layout */
.wrapper {
	display: flex;
	width: 100%;
	align-items: stretch;
	min-height: 100vh;
}

/* Sidebar Styles */
.sidebar {
	min-width: 250px;
	max-width: 250px;
	max-height: 100vh;
	overflow-y: auto;
	color: var(--sidebar-color);
	transition: all 0.3s;
	position: relative;
	z-index: 999;
	box-shadow: 0 0 20px var(--black-10);
}

.sidebar.collapsed {
	min-width: var(--sidebar-width-collapsed);
	max-width: var(--sidebar-width-collapsed);
}

.sidebar-header {
	padding: 20px;
	background: var(--black-10);
}

.sidebar-brand {
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0;
	text-align: center;
}

/* Logo theme switching - light theme: show light logo, hide dark logo */
.logo-light {
	display: block;
}
.logo-dark {
	display: none;
}

/* Dark theme: show dark logo, hide light logo */
[data-bs-theme="dark"] .logo-light {
	display: none;
}
[data-bs-theme="dark"] .logo-dark {
	display: block;
}

.sidebar.collapsed .sidebar-brand-full {
	display: none;
}

.sidebar:not(.collapsed) .sidebar-brand-mini {
	display: none;
}

.sidebar-nav {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sidebar-item {
	position: relative;
}

.sidebar-link {
	display: flex;
	align-items: center;
	padding: 15px 20px;
	color: var(--sidebar-color);
	text-decoration: none;
	transition: all 0.3s;
	position: relative;
	overflow: hidden;
}

.sidebar-link::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: var(--sidebar-hover-bg);
	opacity: 40%;
	transition: left 0.3s ease;
	z-index: -1;
}

.sidebar-link:hover {
	color: var(--color-white);
	padding-left: 25px;
}

.sidebar-link:hover::before {
	left: 0;
}

.sidebar-item.active > .sidebar-link {
	background: rgba(0, 0, 0, 0.2);
	color: var(--color-white);
}

/* Active item inside dropdown — subtle left border accent */
.sidebar-dropdown .sidebar-item.active > .sidebar-link {
	border-left: 3px solid var(--bs-primary);
	padding-left: 47px;
}

/* 3rd level dropdown (entity sub-items inside group) */
.sidebar-dropdown .sidebar-dropdown {
	background: var(--black-15, rgba(0,0,0,0.15));
}
.sidebar-dropdown .sidebar-dropdown .sidebar-link {
	padding-left: 70px;
	font-size: 0.85rem;
}
.sidebar-dropdown .sidebar-dropdown .sidebar-item.active > .sidebar-link {
	padding-left: 67px;
}

.sidebar-link i {
	min-width: 30px;
	font-size: 1.1rem;
}

.sidebar-icon {
	margin-right: 12px;
	min-width: 20px;
	text-align: center;
	color: rgba(255, 255, 255, 0.8);
	transition: color 0.3s ease;
}

.sidebar-link:hover .sidebar-icon,
.sidebar-item.active .sidebar-icon {
	color: var(--color-white);
}

.sidebar.collapsed .sidebar-text,
.sidebar.collapsed .sidebar-arrow {
	display: none;
}

.sidebar.collapsed .sidebar-link {
	justify-content: center;
	padding: 15px;
}

.sidebar-dropdown {
	list-style: none;
	padding: 0;
	background: var(--black-10);
}

.sidebar-dropdown .sidebar-link {
	padding-left: 50px;
	font-size: 0.9rem;
}

.sidebar.collapsed .sidebar-dropdown {
	display: none !important;
}

.sidebar-arrow {
	margin-left: auto;
	transition: transform 0.3s;
}

.sidebar-link[aria-expanded="true"] .sidebar-arrow {
	transform: rotate(90deg);
}

/* БЛОК 6: Main Content и Navbar */

/* Main Content */
.main {
	width: 100%;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	position: relative; /* Stable positioning */
}

/* Prevent layout shifts during script loading */
.main .content {
	flex: 1;
	position: relative;
	min-height: calc(100vh - 140px); /* Account for navbar and footer */
	overflow-y: auto; /* Allow scrolling if content is too long */
	padding-bottom: 2rem; /* Extra space before footer */
}

/* Navbar */
.navbar-bg {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	box-shadow: var(--shadow);
	z-index: var(--z-dropdown);
	position: relative;
}

[data-bs-theme="dark"] .navbar-bg {
	background: var(--black-40);
	backdrop-filter: blur(20px) saturate(1.2);
	-webkit-backdrop-filter: blur(20px) saturate(1.2);
	border-bottom: 1px solid var(--white-10);
}

/* Navbar Links */
.navbar-nav .nav-link {
	color: var(--text-color);
	transition: var(--transition);
	position: relative;
}

.navbar-nav .nav-link:hover {
	color: var(--link-hover-color);
	transform: translateY(-2px);
}

.navbar-nav .nav-link i {
	transition: transform 0.3s ease;
}

.navbar-nav .nav-link:hover i {
	transform: scale(1.2);
}

.navbar-nav .dropdown-toggle::after {
	transition: transform 0.2s ease;
}

.navbar-nav .dropdown-toggle[aria-expanded="true"]::after {
	transform: rotate(180deg);
}

/* User dropdown text color */
.navbar-nav .nav-link span {
	color: var(--text-color);
}

.sidebar-toggle {
	cursor: pointer;
	padding: 0.5rem;
	margin-right: 1rem;
	color: var(--text-color);
	transition: color 0.2s ease;
}

.sidebar-toggle:hover {
	color: var(--link-hover-color);
}

/* Dark theme navbar elements */
[data-bs-theme="dark"] .sidebar-toggle {
	color: var(--gray-100);
}

[data-bs-theme="dark"] .sidebar-toggle:hover {
	color: var(--gray-50);
}

[data-bs-theme="dark"] .navbar-nav .nav-link {
	color: var(--gray-100);
}

[data-bs-theme="dark"] .navbar-nav .nav-link:hover {
	color: var(--gray-50);
}

[data-bs-theme="dark"] .navbar-nav .nav-link span,
[data-bs-theme="dark"] .navbar-nav .nav-link .user-login,
[data-bs-theme="dark"] .user-login {
	color: var(--gray-100) !important;
}

[data-bs-theme="dark"] .navbar-nav .nav-link i {
	color: var(--gray-100);
}

[data-bs-theme="dark"] .navbar-nav .dropdown-item,
[data-bs-theme="dark"] .dropdown-menu .dropdown-item {
	color: var(--gray-100);
}

[data-bs-theme="dark"] .navbar-nav .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-menu .dropdown-item:hover {
	color: var(--gray-50);
}

.navbar-align {
	margin-left: auto;
	display: flex;
	align-items: center;
	height: 100%;
}

/* Navbar items vertical alignment */
.navbar-nav {
	display: flex;
	align-items: center;
	height: 100%;
}

.navbar-nav .nav-item {
	display: flex;
	align-items: center;
	height: 100%;
}

.navbar-nav .nav-link {
	display: flex;
	align-items: center;
	height: 100%;
	padding-top: 0;
	padding-bottom: 0;
}

/* Ensure navbar has proper height */
.navbar {
	min-height: 4rem;
}

.navbar-collapse {
	display: flex;
	align-items: center;
	height: 100%;
}

.avatar {
	width: 32px;
	height: 32px;
}

.indicator {
	background: var(--color-danger);
	border-radius: 50%;
	color: var(--color-white);
	font-size: 10px;
	font-weight: 600;
	position: absolute;
	top: 8px;
	right: 8px;
	height: 16px;
	width: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
	transform: translate(25%, -25%);
}

/* Notification link positioning */
.nav-item .nav-link {
	position: relative;
}

/* User dropdown improvements */
.navbar-nav .nav-link.dropdown-toggle {
	padding: 0.75rem 1rem;
}

.navbar-nav .nav-link .user-login {
	color: var(--text-color);
	font-weight: 500;
}

/* Language switcher improvements */
#currentLanguage {
	font-size: 0.875rem;
	font-weight: 600;
}

/* Dropdown menu positioning */
.dropdown-menu {
	margin-top: 0.25rem !important;
}

/* БЛОК 7: Content Headers - безопасная часть */

/* Content */
.content {
	flex: 1;
	padding: 2rem 1rem;
}

/* Page Headers */
.content h1,
.content .h1,
.content h2,
.content .h2,
.content h3,
.content .h3 {
	color: var(--text-color);
	font-weight: 600;
	background: transparent !important;
}

/* БЛОК 7B: Cards с исключениями для FilePond */

/* Cards - исключаем FilePond контейнеры */
.card:not(.filepond--root):not([class*="filepond"]) {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	border: 1px solid var(--border-color);
	box-shadow: var(--shadow);
	transition: all 0.3s;
	position: relative;
	z-index: 1;
}

.card:not(.filepond--root):not([class*="filepond"]):hover {
	transform: translateY(-5px);
	box-shadow: 0 0.5rem 2rem 0 rgba(0, 0, 0, 0.2);
	z-index: 2;
}

/* Card headers - исключаем FilePond */
.card-header:not(.filepond--root *):not([class*="filepond"] *) {
	background-color: var(--white-05);
	border-bottom: 1px solid var(--border-color);
}

/* Dark theme cards - исключаем FilePond */
[data-bs-theme="dark"] .card:not(.filepond--root):not([class*="filepond"]) {
	background: var(--black-40) !important;
	backdrop-filter: blur(20px) saturate(1.2) !important;
	-webkit-backdrop-filter: blur(20px) saturate(1.2) !important;
	border: 1px solid var(--white-15) !important;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px var(--white-08) inset !important;
	color: var(--gray-50) !important;
	border-radius: 16px !important;
	position: relative !important;
	/* УБРАЛИ overflow: hidden - это ломало FilePond */
}

/* FilePond совместимые стили - НЕ ПРИМЕНЯЮТСЯ к FilePond */
.upload-container .card,
[class*="filepond"] .card,
.filepond--root .card {
	background: white !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	border: 1px solid #ddd !important;
	border-radius: 5px !important;
	overflow: visible !important;
	z-index: auto !important;
	position: static !important;
	transform: none !important;
}

/* БЛОК 8: Form Controls - осторожно добавляем */

/* Form Controls */
.form-control,
.form-select {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-color);
	transition: var(--transition);
}

.form-control:focus,
.form-select:focus {
	background-color: var(--card-bg);
	border-color: var(--link-color);
	color: var(--text-color);
	box-shadow: 0 0 0 0.25rem var(--primary-25);
}

/* Form Switch */
.form-switch {
	min-width: 160px;
}

/* Input Group */
.input-group-text {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-color);
}

/* Buttons - базовые стили */
.btn {
	transition: var(--transition);
	border-radius: 0.375rem;
	font-weight: 500;
}

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

.btn-primary:hover {
	background-color: var(--color-primary-light);
	border-color: var(--color-primary-light);
}

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

.btn-warning {
	background-color: var(--color-warning);
	border-color: var(--color-warning);
}

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

/* ТЕСТИРОВАНИЕ: + Form Controls и Buttons */

/* БЛОК 9: Tables - осторожно добавляем */

/* Tables */
.table {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	border-radius: 0.5rem;
	overflow: hidden;
	margin-bottom: 1rem;
}

.table th {
	background-color: var(--gray-100);
	font-weight: 600;
	color: var(--text-color);
	border-bottom: 2px solid var(--border-color);
	padding: 1rem 0.75rem;
}

.table td {
	padding: 0.75rem;
	vertical-align: middle;
	border-bottom: 1px solid var(--border-color);
}

.table-striped tbody tr:nth-of-type(odd) {
	background-color: rgba(0, 0, 0, 0.02);
}

.table-hover tbody tr:hover {
	background-color: var(--primary-05);
	cursor: pointer;
}

/* Table responsive */
.table-responsive {
	border-radius: 0.5rem;
	margin-bottom: 1rem;
}

/* Dark theme tables - glassmorphism style */
[data-bs-theme="dark"] .table {
	--bs-table-bg: var(--black-30);
	--bs-table-color: var(--gray-50);
	background: var(--black-30);
	backdrop-filter: blur(12px) saturate(1.2);
	-webkit-backdrop-filter: blur(12px) saturate(1.2);
	border: 1px solid var(--white-10);
	color: var(--gray-50);
}

[data-bs-theme="dark"] .table>:not(caption)>*>* {
	background-color: transparent;
	color: var(--gray-50);
	border-color: var(--white-08);
}

[data-bs-theme="dark"] .table th,
[data-bs-theme="dark"] .table thead th {
	background-color: transparent;
	color: var(--gray-50);
	border-color: var(--white-08);
}

[data-bs-theme="dark"] .table td {
	border-color: var(--white-08);
}

[data-bs-theme="dark"] .table-striped>tbody>tr:nth-of-type(odd)>* {
	--bs-table-bg-type: var(--white-02);
	background-color: var(--white-02);
}

[data-bs-theme="dark"] .table-hover>tbody>tr:hover>* {
	--bs-table-bg-state: var(--primary-15);
	background-color: var(--primary-15);
}

/* ТЕСТИРОВАНИЕ: + Tables */

/* БЛОК 10: Modals и Dropdowns - безопасные компоненты */

/* Modals */
.modal-content {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	border: 1px solid var(--border-color);
	border-radius: 0.5rem;
	box-shadow: var(--shadow);
}

.modal-header {
	background-color: var(--white-05);
	border-bottom: 1px solid var(--border-color);
	padding: 1rem 1.5rem;
}

.modal-title {
	color: var(--text-color);
	font-weight: 600;
}

.modal-body {
	padding: 1.5rem;
	color: var(--text-color);
}

.modal-footer {
	background-color: var(--white-05);
	border-top: 1px solid var(--border-color);
	padding: 1rem 1.5rem;
}

/* Dropdowns */
.dropdown-menu {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	border: 1px solid var(--border-color);
	box-shadow: var(--shadow);
	border-radius: 0.375rem;
	margin-top: 0.25rem;
}

.navbar .dropdown-menu {
	border-radius: 12px;
}

.dropdown-item {
	color: var(--text-color);
	transition: var(--transition);
	padding: 0.5rem 1rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
	background-color: var(--gray-100);
	color: var(--text-color);
}

.dropdown-header {
	color: var(--text-muted);
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1rem 0.25rem;
}

.dropdown-divider {
	border-color: var(--border-color);
	margin: 0.5rem 0;
}

/* Dark theme modals и dropdowns */
[data-bs-theme="dark"] .modal-content {
	background: var(--black-80);
	border-color: var(--white-15);
}

[data-bs-theme="dark"] .dropdown-menu {
	background: var(--black-80);
	border-color: var(--white-15);
}

[data-bs-theme="dark"] .dropdown-item:hover {
	background-color: var(--white-10);
}

/* Bootstrap Tooltip dark theme */
[data-bs-theme="dark"] .tooltip {
	--bs-tooltip-bg: var(--black-90);
	--bs-tooltip-color: var(--gray-100);
}

[data-bs-theme="dark"] .tooltip-inner {
	background-color: var(--black-90);
	color: var(--gray-100);
	border: 1px solid var(--white-15);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

[data-bs-theme="dark"] .tooltip .tooltip-arrow::before {
	border-top-color: var(--black-90);
}

[data-bs-theme="dark"] .bs-tooltip-bottom .tooltip-arrow::before,
[data-bs-theme="dark"] .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
	border-bottom-color: var(--black-90);
}

[data-bs-theme="dark"] .bs-tooltip-start .tooltip-arrow::before,
[data-bs-theme="dark"] .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
	border-left-color: var(--black-90);
}

[data-bs-theme="dark"] .bs-tooltip-end .tooltip-arrow::before,
[data-bs-theme="dark"] .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
	border-right-color: var(--black-90);
}

/* CKEditor dark theme */
[data-bs-theme="dark"] .ck.ck-icon.ck-icon_inherit-color,
[data-bs-theme="dark"] .ck.ck-icon.ck-icon_inherit-color * {
	color: #fff;
}

[data-bs-theme="dark"] .ck.ck-button .ck-button__label,
[data-bs-theme="dark"] a.ck.ck-button .ck-button__label {
	color: #fff;
}

[data-bs-theme="dark"] .ck-reset_all :not(.ck-reset_all-excluded *),
[data-bs-theme="dark"] .ck.ck-toolbar {
	background: var(--card-bg);
}

[data-bs-theme="dark"] .ck {
	--ck-color-base-border: var(--border-color);
	--ck-color-toolbar-border: var(--border-color);
	--ck-color-panel-border: var(--border-color);
	--ck-color-dropdown-panel-border: var(--border-color);
	--ck-color-input-border: var(--border-color);
	--ck-color-focus-border: var(--primary);
}

/* FilePond dark theme */
[data-bs-theme="dark"] .filepond--panel-root {
	background: var(--card-bg);
}

[data-bs-theme="dark"] .filepond--root .filepond--drop-label {
	color: var(--gray-300);
}

/* ТЕСТИРОВАНИЕ: + Modals и Dropdowns */

/* БЛОК 11: Alerts и Utilities - финальные стили */

/* Flash Messages и Alerts */
.alert {
	background: var(--card-bg);
	backdrop-filter: var(--blur-light);
	-webkit-backdrop-filter: var(--blur-light);
	border: 1px solid var(--border-color);
	border-radius: 0.5rem;
	box-shadow: var(--shadow);
	margin-bottom: 1rem;
	padding: 1rem 1.25rem;
	transition: var(--transition);
}

.alert-success {
	border-color: var(--color-success);
	color: var(--color-success);
	background: rgba(16, 185, 129, 0.1);
}

.alert-warning {
	border-color: var(--color-warning);
	color: var(--color-warning);
	background: rgba(245, 158, 11, 0.1);
}

.alert-danger {
	border-color: var(--color-danger);
	color: var(--color-danger);
	background: rgba(220, 53, 69, 0.1);
}

.alert-info {
	border-color: var(--color-primary);
	color: var(--color-primary);
	background: var(--primary-10);
}

/* Color Utilities */
.text-primary { color: var(--color-primary) !important; }
.text-success { color: var(--color-success) !important; }
.text-warning { color: var(--color-warning) !important; }
.text-danger { color: var(--color-danger) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-white { color: var(--color-white) !important; }

.bg-primary { background-color: var(--color-primary) !important; }
.bg-success { background-color: var(--color-success) !important; }
.bg-warning { background-color: var(--color-warning) !important; }
.bg-danger { background-color: var(--color-danger) !important; }

/* Shadow Utilities */
.shadow { box-shadow: var(--shadow) !important; }
.shadow-sm { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
.shadow-lg { box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }

/* Border Utilities */
.border { border: 1px solid var(--border-color) !important; }
.border-primary { border-color: var(--color-primary) !important; }
.border-success { border-color: var(--color-success) !important; }
.border-warning { border-color: var(--color-warning) !important; }
.border-danger { border-color: var(--color-danger) !important; }

/* Rounded Utilities */
.rounded { border-radius: 0.375rem !important; }
.rounded-sm { border-radius: 0.25rem !important; }
.rounded-lg { border-radius: 0.5rem !important; }
.rounded-pill { border-radius: 50rem !important; }

/* Spacing и Layout Utilities */
.flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}

.flex-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Navigation hierarchy styles */
.navigation-item {
	transition: all 0.2s ease;
	background: var(--nav-parent-bg);
}

.navigation-item-child {
	background: var(--nav-child-bg);
	border-left: 3px solid var(--color-primary);
	margin-left: 20px;
	position: relative;
}

.navigation-item-child::before {
	content: '';
	position: absolute;
	left: -23px;
	top: 50%;
	width: 20px;
	height: 1px;
	background: var(--nav-hierarchy-color);
	transform: translateY(-50%);
}

.hierarchy-indicator {
	display: flex;
	align-items: center;
	color: var(--nav-hierarchy-color);
}

.navigation-item:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.navigation-item-child:hover {
	background: #e9ecef;
}

/* Nested items container styling */
.nested-items-container {
	position: relative;
	margin-left: 40px;
	padding-left: 20px;
	border-left: 2px solid var(--gray-300);
}

.nested-items-container::before {
	content: '';
	position: absolute;
	left: -2px;
	top: -10px;
	width: 2px;
	height: 20px;
	background: var(--gray-300);
}

.nested-items-container .navigation-item {
	position: relative;
}

.nested-items-container .navigation-item::before {
	content: '';
	position: absolute;
	left: -22px;
	top: 50%;
	width: 18px;
	height: 2px;
	background: var(--gray-300);
	transform: translateY(-50%);
}

/* ФИНАЛЬНОЕ ТЕСТИРОВАНИЕ: Полные стили admin.css + FilePond совместимость */

/* ============================================
   БЛОК 12: Default Theme Light Mode - Glass UI
   ============================================ */

/* Light theme overrides for Default theme */
[data-bs-theme="light"] .bg-default {
	--text-primary: #1e293b;
	--text-secondary: #334155;
	--text-muted: #64748b;
	--default-glass-bg: rgba(255, 255, 255, 0.7);
	--default-glass-border: rgba(148, 163, 184, 0.3);
	--default-glass-shadow: rgba(59, 130, 246, 0.15);
}

/* Glass navbar and sidebar with white text */
[data-bs-theme="light"] .bg-default .navbar,
[data-bs-theme="light"] .bg-default .navbar-bg,
[data-bs-theme="light"] .bg-default .sidebar {
	background: rgba(59, 130, 246, 0.25);
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid rgba(255, 255, 255, 0.3);
	box-shadow: 0 8px 32px rgba(59, 130, 246, 0.2);
}

[data-bs-theme="light"] .bg-default .navbar .nav-link,
[data-bs-theme="light"] .bg-default .navbar .navbar-brand,
[data-bs-theme="light"] .bg-default .navbar .navbar-text,
[data-bs-theme="light"] .bg-default .navbar-nav .nav-link span,
[data-bs-theme="light"] .bg-default .navbar-nav .nav-link .user-login,
[data-bs-theme="light"] .bg-default .navbar .nav-link * {
	color: #ffffff;
}

[data-bs-theme="light"] .bg-default .navbar .nav-link:hover {
	color: var(--color-primary-lighter);
}

[data-bs-theme="light"] .bg-default .navbar .nav-link i,
[data-bs-theme="light"] .bg-default .navbar .fas,
[data-bs-theme="light"] .bg-default .navbar .far,
[data-bs-theme="light"] .bg-default .navbar .fa {
	color: #ffffff;
}

[data-bs-theme="light"] .bg-default .sidebar-link,
[data-bs-theme="light"] .bg-default .sidebar-text,
[data-bs-theme="light"] .bg-default .sidebar-icon {
	color: #ffffff;
}

[data-bs-theme="light"] .bg-default .sidebar-link:hover {
	color: var(--color-primary-lighter);
	background: rgba(255, 255, 255, 0.2);
}

[data-bs-theme="light"] .bg-default .sidebar-toggle {
	color: #ffffff;
}

/* Cards, tables, forms - light glass with dark text */
[data-bs-theme="light"] .bg-default .card {
	background: var(--default-glass-bg);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid var(--default-glass-border);
}

[data-bs-theme="light"] .bg-default .table {
	background: var(--default-glass-bg);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

[data-bs-theme="light"] .bg-default .table td {
	color: var(--text-secondary);
}

[data-bs-theme="light"] .bg-default .table th {
	color: var(--text-primary);
	background: rgba(59, 130, 246, 0.1);
}

[data-bs-theme="light"] .bg-default .form-control {
	background: rgba(255, 255, 255, 0.6);
	color: var(--text-primary);
	border: 1px solid var(--default-glass-border);
}

[data-bs-theme="light"] .bg-default .dropdown-menu {
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid var(--default-glass-border);
}

[data-bs-theme="light"] .bg-default .dropdown-item {
	color: var(--text-primary);
}

[data-bs-theme="light"] .bg-default .dropdown-item:hover {
	background: rgba(59, 130, 246, 0.1);
	color: var(--color-primary);
}
/* Delete Confirmation Popover */
.delete-confirmation-popover {
	position: absolute;
	bottom: initial;
	left: -6px;
	z-index: 1050;
	display: flex;
	gap: 0.25rem;
	padding: 0.35rem;
	background: var(--bs-body-bg, #fff);
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: 0.375rem;
	box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15);
	animation: popoverFadeIn 0.15s ease-out;
}

.delete-confirmation-popover .btn {
	padding: 0.25rem 0.5rem;
	line-height: 1;
}

.delete-confirmation-popover .btn i {
	font-size: 0.75rem;
}

@keyframes popoverFadeIn {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

[data-bs-theme="dark"] .delete-confirmation-popover {
	background: var(--gray-800);
	border-color: var(--gray-600);
}

/* ============================================
   UTILITY CLASSES
   ============================================ */

/* Cursor utilities */
.cursor-grab { cursor: grab; }
.cursor-grabbing { cursor: grabbing; }
.cursor-pointer { cursor: pointer; }

/* Fixed width utilities for tables */
.w-40 { width: 40px; }
.w-50px { width: 50px; }
.w-80 { width: 80px; }
.w-100px { width: 100px; }
.w-120 { width: 120px; }

/* Drag handle styling */
.drag-handle {
	cursor: grab;
	opacity: 0.5;
	transition: opacity 0.15s ease-in-out;
}
.drag-handle:hover {
	opacity: 1;
}
.drag-handle:active,
.sortable-chosen .drag-handle {
	cursor: grabbing;
}

/* Hidden by data attribute */
[data-hidden="true"] { display: none !important; }

/* Dynamic color badge (for tags with dynamic colors) */
.badge-dynamic-color {
	/* Background color set via inline style or CSS variable */
	color: var(--color-white);
	text-shadow: 0 1px 1px var(--black-20);
}

/* ─── TreeSelector ─── */
.tree-selector-badges .badge {
	font-weight: 400;
	font-size: 0.8em;
}
.tree-selector-row:hover,
.tree-selector-node > .d-flex:hover {
	background: var(--bs-tertiary-bg);
	border-radius: 4px;
}
.tree-selector-toggle {
	opacity: 0.6;
	transition: opacity 0.15s;
}
.tree-selector-toggle:hover {
	opacity: 1;
}
.tree-selector-list mark {
	padding: 0 1px;
	border-radius: 2px;
	background: rgba(255, 193, 7, 0.4);
}
[data-bs-theme="dark"] .tree-selector-list mark {
	background: rgba(255, 193, 7, 0.25);
}
.tree-selector-hidden-inputs {
	display: none;
}

/* === Frappe Gantt Dark Theme === */
[data-bs-theme="dark"] .gantt .grid-header {
	fill: var(--bs-body-bg, #212529);
}
[data-bs-theme="dark"] .gantt .grid-row {
	fill: var(--bs-body-bg, #212529);
}
[data-bs-theme="dark"] .gantt .grid-row:nth-child(even) {
	fill: var(--white-10, rgba(255,255,255,0.1));
}
[data-bs-theme="dark"] .gantt .row-line {
	stroke: var(--white-10, rgba(255,255,255,0.1));
}
[data-bs-theme="dark"] .gantt .tick {
	stroke: var(--white-10, rgba(255,255,255,0.1));
}
[data-bs-theme="dark"] .gantt .lower-text,
[data-bs-theme="dark"] .gantt .upper-text {
	fill: var(--bs-body-color, #dee2e6);
}
[data-bs-theme="dark"] .gantt .bar-label {
	fill: #fff;
}
[data-bs-theme="dark"] .gantt-popup {
	background: var(--bs-body-bg, #212529);
	color: var(--bs-body-color, #dee2e6);
	border: 1px solid var(--white-15, rgba(255,255,255,0.15));
}

/* Gantt priority bar colors */
.gantt-low .bar { fill: #6c757d !important; }
.gantt-medium .bar { fill: #0d6efd !important; }
.gantt-high .bar { fill: #ffc107 !important; }
.gantt-urgent .bar { fill: #dc3545 !important; }

/* === FullCalendar Dark Theme === */
[data-bs-theme="dark"] .fc {
	--fc-border-color: var(--white-15, rgba(255,255,255,0.15));
	--fc-page-bg-color: var(--bs-body-bg, #212529);
	--fc-neutral-bg-color: var(--white-10, rgba(255,255,255,0.1));
	--fc-list-event-hover-bg-color: var(--white-10, rgba(255,255,255,0.1));
	--fc-today-bg-color: var(--primary-15, rgba(59,130,246,0.15));
}
[data-bs-theme="dark"] .fc .fc-col-header-cell,
[data-bs-theme="dark"] .fc .fc-daygrid-day-number,
[data-bs-theme="dark"] .fc .fc-toolbar-title {
	color: var(--bs-body-color, #dee2e6);
}
[data-bs-theme="dark"] .fc .fc-button {
	background-color: var(--bs-body-bg, #212529);
	border-color: var(--white-15, rgba(255,255,255,0.15));
	color: var(--bs-body-color, #dee2e6);
}
[data-bs-theme="dark"] .fc .fc-button:hover {
	background-color: var(--white-10, rgba(255,255,255,0.1));
}
[data-bs-theme="dark"] .fc .fc-button-active {
	background-color: var(--color-primary, #3B82F6) !important;
	border-color: var(--color-primary, #3B82F6) !important;
}

/* === Dashboard Tiles === */
.admin-tile {
	transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.admin-tile:hover {
	transform: translateY(-2px);
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.tile-icon {
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* === Kanban Board === */
.kanban-board {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	min-height: 400px;
	padding-bottom: 1rem;
}
.kanban-column {
	min-width: 280px;
	max-width: 320px;
	flex-shrink: 0;
	background: var(--bs-tertiary-bg);
	border-radius: 0.375rem;
	display: flex;
	flex-direction: column;
}
.kanban-column-header {
	border-radius: 0.375rem 0.375rem 0 0;
}
.kanban-card-list {
	flex: 1;
	min-height: 60px;
}
.kanban-card {
	cursor: grab;
	transition: box-shadow 0.15s;
}
.kanban-card:hover {
	box-shadow: 0 0.25rem 0.5rem var(--black-30, rgba(0,0,0,0.3));
}
.kanban-card.sortable-ghost {
	opacity: 0.4;
}
.kanban-card.sortable-drag {
	cursor: grabbing;
}
.kanban-card-title:hover {
	color: var(--color-primary);
}
.kanban-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--color-primary);
	color: #fff;
	font-size: 0.6em;
	font-weight: 600;
}
.kanban-empty {
	opacity: 0.5;
}
[data-bs-theme="dark"] .kanban-card {
	background: var(--bs-body-bg);
	border-color: var(--white-15, rgba(255,255,255,0.15));
}
[data-bs-theme="dark"] .kanban-column {
	background: var(--white-10, rgba(255,255,255,0.1));
}

/* ─── Document Templates & Documents ───────────────────────────── */
.document-preview-mini {
	width: 200px;
	height: 280px;
	border: 1px solid var(--bs-border-color);
	overflow: hidden;
	cursor: pointer;
	border-radius: var(--bs-border-radius);
}
.document-preview-mini iframe {
	width: 800px;
	height: 1120px;
	transform: scale(0.25);
	transform-origin: top left;
	pointer-events: none;
	border: none;
}
.document-content-a4 {
	max-width: 210mm;
	margin: 0 auto;
	padding: 20mm;
	background: #fff;
	box-shadow: 0 0 10px var(--black-30, rgba(0,0,0,0.3));
	min-height: 297mm;
	color: #333;
}
.variables-panel .variable-badge {
	cursor: pointer;
	margin: 2px;
	transition: opacity 0.15s;
	font-weight: normal;
	font-size: 0.8em;
}
.variables-panel .variable-badge:hover {
	opacity: 0.7;
}
.variables-panel .loop-badge {
	border: 1px dashed var(--bs-primary);
}
.page-break {
	border-top: 2px dashed #999;
	margin: 20px 0;
	page-break-after: always;
}
@media print {
	.page-break {
		border: none;
		margin: 0;
		page-break-after: always;
	}
}
/* CodeMirror dark theme adjustments */
[data-bs-theme="dark"] .cm-editor {
	border: 1px solid var(--white-15, rgba(255,255,255,0.15));
	border-radius: var(--bs-border-radius);
}
[data-bs-theme="dark"] .document-content-a4 {
	background: var(--bs-body-bg);
	color: var(--bs-body-color);
}


/* Cron scheduler logs */
.cron-logs-output {
	max-height: 600px;
	overflow-y: auto;
	font-size: 0.8rem;
}

/* Permissions matrix */
#permissions-matrix thead th {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--bs-secondary-color);
	vertical-align: middle;
}
#permissions-matrix .pm-col-scope { min-width: 105px; }
#permissions-matrix .pm-col-cb { width: 44px; }
#permissions-matrix .scope-select {
	font-size: 0.8rem;
	padding: 0.15rem 1.5rem 0.15rem 0.4rem;
	min-width: 90px;
}
#permissions-matrix .scope-select.scope-changed {
	border-color: var(--bs-primary);
	box-shadow: 0 0 0 0.15rem var(--primary-15, rgba(59, 130, 246, 0.15));
}
#permissions-matrix .scope-select.scope-none {
	opacity: 0.4;
}
#permissions-matrix .form-check-input.perm-cb {
	cursor: pointer;
}
#permissions-matrix .entity-row td {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}
