/**
 * Путь: /assets/css/layout.css
 * Назначение: Каркас сайта (Сетка, Header, Footer, Sidebar).
 */

/* ==========================================================================
   ОСНОВНОЙ КАРКАС (Бронебойный Flexbox)
   ========================================================================== */
.layout {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	padding-top: var(--space-8);
	padding-bottom: var(--space-10);
	max-width: 1280px;
	margin: 0 auto;
	width: 100%;
}

.main-content {
	flex: 1;
	min-width: 0;
	width: 100%;
}

.sidebar {
	width: 100%;
}

/* Десктопная версия: Контент слева, Сайдбар справа */
@media (min-width: 1024px) {
	.layout {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--space-10);
	}

	.main-content {
		/* Ограничиваем контентную часть, чтобы она не была бесконечно широкой */
		max-width: calc(100% - 330px); 
	}

	.sidebar {
		width: 300px;
		flex-shrink: 0;
		position: sticky;
		top: 88px; /* Фиксируем сайдбар при скролле */
		display: flex;
		flex-direction: column;
		gap: var(--space-6);
	}
}

/* ==========================================================================
   ШАПКА (HEADER)
   ========================================================================== */
.header {
	background-color: var(--color-bg-surface);
	border-bottom: 1px solid var(--color-border);
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

.header__inner {
	display: flex;
	align-items: center;
	height: 60px;
	gap: var(--space-4);
}

.header__toggle {
	display: block;
	color: var(--color-text-muted);
}
@media (min-width: 1024px) {
	.header__toggle { display: none; }
}

.header__brand .logo {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-primary);
	display: flex;
	align-items: center;
}
.header__brand .logo svg { height: 28px; width: auto; }

/* Поиск в шапке */
.header__search {
	flex: 1;
	max-width: 600px;
	position: relative;
	margin: 0 auto; /* Центрируем по экрану */
}

@media (max-width: 767px) {
	.header__search { display: none; }
}

.header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin-left: auto; /* Прижимаем вправо */
}

.header__theme-toggle {
	color: var(--color-text-muted);
	border-radius: var(--radius-full);
	padding: var(--space-2);
	background: transparent;
}
.header__theme-toggle:hover { background: var(--color-bg-base); color: var(--color-text-main); }
.header__theme-toggle .icon--sun { display: none; }
.header__theme-toggle .icon--moon { display: block; }
body.dark-mode .header__theme-toggle .icon--sun { display: block; }
body.dark-mode .header__theme-toggle .icon--moon { display: none; }

.header__bell-btn {
	position: relative;
	color: var(--color-text-muted);
	padding: var(--space-2);
	background: transparent;
	border-radius: var(--radius-full);
}
.header__bell-btn:hover { background: var(--color-bg-base); color: var(--color-text-main); }
.header__bell-badge {
	position: absolute;
	top: 0px;
	right: 0px;
	background: var(--color-danger);
	color: var(--color-text-inverse);
	font-size: 10px;
	font-weight: bold;
	padding: 2px 5px;
	border-radius: var(--radius-full);
	line-height: 1;
	border: 2px solid var(--color-bg-surface);
}

.header__user-btn {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	background: transparent;
	padding: var(--space-1) var(--space-2);
	border-radius: var(--radius-full);
	border: 1px solid transparent;
}
.header__user-btn:hover { border-color: var(--color-border); background: var(--color-bg-base); }
.header__user-btn .avatar { width: 32px; height: 32px; border-radius: var(--radius-full); }
.header__user-rep { font-size: var(--font-size-sm); font-weight: bold; color: var(--color-text-muted); }

/* ==========================================================================
   МЕНЮ САЙДБАРА
   ========================================================================== */
.sidebar__nav .nav-list { display: flex; flex-direction: column; gap: 2px; }

.sidebar__nav .nav-list__title {
	font-size: 11px;
	text-transform: uppercase;
	color: var(--color-text-muted);
	margin-top: var(--space-6);
	margin-bottom: var(--space-2);
	letter-spacing: 0.5px;
	font-weight: 700;
	padding-left: var(--space-3);
}

.sidebar__nav .nav-list__link {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: 8px 12px;
	color: var(--color-text-muted);
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-weight: 500;
}

.sidebar__nav .nav-list__link:hover,
.sidebar__nav .nav-list__link.is-active {
	background-color: var(--color-bg-surface);
	color: var(--color-text-main);
	box-shadow: var(--shadow-sm);
}
.sidebar__nav .nav-list__link.is-active {
	border-left: 3px solid var(--color-primary);
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
	background-color: #fff;
}

/* Мобильный сайдбар */
@media (max-width: 1023px) {
	.sidebar {
		position: fixed;
		top: 0;
		left: -300px;
		width: 280px;
		height: 100vh;
		background: var(--color-bg-surface);
		z-index: 1000;
		padding: var(--space-6);
		overflow-y: auto;
		transition: transform 0.3s ease;
		box-shadow: var(--shadow-lg);
	}
	.sidebar.is-open { transform: translateX(300px); }
	.sidebar-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 999; display: none; }
	.sidebar-overlay.is-active { display: block; }
}

/* ==========================================================================
   ПОДВАЛ (FOOTER)
   ========================================================================== */
.footer {
	background-color: var(--color-bg-surface);
	border-top: 1px solid var(--color-border);
	padding-top: var(--space-10);
	padding-bottom: var(--space-6);
	margin-top: auto;
}
.footer__inner { display: flex; flex-wrap: wrap; gap: var(--space-8); margin-bottom: var(--space-8); justify-content: space-between; }
.footer__brand { max-width: 300px; }
.footer__nav { display: flex; gap: 60px; flex-wrap: wrap; }
.footer__title { font-size: 13px; text-transform: uppercase; color: var(--color-text-main); margin-bottom: var(--space-4); font-weight: 700; }
.footer__nav ul li { margin-bottom: 8px; }
.footer__nav ul a { color: var(--color-text-muted); font-size: 14px; }
.footer__nav ul a:hover { color: var(--color-primary); }
.footer__bottom { border-top: 1px solid var(--color-border); padding-top: var(--space-6); display: flex; flex-wrap: wrap; justify-content: space-between; font-size: 13px; color: var(--color-text-muted); }