/* Кабинет партнёра ISON. Цвета и раскладка - по макетам заказчика. */

/* Шрифт кабинета. Лежит файлами в плагине: не зависит от внешних сервисов и
   даёт те же ширины строк, что на макетах (заголовок 482 px против 479 на макете). */
@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Inter-400-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Inter-400-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/Inter-500-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/Inter-500-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/Inter-600-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/Inter-600-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/Inter-700-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/Inter-700-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Golos-400-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Golos-400-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/Golos-500-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/Golos-500-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/Golos-600-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/Golos-600-lat.woff2') format('woff2');
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/Golos-700-cyr.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: 'ISON Golos';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/Golos-700-lat.woff2') format('woff2');
}

:root {
	--ison-font: 'ISON Golos', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
	--ison-orange: #f2551b;
	--ison-orange-dark: #d8430d;
	--ison-dark: #16181d;
	--ison-dark-2: #1e2129;
	--ison-text: #23262d;
	--ison-muted: #7c8598;
	--ison-line: #e6e9ef;
	--ison-bg: #f5f6f8;
	--ison-radius: 14px;
}


/* шрифт кабинета применяем ко всем нашим блокам - тема electro ставит свой */
.ison-page,
.ison-page input,
.ison-page select,
.ison-page textarea,
.ison-page button,
.ison-signup,
.ison-signup input,
.ison-signup select,
.ison-signup textarea,
.ison-signup button,
.ison-login,
.ison-login input,
.ison-login button {
	font-family: var(--ison-font);
}

.ison-body {
	margin: 0;
	font-family: var(--ison-font);
	color: var(--ison-text);
	background: var(--ison-bg);
}

/* ---------- страница входа ---------- */

.ison-body--login {
	background: #0e1014 url("../img/login-bg.jpg?v=3") center/cover no-repeat fixed;
}

.ison-login {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 16px;
	box-sizing: border-box;
}

.ison-login__card {
	width: 100%;
	max-width: 660px;
	background: rgba(21, 25, 33, 0.94);
	border-radius: 18px;
	padding: 40px 48px 32px;
	box-sizing: border-box;
	color: #fff;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.ison-login__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-bottom: 28px;
}

.ison-login__logo {
	font-size: 40px;
	font-weight: 700;
	letter-spacing: 1px;
}

.ison-login__logo::first-letter {
	color: var(--ison-orange);
}

.ison-login__tagline {
	font-size: 11px;
	line-height: 1.35;
	letter-spacing: 0.08em;
	color: #cfd4de;
	border-left: 1px solid #3a4050;
	padding-left: 18px;
}

.ison-login__title {
	margin: 0 0 10px;
	font-size: 30px;
	line-height: 1.2;
}

.ison-login__subtitle {
	margin: 0 0 26px;
	color: #aeb6c4;
	font-size: 15px;
	line-height: 1.5;
}

.ison-field {
	display: block;
	margin-bottom: 18px;
}

.ison-field__label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	color: #dfe3ea;
}

.ison-field__label i {
	color: var(--ison-orange);
	font-style: normal;
}

.ison-field__control {
	position: relative;
	display: block;
}

.ison-login .ison-field__control input[type="email"],
.ison-login .ison-field__control input[type="password"],
.ison-login .ison-field__control input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	height: 52px;
	margin: 0;
	padding: 0 46px 0 46px;
	border-radius: 10px;
	border: 1px solid #333a48;
	background: #1b1f28;
	color: #fff;
	font-size: 15px;
	line-height: 52px;
	outline: none;
	box-shadow: none;
}

/* автозаполнение браузера красит поля в голубой - возвращаем тёмный вид макета */
.ison-login .ison-field__control input:-webkit-autofill,
.ison-login .ison-field__control input:-webkit-autofill:hover,
.ison-login .ison-field__control input:-webkit-autofill:focus {
	-webkit-text-fill-color: #fff;
	caret-color: #fff;
	-webkit-box-shadow: 0 0 0 1000px #1b1f28 inset;
	box-shadow: 0 0 0 1000px #1b1f28 inset;
	transition: background-color 5000s ease-in-out 0s;
}

.ison-login .ison-field__control input::placeholder {
	color: #7d8595;
}

.ison-login .ison-field__control input:focus {
	border-color: var(--ison-orange);
	background: #1b1f28;
	color: #fff;
}

.ison-field__icon {
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	color: #8b93a4;
	pointer-events: none;
}

.ison-field__eye {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	border: 0;
	background: transparent;
	cursor: pointer;
	opacity: 0.6;
}

.ison-field__eye {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #cfd4de;
}

.ison-svg {
	display: block;
	flex: 0 0 auto;
}

.ison-field__eye .ison-svg {
	width: 22px;
	height: 22px;
}

.ison-field__icon .ison-svg {
	width: 18px;
	height: 18px;
}

.ison-menu__icon .ison-svg {
	width: 20px;
	height: 20px;
}

.ison-login__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 4px 0 22px;
	font-size: 14px;
}

.ison-check {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #dfe3ea;
	cursor: pointer;
}

.ison-check input {
	width: 20px;
	height: 20px;
	accent-color: var(--ison-orange);
}

.ison-login__forgot {
	color: var(--ison-orange);
	text-decoration: none;
}

.ison-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 54px;
	padding: 0 26px;
	border: 0;
	border-radius: 10px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ison-btn--wide {
	width: 100%;
	box-sizing: border-box;
}

.ison-btn--primary {
	background: var(--ison-orange);
	color: #fff;
}

.ison-btn--primary:hover {
	background: var(--ison-orange-dark);
}

.ison-btn--ghost {
	background: transparent;
	color: var(--ison-orange);
	border: 1px solid var(--ison-orange);
}

.ison-btn--ghost:hover {
	background: rgba(242, 85, 27, 0.12);
}

.ison-login__divider {
	position: relative;
	text-align: center;
	margin: 24px 0 18px;
	color: #97a0b0;
	font-size: 14px;
}

.ison-login__divider::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 1px;
	background: #333a48;
}

.ison-login__divider span {
	position: relative;
	background: rgba(21, 25, 33, 0.94);
	padding: 0 14px;
}

.ison-login__contacts {
	display: flex;
	gap: 18px;
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid #2b3140;
}

.ison-login__contacts a {
	flex: 1;
	color: #fff;
	text-decoration: none;
	font-size: 13px;
	line-height: 1.4;
}

.ison-login__contacts small {
	display: block;
	color: #8b93a4;
	font-size: 11px;
}

.ison-alert {
	border-radius: 10px;
	padding: 12px 16px;
	margin-bottom: 18px;
	font-size: 14px;
}

.ison-alert--error {
	background: rgba(214, 48, 49, 0.15);
	border: 1px solid rgba(214, 48, 49, 0.5);
	color: #ffb4b4;
}

/* ---------- каркас кабинета ---------- */

.ison-layout {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: stretch;
	width: 100%;
	max-width: 100%;
	flex: 1 1 auto;
	min-height: 60vh;
	margin: 18px 0 30px;
	background: var(--ison-bg);
}

/* виджеты темы поверх кабинета мешают вёрстке макета */
.ison-body--login #popup_button_fixed,
.ison-body--login .ws-chat-btn-el-container,
.ison-body--login #left_banner,
.ison-body--login #right_banner,
.ison-body--login .b24-widget-button-wrapper,
.ison-body--login .jivo-btn,
.ison-body--login #jvlabelWrap {
	display: none !important;
}

.ison-sidebar {
	width: 254px;
	flex: 0 0 254px;
	background: var(--ison-dark);
	color: #fff;
	display: flex;
	flex-direction: column;
	padding: 22px 0 18px;
	box-sizing: border-box;
}

.ison-sidebar__user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 20px 20px;
}

.ison-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 2px solid var(--ison-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 14px;
}

.ison-sidebar__name strong {
	display: block;
	font-size: 15px;
}

.ison-sidebar__name small {
	color: #8b93a4;
	font-size: 12px;
}

.ison-menu {
	display: flex;
	flex-direction: column;
}

.ison-menu__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	opacity: 0.85;
}

.ison-menu__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 20px;
	color: #d7dbe3;
	text-decoration: none;
	font-size: 14px;
	border-left: 3px solid transparent;
}

.ison-menu__item:hover {
	background: rgba(255, 255, 255, 0.05);
	color: #fff;
}

.ison-menu__item.is-active {
	background: linear-gradient(90deg, var(--ison-orange) 0%, var(--ison-orange-dark) 100%);
	color: #fff;
	border-left-color: #fff;
}

.ison-sidebar__promo {
	margin: auto 20px 18px;
	font-size: 12px;
	line-height: 1.4;
	color: #cfd4de;
}

.ison-sidebar__support {
	padding: 16px 20px;
	border-top: 1px solid #262a33;
	font-size: 13px;
}

.ison-sidebar__support a {
	display: block;
	color: #fff;
	text-decoration: none;
}

.ison-sidebar__support-title {
	display: block;
	color: #8b93a4;
	margin-bottom: 6px;
}

.ison-sidebar__letter,
.ison-sidebar__logout {
	display: block;
	padding: 12px 20px;
	color: #d7dbe3;
	text-decoration: none;
	font-size: 14px;
}

.ison-sidebar__logout {
	color: #8b93a4;
}

.ison-content {
	flex: 1 1 auto;
	padding: 26px 30px 40px;
	min-width: 0;
}

.ison-burger {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid var(--ison-line);
	background: #fff;
	border-radius: 10px;
	font-size: 20px;
	cursor: pointer;
	margin-bottom: 16px;
}

.ison-page__title {
	margin: 0 0 6px;
	font-size: 28px;
	color: #14315e;
}

.ison-page__lead {
	margin: 0 0 22px;
	color: var(--ison-muted);
}

.ison-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}

.ison-card {
	background: #fff;
	border: 1px solid var(--ison-line);
	border-radius: var(--ison-radius);
	padding: 18px 20px;
}

.ison-card__label {
	display: block;
	color: var(--ison-muted);
	font-size: 13px;
	margin-bottom: 8px;
}

.ison-card__value {
	font-size: 20px;
	color: var(--ison-text);
}

.ison-card__value--big {
	display: block;
	font-size: 34px;
	color: var(--ison-orange);
	margin-bottom: 6px;
}

/* Плавающие элементы темы (боковые баннеры с камерами, кнопка «Подобрать
   видеонаблюдение», виджеты чата) лежат поверх кабинета и перехватывают нажатия:
   кнопка подбора занимает левый нижний угол ровно поверх колонки меню, и вместо
   пункта меню открывалась страница подбора комплекта. На макете кабинета этих
   элементов нет - гасим их на всех страницах раздела. */
body.ison-cabinet #left_banner,
body.ison-cabinet #right_banner,
body.ison-cabinet #popup_button_fixed,
body.ison-cabinet .popup_button_fixed,
body.ison-cabinet .ws-chat-btn-el-container,
body.ison-cabinet .b24-widget-button-wrapper,
body.ison-cabinet .jivo-btn,
body.ison-cabinet #jvlabelWrap {
	display: none !important;
}

/* На макете кабинет занимает весь экран, а контейнер темы всего 1200 px -
   на широких мониторах выпускаем кабинет во всю ширину, иначе 7 карточек
   уровней не помещаются в ряд и суммы обрезаются. */
@media (min-width: 1280px) {
	body.ison-cabinet .ison-layout {
		/* без этого флекс-родитель темы (.site-content-inner) сжимает блок обратно
		   до своих 1200 px и заданная ширина не действует */
		flex: 0 0 auto;
		/* 100vw включает полосу прокрутки и даёт горизонтальный скролл, поэтому
		   настоящую ширину окна кладёт в --ison-vw скрипт кабинета; без скрипта
		   переменной нет и вёрстка остаётся прежней, шириной с контейнер темы */
		width: calc(var(--ison-vw, 100%) - 20px);
		max-width: calc(var(--ison-vw, 100%) - 20px);
		margin-left: calc((100% - var(--ison-vw, 100%)) / 2 + 10px);
		margin-right: calc((100% - var(--ison-vw, 100%)) / 2 + 10px);
	}
}

/* ---------- адаптив ---------- */

@media (max-width: 1366px) {
	.ison-sidebar { width: 226px; flex-basis: 226px; }
	.ison-content { padding: 22px 20px 32px; }
}

@media (max-width: 1024px) {
	.ison-burger { display: block; }
	.ison-sidebar {
		position: fixed;
		z-index: 60;
		top: 0;
		bottom: 0;
		left: 0;
		max-height: 100vh;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		transform: translateX(-100%);
		transition: transform 0.2s ease;
	}

	/* на узком экране «Написать руководству» и «Выйти» должны оставаться достижимыми */
	.ison-sidebar__promo {
		margin: 16px 20px;
	}
	/* приоритет явный: у темы есть свои правила для боковых панелей, они перебивали наше */
	.ison-sidebar.is-open {
		transform: translateX(0) !important;
		/* виджет чата сайта имеет запредельный z-index и накрывает «Выйти» */
		z-index: 2147483646 !important;
	}

	/* пока меню открыто, плавающие кнопки сайта не должны ловить нажатия */
	.ison-sidebar.is-open ~ .ws-chat-btn-el-container,
	body:has(.ison-sidebar.is-open) .ws-chat-btn-el-container,
	body:has(.ison-sidebar.is-open) #popup_button_fixed,
	body:has(.ison-sidebar.is-open) .popup_button_fixed,
	body:has(.ison-sidebar.is-open) #left_banner,
	body:has(.ison-sidebar.is-open) #right_banner {
		display: none !important;
	}
	.ison-content { padding: 18px 16px 30px; }
}

@media (max-width: 640px) {
	.ison-login__card { padding: 28px 20px 24px; }
	.ison-login__title { font-size: 24px; }
	.ison-login__contacts { flex-direction: column; gap: 12px; }
	.ison-page__title { font-size: 22px; }
}

.ison-alert--ok {
	background: rgba(39, 174, 96, 0.15);
	border: 1px solid rgba(39, 174, 96, 0.5);
	color: #b7ecc8;
}

.ison-sidebar__letter {
	display: flex;
	align-items: center;
	gap: 12px;
}

/* ---------- страница «Моя скидка и статус» (макет 05) ---------- */

/* На макете 05 хлебные крошки лежат ВНУТРИ светлой шапки, а не над ней: шапка
   начинается в 11 px от верха кабинета, крошки - в 22. У нас крошки печатаются
   отдельным блоком выше, поэтому шапку поднимаем под них и возвращаем место
   внутренним отступом, а крошки поднимаем поверх её заливки. */
body.ison-cabinet .ison-program__hero {
	position: relative;
	margin-top: -51px;
	padding-top: 25px;
	margin-bottom: 6px;
	/* На макете крошки, заголовок и обе строки под ним стоят на ОДНОЙ вертикали (278).
	   Крошки лежат поверх плашки и в её боковой отступ не попадают, поэтому слева
	   отступ снимаем - иначе заголовок стоял на 25 px правее крошек. */
	padding-left: 0;
}

body.ison-cabinet .ison-crumbs {
	position: relative;
	z-index: 2;
}

/* Замеры по макету 05: заголовок 535×36, строка «Больше возможностей» 373×16
   тёмно-синяя (0,0,124), подсказка одной строкой 722 px, вся шапка 143 в высоту. */
.ison-program__lead {
	color: #00007c;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.25;
	margin-bottom: 6px;
}

.ison-program__hint {
	color: var(--ison-muted);
	margin: 0;
	font-size: 13px;
}

.ison-levels {
	display: grid;
	/* минимальная ширина карточки - чтобы «5 000 000 ₽» не обрезалось;
	   при нехватке места ряд переносится, а не сжимается */
	grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
	gap: 12px;
	margin-bottom: 26px;
}

/* На макете все семь уровней стоят одним рядом. Автоподбор колонок при 1366 давал
   6 + 1, потому что на контент остаётся около 1065 px - поэтому от 1280 задаём
   ровно семь колонок и чуть уменьшаем зазор. */
@media (min-width: 1280px) {
	body.ison-cabinet .ison-levels {
		grid-template-columns: repeat(7, minmax(0, 1fr));
		gap: 10px;
	}
}

/* В семи колонках на 1280-1520 карточка узкая. Разрешать плашке перенос нельзя:
   она стоит на left: 50% и потому может занять лишь половину карточки - текст
   схлопывался в три строки и наезжал на корону. Вместо переноса растягиваем плашку
   от края до края карточки и чуть уменьшаем шрифт - тогда строка одна, как на макете. */
@media (min-width: 1280px) and (max-width: 1520px) {
	body.ison-cabinet .ison-level__badge {
		left: 4px;
		right: 4px;
		transform: none;
		width: auto;
		max-width: none;
		white-space: nowrap;
		font-size: 9px;
		padding-left: 4px;
		padding-right: 4px;
	}

	/* В узкой колонке «Осталось 5 000 000 ₽» не помещалось в строку и сумма
	   выступала за подчёркивание - ужимаем подпись, сумму оставляем целой. */
	body.ison-cabinet .ison-level__row {
		font-size: 10px;
		gap: 4px;
	}

	/* подпись не режем: при больших суммах строка просто переносится,
	   иначе заказчик видит «Ваши покy...» вместо «Ваши покупки» */
	body.ison-cabinet .ison-level__row {
		flex-wrap: wrap;
	}

	body.ison-cabinet .ison-level__row span {
		min-width: 0;
		white-space: normal;
	}

	body.ison-cabinet .ison-level__row b {
		white-space: nowrap;
	}
}

.ison-level {
	position: relative;
	background: #fff;
	border: 1px solid var(--ison-line);
	border-radius: var(--ison-radius);
	/* на макете 05 корона начинается в 10 px от верха карточки, у нас было 26 -
	   от этого всё содержимое карточки стояло на 16-27 px ниже макетного */
	padding: 10px 14px 18px;
	text-align: center;
}

.ison-level.is-current {
	border-color: var(--ison-orange);
	box-shadow: 0 6px 22px rgba(242, 85, 27, 0.15);
	background: #fffaf7;
}

.ison-level__badge {
	position: absolute;
	top: -11px;
	left: 50%;
	transform: translateX(-50%);
	max-width: 96%;
	box-sizing: border-box;
	text-align: center;
	white-space: nowrap;
	background: var(--ison-orange);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 4px 10px;
	border-radius: 20px;
}

.ison-level__crown {
	display: block;
	margin-bottom: 8px;
}

.ison-level__crown .ison-svg {
	width: 44px;
	height: 44px;
	margin: 0 auto;
}

/* Корона с макета: 85×71, ровно по центру карточки. Высоту держим одинаковой у всех
   семи: у короны текущего уровня вырезка на 8 px ниже (сверху её перекрывала плашка
   «ВАШ ТЕКУЩИЙ СТАТУС»), и без общей высоты содержимое этой карточки уезжало вверх. */
.ison-level__crown img {
	display: block;
	width: 85px;
	height: 71px;
	object-fit: contain;
	object-position: bottom;
	margin: 0 auto;
}

.ison-level__title {
	display: block;
	/* На макете 05 название уровня 90×14 по чернилам. 20 px в нашу карточку не влезали,
	   и длинные названия («ISON BUSINESS») рвались на две строки - от этого расползался
	   весь ряд: в каждой карточке содержимое съезжало на свою высоту. */
	font-size: 17px;
	white-space: nowrap;
	margin-bottom: 10px;
	/* цвет названия задаётся уровнем: на макете 05 у ISON PRO он синий,
	   хотя корона серая, поэтому цвет короны и цвет названия разные */
	color: var(--ison-accent, inherit);
}

.ison-level__discount-label {
	display: block;
	font-size: 14px;
	color: var(--ison-accent, inherit);
}

.ison-level__discount {
	display: block;
	/* на макете 05 цифра скидки 74×29 по чернилам - это примерно 40 px */
	font-size: 40px;
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: 12px;
	color: var(--ison-accent, inherit);
}

.ison-level__row {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 12px;
	color: var(--ison-muted);
	border-bottom: 1px solid var(--ison-line);
	padding: 6px 0;
}

.ison-level__row b {
	color: var(--ison-text);
	white-space: nowrap; /* «450 000 ₽» не должно рваться на три строки */
}

.ison-level__row span {
	white-space: nowrap;
}

.ison-level__features {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	text-align: left;
	font-size: 12px;
	color: var(--ison-muted);
}

.ison-level__features li {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin-bottom: 7px;
	line-height: 1.3;
}

.ison-level__mark {
	flex: 0 0 auto;
	font-weight: 700;
}

.ison-level__features .is-yes .ison-level__mark { color: var(--ison-check, #1f6fd0); }
.ison-level__features .is-no .ison-level__mark { color: #d63031; }

.ison-project-price {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	background: #fff5f0;
	border: 1px solid #ffd9c7;
	border-radius: var(--ison-radius);
	padding: 18px 22px;
	margin-bottom: 18px;
}

.ison-project-price__text strong {
	display: block;
	font-size: 17px;
	color: #14315e;
}

.ison-project-price__text span {
	color: var(--ison-muted);
	font-size: 14px;
}

.ison-project-price__list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13px;
	color: var(--ison-text);
}

.ison-project-price__list li::before {
	content: "✔";
	color: #d63031;
	margin-right: 6px;
}

.ison-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	background: #eef4ff;
	border: 1px solid #d6e4ff;
	border-radius: var(--ison-radius);
	padding: 14px 18px;
	font-size: 14px;
}

.ison-note__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #1f6fd0;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
}

.ison-note strong {
	display: block;
	color: #14315e;
	font-weight: 500;
}

.ison-note span {
	color: var(--ison-orange);
}

@media (max-width: 1366px) {
	.ison-level { padding: 24px 10px 16px; }
	.ison-level__row { font-size: 11px; }
}



@media (max-width: 560px) {
	.ison-project-price { flex-direction: column; align-items: flex-start; }
}


/* ================= главная кабинета (макет 02) ================= */

.ison-dash-head {
	display: grid;
	grid-template-columns: minmax(280px, 1fr) auto auto;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.ison-dash-head .ison-page__title {
	margin-bottom: 4px;
}

.ison-dash-status {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 14px 18px;
	white-space: nowrap;
}

.ison-dash-status__text {
	font-size: 15px;
	color: #4a4f5a;
}

.ison-dash-status__text strong {
	font-size: 16px;
}

.ison-dash-next {
	display: grid;
	gap: 6px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 12px 16px;
	min-width: 240px;
}

.ison-dash-next__title {
	font-size: 12px;
	color: #6b7280;
}

.ison-dash-next__bar {
	display: block;
	height: 6px;
	border-radius: 4px;
	background: #eef0f5;
	overflow: hidden;
}

.ison-dash-next__bar i {
	display: block;
	height: 100%;
	border-radius: 4px;
	background: linear-gradient(90deg, #f2551b, #f7931e);
}

.ison-dash-next__left {
	font-size: 12px;
	color: #6b7280;
}

.ison-dash-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 16px;
	align-items: start;
}

.ison-dash-main {
	display: grid;
	gap: 16px;
	min-width: 0;
}

.ison-tiles {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}

@media (min-width: 1280px) {
	.ison-tiles {
		/* по макету: скидка, оборот и карточка менеджера в один ряд, менеджер шире */
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr);
	}
}

@media (min-width: 760px) and (max-width: 1279px) {
	.ison-tiles {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

.ison-tile {
	display: flex;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
	min-width: 0;
}

/* содержимое плитки не должно вылезать за её край: на 1280-1500 у ссылки
   «Условия программы» срезало последнюю букву */
.ison-tile > div {
	min-width: 0;
}

.ison-tile .ison-link {
	display: inline-block;
	max-width: 100%;
	white-space: nowrap;
	font-size: 13px;
}

.ison-tile--manager {
	flex-wrap: wrap;
	align-items: flex-start;
}

@media (min-width: 760px) and (max-width: 1279px) {
	.ison-tile--manager {
		grid-column: span 2;
	}
}

.ison-tile__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	flex: 0 0 46px;
}

.ison-tile__icon--orange {
	background: #fdece6;
	color: #f2551b;
}

.ison-tile__icon--red {
	background: #fdece6;
	color: #d0342c;
}

.ison-tile__label {
	display: block;
	font-size: 13px;
	color: #6b7280;
	margin-bottom: 2px;
}

.ison-tile__value {
	display: block;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
}

.ison-tile__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 13px;
	color: #6b7280;
}

.ison-growth {
	color: #1f9d55;
	font-weight: 600;
}

.ison-growth.is-down {
	color: #d0342c;
}

.ison-manager__photo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: #eef1f6;
	color: #8a93a3;
	overflow: hidden;
	flex: 0 0 62px;
}

.ison-manager__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ison-manager__info {
	min-width: 180px;
	flex: 1 1 200px;
}

.ison-manager__name {
	display: block;
	font-size: 17px;
	margin-bottom: 6px;
}

.ison-manager__row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: #2c313a;
	margin-bottom: 3px;
	text-decoration: none;
}

.ison-manager__row:hover {
	color: var(--ison-orange, #f2551b);
}

.ison-manager__buttons {
	display: grid;
	gap: 8px;
	align-content: start;
	flex: 1 1 240px;
	min-width: 220px;
}

.ison-msg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 10px;
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid transparent;
	transition: opacity 0.15s ease;
}

.ison-msg:hover {
	opacity: 0.85;
}

.ison-msg--tg {
	background: #e8f3fd;
	border-color: #bcdcf7;
	color: #1c7ed6;
}

.ison-msg--wa {
	background: #e8f8ec;
	border-color: #bfe9c9;
	color: #1f9d55;
}

.ison-dash-tables {
	display: grid;
	/* по умолчанию одна колонка: панель во всю ширину показывает колонку «Статус»
	   без прокрутки. Жёсткий minmax(460px) здесь не годится - на телефоне он не
	   сжимается и уводит всю страницу вбок. Две колонки включаем только когда
	   место действительно есть (см. правило ниже). */
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
}

/* Две колонки включаем только когда каждой панели хватит места на все колонки
   таблицы. На 1500-1700 панель сжималась до 383-533 px, и дата рвалась посреди
   числа («02.09.2 / 026») - там оставляем одну колонку во всю ширину. */
/* 1800 px - ширина, на которой каждой панели хватает на все пять колонок:
   на 1750 дате оставалось 76 px при нужных 81 и год обрезался */
/* На макете 02 таблицы заказов и проектов стоят рядом уже при ширине 1536,
   поэтому порог опущен; ниже 1400 они снова идут друг под другом. */
@media (min-width: 1400px) {
	.ison-dash-tables {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

.ison-panel {
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
	min-width: 0;
}

.ison-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 12px;
}

.ison-panel__title {
	font-size: 17px;
	font-weight: 700;
	margin: 0;
}

.ison-link {
	color: var(--ison-orange, #f2551b);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.ison-link:hover {
	text-decoration: underline;
}

.ison-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.ison-table th {
	text-align: left;
	font-weight: 500;
	color: #8a93a3;
	padding: 6px 8px;
	border-bottom: 1px solid var(--ison-line, #e6e8ee);
	white-space: nowrap;
}

.ison-table td {
	padding: 9px 8px;
	border-bottom: 1px solid #f1f3f7;
	vertical-align: middle;
}

.ison-table tr:last-child td {
	border-bottom: 0;
}

.ison-table__num {
	font-weight: 600;
	white-space: nowrap;
}

.ison-table {
	table-layout: fixed;
}

/* доли колонок как на макете: название занимает всё свободное место,
   а не фиксированные 200 px, поэтому длинные наименования видно целиком */
.ison-table th:nth-child(1), .ison-table td:nth-child(1) { width: 12%; }
.ison-table th:nth-child(2), .ison-table td:nth-child(2) { width: 14%; }
.ison-table th:nth-child(4), .ison-table td:nth-child(4) { width: 16%; }
.ison-table th:nth-child(5), .ison-table td:nth-child(5) { width: 18%; }

.ison-table__name {
	max-width: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ison-table__sum {
	font-weight: 600;
	white-space: nowrap;
}

.ison-table__go a {
	color: var(--ison-orange, #f2551b);
	font-size: 20px;
	text-decoration: none;
	line-height: 1;
}

.ison-status-tag {
	display: inline-block;
	border-radius: 20px;
	padding: 3px 10px;
	font-size: 12px;
	white-space: nowrap;
	background: #eef1f6;
	color: #4a4f5a;
}

.ison-status-tag--completed,
.ison-status-tag--done {
	background: #e6f6ec;
	color: #1f9d55;
}

.ison-status-tag--processing,
.ison-status-tag--work {
	background: #fdf1e3;
	color: #c47a1e;
}

.ison-status-tag--on-hold,
.ison-status-tag--pending {
	background: #fdece6;
	color: #d0342c;
}

.ison-status-tag--approved,
.ison-status-tag--design {
	background: #e8f3fd;
	color: #1c7ed6;
}

.ison-empty {
	font-size: 13px;
	color: #6b7280;
	margin: 6px 0 0;
}

.ison-promo {
	position: relative;
	border-radius: 14px;
	padding: 22px;
	background: linear-gradient(90deg, #eef4fb 0%, #dfe9f5 100%);
	overflow: hidden;
}

.ison-promo__title {
	display: block;
	font-size: 24px;
	line-height: 1.2;
	color: #123b6d;
	margin-bottom: 8px;
}

.ison-promo__lead {
	display: block;
	font-size: 14px;
	color: #3d4b60;
	margin-bottom: 14px;
	max-width: 460px;
}

.ison-promo__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ison-btn--ghost {
	background: #fff;
	color: #123b6d;
	border: 1px solid #c6d5e6;
}

.ison-goods {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
}

.ison-good {
	display: grid;
	gap: 8px;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 12px;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
	min-width: 0;
}

.ison-good:hover {
	box-shadow: 0 6px 18px rgba(18, 59, 109, 0.12);
	transform: translateY(-2px);
}

.ison-good {
	position: relative;
}

.ison-good__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 1;
	border-radius: 6px;
	padding: 3px 8px;
	font-size: 11px;
	font-weight: 600;
	background: #e6f6ec;
	color: #1f9d55;
}

.ison-good__badge--new {
	background: #fdece6;
	color: #d0342c;
}

.ison-good__badge--pro {
	background: #f3ebfd;
	color: #7a41c4;
}

.ison-good__image {
	display: block;
	height: 120px;
	border-radius: 8px;
	background: #f6f7fa;
	overflow: hidden;
}

.ison-good__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ison-good__title {
	font-size: 13px;
	line-height: 1.3;
}

.ison-good__price {
	font-size: 15px;
	font-weight: 700;
	color: var(--ison-orange, #f2551b);
}

.ison-dash-side {
	display: grid;
	gap: 14px;
	align-content: start;
}

.ison-benefits__list {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: grid;
	gap: 14px;
}

.ison-benefits__list li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

.ison-benefits__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #fdece6;
	color: #f2551b;
	flex: 0 0 38px;
}

.ison-benefits__text strong {
	display: block;
	font-size: 14px;
	margin-bottom: 2px;
}

.ison-benefits__text span {
	font-size: 12px;
	color: #6b7280;
	line-height: 1.35;
}

.ison-side-banner {
	display: block;
	border-radius: 14px;
	padding: 18px;
	background: linear-gradient(160deg, #123b6d 0%, #1c2b45 100%);
	color: #fff;
	text-decoration: none;
}

.ison-side-banner strong {
	display: block;
	font-size: 19px;
	line-height: 1.25;
	margin-bottom: 8px;
}

.ison-side-banner span {
	font-size: 13px;
	color: #d4dced;
}

@media (max-width: 1180px) {
	.ison-dash-head {
		grid-template-columns: 1fr;
	}

	.ison-dash-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ison-tile--manager {
		grid-column: auto;
	}
}

@media (max-width: 640px) {
	.ison-dash-tables .ison-table__name {
		max-width: 120px;
	}

	.ison-promo__title {
		font-size: 20px;
	}
}


/* Таблицы кабинета не должны вылезать за свою панель: колонки со статусами
   и суммами нельзя переносить, поэтому на узких экранах даём таблице прокрутку. */
.ison-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* Рекламный блок по макету: слева текст, справа фотография оборудования. */
.ison-promo {
	display: flex;
	align-items: center;
	gap: 18px;
}

.ison-promo__text {
	flex: 1 1 360px;
	min-width: 0;
}

.ison-promo__media {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: 0 1 340px;
	min-width: 0;
}

.ison-promo__media img {
	max-width: 190px;
	max-height: 150px;
	object-fit: contain;
}

.ison-promo__slogan {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	color: #123b6d;
	text-transform: uppercase;
}

.ison-good__subtitle {
	font-size: 12px;
	color: #6b7280;
	line-height: 1.35;
}

@media (max-width: 900px) {
	.ison-promo__media {
		display: none;
	}
}


/* ============ партнёрские цены в каталоге (ТЗ п.55) ============ */

.ison-catalog-notice {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin: 0 0 18px;
	padding: 12px 16px;
	border-radius: 10px;
	background: linear-gradient(90deg, #fdece6 0%, #fdf5e6 100%);
	border: 1px solid #f7cdbb;
	font-size: 14px;
}

.ison-catalog-notice__title b {
	color: var(--ison-orange, #f2551b);
}

.ison-catalog-notice__text {
	color: #4a4f5a;
}

.ison-catalog-notice__link {
	margin-left: auto;
	font-weight: 600;
	color: var(--ison-orange, #f2551b);
	text-decoration: none;
	white-space: nowrap;
}

.ison-catalog-notice__link:hover {
	text-decoration: underline;
}

.ison-price {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
}

.ison-price__old {
	color: #8a93a3;
	text-decoration: line-through;
	font-size: 0.9em;
}

.ison-price__new {
	color: var(--ison-orange, #f2551b);
	font-weight: 700;
	text-decoration: none;
	background: none;
}

.ison-price__badge {
	display: inline-block;
	border-radius: 6px;
	padding: 1px 6px;
	font-size: 11px;
	font-weight: 700;
	background: #e6f6ec;
	color: #1f9d55;
}


/* ============ мои заказы (макет 03, ТЗ п.18-21) ============ */

.ison-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}

.ison-stat {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 14px 16px;
	min-width: 0;
}

.ison-stat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #eef1f6;
	color: #6b7280;
	flex: 0 0 42px;
}

.ison-stat--delivered .ison-stat__icon { background: #e6f6ec; color: #1f9d55; }
.ison-stat--processing .ison-stat__icon { background: #fdf1e3; color: #e08c1e; }
.ison-stat--shipping .ison-stat__icon { background: #e8f3fd; color: #1c7ed6; }
.ison-stat--cancelled .ison-stat__icon { background: #fdece6; color: #d0342c; }

.ison-stat__label {
	display: block;
	font-size: 13px;
	color: #6b7280;
}

.ison-stat__value {
	display: block;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.1;
}

.ison-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.ison-filters__dates,
.ison-filters__search {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 10px;
	padding: 8px 12px;
	min-width: 0;
}

.ison-filters__dates input,
.ison-filters__search input {
	border: 0;
	outline: none;
	font-size: 13px;
	background: transparent;
	min-width: 0;
}

.ison-filters__search {
	flex: 1 1 260px;
}

.ison-filters__search input {
	width: 100%;
}

.ison-filters__search button {
	border: 0;
	background: transparent;
	color: #6b7280;
	cursor: pointer;
	/* цель для пальца: сама иконка 16 px, но нажимать надо по площадке */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	line-height: 0;
}

.ison-filters__status {
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 10px;
	padding: 9px 12px;
	font-size: 13px;
	background: #fff;
	min-width: 160px;
}

.ison-filters__icon {
	color: #8a93a3;
	line-height: 0;
}

.ison-filters__dash {
	color: #8a93a3;
}

.ison-filters__reset {
	white-space: nowrap;
}

.ison-filters__reset.is-off {
	opacity: 0.55;
	pointer-events: none;
}

/* состав заказа: четыре колонки, товару нужно место - общие доли рассчитаны
   на другую сетку и сжимали его до 83 px, текст лез на «Количество» */
.ison-table--order-items {
	min-width: 560px;
}

.ison-table--order-items th:nth-child(1),
.ison-table--order-items td:nth-child(1) { width: 50%; }
.ison-table--order-items th:nth-child(2),
.ison-table--order-items td:nth-child(2) { width: 16%; }
.ison-table--order-items th:nth-child(3),
.ison-table--order-items td:nth-child(3) { width: 16%; }
.ison-table--order-items th:nth-child(4),
.ison-table--order-items td:nth-child(4) { width: 18%; }

/* название товара длинное - режем его многоточием в своей колонке,
   иначе оно печатается поверх количества и цены */
.ison-table--order-items td.ison-table__goods,
.ison-table--orders td.ison-table__goods {
	overflow: hidden;
}

.ison-table__goods-inner {
	max-width: 100%;
}

.ison-table__goods-inner > span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* длинное название товара в списке заказов - две строки с многоточием,
   целиком оно видно на странице самого заказа */
.ison-table--orders .ison-table__goods-inner > span a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* список заказов: свои доли колонок - № | Дата | Товары | Сумма | Статус | Оплата */
.ison-table--orders th:nth-child(1),
.ison-table--orders td:nth-child(1) { width: 11%; }
.ison-table--orders th:nth-child(2),
.ison-table--orders td:nth-child(2) { width: 12%; }
.ison-table--orders th:nth-child(3),
.ison-table--orders td:nth-child(3) { width: 34%; }
.ison-table--orders th:nth-child(4),
.ison-table--orders td:nth-child(4) { width: 14%; }
.ison-table--orders th:nth-child(5),
.ison-table--orders td:nth-child(5) { width: 14%; }
.ison-table--orders th:nth-child(6),
.ison-table--orders td:nth-child(6) { width: 15%; }

/* ниже 1000 px пять колонок со снимком товара не помещаются: даём таблице
   собственную ширину и прокрутку внутри панели (ТЗ п.60 это разрешает) */
@media (max-width: 1000px) {
	.ison-table--orders {
		min-width: 760px;
	}
}

.ison-table--orders td {
	vertical-align: middle;
}

.ison-table__date span {
	display: block;
	font-size: 12px;
	color: #8a93a3;
}

/* flex у самой ячейки ломает табличную раскладку: колонка схлопывалась,
   а текст печатался поверх соседней. Выравниваем внутри ячейки. */
.ison-table__goods {
	min-width: 0;
	vertical-align: middle;
}

.ison-table__goods-inner {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.ison-table__goods img {
	width: 46px;
	height: 40px;
	object-fit: contain;
	border-radius: 6px;
	background: #f6f7fa;
	flex: 0 0 46px;
}

.ison-table__goods span {
	min-width: 0;
}

.ison-table__goods a {
	color: var(--ison-orange, #f2551b);
	text-decoration: none;
}

.ison-table__goods small {
	display: block;
	font-size: 12px;
	color: #8a93a3;
}

/* у ячейки таблицы display:flex ломает раскладку строки - выравниваем внутри */
.ison-table__payment {
	color: #4a4f5a;
	font-size: 13px;
	vertical-align: middle;
}

.ison-table__payment-inner {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ison-table__num a {
	color: var(--ison-orange, #f2551b);
	text-decoration: underline;
}

.ison-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 14px;
	font-size: 13px;
	color: #6b7280;
}

.ison-pager__pages {
	display: flex;
	align-items: center;
	gap: 4px;
}

.ison-pager__page,
.ison-pager__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	border-radius: 8px;
	border: 1px solid var(--ison-line, #e6e8ee);
	color: #4a4f5a;
	text-decoration: none;
	background: #fff;
}

.ison-pager__page.is-current {
	background: var(--ison-orange, #f2551b);
	border-color: var(--ison-orange, #f2551b);
	color: #fff;
	font-weight: 600;
}

.ison-pager__arrow.is-off {
	opacity: 0.4;
	pointer-events: none;
}

.ison-pager__per select {
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 8px;
	padding: 6px 8px;
	margin-left: 6px;
	background: #fff;
}

/* страница одного заказа */

.ison-order__back {
	display: inline-block;
	margin-bottom: 10px;
}

.ison-order__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 14px;
}

.ison-order__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	align-items: start;
}

@media (min-width: 1100px) {
	.ison-order__grid {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	}
}

.ison-order__side {
	display: grid;
	gap: 14px;
}

.ison-order__totals {
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 14px;
}

.ison-order__totals li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.ison-order__totals .is-total {
	border-top: 1px solid var(--ison-line, #e6e8ee);
	padding-top: 8px;
	font-size: 16px;
}

.ison-order__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 6px;
	font-size: 14px;
}

.ison-order__row span {
	color: #6b7280;
}

.ison-order__address,
.ison-order__note {
	font-size: 13px;
	color: #4a4f5a;
	margin: 6px 0 0;
}

.ison-order__docs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.ison-order__docs a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ison-orange, #f2551b);
	text-decoration: none;
	font-size: 14px;
}

@media (max-width: 640px) {
	.ison-filters__dates,
	.ison-filters__status,
	.ison-filters__search {
		flex: 1 1 100%;
	}
}


/* ============ мои проекты и создание проекта (ТЗ п.22-34) ============ */

.ison-projects__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}

.ison-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.ison-chip {
	display: inline-block;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 20px;
	padding: 7px 14px;
	font-size: 13px;
	color: #4a4f5a;
	background: #fff;
	text-decoration: none;
}

.ison-chip.is-current {
	background: var(--ison-orange, #f2551b);
	border-color: var(--ison-orange, #f2551b);
	color: #fff;
	font-weight: 600;
}

.ison-row-link {
	cursor: pointer;
}

.ison-row-link:hover {
	background: #fafbfd;
}

.ison-table__name small {
	display: block;
	font-size: 12px;
	color: #8a93a3;
}

.ison-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	margin-right: 4px;
}

.ison-dot--yes { background: #1f9d55; }
.ison-dot--no { background: #d0342c; }

.ison-manager-block {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	margin-top: 16px;
}

.ison-manager-block__text {
	min-width: 240px;
}

/* форма проекта */

.ison-form {
	display: grid;
	gap: 16px;
}

.ison-form__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 14px;
}

.ison-field {
	display: block;
	min-width: 0;
}

.ison-field__label {
	display: block;
	font-size: 13px;
	color: #4a4f5a;
	margin-bottom: 5px;
}

.ison-field input[type="text"],
.ison-field input[type="date"],
.ison-field input[type="number"],
.ison-field textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
}

.ison-field__hint {
	display: block;
	font-size: 12px;
	color: #8a93a3;
	margin-top: 4px;
}

.ison-field__error {
	display: block;
	font-size: 12px;
	color: #d0342c;
	margin-top: 4px;
	font-style: normal;
}

.ison-field__counter {
	display: block;
	text-align: right;
	font-size: 12px;
	color: #8a93a3;
	margin-top: 4px;
}

.ison-radio {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	margin-bottom: 6px;
}

.ison-items input[type="text"],
.ison-items input[type="number"] {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 8px;
	padding: 8px 10px;
	font-size: 13px;
}

.ison-items__qty {
	white-space: nowrap;
}

.ison-items td.ison-items__qty input[type="number"] {
	width: 74px;
	flex: 0 0 74px;
}

.ison-items__qty input {
	width: 74px;
	display: inline-block;
}

.ison-items__num {
	color: #8a93a3;
	width: 36px;
}

.ison-items__remove {
	/* у темы своя ширина и отступы для кнопок - без сброса крестик раздувался
	   до 81 px и вылезал из своей колонки вместе с таблицей */
	border: 0;
	background: transparent;
	color: #d0342c;
	font-size: 16px;
	cursor: pointer;
	line-height: 1;
	width: 28px;
	min-width: 0;
	height: 28px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.ison-agree {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
}

.ison-agree a {
	color: var(--ison-orange, #f2551b);
}

.ison-form__actions {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.ison-project__subtitle {
	margin-top: 18px;
}

.ison-alert--error {
	background: rgba(208, 52, 44, 0.12);
	border: 1px solid rgba(208, 52, 44, 0.3);
	border-radius: 10px;
	padding: 10px 14px;
	margin-bottom: 12px;
	font-size: 14px;
	color: #a02b23;
}

.ison-status-tag--offer { background: #e8f3fd; color: #1c7ed6; }
.ison-status-tag--approved { background: #e6f6ec; color: #1f9d55; }


/* ============ коммерческие предложения (ТЗ п.35-37) ============ */

.ison-info-block {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	background: linear-gradient(90deg, #eef4fb 0%, #f7fbff 100%);
	border: 1px solid #d6e4f2;
	border-radius: 12px;
	padding: 16px 18px;
	margin-bottom: 16px;
}

.ison-info-block__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	color: #1c7ed6;
	flex: 0 0 48px;
}

.ison-info-block strong {
	display: block;
	font-size: 16px;
	margin-bottom: 4px;
	color: #123b6d;
}

.ison-info-block span {
	font-size: 13px;
	color: #4a4f5a;
}

.ison-info-block .ison-btn {
	margin-left: auto;
}

.ison-offers__empty-icon {
	color: #c3c9d4;
}

.ison-offers__empty strong {
	font-size: 17px;
}

.ison-offers__empty span {
	font-size: 14px;
	color: #6b7280;
	max-width: 460px;
}


/* ============ обучение и сертификация (ТЗ п.38-53, макеты 09-12) ============ */

.ison-video-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	/* в макете 09 кадр слева, текст справа */
	flex-direction: row-reverse;
	gap: 18px;
	background: linear-gradient(90deg, #eef4fb 0%, #dfe9f5 100%);
	border-radius: 14px;
	padding: 20px 22px;
	margin-bottom: 16px;
}

.ison-video-main__title {
	display: block;
	font-size: 20px;
	color: #123b6d;
	margin: 4px 0 6px;
}

.ison-video-main__desc {
	display: block;
	font-size: 14px;
	color: #3d4b60;
	margin-bottom: 12px;
	max-width: 520px;
}

.ison-video-main__icon {
	color: #9fb6d4;
	flex: 0 0 auto;
}

.ison-videos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin-bottom: 20px;
}

.ison-video {
	display: grid;
	gap: 8px;
	align-content: start;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
	min-width: 0;
}

a.ison-video:hover {
	box-shadow: 0 6px 18px rgba(18, 59, 109, 0.12);
	transform: translateY(-2px);
}

.ison-video__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fdece6;
	color: #f2551b;
}

.ison-video__title {
	font-size: 15px;
	line-height: 1.3;
}

.ison-video__desc {
	font-size: 13px;
	color: #6b7280;
	line-height: 1.35;
}

.ison-video__cat {
	font-size: 12px;
	color: #8a93a3;
}

.ison-training__subtitle {
	margin: 22px 0 12px;
	font-size: 18px;
}

.ison-materials {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}

.ison-material {
	display: grid;
	gap: 6px;
	align-content: start;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

.ison-material:hover {
	border-color: #f7cdbb;
}

.ison-material__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #eef4fb;
	color: #1c7ed6;
	margin-bottom: 4px;
}

.ison-material strong {
	font-size: 15px;
	line-height: 1.3;
}

.ison-material span {
	font-size: 13px;
	color: #6b7280;
}

/* сертификат */

.ison-info-block--link {
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s ease;
}

.ison-info-block--link:hover {
	border-color: #9fc4ea;
}

.ison-benefits-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin-bottom: 16px;
}

.ison-benefit-card {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
	font-size: 15px;
}

.ison-test-terms ul {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 14px;
}

.ison-test-terms li::before {
	content: '•';
	color: var(--ison-orange, #f2551b);
	margin-right: 8px;
}

/* большая оранжевая кнопка теста (макет 10): базовый .ison-btn задаёт высоту 54px,
   поэтому у крупной кнопки высоту снимаем явно */
.ison-btn--big {
	display: flex;
	width: 100%;
	height: auto;
	min-height: 72px;
	padding: 18px 28px;
	font-size: 20px;
	font-weight: 700;
	gap: 12px;
}

/* страница сертификата по макету 10 */

/* ⛔ Колонка ОДНА на любой ширине: образец сертификата отсюда вынесен (он стоит
   отдельным блоком, а на широком экране - абсолютом справа сверху). Пока здесь
   оставалась вторая колонка 360 px, в полосе 901-1199 справа зияла пустота. */
.ison-cert__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	align-items: start;
	margin-bottom: 16px;
}

.ison-cert__sample img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(18, 59, 109, 0.18);
}

.ison-info-block__arrow {
	display: inline-flex;
	margin-left: auto;
	color: #1c7ed6;
}

.ison-cert-steps__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 16px;
}

.ison-cert-step {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ison-cert-step div {
	display: grid;
	gap: 3px;
}

.ison-cert-step strong {
	color: var(--ison-orange, #f2551b);
	font-size: 15px;
}

.ison-cert-step span:not(.ison-step__num) {
	font-size: 13px;
	color: #6b7280;
	line-height: 1.35;
}

.ison-cert-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin: 16px 0;
}

.ison-cert-fact {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 12px;
	padding: 16px;
}

.ison-cert-fact div {
	display: grid;
	gap: 2px;
}

.ison-cert-fact span {
	font-size: 13px;
	color: #6b7280;
}

.ison-cert-fact strong {
	font-size: 16px;
	color: #123b6d;
}

.ison-cert-fact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #eaf3fd;
	color: #1c7ed6;
	flex: 0 0 auto;
}

.ison-test-start {
	display: grid;
	justify-items: center;
	gap: 10px;
	text-align: center;
}

.ison-test-start form {
	width: 100%;
	max-width: 620px;
}

.ison-test-start__note {
	margin: 0;
	font-size: 13px;
	color: #6b7280;
}

@media (max-width: 900px) {
	.ison-cert__top {
		grid-template-columns: 1fr;
	}

	.ison-cert__sample {
		max-width: 420px;
		margin: 0 auto;
	}
}

.ison-btn.is-disabled {
	opacity: 0.5;
	cursor: default;
	pointer-events: none;
}

/* страница теста по макету 11: слева вопрос, справа время, прогресс и советы */

/* ⛔ Колонка ОДНА: правая колонка страницы теста вынесена отсюда на уровень страницы.
   Пока здесь оставалась вторая колонка 320 px, в полосе 1001-1199 карточка вопроса
   стояла узкой, а справа от неё зияла пустота. */
.ison-test__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	align-items: start;
}

.ison-test__side {
	display: grid;
	gap: 14px;
}

.ison-test__clock {
	display: grid;
	justify-items: start;
	gap: 8px;
}

.ison-test__clock-head {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: #123b6d;
}

.ison-test__clock .ison-test__timer {
	font-size: 46px;
	background: none;
	color: var(--ison-orange, #f2551b);
	padding: 0;
	min-width: 0;
}

.ison-test__clock .ison-test__timer.is-low {
	background: none;
	color: #d0342c;
}

.ison-test__warning {
	margin: 0;
	background: #fdf0e8;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 13px;
	line-height: 1.4;
	color: #7a4a2f;
}

.ison-progress {
	display: block;
	width: 100%;
	height: 8px;
	border-radius: 6px;
	background: #e6e8ee;
	overflow: hidden;
}

.ison-progress i {
	display: block;
	height: 100%;
	border-radius: 6px;
	background: var(--ison-orange, #f2551b);
}

.ison-test__progress {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.ison-test__progress-label {
	font-size: 14px;
	color: #3d4b60;
	white-space: nowrap;
}

.ison-test__progress-value {
	font-size: 13px;
	color: #6b7280;
}

.ison-test__progress-panel {
	display: grid;
	gap: 8px;
}

.ison-test__progress-top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	font-size: 14px;
}

.ison-test__progress-top span {
	color: #6b7280;
	font-size: 13px;
}

.ison-test__tips-head {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #123b6d;
	margin-bottom: 8px;
}

.ison-test__tips ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 13px;
	color: #3d4b60;
}

.ison-test__tips li::before {
	content: '✓';
	color: var(--ison-orange, #f2551b);
	margin-right: 8px;
	font-weight: 700;
}

@media (max-width: 1000px) {
	.ison-test__layout {
		grid-template-columns: 1fr;
	}
}

/* страница теста */

.ison-test__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}

.ison-test__timer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 92px;
	padding: 10px 16px;
	border-radius: 10px;
	background: #eef1f6;
	color: #123b6d;
	font-size: 20px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.ison-test__timer.is-low {
	background: #fdece6;
	color: #d0342c;
}

.ison-test__question {
	font-size: 17px;
	font-weight: 600;
	margin: 0 0 16px;
	line-height: 1.35;
}

.ison-test__options {
	display: grid;
	gap: 10px;
	margin-bottom: 18px;
}

.ison-test__option {
	align-items: flex-start;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 10px;
	padding: 12px 14px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.ison-test__option:hover {
	border-color: #f7cdbb;
	background: #fffaf7;
}

.ison-test__option input {
	margin-top: 3px;
}

/* результат */

.ison-result {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 10px;
	padding: 36px 20px;
}

.ison-result__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50%;
}

.ison-result--ok .ison-result__icon {
	background: #e6f6ec;
	color: #1f9d55;
}

.ison-result--fail .ison-result__icon {
	background: #fdece6;
	color: #d0342c;
}

/* реквизиты */

.ison-table--req td {
	padding: 10px 8px;
	/* значения реквизитов - тот же тёмно-синий, что и весь текст кабинета;
	   серый #333e48 остался от старой темы и на макете 13 его нет */
	color: #1b2559;
}

.ison-table__req-label {
	color: #6b7280;
	width: 42%;
}

.ison-requisites__icon {
	display: inline-flex;
	color: #1c7ed6;
	margin-bottom: 6px;
}


/* ============ коммерческие предложения: тип и заглушка (ТЗ п.36, п.58) ============ */

.ison-offer-type {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 10px;
	white-space: nowrap;
}

.ison-offer-type__text {
	display: grid;
	line-height: 1.15;
}

.ison-offer-type__text b {
	font-size: 13px;
}

.ison-offer-type__text i {
	font-size: 11px;
	font-style: normal;
	opacity: 0.75;
}

.ison-offer-type--discount {
	background: #e6f6ec;
	color: #1f7a45;
}

.ison-offer-type--retail {
	background: #fdece6;
	color: #c2410c;
}

.ison-offer-type__icon {
	display: inline-flex;
}

/* кнопки формирования КП в корзине сайта */

.ison-cart-offers {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0;
}

/* у партнёра в корзине ровно две кнопки КП (ТЗ п.58): родную прячем */
body.ison-partner-cart .wc-proceed-to-commercial,
body.ison-partner-cart .woocommerce-mini-cart__buttons a.commerc {
	display: none !important;
}

.ison-cart-offer--partner {
	background: #1f9d55 !important;
	border-color: #1f9d55 !important;
	color: #fff !important;
}

.ison-cart-offer--retail {
	background: #fff !important;
	border: 1px solid var(--ison-orange, #f2551b) !important;
	color: var(--ison-orange, #f2551b) !important;
}

/* кнопки в корзине рисует тема, поэтому раскладку задаём жёстко:
   иначе подпись прилипает к первой строке («предложениебез учета скидки») */
.ison-cart-offer {
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: flex-start;
	gap: 2px;
	line-height: 1.2;
	text-align: left;
	white-space: normal;
	height: auto !important;
}

.ison-cart-offer span {
	display: block;
	width: 100%;
	font-size: 11px;
	opacity: 0.85;
}

/* заглушка раздела (макет 08) */

.ison-offers__empty {
	display: grid;
	gap: 12px;
	justify-items: start;
	padding: 28px;
}

.ison-offers__empty-title {
	margin: 0;
	font-size: 26px;
	line-height: 1.15;
	color: #123b6d;
}

.ison-offers__empty-title span {
	display: block;
	color: var(--ison-orange, #f2551b);
}

.ison-offers__empty-lead {
	margin: 0;
	max-width: 520px;
	color: #3d4b60;
}

.ison-steps {
	display: grid;
	gap: 14px;
	margin: 6px 0 4px;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.ison-step {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ison-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--ison-orange, #f2551b);
	color: #fff;
	font-weight: 700;
}

.ison-step div {
	display: grid;
	gap: 2px;
}

.ison-step span {
	font-size: 13px;
	color: #6b7280;
}

.ison-offer-hint {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	max-width: 620px;
	border-radius: 12px;
	padding: 14px 16px;
}

.ison-offer-hint div {
	display: grid;
	gap: 3px;
}

.ison-offer-hint span {
	font-size: 13px;
	color: #4b5563;
}

.ison-offer-hint--discount {
	background: #eaf7ef;
	color: #1f7a45;
}

.ison-offer-hint--retail {
	background: #fdf0e8;
	color: #c2410c;
}


/* таблица предложений: четыре колонки, доли под неё, а не под таблицу заказов */

.ison-table.ison-table--offers th:nth-child(1),
.ison-table.ison-table--offers td:nth-child(1) { width: 34%; }
.ison-table.ison-table--offers th:nth-child(2),
.ison-table.ison-table--offers td:nth-child(2) { width: 12%; }
.ison-table.ison-table--offers th:nth-child(3),
.ison-table.ison-table--offers td:nth-child(3) { width: 20%; }
.ison-table.ison-table--offers th:nth-child(4),
.ison-table.ison-table--offers td:nth-child(4) { width: 34%; }

.ison-table--offers .ison-table__name {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}

/* дата не должна ломаться на две строки («10.09.202» и «6») */
.ison-table--offers td:nth-child(2),
.ison-table--offers th:nth-child(2) {
	white-space: nowrap;
}

/* на узком экране четыре колонки не сжимаем в кашу: таблица получает
   свою ширину и прокручивается внутри обёртки, страница вбок не едет */
@media (max-width: 1000px) {
	.ison-table.ison-table--offers {
		min-width: 720px;
	}
}

/* кнопка скачивания: три строки текста должны помещаться целиком */
.ison-table--offers .ison-btn {
	display: inline-flex;
	align-items: center;
	white-space: normal;
	line-height: 1.25;
	height: auto;
	min-height: 0;
	text-align: left;
}

/* встроенный плеер ролика (ТЗ п.40) */

.ison-video-player {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	border-radius: 14px;
	overflow: hidden;
	background: #0d1117;
	margin-bottom: 14px;
}

.ison-video-player iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ison-video-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 18px;
}

/* фильтр роликов работает без перезагрузки (ТЗ п.39) */

.ison-video.is-hidden,
.ison-videos__empty.is-hidden,
.ison-video-main.is-hidden,
/* ⛔ Кнопку «Показать ещё видео» скрипт тоже гасит этим классом, а правила для неё
   здесь не было: нажатую кнопку оставляло на месте, и под короткой категорией из
   шести роликов она продолжала висеть. */
.ison-videos-more.is-hidden {
	display: none !important;
}


/* ============ регистрация партнёра в 4 шага (ТЗ п.4, макеты 01-04) ============ */

/* Регистрация партнёра - размеры сняты с макетов «Форма регистрации» 01-04 (1672x941). */
.ison-signup {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 84px 16px 60px;
	min-height: 100vh;
	/* фон привязан к окну: иначе на длинных шагах cover считается по высоте блока,
	   картинка растягивается и кадр перестаёт совпадать с макетом */
	background: #0b0f14 url('../img/register-bg.jpg') center center / cover no-repeat fixed;
}


/* у каждого шага регистрации свой кадр фона - макеты 01-04 сняты в разных кадрах */
.ison-signup--step2 {
	background-image: url('../img/register-bg-2.jpg');
}

.ison-signup--step3 {
	background-image: url('../img/register-bg-3.jpg');
}

.ison-signup--step4 {
	background-image: url('../img/register-bg-4.jpg');
}

.ison-signup__card {
	width: 100%;
	max-width: 824px;
	background: rgba(10, 14, 19, 0.90);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border: 0;
	border-radius: 24px;
	position: relative;
	padding: 33px 49px 34px;
	color: #e8edf5;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
	text-align: left;
}

/* первый шаг (макет 01) собран по центру, остальные - по левому краю */
.ison-signup__card--intro {
	text-align: center;
}

.ison-signup__card::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 24px;
	padding: 2px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.52) 0%, rgba(255, 255, 255, 0.30) 10%, rgba(255, 255, 255, 0.17) 45%, rgba(255, 255, 255, 0.13) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
	pointer-events: none;
}

.ison-signup__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin: 0 0 14px;
}

.ison-signup__card--intro .ison-signup__head {
	justify-content: center;
	margin-bottom: 24px;
}

.ison-signup__brand {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ison-signup__mark {
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.ison-signup__name {
	font-size: 38px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: #fff;
	line-height: 1;
}

.ison-signup__tagline {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.09em;
	color: #d6d9db;
	border-left: 3px solid rgba(255, 255, 255, 0.55);
	padding-left: 14px;
	margin-left: 6px;
	line-height: 1.45;
	text-align: left;
}

.ison-signup__steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	list-style: none;
	margin: 4px -20px 28px;
	padding: 0;
	max-width: none;
}

.ison-signup__step {
	display: grid;
	grid-template-rows: auto 1fr;
	align-items: start;
	justify-items: center;
	gap: 4px;
	position: relative;
	text-align: center;
	font-size: 18px;
	line-height: 1.25;
	font-weight: 400;
	color: #e4e7e9;
}

.ison-signup__step::before {
	content: '';
	position: absolute;
	top: 25px;
	left: 50%;
	width: 100%;
	height: 3px;
	background: rgba(255, 255, 255, 0.27);
}

.ison-signup__step:last-child::before {
	display: none;
}

.ison-signup__step-num {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 53px;
	height: 53px;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.38);
	background: rgba(12, 17, 23, 0.9);
	color: #d7dee6;
	font-size: 22px;
	font-weight: 500;
}

.ison-signup__step.is-current .ison-signup__step-num,
.ison-signup__step.is-done .ison-signup__step-num {
	border-color: var(--ison-orange, #f2551b);
	color: var(--ison-orange, #f2551b);
}

.ison-signup__step.is-current,
.ison-signup__step.is-done {
	color: #eceeef;
}

.ison-signup__heading {
	margin: 0 0 20px;
	font-size: 31px;
	line-height: 30px;
	font-weight: 700;
	color: #fff;
}

.ison-signup__lead {
	margin: 0 0 18px;
	font-size: 16px;
	line-height: 18px;
	color: #c3ccd6;
}

/* на макете 01 заголовок крупнее и стоит между логотипом и шагами */
.ison-signup__card--intro .ison-signup__heading {
	margin: 0 0 11px;
	font-size: 43px;
	line-height: 50px;
}

.ison-signup__card--intro .ison-signup__lead {
	margin: 0 auto 31px;
	max-width: 660px;
	font-size: 22px;
	line-height: 30px;
}

.ison-signup__form .ison-field__label {
	color: #cdd8e8;
}

.ison-signup__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 14px;
	margin-bottom: 14px;
}

.ison-signup__grid--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px 15px;
	margin-bottom: 20px;
}

/* поле с иконкой внутри - как на макетах 01-04 */
.ison-rfield {
	position: relative;
	display: block;
	text-align: left;
}

.ison-rfield__icon {
	position: absolute;
	left: 25px;
	top: 35px;
	transform: translateY(-50%);
	display: inline-flex;
	color: #f0f2f3;
	pointer-events: none;
}

.ison-signup__form .ison-rfield input[type],
.ison-rfield input {
	width: 100%;
	height: 70px;
	box-sizing: border-box;
	padding: 0 20px 0 75px;
	border-radius: 10px;
	border: 2px solid #42505c;
	background: rgba(16, 27, 34, 0.55);
	color: #eef3f9;
	font-size: 21px;
	font-weight: 400;
	line-height: 1.2;
}

.ison-signup__form .ison-rfield input[type]:focus,
.ison-rfield input:focus {
	outline: none;
	border-color: var(--ison-orange, #f2551b);
	box-shadow: 0 0 0 3px rgba(242, 85, 27, 0.18);
}

.ison-rfield__ph {
	position: absolute;
	left: 75px;
	top: 35px;
	transform: translateY(-50%);
	font-size: 21px;
	font-weight: 400;
	color: #c9d2db;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.ison-rfield__ph i {
	font-style: normal;
	color: #ff5a3c;
}

.ison-signup__form .ison-rfield input[type]:focus + .ison-rfield__ph,
.ison-signup__form .ison-rfield input[type]:not(:placeholder-shown) + .ison-rfield__ph,
.ison-rfield input:focus + .ison-rfield__ph,
.ison-rfield input:not(:placeholder-shown) + .ison-rfield__ph {
	opacity: 0;
}

.ison-rfield.is-error input {
	border-color: #ff5a3c;
}

.ison-rfield .ison-field__error {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: #ff8f7a;
	font-style: normal;
}

.ison-signup__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	width: 100%;
	height: 85px;
	border: 0;
	border-radius: 10px;
	background: radial-gradient(62% 118% at 50% 104%, #e62400 0%, #f23600 34%, #fd6c05 100%);
	color: #fff;
	font-size: 24px;
	font-weight: 500;
	cursor: pointer;
}

.ison-signup__submit:hover {
	background: radial-gradient(120% 160% at 50% 115%, #ff4a12 0%, #ff6a14 45%, #ff7d1a 100%);
}

.ison-signup__form input[type="text"],
.ison-signup__form input[type="tel"],
.ison-signup__form input[type="email"],
.ison-signup__form input[type="url"],
.ison-signup__form select {
	width: 100%;
	background: #1d2634;
	border: 1px solid #2c3b50;
	border-radius: 10px;
	padding: 13px 14px;
	color: #e8edf5;
	font-size: 15px;
}

.ison-signup__form input::placeholder {
	color: #7d8ca3;
}

.ison-signup__form input:focus,
.ison-signup__form select:focus {
	outline: none;
	border-color: var(--ison-orange, #f2551b);
}

.ison-field__label i {
	color: var(--ison-orange, #f2551b);
	font-style: normal;
}

.ison-signup__checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: #1d2634;
	border: 1px solid #2c3b50;
	border-radius: 10px;
	padding: 14px;
	margin-bottom: 14px;
	cursor: pointer;
}

.ison-signup__checkbox small {
	display: block;
	color: #93a2b8;
	font-size: 12px;
	margin-top: 2px;
}

.ison-signup__block {
	margin-bottom: 16px;
}

.ison-signup__hint {
	display: block;
	color: #7d8ca3;
	font-size: 12px;
	margin-bottom: 8px;
}

.ison-signup__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ison-choice {
	display: grid;
	justify-items: center;
	gap: 2px;
	min-width: 110px;
	padding: 10px 14px;
	border: 1px solid #2c3b50;
	border-radius: 10px;
	background: #1d2634;
	cursor: pointer;
	font-size: 14px;
}

.ison-choice small {
	color: #93a2b8;
	font-size: 12px;
}

.ison-choice input {
	display: none;
}

.ison-choice.is-current,
.ison-choice:hover {
	border-color: var(--ison-orange, #f2551b);
}

.ison-signup__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 10px;
}

/* Пункт списка на третьем шаге (макет 03): квадрат-отметка, иконка, подпись. */
.ison-tile-check {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 60px;
	padding: 8px 14px;
	border: 2px solid #42505c;
	border-radius: 10px;
	background: rgba(16, 27, 34, 0.5);
	cursor: pointer;
	font-size: 14px;
	line-height: 1.25;
	color: #e6ebf0;
	transition: border-color 0.15s ease;
}

.ison-tile-check input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ison-tile-check__box {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border: 2px solid #6a7885;
	border-radius: 5px;
	background: transparent;
}

.ison-tile-check__icon {
	flex: 0 0 auto;
	display: inline-flex;
	color: #dfe4e9;
}

.ison-tile-check span {
	min-width: 0;
}

.ison-tile-check.is-current,
.ison-tile-check:has(input:checked) {
	border-color: #e76a07;
	background: #38180a;
	color: #fefdfc;
}

.ison-tile-check:hover {
	border-color: rgba(231, 106, 7, 0.6);
}

.ison-tile-check.is-current .ison-tile-check__box,
.ison-tile-check:has(input:checked) .ison-tile-check__box {
	border-color: var(--ison-orange, #f2551b);
	background: var(--ison-orange, #f2551b)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
		center center / 15px 15px no-repeat;
}

.ison-signup__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 18px;
}

.ison-signup__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 22px 0 0;
	color: #97a1ab;
	font-size: 15px;
}

.ison-signup__note .ison-svg {
	color: var(--ison-orange, #f2551b);
}

.ison-signup__done {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 8px;
	margin-bottom: 18px;
}

/* Зелёный круг с галочкой и разлетающиеся конфетти - как на макете 04. */
.ison-signup__done-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 104px;
	height: 104px;
	border-radius: 50%;
	background: radial-gradient(120% 120% at 42% 28%, #3ad861 0%, #21b64a 45%, #0d7a2c 100%);
	box-shadow: 0 0 34px rgba(35, 190, 78, 0.35);
	color: #ffffff;
}

.ison-signup__done-icon::before,
.ison-signup__done-icon::after {
	content: '';
	position: absolute;
	top: -18px;
	bottom: -18px;
	width: 130px;
	background-repeat: no-repeat;
	pointer-events: none;
}

.ison-signup__done-icon::before {
	right: 100%;
	margin-right: 6px;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='140' viewBox='0 0 130 140'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M18 40c6-6 14-6 20 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M36 74l16-6' stroke='%238d97a3' stroke-width='7'/%3E%3Cpath d='M8 96l10 4' stroke='%2323be4e' stroke-width='6'/%3E%3Cpath d='M60 22l6 10' stroke='%238d97a3' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
	background-position: left center;
}

.ison-signup__done-icon::after {
	left: 100%;
	margin-left: 6px;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='140' viewBox='0 0 130 140'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M92 40c6-6 14-6 20 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M74 72l18-4' stroke='%2323be4e' stroke-width='7'/%3E%3Cpath d='M112 96l-10 6' stroke='%238d97a3' stroke-width='6'/%3E%3Cpath d='M66 20l-6 12' stroke='%238d97a3' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
	background-position: right center;
}

.ison-signup__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	background: #1a2331;
	border-radius: 12px;
	padding: 18px;
	margin-bottom: 14px;
}

.ison-signup__card-item {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 6px;
	color: #cdd8e8;
}

.ison-signup__card-item span {
	color: var(--ison-orange, #f2551b);
}

.ison-signup__card-item small {
	color: #93a2b8;
	font-size: 13px;
	line-height: 1.4;
}

.ison-signup__warning {
	display: grid;
	gap: 4px;
	border: 1px solid #7a4a2f;
	background: rgba(242, 85, 27, 0.1);
	border-radius: 12px;
	padding: 14px 16px;
	margin-bottom: 16px;
	font-size: 13px;
	line-height: 1.45;
}

.ison-signup__contacts {
	display: grid;
	justify-items: center;
	gap: 4px;
	margin-top: 18px;
	text-align: center;
}

.ison-signup .ison-field__error {
	color: #ff8a6a;
	font-size: 12px;
	font-style: normal;
	display: block;
	margin-top: 4px;
}

@media (max-width: 640px) {
	.ison-signup__steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	.ison-signup__step::before {
		display: none;
	}

	.ison-signup__title {
		text-align: left;
	}
}


/* подсказка про обучение после регистрации (ТЗ п.74, макет 15) */

.ison-hint {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 16px;
	padding: 16px 46px 16px 16px;
	border-radius: 12px;
	background: #fff;
	color: #1d2430;
	border: 1px solid #f7cdbb;
	box-shadow: 0 12px 30px rgba(18, 59, 109, 0.14);
}

/* хвостик указывает влево - на пункт «Обучение» в боковой панели */
.ison-hint::before {
	content: '';
	position: absolute;
	left: -8px;
	top: 26px;
	border: 8px solid transparent;
	border-right-color: #fff;
	border-left: 0;
}

.ison-hint__go {
	margin-left: auto;
	color: var(--ison-orange, #f2551b);
	font-weight: 600;
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.ison-hint::before {
		display: none;
	}

	.ison-hint__go {
		margin-left: 0;
	}
}

/* на узком экране заголовок переносился под крестик - даём ему место */
@media (max-width: 560px) {
	.ison-hint {
		padding-top: 40px;
	}

	.ison-hint__close {
		top: 8px;
	}
}

.ison-hint__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fdece6;
	color: var(--ison-orange, #f2551b);
	flex: 0 0 auto;
}

.ison-hint div {
	display: grid;
	gap: 4px;
}

.ison-hint strong {
	font-size: 15px;
}

.ison-hint span {
	font-size: 13px;
	color: #4b5563;
	line-height: 1.35;
}

.ison-hint__close {
	position: absolute;
	top: 10px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 20px;
	line-height: 1;
	color: #9aa4b2;
	cursor: pointer;
}

/* кнопки кабинета в меню сайта (ТЗ п.75)
   ⛔ 18.09.2026: заказчик попросил убрать оранжевый цвет - «цвет должен быть на партнёрам
   такой же, как он сейчас здесь есть, то есть оранжевый цвет не надо» (ролик IMG_7642_1).
   Поэтому своего цвета у пункта больше нет: он наследует цвет остальных пунктов меню темы.
   Правило для .ison-site-link--cabinet убрано вместе с самой кнопкой кабинета из шапки. */

.ison-site-link a {
	font-weight: 600;
}

/* «Написать руководство» - макет 14 */

.ison-letter__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 20px;
	align-items: start;
}

.ison-letter__form .ison-form {
	margin-top: 14px;
}

.ison-field input[type="email"],
.ison-field input[type="tel"],
.ison-field select {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--ison-line, #e6e8ee);
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
}

.ison-field__label i {
	color: #f2551b;
	font-style: normal;
}

.ison-field--wide {
	grid-column: 1 / -1;
}

.ison-letter__files {
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1px dashed #c9d3e4;
	border-radius: 12px;
	padding: 14px 16px;
	background: #fbfcfe;
	cursor: pointer;
}

.ison-letter__clip {
	color: #2f6fd0;
	display: inline-flex;
}

.ison-letter__files-text strong {
	display: block;
	font-size: 14px;
	color: #1b2430;
}

.ison-letter__files-text strong i {
	font-style: normal;
	font-weight: 400;
	color: #8a93a3;
}

.ison-letter__files-text span {
	display: block;
	font-size: 12px;
	color: #8a93a3;
	margin-top: 2px;
}

.ison-letter__input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.ison-letter__send {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.ison-letter__send .ison-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ison-letter__note {
	font-size: 13px;
	color: #8a93a3;
	max-width: 320px;
}

.ison-letter__aside {
	background: #eef4ff;
	border-color: #dce7fb;
}

.ison-letter__art {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 20px;
	background: #dbe8ff;
	color: #2f6fd0;
	margin-bottom: 10px;
}

.ison-letter__lead {
	font-size: 14px;
	color: #4a4f5a;
	margin: 6px 0 16px;
	line-height: 1.5;
}

.ison-letter__point {
	display: flex;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid #dce7fb;
	margin-top: 14px;
}

.ison-letter__point:first-of-type {
	border-top: 0;
	margin-top: 0;
}

.ison-letter__point-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	border-radius: 50%;
	background: #dbe8ff;
	color: #2f6fd0;
}

.ison-letter__point strong {
	display: block;
	font-size: 14px;
	color: #1b2430;
}

.ison-letter__point span {
	display: block;
	font-size: 13px;
	color: #4a4f5a;
	margin-top: 2px;
	line-height: 1.45;
}

@media (max-width: 1000px) {
	.ison-letter__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.ison-letter__files {
		flex-wrap: wrap;
	}
}

/* таблица проектов: девять колонок, у общей таблицы доли рассчитаны на шесть -
   без своих ширин заголовки наезжали друг на друга (макет 04) */

.ison-table--projects {
	min-width: 1000px;
}

.ison-table--projects th {
	white-space: normal;
	line-height: 1.25;
	vertical-align: bottom;
}

.ison-table--projects th:nth-child(1), .ison-table--projects td:nth-child(1) { width: 15%; }
.ison-table--projects th:nth-child(2), .ison-table--projects td:nth-child(2) { width: 13%; }
.ison-table--projects th:nth-child(3), .ison-table--projects td:nth-child(3) { width: 11%; }
.ison-table--projects th:nth-child(4), .ison-table--projects td:nth-child(4) { width: 10%; }
.ison-table--projects th:nth-child(5), .ison-table--projects td:nth-child(5) { width: 11%; }
.ison-table--projects th:nth-child(6), .ison-table--projects td:nth-child(6) { width: 12%; }
.ison-table--projects th:nth-child(7), .ison-table--projects td:nth-child(7) { width: 9%; }
.ison-table--projects th:nth-child(8), .ison-table--projects td:nth-child(8) { width: 11%; }
.ison-table--projects th:nth-child(9), .ison-table--projects td:nth-child(9) { width: 8%; }

.ison-table--projects .ison-status-tag {
	white-space: normal;
	display: inline-block;
	line-height: 1.2;
}

.ison-table--projects td:nth-child(4),
.ison-table--projects td:nth-child(8) {
	white-space: nowrap;
}

/* карточки роликов с кадром и кнопкой «плей» - макет 09 */

.ison-video__shot {
	display: block;
	position: relative;
	margin: -14px -14px 10px;
	border-radius: 12px 12px 0 0;
	overflow: hidden;
	background: #0f1620;
	aspect-ratio: 16 / 9;
}

.ison-video__shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ison-video__play {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 46px;
	height: 46px;
	margin: -23px 0 0 -23px;
	border-radius: 50%;
	background: rgba(15, 22, 32, .62);
	border: 2px solid rgba(255, 255, 255, .9);
}

.ison-video__play::before {
	content: "";
	position: absolute;
	left: 17px;
	top: 12px;
	border-style: solid;
	border-width: 9px 0 9px 14px;
	border-color: transparent transparent transparent #fff;
}

.ison-video-main__shot {
	display: block;
	position: relative;
	width: 300px;
	max-width: 42%;
	border-radius: 14px;
	overflow: hidden;
	background: #0f1620;
	aspect-ratio: 16 / 9;
	flex: 0 0 auto;
}

.ison-video-main__shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 760px) {
	/* на узком экране блок главного ролика встаёт в два ряда:
	   иначе кадр не сжимается и уводит страницу вбок */
	.ison-video-main {
		flex-wrap: wrap;
	}

	.ison-video-main__text {
		flex: 1 1 100%;
	}

	.ison-video-main__shot {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
	}
}

/* разделы формы с номерами - макет 06 */

.ison-step-title {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ison-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	flex: 0 0 26px;
	border-radius: 50%;
	background: var(--ison-orange, #f2551b);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
}

/* таблица позиций: у общей таблицы доли рассчитаны на другую сетку,
   из-за чего заголовки «Наименование» и «Количество» наезжали друг на друга */

.ison-items {
	/* таблица позиций должна помещаться в панель целиком вместе с кнопкой
	   удаления строки: поля внутри сжимаются, ширины им хватает */
	min-width: 0;
}

/* на телефоне сжимать дальше некуда - подпись «шт.» наезжала на комментарий,
   поэтому таблица прокручивается внутри панели (так и разрешает ТЗ п.60) */
@media (max-width: 767px) {
	.ison-items {
		min-width: 560px;
	}
}

.ison-items input[type="text"] {
	min-width: 0;
}

.ison-items th {
	white-space: normal;
	line-height: 1.25;
	vertical-align: bottom;
}

.ison-items th:nth-child(1), .ison-items td:nth-child(1) { width: 6%; }
.ison-items th:nth-child(2), .ison-items td:nth-child(2) { width: 44%; }
.ison-items th:nth-child(3), .ison-items td:nth-child(3) { width: 19%; }
.ison-items th:nth-child(4), .ison-items td:nth-child(4) { width: 25%; }
.ison-items th:nth-child(5), .ison-items td:nth-child(5) { width: 6%; }

.ison-video__time {
	position: absolute;
	right: 8px;
	bottom: 8px;
	padding: 2px 7px;
	border-radius: 6px;
	background: rgba(15, 22, 32, .78);
	color: #fff;
	font-size: 12px;
	line-height: 1.4;
}

/* сетка форм по макетам: на широком экране колонки не должны множиться.
   auto-fit давал на 1920 по 4-5 полей в ряд, в макетах 06 и 14 - три и два */

.ison-project-form .ison-form__grid,
.ison-requisites .ison-form__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ison-letter__form .ison-form__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1100px) {
	.ison-project-form .ison-form__grid,
	.ison-requisites .ison-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.ison-project-form .ison-form__grid,
	.ison-requisites .ison-form__grid,
	.ison-letter__form .ison-form__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* таблицы на главной живут в узких панелях: колонки обязаны помещаться целиком
   (иначе «Сумма» и «Статус» прячутся за прокруткой), а заголовки - переноситься,
   иначе они наезжают друг на друга на средних экранах */

.ison-dash-tables .ison-table {
	table-layout: fixed;
}

.ison-dash-tables .ison-table th {
	white-space: normal;
	line-height: 1.2;
	vertical-align: bottom;
}

/* таблица заказов: № | Дата | Наименование | Сумма | Статус.
   Номер и сумма обязаны читаться целиком, режется только длинное наименование */
.ison-dash-tables .ison-table th:nth-child(1),
.ison-dash-tables .ison-table td:nth-child(1) { width: 17%; }
.ison-dash-tables .ison-table th:nth-child(2),
.ison-dash-tables .ison-table td:nth-child(2) { width: 19%; }
.ison-dash-tables .ison-table th:nth-child(3),
.ison-dash-tables .ison-table td:nth-child(3) { width: 21%; }
.ison-dash-tables .ison-table th:nth-child(4),
.ison-dash-tables .ison-table td:nth-child(4) { width: 20%; }
.ison-dash-tables .ison-table th:nth-child(5),
.ison-dash-tables .ison-table td:nth-child(5) { width: 23%; }

/* плашка статуса в узкой панели главной - компактнее, иначе её обрезает колонка;
   длинное название статуса переносится на две строки, а не уезжает за край */
.ison-dash-tables .ison-status-tag {
	padding: 3px 8px;
	font-size: 11px;
	max-width: 100%;
	white-space: normal;
	word-break: break-word;
}

/* на телефоне панель слишком узкая даже для номера и суммы -
   по ТЗ п.60 такая таблица прокручивается внутри себя */
@media (max-width: 900px) {
	.ison-dash-tables .ison-table {
		min-width: 560px;
	}
}

.ison-dash-tables .ison-table th,
.ison-dash-tables .ison-table td {
	padding-left: 6px;
	padding-right: 6px;
}

/* таблица проектов на главной короче: Название | Сумма | Статус | стрелка */
.ison-dash-tables .ison-panel:last-child .ison-table th:nth-child(1),
.ison-dash-tables .ison-panel:last-child .ison-table td:nth-child(1) { width: 44%; }
.ison-dash-tables .ison-panel:last-child .ison-table th:nth-child(2),
.ison-dash-tables .ison-panel:last-child .ison-table td:nth-child(2) { width: 20%; }
.ison-dash-tables .ison-panel:last-child .ison-table th:nth-child(3),
.ison-dash-tables .ison-panel:last-child .ison-table td:nth-child(3) { width: 28%; }
.ison-dash-tables .ison-panel:last-child .ison-table th:nth-child(4),
.ison-dash-tables .ison-panel:last-child .ison-table td:nth-child(4) { width: 8%; }

.ison-dash-tables .ison-table td {
	overflow: hidden;
	text-overflow: ellipsis;
}

/* тема рвёт длинные слова по символам (word-wrap: break-word у electro):
   в наших таблицах даты, номера и суммы не должны разрываться посреди числа */
/* слова не рвём посередине (тема electro рвёт их по символам во всём кабинете):
   длинное значение либо переносится по пробелу, либо обрезается многоточием */
.ison-page,
.ison-page * {
	word-break: normal;
	overflow-wrap: normal;
}

/* многоточие нужно только текстовым колонкам: у колонки со статусом оно печаталось
   после плашки (обрезался пробельный узел) */
.ison-table--projects td:nth-child(1),
.ison-table--projects td:nth-child(2),
.ison-table--projects td:nth-child(3),
.ison-table--projects td:nth-child(4) {
	overflow: hidden;
	text-overflow: ellipsis;
}

.ison-table--projects th {
	font-size: 11px;
}

.ison-dash-tables .ison-table td:nth-child(1),
.ison-dash-tables .ison-table td:nth-child(2),
.ison-dash-tables .ison-table td:nth-child(4) {
	white-space: nowrap;
}

.ison-dash-tables .ison-status-tag {
	white-space: normal;
	display: inline-block;
	line-height: 1.2;
}

/* низ боковой панели по макетам 02, 04, 05, 06, 09, 14:
   фотография оборудования, слоган и оранжевая черта под ним */

.ison-sidebar__cameras {
	display: block;
	width: calc(100% + 40px);
	max-width: none;
	margin: 0 -20px 10px;
	height: auto;
}

.ison-sidebar__promo strong {
	display: block;
	letter-spacing: .02em;
}

.ison-sidebar__rule {
	display: block;
	width: 86px;
	height: 4px;
	border-radius: 2px;
	background: var(--ison-orange, #f2551b);
	margin-top: 10px;
}

/* «Написать руководству»: оранжевой плашкой подсвечен ТЕКУЩИЙ раздел (макет 14),
   на остальных страницах кнопка обычная, как в макетах 02-13 */
.ison-sidebar__letter {
	margin: 10px 12px;
	border-radius: 10px;
	padding: 11px 14px;
	gap: 10px;
	align-items: center;
}

.ison-sidebar__letter.is-current {
	background: var(--ison-orange, #f2551b);
	color: #fff !important;
}

.ison-sidebar__letter:hover {
	background: rgba(242, 85, 27, .16);
}

.ison-sidebar__letter.is-current:hover {
	background: #d8480f;
}

/* шапка «Партнёрская программа ISON» - баннер из макета 05 */

.ison-program__hero {
	display: flex;
	align-items: center;
	gap: 18px;
	/* фон ровно как у вырезанной фотографии (замер угла картинки - #ecf7fe),
	   иначе вставка видна прямоугольником другого оттенка */
	background: #ecf7fe;
	border-radius: 14px;
	padding: 18px 22px;
	margin-bottom: 18px;
}

.ison-program__hero-text {
	flex: 1 1 auto;
	min-width: 0;
}

.ison-program__hero .ison-page__title {
	margin-bottom: 4px;
	/* на макете заголовок этой страницы крупнее, чем в остальных разделах */
	font-size: 38px;
}

.ison-program__hero-img {
	width: 300px;
	max-width: 32%;
	height: auto;
	flex: 0 0 auto;
}

.ison-program__hero-note {
	font-size: 13px;
	line-height: 1.45;
	color: #123b6d;
	max-width: 170px;
	flex: 0 0 auto;
}

@media (max-width: 1100px) {
	.ison-program__hero-note {
		display: none;
	}
}

@media (max-width: 760px) {
	.ison-program__hero {
		flex-wrap: wrap;
	}

	.ison-program__hero-img {
		width: 100%;
		max-width: 100%;
	}
}

/* Шаги 2-4 регистрации - размеры сняты с макетов «Форма регистрации» 02-04. */
.ison-signup:not(.ison-signup--step1) {
	align-items: flex-start;
	padding: 50px 16px 55px;
}

.ison-signup__card:not(.ison-signup__card--intro) {
	max-width: 844px;
	padding: 20px 60px 27px;
}

.ison-signup__title {
	display: grid;
	text-align: right;
	gap: 4px;
}

.ison-signup__title strong {
	font-size: 24px;
	font-weight: 600;
	color: #fff;
}

.ison-signup__title small {
	font-size: 15px;
	color: #b9c2cb;
}

/* поля шагов 2-4: метка сверху, само поле контурное и ниже, чем на первом шаге */
.ison-signup__form .ison-field__label {
	display: block;
	margin-bottom: 7px;
	font-size: 14px;
	font-weight: 500;
	color: #d3dae1;
}

.ison-signup__form .ison-field__label i {
	font-style: normal;
	color: #ff5a3c;
}

.ison-signup__form input[type="text"],
.ison-signup__form input[type="tel"],
.ison-signup__form input[type="email"],
.ison-signup__form input[type="url"],
.ison-signup__form select {
	width: 100%;
	box-sizing: border-box;
	height: 46px;
	padding: 0 16px;
	background: rgba(16, 27, 34, 0.55);
	border: 2px solid #42505c;
	border-radius: 10px;
	color: #e8edf5;
	font-size: 16px;
	-webkit-appearance: none;
	appearance: none;
}

.ison-signup__form select {
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23c9d2db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}

.ison-signup__form input::placeholder {
	color: #8d98a3;
}

.ison-signup__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 15px;
	margin-bottom: 14px;
}

/* «У меня нет компании» - на макете это блок с контурным квадратом */
.ison-signup__checkbox {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	background: rgba(22, 42, 54, 0.92);
	border: 2px solid #42505c;
	border-radius: 10px;
	padding: 11px 16px;
	margin-bottom: 14px;
	cursor: pointer;
}

.ison-signup__checkbox input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	border: 2px solid #6a7885;
	border-radius: 5px;
	background: transparent;
	cursor: pointer;
}

.ison-signup__checkbox input[type="checkbox"]:checked {
	border-color: var(--ison-orange, #f2551b);
	background: var(--ison-orange, #f2551b)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
		center center / 15px 15px no-repeat;
}

.ison-signup__checkbox strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #e8edf5;
}

.ison-signup__checkbox small {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: #97a2ad;
}

/* плитки «сколько объектов» - пять в ряд, выбранная с оранжевой рамкой */
.ison-signup__choices {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 9px;
}

.ison-choice {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 2px;
	min-width: 0;
	height: 61px;
	padding: 0 8px;
	border: 2px solid #42505c;
	border-radius: 10px;
	background: rgba(16, 27, 34, 0.45);
	cursor: pointer;
	font-size: 15px;
	color: #e3e8ee;
}

.ison-choice small {
	font-size: 13px;
	color: #f2f4f5;
}

.ison-choice.is-current,
.ison-choice:has(input:checked) {
	border-color: #e76a07;
	background: #38180a;
	color: #fefdfc;
}

.ison-choice.is-current small,
.ison-choice:has(input:checked) small {
	color: #fefdfc;
}

.ison-choice input {
	display: none;
}

/* кнопки шага: «Назад» тёмная слева, «Продолжить» оранжевая справа */
.ison-signup__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 18px;
}

.ison-signup__actions .ison-btn--ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 170px;
	height: 69px;
	border: 2px solid #42505c;
	border-radius: 10px;
	background: rgba(16, 27, 34, 0.45);
	color: #e3e8ee;
	font-size: 17px;
}

.ison-signup__actions .ison-btn--primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-width: 340px;
	height: 69px;
	border: 0;
	border-radius: 10px;
	background: radial-gradient(62% 118% at 50% 104%, #e62400 0%, #f23600 34%, #fd6c05 100%);
	color: #fff;
	font-size: 18px;
	font-weight: 500;
}

/* на макетах 02-04 логотип в шапке мельче, чем на первом экране */
.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__mark {
	width: 53px;
	height: 52px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__name {
	font-size: 42px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__tagline {
	font-size: 11px;
	line-height: 15px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__head {
	margin-bottom: 18px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__steps {
	margin: 0 -22px 11px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__grid {
	margin-bottom: 2px;
	grid-template-columns: 386fr 310fr;
	gap: 12px 16px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__actions {
	margin-top: 34px;
}

/* Полоса шагов на макетах 02-04: кружки мельче, пройденный участок подсвечен оранжевым,
   у активного кружка мягкое свечение, будущие подписи приглушены. */
.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step-num {
	width: 41px;
	height: 41px;
	border-width: 2px;
	font-size: 17px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step::before {
	top: 19px;
	height: 2px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step {
	font-size: 14px;
	color: #bdcbd9;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-done::before {
	background: #cd7d04;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-current .ison-signup__step-num {
	box-shadow: 0 0 0 6px rgba(242, 85, 27, 0.16);
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-done .ison-signup__step-num {
	font-size: 21px;
	font-weight: 700;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-current,
.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-done {
	color: #ffffff;
}

/* на макетах 02-04 подписи шагов узкие: «Завершение регистрации» переносится в две строки */
.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step-title {
	max-width: 136px;
	line-height: 1.35;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step {
	gap: 10px;
}

/* лишние 18 px высоты на шаге 2 набегали тремя зазорами между блоками */
.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__form .ison-field {
	margin-bottom: 11px;
}

.ison-signup__card:not(.ison-signup__card--intro) .ison-signup__checkbox {
	margin-bottom: 12px;
}

/* Третий шаг (макет 03): пунктов много, поэтому карточка стоит выше и всё компактнее. */
.ison-signup--step3 {
	padding-top: 4px;
	padding-bottom: 4px;
}

.ison-signup--step3 .ison-signup__tiles {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 40px;
	gap: 9px;
	padding: 3px 11px;
	font-size: 13px;
	line-height: 1.2;
}

.ison-signup--step3 .ison-signup__block {
	margin-bottom: 6px;
}

.ison-signup--step3 .ison-signup__hint {
	margin: 0 0 4px;
}

.ison-signup--step3 .ison-signup__heading {
	margin-bottom: 2px;
}

.ison-signup--step3 .ison-signup__lead {
	margin-bottom: 12px;
}

.ison-signup--step3 .ison-signup__actions {
	margin-top: 4px;
}

/* блок «Регион работы» на третьем шаге: на макете он низкий - переключатели в строку и узкое поле */
.ison-signup--step3 .ison-signup__choices {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.ison-signup--step3 .ison-radio {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #dfe5ea;
}

.ison-signup--step3 .ison-signup__block .ison-field {
	margin-top: 6px;
	margin-bottom: 0;
	max-width: 420px;
}

.ison-signup--step3 .ison-signup__form .ison-field input {
	height: 38px;
}

.ison-signup--step3 .ison-signup__card:not(.ison-signup__card--intro),
.ison-signup--step3 .ison-signup__card {
	padding-top: 14px;
	padding-bottom: 16px;
}

.ison-signup--step3 .ison-signup__actions .ison-btn--ghost,
.ison-signup--step3 .ison-signup__actions .ison-btn--primary {
	height: 54px;
}

/* Третий шаг: по макету 03 карточка уже (712 px) и занимает почти всю высоту экрана. */
.ison-signup.ison-signup--step3 {
	padding: 2px 16px 9px;
}

.ison-signup--step3 .ison-signup__card {
	max-width: 712px;
	padding: 14px 30px 12px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 30px;
	gap: 8px;
	padding: 2px 9px;
	font-size: 12px;
	line-height: 1.15;
}

.ison-signup--step3 .ison-tile-check__box {
	width: 18px;
	height: 18px;
	border-width: 2px;
}

.ison-signup--step3 .ison-signup__heading {
	font-size: 26px;
	line-height: 31px;
}

.ison-signup--step3 .ison-signup__lead {
	font-size: 14px;
	line-height: 18px;
	margin-bottom: 8px;
}

.ison-signup--step3 .ison-signup__form .ison-field__label {
	margin-bottom: 3px;
	font-size: 13px;
}

.ison-signup--step3 .ison-signup__steps {
	margin-bottom: 6px;
}

.ison-signup--step3 .ison-signup__checkbox {
	padding: 7px 12px;
	margin-bottom: 0;
	font-size: 13px;
}

/* Третий шаг, правки по замерам приёмки: размеры и цвета сняты с макета 03. */
.ison-signup--step3 .ison-signup__card {
	padding: 14px 52px 14px;
	background: rgba(6, 19, 28, 0.9);
}

.ison-signup--step3 .ison-signup__card::before {
	background: linear-gradient(180deg, rgba(140, 152, 172, 0.75) 0%, rgba(110, 122, 140, 0.5) 30%,
		rgba(80, 90, 106, 0.42) 100%);
}

/* первая секция на макете обведена рамкой-контейнером */
.ison-signup--step3 .ison-signup__block:first-of-type {
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	padding: 10px 12px 12px;
}

/* пункты на макете выше, иконка и отступы внутри крупнее */
.ison-signup--step3 .ison-tile-check {
	min-height: 42px;
	gap: 14px;
	padding: 3px 11px;
	border-radius: 6px;
	font-size: 12px;
}

.ison-signup--step3 .ison-tile-check__box {
	width: 20px;
	height: 20px;
}

/* заголовок секции крупнее подсказки, как в макете */
.ison-signup--step3 .ison-signup__form .ison-field__label,
.ison-signup--step3 .ison-signup__block > .ison-field__label {
	font-size: 15px;
	margin-bottom: 2px;
}

.ison-signup--step3 .ison-signup__hint {
	font-size: 12px;
	margin: 0 0 6px;
}

/* поле города - во всю ширину и с пином, как в макете */
.ison-signup--step3 .ison-signup__block .ison-field {
	max-width: none;
}

/* переключатели региона: кольцо 21 px, выбранный залит оранжевым */
.ison-signup--step3 .ison-radio input[type="radio"] {
	-webkit-appearance: none;
	appearance: none;
	width: 21px;
	height: 21px;
	margin: 0;
	border: 2px solid #6a7885;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.ison-signup--step3 .ison-radio input[type="radio"]:checked {
	border-color: #ee631e;
	background: #ee631e;
	box-shadow: inset 0 0 0 4px rgba(6, 19, 28, 0.9);
}

/* шапка и кнопки на третьем шаге мельче, чем на втором */
.ison-signup--step3 .ison-signup__title strong {
	font-size: 20px;
}

.ison-signup--step3 .ison-signup__title small {
	font-size: 13px;
}

.ison-signup--step3 .ison-signup__tagline {
	font-size: 9px;
	line-height: 12px;
}

.ison-signup--step3 .ison-signup__actions .ison-btn--ghost {
	min-width: 139px;
	height: 52px;
	font-size: 15px;
}

.ison-signup--step3 .ison-signup__actions .ison-btn--primary {
	min-width: 284px;
	height: 52px;
	font-size: 16px;
	background: #fd5301;
}

/* на макете полоса шагов выходит за крайние кружки */
.ison-signup--step3 .ison-signup__steps {
	margin-left: -30px;
	margin-right: -30px;
}

/* на макете третьего шага оранжевым залит только отрезок перед активным кружком */
.ison-signup--step3 .ison-signup__step.is-done:first-child::before {
	background: rgba(255, 255, 255, 0.27);
}

/* активная подпись шага светлее остальных */
.ison-signup--step3 .ison-signup__step {
	color: #b6bfc8;
}

.ison-signup--step3 .ison-signup__step.is-current {
	color: #ffffff;
}

.ison-signup--step3 .ison-signup__step.is-done {
	color: #c3ccd4;
}

/* оранжевый пин в поле города (макет 03) */
.ison-field__pin {
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	color: var(--ison-orange, #f2551b);
	pointer-events: none;
}

.ison-field--pin input {
	padding-left: 42px;
}

/* Тема electro рвёт слова по символам. Для кабинета это уже запрещено,
   а страницы регистрации в тот запрет не входили - отсюда «Видеонаблюде/ние». */
.ison-signup,
.ison-signup * {
	word-break: normal;
	overflow-wrap: normal;
	hyphens: manual;
}

/* поле с пином: общий отступ поля перебивал отступ под иконку */
.ison-signup__form .ison-field--pin input[type="text"] {
	padding-left: 42px;
}

/* третий шаг: дожимаем высоту, чтобы кнопки не уходили за экран */
.ison-signup--step3 .ison-tile-check {
	min-height: 38px;
}

.ison-signup--step3 .ison-signup__block:first-of-type {
	padding: 8px 10px 10px;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 5px;
}

.ison-signup--step3 .ison-signup__block {
	margin-bottom: 5px;
}

/* третий шаг: окончательная подгонка высоты под макет 03 (карточка 2..930) */
.ison-signup--step3 .ison-signup__card {
	padding: 10px 52px 10px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 34px;
	padding: 2px 10px;
	line-height: 1.1;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 4px;
}

.ison-signup--step3 .ison-signup__block {
	margin-bottom: 4px;
}

.ison-signup--step3 .ison-signup__block:first-of-type {
	padding: 6px 10px 8px;
}

.ison-signup--step3 .ison-signup__heading {
	font-size: 23px;
	line-height: 27px;
}

.ison-signup--step3 .ison-signup__lead {
	font-size: 13px;
	line-height: 16px;
	margin-bottom: 6px;
}

.ison-signup--step3 .ison-signup__steps {
	margin-bottom: 4px;
}

.ison-signup--step3 .ison-signup__step {
	font-size: 12px;
}

.ison-signup--step3 .ison-signup__mark {
	width: 44px;
	height: 44px;
}

.ison-signup--step3 .ison-signup__name {
	font-size: 34px;
}

.ison-signup--step3 .ison-signup__head {
	margin-bottom: 6px;
}

.ison-signup--step3 .ison-signup__block .ison-field {
	margin-top: 4px;
}

.ison-signup--step3 .ison-signup__checkbox {
	padding: 5px 12px;
	font-size: 12px;
}

/* Согласие на обработку данных - обязательная по закону строка, которой нет на макете.
   Делаем её тонкой строкой без рамки, чтобы форма совпадала с образцом по высоте. */
.ison-signup__checkbox--slim {
	border: 0;
	background: transparent;
	padding: 0;
	margin: 4px 0 0;
	gap: 8px;
	align-items: center;
	font-size: 12px;
}

.ison-signup__checkbox--slim input[type="checkbox"] {
	width: 17px;
	height: 17px;
	margin: 0;
}

.ison-signup__checkbox--slim span {
	color: #9aa5b0;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 32px;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 3px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 30px;
}

.ison-signup--step3 .ison-signup__card {
	padding: 6px 52px 8px;
}

.ison-signup--step3 .ison-signup__actions {
	margin-top: 2px;
}

/* Третий шаг, круг 2 приёмки: строка согласия ушла в ряд кнопок, освободившееся место
   отдано плиткам - они на макете выше, а из-за узких колонок у нас лезли переносы. */
.ison-signup--step3 .ison-signup__card {
	max-width: 727px;
	padding: 8px 44px 10px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 44px;
	padding: 4px 11px;
	font-size: 12px;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 6px;
}

.ison-signup--step3 .ison-signup__actions {
	margin-top: 6px;
	gap: 12px;
}

.ison-signup--step3 .ison-signup__actions .ison-signup__checkbox--slim {
	flex: 1 1 auto;
	justify-content: center;
	margin: 0;
	line-height: 1.15;
}

/* полоса шагов на макете выходит за крайние кружки */
.ison-signup--step3 .ison-signup__steps {
	margin-left: -46px;
	margin-right: -46px;
}

/* активный шаг на макете заметно светлее остальных подписей */
.ison-signup--step3 .ison-signup__step,
.ison-signup--step3 .ison-signup__step.is-done {
	color: #a9b4bf;
}

.ison-signup--step3 .ison-signup__step.is-current {
	color: #ffffff;
}

/* третий шаг: снимаем оставшиеся 63 px высоты - по чуть-чуть со всех промежутков */
.ison-signup--step3 .ison-signup__card {
	padding: 4px 44px 6px;
}

.ison-signup--step3 .ison-signup__mark {
	width: 38px;
	height: 38px;
}

.ison-signup--step3 .ison-signup__name {
	font-size: 30px;
}

.ison-signup--step3 .ison-signup__head {
	margin-bottom: 4px;
}

.ison-signup--step3 .ison-signup__steps {
	margin-bottom: 2px;
}

.ison-signup--step3 .ison-signup__heading {
	font-size: 21px;
	line-height: 25px;
}

.ison-signup--step3 .ison-signup__lead {
	font-size: 12px;
	line-height: 15px;
	margin-bottom: 4px;
}

.ison-signup--step3 .ison-signup__block {
	margin-bottom: 2px;
}

.ison-signup--step3 .ison-signup__block:first-of-type {
	padding: 4px 10px 6px;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 5px;
}

.ison-signup--step3 .ison-signup__actions {
	margin-top: 4px;
}

/* «Несколько регионов» должно умещаться в строку, как на макете */
.ison-signup--step3 .ison-signup__choices {
	gap: 4px;
}

.ison-signup--step3 .ison-radio {
	font-size: 12px;
	gap: 6px;
}

.ison-signup--step3 .ison-signup__actions {
	margin-top: 2px;
}

.ison-signup--step3 .ison-signup__card {
	padding: 4px 44px 4px;
}

.ison-signup--step3 .ison-signup__actions .ison-btn--ghost,
.ison-signup--step3 .ison-signup__actions .ison-btn--primary {
	height: 48px;
}

.ison-signup--step3 .ison-tile-check {
	min-height: 42px;
}

.ison-signup--step3 .ison-signup__tiles {
	gap: 3px;
}

/* Третий шаг, круг 3 приёмки. */

/* 1. Приглушение неактивных подписей перебивалось общим правилом для пройденных шагов. */
.ison-signup--step3 .ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step,
.ison-signup--step3 .ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-done {
	color: #a9b4bf;
}

.ison-signup--step3 .ison-signup__card:not(.ison-signup__card--intro) .ison-signup__step.is-current {
	color: #fdfdfd;
}

/* 2. Подписи пунктов на макете обычного начертания - из-за жирного текст лез в третью строку. */
.ison-signup--step3 .ison-tile-check,
.ison-signup--step3 .ison-tile-check span {
	font-weight: 400;
}

/* 3. На макете линия полосы шагов дотягивается до краёв контента, а не обрывается на кружках. */
.ison-signup--step3 .ison-signup__steps {
	position: relative;
}

.ison-signup--step3 .ison-signup__steps::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 19px;
	height: 2px;
	background: rgba(255, 255, 255, 0.27);
}

/* 4. Согласие встало слева и выдавило кнопку «Назад» - возвращаем её к левому краю. */
.ison-signup--step3 .ison-signup__actions .ison-btn--ghost {
	order: 1;
}

.ison-signup--step3 .ison-signup__actions .ison-signup__checkbox--slim {
	order: 2;
}

.ison-signup--step3 .ison-signup__actions .ison-btn--primary {
	order: 3;
}

/* 5. Заголовок и подпись шага были мельче макета. */
.ison-signup--step3 .ison-signup__heading {
	font-size: 24px;
	line-height: 27px;
}

.ison-signup--step3 .ison-signup__lead {
	font-size: 13px;
	line-height: 16px;
}

/* Третий шаг, круг 4 приёмки. */

/* линия полосы шагов: на макете 623 px, у нас блок шире - поджимаем линию с краёв */
.ison-signup--step3 .ison-signup__steps::before {
	left: 30px;
	right: 30px;
}

/* подписи пунктов были крупнее макетных на 3-11%, из-за чего длинная подпись уходила в третью строку */
.ison-signup--step3 .ison-tile-check {
	font-size: 11px;
}

/* Четвёртый шаг (макет 04): кнопка узкая по центру, блоки компактнее - иначе контакты
   внизу не помещаются в экран. */
.ison-signup--step4 {
	padding: 10px 16px;
}

.ison-signup--step4 .ison-signup__card {
	max-width: 820px;
	padding: 14px 46px 16px;
}

.ison-signup--step4 .ison-signup__done {
	gap: 4px;
	margin-bottom: 12px;
}

.ison-signup--step4 .ison-signup__done-icon {
	width: 88px;
	height: 88px;
}

.ison-signup--step4 .ison-signup__heading {
	font-size: 30px;
	line-height: 36px;
	margin: 6px 0 4px;
	text-align: center;
}

.ison-signup--step4 .ison-signup__lead {
	font-size: 15px;
	line-height: 20px;
	margin-bottom: 12px;
	text-align: center;
}

.ison-signup--step4 .ison-signup__cards {
	gap: 10px;
	margin-bottom: 10px;
}

.ison-signup--step4 .ison-signup__warning {
	margin-bottom: 12px;
	padding: 10px 14px;
}

.ison-signup--step4 .ison-btn--primary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 360px;
	max-width: 100%;
	height: 56px;
	margin: 0 auto;
	font-size: 17px;
}

.ison-signup--step4 .ison-signup__contacts {
	margin-top: 14px;
}

/* Четвёртый шаг, круг 1 приёмки: числа сняты приёмщиком с макета 04. */

/* карточка на этом экране непрозрачная - в макете сквозь неё фотография не видна */
.ison-signup--step4 .ison-signup__card {
	background: #071620;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	max-width: 827px;
	padding: 10px 57px 14px;
}

.ison-signup--step4 .ison-signup__card::before {
	background: rgba(150, 165, 180, 0.42);
}

.ison-signup--step4 {
	padding: 10px 16px 8px;
}

/* зелёный круг: в макете 101 px со светлым кантом и свечением */
.ison-signup--step4 .ison-signup__done-icon {
	width: 101px;
	height: 101px;
	border: 2px solid #19a33c;
	box-shadow: 0 0 40px rgba(35, 190, 78, 0.45);
}

/* частицы в макете разлетаются уже */
.ison-signup--step4 .ison-signup__done-icon::before,
.ison-signup--step4 .ison-signup__done-icon::after {
	width: 92px;
	background-size: 92px 120px;
}

/* блок трёх колонок: в макете темнее карточки, с кантом и разделителями */
.ison-signup--step4 .ison-signup__cards {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	background: #091621;
	border: 1px solid #142330;
	border-radius: 14px;
	padding: 16px 10px;
}

.ison-signup--step4 .ison-signup__card-item {
	padding: 0 18px;
	text-align: center;
}

.ison-signup--step4 .ison-signup__card-item + .ison-signup__card-item {
	border-left: 1px solid #1e2f3d;
}

.ison-signup--step4 .ison-signup__card-item span {
	color: var(--ison-orange, #f2551b);
}

.ison-signup--step4 .ison-signup__card-item strong {
	display: block;
	margin: 8px 0 6px;
	color: #ffffff;
	font-size: 15px;
}

.ison-signup--step4 .ison-signup__card-item small {
	color: #c3cedc;
	font-size: 13px;
	line-height: 1.35;
}

/* плашка-предупреждение: в макете оранжевый кант 2 px и круглая иконка */
.ison-signup--step4 .ison-signup__warning {
	position: relative;
	border: 2px solid #ef4a06;
	border-radius: 12px;
	padding: 10px 16px 10px 60px;
}

.ison-signup__warning-icon {
	position: absolute;
	left: 14px;
	top: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #ef4a06;
	color: #ffffff;
}

/* кнопка: в макете ниже и со стрелкой на отступе */
.ison-signup--step4 .ison-btn--primary {
	height: 53px;
	gap: 18px;
	font-size: 16px;
}

/* разделитель в макете стоит НАД «Есть вопросы?» и шире нашего */
.ison-signup--step4 .ison-signup__contacts {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #1e2f3d;
	text-align: center;
}

.ison-signup--step4 .ison-signup__contacts > small {
	display: block;
	margin-bottom: 10px;
}

/* контакты: три в ряд с иконками и разделителями, как в макете */
.ison-signup--step4 .ison-login__contacts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}

.ison-signup--step4 .ison-login__contacts a {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 10px;
	padding: 0 14px;
	text-align: left;
	text-decoration: none;
}

.ison-signup--step4 .ison-login__contacts a + a {
	border-left: 1px solid #1e2f3d;
}

.ison-signup--step4 .ison-login__contacts i {
	grid-row: 1 / span 2;
	display: inline-flex;
	color: var(--ison-orange, #f2551b);
}

.ison-signup--step4 .ison-login__contacts strong {
	color: #ffffff;
	font-size: 14px;
}

.ison-signup--step4 .ison-login__contacts small {
	color: #9fabb8;
	font-size: 12px;
}

/* четвёртый шаг: поджимаем вертикаль, чтобы блок контактов попал в экран целиком */
.ison-signup--step4 .ison-signup__head {
	margin-bottom: 6px;
}

.ison-signup--step4 .ison-signup__steps {
	margin: 0 -20px 8px;
}

.ison-signup--step4 .ison-signup__done {
	gap: 2px;
	margin-bottom: 8px;
}

.ison-signup--step4 .ison-signup__heading {
	font-size: 28px;
	line-height: 33px;
	margin: 4px 0 2px;
}

.ison-signup--step4 .ison-signup__lead {
	font-size: 14px;
	line-height: 19px;
	margin-bottom: 8px;
}

.ison-signup--step4 .ison-signup__cards {
	padding: 12px 10px;
	margin-bottom: 8px;
}

.ison-signup--step4 .ison-signup__warning {
	margin-bottom: 8px;
}

.ison-signup--step4 .ison-signup__contacts {
	margin-top: 10px;
	padding-top: 10px;
}

/* отступ страницы на четвёртом шаге перебивался общим правилом для шагов 2-4 */
.ison-signup.ison-signup--step4 {
	padding: 10px 16px 6px;
}

.ison-signup--step4 .ison-signup__cards {
	padding: 10px 10px;
}

.ison-signup--step4 .ison-signup__card {
	padding: 8px 57px 10px;
}

/* Четвёртый шаг, круг 2 приёмки - числа из замеров приёмщика по макету 04. */

/* кнопка: высота перебивалась общим правилом крупной кнопки */
.ison-signup--step4 .ison-btn.ison-btn--primary.ison-btn--big {
	height: 53px;
	padding: 0;
	line-height: 1;
}

/* у списка контактов своя верхняя линия - в макете линия одна, выше «Есть вопросы?» */
.ison-signup--step4 .ison-login__contacts {
	border-top: 0;
	padding-top: 0;
	margin-top: 4px;
}

/* панель колонок, плашка и контакты на макете шире колонки текста */
.ison-signup--step4 .ison-signup__cards,
.ison-signup--step4 .ison-signup__warning {
	margin-left: -24px;
	margin-right: -24px;
}

.ison-signup--step4 .ison-signup__cards {
	padding: 14px 12px;
}

.ison-signup--step4 .ison-signup__contacts {
	margin-left: -24px;
	margin-right: -24px;
}

/* вертикальный ритм: верх был поднят слишком высоко, низ прижат */
.ison-signup.ison-signup--step4 {
	padding: 24px 16px 10px;
}

.ison-signup--step4 .ison-signup__done {
	margin-bottom: 12px;
}

.ison-signup--step4 .ison-signup__heading {
	font-size: 30px;
	line-height: 36px;
	margin: 6px 0 4px;
}

.ison-signup--step4 .ison-signup__lead {
	margin-bottom: 12px;
}

.ison-signup--step4 .ison-signup__cards {
	margin-bottom: 12px;
}

.ison-signup--step4 .ison-signup__warning {
	margin-bottom: 14px;
}

/* зелёный круг: в макете заметный градиент внутри и никакого свечения снаружи */
.ison-signup--step4 .ison-signup__done-icon {
	background: radial-gradient(90% 90% at 45% 32%, #4ae06f 0%, #24bb51 40%, #0a6b25 100%);
	box-shadow: none;
}

.ison-signup--step4 .ison-signup__done-icon::before,
.ison-signup--step4 .ison-signup__done-icon::after {
	width: 74px;
	background-size: 74px 110px;
}

/* шапка на этом экране была крупнее макета */
.ison-signup--step4 .ison-signup__name {
	font-size: 38px;
}

.ison-signup--step4 .ison-signup__tagline {
	font-size: 9px;
	line-height: 13px;
}

.ison-signup--step4 .ison-signup__title small {
	font-size: 13px;
}

/* низ, наоборот, был мельче */
.ison-signup--step4 .ison-signup__contacts > strong {
	font-size: 16px;
}

.ison-signup--step4 .ison-signup__contacts > small {
	font-size: 14px;
}

/* круглая оранжевая иконка телефона в контактах */
.ison-contact-icon--round {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: var(--ison-orange, #f2551b);
	color: #ffffff;
}

/* Четвёртый шаг, круг 3 приёмки. */

/* высоту кнопки держал min-height у крупной кнопки, а не height */
.ison-signup--step4 .ison-btn.ison-btn--primary.ison-btn--big {
	min-height: 53px;
	height: 53px;
}

/* трубка внутри оранжевого круга была того же цвета, что круг */
.ison-signup--step4 .ison-login__contacts .ison-contact-icon--round,
.ison-signup--step4 .ison-login__contacts .ison-contact-icon--round .ison-svg {
	color: #ffffff;
}

/* блок контактов на макете шире, иконки крупнее */
.ison-signup--step4 .ison-signup__contacts {
	margin-left: -46px;
	margin-right: -46px;
}

.ison-signup--step4 .ison-login__contacts a {
	padding: 0 8px;
}

/* описание первой колонки на макете ложится в три строки */
.ison-signup--step4 .ison-signup__card-item small {
	font-size: 14px;
	line-height: 1.3;
}

/* подпись под заголовком была на четверть мельче макета */
.ison-signup--step4 .ison-signup__lead {
	font-size: 17px;
	line-height: 23px;
}

/* карточка стояла ниже макета, а середина растягивалась */
.ison-signup.ison-signup--step4 {
	padding: 10px 16px 8px;
}

.ison-signup--step4 .ison-signup__card {
	padding: 14px 57px 16px;
}

.ison-signup--step4 .ison-signup__done {
	margin-bottom: 8px;
}

.ison-signup--step4 .ison-signup__cards {
	margin-bottom: 10px;
	padding: 12px 12px;
}

.ison-signup--step4 .ison-signup__warning {
	margin-bottom: 10px;
}

.ison-signup--step4 .ison-signup__contacts {
	margin-top: 12px;
	padding-top: 12px;
}

/* частицы в макете разлетаются выше и ниже круга */
.ison-signup--step4 .ison-signup__done-icon::before,
.ison-signup--step4 .ison-signup__done-icon::after {
	top: -32px;
	bottom: -32px;
	width: 80px;
	background-size: 80px 165px;
}

/* край круга в макете заметно темнее центра */
.ison-signup--step4 .ison-signup__done-icon {
	background: radial-gradient(85% 85% at 44% 30%, #5ce87d 0%, #23bd50 38%, #04511a 100%);
}

/* шапка на этом экране оставалась крупнее макета */
.ison-signup--step4 .ison-signup__name {
	font-size: 34px;
}

.ison-signup--step4 .ison-signup__tagline {
	font-size: 8px;
	line-height: 11px;
}

.ison-signup--step4 .ison-signup__title strong {
	font-size: 22px;
}

.ison-signup--step4 .ison-signup__contacts > small {
	font-size: 13px;
}

/* Четвёртый шаг, круг 4 приёмки - последний по правилу пяти кругов. */

/* первая колонка: текст должен лечь в три строки, как на макете */
.ison-signup--step4 .ison-signup__card-item {
	padding: 0 26px;
}

/* разделитель внизу выровнен с панелью и плашкой, а сами контакты шире */
.ison-signup--step4 .ison-signup__contacts {
	margin-left: -24px;
	margin-right: -24px;
}

.ison-signup--step4 .ison-login__contacts {
	margin-left: -22px;
	margin-right: -22px;
}

.ison-signup--step4 .ison-login__contacts a {
	padding: 0 4px;
}

/* частицы в макете разлетаются заметно выше и ниже круга */
.ison-signup--step4 .ison-signup__done-icon::before {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='170' viewBox='0 0 80 170'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M30 16c5-5 12-5 17 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M12 74l15-5' stroke='%233c4956' stroke-width='7'/%3E%3Cpath d='M34 150l12 4' stroke='%2323be4e' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
}

.ison-signup--step4 .ison-signup__done-icon::after {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='170' viewBox='0 0 80 170'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M33 16c5-5 12-5 17 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M52 72l-16-4' stroke='%2323be4e' stroke-width='7'/%3E%3Cpath d='M46 150l-12 6' stroke='%233c4956' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
}

/* край круга в макете вдвое темнее нашего */
.ison-signup--step4 .ison-signup__done-icon {
	background: radial-gradient(68% 68% at 44% 28%, #6cf58d 0%, #25c153 34%, #023f14 100%);
}

/* левая половина шапки оставалась крупнее макета */
.ison-signup--step4 .ison-signup__name {
	font-size: 31px;
}

.ison-signup--step4 .ison-signup__tagline {
	font-size: 7px;
	line-height: 10px;
}

/* Четвёртый шаг: частицы не должны задевать подписи шагов и заголовок,
   поэтому разлёт по вертикали возвращён к макетным 84 px, и их снова восемь. */
.ison-signup--step4 .ison-signup__done-icon::before,
.ison-signup--step4 .ison-signup__done-icon::after {
	top: -12px;
	bottom: -12px;
	width: 84px;
	background-size: 84px 125px;
}

.ison-signup--step4 .ison-signup__done-icon::before {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='125' viewBox='0 0 84 125'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M30 20c5-5 12-5 17 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M14 58l14-5' stroke='%233c4956' stroke-width='7'/%3E%3Cpath d='M26 96l13 4' stroke='%2323be4e' stroke-width='6'/%3E%3Cpath d='M54 34l5 9' stroke='%233c4956' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
}

.ison-signup--step4 .ison-signup__done-icon::after {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='125' viewBox='0 0 84 125'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M37 20c5-5 12-5 17 0' stroke='%23f4571c' stroke-width='9'/%3E%3Cpath d='M56 56l-15-4' stroke='%2323be4e' stroke-width='7'/%3E%3Cpath d='M58 96l-13 5' stroke='%233c4956' stroke-width='6'/%3E%3Cpath d='M30 34l-5 10' stroke='%2323be4e' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
}

/* боковые поля у контактов были вдвое больше макетных */
.ison-signup--step4 .ison-login__contacts {
	margin-left: -64px;
	margin-right: -64px;
}

/* центр круга был почти белым - в макете он заметно темнее, а край ещё темнее */
.ison-signup--step4 .ison-signup__done-icon {
	background: radial-gradient(72% 72% at 44% 30%, #3fd167 0%, #1ca644 40%, #02360f 100%);
}

/* Страница входа - размеры сняты с макета «01 Страница входа в личный кабинет»:
   карточка 730x842 в точке (470, 42), колонка содержимого 553..1120. */
.ison-login {
	align-items: flex-start;
	padding: 42px 16px 15px;
	background: #0b0f14 url('../img/login-bg.jpg') center center / cover no-repeat fixed;
}

.ison-login__card {
	max-width: 730px;
	padding: 26px 83px 30px;
	background: rgba(9, 22, 31, 0.94);
	border-radius: 22px;
}

.ison-login__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-bottom: 30px;
}

.ison-login__mark {
	width: 54px;
	height: 54px;
	object-fit: contain;
}

.ison-login__logo {
	font-size: 42px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1;
}

.ison-login__tagline {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #d6d9db;
	border-left: 3px solid rgba(255, 255, 255, 0.5);
	padding-left: 14px;
	line-height: 15px;
	text-align: left;
}

.ison-login__title {
	margin: 0 0 8px;
	font-size: 33px;
	line-height: 38px;
	font-weight: 700;
	color: #ffffff;
}

.ison-login__subtitle {
	margin: 0 0 22px;
	font-size: 17px;
	line-height: 23px;
	color: #c3ccd6;
}

.ison-login__card .ison-field {
	margin-bottom: 16px;
}

.ison-login__card .ison-field__label {
	display: block;
	margin-bottom: 8px;
	font-size: 16px;
	color: #dfe5ea;
}

.ison-login__card .ison-field__control {
	position: relative;
	display: block;
}

.ison-login__card .ison-field__icon {
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	color: #9aa6b2;
	pointer-events: none;
}

.ison-login__card input[type="email"],
.ison-login__card input[type="password"],
.ison-login__card input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	height: 50px;
	padding: 0 52px 0 62px;
	border-radius: 10px;
	border: 2px solid #42505c;
	background: rgba(16, 27, 34, 0.55);
	color: #eef3f9;
	font-size: 17px;
}

.ison-login__card .ison-field__eye {
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: none;
	color: #9aa6b2;
	cursor: pointer;
	padding: 0;
}

/* кнопка «Войти» и контурная «Зарегистрироваться» - как на макете */
.ison-login__card .ison-btn--wide {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	width: 100%;
	height: 58px;
	min-height: 58px;
	border-radius: 10px;
	font-size: 19px;
	font-weight: 500;
}

.ison-login__card .ison-btn--primary {
	border: 0;
	background: radial-gradient(62% 118% at 50% 104%, #e62400 0%, #f23600 34%, #fd6c05 100%);
	color: #ffffff;
}

.ison-login__card .ison-btn--ghost {
	border: 2px solid var(--ison-orange, #f2551b);
	background: transparent;
	color: var(--ison-orange, #f2551b);
	text-decoration: none;
}

/* контакты внизу карточки: иконки, разделители, две строки текста */
.ison-login__contacts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 26px;
}

.ison-login__contacts a {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 12px;
	padding: 0 14px;
	text-decoration: none;
}

.ison-login__contacts a + a {
	border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.ison-login__contacts i {
	grid-row: 1 / span 2;
	display: inline-flex;
	color: var(--ison-orange, #f2551b);
}

.ison-login__contacts strong {
	color: #ffffff;
	font-size: 15px;
}

.ison-login__contacts small {
	color: #9fabb8;
	font-size: 12px;
}

/* Страница входа, круг 1 приёмки - числа из замеров по макету 01. */

/* карточка: в макете выше, с кантом 2 px и начинается на y=52 */
.ison-login {
	padding: 52px 16px 20px;
}

.ison-login__card {
	position: relative;
	max-width: 740px;
	padding: 30px 84px 34px;
	border: 2px solid #2d3f4e;
	border-radius: 18px;
	background: rgba(4, 17, 24, 0.95);
}

/* знак и слово в логотипе были мельче макетных */
.ison-login__mark {
	width: 68px;
	height: 68px;
}

.ison-login__logo {
	font-size: 48px;
}

/* буква «i» красилась оранжевым - в макете всё слово белое */
.ison-login__logo::first-letter {
	color: inherit;
}

.ison-login__tagline {
	font-size: 13px;
	line-height: 20px;
	border-left-width: 1px;
	border-left-color: #a8bccb;
	padding-left: 16px;
}

.ison-login__title {
	font-size: 38px;
	line-height: 44px;
}

/* поля: в макете выше, рамка толще и темнее заливка */
.ison-login__card input[type="email"],
.ison-login__card input[type="password"],
.ison-login__card input[type="text"] {
	height: 59px;
	padding: 0 56px 0 67px;
	border: 2px solid #405361;
	background: #0b1820;
}

.ison-login__card .ison-field__icon {
	color: #8fa0ae;
}

/* чекбокс «Запомнить меня» в макете крупнее */
.ison-login__row .ison-check input[type="checkbox"] {
	width: 30px;
	height: 30px;
}

/* кнопка «Войти»: выше и с ровной заливкой слева направо */
.ison-login__card .ison-btn--wide {
	height: 64px;
	min-height: 64px;
	gap: 27px;
}

.ison-login__card .ison-btn--primary {
	background: linear-gradient(90deg, #fe5000 0%, #fd3d00 100%);
}

/* у «Ещё нет аккаунта?» была своя плашка, в макете текст лежит на фоне карточки */
.ison-login__divider span {
	background: transparent;
}

/* лишняя линия над контактами */
.ison-login__contacts {
	border-top: 0;
	margin-top: 30px;
}

/* блок контактов в макете идёт от края до края карточки */
.ison-login__card .ison-login__contacts {
	margin-left: -56px;
	margin-right: -56px;
}

.ison-login__card .ison-login__contacts a {
	padding: 0 10px;
}

.ison-login__card .ison-login__contacts strong {
	font-size: 16px;
	white-space: nowrap;
}

.ison-login__card .ison-login__contacts small {
	font-size: 12px;
	white-space: nowrap;
}

/* Страница входа, круг 2 приёмки. */

/* поля: правка не доходила - высоту и рамку держало правило .ison-login .ison-field__control input */
.ison-login .ison-field__control input[type="email"],
.ison-login .ison-field__control input[type="password"],
.ison-login .ison-field__control input[type="text"] {
	height: 59px;
	padding: 0 56px 0 67px;
	border: 2px solid #405361;
	background: #0b1820;
}

/* размер иконок в полях задавался общим правилом на 18 px */
.ison-login__card .ison-field__icon .ison-svg {
	width: 28px;
	height: 28px;
}

.ison-login__card .ison-field__eye .ison-svg {
	width: 26px;
	height: 26px;
}

/* трубка внутри оранжевого круга красилась тем же оранжевым */
.ison-login__contacts .ison-contact-icon--round,
.ison-login__contacts .ison-contact-icon--round .ison-svg {
	color: #ffffff;
}

/* надпись «Ещё нет аккаунта?» должна перекрывать линию, но фоном карточки, а не светлой плашкой */
.ison-login__divider span {
	background: #061218;
	padding: 0 18px;
}

/* в макете вокруг карточки нет тени */
.ison-login__card {
	box-shadow: none;
}

/* логотип в макете смещён левее центра карточки */
.ison-login__brand {
	margin-right: 72px;
}

/* Страница входа, круг 3 приёмки. */

/* трубка в макете вырезана из круга, а не нарисована поверх */
.ison-login__contacts .ison-contact-icon--round {
	background: #f44705;
}

.ison-login__contacts .ison-contact-icon--round .ison-svg {
	color: #0b1820;
}

/* замок был шире макетного, «глаз» - уже */
.ison-login__card .ison-field__icon .ison-svg--lock-line {
	width: 24px;
	height: 24px;
}

.ison-login__card .ison-field__eye .ison-svg {
	width: 30px;
	height: 30px;
}

/* Отступы трогать не стали: приёмщик намерил их больше макетных, но низ содержимого
   при этом стоял ВЫШЕ макета - уменьшение отступов увело низ ещё дальше и уронило
   совпадение с 86,6% до 85,1%. Оставляем как есть, разница уходит в «на будущее». */

/* Вход: приёмщик разобрал, что отступы компенсировали недобор высоты четырёх блоков.
   Правим сами блоки - тогда и отступы сходятся без подгонки. */
.ison-login__mark {
	width: 68px;
	height: 68px;
}

.ison-login__title {
	font-size: 40px;
	line-height: 46px;
}

.ison-login__card .ison-field__label {
	font-size: 18px;
	line-height: 18px;
}

.ison-login__card .ison-login__contacts strong {
	font-size: 17px;
}

.ison-login__card .ison-login__contacts small {
	font-size: 13px;
}

/* Страницы кабинета: на макетах 02-15 между шапкой сайта и кабинетом нет
   ни хлебных крошек, ни большого отступа - контент начинается сразу. */
/* Крошки темы прячем везде в кабинете: на макетах они стоят внутри колонки контента,
   над заголовком раздела, и выводятся своим блоком .ison-crumbs. */
body.ison-cabinet .woocommerce-breadcrumb,
body.ison-cabinet .breadcrumb,
body.ison-cabinet .breadcrumbs {
	display: none !important;
}

.ison-crumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
	font-size: 12px;
	/* цвет снят пипеткой с макета 03: крошки там тёмно-синие, а не серые */
	color: #3a4a7e;
}

.ison-crumbs a {
	color: #3a4a7e;
	text-decoration: none;
}

.ison-crumbs a:hover {
	color: var(--ison-orange, #f2551b);
}

.ison-crumbs__sep {
	color: #b3bcc9;
}

body.ison-cabinet .ison-layout {
	margin-top: 0;
	margin-bottom: 16px;
}

body.ison-cabinet .site-content,
body.ison-cabinet .site-content-inner,
body.ison-cabinet .content-area {
	padding-top: 0;
	margin-top: 0;
}

/* Масштаб кабинета: на макетах 02-15 текст заметно мельче нашего, из-за чего при
   ширине макета (1536) в таблицах не помещались дата и наименование. */
body.ison-cabinet .ison-table {
	font-size: 12px;
}

body.ison-cabinet .ison-table th {
	font-size: 11px;
}

body.ison-cabinet .ison-panel__title,
body.ison-cabinet .ison-dash-panel__title {
	font-size: 17px;
}

body.ison-cabinet .ison-badge,
body.ison-cabinet .ison-status {
	font-size: 11px;
	padding: 3px 8px;
}

body.ison-cabinet .ison-table td,
body.ison-cabinet .ison-table th {
	padding: 8px 6px;
}

/* Главная кабинета, круг 1 приёмки - числа сняты приёмщиком с макета 02 (1536x1024). */

/* колонки: основная 983, правая 253 */
body.ison-cabinet .ison-dash-grid {
	grid-template-columns: minmax(0, 1fr) 253px;
	gap: 17px;
}

/* «До следующего уровня» в макете стоит в шапке кабинета, а не над правой колонкой */
body.ison-cabinet .ison-dash-head {
	padding-right: 270px;
}

body.ison-cabinet .ison-dash-next {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px;
	max-width: 214px;
}

body.ison-cabinet .ison-dash-next__bar i {
	background: var(--ison-orange, #f2551b);
}

/* низ боковой панели прижимался к самому низу и уходил за экран */
.ison-sidebar__promo {
	margin: 24px 20px 18px;
}

/* кнопки мессенджеров на макете стоят отдельной колонкой справа в карточке менеджера */
body.ison-cabinet .ison-manager {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) 215px;
	align-items: start;
	gap: 14px;
}

body.ison-cabinet .ison-manager__buttons {
	display: grid;
	gap: 8px;
	align-content: start;
}

body.ison-cabinet .ison-manager__buttons .ison-btn {
	width: 209px;
	height: 42px;
	font-size: 12px;
}

/* шапка таблиц на макете залита голубым */
body.ison-cabinet .ison-table thead th {
	background: #e5effe;
	color: #4a5568;
}

/* иконки преимуществ в макете крупнее */
body.ison-cabinet .ison-benefits__icon {
	width: 53px;
	height: 53px;
}

body.ison-cabinet .ison-benefits__icon .ison-svg {
	width: 26px;
	height: 26px;
}

/* выбранный пункт меню - плашка с отступом и скруглением */
body.ison-cabinet .ison-menu__link.is-current {
	margin: 0 8px 0 10px;
	border-radius: 10px;
	background: linear-gradient(90deg, #f4571c 0%, #c73f0c 100%);
}

/* иконка скидки и значение процента */
body.ison-cabinet .ison-tile--discount .ison-tile__icon {
	width: 54px;
	height: 54px;
	background: var(--ison-orange, #f2551b);
	color: #ffffff;
}

body.ison-cabinet .ison-tile--discount .ison-tile__value {
	color: #1f25a2;
}

/* сумма оборота вылезала за край карточки */
body.ison-cabinet .ison-tile__value {
	font-size: 26px;
	white-space: nowrap;
}

/* Главная, круг 1 приёмки - часть 2. Карточка менеджера на макете в три колонки:
   фото, контакты, кнопки мессенджеров справа. */
body.ison-cabinet .ison-tile--manager {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) 215px;
	align-items: start;
	gap: 14px;
}

body.ison-cabinet .ison-tile--manager .ison-manager__buttons {
	display: grid;
	gap: 8px;
	align-content: start;
}

body.ison-cabinet .ison-tile--manager .ison-msg {
	width: 209px;
	height: 42px;
	box-sizing: border-box;
	font-size: 12px;
	white-space: nowrap;
}

/* значение скидки на макете тёмно-синее, а не оранжевое */
body.ison-cabinet .ison-tile--discount .ison-tile__value {
	color: #1f25a2 !important;
}

/* иконка скидки - сплошной оранжевый круг с белым знаком */
body.ison-cabinet .ison-tile--discount .ison-tile__icon {
	width: 54px;
	height: 54px;
	background: var(--ison-orange, #f2551b);
	color: #ffffff;
}

/* приветствие на макете в одну строку */
body.ison-cabinet .ison-dash-head {
	padding-right: 0;
	grid-template-columns: minmax(420px, 1fr) auto 232px;
}

/* колонка «Наименование» в таблице заказов на макете вдвое шире */
body.ison-cabinet .ison-table--dash-orders th:nth-child(3),
body.ison-cabinet .ison-table--dash-orders td:nth-child(3) {
	width: 34%;
}

/* Главная, круг 2 приёмки. Основная колонка была на 53 px уже макетной - её съедали
   боковые отступы контента; от этого шли переносы в карточке менеджера и обрезка в таблице.
   Круг 3: на макете 03 белая карточка занимает 280..1517 при боковой панели шириной 254,
   то есть слева 26 px, справа 18 px - при отступе 14 всё содержимое стояло на 12 px левее
   макета, и столбцы таблицы не сходились. */
body.ison-cabinet .ison-content {
	padding-left: 26px;
	padding-right: 18px;
}

/* На макете 02 (главная) карточка идёт от 255 до 1523, то есть почти вплотную к
   боковой панели - отступы там меньше, чем на внутренних страницах. С отступом 26
   таблицам главной переставало хватать ширины и они уходили под прокрутку. */
body.ison-cabinet-dashboard .ison-content {
	padding-left: 14px;
	padding-right: 14px;
}

/* «Коммерческое предложение» в таблицах главной не помещалось в свой столбец и
   обрезалось на семи ширинах от 1440 до 1800. Виновато правило «плашки статусов
   однострочные» с !important: оно бьёт по любому span с «status» в классе.
   Здесь перенос возвращаем - иначе статус проекта просто не прочитать. */
body.ison-cabinet-dashboard .ison-dash-tables .ison-table span[class*="status"],
body.ison-cabinet-dashboard .ison-dash-tables .ison-table .ison-status-tag {
	white-space: normal !important;
	line-height: 1.15;
	max-width: 100%;
	text-align: center;
	/* переносить разрешаем ТОЛЬКО по пробелу: без этого тема Electro рвала
	   «Обработка» посередине слова */
	word-break: keep-all !important;
	overflow-wrap: normal !important;
	hyphens: none;
}


@media (min-width: 1280px) {
	body.ison-cabinet .ison-layout {
		margin-left: calc((100% - var(--ison-vw, 100%)) / 2);
		margin-right: calc((100% - var(--ison-vw, 100%)) / 2);
		width: var(--ison-vw, 100%);
		max-width: var(--ison-vw, 100%);
	}
}

/* карточка менеджера: колонке контактов не хватало ширины, номера рвались пополам */
body.ison-cabinet .ison-tile--manager {
	grid-template-columns: auto minmax(185px, 1fr) 215px;
}

body.ison-cabinet .ison-manager__row {
	white-space: nowrap;
}

body.ison-cabinet .ison-tile--manager .ison-manager__buttons {
	gap: 8px;
}

/* иконки «Преимуществ» и пункт меню: прежние правила перебивались, усиливаем */
body.ison-cabinet .ison-benefits .ison-benefits__icon,
body.ison-cabinet .ison-benefits__list .ison-benefits__icon {
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
}

body.ison-cabinet .ison-menu .ison-menu__link.is-current,
body.ison-cabinet .ison-sidebar .ison-menu__link.is-current {
	margin-right: 9px;
	margin-left: 10px;
	border-radius: 10px;
	background: linear-gradient(90deg, #f6480a 0%, #7e2a07 62%, #01141a 100%);
}

/* иконка скидки была овалом */
body.ison-cabinet .ison-tile--discount .ison-tile__icon {
	flex: 0 0 54px;
	min-width: 54px;
}

/* заголовок правой колонки и подписи пунктов не должны переноситься сильнее макета */
body.ison-cabinet .ison-benefits__title,
body.ison-cabinet .ison-panel--benefits .ison-panel__title {
	font-size: 15px;
	white-space: nowrap;
}

body.ison-cabinet .ison-benefits__text strong {
	font-size: 12px;
}

body.ison-cabinet .ison-benefits__text span {
	font-size: 11px;
}

/* плашки статусов на макете однострочные */
body.ison-cabinet .ison-table .ison-status,
body.ison-cabinet .ison-table .ison-badge {
	white-space: nowrap;
}

/* кнопки мессенджеров вылезали за карточку: фиксированная ширина больше своей колонки */
body.ison-cabinet .ison-tile--manager {
	grid-template-columns: auto minmax(170px, 1fr) minmax(0, 210px);
	align-items: start;
}

body.ison-cabinet .ison-tile--manager .ison-msg {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: 42px;
	padding: 0 10px;
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ряд карточек на макете вдвое ниже - убираем лишнюю высоту */
body.ison-cabinet .ison-tiles--dash .ison-tile {
	padding: 14px 16px;
	align-content: start;
}

/* карточка менеджера: явные доли колонок, иначе колонка кнопок расползается */
body.ison-cabinet .ison-tiles .ison-tile--manager {
	grid-template-columns: 62px minmax(0, 1fr) 200px;
	gap: 12px;
	padding: 12px 14px;
}

body.ison-cabinet .ison-tile--manager .ison-manager__buttons {
	width: 200px;
	max-width: 200px;
	overflow: hidden;
}

body.ison-cabinet .ison-tile--manager .ison-msg {
	width: 200px;
	max-width: 200px;
	height: 40px;
	padding: 0 8px;
	font-size: 10px;
	gap: 6px;
}

body.ison-cabinet .ison-manager__photo {
	width: 62px;
	height: 62px;
}

/* подписи карточек на макете в одну строку */
body.ison-cabinet .ison-tile__label {
	white-space: nowrap;
	font-size: 12px;
}

/* в карточке менеджера подпись узкая - запрет переноса гнал её под кнопки */
body.ison-cabinet .ison-tile--manager .ison-tile__label {
	white-space: normal;
	font-size: 11px;
	line-height: 1.25;
}

body.ison-cabinet .ison-manager__name {
	font-size: 15px;
	line-height: 1.2;
}

/* ⛔ Замер макета 02: контакты менеджера набраны СИНИМ (42,57,180). У нас второй телефон
   выводился фирменным оранжевым и единственный на всей главной не проходил норму
   контраста (3,6:1 при требуемых 4,5). Приводим все строки к макетному цвету. */
body.ison-cabinet .ison-manager__row {
	font-size: 11px;
	line-height: 1.5;
	gap: 6px;
	color: #2a39b4;
}

body.ison-cabinet a.ison-manager__row,
body.ison-cabinet .ison-manager__row a {
	color: #2a39b4;
}

/* высота ряда карточек на макете 122 px */
body.ison-cabinet .ison-tiles .ison-tile {
	padding: 12px 14px;
}

body.ison-cabinet .ison-tile__value {
	font-size: 24px;
	line-height: 1.15;
}

body.ison-cabinet .ison-tile__meta {
	font-size: 11px;
}

/* Главная, круг 3 приёмки. Подсветка пункта меню три круга не менялась, потому что
   в разметке класс `.ison-menu__item.is-active`, а правила писались на `__link.is-current`. */
/* Круг 3 экранов 03-04: подсветка была 196 px против 232 на макете - справа съедал отступ 40. */
body.ison-cabinet .ison-menu .ison-menu__item.is-active {
	margin: 0 12px 0 10px;
	border-radius: 10px;
	background: linear-gradient(90deg, #f6480a 0%, #7e2a07 58%, #01141a 100%);
}

/* столбец «Наименование» в таблице заказов: правило било по несуществующему классу */
body.ison-cabinet .ison-dash-tables .ison-table__name {
	width: 34%;
	max-width: none;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(1),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(1) {
	width: 14%;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(2),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(2) {
	width: 16%;
}

/* плашки статусов на макете однострочные */
body.ison-cabinet .ison-status,
body.ison-cabinet .ison-badge,
body.ison-cabinet .ison-table span[class*="status"] {
	white-space: nowrap !important;
}

/* правая колонка: текст был крупнее макетного на треть */
body.ison-cabinet .ison-benefits__text strong {
	font-size: 11.5px;
	line-height: 1.25;
}

body.ison-cabinet .ison-benefits__text span {
	font-size: 10.5px;
	line-height: 1.3;
}

/* метка «Хит продаж» пряталась под картинкой товара */
body.ison-cabinet .ison-recommend .ison-product__badge,
body.ison-cabinet .ison-recommend [class*="badge"] {
	position: relative;
	z-index: 2;
}

/* блок техподдержки в панели: иконка слева, текст правее - как на макете */
.ison-sidebar__support {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 12px;
	align-items: center;
}

.ison-sidebar__support-icon {
	grid-row: 1 / span 3;
	display: inline-flex;
	color: var(--ison-orange, #f2551b);
}

/* баннер: картинка занимает правую часть, наш дублирующий текст убран */
body.ison-cabinet .ison-promo__slogan {
	display: none;
}

body.ison-cabinet .ison-promo__media img {
	width: 100%;
	height: auto;
}

body.ison-cabinet .ison-promo {
	grid-template-columns: minmax(0, 1fr) 490px;
	align-items: center;
}

/* Главная, круг 4 приёмки. */

/* из-под скруглённой плашки меню просвечивал белый фон родителя */
body.ison-cabinet .ison-menu,
body.ison-cabinet .ison-sidebar__nav {
	background: #01141a;
}

/* столбец «Наименование»: доля задавалась только ячейкам, заголовок оставался узким */
body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(3) {
	width: 34%;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(4),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(4) {
	width: 17%;
}

/* плашка статуса обрезала слово: даём ей место и не режем текст */
body.ison-cabinet .ison-table .ison-status,
body.ison-cabinet .ison-table .ison-badge {
	overflow: visible;
	text-overflow: clip;
	font-size: 10px;
	padding: 3px 7px;
}

/* подзаголовок приветствия должен умещаться в строку */
body.ison-cabinet .ison-dash-head {
	grid-template-columns: minmax(470px, 1fr) 288px 240px;
	gap: 12px;
}

body.ison-cabinet .ison-page__lead {
	white-space: nowrap;
	font-size: 13px;
}

/* заголовок правой колонки в макете одной строкой */
body.ison-cabinet .ison-panel--benefits .ison-panel__title,
body.ison-cabinet .ison-benefits .ison-panel__title {
	font-size: 14px;
	white-space: nowrap;
}

/* ⛔ На макете 02 снимок оборудования - это ФОН правой половины баннера: он высотой
   172 px при карточке 190 и доходит до самого правого края. Прежние `width: 490px`
   вместе с `max-width: 100%` в узкой колонке ужимали его до 339×91, вокруг оставалось
   пустое голубое поле, а надпись на снимке становилась нечитаемой. Ставим картинку
   справа во всю высоту карточки. */
body.ison-cabinet .ison-promo {
	position: relative;
	overflow: hidden;
}

body.ison-cabinet .ison-promo__media {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 52%;
	max-width: none;
}

body.ison-cabinet .ison-promo__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center right;
	display: block;
}

body.ison-cabinet .ison-promo__text {
	position: relative;
	z-index: 2;
	/* на макете текст занимает чуть больше половины и кнопки стоят В СТРОКУ:
	   при 48% они складывались в столбик и баннер вырастал по высоте */
	max-width: 55%;
}

body.ison-cabinet .ison-promo__buttons {
	flex-wrap: nowrap;
}

body.ison-cabinet .ison-promo__buttons .ison-btn {
	white-space: nowrap;
}

body.ison-cabinet .ison-promo {
	padding: 16px 18px;
}

/* «Подобрать оборудование ISON»: на макете светлая карточка, а не сплошная синяя плашка */
body.ison-cabinet .ison-sidecta,
body.ison-cabinet .ison-benefits-cta {
	background: #eef5ff;
	color: #153763;
}

body.ison-cabinet .ison-sidecta *,
body.ison-cabinet .ison-benefits-cta * {
	color: #153763;
}

/* Главная, круг 5. Свежая поломка: моя же правка долей в шапке растянула главную
   колонку за её границы, и блоки налезли на правую колонку. */
body.ison-cabinet .ison-dash-main {
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
}

body.ison-cabinet .ison-dash-head {
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 12px;
}

body.ison-cabinet .ison-dash-next {
	max-width: 232px;
}

body.ison-cabinet .ison-page__lead {
	white-space: normal;
}

/* даты в заказах обрезались - колонке не хватало доли */
body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(1),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(1) {
	width: 12%;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(2),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(2) {
	width: 18%;
	white-space: nowrap;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table__name {
	width: 32%;
}

/* белую полоску давала сама панель под скруглением плашки */
body.ison-cabinet .ison-sidebar {
	background: #01141a;
}

/* блок «Подобрать оборудование ISON» - на макете светлая карточка */
body.ison-cabinet .ison-side-banner {
	background: #eef5ff;
	color: #153763;
}

body.ison-cabinet .ison-side-banner strong,
body.ison-cabinet .ison-side-banner span {
	color: #153763;
}

/* Доли столбцов таблицы заказов на главной: сумма ровно 100%, номер и дата
   с запретом переноса - иначе обрезка просто переезжает из столбца в столбец. */
body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(1),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(1) {
	width: 15%;
	white-space: nowrap;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(2),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(2) {
	width: 17%;
	white-space: nowrap;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table__name {
	width: 31%;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(4),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(4) {
	width: 17%;
	white-space: nowrap;
}

body.ison-cabinet .ison-dash-tables .ison-table th:nth-child(5),
body.ison-cabinet .ison-dash-tables .ison-table td:nth-child(5) {
	width: 20%;
}

/* Статус «Коммерческое предложение» длиннее любого статуса на макете и в одну строку
   не помещается. Обрезать его нельзя - статус станет нечитаемым, поэтому разрешаем
   перенос на две строки, но компактный. */
body.ison-cabinet .ison-dash-tables .ison-status,
body.ison-cabinet .ison-dash-tables .ison-badge {
	white-space: normal !important;
	line-height: 1.15;
	font-size: 10px;
	padding: 3px 7px;
	text-align: center;
}

/* Системные правки по приёмке экранов «Мои заказы» и «Мои проекты» - они общие
   для всех внутренних страниц кабинета. */

/* Заголовок раздела: на макете «Мои заказы» занимает 189 px в ширину при высоте букв 25 px
   (замер work/ink_box.py по макету 03). Наш шрифт шире макетного, поэтому размер берём
   по высоте, а ширину подтягиваем лёгким сжатием межбуквенного просвета. */
body.ison-cabinet .ison-page__title {
	font-size: 35px;
	line-height: 1.15;
	letter-spacing: -0.6px;
}

/* иконки бокового меню: на макете контурные, домик 25×21, буфер 20×23 */
body.ison-cabinet .ison-menu__icon .ison-svg {
	width: 28px;
	height: 28px;
}

body.ison-cabinet .ison-menu__icon {
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
}

/* На макете рисунок пункта стоит на 27 px, подпись на 70 px, и «Коммерческие предложения»
   умещается в ОДНУ строку шириной 174 px (замер макета 07: подпись x 70..243 при панели 265).
   ⛔ При 13 px и правом отступе 10 нашей подписи нужно 180 px, а места было 162 - строка
   уходила на вторую, подсветка вырастала с 44 до 64 px и весь список ехал вниз.
   Размер считан от макета с поправкой на ширину панели: у нас она 254 px (как на макетах
   02 и 03), а на макете 07 нарисована 265 - то есть на 4,2% шире, и подпись там 174 px.
   Наши 12 px дают 166 px при доступных 169 - строка одна, как на макете. */
body.ison-cabinet .ison-menu__item {
	/* шаг строк меню на макете 48-49, высота подсветки 44 */
	padding: 8px 4px 8px 14px;
	gap: 13px;
	font-size: 12px;
	min-height: 44px;
	box-sizing: border-box;
}

/* карточки-счётчики: круг 63 (ширину задаём и в flex - иначе круг сплющивается в овал) */
body.ison-cabinet .ison-stat__icon,
body.ison-cabinet .ison-counter__icon {
	width: 63px;
	height: 63px;
	flex: 0 0 63px;
}

body.ison-cabinet .ison-stat__icon .ison-svg,
body.ison-cabinet .ison-counter__icon .ison-svg {
	width: 28px;
	height: 28px;
}

body.ison-cabinet .ison-stat__value,
body.ison-cabinet .ison-counter__value {
	font-size: 27px;
	line-height: 1.1;
}

/* ряд фильтров: одинаковая высота у всех элементов */
body.ison-cabinet .ison-filters input[type="text"],
body.ison-cabinet .ison-filters input[type="search"],
body.ison-cabinet .ison-filters input[type="date"],
body.ison-cabinet .ison-filters select,
body.ison-cabinet .ison-filters .ison-btn {
	height: 37px;
	min-height: 37px;
	box-sizing: border-box;
	font-size: 12px;
}

/* ссылки в таблицах на макете тёмно-синие, а не оранжевые */
body.ison-cabinet .ison-table a,
body.ison-cabinet .ison-table__num a,
body.ison-cabinet .ison-table__name a {
	color: #0c1560;
}

/* Миниатюра товара: на макете 03 она горизонтальная, 73×34.
   Одной `width` мало - ячейка это гибкая строка, и картинку держала прежняя `flex-basis`. */
body.ison-cabinet .ison-table__goods img,
body.ison-cabinet .ison-table img.ison-thumb {
	width: 75px;
	height: 37px;
	flex: 0 0 75px;
	object-fit: cover;
}

/* карточка-счётчик на макете 239×96 и поля внутри крупнее */
body.ison-cabinet .ison-stat {
	min-height: 96px;
	padding: 16px 18px;
	gap: 16px;
}

/* заголовки столбцов: на макете «№ заказа» тёмно-синий жирный, остальные синеватые */
body.ison-cabinet .ison-orders .ison-table th,
body.ison-cabinet .ison-projects .ison-table th {
	color: #5a6486;
	padding-top: 10px;
	padding-bottom: 10px;
}

body.ison-cabinet .ison-orders .ison-table th:first-child {
	color: #1b2559;
	font-weight: 600;
}

/* вкладки отбора на макете 44 в высоту, кнопка «Создать проект» 228×58 */
body.ison-cabinet .ison-chip {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
}

body.ison-cabinet .ison-projects__head .ison-btn--primary {
	min-width: 228px;
	height: 58px;
	justify-content: center;
}

/* подпись и число в карточке-счётчике: на макете 03 подпись тёмно-синяя, цифра выше нашей */
body.ison-cabinet .ison-stat__label {
	color: #32366f;
	font-size: 14px;
}

body.ison-cabinet .ison-stat__value {
	font-size: 30px;
	color: #1b2559;
}

/* Нижняя строка таблицы на макете: слева «Показано N из M», справа листалка и «Показывать по».
   Прижимать вправо ВСЮ строку нельзя - вместе с листалкой туда уезжает и счётчик. */
body.ison-cabinet .ison-pager,
body.ison-cabinet .ison-pagination {
	justify-content: flex-start;
}

body.ison-cabinet .ison-pager__info {
	margin-right: auto;
}

body.ison-cabinet .ison-pager__pages {
	margin-left: auto;
	gap: 8px;
}

/* Промежуток до «Показывать по» нужен только там, где этот блок есть.
   На «Моих проектах» его нет, и листалка висела в 42 px от края карточки. */
body.ison-cabinet .ison-pager__pages:not(:last-child) {
	margin-right: 25px;
}

body.ison-cabinet .ison-pager__page,
body.ison-cabinet .ison-pager__arrow {
	min-width: 38px;
	height: 38px;
	border-radius: 10px;
}

/* Стрелки листалки: цвета сняты пипеткой с макетов - активная почти чёрная (макет 03),
   неактивная приглушённо-синяя (макет 04). Прежний серый с прозрачностью 0,4 давал
   контраст 1,4:1 - в квадратиках просто не было видно стрелок. */
body.ison-cabinet .ison-pager__arrow {
	border-color: #e3e7ee;
	color: #14204e;
}

body.ison-cabinet .ison-pager__arrow.is-off {
	color: #7a91c0;
	opacity: 1;
}

/* «Показывать по» на макете обведено одной рамкой вместе со списком */
body.ison-cabinet .ison-pager__per {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 38px;
	padding: 0 10px 0 14px;
	border: 1px solid #e3e7ee;
	border-radius: 10px;
	background: #fff;
	color: #566074;
}

body.ison-cabinet .ison-pager__per select {
	border: 0;
	margin-left: 0;
	padding: 0 22px 0 6px;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right center;
	color: #1b2559;
	font-weight: 600;
}

/* Строка фильтров по макетам 03-04: единая высота, своя стрелка у списка,
   лупа внутри поля поиска, у кнопки сброса иконка и белый фон. */
body.ison-cabinet .ison-filters {
	align-items: center;
	gap: 12px;
}

/* ⛔ Тема дописывает формам пустой `::after` для очистки обтекания. В гибкой строке
   он становится ещё одним элементом, и промежуток перед ним отодвигал кнопку
   «Сбросить фильтры» на 12 px от правого края карточки. */
body.ison-cabinet .ison-filters::after,
body.ison-cabinet .ison-filters::before {
	display: none;
}

body.ison-cabinet .ison-filters__dates {
	height: 37px;
	box-sizing: border-box;
	padding: 0 12px;
	gap: 8px;
}

body.ison-cabinet .ison-filters__dates input[type="date"] {
	border: 0;
	background: transparent;
	height: 33px;
	padding: 0;
	font-size: 12px;
}

/* браузерная кнопка календаря рисуется у каждого поля - на макете календарь один, слева */
body.ison-cabinet .ison-filters__dates input[type="date"]::-webkit-calendar-picker-indicator {
	opacity: 0;
	width: 0;
	margin: 0;
	padding: 0;
}

body.ison-cabinet .ison-filters__status {
	width: 233px;
	-webkit-appearance: none;
	appearance: none;
	padding-right: 34px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

/* Поле поиска: на макете 03 оно 433 px и белое. Одной `width` мало - строка фильтров
   это flex, и поле с `flex: 1 1 260px` всё равно растягивалось на весь остаток. */
body.ison-cabinet .ison-filters__search {
	position: relative;
	flex: 0 0 433px;
	width: 433px;
	max-width: 100%;
	background: transparent;
	border: 0;
	padding: 0;
}

body.ison-cabinet .ison-filters__search input {
	width: 100%;
	height: 37px;
	box-sizing: border-box;
	padding: 0 40px 0 14px;
	background: #ffffff;
	border: 1px solid #e3e7ee;
	border-radius: 10px;
}

body.ison-cabinet .ison-filters__search button {
	position: absolute;
	right: 2px;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: none;
	color: #6b7280;
	cursor: pointer;
	padding: 0;
	/* кнопка вынесена из потока, поэтому большая площадка не двигает вёрстку,
	   зато на телефоне по лупе можно попасть пальцем */
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

body.ison-cabinet .ison-filters__reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 181px;
	/* на макете кнопка прижата к правому краю карточки: после того как поиску
	   задали твёрдую ширину, ряд фильтров стал кончаться на 80 px раньше таблицы */
	margin-left: auto;
	background: #ffffff;
	border: 1px solid #d8dee7;
	color: #1b2559;
	opacity: 1;
}

/* шеврон справа в поле дат - как на макете 03 */
.ison-filters__chevron {
	display: inline-flex;
	align-items: center;
	color: #7c8598;
	margin-left: auto;
	padding-left: 6px;
}

/* плашки статусов в таблицах разделов на макете крупнее, чем на главной */
body.ison-cabinet .ison-panel .ison-table .ison-status,
body.ison-cabinet .ison-panel .ison-table .ison-badge {
	font-size: 12px;
	padding: 6px 12px;
}

/* ------------------------------------------------------------------
   Экран «Мои заказы» (макет 03). Все числа - замер по самому макету:
   столбцы начинаются на 296, 397, 532, 894, 1046, 1210 при карточке
   шириной 1238 (work/ink_box.py и замер полосы шапки таблицы).
   ------------------------------------------------------------------ */

/* Таблица занимает карточку целиком: на макете голубая полоса шапки идёт от края
   до края, а у нас её поджимал отступ панели 16 px - из-за этого все столбцы
   стояли на 6-8 px правее макетных. Отступ возвращаем крайним ячейкам. */
body.ison-cabinet .ison-orders .ison-panel,
body.ison-cabinet .ison-projects .ison-panel {
	overflow: hidden;
}

body.ison-cabinet .ison-orders .ison-panel > .ison-table-wrap,
body.ison-cabinet .ison-projects .ison-panel > .ison-table-wrap {
	margin: -16px -16px 0;
}

body.ison-cabinet .ison-orders .ison-table th:first-child,
body.ison-cabinet .ison-orders .ison-table td:first-child,
body.ison-cabinet .ison-projects .ison-table th:first-child,
body.ison-cabinet .ison-projects .ison-table td:first-child {
	padding-left: 15px;
}

body.ison-cabinet .ison-orders .ison-table th:last-child,
body.ison-cabinet .ison-orders .ison-table td:last-child,
body.ison-cabinet .ison-projects .ison-table th:last-child,
body.ison-cabinet .ison-projects .ison-table td:last-child {
	padding-right: 15px;
}

body.ison-cabinet .ison-table--orders th:nth-child(1),
body.ison-cabinet .ison-table--orders td:nth-child(1) { width: 8.74%; }
body.ison-cabinet .ison-table--orders th:nth-child(2),
body.ison-cabinet .ison-table--orders td:nth-child(2) { width: 10.92%; }
body.ison-cabinet .ison-table--orders th:nth-child(3),
body.ison-cabinet .ison-table--orders td:nth-child(3) { width: 29.29%; }
body.ison-cabinet .ison-table--orders th:nth-child(4),
body.ison-cabinet .ison-table--orders td:nth-child(4) { width: 12.30%; }
body.ison-cabinet .ison-table--orders th:nth-child(5),
body.ison-cabinet .ison-table--orders td:nth-child(5) { width: 13.27%; }
body.ison-cabinet .ison-table--orders th:nth-child(6),
body.ison-cabinet .ison-table--orders td:nth-child(6) { width: 25.48%; }

/* строка на макете 51 px: название товара идёт одной строкой, лишнее срезается многоточием */
body.ison-cabinet .ison-table--orders td {
	padding-top: 7px;
	padding-bottom: 7px;
}

body.ison-cabinet .ison-table--orders .ison-table__goods-inner > span a {
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* плашка статуса на макете 121×33 */
body.ison-cabinet .ison-table--orders .ison-status-tag,
body.ison-cabinet .ison-table--projects .ison-status-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 121px;
	min-height: 33px;
	box-sizing: border-box;
	padding: 5px 10px;
	border-radius: 8px;
	font-size: 12px;
	line-height: 1.15;
	text-align: center;
}

/* ------------------------------------------------------------------
   Экран «Мои проекты» (макет 04). Вкладки и поиск одной строкой,
   столбцы по замеру шапки: 296, 494, 674, 768, 880, 999, 1147, 1236,
   1385 и столбец действий в конце.
   ------------------------------------------------------------------ */

body.ison-cabinet .ison-chips-row {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
}

body.ison-cabinet .ison-chips-row .ison-chips {
	flex: 1 1 auto;
	margin-bottom: 0;
}

body.ison-cabinet .ison-filters--inline {
	flex: 0 0 279px;
	margin-bottom: 0;
}

body.ison-cabinet .ison-filters--inline .ison-filters__search {
	flex: 0 0 279px;
	width: 279px;
}

body.ison-cabinet .ison-filters--inline .ison-filters__search input {
	height: 46px;
}

body.ison-cabinet .ison-table--projects th:nth-child(1),
body.ison-cabinet .ison-table--projects td:nth-child(1) { width: 16.2%; }
body.ison-cabinet .ison-table--projects th:nth-child(2),
body.ison-cabinet .ison-table--projects td:nth-child(2) { width: 14.9%; }
body.ison-cabinet .ison-table--projects th:nth-child(3),
body.ison-cabinet .ison-table--projects td:nth-child(3) { width: 7.8%; }
body.ison-cabinet .ison-table--projects th:nth-child(4),
body.ison-cabinet .ison-table--projects td:nth-child(4) { width: 9.3%; }
body.ison-cabinet .ison-table--projects th:nth-child(5),
body.ison-cabinet .ison-table--projects td:nth-child(5) { width: 9.9%; }
body.ison-cabinet .ison-table--projects th:nth-child(6),
body.ison-cabinet .ison-table--projects td:nth-child(6) { width: 12.3%; }
body.ison-cabinet .ison-table--projects th:nth-child(7),
body.ison-cabinet .ison-table--projects td:nth-child(7) { width: 7.4%; }
body.ison-cabinet .ison-table--projects th:nth-child(8),
body.ison-cabinet .ison-table--projects td:nth-child(8) { width: 12.4%; }
body.ison-cabinet .ison-table--projects th:nth-child(9),
body.ison-cabinet .ison-table--projects td:nth-child(9) { width: 5.8%; }
body.ison-cabinet .ison-table--projects th:nth-child(10),
body.ison-cabinet .ison-table--projects td:nth-child(10) { width: 3.9%; }

/* Плашка «Коммерческое предложение» в столбце 12,3% в одну строку не влезала
   и наезжала на соседний столбец со скидкой - разрешаем перенос внутри плашки. */
/* На макете текст плашки прижат влево, «На рассмотрении» стоит одной строкой,
   а на две разбивается только «Коммерческое предложение». */
body.ison-cabinet .ison-table--projects .ison-status-tag {
	white-space: normal;
	max-width: 100%;
	min-width: 0;
	width: 100%;
	min-height: 41px;
	justify-content: flex-start;
	text-align: left;
	font-size: 11px;
	padding: 5px 9px;
}

body.ison-cabinet .ison-table--projects .ison-status-tag .ison-svg {
	flex: 0 0 auto;
}

/* Текст внутри плашки - отдельный элемент гибкой строки, а такой элемент по умолчанию
   не ужимается уже своего содержимого: «Коммерческое предложение» вылезало из плашки
   и наезжало на соседний столбец со скидкой. */
body.ison-cabinet .ison-table--projects .ison-status-tag > span {
	min-width: 0;
	white-space: normal;
}

/* На макете цветной у плашки только значок, а буквы тёмные. У нас текст был выкрашен
   в цвет значка, и статус читался блёкло: контраст 2,8:1 при норме 4,5:1 (WCAG 2.1 AA). */
body.ison-cabinet .ison-table--projects .ison-status-tag > span {
	color: #16224e;
}

/* цвета плашек взяты с макета 04: рассмотрение синее, КП и одобрение зелёные, отмена серая */
body.ison-cabinet .ison-table--projects .ison-status-tag--pending {
	background: #e8f1fd;
	color: #1c7ed6;
}

body.ison-cabinet .ison-table--projects .ison-status-tag--offer,
body.ison-cabinet .ison-table--projects .ison-status-tag--design {
	background: #e7f7ec;
	color: #1f9d55;
}

body.ison-cabinet .ison-table--projects .ison-status-tag--approved,
body.ison-cabinet .ison-table--projects .ison-status-tag--work,
body.ison-cabinet .ison-table--projects .ison-status-tag--done {
	background: #e7f7ec;
	color: #1f9d55;
}

body.ison-cabinet .ison-table--projects .ison-status-tag--cancelled,
body.ison-cabinet .ison-table--projects .ison-status-tag--rejected {
	background: #eef1f6;
	color: #6b7280;
}

/* столбец «Объект» стал блоком с рисунком - обрезка многоточием его ломала */
body.ison-cabinet .ison-table--projects td:nth-child(2) {
	overflow: visible;
	text-overflow: clip;
}

/* название проекта на макете набрано жирным, под ним номер и дата серым */
body.ison-cabinet .ison-table--projects .ison-table__name a {
	font-weight: 600;
}

body.ison-cabinet .ison-table--projects .ison-table__name small {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	/* цвет снят пипеткой с макета 04 (там номер и дата тёмно-синие, а не серые) */
	color: #2c3878;
	white-space: nowrap;
}

/* Мелкие подписи в таблицах и под заголовком раздела на макетах тёмно-синие.
   Серый #8a93a3 давал контраст 3:1 при норме 4,5:1 - текст читался блёкло. */
body.ison-cabinet .ison-table__date span {
	color: #545a85;
}

body.ison-cabinet .ison-table--orders .ison-table__goods-inner small {
	color: #4a5686;
}

body.ison-cabinet .ison-page__lead {
	color: #2a3566;
}

/* столбец «Объект»: рисунок в светлом квадрате, название жирным, уточнение серым */
.ison-object {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

/* на макете 04 подложка под рисунком объекта круглая 37×36, а не квадрат */
.ison-object__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 37px;
	height: 37px;
	flex: 0 0 37px;
	border-radius: 50%;
	background: #eef2f8;
	color: #1b2559;
}

.ison-object__text {
	display: block;
	min-width: 0;
}

.ison-object__text strong {
	display: block;
	font-size: 13px;
	color: #1b2559;
}

.ison-object__text small {
	display: block;
	font-size: 11px;
	color: #8a93a6;
}

/* столбец «Защита проекта»: на макете квадратная иконка с галочкой или крестиком */
.ison-protect {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	color: #1b2559;
}

/* на макете 04 цветной только значок, само слово тёмно-синее (снято пипеткой: 18,21,94) */
.ison-protect--yes .ison-svg { color: #1f9d55; }
.ison-protect--no .ison-svg { color: #d0342c; }

/* меню действий в конце строки */
.ison-table__actions {
	text-align: right;
}

.ison-rowmenu {
	position: relative;
	display: inline-block;
}

.ison-rowmenu__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* на макете кнопка мелкая, но пальцем по ней всё равно надо попадать:
	   на узких экранах площадку увеличиваем (см. правило ниже) */
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	/* цвет снят с макета 04 (там три точки тёмно-синие); прежний серый давал 3,1:1,
	   и единственный вход в действия по строке было плохо видно */
	color: #232e63;
	cursor: pointer;
	padding: 0;
}

.ison-rowmenu__button:hover,
.ison-rowmenu__button:focus {
	background: #eef2f8;
	color: #1b2559;
}

.ison-rowmenu__list {
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 20;
	/* список показывается перенесённым в конец страницы (см. partner.js):
	   у таблицы своя прокрутка, и внутри неё меню обрезалось */
	min-width: 220px;
	background: #fff;
	border: 1px solid #e3e7ee;
	border-radius: 10px;
	box-shadow: 0 10px 26px rgba(16, 24, 40, 0.14);
	padding: 6px;
	text-align: left;
}

.ison-rowmenu__list a {
	display: block;
	padding: 8px 10px;
	border-radius: 7px;
	font-size: 13px;
	color: #1b2559;
	text-decoration: none;
	white-space: nowrap;
}

.ison-rowmenu__list a:hover {
	background: #f4f6fa;
}

.ison-rowmenu__list.is-floating {
	position: fixed;
	right: auto;
	top: 0;
	left: 0;
	z-index: 2147483000;
}

/* блок «Есть вопросы по проекту?» по макету 04: значок, описание, фото, разделитель, кнопки */
body.ison-cabinet .ison-manager-block--wide {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 18px 24px;
	/* на макете у блока лёгкая голубая заливка, а не белая */
	background: #f4f8fd;
	border-color: #e2ebf6;
}

/* значки контактов на макете цветные: трубка зелёная, конверт оранжевый */
body.ison-cabinet .ison-manager-block--wide .ison-manager__row {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #1b2559;
	text-decoration: none;
	font-size: 13px;
	line-height: 1.5;
}

body.ison-cabinet .ison-manager-block--wide .ison-manager__row .ison-svg {
	color: #e0503a;
	flex: 0 0 auto;
}

body.ison-cabinet .ison-manager-block--wide .ison-manager__row:last-of-type .ison-svg {
	color: #e8821e;
}

.ison-manager-block__intro {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	flex: 1 1 340px;
	min-width: 0;
}

.ison-manager-block__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	border-radius: 50%;
	background: #1c7ed6;
	color: #fff;
}

.ison-manager-block__note {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: #6b7280;
	max-width: 330px;
}

.ison-manager-block__person {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: 0 1 auto;
	padding-left: 28px;
	border-left: 1px solid #e6e9f0;
}

body.ison-cabinet .ison-manager-block--wide .ison-manager__photo {
	width: 105px;
	height: 105px;
	flex: 0 0 105px;
	border-radius: 50%;
	overflow: hidden;
	background: #e7ebf2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #98a2b3;
}

body.ison-cabinet .ison-manager-block--wide .ison-manager__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.ison-cabinet .ison-manager-block--wide .ison-manager__buttons {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 0 0 269px;
	margin-left: auto;
}

body.ison-cabinet .ison-manager-block--wide .ison-msg {
	width: 269px;
	height: 48px;
	box-sizing: border-box;
	justify-content: flex-start;
	gap: 10px;
	/* 13 px на 269 px не помещались, и подпись WhatsApp уезжала на вторую строку */
	font-size: 12px;
	white-space: nowrap;
}

@media (max-width: 1199px) {
	body.ison-cabinet .ison-manager-block--wide {
		flex-wrap: wrap;
	}

	.ison-manager-block__person {
		border-left: 0;
		padding-left: 0;
	}

	body.ison-cabinet .ison-manager-block--wide .ison-manager__buttons,
	body.ison-cabinet .ison-manager-block--wide .ison-msg {
		flex-basis: auto;
		width: 100%;
	}
}

@media (max-width: 900px) {
	body.ison-cabinet .ison-chips-row {
		flex-wrap: wrap;
	}

	body.ison-cabinet .ison-filters--inline,
	body.ison-cabinet .ison-filters--inline .ison-filters__search {
		flex-basis: 100%;
		width: 100%;
	}

	/* твёрдая ширина поля поиска на узком экране выталкивала строку за край */
	body.ison-cabinet .ison-filters__search {
		flex: 1 1 100%;
		width: 100%;
	}

	body.ison-cabinet .ison-filters__reset {
		margin-left: 0;
	}

	/* отступы карточки на узком экране меньше, поэтому и вынос таблицы меньше */
	body.ison-cabinet .ison-orders .ison-panel > .ison-table-wrap,
	body.ison-cabinet .ison-projects .ison-panel > .ison-table-wrap {
		margin: 0;
	}
}

@media (max-width: 420px) {
	.ison-rowmenu__button {
		width: 40px;
		height: 40px;
	}
}

/* Подпись только для чтения с экрана. ⛔ Внутри таблицы с прокруткой такой элемент
   НЕ ставить: он выпадает из прокручиваемой обёртки и тянет за собой горизонтальную
   прокрутку всей страницы (поймано на «Моих проектах» при ширине 1024, 768 и 375).
   Для столбца действий подпись даём атрибутом aria-label у самой ячейки. */
.ison-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* На узких экранах твёрдая ширина плашки статуса (121 px по макету) не помещалась
   в свою долю и наезжала на столбец способа оплаты. Там плашку отпускаем. */
@media (max-width: 1280px) {
	body.ison-cabinet .ison-table--orders .ison-status-tag {
		min-width: 0;
	}
}

/* на телефоне по кнопкам фильтра надо попадать пальцем */
@media (max-width: 420px) {
	body.ison-cabinet .ison-filters input[type="text"],
	body.ison-cabinet .ison-filters input[type="search"],
	body.ison-cabinet .ison-filters input[type="date"],
	body.ison-cabinet .ison-filters select,
	body.ison-cabinet .ison-filters .ison-btn,
	body.ison-cabinet .ison-filters__dates,
	body.ison-cabinet .ison-filters__search input {
		height: 44px;
		min-height: 44px;
	}

	body.ison-cabinet .ison-filters__dates input[type="date"] {
		height: 40px;
	}
}

/* Низ боковой панели: на макетах 03 и 05 слоган начинается на 37-40, блок поддержки
   на 27, а у нас оба стояли на 21. Замер по обоим макетам, они тут сходятся. */
body.ison-cabinet .ison-sidebar__promo {
	margin-left: 38px;
	margin-right: 16px;
}

body.ison-cabinet .ison-sidebar__support {
	padding-left: 27px;
	padding-right: 16px;
}

/* ---------- «Моя скидка и статус», круг 2 (макет 05) ----------
   ⛔ Правила держим В КОНЦЕ файла и с весом не ниже общих правил кабинета:
   `body.ison-cabinet .ison-page__title` перебивал `.ison-program__hero .ison-page__title`,
   и заявленный размер заголовка на странице просто не появлялся. */

body.ison-cabinet .ison-program .ison-program__hero .ison-page__title {
	font-size: 38px;
	line-height: 1.12;
	/* цвет снят с макета 05: заголовок там чистый синий, а не серо-синий */
	color: #000080;
	font-weight: 700;
}

body.ison-cabinet .ison-program .ison-program__lead {
	color: #00007c;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.25;
	margin-bottom: 6px;
}

/* На макете весь пояснительный текст этой страницы синий, а не серый.
   ⛔ Цвет снят пипеткой с макета (ядро букв пункта списка - #000093), а не подобран:
   прежний #2a3566 был моим собственным и с макетом не совпадал. */
body.ison-cabinet .ison-program {
	--ison-muted: #000093;
}

/* строки сумм на макете ярче пунктов списка */
body.ison-cabinet .ison-program .ison-level__row span,
body.ison-cabinet .ison-program .ison-level__row b {
	color: #0e58ea;
}

/* Подсказка под заголовком шапки. На макете она в ОДНУ строку шириной 667 px; наш шрифт
   шире, и при 13 px строке нужно 708 при колонке 687 - слово «сотрудничества» падало вниз
   и тянуло за собой карточки уровней на 28 px. */
body.ison-cabinet .ison-program .ison-program__hint {
	color: #00009f;
	font-size: 12px;
}

/* ⛔ Запрет переноса держим ТОЛЬКО на широких экранах: на телефоне строка в 687 px
   растягивала всю страницу до 679 при экране 375 (поймано адаптивом). */
@media (min-width: 1280px) {
	body.ison-cabinet .ison-program .ison-program__hint {
		white-space: nowrap;
	}
}

/* Надпись справа в шапке: на макете 167 px в ширину при высоте чернил 20 и цвете #0c1af9,
   у нас была 123 px, чернила 12 и цвет #123b6d. */
body.ison-cabinet .ison-program__hero-note {
	/* На макете чернила этой надписи 167 px в ширину. При 19 px выходило 182-190 и колонка
	   текста слева теряла ширину - подсказка под заголовком уезжала на вторую строку,
	   а вместе с ней вниз ехали карточки уровней и обе нижние плашки. */
	font-size: 17px;
	line-height: 1.3;
	color: #0c1af9;
	max-width: 176px;
	flex: 0 0 176px;
}

/* шкала набранного оборота под строкой «Ваши покупки» (на макете светлая полоса 16 px) */
.ison-level__bar {
	display: block;
	height: 16px;
	margin: 8px 0 6px;
	border-radius: 8px;
	background: #edf6fd;
	overflow: hidden;
}

.ison-level__bar span {
	display: block;
	height: 100%;
	border-radius: 8px;
	background: var(--ison-accent, #f2551b);
	opacity: 0.55;
}

/* строки сумм на макете без разделительных линий - их роль играет шкала */
body.ison-cabinet .ison-program .ison-level__row {
	border-bottom: 0;
	padding: 3px 0;
}

/* Карточка уровня на макете 504 в высоту, у нас была 550 - из-за этого нижняя плашка
   «В случае отсутствия продаж…» не помещалась в первый экран. Поджимаем список условий. */
body.ison-cabinet .ison-program .ison-level__features {
	margin-top: 8px;
}

body.ison-cabinet .ison-program .ison-level__features li {
	margin-bottom: 4px;
	line-height: 1.25;
}

body.ison-cabinet .ison-program .ison-project-price {
	padding-top: 10px;
	padding-bottom: 10px;
}

/* зазор между карточками и промо-блоком на макете 12, у нас был 26 */
body.ison-cabinet .ison-program .ison-levels {
	margin-bottom: 12px;
}

/* нижняя плашка на макете 38 в высоту при тех же двух строках - у нас была 78 */
body.ison-cabinet .ison-program .ison-note {
	padding: 9px 16px;
	align-items: center;
}

/* Текст плашки на макете синий (снято пипеткой: 0,0,243 и 29,53,252).
   ⛔ Значок «i» - тоже span, и без исключения он красился в синий поверх синего кружка:
   буква переставала читаться (контраст 1,8:1). */
body.ison-cabinet .ison-program .ison-note strong,
body.ison-cabinet .ison-program .ison-note div span {
	line-height: 1.25;
	color: #1b2ad6;
}

/* круг «i» на макете 40 px и темнее нашего (#0d41a1) */
body.ison-cabinet .ison-program .ison-note__icon {
	color: #fff;
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	background: #0d41a1;
	font-size: 22px;
}

/* Фотография камер в шапке на макете 314×130, у нас была 300×105. На макете она выходит
   за внутренние поля шапки и её высоту не увеличивает - иначе шапка вырастает со 143 до 173
   и нижняя плашка снова уходит за край экрана. Поэтому гасим её вклад отрицательными полями. */
/* Фотография вырезана из САМОГО макета 05 (317×132) - у прежней была своя пропорция,
   и чтобы догнать высоту, приходилось раздувать ширину до 372: колонка текста теряла
   50 px и подсказка под заголовком уезжала на вторую строку. */
body.ison-cabinet .ison-program__hero-img {
	width: 317px;
	max-width: 30%;
	margin-top: -25px;
	margin-bottom: -12px;
}

/* Цвета значков в списке условий сняты пипеткой с макета 05: галочки тёмно-синие
   (0,0,~150), крестики красные (253,1,0), и только у активной карточки PARTNER
   галочки красные. Задаём стилями, а не настройкой уровня: у уровней в базе уже
   сохранены прежние значения, и правка настроек по умолчанию на страницу не попадает. */
body.ison-cabinet .ison-program .ison-level .is-yes .ison-level__mark {
	color: #00009f;
}

body.ison-cabinet .ison-program .ison-level--partner .is-yes .ison-level__mark {
	color: #fd0d05;
}

body.ison-cabinet .ison-program .ison-level .is-no .ison-level__mark {
	color: #fd0100;
}

/* Цвета названий уровней и цифр скидки сняты пипеткой с макета 05 (ядро букв).
   Задаём стилями по классу уровня: в базе сохранены прежние значения настройки,
   и правка значений по умолчанию в коде на страницу не попадает. */
body.ison-cabinet .ison-program .ison-level--base .ison-level__title,
body.ison-cabinet .ison-program .ison-level--base .ison-level__discount-label { color: #c40000; }
body.ison-cabinet .ison-program .ison-level--base .ison-level__discount { color: #8c0000; }

body.ison-cabinet .ison-program .ison-level--partner .ison-level__title,
body.ison-cabinet .ison-program .ison-level--partner .ison-level__discount-label { color: #fa0000; }
body.ison-cabinet .ison-program .ison-level--partner .ison-level__discount { color: #f90000; }

body.ison-cabinet .ison-program .ison-level--pro .ison-level__title,
body.ison-cabinet .ison-program .ison-level--pro .ison-level__discount-label { color: #00009a; }
body.ison-cabinet .ison-program .ison-level--pro .ison-level__discount { color: #000063; }

body.ison-cabinet .ison-program .ison-level--premium .ison-level__title,
body.ison-cabinet .ison-program .ison-level--premium .ison-level__discount-label { color: #d72300; }
body.ison-cabinet .ison-program .ison-level--premium .ison-level__discount { color: #c73202; }

body.ison-cabinet .ison-program .ison-level--business .ison-level__title,
body.ison-cabinet .ison-program .ison-level--business .ison-level__discount-label { color: #0011fc; }
body.ison-cabinet .ison-program .ison-level--business .ison-level__discount { color: #002dfb; }

body.ison-cabinet .ison-program .ison-level--expert .ison-level__title,
body.ison-cabinet .ison-program .ison-level--expert .ison-level__discount-label { color: #005170; }
body.ison-cabinet .ison-program .ison-level--expert .ison-level__discount { color: #026177; }

body.ison-cabinet .ison-program .ison-level--elite .ison-level__title,
body.ison-cabinet .ison-program .ison-level--elite .ison-level__discount-label { color: #101010; }
body.ison-cabinet .ison-program .ison-level--elite .ison-level__discount { color: #150000; }

/* Поля на макете 06 белые (253,252,253), у нас были прозрачными поверх светло-серой
   панели - из-за этого подсказка в них давала 4,41:1 вместо 4,76:1 на белом. */
/* ⛔ Тема красит содержимое ЛЮБЫХ полей в серый #818181: то, что печатает партнёр,
   читается с контрастом 3,9 при норме 4,5. Правило было закрыто одной формой проекта,
   и на реквизитах и письме руководству дефект оставался живым (13 и 6 нарушений).
   Поэтому правим все поля кабинета разом. */
body.ison-cabinet .ison-page input[type="text"],
body.ison-cabinet .ison-page input[type="email"],
body.ison-cabinet .ison-page input[type="tel"],
body.ison-cabinet .ison-page input[type="url"],
body.ison-cabinet .ison-page input[type="number"],
body.ison-cabinet .ison-page input[type="search"],
body.ison-cabinet .ison-page input[type="date"],
body.ison-cabinet .ison-page textarea,
body.ison-cabinet .ison-page select {
	color: #1b2559;
}

body.ison-cabinet .ison-project-form .ison-field input,
body.ison-cabinet .ison-project-form .ison-field textarea,
body.ison-cabinet .ison-project-form .ison-field select,
body.ison-cabinet .ison-project-form .ison-items input {
	background: #ffffff;
}

/* подсказки в полях: цвет снят пипеткой с макета 06 - ядро букв #69709e */
body.ison-cabinet .ison-form ::placeholder,
body.ison-cabinet .ison-page ::placeholder {
	color: #69709e;
}

/* подпись «Выберите срок» - та же роль, цвет с макета #767da7 */
body.ison-cabinet .ison-field__ph {
	color: #767da7;
}

/* Мелкие подписи на странице письма руководству: цвета сняты пипеткой с макета 14
   (#122156, #5d6d93, #62709b) - у нас они были серыми и не проходили норму контраста. */
/* ⛔ Только эта подпись: правило на все `i` внутри подписи поля перекрасило оранжевую
   звёздочку обязательного поля в форме проекта. */
body.ison-cabinet .ison-letter__files-text strong i {
	color: #122156;
}

body.ison-cabinet .ison-letter__files-text span {
	color: #5d6d93;
}

body.ison-cabinet .ison-letter__note {
	color: #62709b;
}

/* Строка «Ваши покупки» с длинной суммой упиралась в рамку карточки: подпись 76 плюс
   сумма 60 плюс промежуток 8 давали 144 при ширине строки 142. Промежуток уменьшен,
   а подписи разрешено ужаться с многоточием - иначе на больших оборотах повторится. */
body.ison-cabinet .ison-program .ison-level__row {
	font-size: 11px;
	gap: 4px;
}

body.ison-cabinet .ison-program .ison-level__row span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* росчерк под надписью справа в шапке */
.ison-program__hero-arrow {
	display: block;
	width: 106px;
	height: auto;
	margin-top: 4px;
}

/* значок промо-блока на макете оранжевый, залитый и крупнее нашего (43×54) */
.ison-project-price__icon {
	color: var(--ison-orange, #f2551b);
}

body.ison-cabinet .ison-program .ison-project-price__icon .ison-svg {
	width: 56px;
	height: 56px;
}

/* кнопка промо-блока на макете прижата к правому краю */
body.ison-cabinet .ison-project-price .ison-btn--primary {
	margin-left: auto;
}

/* карточки уровней: на макете 172 px при зазоре 6, у нас было 166 при 12 -
   из-за узких карточек пункты рвались на две строки и карточка росла в высоту */
@media (min-width: 1280px) {
	body.ison-cabinet .ison-levels {
		gap: 6px;
	}
}

/* ---------- форма «Создать проект» (макет 06) ---------- */

/* звёздочка обязательного поля на макете оранжевая */
.ison-req {
	color: var(--ison-orange, #f2551b);
	font-style: normal;
}

/* переключатели и галочки на макете оранжевые, а не синие по умолчанию */
body.ison-cabinet .ison-form input[type="radio"],
body.ison-cabinet .ison-form input[type="checkbox"],
body.ison-cabinet .ison-agree input[type="checkbox"] {
	accent-color: var(--ison-orange, #f2551b);
	width: 17px;
	height: 17px;
}

/* поле срока закупки: слева календарь, вместо пустой даты - подпись «Выберите срок» */
.ison-field--date {
	position: relative;
	display: block;
}

.ison-field--date .ison-field__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	color: #7c8598;
	pointer-events: none;
	z-index: 2;
}

.ison-field--date input[type="date"] {
	width: 100%;
	padding-left: 42px;
}

.ison-field--date input[type="date"]::-webkit-calendar-picker-indicator {
	opacity: 0;
}

.ison-field__ph {
	position: absolute;
	left: 42px;
	top: 50%;
	transform: translateY(-50%);
	color: #8a93a6;
	pointer-events: none;
	font-size: 13px;
}

/* дата выбрана - подпись убираем, родную дату показываем */
.ison-field--date input[type="date"]:valid ~ .ison-field__ph,
.ison-field--date input[type="date"]:focus ~ .ison-field__ph {
	display: none;
}

/* пока дата не выбрана, родное «дд.мм.гггг» прячем - иначе оно налезает на подпись */
.ison-field--date input[type="date"]:invalid:not(:focus)::-webkit-datetime-edit {
	opacity: 0;
}

/* Количество: подпись «шт.» стоит подсказкой внутри поля, на макете поле 167 px.
   ⛔ Вес обязан быть не ниже, чем у правила `.ison-items td.ison-items__qty input[type="number"]`
   выше по файлу - иначе правка молча не применяется. */
body.ison-cabinet .ison-items td.ison-items__qty input[type="number"],
body.ison-cabinet .ison-items td.ison-items__qty input {
	width: 167px;
	max-width: 100%;
	flex: 0 0 auto;
}

/* Подсказки в полях на макете светлее и тоньше подписей - у нас они выглядели
   как уже заполненные данные (плотность чернил почти как у жирной метки).
   ⛔ Цвет здесь НЕ задаём: он снят пипеткой с макета в блоке ниже. Раньше тут стоял
   свой #9aa3b5 и перебивал макетный - правило лежало ниже при том же весе селектора. */
body.ison-cabinet .ison-form ::placeholder,
body.ison-cabinet .ison-page ::placeholder {
	font-weight: 400;
	opacity: 1;
}

/* На макете 06 согласие и кнопка «Отправить заявку» видны на первом экране: блоки формы
   там компактнее наших на 33 и 43 px. Поджимаем внутренние отступы, а не промежутки
   между блоками - промежутки на макете как раз больше. */
body.ison-cabinet .ison-project-form .ison-items th,
body.ison-cabinet .ison-project-form .ison-items td {
	padding-top: 5px;
	padding-bottom: 5px;
}

body.ison-cabinet .ison-project-form .ison-items input {
	height: 38px;
	min-height: 38px;
	box-sizing: border-box;
}

body.ison-cabinet .ison-project-form .ison-panel .ison-page__lead {
	margin-bottom: 12px;
}

body.ison-cabinet .ison-project-form .ison-form__actions .ison-btn {
	height: 46px;
	min-height: 46px;
}

/* заголовок раздела на макете 06 начинается выше нашего на 15 px */
body.ison-cabinet .ison-project-form .ison-page__title {
	margin-bottom: 2px;
}

body.ison-cabinet .ison-project-form .ison-page__lead {
	margin-bottom: 14px;
}

body.ison-cabinet .ison-project-form #ison-items-add {
	height: 40px;
	min-height: 40px;
	padding: 0 16px;
}

body.ison-cabinet .ison-project-form .ison-panel__title {
	margin-bottom: 4px;
}

/* Укрупнение элементов по макету снова подняло форму: кнопки ушли за нижний край экрана.
   Возвращаем их в первый экран за счёт внутренних отступов - на макете блоки компактнее
   наших на 14, 25 и 30 px при тех же размерах полей. */
body.ison-cabinet .ison-project-form .ison-panel {
	padding: 10px 16px;
}

/* ⛔ форма - сетка со своим промежутком 16; своё margin-bottom у блока не заменяет его,
   а СКЛАДЫВАЕТСЯ с ним (получалось 28 и кнопки уезжали ещё ниже) */
body.ison-cabinet .ison-project-form .ison-form {
	gap: 10px;
}

body.ison-cabinet .ison-project-form #ison-project-comment {
	height: 66px;
	min-height: 66px;
}

body.ison-cabinet .ison-project-form .ison-page__lead {
	margin-bottom: 8px;
}

body.ison-cabinet .ison-project-form-page .ison-crumbs {
	margin-bottom: 2px;
}

/* крошки на этой странице стоят ближе к заголовку, чем в остальных разделах */
body.ison-cabinet .ison-project-form-page .ison-crumbs {
	margin-bottom: 4px;
}

body.ison-cabinet .ison-project-form .ison-field__counter {
	line-height: 1.1;
	/* цвета сняты с макета 06: счётчик приглушённо-синий, ссылка согласия синяя */
	color: #5b6490;
}

body.ison-cabinet .ison-agree a {
	color: #1e3295;
	text-decoration: underline;
}

/* Гамма экрана «Создать проект» по макету 06: подписи полей и заголовки блоков там
   синие, а у нас были серыми - соседние экраны кабинета оказывались в разной гамме. */
body.ison-cabinet .ison-project-form .ison-page__title {
	color: #000080;
}

body.ison-cabinet .ison-project-form .ison-field__label,
body.ison-cabinet .ison-project-form .ison-panel__title,
body.ison-cabinet .ison-project-form .ison-radio,
body.ison-cabinet .ison-project-form .ison-agree,
body.ison-cabinet .ison-project-form .ison-items th {
	color: #1b2559;
}

/* цвета сняты пипеткой с макета 06: подзаголовок #000071, строка согласия #020549 */
body.ison-cabinet .ison-project-form .ison-field__hint,
body.ison-cabinet .ison-project-form .ison-page__lead {
	color: #000071;
}

body.ison-cabinet .ison-project-form .ison-agree {
	color: #020549;
}

/* Размеры по макету 06: кружок шага 38, шапка таблицы 40 и почти белая,
   заголовок блока и подпись поля крупнее, кнопка отправки 351×50. */
body.ison-cabinet .ison-project-form .ison-step-num {
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	font-size: 17px;
}

body.ison-cabinet .ison-project-form .ison-panel__title {
	font-size: 17px;
}

body.ison-cabinet .ison-project-form .ison-field__label {
	font-size: 13px;
}

body.ison-cabinet .ison-project-form .ison-items th {
	height: 40px;
	background: #f5f7fb;
	font-size: 12px;
}

body.ison-cabinet .ison-project-form .ison-form__actions .ison-btn--primary {
	min-width: 351px;
	max-width: 100%;
	height: 50px;
	min-height: 50px;
	justify-content: center;
}

/* на телефоне 351 px не помещаются - там кнопка во всю ширину */
@media (max-width: 480px) {
	body.ison-cabinet .ison-project-form .ison-form__actions .ison-btn--primary {
		min-width: 0;
		width: 100%;
	}
}

body.ison-cabinet .ison-project-form .ison-form__actions .ison-btn--ghost {
	min-width: 132px;
	justify-content: center;
}

/* Столбцы таблицы позиций на макете: «Количество» 184, «Комментарий» 355, «№» 56.
   ⛔ Твёрдые пиксели держим только на широких экранах: ниже 1280 они не ужимались
   и заголовки столбцов налезали друг на друга - там таблице даём свою прокрутку. */
@media (min-width: 1280px) {
	body.ison-cabinet .ison-project-form .ison-items th:nth-child(1),
	body.ison-cabinet .ison-project-form .ison-items td:nth-child(1) { width: 56px; }
	body.ison-cabinet .ison-project-form .ison-items th:nth-child(3),
	body.ison-cabinet .ison-project-form .ison-items td:nth-child(3) { width: 184px; }
	body.ison-cabinet .ison-project-form .ison-items th:nth-child(4),
	body.ison-cabinet .ison-project-form .ison-items td:nth-child(4) { width: 355px; }
}

@media (max-width: 1279px) {
	body.ison-cabinet .ison-project-form .ison-items {
		min-width: 760px;
	}

	body.ison-cabinet .ison-project-form .ison-items td:nth-child(3) input {
		width: 100%;
	}
}

/* само поле на макете 168 при колонке 184 - тянуть его на всю колонку нельзя */
body.ison-cabinet .ison-project-form .ison-items td:nth-child(3) input {
	width: 167px;
	max-width: 100%;
}

/* последнее поле внутри блока не должно тянуть за собой нижний отступ:
   он складывался с отступом самого блока и добавлял форме лишние 18 px */
body.ison-cabinet .ison-project-form .ison-panel > .ison-field:last-child {
	margin-bottom: 0;
}

/* Таблица позиций на макете - сетка с внешней рамкой и разделителями столбцов */
body.ison-cabinet .ison-items {
	border: 1px solid #e3e7ee;
	border-radius: 10px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

body.ison-cabinet .ison-items th,
body.ison-cabinet .ison-items td {
	border-right: 1px solid #e3e7ee;
	border-bottom: 1px solid #e3e7ee;
}

body.ison-cabinet .ison-items th:last-child,
body.ison-cabinet .ison-items td:last-child {
	border-right: 0;
}

body.ison-cabinet .ison-items tbody tr:last-child td {
	border-bottom: 0;
}

/* кнопка удаления строки на макете - красная корзина */
.ison-items__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #d0342c;
	cursor: pointer;
	padding: 0;
}

.ison-items__remove:hover,
.ison-items__remove:focus {
	background: #fdece6;
}

/* поле со скрепкой (адрес сайта) */
.ison-field__wrap {
	position: relative;
	display: block;
}

.ison-field__clip {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	color: #c3ccd6;
	pointer-events: none;
}

.ison-field--clip input {
	padding-right: 46px;
}

/* ---------- «Коммерческие предложения» (макет 07) ----------
   Числа - замер по макету: синий круг плашки 57, кнопка скачивания 323×48,
   круг «i» в блоке менеджера 58, кнопки мессенджеров 268×45. */

body.ison-cabinet .ison-offers .ison-info-block {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 18px 22px;
}

body.ison-cabinet .ison-offers .ison-info-block__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 57px;
	height: 57px;
	flex: 0 0 57px;
	border-radius: 50%;
	background: #2b4fd8;
	color: #fff;
}

body.ison-cabinet .ison-offers .ison-info-block strong {
	display: block;
	margin-bottom: 4px;
	color: #1b2559;
}

body.ison-cabinet .ison-offers .ison-info-block span {
	color: #2a3566;
}

/* кружок-подсказка рядом с плашкой типа предложения */
.ison-offer-type__help {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin-left: 8px;
	border-radius: 50%;
	background: #e8f1fd;
	color: #2b4fd8;
	font-size: 12px;
	font-weight: 700;
	cursor: help;
	vertical-align: middle;
}

body.ison-cabinet .ison-offers .ison-offer-type {
	vertical-align: middle;
}

/* Цвета плашки сняты пипеткой с макета 07: фон #ddf8e6 и #ffeee0, надписи тёмные -
   зелёная #12722a (5,38:1) и коричневая #742d11 (8,73:1).
   ⛔ Подпись в плашке была приглушена (opacity: 0.75) и не проходила норму контраста,
   а НА МАКЕТЕ она такая же тёмная, как верхняя строка - то есть расходились мы,
   а не макет. Прозрачность убрана, цвет взят макетный. */
body.ison-cabinet .ison-offer-type--discount {
	background: #ddf8e6;
	color: #12722a;
}

body.ison-cabinet .ison-offer-type--retail {
	background: #ffeee0;
	color: #742d11;
}

body.ison-cabinet .ison-offer-type__text i {
	opacity: 1;
	color: inherit;
}

/* кнопка скачивания на макете 323×48 со стрелкой загрузки */
body.ison-cabinet .ison-offer-download {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	/* ровно как на макете: без верхней границы кнопка растягивалась на весь столбец (371) */
	width: 323px;
	max-width: 100%;
	height: 48px;
	box-sizing: border-box;
	white-space: nowrap;
}

@media (max-width: 1199px) {
	/* ⛔ На планшете подпись кнопки в одну строку (≈250 px) шире своего столбца, и она
	   наезжала на плашку типа предложения. Разрешаем перенос, но не по слогам:
	   тема Electro рвёт слова по символам. */
	body.ison-cabinet .ison-offer-download {
		min-width: 0;
		width: 100%;
		height: auto;
		min-height: 48px;
		padding: 8px 12px;
		white-space: normal;
		word-break: keep-all;
		text-align: center;
		line-height: 1.25;
	}
}

/* доли столбцов по макету: организация, дата, тип, действие */
body.ison-cabinet .ison-table--offers th:nth-child(1),
body.ison-cabinet .ison-table--offers td:nth-child(1) { width: 32%; }
body.ison-cabinet .ison-table--offers th:nth-child(2),
body.ison-cabinet .ison-table--offers td:nth-child(2) { width: 14%; }
body.ison-cabinet .ison-table--offers th:nth-child(3),
body.ison-cabinet .ison-table--offers td:nth-child(3) { width: 24%; }
body.ison-cabinet .ison-table--offers th:nth-child(4),
body.ison-cabinet .ison-table--offers td:nth-child(4) { width: 30%; }

/* название организации на макете жирное тёмное, номер под ним синий */
body.ison-cabinet .ison-table--offers .ison-table__name {
	font-weight: 600;
	color: #1b2559;
}

body.ison-cabinet .ison-table--offers .ison-table__name small {
	display: block;
	margin-top: 2px;
	font-weight: 400;
	font-size: 12px;
	color: #2c3878;
}

/* полоса загрузки темы electro: на макетах кабинета её нет */
.ison-body .pace,
.ison-body .pace-progress {
	display: none !important;
}

/* Доли столбцов таблицы заказов на главной. Держим их В КОНЦЕ файла: доли этих
   таблиц правились в трёх местах по ходу работы, и правило, поставленное раньше,
   молча перебивалось поздним. Сумма ровно 100%, иначе браузер при table-layout: fixed
   раздаёт остаток по-своему и дате не хватает 8 px - именно так «02.09.2026»
   обрезалось на ширинах 1440 и 1500. Резаться разрешено только наименованию:
   номер, дата, сумма и статус обязаны читаться целиком. */
/* ⛔ В селекторе обязателен ещё один уровень (.ison-dash-tables): прежние доли
   заданы через него, и правило без него проигрывает по весу - я так потерял круг. */
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders th:nth-child(1),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td:nth-child(1) { width: 16%; }
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders th:nth-child(2),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td:nth-child(2) { width: 22%; }
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders th:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td:nth-child(3),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td.ison-table__name { width: 22%; }
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders th:nth-child(4),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td:nth-child(4) { width: 19%; }
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders th:nth-child(5),
body.ison-cabinet .ison-dash-tables .ison-table--dash-orders td:nth-child(5) { width: 21%; }



/* ─────────── Заглушка раздела «Коммерческие предложения» (макет 08, ТЗ п.58) ───────────

   Макет 08 - слайд 1536 px: слева текст, справа пример корзины со стрелками.
   В кабинете под содержимое остаётся 1238 px (боковая панель 254 + поля), поэтому
   ВСЯ композиция уменьшена в одной пропорции 1238/1536 = 0,806: и надписи, и круги,
   и плашки, и картинка. Пропорции между элементами при этом те же, что на макете.

   Исходные размеры сняты с макета: ширина каждой надписи измерена на нём
   (work/ink_box.py), размер шрифта подобран по этой ширине (work/fit_font.py),
   затем умножен на 0,806. Рядом в комментарии - число макета до пересчёта.

   Белой карточки, кнопки «Перейти в корзину» и верхней плашки на макете 08 нет
   (плашка относится к списку, макет 07) - поэтому их тут нет и у нас.
   Держим В КОНЦЕ файла: выше по файлу у этих же классов есть более старые правила. */

body.ison-cabinet .ison-offers__empty {
	display: grid;
	/* ⛔ minmax(0, …) обязателен: колонка сетки по умолчанию не уже своего содержимого,
	   и плашка с твёрдой шириной растягивала страницу на телефоне (375 → 498 px). */
	/* доли макета: текст 60..461, картинка 559..1481 при слайде 1536 - в нашем масштабе
	   это 402 px под текст и 743 px под картинку, встык, без промежутка */
	grid-template-columns: minmax(0, 402px) minmax(0, 743px);
	align-items: start;
	gap: 0;
	max-width: 100%;
	padding: 4px 0 8px;
	background: none;
	box-shadow: none;
	border: 0;
}

/* текстовая колонка занимает первый столбец, картинка - второй во всю высоту */
body.ison-cabinet .ison-offers__empty > * {
	grid-column: 1;
}

body.ison-cabinet .ison-offers__empty .ison-offers__empty-art {
	grid-column: 2;
	grid-row: 1 / span 20;
	align-self: start;
	/* вырезка начинается с выноски «2 Перейдите в корзину», то есть с самого верха
	   содержимого макета - поэтому картинка идёт от верха блока, а отступ даём заголовку */
	margin-top: 0;
	width: 100%;
	max-width: 743px;   /* 922 px макета × 0,806 */
	height: auto;
}

body.ison-cabinet .ison-offers__empty-title {
	margin: 21px 0 0;  /* на макете заголовок ниже верха картинки на 33 px (×0,806) */
	/* на макете первая строка шире колонки текста и заходит под картинку (та начинается
	   ниже, поэтому наложения не видно) - повторяем это явной шириной */
	width: 500px;
	font-size: 42.5px;  /* макет 53 px: «Здесь пока нет ваших» = 581 px */
	line-height: 38.5px;
	font-weight: 700;
	color: #14243e;
}

body.ison-cabinet .ison-offers__empty-title span {
	display: block;
	/* ⛔ выше по файлу у `.ison-offers__empty span` стоит max-width: 460px - из-за него
	   три строки заголовка держались случайно, а на телефоне строка переставала
	   переноситься и вылезала за экран. Ширину задаёт колонка, а не эта строка. */
	max-width: none;
	font-size: inherit;
	line-height: inherit;
	font-weight: inherit;
	color: #fd761a;
}

body.ison-cabinet .ison-offers__empty-lead {
	margin: 22px 0 0;
	max-width: none;
	font-size: 17.5px;  /* макет 22 px */
	line-height: 22.5px;
	color: #14243e;
}

body.ison-cabinet .ison-offers__empty .ison-steps {
	gap: 14px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

body.ison-cabinet .ison-offers__empty .ison-step {
	position: relative;
	align-items: flex-start;
	gap: 15px;
}

/* на макете круги шагов соединены тонкой линией: она идёт от низа круга
   до следующего круга (замер по макету: x 88..89, отрезки 457..522, 575..605) */
body.ison-cabinet .ison-offers__empty .ison-step:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 19px;
	top: 41px;
	bottom: -14px;
	width: 2px;
	background: #eaedf2;
}

body.ison-cabinet .ison-offers__empty .ison-step__num {
	flex: 0 0 41px;     /* макет 51 px */
	width: 41px;
	height: 41px;
	font-size: 24px;    /* макет 30 px */
	line-height: 1;
	font-weight: 700;
	color: #fff;
	background: #fe7f1e;
}

body.ison-cabinet .ison-offers__empty .ison-step div {
	gap: 0;
}

body.ison-cabinet .ison-offers__empty .ison-step strong {
	font-size: 17.5px;  /* макет 21,5 px */
	line-height: 23.5px;
	font-weight: 700;
	color: #14243e;
}

body.ison-cabinet .ison-offers__empty .ison-step div span {
	max-width: none;
	font-size: 15px;    /* макет 18,5 px */
	line-height: 20px;
	color: #24324a;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint {
	align-items: flex-start;
	width: 100%;
	max-width: 380px;   /* макет 472 px; твёрдая ширина растягивала страницу на телефоне */
	gap: 21px;
	border-radius: 11px;
	padding: 14px 16px 10px 22px;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint--discount {
	margin-top: 6px;
	/* ⛔ обе плашки на макете 08 одинаковые, x 63..534 = 472 px. Прежние «492 против 472»
	   были ошибкой замера: маска по цвету прихватывала фон слайда, похожий на зелёный. */
	max-width: 380px;
	background: #e4f0e9;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint--retail {
	margin-top: 6px;
	background: #fdece2;
}

/* значки вырезаны из самого макета (work/cut_offer_icons.py) - нарисовать такой
   залитый документ с загнутым уголком значком не получается */
body.ison-cabinet .ison-offers__empty .ison-offer-hint__icon {
	display: block;
	flex: 0 0 34px;     /* макет 42 px */
	width: 34px;
	height: auto;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint div {
	gap: 0;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint strong {
	font-size: 13.5px;  /* макет 17 px */
	line-height: 19.5px;
	font-weight: 700;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint strong small {
	display: block;
	font-size: 11.5px;  /* макет 14,5 px */
	line-height: 19.5px;
	font-weight: 700;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint div span {
	max-width: none;
	font-size: 12px;    /* макет 15 px */
	line-height: 18px;
	color: #2c414d;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint--discount strong {
	color: #0c6034;
}

body.ison-cabinet .ison-offers__empty .ison-offer-hint--retail strong {
	color: #f54b02;
}

/* Переносы строк, расставленные вручную по макету. На узких экранах их гасим,
   иначе строка не помещается в колонку и тянет за собой горизонтальную прокрутку. */
@media (max-width: 900px) {
	body.ison-cabinet .ison-page .ison-break {
		display: none;
	}

	/* ⛔ Блок менеджера тянул страницу вбок на телефоне: у подписи стоит min-width 240,
	   плюс фото 105 - вместе 363 при доступных 331. На «Моих проектах» это случайно
	   прикрывала обрезка панели, на «Коммерческих предложениях» такой обрезки нет.
	   Чиним причину: на узком экране подписи разрешено сжиматься и переноситься. */
	body.ison-cabinet .ison-manager-block__text {
		min-width: 0;
	}

	body.ison-cabinet .ison-manager-block__person {
		flex-wrap: wrap;
	}
}

/* ниже 1100 px картинка не помещается рядом с текстом - переносим её под текст */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-offers__empty {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ison-cabinet .ison-offers__empty .ison-offers__empty-art {
		grid-column: 1;
		grid-row: auto;
		margin-top: 18px;
		max-width: 100%;
	}

	/* в одну колонку заголовок ведём по ширине места, а не по ширине макета */
	body.ison-cabinet .ison-offers__empty-title {
		width: auto;
		max-width: 100%;
	}
}

@media (max-width: 760px) {
	body.ison-cabinet .ison-offers__empty-title {
		font-size: 30px;
		line-height: 32px;
	}

	body.ison-cabinet .ison-offers__empty-lead {
		font-size: 16px;
		line-height: 23px;
	}

	body.ison-cabinet .ison-offers__empty .ison-step__num {
		flex: 0 0 36px;
		width: 36px;
		height: 36px;
		font-size: 20px;
	}

	body.ison-cabinet .ison-offers__empty .ison-step:not(:last-child)::before {
		left: 17px;
		top: 36px;
	}

	body.ison-cabinet .ison-offers__empty .ison-step strong {
		font-size: 16px;
		line-height: 22px;
	}

	body.ison-cabinet .ison-offers__empty .ison-step div span {
		font-size: 14px;
		line-height: 20px;
	}

	body.ison-cabinet .ison-offers__empty .ison-offer-hint {
		gap: 14px;
		padding: 12px 14px;
	}
}


/* ─────────── Список коммерческих предложений: сведение с макетом 07 (круг 3) ───────────
   Все числа сняты с макета: плашка 144×51, зелёный кружок 29×28 цвета #0abf50 с белым
   знаком «%», оранжевый документ 21×26 цвета #fd5d24, кружок-подсказка 18 px заливкой
   #162791 с белым знаком, фон шапки таблицы #f5f9fe (у нас был заметно синее),
   левые края надписей столбцов 25 / 491 / 647 / 862 при карточке 1210 px. */

/* доли столбцов пересчитаны от макета: у нас карточка 1239 px, поэтому
   491→503, 647→662, 862→883 с учётом отступа ячейки 12 px */
body.ison-cabinet .ison-offers .ison-table--offers th:nth-child(1),
body.ison-cabinet .ison-offers .ison-table--offers td:nth-child(1) { width: 40.1%; }
body.ison-cabinet .ison-offers .ison-table--offers th:nth-child(2),
body.ison-cabinet .ison-offers .ison-table--offers td:nth-child(2) { width: 12.88%; }
body.ison-cabinet .ison-offers .ison-table--offers th:nth-child(3),
body.ison-cabinet .ison-offers .ison-table--offers td:nth-child(3) { width: 17.92%; }
body.ison-cabinet .ison-offers .ison-table--offers th:nth-child(4),
body.ison-cabinet .ison-offers .ison-table--offers td:nth-child(4) { width: 29.1%; }

/* Шапка таблиц. Средний цвет полосы на макетах: 03 - #eaf1f9, 04 - #f6f9fc, 07 - #f5f9fd,
   у нас было #e5effe. Сравнивать удобнее не абсолютный цвет (строки на макетах тоже не
   чисто белые), а насколько шапка темнее строк: макеты хотят −17 / −7 / −7 к белому,
   прежнее значение давало −26, новое даёт −12 - то есть ближе ко всем трём сразу. */
body.ison-cabinet .ison-table thead th {
	background: #f3f9fe;
}

/* плашка типа предложения: на макете 144×51 */
body.ison-cabinet .ison-offers .ison-offer-type {
	box-sizing: border-box;
	min-width: 144px;
	min-height: 51px;
	gap: 10px;
	padding: 8px 14px;
	border-radius: 12px;
}

/* значок со скидкой: на макете залитый зелёный кружок с белым знаком процента */
body.ison-cabinet .ison-offers .ison-offer-type--discount .ison-offer-type__icon {
	width: 29px;
	height: 28px;
	flex: 0 0 29px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #0abf50;
	color: #fff;
}

body.ison-cabinet .ison-offers .ison-offer-type--discount .ison-offer-type__icon .ison-svg {
	width: 17px;
	height: 17px;
}

/* значок без скидки: на макете оранжевый документ 21×26 */
body.ison-cabinet .ison-offers .ison-offer-type--retail .ison-offer-type__icon {
	flex: 0 0 21px;
	color: #fd5d24;
}

body.ison-cabinet .ison-offers .ison-offer-type--retail .ison-offer-type__icon .ison-svg {
	width: 21px;
	height: 26px;
}

/* кружок-подсказка «?»: на макете залитый тёмно-синий с белым знаком, 18 px */
body.ison-cabinet .ison-offers .ison-offer-type__help {
	width: 18px;
	height: 18px;
	margin-left: 14px;
	background: #162791;
	color: #fff;
	font-size: 11px;
}

/* ⛔ Размер плашки взят с макета (1536 px). На планшете и телефоне столбец уже, и плашка
   с таким минимумом наезжала на кнопку скачивания - там даём ей сжиматься. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-offers .ison-offer-type {
		min-width: 0;
		min-height: 0;
		gap: 6px;
		padding: 6px 8px;
	}

	body.ison-cabinet .ison-offers .ison-offer-type__help {
		margin-left: 6px;
	}
}


/* ─────────── Таблица предложений: размеры строк и надписей по макету 07 (круг 4) ───────────
   Замер макета: шапка 55 px (y 309..364), строки 89/91/93/93 (границы 365/454/545/638/731),
   карточка 423 px. Ширина надписей на макете: название организации 152 px, номер 105,
   дата 74, шапка «Наименование организации» 177, подпись на кнопке 243 - под эти ширины
   и подобраны размеры шрифта (work/fit_font.py). */

/* ⛔ Надпись на кнопке красилась в тёмно-синий: правило `.ison-table a { color: #0c1560 }`
   (тёмно-синие ссылки таблиц с макета 03) по весу селектора перебивало белый цвет кнопки.
   Симптом ровно тот же, что уже дважды ловил test_styles: правило есть, а на странице нет. */
body.ison-cabinet .ison-offers .ison-table a.ison-btn--primary {
	color: #fff;
	font-size: 13px;
	font-weight: 600;
}

body.ison-cabinet .ison-offers .ison-table--offers thead th {
	height: 55px;
	font-size: 12.5px;
}

body.ison-cabinet .ison-offers .ison-table--offers tbody td {
	height: 92px;
	font-size: 14.5px;
}

body.ison-cabinet .ison-offers .ison-table--offers .ison-table__name {
	font-size: 15px;
}

body.ison-cabinet .ison-offers .ison-table--offers .ison-table__name small {
	font-size: 13.5px;
}

/* карточка на макете 07 равна самой таблице (308..731 = 423 px): выносим таблицу
   за поля карточки, как это уже сделано на «Моих заказах» */
body.ison-cabinet .ison-offers .ison-panel > .ison-table-wrap {
	margin: -16px;
}

body.ison-cabinet .ison-offers .ison-table--offers {
	margin: 0;
}

/* таблица теперь идёт от края карточки, поэтому отступ крайним ячейкам возвращаем сами:
   на макете надпись первого столбца стоит в 25 px от края карточки, последнего - в 862 */
body.ison-cabinet .ison-offers .ison-table--offers th:first-child,
body.ison-cabinet .ison-offers .ison-table--offers td:first-child {
	padding-left: 25px;
}

body.ison-cabinet .ison-offers .ison-table--offers th:last-child,
body.ison-cabinet .ison-offers .ison-table--offers td:last-child {
	padding-right: 19px;
}

/* карточка таблицы предложений: таблица вынесена за поля, поэтому скругление карточки
   держим обрезкой - иначе голубая шапка закрашивает углы (так же сделано на заказах) */
body.ison-cabinet .ison-offers .ison-panel {
	overflow: hidden;
}

/* Подпись пункта меню держим одной строкой, как на макете: даже 0,3 px нехватки
   отправляли «Коммерческие предложения» на вторую строку и растягивали подсветку
   с 44 до 64 px. Ширина панели фиксированная (254 px), поэтому выехать некуда. */
body.ison-cabinet .ison-menu__title {
	white-space: nowrap;
}

/* Воздух перед блоком «Есть вопросы?». Замер макета 07: низ карточки таблицы 731,
   верх карточки менеджера 810 - зазор 79 px; на макете 04 он же около 63.
   У нас стояло 16 px, и блок был прижат к таблице. */
body.ison-cabinet .ison-manager-block {
	margin-top: 78px;
}


/* ─────────── Страница «Получи сертификат»: цвета блока «Как это работает» ───────────
   ⛔ Заголовки шагов у нас были оранжевыми и не проходили норму контраста (4 нарушения
   axe-core с части 7). На макете 10 они ТЁМНО-СИНИЕ #0d185e (15,73:1) - оранжевый был
   нашей выдумкой. Подпись под ними на макете #7a87b1 (3,48:1) - норму не проходит уже
   сам макет, поэтому цвет берём макетный, а место названо в исключениях test_contrast. */
body.ison-cabinet .ison-cert-step strong {
	color: #0d185e;
}

body.ison-cabinet .ison-cert-step span:not(.ison-step__num) {
	color: #7a87b1;
}


/* ─────────── «Обучение»: сведение с макетом 09 (часть 9) ───────────
   Замеры макета: поиск по видео 284×36 стоит СПРАВА в строке заголовка (x 1214),
   активная вкладка 128×40, главный блок 1205×152 с кадром 436×136 слева и кнопкой
   173×44 справа, карточка видео 301×337 с превью во всю ширину (292×79),
   карточка «Полезные материалы» 289×99, кнопка «Показать ещё видео» 400×65. */

body.ison-cabinet .ison-training {
	position: relative;
}

/* поиск по видео: на макете он в строке заголовка справа, а не отдельной строкой */
@media (min-width: 1200px) {
	body.ison-cabinet .ison-training .ison-filters {
		position: absolute;
		top: 4px;
		right: 0;
		width: 284px;
		margin: 0;
	}

	body.ison-cabinet .ison-training .ison-filters__search,
	body.ison-cabinet .ison-training .ison-filters__search input {
		width: 284px;
		height: 36px;
		box-sizing: border-box;
	}
}

body.ison-cabinet .ison-training .ison-chip {
	min-height: 40px;
	padding: 0 18px;
	font-size: 13px;
}

/* главный блок: кадр слева, текст в середине, кнопка справа */
body.ison-cabinet .ison-video-main {
	/* на макете кадр СЛЕВА, текст справа, кнопка в правом краю текста: в разметке
	   текст идёт первым, поэтому порядок обратный */
	flex-direction: row-reverse;
	align-items: center;
	gap: 22px;
	/* ⛔ Свой замер макета 09: белая карточка по столбцу 1200 занимает y 214..348,
	   то есть 135 px, и кадр 436×136 лежит в ней ЗАПОДЛИЦО - белого поля вокруг нет.
	   С полем 8 px карточка вырастала до 152 (наш замер по тому же столбцу: 268..419)
	   и вокруг кадра появлялась белая рамка. */
	padding: 0;
	min-height: 136px;
	box-sizing: border-box;
	overflow: hidden;
}

body.ison-cabinet .ison-video-main__shot {
	flex: 0 0 436px;
	width: 436px;
	height: 136px;
}

body.ison-cabinet .ison-video-main__text {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 173px;
	column-gap: 24px;
	align-items: center;
	flex: 1;
	min-width: 0;
	/* поля у карточки больше нет - отодвигаем текст от правого края сами */
	padding: 8px 20px 8px 0;
	box-sizing: border-box;
}

body.ison-cabinet .ison-video-main__text .ison-btn {
	grid-column: 2;
	grid-row: 1 / span 3;
	justify-self: end;
	width: 173px;
	height: 44px;
	margin: 0;
	box-sizing: border-box;
}

body.ison-cabinet .ison-video-main__desc {
	margin-bottom: 0;
}

/* карточки видео: превью во всю ширину карточки, без полей */
/* ⛔ Четыре колонки - только на широком экране: без ограничения по ширине сетка
   держала четыре колонки и на телефоне, и страница уезжала вбок (434 px при экране 375). */
body.ison-cabinet .ison-training .ison-videos {
	gap: 19px;
}

@media (min-width: 1200px) {
	body.ison-cabinet .ison-training .ison-videos {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

body.ison-cabinet .ison-training .ison-video {
	padding: 0;
	gap: 0;
	overflow: hidden;
	border-radius: 12px;
}

body.ison-cabinet .ison-training .ison-video__shot {
	width: 100%;
	height: auto;
	aspect-ratio: 292 / 79;
	border-radius: 0;
}

/* ⛔ Свой построчный замер второй карточки первого ряда на макете 09 (она одинакова
   с нашей по содержимому: заголовок в одну строку, описание в две):
   низ превью 610, заголовок 625..638, описание 646..657 и 665..673, низ карточки 684.
   Отсюда: от превью до заголовка 15, от заголовка до описания 8, шаг строк описания 19,
   от последней строки до низа 11; вся карточка 154 px. */
body.ison-cabinet .ison-training .ison-video__title {
	margin: 10px 16px 0;
	line-height: 17px;
}

body.ison-cabinet .ison-training .ison-video__desc {
	margin: 6px 16px 6px;
	line-height: 17px;
}

/* подписи категории под описанием на макете нет */
body.ison-cabinet .ison-training .ison-video__cat {
	display: none;
}

/* полезные материалы: на макете карточка 289×99, четыре в ряд */
body.ison-cabinet .ison-training .ison-materials {
	gap: 19px;
}

@media (min-width: 1200px) {
	body.ison-cabinet .ison-training .ison-materials {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

body.ison-cabinet .ison-training .ison-material {
	min-height: 99px;
	padding: 14px 16px;
	box-sizing: border-box;
}

/* «Полезные материалы»: на макете 09 цветной значок 53×53, две строки текста
   и оранжевая стрелка справа внизу. Цвета значков сняты пипеткой:
   монитор #0249e9, воспроизведение #fd4804, YouTube #fd0419, VK #0270fd. */
body.ison-cabinet .ison-training .ison-material {
	display: grid;
	grid-template-columns: 53px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 14px;
	row-gap: 6px;
	align-items: start;
	min-height: 99px;
	padding: 14px 16px;
	box-sizing: border-box;
}

body.ison-cabinet .ison-training .ison-material__icon {
	grid-row: 1 / span 2;
	width: 53px;
	height: 53px;
	border-radius: 12px;
	color: #fff;
	background: #0249e9;
}

body.ison-cabinet .ison-training .ison-material__icon--play { background: #fd4804; }
body.ison-cabinet .ison-training .ison-material__icon--yt { background: #fd0419; }
body.ison-cabinet .ison-training .ison-material__icon--vk { background: #0270fd; }

body.ison-cabinet .ison-training .ison-material__text {
	display: grid;
	gap: 4px;
	min-width: 0;
}

body.ison-cabinet .ison-training .ison-material__text strong {
	font-size: 13px;
	line-height: 1.3;
	color: #12233f;
}

body.ison-cabinet .ison-training .ison-material__text span {
	font-size: 12px;
	color: #5b6b86;
}

/* стрелка справа внизу, как на макете */
body.ison-cabinet .ison-training .ison-material__arrow {
	grid-column: 2;
	justify-self: end;
	width: 15px;
	height: 13px;
	background: currentColor;
	color: #f2551b;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' stroke='%23000' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' stroke='%23000' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* подпись над заголовком главного блока: на макете оранжевая */
body.ison-cabinet .ison-video-main__label {
	color: #f2551b;
}

/* кнопка главного блока: подпись в одну строку */
body.ison-cabinet .ison-video-main__text .ison-btn {
	white-space: nowrap;
	font-size: 14px;
}

/* «Показать ещё видео»: свой замер макета 09 - кнопка 322×45 (x 717..1038, y 963..1007),
   заливка #e4f1fd, надпись #101875 шириной 141 px, галочка вниз справа. На макете она
   стоит ПОД блоком «Полезные материалы» (карточки кончаются на 946, кнопка начинается
   на 963 - отступ 17 px), поэтому в шаблоне она выводится последней. */
body.ison-cabinet .ison-training .ison-videos.is-cut > .ison-video:nth-child(n + 9) {
	display: none;
}

/* Настоящая обрезка: её ставит скрипт по ВИДИМЫМ карточкам. Правило выше работает
   только до загрузки скрипта, дальше он снимает `is-cut` и считает сам - иначе
   выбранная категория и обрезка по номеру спорят друг с другом. */
body.ison-cabinet .ison-training .ison-video.is-cut-off {
	display: none;
}

body.ison-cabinet .ison-videos-more {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 322px;
	height: 45px;
	margin: 17px auto 24px;
	border: 0;
	border-radius: 23px;
	background: #e4f1fd;
	color: #101875;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

body.ison-cabinet .ison-videos-more:hover {
	background: #d7e8fb;
}

body.ison-cabinet .ison-videos-more__arrow {
	width: 14px;
	height: 9px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath d='M2 2l10 10L22 2' stroke='%23000' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath d='M2 2l10 10L22 2' stroke='%23000' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* заголовок и подзаголовок «Обучения»: размеры подобраны по ширине надписей на макете 09
   («Обучение» 164 px, подзаголовок 635 px) */
body.ison-cabinet .ison-training .ison-page__title {
	font-size: 33px;
	font-weight: 700;
}

body.ison-cabinet .ison-training .ison-page__lead {
	font-size: 16.5px;
}

body.ison-cabinet .ison-videos-more {
	font-size: 17px;
}

/* ─────────── «Получите сертификат»: сведение с макетом 10 (часть 9) ───────────
   Замеры макета: заголовок в две строки (строка 1 шириной 501 px, вторая оранжевая),
   подзаголовок 504 px, плашка «Рекомендуем» 638×85.
   ⛔ Текст заголовка берём из ТЗ п.44 («специалиста по оборудованию ISON»), а не с макета:
   в ТЗ прямо сказано обновить формулировку относительно старого макета. */
body.ison-cabinet .ison-cert__title {
	font-size: 45.5px;
	line-height: 45px;
	font-weight: 700;
	color: #12233f;
	max-width: 900px;
}

body.ison-cabinet .ison-cert__title span {
	display: block;
	color: #f2551b;
}

body.ison-cabinet .ison-certificate .ison-page__lead {
	font-size: 17.5px;
	max-width: 560px;
}

/* Плитки преимуществ: на макете 10 три штуки в ряду шириной 639, высотой 148,
   значок в цветном квадрате сверху, подпись под ним в две строки. */
body.ison-cabinet .ison-certificate .ison-benefits-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

body.ison-cabinet .ison-certificate .ison-benefit-card {
	display: grid;
	align-content: start;
	gap: 14px;
	min-height: 148px;
	padding: 18px;
	box-sizing: border-box;
}

body.ison-cabinet .ison-certificate .ison-benefits__icon {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: #fceee2;
	color: #f2551b;
}

/* «Как это работает»: на макете белая карточка 1220×180, между шагами стрелки */
body.ison-cabinet .ison-cert-steps {
	background: #fff;
	padding: 24px 26px;
	min-height: 180px;
	box-sizing: border-box;
}

body.ison-cabinet .ison-cert-steps__list {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px;
	align-items: start;
}

body.ison-cabinet .ison-cert-step {
	position: relative;
}

body.ison-cabinet .ison-cert-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 14px;
	right: -19px;
	width: 13px;
	height: 12px;
	background: #12233f;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h14M13 6l6 6-6 6' stroke='%23000' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h14M13 6l6 6-6 6' stroke='%23000' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* значки фактов: на макете светло-голубой кружок с синим рисунком */
body.ison-cabinet .ison-cert-fact__icon {
	background: #e7f4fe;
	color: #1c7ed6;
}

@media (max-width: 1199px) {
	body.ison-cabinet .ison-certificate .ison-benefits-cards,
	body.ison-cabinet .ison-cert-steps__list {
		grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	}

	body.ison-cabinet .ison-cert-step:not(:last-child)::after {
		display: none;
	}
}

/* Верх страницы сертификата по макету 10: слева колонка 639 px (плашка и три плитки),
   справа образец сертификата. Плашка «Рекомендуем» 639×91 - значок, текст в две строки
   и стрелка справа по центру, в одну строку по горизонтали. */
@media (min-width: 1200px) {
	/* ⛔ Образец сертификата больше не стоит в этой строке (он абсолютом справа вверху),
	   поэтому колонка осталась одна - но ШИРИНОЙ 639 px, как на макете: там плашка
	   «Рекомендуем» и все три плитки преимуществ помещаются в левой части (296..936),
	   а не идут во всю ширину под картинку. */
	body.ison-cabinet .ison-cert__top {
		grid-template-columns: 639px;
		gap: 24px;
	}
}

body.ison-cabinet .ison-certificate .ison-info-block--link {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 91px;
	padding: 16px 20px;
	box-sizing: border-box;
}

body.ison-cabinet .ison-certificate .ison-info-block--link .ison-info-block__icon {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
}

body.ison-cabinet .ison-certificate .ison-info-block--link > div {
	flex: 1;
	min-width: 0;
}

body.ison-cabinet .ison-certificate .ison-info-block--link strong {
	font-size: 14px;
	line-height: 1.45;
	font-weight: 500;
}

body.ison-cabinet .ison-certificate .ison-info-block__arrow {
	flex: 0 0 auto;
	margin-left: 0;
	align-self: center;
}

/* образец сертификата - готовая композиция с макета 10, тень и скругление ей не нужны */
body.ison-cabinet .ison-cert__sample img {
	border-radius: 0;
	box-shadow: none;
	max-width: 608px;
}

/* ─────────── Страница теста: сведение с макетом 11 (часть 9) ───────────
   Замеры макета: заголовок 772 px («ISON» оранжевым), подзаголовок 583 px в две строки,
   вопрос 435 px первой строкой, строка варианта 610×50. */
body.ison-cabinet .ison-test .ison-page__title {
	font-size: 41px;
	line-height: 1.12;
	font-weight: 700;
	color: #12233f;
}

body.ison-cabinet .ison-test .ison-page__title span {
	color: #f2551b;
}

body.ison-cabinet .ison-test .ison-page__lead {
	font-size: 22.5px;
	line-height: 1.35;
	max-width: 760px;
}

body.ison-cabinet .ison-test__question {
	font-size: 35.5px;
	line-height: 1.2;
	font-weight: 700;
	color: #12233f;
	margin: 18px 0 22px;
}

body.ison-cabinet .ison-test__option {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 50px;
	padding: 6px 16px;
	box-sizing: border-box;
	border-radius: 12px;
}

/* буква варианта: на макете отдельной плашкой между кружком и текстом */
body.ison-cabinet .ison-test__letter {
	flex: 0 0 auto;
	min-width: 18px;
	font-weight: 700;
	color: #6b7686;
}

body.ison-cabinet .ison-test__option span {
	font-size: 15px;
}

/* выбранный вариант на макете персиковый с оранжевой рамкой */
body.ison-cabinet .ison-test__option.is-current,
body.ison-cabinet .ison-test__option:has(input:checked) {
	background: #fdf0e9;
	border-color: #f2551b;
}

/* колонки страницы теста по макету 11: карточка вопроса 782 px, правая колонка 429 px.
   ⛔ Правая колонка поднята к самому верху страницы: на макете карточка «Осталось
   времени» стоит вровень с крошками (55 px от верха кабинета), а карточка вопроса
   начинается только на 201. Поэтому сеткой из двух столбцов служит ВСЯ страница,
   а заголовок с подзаголовком живут в левом столбце. */
@media (min-width: 1200px) {
	body.ison-cabinet .ison-test {
		display: grid;
		grid-template-columns: minmax(0, 782px) minmax(0, 429px);
		grid-template-rows: auto auto 1fr;
		column-gap: 27px;
		align-items: start;
	}

	body.ison-cabinet .ison-test > .ison-page__title,
	body.ison-cabinet .ison-test > .ison-page__lead,
	body.ison-cabinet .ison-test > .ison-test__layout {
		grid-column: 1;
	}

	body.ison-cabinet .ison-test > .ison-test__side {
		grid-column: 2;
		grid-row: 1 / span 3;
		/* ⛔ Замер: у нас верх карточки «Осталось времени» стоял на 62 от верха кабинета,
		   на макете 11 - на 18 (карточка идёт вровень с крошками). Разница 44 - это
		   высота строки крошек с отступом, её и снимаем. */
		margin-top: -44px;
	}

	body.ison-cabinet .ison-test__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}
}


/* ─────────── Часть 9, круг 1: находки приёмки ───────────
   Числа из замеров макетов 09-11. Каждая правка - по конкретной находке. */

/* Б11: фон главного блока обучения на макете 09 белый, у нас был голубой градиент */
body.ison-cabinet .ison-training .ison-video-main {
	background: #fff;
}

/* Б13: карточка «Полезных материалов» на макете 75 px, у нас была 110 */
body.ison-cabinet .ison-training .ison-material {
	min-height: 75px;
	padding: 12px 14px;
}

body.ison-cabinet .ison-training .ison-material__icon {
	width: 53px;   /* размер с макета; карточку в 75 px держим полями, а не значком */
	height: 53px;
}

/* Б3: заголовок «Как это работает?» на макете крупный тёмно-синий */
body.ison-cabinet .ison-cert-steps .ison-panel__title {
	font-size: 28px;
	line-height: 1.2;
	font-weight: 700;
	color: #12233f;
	margin-bottom: 18px;
}

/* Б4: кружки шагов на макете 51 px с цифрой 30 px */
body.ison-cabinet .ison-certificate .ison-cert-step .ison-step__num {
	flex: 0 0 51px;
	width: 51px;
	height: 51px;
	font-size: 30px;
	line-height: 1;
}

/* Б6: подпись шага на макете тёмная (#4a5b8b, 6,4:1), а не блёклая.
   ⛔ Прежний #7a87b1 был внесён в исключения по контрасту как «так в макете» -
   это оказалось неправдой: сам макет норму проходит, расходились мы. */
body.ison-cabinet .ison-cert-step span:not(.ison-step__num) {
	color: #4a5b8b;
}

/* Б5: значки плиток и плашки на макете - персиковые КРУГИ 67 px с оранжевым рисунком */
body.ison-cabinet .ison-certificate .ison-benefits__icon,
body.ison-cabinet .ison-certificate .ison-info-block--link .ison-info-block__icon {
	width: 67px;
	height: 67px;
	flex: 0 0 67px;
	border-radius: 50%;
	background: #fdeee4;
	color: #f2551b;
}

body.ison-cabinet .ison-certificate .ison-benefits__icon .ison-svg,
body.ison-cabinet .ison-certificate .ison-info-block--link .ison-info-block__icon .ison-svg {
	width: 34px;
	height: 34px;
}

body.ison-cabinet .ison-certificate .ison-info-block__arrow {
	color: #12233f;
}

/* Б2: образец сертификата был выше левой колонки на 187 px, и кнопка «Приступить
   к тесту» уходила за первый экран. Ограничиваем высоту картинки. */
body.ison-cabinet .ison-cert__sample img {
	max-height: 352px;
	width: auto;
	max-width: 100%;
}

/* Б9: буква варианта на макете 11 сидит в светло-голубой плашке 34×34 */
body.ison-cabinet .ison-test__letter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: #eef4fd;
	color: #12233f;
	font-size: 14px;
}

/* Б10: кружок выбора ответа на макете 30 px, у нас был браузерный 13 */
body.ison-cabinet .ison-test__option input[type="radio"] {
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	margin: 0;
	accent-color: #f2551b;
}

/* Б7: на телефоне вопрос 35,5 px не помещался и уводил страницу вбок */
@media (max-width: 900px) {
	body.ison-cabinet .ison-test__question {
		font-size: 24px;
	}

	body.ison-cabinet .ison-test .ison-page__title {
		font-size: 28px;
	}

	body.ison-cabinet .ison-test .ison-page__lead {
		font-size: 17px;
	}
}

/* баннер в правой колонке теста (макет 11): вырезан из макета, ширина по колонке */
body.ison-cabinet .ison-test__banner {
	display: block;
	width: 100%;
	max-width: 400px;
	height: auto;
	border-radius: 12px;
}

/* «Ваш прогресс»: на макете 11 процент стоит справа в строке полосы, а не под ней */
body.ison-cabinet .ison-test__progress-panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	align-items: center;
}

body.ison-cabinet .ison-test__progress-panel .ison-test__progress-top {
	grid-column: 1 / span 2;
}

body.ison-cabinet .ison-test__progress-panel .ison-progress {
	grid-column: 1;
}

body.ison-cabinet .ison-test__progress-panel .ison-test__progress-value {
	grid-column: 2;
	margin: 0;
}

/* текст варианта на макете обычного начертания, у нас был жирный */
body.ison-cabinet .ison-test__option span {
	font-weight: 400;
}


/* ─────────── Часть 9, круг 2: находки приёмки ─────────── */

/* Б1: карточка материала на макете 73 px. `min-height` ничего не давал - высоту
   держало содержимое, поэтому убираем лишние поля, а не ставим минимум. */
body.ison-cabinet .ison-training .ison-material {
	min-height: 73px;
	padding: 10px 14px;
	row-gap: 2px;
}

body.ison-cabinet .ison-training .ison-material__text strong {
	line-height: 1.25;
}

/* Б5: у превью роликов остались отрицательные поля от старой карточки с полем 14 px,
   а часть 9 сделала карточку без полей - кадр уезжал влево и не доходил до правого края */
body.ison-cabinet .ison-training .ison-video__shot {
	margin: 0 0 0;
}

/* Б6: цвета карточек «Обучения» сняты пипеткой с макета 09 - там они синие,
   а у нас были серые (#333e48 и #6b7280) */
body.ison-cabinet .ison-training .ison-video__title {
	color: #0d1f9e;
}

body.ison-cabinet .ison-training .ison-video__desc {
	color: #4a6cd0;
}

body.ison-cabinet .ison-training .ison-training__subtitle {
	color: #0d1f9e;
}

/* Б4: цифры таймера на макете 11 - 243×72 (в прежний замер 302 попал ещё и значок
   часов, он отдельный), то есть около 96 px, по центру карточки.
   ⛔ Одного `text-align: center` мало: родитель `.ison-test__clock` объявлен
   `display: grid; justify-items: start`, из-за чего блок цифр сжимался по содержимому
   и прижимался влево (замер макета: цифры x 1186..1428 в карточке 1092..1508, поля
   94 и 80; у нас было 1114..1376 - поля 25 и 141). Растягиваем ячейку по ширине. */
body.ison-cabinet .ison-test__clock {
	justify-items: stretch;
}

body.ison-cabinet .ison-test__clock .ison-test__timer {
	display: block;
	width: 100%;
	font-size: 96px;
	line-height: 1.05;
	text-align: center;
}

/* Б3: образец сертификата на макете шире и поднят к заголовку - потолок высоты давал
   узкую картинку и пустую полосу справа. Точную ширину по макету назвать нельзя:
   композиция обрезана правым краем макета, видно не менее 597 px. */
body.ison-cabinet .ison-cert__sample img {
	max-height: none;
	width: 578px;
	max-width: 100%;
}

@media (min-width: 1200px) {
	/* ⛔ Свой замер макета 10: верх кабинета y 60, композиция образца занимает y 61..582,
	   то есть начинается ВРОВЕНЬ с крошками, а заголовок живёт слева и кончается на 833.
	   Пока картинка стояла в общей строке под заголовком, весь низ страницы уезжал
	   на 157 px и кнопка «Приступить к тесту» переставала попадать в первый экран.
	   Поэтому картинка выведена первой в разметке и лежит абсолютом справа сверху,
	   а заголовку и подзаголовку задана ширина левой колонки. */
	body.ison-cabinet .ison-certificate {
		position: relative;
	}

	body.ison-cabinet .ison-certificate .ison-cert__sample {
		position: absolute;
		/* ⛔ Отсчёт идёт от блока страницы, а он начинается ПОД крошками: при top 11
		   верх картинки вставал на строку 136 при верхе кабинета 61, то есть на 74
		   ниже макета (там отступ от верха кабинета - 1 точка). Поднимаем на эти 74:
		   11 - 74 = -63. Крошки при этом не закрываются - они слева, картинка справа. */
		top: -63px;
		right: 0;
		width: 608px;
		margin: 0;
		z-index: 2;
		pointer-events: none;
	}

	body.ison-cabinet .ison-certificate .ison-cert__sample img {
		width: 608px;
	}

	body.ison-cabinet .ison-certificate .ison-cert__title,
	body.ison-cabinet .ison-certificate > .ison-page__lead {
		max-width: 560px;
	}
}

/* Б1 (продолжение): стрелка материала стояла отдельной строкой сетки и добавляла
   карточке 25 px. На макете она в той же строке справа - высота 73 px. */
body.ison-cabinet .ison-training .ison-material {
	grid-template-columns: 53px minmax(0, 1fr) 15px;
	grid-template-rows: auto;
	align-items: center;
	column-gap: 12px;
	row-gap: 0;
}

body.ison-cabinet .ison-training .ison-material__icon {
	grid-row: auto;
}

body.ison-cabinet .ison-training .ison-material__arrow {
	grid-column: 3;
	justify-self: end;
	align-self: center;
}

/* Б2 (продолжение): поля плашки и плиток подогнаны к макетным высотам 91 и 163 */
body.ison-cabinet .ison-certificate .ison-info-block--link {
	padding: 12px 20px;
}

body.ison-cabinet .ison-certificate .ison-benefit-card {
	gap: 12px;
	padding: 16px;
}

/* высоты по макету: плашка «Рекомендуем» 91, плитка преимущества 163 */
body.ison-cabinet .ison-certificate .ison-info-block--link {
	padding: 11px 20px;
}

body.ison-cabinet .ison-certificate .ison-benefit-card {
	gap: 10px;
	padding: 14px 16px;
}

body.ison-cabinet .ison-certificate .ison-benefit-card strong {
	font-size: 13px;
	line-height: 1.3;
}

/* размеры подписей материала сняты с макета 09: «Скачать» 69 px, «программное
   обеспечение» 183 px - это около 11,5 px; при 13 px карточка вырастала до 107 */
body.ison-cabinet .ison-training .ison-material__text strong {
	font-size: 11.5px;
	line-height: 1.25;
}

body.ison-cabinet .ison-training .ison-material__text span {
	font-size: 11px;
	line-height: 1.25;
}

/* ⛔ Раскладка карточки материала описана через `.ison-training`, а такие же карточки
   стоят и на странице «Программное обеспечение»: там текст не получал min-width: 0,
   упирался в длинное слово и растягивал страницу (401 px при экране 375). */
body.ison-cabinet .ison-material,
body.ison-cabinet .ison-material__text {
	min-width: 0;
}

body.ison-cabinet .ison-material__text strong,
body.ison-cabinet .ison-material__text span {
	overflow-wrap: break-word;
	word-break: keep-all;
}

@media (max-width: 760px) {
	body.ison-cabinet .ison-training .ison-material {
		grid-template-columns: 44px minmax(0, 1fr);
		column-gap: 10px;
	}

	body.ison-cabinet .ison-training .ison-material__icon {
		width: 44px;
		height: 44px;
	}

	body.ison-cabinet .ison-training .ison-material__arrow {
		display: none;
	}
}

/* Б2 круга 3: подписи карточек «Полезных материалов» на макете 09 синие
   (заголовок #0305a1, вторая строка #2959eb), у нас оставались тёмно-серыми */
body.ison-cabinet .ison-training .ison-material__text strong {
	color: #0305a1;
}

body.ison-cabinet .ison-training .ison-material__text span {
	color: #2959eb;
}

/* Б3 круга 3: на макете 11 текст вариантов и подписи правой колонки синие,
   у нас наследовался базовый серый кабинета #333e48 */
body.ison-cabinet .ison-test__option span {
	color: #070c50;
}

body.ison-cabinet .ison-test__clock-head,
body.ison-cabinet .ison-test__progress-top strong,
body.ison-cabinet .ison-test__tips-head {
	color: #00022d;
}

/* На узком экране плашка типа предложения не помещалась в свой столбец и наезжала
   на кнопку скачивания (замер на 1150: плашка кончалась на 842 при границе ячейки 832).
   Разрешаем её тексту переноситься - но не по слогам: тема рвёт слова по буквам. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-offers .ison-offer-type {
		white-space: normal;
		word-break: keep-all;
		max-width: 100%;
	}

	body.ison-cabinet .ison-offers .ison-offer-type__text {
		min-width: 0;
	}

	body.ison-cabinet .ison-offers .ison-offer-type__help {
		margin-left: 4px;
	}
}

/* ⛔ Раздел «Обучение» - это ТРИ страницы с одинаковой обёрткой `ison-training`:
   сам список (макет 09), страница ролика и видеоинструкции. Правила макета 09 писались
   под карточку С ПРЕВЬЮ (поля нулевые, картинка во всю ширину) и под материал из трёх
   частей (значок, обёртка текста, стрелка). На двух соседних страницах карточка другая:
   вместо превью круглый значок 44 px, а у материала обёртки нет. Без этого блока значок
   прилипал к самому углу, а подпись материала попадала в колонку стрелки шириной 15 px.
   Карточке без превью возвращаем поля макета, материалу - раскладку в две колонки. */
body.ison-cabinet .ison-training .ison-video--plain {
	padding: 16px;
	gap: 8px;
}

body.ison-cabinet .ison-training .ison-video--plain .ison-video__title,
body.ison-cabinet .ison-training .ison-video--plain .ison-video__desc {
	margin: 0;
}


/* ⛔ Значки правой колонки теста. Замеры макета 11: часы у «Осталось времени» 48×47
   оранжевые (251,69,21); лампочка у «Полезных советов» 26×38 оранжевая; маркеры
   советов - четыре оранжевых кружка 23-24 px с белой галочкой; кружок «i» в плашке
   про время 26×26 оранжевый и стоит СЛЕВА от текста, а текст идёт справа в три строки.
   Было: тёмно-синие служебные значки 14-32 px и галочка-символ 8×10. */
body.ison-cabinet .ison-test__clock-head svg {
	width: 48px;
	height: 48px;
	color: #fb4515;
	flex: 0 0 48px;
}

body.ison-cabinet .ison-test__tips-head svg {
	width: 26px;
	height: 38px;
	color: #fb4515;
	flex: 0 0 26px;
}

body.ison-cabinet .ison-test__warning {
	display: grid;
	grid-template-columns: 26px minmax(0, 1fr);
	column-gap: 12px;
	align-items: start;
}

body.ison-cabinet .ison-test__warning svg {
	width: 26px;
	height: 26px;
	color: #fb4515;
}

body.ison-cabinet .ison-test__tips ul {
	gap: 12px;
}

body.ison-cabinet .ison-test__tips li {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	column-gap: 10px;
	align-items: start;
}

/* ⛔ Ниже 1200 картинка образца - обычный блок, а в разметке она идёт ПЕРВОЙ (чтобы
   на широком экране лечь абсолютом справа сверху). Без этого правила на ноутбуке
   1150 страница начиналась картинкой во всю ширину, а заголовок уезжал под неё.
   Ставим её после подзаголовка и не даём растягиваться. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-certificate {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	body.ison-cabinet .ison-certificate > * {
		order: 4;
	}

	body.ison-cabinet .ison-certificate > .ison-cert__title {
		order: 1;
	}

	body.ison-cabinet .ison-certificate > .ison-page__lead {
		order: 2;
	}

	body.ison-cabinet .ison-certificate > .ison-cert__sample {
		order: 3;
		max-width: 520px;
		margin: 0 auto 16px;
	}
}

/* ─────────── Часть 10: «Мои реквизиты» по макету 13 ───────────
   Свой замер макета: левая белая карточка 289..1209 (ширина 921), правая серая
   начинается с 1216, содержимое кабинета там 1215 px. У нас содержимое 1238, поэтому
   держим ту же долю: 921/1215 от 1238 = 938 px. Было 815 - карточка с таблицей
   оказывалась уже макетной на 106 px, а правая колонка шире на 120. */
@media (min-width: 1200px) {
	/* ⛔ Доли, а не пиксели: 938 px не помещались в колонку кабинета на ширине 1240,
	   и страница уезжала вбок на 117 px. Отношение с макета - 921 к 287. */
	body.ison-cabinet .ison-requisites .ison-order__grid {
		grid-template-columns: minmax(0, 921fr) minmax(0, 287fr);
		gap: 7px;
	}
}

/* Замеры макета 13: внутреннее поле карточки 32 px (карточка с 289, заголовок с 321),
   заголовок «Реквизиты организации» шириной 296 px при высоте букв 22, кнопка 230×44,
   колонка подписей 282 px из 921 (31%), шаг строк таблицы 34. */
body.ison-cabinet .ison-requisites .ison-panel__title {
	font-size: 24.5px;
}

body.ison-cabinet .ison-requisites .ison-btn--primary {
	width: 230px;
	height: 44px;
	padding: 0;
	box-sizing: border-box;
}

/* ⛔ Без `table-layout: fixed` ширина 31% - только пожелание: браузер растягивал колонку
   подписей по содержимому, и значения начинались на 920 вместо макетных 608. */
body.ison-cabinet .ison-requisites .ison-table--req {
	table-layout: fixed;
}

/* ⛔ Ширину назначаем по НОМЕРУ ячейки: правило по классу подписи при `table-layout: fixed`
   отдавало 31% второй колонке, и значения уезжали на 914 вместо макетных 608.
   ⛔ И только на широком экране: на 1240 подпись «Корреспондентский счёт» переставала
   помещаться в свои 33% и наезжала на номер счёта. */
@media (min-width: 1200px) {
	body.ison-cabinet .ison-requisites .ison-table--req td:first-child {
		/* 33% от 872 = 288: значение встаёт на 601 при макетных 608 */
		width: 33%;
	}

	body.ison-cabinet .ison-requisites .ison-table--req td:last-child {
		width: 67%;
	}
}

/* ⛔ Замер чернил на макете 13: «Юридический адрес» 147×16, значение адреса 374×16,
   у нас было 117×11 и 300×12 - вся таблица набиралась на 20% мельче. Правая карточка
   при этом совпадала (заголовок 178 против 179), то есть дело не в шрифте страницы. */
/* ⛔ Шаг строк держим 35 px, как на макете (там 34-36). При `height: 34px` вместе с
   полем 8+8 и кеглем 16 фактический шаг выходил 41, таблица вырастала на 80 px,
   и карточка переставала помещаться в первый экран. */
body.ison-cabinet .ison-requisites .ison-table--req td {
	padding: 5px 8px;
	line-height: 24px;
	box-sizing: border-box;
	font-size: 16px;
}

/* ⛔ На узком экране подпись «Корреспондентский счёт» не помещалась в свою колонку и
   наезжала на номер счёта. Разрешаем ей перенос - но не по слогам: тема Electro иначе
   рвёт слова по буквам. */
body.ison-cabinet .ison-requisites .ison-table--req td:first-child {
	white-space: normal;
	word-break: keep-all;
}

/* ⛔ На телефоне две колонки в строку не помещаются: подпись «Корреспондентский счёт»
   и номер счёта накладывались друг на друга (замер на 375 px). Складываем строку
   в одну колонку - подпись сверху, значение под ней. */
@media (max-width: 600px) {
	body.ison-cabinet .ison-requisites .ison-table--req tr {
		display: block;
		padding: 8px 0;
		border-bottom: 1px solid var(--ison-line, #e6e8ee);
	}

	body.ison-cabinet .ison-requisites .ison-table--req td {
		display: block;
		width: auto;
		height: auto;
		padding: 2px 8px;
		border: 0;
	}

	body.ison-cabinet .ison-requisites .ison-table--req td:first-child {
		font-size: 14px;
		color: #6b7280;
	}
}

/* последняя строка таблицы на макете тоже подчёркнута - 14 линеек, а не 13 */
body.ison-cabinet .ison-requisites .ison-table--req tr:last-child td {
	border-bottom: 1px solid var(--ison-line, #e6e8ee);
}

/* колонки на макете кончаются вровень (901 и 892), у нас правая обрывалась на 140 выше */
body.ison-cabinet .ison-requisites .ison-order__grid,
body.ison-cabinet .ison-letter__grid {
	align-items: stretch;
}

body.ison-cabinet .ison-requisites .ison-order__side,
body.ison-cabinet .ison-letter__aside {
	height: 100%;
	box-sizing: border-box;
}

/* ⛔ Колонка - сетка: одной высоты 100% мало, карточка внутри всё равно тянется по
   содержимому. Растягиваем и ряды, и саму карточку. */
body.ison-cabinet .ison-requisites .ison-order__side {
	grid-template-rows: 1fr;
	align-items: stretch;
}

body.ison-cabinet .ison-requisites .ison-order__side > .ison-panel {
	height: 100%;
	box-sizing: border-box;
}

/* поля карточки: на макете от верха до заголовка 26 px и кнопка начинается на 15 */
body.ison-cabinet .ison-requisites .ison-order__grid > .ison-panel {
	padding: 22px 32px 26px;
}

body.ison-cabinet .ison-requisites .ison-panel__head {
	margin-bottom: 10px;
}

/* ─────────── Часть 11: общая сверка, находки по экранам 02, 09, 10, 11 ───────────
   Замеры макетов: плашки фактов на 10 - кружок 66 и значок 36 (у нас были 43 и 18);
   значок воспроизведения в кнопке «Приступить к тесту» - круг 48 слева от надписи;
   вкладки-фильтры на 04 и 09 - голубые прямоугольники (скругление около 4 px,
   заливка #e0edfc), а не белые пилюли с серой обводкой. */
body.ison-cabinet .ison-cert-fact__icon {
	width: 66px;
	height: 66px;
	flex: 0 0 66px;
}

/* та же причина, что и у преимуществ: рисунок занимает часть поля, коробка больше */
body.ison-cabinet .ison-cert-fact__icon svg {
	width: 50px;
	height: 50px;
}

/* значки трёх верхних карточек «Как это работает» - тоже до макетных 34-43 */
body.ison-cabinet .ison-certificate .ison-benefits__icon .ison-svg,
body.ison-cabinet .ison-benefit-card .ison-benefits__icon .ison-svg {
	width: 46px;
	height: 46px;
}

/* ⛔ Звезда в карточке «Развитие профессиональных навыков» рисуется в поле плотнее
   остальных: при общей коробке 46 она выходила 32×30 при макетных 43×39. */
body.ison-cabinet .ison-benefit-card:nth-child(3) .ison-benefits__icon .ison-svg {
	width: 58px;
	height: 58px;
}

/* ⛔ Замер макета 10: кнопка «Приступить к тесту» 556 px шириной, у нас со значком
   воспроизведения вышло 620 - она переставала помещаться в первый экран вместе
   с подписью под ней. */
body.ison-cabinet .ison-test-start .ison-btn--big {
	width: 556px;
	max-width: 100%;
	box-sizing: border-box;
}

/* ⛔ На телефоне `max-width: 100%` кнопку не спасает: её распирает содержимое
   (значок 48 px + надпись + стрелка), и страница ехала вбок - 599 px при экране 375.
   Ниже 600 px отпускаем ширину и уменьшаем значок. */
@media (max-width: 600px) {
	body.ison-cabinet .ison-test-start .ison-btn--big {
		width: 100%;
		min-width: 0;
		padding-left: 12px;
		padding-right: 12px;
		font-size: 15px;
	}

	body.ison-cabinet .ison-btn__play svg {
		width: 26px;
		height: 26px;
	}

	body.ison-cabinet .ison-test-start__note {
		max-width: 100%;
	}
}

body.ison-cabinet .ison-btn__play {
	display: inline-flex;
	align-items: center;
	margin-right: 10px;
}

body.ison-cabinet .ison-btn__play svg {
	width: 48px;
	height: 48px;
}

/* ⛔ Макет 11: буква варианта сидит в СЕРОМ КРУГЕ (фон (243,248,251)), а у нас была
   в голубом квадрате со скруглением. */
body.ison-cabinet .ison-test__letter {
	border-radius: 50%;
	background: #f3f8fb;
}

body.ison-cabinet .ison-chip {
	border-radius: 4px;
	background: #e0edfc;
	border-color: #e0edfc;
	color: #16307a;
}

body.ison-cabinet .ison-chip.is-current {
	background: var(--ison-orange, #f2551b);
	border-color: var(--ison-orange, #f2551b);
	color: #fff;
}

/* ⛔ Главная, макет 02: подписи плиток тёмно-синие ((65,49,149) и (38,37,152)), у нас
   были серые (125,127,147); значок преимущества 28 px при кружке 51, у нас 26 при 53;
   значок монет 32×35 в круге 55, у нас был 18×20. Под ссылкой «Условия программы»
   на макете сплошная оранжевая линия во всю ширину надписи. */
/* ⛔ Только плитки показателей на ГЛАВНОЙ: класс `ison-tile__label` носит ещё и подпись
   «Обучающий курс» на странице обучения, а она по макету 09 оранжевая - общее правило
   перекрасило её в тёмно-синий. */
body.ison-cabinet .ison-dash-stats .ison-tile__label,
body.ison-cabinet .ison-tile--discount .ison-tile__label,
body.ison-cabinet .ison-tile--turnover .ison-tile__label {
	color: #32366f;
}

/* ⛔ РИСУНОК внутри значка занимает лишь часть своего поля, поэтому объявленные
   28 px давали на экране 17-22 при макетных 28-33. Коробку берём примерно в 1,4 раза
   больше нужного рисунка - тогда сам рисунок выходит в размер макета. */
body.ison-cabinet .ison-benefits__icon .ison-svg {
	width: 40px;
	height: 40px;
}

body.ison-cabinet .ison-tile--turnover .ison-tile__icon svg,
body.ison-cabinet .ison-tile__icon--coins svg {
	width: 46px;
	height: 46px;
}

/* кружки плиток на макете одинаковые: 56-57 у скидки и у оборота */
body.ison-cabinet .ison-tile--turnover .ison-tile__icon,
body.ison-cabinet .ison-tile--discount .ison-tile__icon {
	width: 56px;
	height: 56px;
	flex: 0 0 56px;
}

/* ⛔ Сумма оборота была почти чёрной (51,62,72), на макете она синяя (0,0,138) -
   цвет стоял только у плитки скидки. */
body.ison-cabinet .ison-tile--turnover .ison-tile__value {
	color: #000d8a;
}

body.ison-cabinet .ison-tile__link,
body.ison-cabinet .ison-tile a.ison-link {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ⛔ Замер макета 02: плашка «Подобрать оборудование ISON» 253×207, и снимок камер -
   это ФОН ВСЕЙ плашки, а не полоска сверху: заголовок и ссылка лежат поверх него.
   Полоской выходило 213×52 и ниже 136 px пустого голубого поля. */
body.ison-cabinet .ison-side-banner {
	position: relative;
	overflow: hidden;
	min-height: 207px;
	box-sizing: border-box;
	/* ⛔ Снимок идёт до самого низа плашки, как на макете: раньше он занимал верхние
	   72 px из 207, а ниже была ровная заливка. Затемняющий слой оставляем лёгким,
	   чтобы текст читался поверх фотографии. */
	background-image: linear-gradient(180deg, rgba(232, 243, 253, 0.12) 0%, rgba(232, 243, 253, 0.86) 46%, rgba(232, 243, 253, 0.94) 100%),
		url('../img/side-banner-cameras.jpg');
	background-repeat: no-repeat, no-repeat;
	background-size: 100% 100%, cover;
	background-position: center, center top;
}

/* сама картинка в разметке больше не нужна - её место занял фон */
body.ison-cabinet .ison-side-banner__photo {
	display: none;
}

/* ⛔ Замер макета 02: «Добро пожаловать, Алексей!» стоит в ОДНУ строку шириной 618 px
   при высоте букв 30. У нас тот же кегль, что на разделах (35 px), давал 320 px на
   одно слово «Добро пожаловать,» - строка ломалась надвое, и весь кабинет съезжал вниз.
   На макете заголовок главной мельче заголовков разделов - так и делаем. */
body.ison-cabinet .ison-dash-head__text .ison-page__title {
	font-size: 29px;
	line-height: 1.15;
	white-space: nowrap;
	margin-bottom: 6px;
}

/* плашка уровня: ширина по макету 214, а не 240; обе плашки шапки одной высоты 61
   и стоят по одной линии - у нас правая торчала на 14 px вверх и вниз */
body.ison-cabinet .ison-dash-next {
	min-width: 214px;
	max-width: 232px;
}

/* ⛔ Замер: на макете заголовок главной начинается на 153, первая карточка - на 291
   (между ними 138). У нас выходило 171 и 353, то есть ряд карточек стоял на 62 px ниже.
   Снимаем лишний воздух над заголовком и под шапкой. */
body.ison-cabinet .ison-dash-head {
	align-items: flex-start;
	margin-bottom: 0;
}

body.ison-cabinet .ison-dash .ison-dash-head__text {
	padding-top: 0;
}

body.ison-cabinet .ison-dash-head__text .ison-page__lead {
	margin-bottom: 0;
}

body.ison-cabinet .ison-dash-status,
body.ison-cabinet .ison-dash-next {
	align-self: flex-start;
}

/* плашка уровня по макету 02: 214×60, поля 8 и 7, нижняя строка - в две колонки */
body.ison-cabinet .ison-dash-next {
	padding: 8px 14px 7px;
	gap: 6px;
}

body.ison-cabinet .ison-dash-next__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

/* ⛔ «Осталось 922 000 ₽» ломалось на две строки и растило плашку; на макете это
   одна строка. Заголовок уровня тоже держим в одну строку - у нас название уровня
   длиннее макетного («ISON BUSINESS» против «ISON PRO»). */
body.ison-cabinet .ison-dash-next__left {
	white-space: nowrap;
	font-size: 12.5px;
}

/* ⛔ Заголовку перенос ОСТАВЛЯЕМ: у нас следующий уровень называется длиннее макетного
   («ISON BUSINESS» против «ISON PRO»), и с запретом переноса название обрезалось
   на полуслове - это хуже лишних 20 px высоты. */
body.ison-cabinet .ison-dash-next__title {
	white-space: normal;
	word-break: keep-all;
	font-size: 13px;
	line-height: 1.25;
}

body.ison-cabinet .ison-dash-next__row .ison-link {
	white-space: nowrap;
}

/* ⛔ Прежнее правило для отдельной картинки УБРАНО целиком: оно стояло ниже по файлу
   и перебивало `display: none`, из-за чего поверх фона оставалась вторая копия камер
   с прямым швом поперёк. Снимок теперь только фоном плашки. */

/* ─────────── Часть 10: подсказка после регистрации по макету 15 ───────────
   Свой замер макета: страница затемнена (фон под пеленой уходит в ~(61,79,105)),
   пункт «Обучение» подсвечен белым (x 30..256, y 520..558), от него идёт оранжевая
   стрелка 75×29 (x 201..275), карточка 460×117 стоит с 270 по 730. */
body.ison-cabinet .ison-hint-veil {
	position: fixed;
	inset: 0;
	z-index: 900;
	/* ⛔ Замер: на макете затемнённый фон уходит в (83,95,104), у нас при 0,55 выходило
	   (118,125,138) - заметно светлее. */
	background: rgba(12, 26, 48, 0.68);
}

body.ison-cabinet .ison-hint {
	position: fixed;
	/* ⛔ Выше подсвеченного пункта меню (902): карточка создаёт свой контекст наложения,
	   и стрелка внутри неё не может перебить пункт собственным z-index - сравнивается
	   вся карточка целиком. При 901 пункт закрывал стрелку, оставляя от неё кончик. */
	z-index: 905;
	display: flex;
	align-items: center;
	/* ⛔ У базовой плашки стоит `flex-wrap: wrap`, и текстовый блок, не умея сжиматься,
	   переносился ПОД значок: карточка вырастала со 117 до 197 px. */
	flex-wrap: nowrap;
	gap: 18px;
	width: 460px;
	max-width: calc(100vw - 32px);
	min-height: 117px;
	margin: 0;
	padding: 18px 34px 18px 22px;
	border: 0;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 18px 46px rgba(10, 24, 46, 0.28);
}

/* хвостик от прежнего вида не нужен: на макете к карточке идёт нарисованная стрелка */
body.ison-cabinet .ison-hint::before {
	display: none;
}

body.ison-cabinet .ison-hint__arrow {
	position: absolute;
	left: -78px;
	/* ⛔ Остриё нарисовано в ВЕРХНЕЙ части картинки (на 11 px ниже верха коробки).
	   Карточка привязана к верху пункта меню, пункт приходится на 39 px от её верха -
	   значит коробку стрелки ставим так, чтобы остриё село ровно туда. */
	top: calc(50% - 9px);
	transform: translateY(-50%);
	display: block;
	width: 86px;
	height: 42px;
	/* ⛔ Подсвеченный пункт меню поднят на 902, и он закрывал собой левую половину
	   стрелки - от неё оставался только кончик. Стрелка должна лежать ПОВЕРХ строки,
	   как на макете, где её остриё заходит на пункт. */
	z-index: 903;
}

body.ison-cabinet .ison-hint__arrow img {
	display: block;
	width: 86px;
	height: 42px;
}

body.ison-cabinet .ison-hint__icon {
	width: 64px;
	height: 64px;
	flex: 0 0 64px;
	border-radius: 50%;
	background: #fdeadf;
	color: #f2551b;
}

body.ison-cabinet .ison-hint > div {
	flex: 1;
	min-width: 0;
	/* ⛔ Оставляем место под крестик: он висит в правом верхнем углу карточки, и когда
	   заголовок идёт одной строкой, они пересекались - проверка регистрации это ловит
	   на всех ширинах. На макете крестик стоит правее последней буквы заголовка. */
	padding-right: 26px;
	box-sizing: border-box;
}

/* ⛔ Размеры подобраны по ШИРИНЕ надписей на макете 15: заголовок занимает там 300 px
   в ОДНУ строку (высота букв 22), подпись - две строки по ~314. При 19 px заголовок
   не влезал в свои 310 и уходил на вторую строку, а подпись - на третью: карточка
   вырастала со 117 до 162 px. */
body.ison-cabinet .ison-hint strong {
	display: block;
	font-size: 17px;
	line-height: 23px;
	margin-bottom: 6px;
	color: #0b1c4b;
	white-space: nowrap;
}

/* ⛔ На телефоне карточка узкая, и заголовок в одну строку (nowrap) заезжал под крестик.
   Ниже 600 px разрешаем ему перенос - но не по слогам: тема рвёт слова по буквам. */
@media (max-width: 600px) {
	body.ison-cabinet .ison-hint strong {
		white-space: normal;
		word-break: keep-all;
	}
}

body.ison-cabinet .ison-hint div > span {
	display: block;
	/* подпись на макете идёт В ДВЕ строки; при 14,5 px в наши 310 px она не влезала
	   и уходила на третью, из-за чего карточка была 132 вместо 117 */
	font-size: 13.5px;
	line-height: 20px;
	color: #53617f;
}

/* ⛔ Замер макета 15: строка «Обучение» подсвечена ОРАНЖЕВЫМ (по строке идут (183,59,12),
   (185,58,14), (252,109,12)), а текст и значок на ней БЕЛЫЕ. Я сначала сделал наоборот -
   белую строку с тёмным текстом. */
/* ⛔ Свой перемер макета по строке пункта: слева (240,75,18), на 150 - (105,37,12),
   на 210 - (73,35,16), у правого края (11,20,23). То есть подсветка ГАСНЕТ вправо,
   растворяясь в панели, а не идёт ровной оранжевой полосой до края. */
body.ison-cabinet .ison-menu__item.is-hint {
	position: relative;
	z-index: 902;
	background: linear-gradient(90deg, #f04b12 0%, #b4310c 42%, #4a2410 76%, rgba(11, 20, 23, 0) 96%);
	color: #fff;
}

body.ison-cabinet .ison-menu__item.is-hint .ison-menu__icon,
body.ison-cabinet .ison-menu__item.is-hint .ison-menu__title {
	color: #fff;
}

/* ─────────── Часть 10: «Написать руководство» по макету 14 ───────────
   Свой замер макета: левая карточка 810 (284..1093), правая с 1109; содержимое там 1222,
   у нас 1238 - держим долю 810/1222. Подзаголовок идёт в ДВЕ строки (652 и 720 px),
   заголовок формы шириной 262 при высоте букв 25, заголовок правой карточки 329/22,
   иллюстрация-конверт 303×160, кружки значков 60 px, кнопка отправки 332×57. */
@media (min-width: 1200px) {
	/* доли с макета 14: 810 к 393 (пиксели не годятся - см. соседний блок) */
	body.ison-cabinet .ison-letter__grid {
		grid-template-columns: minmax(0, 810fr) minmax(0, 393fr);
		gap: 19px;
	}
}

body.ison-cabinet .ison-letter > .ison-page__lead {
	max-width: 1010px;
	font-size: 17.5px;
	line-height: 24px;
}

body.ison-cabinet .ison-letter__form .ison-panel__title {
	font-size: 22px;
}

body.ison-cabinet .ison-letter__art {
	display: block;
	width: 310px;
	max-width: 100%;
	height: auto;
	margin: 0 0 18px;
	padding: 0;
	background: none;
	border-radius: 0;
}

body.ison-cabinet .ison-letter__art img {
	display: block;
	width: 310px;
	max-width: 100%;
	height: auto;
}

body.ison-cabinet .ison-letter__aside .ison-panel__title {
	font-size: 21px;
	line-height: 27px;
}

/* ⛔ Замер макета 14: кружки значков 60 px, а линия-разделитель ОДНА - под абзацем
   перед первым пунктом; между самими пунктами линий нет. У нас было наоборот:
   кружки 38 и линия перед каждым пунктом, кроме первого. */
body.ison-cabinet .ison-letter__point {
	border-top: 0;
	margin-top: 18px;
	padding-top: 0;
	gap: 16px;
	align-items: start;
}

body.ison-cabinet .ison-letter__point:first-of-type {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid #d5e3f6;
}

body.ison-cabinet .ison-letter__point-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	flex: 0 0 60px;
}

/* ⛔ Замер макета 14: значки пунктов ТЁМНО-СИНИЕ (самый тёмный пиксель (1,5,101)) и
   контурные, рисунок 26-29 px. У нас они выходили серыми (74,79,90) - базовый цвет
   #2f6fd0 перебивался общим правилом значков кабинета - и залитыми. */
body.ison-cabinet .ison-letter__point-icon {
	color: #0a1b6e;
}

body.ison-cabinet .ison-letter__point-icon svg {
	width: 34px;
	height: 34px;
	color: #0a1b6e;
}

body.ison-cabinet .ison-letter .ison-btn--primary {
	width: 332px;
	height: 57px;
	box-sizing: border-box;
}

/* ⛔ Замер макета 14: поля формы залиты голубым (238,245,252) с рамкой (216,227,245),
   у нас они были белые. Уголок растягивания у поля сообщения на макете тоже отсутствует. */
body.ison-cabinet .ison-letter input[type="text"],
body.ison-cabinet .ison-letter input[type="email"],
body.ison-cabinet .ison-letter input[type="tel"],
body.ison-cabinet .ison-letter select,
body.ison-cabinet .ison-letter textarea {
	background: #eef5fc;
	border-color: #d8e3f5;
}

body.ison-cabinet .ison-letter textarea {
	resize: none;
}

/* ⛔ Подпись «Можно прикрепить до 5 файлов…» на макете обычного начертания
   (плотность заливки букв 0,144 против нашей 0,316) - жирность приходила из темы. */
body.ison-cabinet .ison-letter__files-text span {
	font-weight: 400;
}

/* Правая карточка «Зачем указывать реквизиты?» по макету 13: фон светло-серый,
   контурный значок 60 px с оранжевой шестерёнкой, заголовок в две строки,
   абзац и отделённая тонкой линией строка про защиту данных (не жирная). */
body.ison-cabinet .ison-requisites__why {
	background: #f2f4f8;
	border: 0;
	padding: 28px 26px;
	box-sizing: border-box;
}

/* ⛔ Рисунок занимает по ширине лишь 18,5 из 24 единиц поля значка, поэтому коробка 60
   давала чернила 48×52 при макетных 61×60. Коробка 78 даёт рисунок ровно ~60×64. */
body.ison-cabinet .ison-requisites__why .ison-requisites__icon {
	display: block;
	width: 78px;
	height: 78px;
	margin-bottom: 18px;
	background: none;
	color: #334a7a;
}

body.ison-cabinet .ison-requisites__why .ison-panel__title {
	font-size: 21px;
	line-height: 27px;
	margin-bottom: 14px;
}

body.ison-cabinet .ison-requisites__why .ison-order__address {
	font-size: 15px;
	line-height: 24px;
	color: #53617f;
}

body.ison-cabinet .ison-requisites__safe {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	column-gap: 12px;
	align-items: start;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #dfe4ec;
	font-size: 14px;
	line-height: 22px;
	color: #53617f;
	font-weight: 400;
}

/* ⛔ Замер макета 13: РИСУНОК щита 27×33 и цвет у него тёмный (71,81,112).
   Коробка 27×33 этого не даёт: щит нарисован в квадратном поле 24×24 и занимает в нём
   14,8×18,4, поэтому при равномерном масштабе видимый рисунок выходил 19×23, а лишняя
   высота уходила в пустые поля. Коробка 44 px даёт рисунок ровно 27×34. */
body.ison-cabinet .ison-requisites__safe svg {
	width: 44px;
	height: 44px;
	color: #4a5b8b;
}

/* ⛔ Коробка 44 при рисунке 30 добавляет 7 px пустого поля с каждой стороны, и вместе
   с промежутком 12 текст уезжал на 55 от края колонки при макетных 43. Сжимаем колонку
   до 32 и убираем промежуток - текст встаёт на своё место. */
body.ison-cabinet .ison-requisites__safe {
	grid-template-columns: 32px minmax(0, 1fr);
	column-gap: 11px;
}

body.ison-cabinet .ison-requisites__safe svg {
	margin-left: -6px;
}

/* Плашка-подсказка макета 13: круглый синий значок 48 px, текст в две строки
   тёмно-синим #021791, высота букв 18, шаг строк 26, плашка 88 px высотой. */
body.ison-cabinet .ison-requisites .ison-info-block--req {
	display: flex;
	align-items: center;
	gap: 22px;
	min-height: 88px;
	padding: 16px 24px;
	box-sizing: border-box;
	/* ⛔ Замер: на макете плашка (230,241,253) заметно синее фона страницы (242,248,254),
	   у нас была (242,247,253) и почти сливалась с фоном. */
	background: #e6f1fd;
	border-color: #cfe2f7;
}

/* на макете текст плашки занимает 744 px и обрывается после слова «данные»,
   а у нас растягивался на 1095 - до самого края */
body.ison-cabinet .ison-requisites .ison-info-block--req > div {
	max-width: 760px;
}

body.ison-cabinet .ison-requisites .ison-info-block--req .ison-info-block__icon {
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	border-radius: 50%;
	background: #003dc2;
	color: #fff;
}

/* ⛔ У плашки `flex-wrap: wrap`, а текстовая обёртка по умолчанию не сжимается: она
   занимала всю ширину, не влезала рядом со значком и переносилась ПОД него - плашка
   вырастала со 88 до 160 px. */
body.ison-cabinet .ison-requisites .ison-info-block--req > div {
	flex: 1;
	min-width: 0;
}

body.ison-cabinet .ison-requisites .ison-info-block--req strong {
	display: block;
	/* при 19 px фраза не помещалась в макетные две строки и уходила на третью */
	font-size: 17px;
	line-height: 26px;
	/* ⛔ На макете этот текст ОБЫЧНОГО начертания (плотность заливки букв 0,205 против
	   0,281 у нашего полужирного). Из-за лишней жирности он не влезал в две строки,
	   и плашка вырастала с 88 до 116 px. */
	font-weight: 400;
	color: #021791;
}

body.ison-cabinet .ison-test__tips li::before {
	content: '';
	width: 24px;
	height: 24px;
	margin: 0;
	border-radius: 50%;
	background: #fb4515 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9.4 16.6 4 11.2' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px 15px no-repeat;
}

/* ===== Правки по видео заказчика от 16.09.2026, часть 12 =====
   Баннер «Создавайте проекты» на главной. Заказчик: «здесь просто вырезан кусок,
   прямоугольный кусок и уродливо вставлен… это цельный единый банер с подложкой,
   без каких-либо обрезок, картинка прям земля и небо»; «размер тоже не соответствует,
   здесь огромный у вас»; «межстрочный интервал, здесь он у вас большой».

   Числа - свой замер макета «02 Личный кабинет.png», область баннера (275,599)-(1252,750):
   сам баннер 977x151; заголовок - строки 226 и 313 px, шаг строк 28; подзаголовок -
   строки 303 и 192 px, шаг строк 16; кнопки 166x37 и 202x36, зазор 12, верх на 105
   от верха баннера; левое поле 19. */

body.ison-cabinet .ison-promo {
	display: block;
	/* пропорция макета вместо жёсткой высоты: на узком экране баннер сжимается вместе
	   с картинкой и не разъезжается */
	aspect-ratio: 977 / 151;
	min-height: 0;
	padding: 5px 19px 9px;
	/* картинка - фон ВСЕГО блока (адрес подставляет шаблон, чтобы работала настройка
	   заказчика); 100% 100% вместо cover: пропорция блока уже равна пропорции картинки,
	   а cover обрезал бы края при округлении высоты */
	background-color: #dce7f3;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	border-radius: 12px;
	overflow: hidden;
}

body.ison-cabinet .ison-promo__text {
	position: relative;
	z-index: 2;
	max-width: 420px;
}

body.ison-cabinet .ison-promo__title {
	display: block;
	margin: 0;
	font-size: 23px;
	line-height: 28px;
	/* Golos Text шире шрифта макета: без просвета строка выходила 247 px вместо 226 */
	letter-spacing: -0.2px;
	color: #101875;
}

body.ison-cabinet .ison-promo__lead {
	display: block;
	margin: 4px 0 0;
	max-width: 330px;
	font-size: 13.5px;
	/* было 24 px - именно этот зазор заказчик назвал «огромным» */
	line-height: 16px;
	color: #2f3c5c;
}

body.ison-cabinet .ison-promo__buttons {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	margin-top: 8px;
}

/* Поля кнопок сняты с макета по отдельности: у оранжевой они шире (23 слева, 19 справа,
   просвет до надписи 17), у светлой уже (14 и 12, просвет 12). Из-за общего поля 18 px
   светлая кнопка выходила 250 px вместо 202. */
body.ison-cabinet .ison-promo__buttons .ison-btn {
	height: 37px;
	min-height: 0;
	gap: 12px;
	padding: 0 12px 0 14px;
	font-size: 11.5px;
	letter-spacing: -0.2px;
	line-height: 1;
	border-radius: 8px;
	white-space: nowrap;
}

body.ison-cabinet .ison-promo__buttons .ison-btn--primary {
	gap: 17px;
	padding: 0 19px 0 23px;
}

/* ⛔ Пропорция баннера верна только для широкой раскладки кабинета (от 1200 px, граница
   темы Electro). Ниже колонка содержимого узкая, и при той же пропорции высота падает
   до 108 px - заголовок, подзаголовок и кнопки (133 px вместе) туда не помещаются. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-promo {
		aspect-ratio: auto;
		min-height: 152px;
		padding: 14px 16px;
		background-size: cover;
		background-position: center right;
	}
}

/* На телефоне картинка уходит в подложку светлее, иначе надписи ложатся на тёмный
   регистратор и теряют контраст. */
@media (max-width: 600px) {
	body.ison-cabinet .ison-promo {
		background-image: none !important;
		background-color: #eaf2fb;
	}

	body.ison-cabinet .ison-promo__buttons {
		flex-wrap: wrap;
	}

	/* ⛔ Кнопки баннера по макету 37 px высотой, но на телефоне это меньше порога
	   удобного нажатия (40) - прогон по ширинам ловил их как провал. На узком экране
	   пропорция баннера всё равно отключена, поэтому высоту возвращаем к 44. */
	body.ison-cabinet .ison-promo__buttons .ison-btn {
		height: 44px;
		font-size: 13px;
		padding: 0 16px;
	}
}

/* Интерактивность меню. Заказчик на видео 16.09: «они должны вот так подсвечиваться
   оранжевым, у вас оно не подсвечивается оранжевым». Раньше наведение давало
   rgba(255,255,255,0.05) - на тёмной панели этого почти не видно.
   Плашка повторяет активный пункт по полям (10 слева, 12 справа) и скруглению 10,
   но заливка приглушена, чтобы текущий раздел оставался заметнее наведённого. */
body.ison-cabinet .ison-menu .ison-menu__item:hover,
body.ison-cabinet .ison-menu .ison-menu__item:focus-visible {
	margin: 0 12px 0 10px;
	border-radius: 10px;
	background: linear-gradient(90deg, rgba(246, 72, 10, 0.78) 0%, rgba(126, 42, 7, 0.6) 58%, rgba(1, 20, 26, 0.2) 100%);
	color: #fff;
}

/* у активного пункта наведение ничего не меняет - он и так оранжевый */
body.ison-cabinet .ison-menu .ison-menu__item.is-active:hover {
	background: linear-gradient(90deg, #f6480a 0%, #7e2a07 58%, #01141a 100%);
}

/* Блок «Ваши преимущества с ISON». Заказчик на видео 16.09: «размер шрифта, вот этот
   межстрочный интервал, здесь он у вас большой, в образце маленький».
   Замер макета 02: карточка 253, поля 13 слева и 8 справа, кружок значка 53, просвет
   до текста 10, колонка текста 172; заголовок карточки - строка 227 px; заголовок
   пункта - 105 px («Качественное оборудование» 162 и умещается в ОДНУ строку);
   описание - шаг строк 18, строки 96 и 113; цвета: заголовки #0c0c96, описание #6370d0. */
body.ison-cabinet .ison-benefits {
	padding: 14px 8px 14px 13px;
}

body.ison-cabinet .ison-benefits .ison-panel__title {
	margin: 0 0 18px;
	font-size: 16.3px;
	line-height: 24px;
	color: #0c0c96;
}

body.ison-cabinet .ison-benefits__list > li {
	gap: 10px;
	align-items: flex-start;
}

body.ison-cabinet .ison-benefits__text {
	/* ⛔ без этой пары гибкий текст не сжимается и «Качественное оборудование»
	   переносится на вторую строку, растягивая пункт */
	flex: 1;
	min-width: 0;
}

body.ison-cabinet .ison-benefits__text strong {
	font-size: 11.3px;
	line-height: 17px;
	color: #0c0c96;
}

body.ison-cabinet .ison-benefits__text > span {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	/* было 24 px - именно этот зазор назван «большим» */
	line-height: 18px;
	color: #6370d0;
}

/* Нижняя плашка «Подобрать оборудование ISON». Заказчик 16.09: «здесь банер так
   выглядит, у вас он вот так, криво… этот квадрат не соответствует».
   ⛔ Прошлый вариант (фотография фоном ВСЕЙ плашки под полупрозрачной заливкой) давал
   бледные размытые камеры. На макете камеры ЧЁТКИЕ вверху и растворяются в белый,
   а текст лежит на белом фоне.
   Замер макета 02: плашка 253x201; кадр камер занимает верхние 77; текст с левым полем 29
   и правым 59; заголовок в две строки с шагом 23; текст в три строки с шагом 18. */
body.ison-cabinet .ison-side-banner {
	min-height: 201px;
	/* правое поле 36 - по ЗАГОЛОВКУ макета (он доходит до 1487 при плашке до 1523);
	   у текста поле больше просто потому, что строки короче */
	padding: 80px 36px 14px 29px;
	background-color: #fff;
	background-image: url('../img/side-banner-top.jpg');
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% auto;
}

body.ison-cabinet .ison-side-banner strong {
	display: block;
	/* при 19 px «оборудование ISON» не помещалось в строку и заголовок шёл в три */
	font-size: 16px;
	line-height: 23px;
	color: #0c0c96;
}

body.ison-cabinet .ison-side-banner span {
	display: block;
	margin-top: 9px;
	/* ширина колонки взята с макета (текст доходит до 1464 при левом крае 1300),
	   чтобы фраза ложилась в те же три строки */
	max-width: 165px;
	font-size: 13.5px;
	line-height: 18px;
	color: #0c0c96;
}

body.ison-cabinet .ison-side-banner .ison-btn__arrow {
	display: inline;
	margin-left: 6px;
	color: #fb4515;
	font-weight: 700;
}

/* Шапка главной и карточки статистики - по видео заказчика 16.09: «здесь другой шрифт,
   огромный зазор, здесь маленький зазор и цвет определенный», «размер тоже не
   соответствует, здесь огромный у вас».
   Замер макета 02: «Добро пожаловать, Алексей!» жирный тёмно-синий; подпись плитки
   «Ваша партнёрская скидка» жирная тёмно-синяя (строка 140 px); «12 заказов»
   сине-фиолетовые (86,95,204); заголовок плашки уровня - в ОДНУ строку; шкала
   тёмно-бирюзовая (7,92,122) высотой 7 px, а не оранжевая. */
body.ison-cabinet .ison-dash-head__text .ison-page__title {
	font-weight: 700;
	color: #0c0c96;
}

body.ison-cabinet .ison-dash-head__text .ison-page__lead {
	color: #17308f;
}

/* ⛔ Уточнение `.ison-tiles` обязательно: голый `.ison-tile__label` в прошлом круге
   перекрасил подпись «Обучающий курс» на странице обучения, а она по макету оранжевая. */
body.ison-cabinet .ison-tiles .ison-tile__label {
	font-weight: 700;
	color: #0c0c96;
}

body.ison-cabinet .ison-tiles .ison-tile__orders {
	color: #565fcc;
}

body.ison-cabinet .ison-dash-next__title {
	/* «ISON BUSINESS» длиннее макетного «ISON PRO» и ломало строку надвое,
	   плашка вырастала - заказчик отдельно просил, чтобы блоки не увеличивались */
	white-space: nowrap;
	font-size: 12px;
	color: #0c0c96;
}

body.ison-cabinet .ison-dash-next__bar {
	height: 7px;
	background: #e7eef5;
}

body.ison-cabinet .ison-dash-next__bar i {
	background: #075c7a;
}

body.ison-cabinet .ison-dash-next__left {
	color: #0c0c96;
}

/* Кегли плиток по замеру макета 02: строка «Ваша партнёрская скидка» 140 px
   (при 12 px выходило 155), число «15%» - ширина 56 и высота букв 23
   (при 24 px было 47 и 17). */
body.ison-cabinet .ison-tiles .ison-tile__label {
	font-size: 10.8px;
}

body.ison-cabinet .ison-tiles .ison-tile__value {
	/* ⛔ Кегль 30 px попадал в макетную ширину «15%», но длинная сумма оборота
	   «1 578 000 ₽» (на копии она больше макетных 550 000) вылезала за край плитки
	   даже на 1536 - на 13 px, и знак рубля закрывала соседняя плитка. 26 px оставляет
	   ширину «15%» в допуске макета (51 px при макетных 56±8) и держит сумму внутри. */
	font-size: 28px;
	line-height: 1.15;
	white-space: nowrap;
}

/* Карточка менеджера на главной - по макету 02 (замер и пипетка):
   значки телефонов и почты красно-оранжевые (#fb4515), а не синие; имя менеджера
   жирное тёмно-синее; обе кнопки БЕЛЫЕ с цветной рамкой, цвет только у кружка значка
   (у нас WhatsApp была сплошной зелёной плашкой). */
body.ison-cabinet .ison-tile--manager .ison-manager__row svg {
	color: #fb4515;
}

body.ison-cabinet .ison-tile--manager .ison-manager__row {
	color: #0c0c96;
}

body.ison-cabinet .ison-manager__name {
	font-weight: 700;
	color: #0c0c96;
}

body.ison-cabinet .ison-tile--manager .ison-manager__info .ison-tile__label {
	font-weight: 700;
	color: #0c0c96;
}

body.ison-cabinet .ison-tile--manager .ison-msg {
	background: #fff;
	color: #0c0c96;
}

body.ison-cabinet .ison-tile--manager .ison-msg--tg {
	border: 1px solid #7fb6f5;
}

body.ison-cabinet .ison-tile--manager .ison-msg--wa {
	border: 1px solid #63c884;
}

/* заголовок плашки уровня: «ISON BUSINESS» длиннее макетного «ISON PRO» и при 12 px
   не помещался в строку целиком - обрезался многоточием */
body.ison-cabinet .ison-dash-next__title {
	font-size: 10.5px;
}

body.ison-cabinet .ison-dash-next__row {
	font-size: 11px;
}

/* ⛔ БЛОКЕР приёмки части 12: пропорция баннера верна только когда колонка широкая.
   В окне 1200-1469 px (ноутбук 1366 - прямо в ТЗ) высота считалась от ширины колонки
   и выходила меньше содержимого: кнопки «Создать проект» и «Подобрать готовое решение»
   обрезались снизу на 12-38 px, а при 1200-1265 их не было видно вовсе.
   Лечение: нижняя граница высоты по содержимому. Пропорцию держит aspect-ratio,
   но min-height не даёт блоку стать ниже своих же кнопок. */
body.ison-cabinet .ison-promo {
	min-height: 152px;
}

@media (max-width: 1469px) {
	body.ison-cabinet .ison-promo {
		/* когда высота держится min-height, растягивать картинку «100% 100%» нельзя -
		   она сплющивается; берём cover, обрезая края */
		background-size: cover;
		background-position: center right;
	}
}

/* ⛔ БЛОКЕР приёмки части 12: главная кабинета на телефоне схлопывалась в полоску.
   Правило `.ison-dash-grid` с двумя колонками (вес 0-2-1) сильнее старого медиазапроса
   `@media (max-width: 1180px) .ison-dash-grid` (вес 0-1-0), поэтому мобильная раскладка
   не включалась НИКОГДА: при экране 375 основная колонка была 77 px, приветствие
   печаталось по одному слову в строку, плитки и баннер срезались `overflow: hidden`.
   Здесь тот же вес, что у правила-виновника, и ниже по файлу - значит выигрывает. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-dash-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ison-cabinet .ison-dash-main {
		overflow: visible;
	}
}

/* ⛔ Продолжение того же блокера: когда `overflow: hidden` перестал прятать вылезающее,
   стало видно, что на телефоне шапку распирает плашка уровня - я же поставил ей
   `white-space: nowrap`, чтобы «ISON BUSINESS» не ломался надвое на широком экране.
   На узком переносить можно и нужно: страница была 558 px при окне 375. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-dash-head {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ison-cabinet .ison-dash-next {
		max-width: none;
	}

	body.ison-cabinet .ison-dash-next__title {
		white-space: normal;
	}

	body.ison-cabinet .ison-promo__buttons {
		flex-wrap: wrap;
	}

	body.ison-cabinet .ison-tile--manager .ison-msg {
		white-space: normal;
	}

	body.ison-cabinet .ison-manager__row {
		word-break: normal;
		overflow-wrap: break-word;
	}
}

/* ⛔ Та же цепочка: у обёртки таблиц `overflow-x: auto` стоял, но не срабатывал -
   элемент сетки по умолчанию имеет `min-width: auto` и растягивается под содержимое,
   поэтому таблица «Мои последние заказы» шириной 560 px распирала страницу на телефоне
   (страница 415 при окне 375). Раньше это скрывал `overflow: hidden` у колонки. */
body.ison-cabinet .ison-dash-tables .ison-panel,
body.ison-cabinet .ison-dash-tables .ison-table-wrap {
	min-width: 0;
	max-width: 100%;
}

/* ⛔ Остаток той же беды: у обёртки таблиц по одной оси стояло `auto`, по другой
   `visible`, и браузер считал ширину таблицы (560 px при колонке 347) в общую ширину
   страницы - на телефоне оставалась горизонтальная прокрутка 420 px при окне 375,
   хотя сама таблица уже пряталась. Полноценный контекст прокрутки получается, когда
   заданы ОБЕ оси. */
body.ison-cabinet .ison-table-wrap {
	overflow-x: auto;
	overflow-y: hidden;
}

/* ⛔ Нашёлся настоящий виновник прокрутки на телефоне: заголовку «Добро пожаловать,
   Алексей!» стоит `white-space: nowrap` (он нужен на широком экране, чтобы строка
   не ломалась надвое, как на макете). При 29 px строка занимает 406 px и на экране
   375 распирает страницу до 420. Перебором блоков: скрываешь .ison-dash-head -
   прокрутка исчезает (420 → 375). На узком экране перенос разрешаем. */
@media (max-width: 1199px) {
	body.ison-cabinet .ison-dash-head__text .ison-page__title {
		white-space: normal;
		font-size: 22px;
	}
}

/* ⛔ Урок круга: цвет мелкого текста нельзя снимать по САМЫМ ЧАСТЫМ пикселям макета -
   у мелких букв сглаживание осветляет их к фону, и я взял #6370d0 (контраст к белому
   4.41) вместо настоящего. По самым ТЁМНЫМ пикселям тех же надписей макет даёт
   (50,69,201) для описаний преимуществ (контраст 7.0) и (5,7,152) для «N заказов».
   Это был наш дефект, а не особенность макета: проверка контраста ловила его как
   нарушение WCAG на семи строках главной. */
body.ison-cabinet .ison-benefits__text > span {
	color: #3245c9;
}

body.ison-cabinet .ison-tiles .ison-tile__orders {
	color: #050798;
}

/* ⛔ БЛОКЕР круга 2 (внесён моим же лечением): `min-height` вместе с `aspect-ratio`
   заставил браузер считать ШИРИНУ блока от высоты - баннер стал ровно 983 px на любой
   колонке и вылезал за неё, а лишнее срезал `overflow: hidden` у колонки. На окне 1366
   срезалось 141 px картинки: логотип показывал «iSO», подписи обрывались, правого угла
   не было. Лечение: ширину задаём явно от колонки, тогда aspect-ratio считает только
   высоту, а min-height по-прежнему не даёт блоку стать ниже своих кнопок. */
body.ison-cabinet .ison-promo {
	width: 100%;
	max-width: 100%;
}

/* ⛔ БЛОКЕР круга 2: в карточке менеджера колонка кнопок жёстко 200 px, и на узких
   экранах средняя колонка сжималась до 20-31 px - имя «Вячеслав Петяк» и должность
   уходили ПОД белые кнопки Telegram и WhatsApp (проверено elementFromPoint: в середине
   имени возвращалась кнопка). Ниже 1280 px раскладываем карточку в два ряда: фото
   и текст сверху, кнопки во всю ширину снизу. */
/* ⛔ Круг 3: порога 1279 не хватило. Трёхколоночная раскладка карточки (62 / текст /
   кнопки 200) действует до 1535 px, и в полосе 1280-1500 средняя колонка сжималась
   до 48-144 px при строке телефона 165 px: на окне 1440 «8 (800) 500 43 55 (доб. 109)»
   заезжал под кнопку WhatsApp на 39 px, на 1280 под кнопки уходили имя и должность.
   Два ряда держим до 1519 px - макетная раскладка остаётся на ширине макета (1536). */
@media (max-width: 1519px) {
	body.ison-cabinet .ison-tiles .ison-tile--manager {
		grid-template-columns: 62px minmax(0, 1fr);
	}

	body.ison-cabinet .ison-tile--manager .ison-manager__buttons {
		grid-column: 1 / -1;
		width: auto;
		max-width: none;
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
	}

	body.ison-cabinet .ison-tile--manager .ison-msg {
		flex: 1 1 220px;
	}
}

/* ⛔ БЛОКЕР круга 4: кегль 30 px в плитках подобран под ширину макета (1536), но на
   ноутбуках 1366 и 1440 (обе в ТЗ) плитка у́же, и сумма «1 578 000 ₽» выходила за её
   край на 37-48 px - соседняя плитка закрывала знак рубля и последние цифры.
   Замер: за краем 1536 +13, 1500 +22, 1440 +37, 1366 +48, 1280 +70; при 1200 и ýже
   плитки уже в одну колонку и обрезки нет. Ниже макетной ширины возвращаем 24 px -
   на этом кегле ни одна строка за край не выходит (проверено подстановкой на странице). */
@media (max-width: 1529px) {
	/* ниже ширины макета плиток в ряду две, а не три: в трёх колонках плитка сужается
	   до 210-240 px и сумма не помещается ни при каком разумном кегле */
	body.ison-cabinet .ison-tiles {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	body.ison-cabinet .ison-tiles .ison-tile--manager {
		grid-column: 1 / -1;
	}

	body.ison-cabinet .ison-tiles .ison-tile__value {
		font-size: 24px;
	}

	body.ison-cabinet .ison-tiles .ison-tile__label {
		/* подпись «Ваша партнёрская скидка» теряла последнюю букву: базовый стиль
		   запрещает перенос, а места на 1366 уже не хватает */
		white-space: normal;
	}
}

/* ⛔ Хвост той же правки: медиазапрос «две колонки плиток» действовал до самого
   телефона и перебивал базовую одноколоночную раскладку - на 375 сумма «1 578 000 ₽»
   вылезала за плитку на 52 px и снова давала горизонтальную прокрутку (413 при 375).
   Ниже 760 px возвращаем одну колонку и разрешаем строке переноситься. */
@media (max-width: 759px) {
	body.ison-cabinet .ison-tiles {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ison-cabinet .ison-tiles .ison-tile__value {
		font-size: 22px;
		white-space: normal;
	}
}

/* ⛔ БЛОКЕР приёмки заказа: фон кабинета был СЕРЫЙ, а на всех макетах он светло-голубой.
   Это ровно то, что заказчик назвал на видео: «здесь есть подложка такая вот,
   светлоголубая, здесь её нет». Замер макета 02 между блоками: (237,244,253) = #edf4fd,
   у нас стояло #f5f6f8 (245,246,248). Тот же голубой на макетах 03, 04, 09, 13.
   Переменную --ison-bg не трогаем (её используют и другие места) - красим саму
   область кабинета. */
body.ison-cabinet .ison-content,
body.ison-cabinet .ison-layout {
	background: #edf4fd;
}

/* заголовки панелей на главной: замер макета (0,0,114), у нас был серо-синий */
body.ison-cabinet .ison-dash-tables .ison-panel__title,
body.ison-cabinet .ison-dash-main .ison-panel__title {
	color: #0c0c96;
}

/* шапка таблиц главной: фон (237,246,253), надписи (59,76,200) */
body.ison-cabinet .ison-dash-tables .ison-table thead th {
	background: #edf6fd;
	color: #3b4cc8;
}

/* «Ваш статус:» - на макете тёмно-синяя, у нас была серая #4a4f5a */
body.ison-cabinet .ison-dash-status__text {
	color: #090e97;
}

/* ⛔ БЛОКЕР приёмки: на макете 02 надписи-ссылки подчёркнуты ПОСТОЯННО («ISON PARTNER»
   красной чертой, «Все заказы» и «Все проекты» - своей), а у нас подчёркивание
   появлялось только при наведении. */
body.ison-cabinet .ison-dash-status__text strong,
body.ison-cabinet .ison-dash-tables .ison-panel__head .ison-link {
	text-decoration: underline;
	text-underline-offset: 3px;
}
