/* SHIELD: защита текста главы в читалке. Подключается только когда защита действует (ready_read.php). */

/* запрет выделения и вызова системного меню в зоне защищённого текста */
.nb-reader.nb-shield-on .nb-reader-text,
.nb-reader-text[data-shield] {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
}
/* курсор — обычный текстовый недоступен, показываем стрелку */
.nb-reader.nb-shield-on .nb-reader-text p { cursor: default; }

/* заглушка на время загрузки защищённого текста */
.nb-shield-load {
	color: var(--reader-muted, var(--muted-foreground));
	font-style: italic;
	opacity: .75;
	margin: 0;
}
/* место под текст, пока он расшифровывается (CLS): оценка из ready_read.php — строки × интерлиньяж + отступы абзацев +
   картинки, но не больше экрана (конец главы, навигация и комментарии уходят за нижний край и не прыгают на глазах) */
.nb-reader-text[data-shield="cipher"][aria-busy="true"] {
	min-height: min(100vh, calc(var(--rd-l, 60) * var(--reader-leading, 1.75) * 1em + var(--rd-p, 0) * 1em + var(--rd-i, 0) * 1px));
}
@media (max-width: 700px) {
	.nb-reader-text[data-shield="cipher"][aria-busy="true"] {
		min-height: min(100vh, calc(var(--rd-lm, 60) * var(--reader-leading, 1.75) * 1em + var(--rd-p, 0) * 1em + var(--rd-im, 0) * 1px));
	}
}

/* глифовая обфускация: подменяем гарнитуру читалки на шрифт варианта (nfs-*), сами @font-face вставляет сервер.
   unicode-range шрифтов ограничен областью частного использования — на пробелы и остальной интерфейс не влияет. */
.nb-reader.nb-shielded .nb-reader-text {
	font-family: "nfs-serif", Georgia, "Times New Roman", serif;
}
.nb-reader.nb-shielded.font-roboto .nb-reader-text {
	font-family: "nfs-roboto", Georgia, "Times New Roman", serif;
}
.nb-reader.nb-shielded.font-sans .nb-reader-text {
	font-family: "nfs-sans", ui-sans-serif, system-ui, sans-serif;
}
/* курсив внутри текста (em/i) — из курсивного начертания того же семейства (для roboto),
   для остальных браузер синтезирует наклон */
.nb-reader.nb-shielded .nb-reader-text i,
.nb-reader.nb-shielded .nb-reader-text em { font-style: italic; }

/* печать: защищённый текст не выводится */
@media print {
	.nb-reader.nb-shield-on .nb-reader-text { display: none !important; }
	.nb-reader.nb-shield-on .nb-reader-surface::before {
		content: "Печать защищённого текста отключена.";
		display: block;
		padding: 24px 0;
		font-style: italic;
		color: #555;
	}
}

/* админка: блок «Страница запрета и маскот» (/admin/shield) */
.nf-guard-admin { display: flex; gap: 12px; align-items: center; }
.nf-guard-admin img { flex: none; }
.nf-guard-admin p { margin: 0; }
