/**
 * IQMO — общие design tokens и сброс для статических HTML-страниц.
 * Подключать сразу после Google Fonts (Manrope), до инлайн-<style> страницы.
 */
:root {
	--bg: #f3f5f8;
	--ink: #11141a;
	--ink-2: #2a2f38;
	--muted: #6b7280;
	--line: #e6e9ef;
	--card: #ffffff;
	--dark: #1f2430;
	--accent: #4f7bd6;
	--accent-weak: #eaf0fb;
	--green: #3ec37a;
	--amber: #e39b2a;
	--red: #d65a5a;
	/* тёплые страницы (разминка, статусы): */
	--green-dk: #2fa968;
	--green-bg: #e7f6ec;
	--red-bg: #fbe8e8;
	--red-dk: #b64141;
	--amber-dk: #b57212;
	--amber-bg: #fbf0d9;
	--radius: 18px;
	--shadow: 0 1px 2px rgba(17, 20, 26, 0.04), 0 8px 24px -12px rgba(17, 20, 26, 0.08);
	/* Единая ширина контента на всех страницах (topnav, карточки, экзамен). */
	--site-max: 1280px;
	--site-gutter: 28px;
}

* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: "Manrope", system-ui, -apple-system, sans-serif;
	color: var(--ink);
	background: var(--bg);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

a {
	color: inherit;
	text-decoration: none;
}

button:not(.btn):not(.q-flag):not(.pill-btn):not(.lm-btn):not(.pd-cta):not(.nav-task):not(.opt):not(.qchip):not(.qbtn):not(.finish-btn):not(.abort-btn):not(.postpone-btn):not(.soc-write):not(.soc-compose-send):not(.soc-compose-cancel):not(.soc-more):not(.soc-react):not(.soc-replies) {
	font-family: inherit;
	cursor: pointer;
	border: 0;
	background: none;
}

h1,
h2,
h3,
h4,
p {
	margin: 0;
}

[hidden] {
	display: none !important;
}

/* Anti-FOUC для шапки авторизации.
 *
 * Базовая разметка отдаёт «гостевую» шапку: #iqmo-nav-login виден,
 * #iqmo-nav-profile/#iqmo-nav-logout — `hidden`, .iqmo-only-guest —
 * виден, .iqmo-only-authed — `hidden`. Дальше iqmo-nav.js делает
 * fetch('/api/me') и переключает их по результату. Между парсом
 * HTML и приходом ответа — те самые ~200мс, когда залогиненный
 * успевает увидеть «Вход» и «Попробовать бесплатно».
 *
 * Лечим так: в head каждой страницы синхронный inline-`<script>`
 * читает localStorage['iqmo_auth_hint'] (его пишет iqmo-nav.js
 * после успешного /api/me) и ставит data-iqmo-auth="authed|guest"
 * на <html>. Эти правила применяются ДО рендера body, и нужный
 * вариант кнопок появляется сразу. Если hint оказался стейл —
 * iqmo-nav.js перерисует обратно после реального /api/me.
 */
html[data-iqmo-auth='authed'] .iqmo-only-guest,
html[data-iqmo-auth='authed'] #iqmo-nav-login {
	display: none !important;
}
html[data-iqmo-auth='guest'] .iqmo-only-authed,
html[data-iqmo-auth='guest'] #iqmo-nav-profile,
html[data-iqmo-auth='guest'] #iqmo-nav-logout {
	display: none !important;
}

.container {
	width: 100%;
	max-width: var(--site-max);
	margin: 0 auto;
	padding: 0 var(--site-gutter);
	box-sizing: border-box;
}

/* Общая обёртка страницы (subject-*, profile, full-test hub). */
.shell {
	width: 100%;
	max-width: var(--site-max);
	margin: 0 auto;
	padding: 24px var(--site-gutter) 56px;
	box-sizing: border-box;
}

/* Не дублировать боковые отступы, если .container внутри .shell. */
.shell > .container,
.shell > main > .container,
.shell > .page__main > .container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
