@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600&subset=latin,cyrillic);

*{
	box-sizing: border-box;
}

img {
	max-width: 100%;
}

body {
	margin: 0;
	padding: 0;
	font-family: 'Open Sans', sans-serif;
}

/* ========================================
СТИЛИ МЕНЮ (обновленные с адаптивностью)
======================================== */
nav {
	background: #2D3E50; /* Темный фон меню */
	font-family: Arial, sans-serif;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	position: sticky;
	top: 0;           /* Прилипать к самому верху */
	z-index: 9999;    /* Быть поверх всех остальных элементов (текста, картинок) */
}

ul.topmenu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	background: #2D3E50;
}

ul.topmenu > li {
	position: relative;
}

ul.topmenu > li > a {
	display: block;
	padding: 15px 20px;
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
	font-size: 14px;
	font-weight: bold;
	transition: background 0.3s;
	text-align: left;
}

ul.topmenu > li > a:hover,
ul.topmenu > li > a.active {
	background: #5D6D7E; /* Цвет при наведении */
	color: #fff;
}

/* Выпадающее меню */
ul.submenu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #34495E;
	min-width: 250px;
	list-style: none;
	padding: 0;
	z-index: 1000;
	box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}

ul.topmenu > li:hover > ul.submenu {
	display: block;
}

ul.submenu li {
	border-bottom: 1px solid #2C3E50;
}

ul.submenu li a {
	display: block;
	padding: 10px 15px;
	color: #ddd;
	text-decoration: none;
	font-size: 13px;
	transition: background 0.2s;
}

ul.submenu li a:hover {
	background: #E67E22; /* Оранжевый при наведении */
	color: #fff;
}

/* Вложенные подменю (второй уровень) */
ul.submenu > li {
	position: relative;
}

ul.submenu > li > ul.submenu {
	top: 0;
	left: 100%;
	display: none;
}

ul.submenu > li:hover > ul.submenu {
	display: block;
}

/* --- АДАПТИВНОСТЬ МЕНЮ (Мобильные стили) --- */
.menu-toggle {
	display: none; /* Скрыта на ПК */
	font-size: 24px;
	color: white;
	padding: 15px 20px;
	cursor: pointer;
	background: #2D3E50;
	width: 100%;
	box-sizing: border-box;
	text-align: right;
}

@media (max-width: 768px) {
	.menu-toggle {
		display: block; /* Показываем кнопку на мобильных */
	}

	ul.topmenu {
		display: none; /* Скрываем меню по умолчанию */
		flex-direction: column; /* Вертикальный список */
		width: 100%;
	}

	ul.topmenu.active {
		display: flex; /* Показываем при классе active */
	}

	ul.topmenu > li {
		width: 100%;
		border-top: 1px solid rgba(255,255,255,0.1);
	}

	ul.topmenu > li > a {
		text-align: left; /* Выравнивание текста влево */
		padding: 15px;
	}

	/* Адаптация выпадающих списков */
	ul.submenu {
		position: relative; /* Не перекрывает, а сдвигает */
		width: 100%;
		top: 0;
		box-shadow: none;
		background: #233040; /* Чуть темнее фон */
	}

	ul.submenu > li > ul.submenu {
		left: 0; /* Второй уровень тоже внизу, а не сбоку */
	}

	/* ОТКЛЮЧАЕМ HOVER НА МОБИЛЬНЫХ, ИСПОЛЬЗУЕМ КЛАСС .mobile-active */
	ul.topmenu > li:hover > ul.submenu {
		display: none; /* Убираем открытие по наведению */
	}

	ul.topmenu > li.mobile-active > ul.submenu {
		display: block !important; /* Открываем только при наличии класса */
	}
}

/* ========================================
ОСТАЛЬНЫЕ СТИЛИ (оригинальные)
======================================== */
button {
	border: none;
	background-color: transparent;
}

sup {
	color: red;
}

/* Основной контейнер для текста */
.content {
	max-width: 1200px; /* Максимальная ширина текста для удобства чтения */
	margin: 0 auto;    /* Центрирование контейнера на странице */
	padding: 20px;     /* Внутренние отступы: сверху/снизу и слева/справа */
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
	.content {
		padding: 15px; /* Немного уменьшенные отступы на смартфонах */
	}
}

/* =========================================================
ОБНОВЛЕННЫЙ CSS (СКОПИРОВАТЬ НА ВАШ САЙТ)
========================================================= */
.code-container {
	--c-bg: #f6f8fa;
	--c-text: #24292e;
	--c-border: #e1e4e8;
	--c-tb-bg: #eaecef;
	--c-tb-text: #586069;
	--c-line: #6a737d;
	--c-line-hover: #eaecef;
	--c-hl-line: #fffbdd;
	--s-kw: #d73a49;
	--s-str: #032f62;
	--s-com: #6a737d;
	--s-num: #005cc5;
	--s-func: #6f42c1;
	--s-var: #e36209;
	--s-tag: #22863a;

	/* 🌟 Новые цвета для выделения и Diff */
	--c-sel-bg: rgba(3, 102, 214, 0.1);
	--c-sel-border: #0366d6;
	--c-diff-add-bg: rgba(46, 160, 67, 0.12);
	--c-diff-add-border: #28a745;
	--c-diff-rem-bg: rgba(215, 58, 73, 0.12);
	--c-diff-rem-border: #d73a49;

	position: relative;
	margin: 15px 0;
	border-radius: 6px;
	font-size: 14px;
}

.code-container.dark-theme {
	--c-bg: #282c34;
	--c-text: #abb2bf;
	--c-border: #181a1f;
	--c-tb-bg: #21252b;
	--c-tb-text: #9da5b4;
	--c-line: #5c6370;
	--c-line-hover: #2c313a;
	--c-hl-line: #3e4451;
	--s-kw: #c678dd;
	--s-str: #98c379;
	--s-com: #5c6370;
	--s-num: #d19a66;
	--s-func: #61afef;
	--s-var: #e06c75;
	--s-tag: #e06c75;

	/* 🌟 Темные цвета для выделения и Diff */
	--c-sel-bg: rgba(88, 166, 255, 0.15);
	--c-sel-border: #58a6ff;
	--c-diff-add-bg: rgba(46, 160, 67, 0.25);
	--c-diff-add-border: #3fb950;
	--c-diff-rem-bg: rgba(215, 58, 73, 0.25);
	--c-diff-rem-border: #f85149;
}

.code-container.is-fullscreen {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99999;
	margin: 0;
	border-radius: 0;
	display: flex;
	flex-direction: column;
}

.code-toolbar {
	background: var(--c-tb-bg);
	border: 1px solid var(--c-border);
	border-bottom: none;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
	padding: 8px 15px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	transition: background 0.3s, border-color 0.3s;
}
.code-container.is-fullscreen .code-toolbar {
	border-radius: 0;
	border-top: none;
	border-left: none;
	border-right: none;
}

.code-info {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.code-filename {
	font-family: Consolas, Monaco, monospace;
	font-size: 13px;
	font-weight: bold;
	color: var(--c-text);
}
.code-lang-header {
	font-family: system-ui, sans-serif;
	font-size: 11px;
	font-weight: bold;
	color: var(--c-tb-text);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.code-stats {
	font-family: system-ui, sans-serif;
	font-size: 11px;
	color: var(--c-line);
	background: rgba(128,128,128,0.1);
	padding: 2px 6px;
	border-radius: 4px;
}

.code-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.code-action-btn {
	background: transparent;
	border: 1px solid var(--c-border);
	border-radius: 4px;
	padding: 4px 8px;
	font-size: 12px;
	color: var(--c-tb-text);
	cursor: pointer;
	transition: 0.2s;
	line-height: 1.2;
}
.code-action-btn:hover {
	background: var(--c-bg);
	color: var(--c-text);
	border-color: var(--c-line);
}

.code-block {
	background: var(--c-bg);
	color: var(--c-text);
	padding: 15px 0;
	border: 1px solid var(--c-border);
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
	overflow-x: auto;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: inherit;
	line-height: 1.5;
	counter-reset: line;
	margin: 0;
	transition: max-height 0.3s ease, background 0.3s, color 0.3s;
}
.code-container.is-fullscreen .code-block {
	border-radius: 0;
	flex: 1;
	border-left: none;
	border-right: none;
	border-bottom: none;
	max-height: none !important;
}
.code-block code {
	font-family: inherit;
	display: block;
}

/* 🌟 Строки кода теперь интерактивны */
.code-line {
	counter-increment: line;
	display: block;
	white-space: pre;
	padding: 0 15px;
	cursor: pointer; /* Указатель мыши для клика */
	transition: background 0.1s;
}

.code-line:hover {
	background: var(--c-line-hover);
}

/* 🌟 1. Стили выделенных строк (по клику) */
.code-line.is-selected {
	background: var(--c-sel-bg) !important;
	box-shadow: inset 3px 0 0 var(--c-sel-border);
}

/* 🌟 2. Стили Diff (Добавленные и Удаленные строки) */
.code-line.diff-add {
	background: var(--c-diff-add-bg);
	box-shadow: inset 3px 0 0 var(--c-diff-add-border);
}
.code-line.diff-remove {
	background: var(--c-diff-rem-bg);
	box-shadow: inset 3px 0 0 var(--c-diff-rem-border);
}
.code-line.diff-add::before {
	color: var(--c-diff-add-border);
}
.code-line.diff-remove::before {
	color: var(--c-diff-rem-border);
}

.code-line::before {
	content: counter(line);
	display: inline-block;
	width: 2.5em;
	margin-right: 15px;
	padding-right: 15px;
	color: var(--c-line);
	text-align: right;
	border-right: 1px solid var(--c-border);
	user-select: none;
	-webkit-user-select: none;
}
.code-container.no-lines .code-line::before {
	display: none;
}
.code-container.wrap-lines .code-line {
	white-space: pre-wrap;
	word-break: break-word;
}
.code-container.is-collapsed .code-block {
	max-height: 120px;
	overflow: hidden;
	position: relative;
}
.code-container.is-collapsed::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60px;
	background: linear-gradient(transparent, var(--c-bg));
	pointer-events: none;
}
.code-container.has-scroll .code-block {
	max-height: 400px;
	overflow-y: auto;
}
.code-container.is-collapsed.has-scroll .code-block {
	max-height: 120px;
	overflow: hidden;
}
.code-line.hl-focused {
	background-color: var(--c-hl-line);
}

.hl-keyword {
	color: var(--s-kw);
	font-weight: bold;
}
.hl-string {
	color: var(--s-str);
}
.hl-comment {
	color: var(--s-com);
	font-style: italic;
}
.hl-number {
	color: var(--s-num);
}
.hl-function {
	color: var(--s-func);
	font-weight: 500;
}
.hl-variable {
	color: var(--s-var);
}
.hl-tag {
	color: var(--s-tag);
}
/* ========================================================= */
