/**
 * Страницы проектов: список (аукцион), карточка проекта, размещение заказа (projects.add).
 * @scope — Chrome 118+, Safari 17.4+, Firefox 128+.
 * Токены: var(--s24-*) из s24-tokens.css; общие классы — s24-components.css.
 */

@scope (.s24-prj-list) {
	.s24-prj-list__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: var(--s24-space-5);
	}

	.s24-prj-list__header .s24-page-title {
		margin-bottom: 0;
	}

	.s24-filter-toggle {
		display: none;
		align-items: center;
		gap: var(--s24-space-2);
		background: transparent;
		border: 1.5px solid var(--s24-primary);
		border-radius: var(--s24-radius-sm);
		padding: var(--s24-space-2) var(--s24-space-3);
		font-size: var(--s24-caption);
		font-family: var(--s24-font-family);
		color: var(--s24-primary);
		cursor: pointer;
		transition: background var(--s24-transition-fast), color var(--s24-transition-fast);
	}

	.s24-filter-toggle:hover {
		background: var(--s24-primary);
		color: var(--s24-surface);
	}

	.s24-drawer-overlay {
		display: none;
	}

	.search-span { float: right; }

	.s24-filter-group {
		margin-bottom: var(--s24-space-3);
	}

	.s24-filter-group:last-child {
		margin-bottom: 0;
	}

	/* Legacy style.css: .block { margin-bottom: 20px } — у последнего фильтра убираем, паддинг даёт .well */
	.prjlistfilter > .filterblock:last-child .block {
		margin-bottom: 0;
	}

	.prjlistfilter > .filterblock.block:last-child {
		margin-bottom: 0;
	}

	@media (max-width: 767px) {
		.s24-filter-toggle { display: flex; }

		.prjlistfilter {
			position: fixed;
			top: 0;
			right: -320px;
			width: 300px;
			height: 100vh;
			height: 100dvh;
			z-index: 1030;
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			background: var(--s24-surface);
			padding: var(--s24-space-5);
			padding-bottom: calc(var(--s24-bottom-nav-height) + var(--s24-space-5) + env(safe-area-inset-bottom));
			box-sizing: border-box;
			box-shadow: var(--s24-shadow-elevated);
			border: none;
			border-radius: 0;
			margin: 0;
			transition: right 0.3s ease;
		}

		.prjlistfilter div.select-search-block,
		.prjlistfilter .input-select-search {
			width: 100%;
			box-sizing: border-box;
		}

		.prjlistfilter.s24-drawer--open {
			right: 0;
		}

		.s24-drawer-overlay {
			display: block;
			position: fixed;
			inset: 0;
			z-index: 1025;
			background: rgba(0, 0, 0, 0.4);
			opacity: 0;
			pointer-events: none;
			transition: opacity 0.3s ease;
		}

		.s24-drawer-overlay.s24-drawer-overlay--open {
			opacity: 1;
			pointer-events: auto;
		}

		.search-span { float: none; }
	}

	@media (max-width: 480px) {
		.searchfromtitles { display: none; }

		.prjlistfilter {
			width: 85vw;
			right: -90vw;
		}
	}

	@media (max-width: 299px) {
		.s24-filter-toggle span { display: none; }
	}

	/* .dialogavatar теперь в s24-components.css */

	/* ========== Well — белый фон внутри scope ========== */

	/* .s24-sidebar-nav — глобально в s24-components.css */

	/* ========== Поля фильтров — на всю ширину ========== */

	.filterblock .block > div {
		width: 100%;
	}

	div.select-search-block {
		width: 100%;
	}

	.input-select-search {
		width: 100%;
		box-sizing: border-box;
	}

	/* ========== Чекбоксы фильтров — inline ========== */

	.selected-options > div {
		display: flex;
		align-items: center;
		gap: var(--s24-space-2);
		padding: var(--s24-space-1) 0;
		font-size: var(--s24-caption);
		line-height: 1.3;
	}

	.selected-options > div > input[type="checkbox"] {
		width: 18px;
		height: 18px;
		flex-shrink: 0;
		accent-color: var(--s24-primary);
		cursor: pointer;
		margin: 0;
	}

	/* ========== Поля фильтров — fill-pattern ========== */

	input[type="text"],
	input[type="number"],
	input[type="search"],
	select {
		border: 1px solid transparent;
		border-radius: var(--s24-radius-sm);
		background-color: var(--s24-surface-alt);
		color: var(--s24-text);
		font-family: var(--s24-font-family);
		font-size: var(--s24-caption);
		line-height: 1.45;
		padding: 0.5rem 0.75rem;
		min-height: 40px;
		box-sizing: border-box;
		width: 100%;
		transition: border-color var(--s24-transition-fast), box-shadow var(--s24-transition-fast), background-color var(--s24-transition-fast);
	}

	select {
		padding-right: 36px;
		appearance: none;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 12px center;
	}

	input[type="text"]:focus,
	input[type="number"]:focus,
	input[type="search"]:focus,
	select:focus {
		outline: none;
		background-color: var(--s24-surface);
		border-color: var(--s24-border-focus);
		box-shadow: var(--s24-shadow-input-focus);
	}

	input::placeholder {
		color: var(--s24-text-soft);
	}

	.s24-prj-search input[type="text"] {
		font-size: 1rem;
		padding: 0.75rem 1rem;
		min-height: 48px;
		background-color: var(--s24-surface);
		border-color: var(--s24-border);
		margin: 0;
	}

	.s24-prj-search {
		margin-bottom: var(--s24-space-5);
	}

	/* ========== Карточка проекта ========== */

	.s24-prj-card {
		display: grid;
		grid-template-columns: 48px 1fr auto;
		gap: 0 var(--s24-space-3);
		padding: var(--s24-space-4);
		border: 1px solid var(--s24-border);
		border-radius: var(--s24-radius-md);
		background: var(--s24-surface);
		margin-bottom: var(--s24-space-3);
		align-items: start;
	}

	.s24-prj-card--bold,
	.s24-prj-card--top {
		background: var(--s24-surface-alt);
		border-color: var(--s24-primary-light, var(--s24-border));
	}

	.s24-prj-card__avatar {
		grid-row: 1 / 3;
	}

	.s24-prj-card__avatar img {
		width: 48px;
		height: 48px;
		border-radius: 50%;
		object-fit: cover;
	}

	.s24-prj-card__main {
		grid-column: 2;
		min-width: 0;
	}

	.s24-prj-card__title {
		display: block;
		font-size: var(--s24-body);
		font-weight: 600;
		color: var(--s24-primary);
		text-decoration: underline;
		text-underline-offset: 2px;
		margin-bottom: var(--s24-space-1);
		line-height: 1.4;
	}

	.s24-prj-card__title:hover {
		color: var(--s24-primary-hover);
	}

	.s24-prj-card__body {
		font-size: var(--s24-caption);
		color: var(--s24-text-secondary);
		line-height: 1.5;
	}

	/* Только прямые строки карточки; вложенные .s24-stars и звёзды не трогаем */
	.s24-prj-card__body > span {
		display: block;
	}

	.s24-prj-card__tags {
		font-size: 0.8125rem;
		color: var(--s24-text-muted);
		margin-top: var(--s24-space-1);
	}

	.s24-prj-card__tags a {
		color: var(--s24-primary);
	}

	.s24-prj-card__side {
		grid-column: 3;
		grid-row: 1 / 3;
		text-align: right;
		white-space: nowrap;
	}

	.s24-prj-card__cost {
		font-size: var(--s24-heading-sm);
		font-weight: 700;
		color: var(--s24-ink);
		margin-bottom: var(--s24-space-2);
	}

	.s24-prj-card__meta {
		font-size: 0.8125rem;
		color: var(--s24-text-muted);
		line-height: 1.5;
	}


	/* Карточки без аватара (useroffers и т.п.) */
	.s24-prj-card:not(:has(.s24-prj-card__avatar)) {
		grid-template-columns: 1fr auto;
	}

	.s24-prj-card:not(:has(.s24-prj-card__avatar)) .s24-prj-card__main {
		grid-column: 1;
	}

	.s24-prj-card:not(:has(.s24-prj-card__avatar)) .s24-prj-card__side {
		grid-column: 2;
	}

	.s24-prj-card__title--new {
		color: var(--s24-danger);
		text-decoration-color: var(--s24-danger);
	}

	.s24-prj-card__actions {
		grid-column: 1 / -1;
		padding-top: var(--s24-space-3);
	}

	.s24-prj-card__actions a {
		color: var(--s24-danger-soft);
		font-size: var(--s24-caption);
	}

	.s24-prj-card__actions a:hover {
		color: var(--s24-danger);
	}

	/* ========== Админ: модерация (usermanaging) ========== */

	.s24-admin-mod-card {
		border: 1px solid var(--s24-border);
		border-radius: var(--s24-radius-md);
		background: var(--s24-surface);
		padding: var(--s24-space-4);
		margin-bottom: var(--s24-space-3);
	}

	.s24-admin-mod-card__actions {
		display: flex;
		flex-wrap: wrap;
		gap: var(--s24-space-2);
		justify-content: flex-end;
		align-items: center;
		margin-bottom: var(--s24-space-3);
	}

	.s24-admin-mod-card__actions:last-child {
		margin-bottom: 0;
	}

	.s24-admin-mod-card__actions .s24-btn {
		margin: 0;
	}

	.s24-admin-mod-card__body {
		font-size: var(--s24-caption);
		line-height: 1.55;
		color: var(--s24-text);
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.s24-admin-mod-card__body p {
		margin: 0 0 var(--s24-space-2);
	}

	.s24-admin-mod-card__body p:last-child {
		margin-bottom: 0;
	}

	.s24-admin-mod-card__body a {
		color: var(--s24-primary);
	}

	.s24-admin-mod-card__payin-calc {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--s24-space-2);
		min-height: 24px;
		margin-top: var(--s24-space-2);
		width: 100%;
		max-width: 280px;
	}

	.s24-prj-card__offer {
		grid-column: 1 / -1;
		border-top: 1px solid var(--s24-border);
		padding-top: var(--s24-space-4);
		margin-top: var(--s24-space-3);
		display: flex;
		gap: var(--s24-space-6);
	}

	.s24-prj-card__offer-text {
		flex: 1;
		font-size: var(--s24-caption);
		color: var(--s24-text);
		line-height: var(--s24-lh-relaxed);
		min-width: 0;
	}

	.s24-prj-card__offer-meta {
		font-size: var(--s24-caption);
		color: var(--s24-text-muted);
		line-height: 1.6;
		text-align: right;
		white-space: nowrap;
	}

	@media (max-width: 480px) {
		.s24-prj-card {
			grid-template-columns: 1fr;
			gap: var(--s24-space-2);
		}

		.s24-prj-card__avatar {
			display: none;
		}

		.s24-prj-card__main {
			grid-column: 1;
		}

		.s24-prj-card:not(:has(.s24-prj-card__avatar)) .s24-prj-card__main,
		.s24-prj-card:not(:has(.s24-prj-card__avatar)) .s24-prj-card__side {
			grid-column: 1;
		}

		.s24-prj-card__side {
			grid-column: 1;
			grid-row: auto;
			text-align: left;
			white-space: normal;
		}

		.s24-prj-card__offer {
			flex-direction: column;
			gap: var(--s24-space-3);
		}

		.s24-prj-card__offer-meta {
			text-align: left;
			white-space: normal;
		}

		.s24-admin-mod-card__actions {
			justify-content: stretch;
		}

		.s24-admin-mod-card__actions > .s24-btn {
			flex: 1 1 calc(50% - var(--s24-space-2));
			min-width: 0;
		}

		.pull-right { margin-left: 0; }
	}
}

@scope (.s24-prj-page) {
	.alert {
		text-align: center;
	}

	/* Карточка проекта: в разметке порядок block1 → main (span7) → block3 (кнопки + промо),
	   на десктопе визуально колонка слева = block1 сверху + block3 снизу, справа — main
	   на всю высоту; на мобиле — тот же DOM-порядок (1, 2, 3). */
	.s24-prj-sidebar-layout.s24-sidebar-layout {
		display: grid;
		grid-template-columns: 270px minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		column-gap: var(--s24-space-6);
		row-gap: var(--s24-space-4);
		align-items: start;
	}

	.s24-prj-sidebar-layout > .s24-prj-block--1 {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
	}

	.s24-prj-sidebar-layout > .s24-prj-block--1 > :last-child {
		margin-bottom: 0;
	}

	.s24-prj-sidebar-layout > .s24-prj-block--2.span7 {
		grid-column: 2;
		grid-row: 1 / -1;
		width: auto;
		flex: unset;
		min-width: 0;
	}

	.s24-prj-sidebar-layout > .s24-prj-block--3 {
		grid-column: 1;
		grid-row: 2;
		min-width: 0;
	}

	@media (max-width: 767px) {
		.s24-prj-sidebar-layout.s24-sidebar-layout {
			display: flex;
			flex-direction: column;
			align-items: stretch;
			row-gap: var(--s24-space-4);
		}

		.s24-prj-sidebar-layout > .s24-prj-block--2.span7 {
			width: 100%;
		}
	}

	/* ═══ Шторка «Добавить / редактировать предложение» (#s24AddOfferDrawer) ═══
	   Каркас (overlay, drawer 720px, header/body/close) наследуется из .s24-dialog-drawer.
	   Ниже — только layout самой формы: секции со строками label-слева / input-справа,
	   sticky-footer с textarea + чекбоксами + submit. */

	.s24-dialog-drawer--form .s24-dialog-drawer__form-title {
		margin: 0;
		font-size: var(--s24-heading-sm);
		font-weight: 700;
		line-height: var(--s24-lh-tight);
		color: var(--s24-text);
		flex: 1;
		min-width: 0;
	}

	.s24-add-offer-drawer-form {
		flex: 1 1 auto;
		display: flex;
		flex-direction: column;
		min-height: 0;
		/* По умолчанию без вертикального скролла формы: лейаут flex/grid внутри футера.
		   На телефоне включаем overflow-y: auto — см. @media (max-width: 767px). */
		overflow-x: hidden;
		overflow-y: hidden;
	}

	/* Верх: только естественная высота; низ: забирает пустоту под шторкой — textarea внутри растягивается. */
	.s24-add-offer-drawer-form__body {
		flex: 0 0 auto;
		max-height: min(52vh, 24rem);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: var(--s24-space-3) var(--s24-space-5);
	}

	.s24-add-offer-drawer-form__footer {
		flex: 1 1 0;
		display: flex;
		flex-direction: column;
		min-height: 0;
		padding: var(--s24-space-3) var(--s24-space-5) var(--s24-space-4);
		border-top: 1px solid var(--s24-border);
		background: var(--s24-surface);
		gap: var(--s24-space-2);
	}

	.s24-add-offer-section {
		padding-bottom: var(--s24-space-4);
		/* border-bottom: 1px solid var(--s24-border); */
	}

	.s24-add-offer-section:last-of-type {
		padding-bottom: 0;
		border-bottom: none;
	}

	.s24-add-offer-section + .s24-add-offer-section {
		margin-top: var(--s24-space-3);
	}

	.s24-add-offer-section__title {
		margin: 0 0 var(--s24-space-2);
		padding-bottom: 0;
		border-bottom: none;
		font-size: var(--s24-body-sm);
		font-weight: 700;
		color: var(--s24-text);
		line-height: var(--s24-lh-tight);
	}

	.s24-add-offer-section__title--footer {
		display: block;
		border-bottom: none;
		margin: 0;
		flex: 0 0 auto;
	}

	.s24-add-offer-row {
		display: grid;
		grid-template-columns: minmax(8rem, 44%) 1fr;
		align-items: center;
		gap: var(--s24-space-3);
		padding: var(--s24-space-1) 0;
	}

	/* Бьёт `.s24-add-offer-row { display: grid }` по специфичности (0,2,0 vs 0,1,0):
	   иначе `.hidden` из s24-base.css с тем же (0,1,0) не гасит grid-раскладку,
	   и строка «В валюте Студента» оставалась видимой при совпадении валют. */
	.s24-add-offer-row.hidden,
	.s24-add-offer-row[hidden] {
		display: none;
	}

	.s24-add-offer-row__label {
		color: var(--s24-text-secondary);
		font-size: var(--s24-caption);
		font-weight: 500;
	}

	.s24-add-offer-row--strong .s24-add-offer-row__label {
		color: var(--s24-text);
		font-weight: 700;
	}

	.s24-add-offer-row--muted .s24-add-offer-row__label {
		color: var(--s24-text-muted);
	}

	/* Тултипы не как иконка «?», а подчёркиванием на самом тексте лейбла. */
	.s24-add-offer-row__label .s24-dotted-link {
		color: inherit;
	}

	/* Ридаут: рассчитанное значение как plain-text, а не капсула-инпут.
	   Интерактивное поле — только «Сумма для Студента»; Комиссия / Автору /
	   Налог / Итого / В валюте Студента отображаются текстом, хотя под капотом
	   остаются disabled-инпуты с id (нужны для сабмита формы и JS-апдейтов). */
	.s24-add-offer-readout {
		display: inline-flex;
		align-items: baseline;
		gap: var(--s24-space-1);
		color: var(--s24-text);
		font-variant-numeric: tabular-nums;
	}

	.s24-add-offer-row--strong .s24-add-offer-readout {
		font-weight: 700;
	}

	.s24-add-offer-row--muted .s24-add-offer-readout {
		color: var(--s24-text-muted);
	}

	/* Стандартные input-стили (s24-forms.css) дают бордер/фон/паддинг;
	   в ридауте их снимаем, чтобы disabled-инпут выглядел как обычный текст. */
	.s24-add-offer-readout input.money-format,
	.s24-add-offer-readout input[type="text"]:disabled {
		width: auto;
		max-width: none;
		min-width: 0;
		min-height: 0;
		padding: 0;
		margin: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
		color: inherit;
		font: inherit;
		font-variant-numeric: tabular-nums;
		opacity: 1;
		cursor: default;
		-webkit-text-fill-color: currentColor;
	}

	.s24-add-offer-readout__suffix {
		color: var(--s24-text-muted);
		font-size: var(--s24-caption);
	}

	.s24-add-offer-row--strong .s24-add-offer-readout__suffix {
		color: var(--s24-text-muted);
		font-weight: 500;
	}

	/* `input.` / `select.` / `textarea.`-квалификация нужна, чтобы перебить
	   общий input/select/textarea-стиль в .s24-add-offer-drawer-form scope
	   из s24-forms.css (0,1,1 за счёт `:is(input[type="text"], …, textarea)`).
	   Чистый `.class` = 0,1,0 — не победит без tag-префикса. */
	input.s24-add-offer-inline-num {
		box-sizing: border-box;
		width: 3.75rem;
		max-width: 5rem;
		min-height: 2.75rem;
		padding: 0.45rem 0.35rem;
		text-align: center;
		-moz-appearance: textfield;
		appearance: textfield;
	}

	input.s24-add-offer-inline-num::-webkit-outer-spin-button,
	input.s24-add-offer-inline-num::-webkit-inner-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}

	select.s24-add-offer-timetype {
		min-width: 7.5rem;
		max-width: 12rem;
	}

	.s24-add-offer-time-row {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--s24-space-2);
	}

	.s24-add-offer-time-row__label {
		color: var(--s24-text-muted);
		font-size: var(--s24-caption);
	}

	.s24-add-offer-duration-row {
		display: flex;
		align-items: center;
		gap: var(--s24-space-2);
	}

	.s24-add-offer-duration-row__suffix {
		color: var(--s24-text-secondary);
		font-size: var(--s24-caption);
	}

	/* Специфичнее, чем :where(.s24-add-offer-drawer-form) textarea { min-height: 140px } в s24-forms.css */
	.s24-add-offer-drawer-form textarea.s24-add-offer-textarea {
		box-sizing: border-box;
		width: 100%;
		margin: 0;
		align-self: stretch;
		flex: 1 1 0;
		min-height: 5rem;
		resize: vertical;
	}

	/* Телефон: textarea не ниже 6rem; чекбоксы и кнопка не обрезаются — прокрутка формы + sticky actions. */
	@media (max-width: 767px) {
		.s24-add-offer-drawer-form {
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			overscroll-behavior: contain;
			padding-bottom: env(safe-area-inset-bottom, 0px);
		}

		.s24-add-offer-drawer-form__body {
			flex: 0 0 auto;
			max-height: none;
			overflow: visible;
		}

		.s24-add-offer-drawer-form__footer {
			flex: 1 1 0;
			min-height: 0;
			display: grid;
			grid-template-rows: auto minmax(6rem, 1fr) auto;
			align-content: stretch;
			gap: var(--s24-space-2);
			/* не overflow:hidden — иначе position:sticky у кнопок не цепляется к скроллу формы */
			overflow: visible;
		}

		.s24-add-offer-drawer-form__footer > textarea.s24-add-offer-textarea {
			flex: unset;
			min-height: 0;
			height: 100%;
			max-height: 100%;
			overflow-y: auto;
			resize: vertical;
		}

		.s24-add-offer-form__actions {
			position: sticky;
			bottom: 0;
			z-index: 2;
			align-self: stretch;
			background: var(--s24-surface);
			padding-top: var(--s24-space-2);
			padding-bottom: max(var(--s24-space-2), env(safe-area-inset-bottom, 0px));
			margin-top: var(--s24-space-1);
			box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.07);
		}
	}

	.s24-add-offer-form__actions {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--s24-space-3);
		flex: 0 0 auto;
	}

	.s24-add-offer-form__checks {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: var(--s24-space-0);
	}

	.s24-add-offer-form__check {
		min-width: 0;
	}

	.s24-add-offer-form__actions > .alert {
		margin: 0;
		text-align: left;
		flex: 1;
	}

	/* Мобилка: компактнее, лейблы — сверху, инпут на всю ширину. */
	@media (max-width: 540px) {
		.s24-add-offer-drawer-form__body,
		.s24-add-offer-drawer-form__footer {
			padding-left: var(--s24-space-3);
			padding-right: var(--s24-space-3);
		}

		.s24-add-offer-row {
			grid-template-columns: 1fr;
			gap: var(--s24-space-1);
			padding: var(--s24-space-1) 0;
		}

		/* Ценовая секция на мобиле — 2×2 (×3 с подоходным налогом).
		   Колонка 1: «Сумма для Студента» / «Комиссия» / «Налог».
		   Колонка 2: «В валюте Студента» (если показана) / «Автору» / «Итого».
		   Размещение явное: при скрытой 2:1:2 ячейке grid не перетасует сетку
		   и «Комиссия»/«Автору» останутся во второй строке на своих местах. */
		.offerFormCostBlock {
			display: grid;
			grid-template-columns: 1fr 1fr;
			column-gap: var(--s24-space-3);
			row-gap: var(--s24-space-2);
		}
		.offerFormCostBlock > .s24-add-offer-section__title {
			grid-column: 1 / -1;
		}
		.offerFormCostBlock > .s24-add-offer-row--total   { grid-column: 1; grid-row: 2; }
		.offerFormCostBlock > .s24-add-offer-row--total2  { grid-column: 2; grid-row: 2; }
		.offerFormCostBlock > .s24-add-offer-row--tax     { grid-column: 1; grid-row: 3; }
		.offerFormCostBlock > .s24-add-offer-row--cost    { grid-column: 2; grid-row: 3; }
		.offerFormCostBlock > .s24-add-offer-row--income  { grid-column: 1; grid-row: 4; }
		.offerFormCostBlock > .s24-add-offer-row--payout  { grid-column: 2; grid-row: 4; }

		.s24-add-offer-form__actions {
			flex-direction: column;
			align-items: stretch;
			gap: var(--s24-space-2);
		}
	}

	.status {
		box-sizing: border-box;
		margin: 15px 0 30px 0;
		display: inline-block;
		text-align: right;
		float: right;
		width: 100%;
		margin-right: 5px;
		font-size: var(--s24-heading-sm);
	}

	.s24-prj-status {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: var(--s24-space-3);
		margin: 0 0 var(--s24-space-5) 0;
		min-height: 40px;
		font-size: var(--s24-body);
	}

	/* Pill-бейдж статуса (как «online» на странице пользователя) */
	.s24-status-pill {
		display: inline-flex;
		align-items: center;
		font-size: var(--s24-body);
		font-weight: 500;
		padding: 4px 14px;
		border-radius: var(--s24-radius-lg);
		line-height: 1.4;
		cursor: help;
	}

	.s24-status-pill--success {
		color: #15803d;
		background: rgba(0, 160, 0, 0.08);
	}

	.s24-status-pill--info {
		color: var(--s24-primary);
		background: var(--s24-primary-soft);
	}

	.s24-status-pill--danger {
		color: var(--s24-danger);
		background: color-mix(in srgb, var(--s24-danger) 8%, white);
	}

	.s24-status-pill--muted {
		color: var(--s24-text-muted);
		background: rgba(15, 23, 42, 0.06);
	}

	/* Завершённый проект: светлая подложка как у muted, но основной цвет текста */
	.s24-status-pill--completed {
		color: var(--s24-text);
		background: rgba(15, 23, 42, 0.06);
	}

	/* ═══ Well заказчика: .s24-person внутри well'а, аватар 56×56 ═══ */
	.s24-prj-owner-well {
		gap: var(--s24-space-4);
		padding: var(--s24-space-4);
	}

	.s24-prj-owner-well .s24-person__avatar {
		width: 56px;
		height: 56px;
		flex: 0 0 56px;
	}

	.s24-prj-owner-well .s24-person__avatar img {
		width: 100%;
		height: 100%;
	}

	.s24-prj-owner-well .s24-person__name {
		font-size: var(--s24-caption);
	}

	.s24-prj-owner-well .s24-person__meta img,
	.s24-prj-owner-well .s24-person__meta svg {
		height: 14px;
		width: auto;
	}

	/* ═══ Промо‑well’ы сайдбара — уменьшаем размеры текста ═══ */
	.well.s24-well--center {
		font-size: var(--s24-label);
		line-height: 1.4;
		color: var(--s24-text-muted);
		padding: var(--s24-space-4);
	}

	.well.s24-well--center .s24-well-promo__title {
		font-size: var(--s24-body);
		font-weight: 600;
		margin-bottom: var(--s24-space-2);
		color: var(--s24-text);
	}

	.well.s24-well--center .s24-well-promo__lead {
		font-size: var(--s24-caption);
		line-height: 1.45;
		color: var(--s24-text-muted);
		margin-bottom: var(--s24-space-3);
	}

	/* ═══ Sidebar actions — см. .s24-action-stack в s24-components.css ═══ */
	.s24-action-stack {
		margin-bottom: var(--s24-space-3);
	}

	/* ═══ Info rows — page-specific padding ═══ */
	.s24-info-row {
		padding: var(--s24-space-3) 0;
	}

	/* Заголовок (h1) — на всю ширину, без лейбла */
	.s24-info-row--title {
		padding-top: 0;
		padding-bottom: var(--s24-space-3);
	}

	.s24-info-row--title .s24-prj-itemtitle {
		margin: 0;
		padding-top: var(--s24-space-3);
		font-size: var(--s24-heading-sm);
		font-weight: 700;
		line-height: 1.3;
		color: var(--s24-text);
	}

	/* ═══ Comments — форма добавления (в отдельном .well блоке) ═══ */

	.s24-comments-form-wrap textarea {
		width: 100%;
		box-sizing: border-box;
		min-height: 110px;
	}

	/* ═══ Фотогалерея работы ═══
	   Стили карусели — компонент .s24-folio-carousel в s24-components.css */

	#updatemarket {
		padding: var(--s24-space-4);
	}

	.row { margin: 30px 0 0 0; }

	.span3 { margin: 0; }

	.span7 {
		margin: 0 0 20px 20px;
		float: right;
	}

	@media (max-width: 767px) {
		.span7, .span3 {
			clear: both;
			float: none;
			margin: 0;
		}
		#itemdesctable {
			margin: 0;
			width: 100%;
		}
	}

	@media (max-width: 480px) {
		.status {
			text-align: center;
			margin-right: 0;
		}
		.s24-prj-status {
			justify-content: center;
		}
		.producttabletitles { display: none; }
	}

	.producttabletitles {
		width: 100px;
		color: var(--s24-text-muted);
		font-size: var(--s24-caption);
		vertical-align: top;
	}

	@media (max-width: 360px) {
		#itemdesctable tr td:first-child {
			margin-top: var(--s24-space-3);
			font-weight: bold;
		}
		#itemdesctable td {
			width: 100%;
			display: inline;
			padding: 2px 1px;
		}
		#itemdesctable .mydatefaq { display: none; }
		#itemdesctable tr {
			margin-bottom: var(--s24-space-2);
			display: block;
		}
	}

	.elected {
		background: url(../../../images/icons/default/star2.png) no-repeat;
		background-size: 17px;
		width: 17px;
		height: 17px;
		margin-left: var(--s24-space-2);
		position: absolute;
		cursor: pointer;
	}

	.elected.checked {
		background-position: -0.2px -16.3px;
	}

	/* Каталог типов работ (гостевой вариант страницы проекта) */
	.s24-landing-services {
		text-align: center;
		margin: var(--s24-section-gap) auto var(--s24-section-gap-sm) auto;
		display: inline-block;
		width: 100%;
	}

	.s24-landing-services > p {
		font-size: var(--s24-heading-xl);
		line-height: var(--s24-lh-tight);
		font-family: inherit;
		font-weight: 100;
		text-indent: 0px;
		margin-bottom: 75px;
	}

	.s24-landing-services > div { width: 979px; }

	.s24-landing-services > div > div {
		border-radius: var(--s24-radius-sm);
		height: 125px;
		display: inline-block;
		float: left;
		text-align: left;
		padding: var(--s24-space-2);
		padding-bottom: 25px;
		width: 310px;
		transition: background-position var(--s24-transition-base);
	}

	.s24-landing-services > div > div > a {
		font-size: var(--s24-heading-md);
		line-height: 40px;
	}

	.s24-landing-services > div > div > img {
		float: left;
		margin-right: 18px;
		width: 70px;
	}

	.s24-landing-services > div > div > span { display: table-cell; }

	.s24-landing-services > div > div > div > a {
		font-size: var(--s24-body);
		padding: 5px 30px;
		margin: 30px 0 0 0;
		opacity: 0;
		transition: opacity var(--s24-transition-base);
	}

	.s24-landing-services > div > div:hover > div > a {
		opacity: 1;
	}

	/* Похожие проекты (гостевой) */
	.s24-prj-similar {
		text-align: center;
		margin: var(--s24-section-gap) 0 125px 0;
	}

	.s24-prj-similar > span {
		font-size: var(--s24-heading-xl);
		line-height: 1.2;
		width: 80%;
		display: block;
		margin: auto;
	}

	@media (max-width: 979px) {
		.s24-landing-services > div { width: 630px; margin: auto; }
		.s24-landing-services > div > div { padding: 5px; width: 305px; }
		.s24-landing-services > div > div > img { margin-right: 15px; }
		.s24-landing-services > div > div > a { font-size: 18px; }
	}

	@media (max-width: 660px) {
		.s24-landing-services > p { font-size: var(--s24-heading-md); }
		.s24-landing-services > div { width: 325px; margin: auto; }
		.s24-landing-services > div > div { padding: 6px; }
	}

	@media (max-width: 600px) {
		.s24-landing-services > div { width: 260px; }
		.s24-landing-services > div > div > a { font-size: 15px; line-height: 25px; }
		.s24-landing-services > div > div {
			padding: 1%;
			width: 98%;
			float: none;
			margin-bottom: 25px;
			height: 110px;
		}
		.s24-landing-services > div > div > div > a {
			font-size: 15px;
			padding: 5px 15px;
			margin: 25px 0 0 20px;
			opacity: 1;
		}
		.s24-prj-similar > span { font-size: var(--s24-heading-md); }
	}

	/* ═══ Dialog Drawer — переписка по предложению (slide-in panel) ═══ */

	.s24-dialog-source {
		display: none;
	}

	.s24-open-dialog {
		display: inline-flex;
		align-items: center;
		cursor: pointer;
		font-weight: 600;
		font-size: var(--s24-caption);
		color: var(--s24-primary);
		padding: var(--s24-space-2) var(--s24-space-3);
		border-radius: var(--s24-radius-sm);
		transition: background var(--s24-transition-fast);
		margin-bottom: -4px;
	}

	.s24-open-dialog:hover {
		background: var(--s24-primary-soft);
		text-decoration: none;
	}

	.s24-open-dialog .red {
		color: var(--s24-danger);
	}

	.s24-dialog-overlay {
		position: fixed;
		inset: 0;
		background: var(--s24-overlay-dark);
		z-index: 1040;
		opacity: 0;
		pointer-events: none;
		transition: opacity var(--s24-transition-base);
	}

	.s24-dialog-overlay--active {
		opacity: 1;
		pointer-events: auto;
	}

	.s24-dialog-drawer {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: 720px;
		max-width: 100%;
		background: var(--s24-surface);
		z-index: 1050;
		display: flex;
		flex-direction: column;
		transform: translateX(100%);
		transition: transform var(--s24-transition-base);
		box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
	}

	.s24-dialog-drawer--open {
		transform: translateX(0);
	}

	.s24-dialog-drawer__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--s24-space-3);
		min-width: 0;
		padding: var(--s24-space-4) var(--s24-space-5);
		border-bottom: 1px solid var(--s24-border);
		flex-shrink: 0;
	}

	/* Переопределения .s24-person для шторки диалога: truncation имени,
	   stars без нижнего margin, аватар 48×48 (дефолт компоненты подходит). */
	.s24-dialog-drawer__header .s24-person {
		flex: 1;
	}

	.s24-dialog-drawer__header .s24-person__name {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.s24-dialog-drawer__header .s24-person__name > a {
		display: block;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.s24-dialog-drawer__header .s24-person__meta {
		font-size: 0;
	}

	.s24-dialog-drawer__header .s24-person__meta:empty {
		display: none;
	}

	.s24-dialog-drawer__header .s24-person__meta img {
		vertical-align: middle;
	}

	.s24-dialog-drawer__title-admin {
		display: none;
		flex: 1;
		min-width: 0;
		font-weight: 600;
		font-size: var(--s24-body-sm);
		color: var(--s24-ink);
	}

	.s24-dialog-drawer__title-admin.is-visible {
		display: block;
	}

	.s24-dialog-drawer__close {
		background: none;
		border: none;
		font-size: 24px;
		cursor: pointer;
		color: var(--s24-text-muted);
		padding: var(--s24-space-1);
		line-height: 1;
		border-radius: var(--s24-radius-sm);
		transition: color var(--s24-transition-fast), background var(--s24-transition-fast);
	}

	.s24-dialog-drawer__close:hover {
		color: var(--s24-text);
		background: var(--s24-surface-alt);
	}

	.s24-dialog-drawer__body {
		flex: 1 1 auto;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0;
		display: flex;
		flex-direction: column;
	}

	.s24-dialog-drawer__body > hr {
		display: none;
	}

	.s24-dialog-drawer__body > [id^="projectsposts"] {
		flex: 1 0 auto;
	}

	.s24-dialog-drawer__body .projectsposts {
		padding: var(--s24-space-3) var(--s24-space-4);
		max-height: none;
		overflow: visible;
	}

	.s24-dialog-drawer__body .postform {
		position: sticky;
		bottom: 0;
		background: var(--s24-surface);
		border-top: 1px solid var(--s24-border);
		padding: var(--s24-space-3) var(--s24-space-4);
		z-index: 1;
		flex-shrink: 0;
	}

	.s24-dialog-drawer__body .postform br:first-child {
		display: none;
	}

	.s24-dialog-drawer__body .postform > div {
		width: 100%;
		margin: 0;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--s24-space-2);
		position: relative;
	}

	.s24-dialog-drawer__body .postform br {
		display: none;
	}

	.s24-dialog-drawer__body .postform [id$="uploader"] {
		flex: 1;
		min-width: 0;
	}

	.s24-dialog-drawer__body .postform .filter_posts_dropdown,
	.s24-dialog-drawer__body .postform [id$="uploadedfiles"] {
		flex: 0 0 100%;
	}

	.s24-dialog-drawer__body .postform .filter_posts_dropdown {
		right: var(--s24-space-2);
		top: 0;
	}

	.s24-dialog-drawer__body .postform .addposttext {
		flex: 0 0 100%;
		width: 100%;
		box-sizing: border-box;
		min-height: 90px;
		max-height: 160px;
		resize: vertical;
		border: 1px solid var(--s24-border);
		border-radius: var(--s24-radius-sm);
		background: var(--s24-surface-alt);
		padding: var(--s24-space-3);
		font-family: var(--s24-font-family);
		font-size: var(--s24-caption);
		line-height: var(--s24-lh-base);
		color: var(--s24-text);
		transition: background var(--s24-transition-fast), box-shadow var(--s24-transition-fast), border-color var(--s24-transition-fast);
		margin-bottom: var(--s24-space-2);
	}

	.s24-dialog-drawer__body .postform .addposttext:focus {
		outline: none;
		background: var(--s24-surface);
		border-color: var(--s24-border-focus);
		box-shadow: var(--s24-shadow-input-focus);
	}

	/* Есть избранные («Важное»): цвет иконки как у звезды закладки (--s24-star-color). */
	.postform.s24-postform--important-available .filter_posts_dropdown > .filter_posts_dropimg:not(.checked) {
		opacity: 1;
		color: var(--s24-star-color, #f5c518);
	}

	.postform.s24-postform--important-available .filter_posts_dropdown > .filter_posts_dropimg.checked {
		color: #166534;
	}

	.s24-dialog-drawer__body .postform .postformButton {
		background: var(--s24-primary);
		color: #fff;
		border: none;
		padding: var(--s24-space-2) var(--s24-space-5);
		font-family: var(--s24-font-family);
		font-size: var(--s24-caption);
		font-weight: 600;
		cursor: pointer;
		margin: 0 0 0 auto;
		min-width: 0;
		width: auto;
		float: none;
		transition: background var(--s24-transition-fast);
	}

	.s24-dialog-drawer__body .postform .postformButton:hover {
		background: var(--s24-primary-hover);
	}

	/* ═══ Drawer — flex-based chat bubbles ═══ */

	.s24-dialog-drawer__body .dialog_users_avatars {
		width: 22px;
		height: 22px;
		flex-shrink: 0;
	}

	.s24-dialog-drawer__body .dialog_users_avatars,
	.s24-dialog-drawer__body .dialog_users_avatars > img {
		width: 22px;
		height: 22px;
		border-radius: 50%;
		object-fit: cover;
	}

	/* Пузырь + звезда: звезда absolute у края кластера — не сдвигает .unread при hover */
	.projectsposts .s24-dialog-cluster,
	.s24-dialog-drawer__body .s24-dialog-cluster {
		position: relative;
		display: flex;
		align-items: flex-end;
		max-width: 81%;
		min-width: 0;
		flex: 0 1 auto;
	}

	.s24-dialog-drawer__body .dialog,
	.projectsposts .s24-dialog-cluster > .dialog {
		max-width: 100%;
		min-width: 0;
		flex: 1 1 auto;
		padding: var(--s24-space-3);
		border-radius: var(--s24-radius-md);
		font-size: var(--s24-caption);
		line-height: var(--s24-lh-base);
		word-break: break-word;
		overflow-wrap: anywhere;
		position: relative;
		text-align: left;
	}

	.projectsposts .s24-dialog-cluster > .dialog {
		min-width: 90px;
	}

	/* Одна сетка строки чата: пузырь + звезда снаружи (и в drawer, и в развёрнутом блоке) */
	.projectsposts .dialog_row,
	.s24-dialog-drawer__body .dialog_row {
		display: flex;
		align-items: flex-end;
		gap: var(--s24-space-2);
		margin: 0 0 var(--s24-space-3) 0;
		padding: 0;
		position: relative;
	}

	.projectsposts .not_my_dialog_row,
	.s24-dialog-drawer__body .not_my_dialog_row {
		flex-direction: row-reverse;
	}

	.projectsposts .dialog_row .dialog.my_message,
	.projectsposts .dialog_row .dialog.not_my_message,
	.s24-dialog-drawer__body .dialog_row .dialog {
		float: none;
	}

	.s24-dialog-post-date {
		font-size: 0.7rem;
		line-height: 1.25;
		color: var(--s24-text-muted);
		margin: -2px 0 var(--s24-space-1) 0;
		text-align: left;
	}

	.projectsposts .s24-dialog-cluster > .favourite_post,
	.s24-dialog-drawer__body .s24-dialog-cluster > .favourite_post {
		position: absolute;
		top: 2px;
		float: none;
		margin: 0;
		z-index: 0;
		width: 10px;
		height: 10px;
	}

	.projectsposts .s24-dialog-cluster > .my_favourite_post,
	.s24-dialog-drawer__body .s24-dialog-cluster > .my_favourite_post {
		right: calc(-1 * var(--s24-space-2) - 10px);
		left: auto;
	}

	.projectsposts .s24-dialog-cluster > .not_my_favourite_post,
	.s24-dialog-drawer__body .s24-dialog-cluster > .not_my_favourite_post {
		left: calc(-1 * var(--s24-space-2) - 10px);
		right: auto;
	}

	.s24-dialog-drawer__body .my_message {
		background: var(--s24-surface-alt);
		border-bottom-left-radius: 4px;
		float: none;
	}

	.s24-dialog-drawer__body .not_my_message {
		background: var(--s24-primary-soft);
		border-bottom-right-radius: 4px;
		float: none;
	}

	.s24-dialog-drawer__body .admin_message {
		background: var(--s24-surface);
		border: 1px solid var(--s24-border);
	}

	/* Развёрнутая переписка в карточке оффера — те же фоны, что в drawer */
	.projectsposts .dialog_row .dialog.my_message {
		background: var(--s24-surface-alt);
		border-bottom-left-radius: 4px;
		float: none;
	}

	.projectsposts .dialog_row .dialog.not_my_message {
		background: var(--s24-primary-soft);
		border-bottom-right-radius: 4px;
		float: none;
	}

	.projectsposts .dialog_row .dialog.admin_message {
		background: var(--s24-surface);
		border: 1px solid var(--s24-border);
	}

	.s24-dialog-drawer__body .showmore {
		text-align: center;
		padding: var(--s24-space-3);
		color: var(--s24-primary);
		cursor: pointer;
		font-size: var(--s24-caption);
		font-weight: 600;
	}

	.s24-dialog-drawer__body .showmore:hover {
		text-decoration: underline;
	}

	.s24-dialog-drawer__body .unread {
		margin: var(--s24-space-2) 0;
	}

	@media (max-width: 767px) {
		.s24-dialog-drawer {
			width: 100%;
			touch-action: pan-y;
		}
	}

	/* ═══ Offers — карточка предложения, кнопки, инфо ═══ */

	/* Карточка offer-а — grid на уровне .offer: #shortoffer — две колонки: слева шапка
	   и текст (.s24-offer-below-avatar), справа единый .s24-offer-rail на всю высоту
	   (кнопки рядом сверху, «Переписка» снизу); ниже — .s24-dialog-source.
	   Узкие карточки — @container offer-card. */
	.ownlist.offer {
		background: var(--s24-surface);
		border: 1px solid var(--s24-border);
		border-radius: var(--s24-radius-md);
		padding: var(--s24-card-pad-y) var(--s24-card-pad-x);
		margin-bottom: var(--s24-space-4);
		box-shadow: var(--s24-shadow-card-soft);
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: var(--s24-space-3);
		row-gap: var(--s24-space-3);
		align-items: stretch;
	}

	/* Заказчик: при наведении карточка отклика чуть «поднимается» (рамка + тень). */
	#alloffers[data-orderer-view="1"] .ownlist.offer {
		transition:
			box-shadow var(--s24-transition-fast),
			border-color var(--s24-transition-fast);
	}

	#alloffers[data-orderer-view="1"] .ownlist.offer:hover {
		border-color: color-mix(in srgb, var(--s24-primary) 42%, var(--s24-border));
	}

	#alloffers[data-orderer-view="1"] .ownlist.offer.good:hover {
		border-color: color-mix(in srgb, var(--s24-success) 50%, var(--s24-border));
		box-shadow: var(--s24-shadow-card-soft), 0 4px 18px color-mix(in srgb, var(--s24-success) 14%, transparent);
	}

	/* Карточка назначенного исполнителя: без бейджа в шапке — лёгкий зелёный фон + акцентная рамка. */
	.ownlist.offer.good {
		border-color: var(--s24-success);
        background: rgba(226, 255, 228, 0.8);
	}

	.ownlist.offer.bad {
		border-color: color-mix(in srgb, var(--s24-danger) 20%, var(--s24-border));
		background: color-mix(in srgb, var(--s24-danger) 3%, var(--s24-surface));
	}

	/* Внешняя обёртка шапки (id="shortoffer{ID}") — прямой ребёнок
	   .ownlist.offer, должна занимать обе колонки grid'а карточки. */
	.ownlist.offer > [id^="shortoffer"] {
		grid-column: 1 / -1;
	}

	/* Сетка #shortoffer: слева шапка (стр.1) + текст (стр.2); справа один .s24-offer-rail на 2 строки.
	   ≤520px: шапка → текст → рейл целиком внизу. */
	[id$="shortoffer"] {
		/* Отступ текста оффера слева = ширина аватара (84px) + доп. сдвиг. Узкая карточка / ≤520 — отдельные правила. */
		--s24-offer-body-inset: calc(84px + var(--s24-space-6));
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, auto);
		grid-template-rows: auto auto;
		column-gap: var(--s24-space-3);
		row-gap: var(--s24-space-3);
		align-items: stretch;
		container-type: inline-size;
		container-name: offer-card;
	}

	/* Клик по карточке открывает диалог только если data-offer-dialog-open=1 (заказчик, свой оффер, админ/сейл). */
	#alloffers[data-user-id]:not([data-user-id="0"]) .ownlist.offer[data-offer-dialog-open="1"] {
		cursor: pointer;
	}

	#alloffers[data-user-id]:not([data-user-id="0"]) .ownlist.offer[data-offer-dialog-open="0"] {
		cursor: default;
	}

	/* Шапка карточки — grid 2×2:
	   [аватар] | ряд1: имя, под ним звёзды и дата
	              ряд2: чипы «сроки / стоимость»
	   Для этого у .offer_avatar_and_information_block ставим display: contents,
	   чтобы её дети (.s24-person__avatar, .s24-person__body) стали прямыми
	   элементами грида header-row. Селектор .offer_avatar_and_information_block.s24-person
	   повышает специфичность над .s24-person { display: flex } из s24-components.css. */
	[id$="shortoffer"] > .s24-offer-header-row {
		--s24-offer-header-stack-gap: var(--s24-space-1);
		grid-column: 1;
		grid-row: 1;
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		column-gap: var(--s24-space-4);
		row-gap: var(--s24-offer-header-stack-gap);
		align-items: start;
		min-width: 0;
	}

	[id$="shortoffer"] > .s24-offer-header-row > .offer_avatar_and_information_block.s24-person {
		display: contents;
	}

	[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar {
		grid-column: 1;
		grid-row: 1 / span 2;
		align-self: start;
	}

	/* Аватар десктопа — 84×84; прижат к верху грида (align-items/start + align-self). */
	[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar img {
		width: 84px;
		height: 84px;
	}

	[id$="shortoffer"] > .s24-offer-header-row .s24-person__body {
		grid-column: 2;
		grid-row: 1;
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: flex-start;
		gap: var(--s24-offer-header-stack-gap);
		min-width: 0;
	}

	[id$="shortoffer"] > .s24-offer-header-row > .s24-offer-chips-cluster {
		grid-column: 2;
		grid-row: 2;
		min-width: 0;
		max-width: 100%;
		width: 100%;
	}

	.offer_avatar_and_information_block .s24-person__meta {
		margin: 0;
		line-height: 1;
	}

	/* Рейл: явно span 2 строки (1/-1 иногда даёт высоту только первой строки).
	   Внутри — grid auto + 1fr: вторая зона растягивается вместе с ячейкой, «Переписка» — align-self:end. */
	[id$="shortoffer"] > .s24-offer-rail {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: stretch;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto 1fr;
		justify-items: end;
		align-content: stretch;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-height: 0;
		height: 100%;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
	}

	[id$="shortoffer"] > .s24-offer-rail:has(> .offer_buttons:empty) {
		grid-template-rows: 1fr;
	}

	[id$="shortoffer"] > .s24-offer-rail:has(> .offer_buttons:empty) > .messages_link {
		grid-row: 1;
		align-self: end;
	}

	[id$="shortoffer"] > .s24-offer-rail:not(:has(> .messages_link)) {
		grid-template-rows: auto;
	}

	[id$="shortoffer"] > .s24-offer-rail > .offer_buttons {
		grid-row: 1;
		grid-column: 1;
		align-self: start;
		justify-self: end;
		margin: 0;
		padding: 0;
		border: none;
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: flex-end;
		justify-content: flex-start;
		gap: var(--s24-space-2);
		float: none;
		width: max-content;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	[id$="shortoffer"] > .s24-offer-rail > .offer_buttons:empty {
		display: none;
	}

	/* Кнопки по ширине контента, прижаты к правому краю рейла; в покое приглушены,
	   при hover/focus — полная непрозрачность. Порядок в колонке: success → primary
	   (Редактировать) → danger (Удалить) → warning → muted — независимо от порядка в DOM. */
	[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > .s24-btn,
	[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > a.s24-btn {
		width: max-content;
		max-width: 100%;
		justify-content: center;
		box-sizing: border-box;
		align-self: flex-end;
	}

	/* Карточка исполнителя (плитки под стек) + чужие отклики (chip) — оба набора order. */
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .setperformer { order: 0; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--success:not(.setperformer) { order: 5; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--primary-outline { order: 10; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--danger-outline { order: 20; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--warning { order: 30; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--muted-outline { order: 40; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--chip-success:not(.setperformer) { order: 5; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--chip-primary { order: 10; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--chip-danger { order: 20; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--chip-warning { order: 30; }
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .s24-btn--chip-muted { order: 40; }

	/* setperformer в карточке отклика: мягкий green-ghost в покое,
	   при hover/focus — как success-outline:hover (появляется зелёная рамка). */
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .setperformer.s24-btn--chip-success {
		background: color-mix(in srgb, var(--s24-success) 6%, var(--s24-surface));
		color: color-mix(in srgb, var(--s24-success) 88%, #000);
		border-color: transparent;
		transition:
			background var(--s24-transition-fast),
			color var(--s24-transition-fast),
			border-color var(--s24-transition-fast);
	}

	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .setperformer.s24-btn--chip-success:hover,
	[id$="shortoffer"] > .s24-offer-rail .offer_buttons > .setperformer.s24-btn--chip-success:focus-visible {
		background: color-mix(in srgb, var(--s24-success) 8%, var(--s24-surface));
		color: var(--s24-success);
		border-color: color-mix(in srgb, var(--s24-success) 40%, var(--s24-border));
	}

	/* Спрятать рейл, если нет ни кнопок, ни переписки */
	[id$="shortoffer"] > .s24-offer-rail:not(:has(.messages_link)):has(> .offer_buttons:empty) {
		display: none;
	}

	/* Блок под шапкой: слева отступ под колонку имя/чипы; на широкой карточке строка на всю ширину до колонки «Переписка». */
	.s24-offer-below-avatar {
		grid-column: 1;
		grid-row: 2;
		display: flex;
		flex-direction: column;
		gap: var(--s24-space-2);
		padding-left: var(--s24-offer-body-inset);
		min-width: 0;
	}

	[id$="shortoffer"] > .s24-offer-below-avatar {
		grid-column: 1;
		grid-row: 2;
	}

	/* Чипы: в ряд, wrap на узких; занимают всю ширину блока чипов. */
	.s24-offer-meta-row {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--s24-space-2) var(--s24-space-3);
		min-width: 0;
		width: 100%;
		max-width: 100%;
	}

	/* Namerow в шапке автора — inline (имя); звёзды и дата — блоками ниже. */
	.offer_avatar_and_information_block .s24-person__namerow {
		display: inline-flex;
		align-items: center;
		flex-wrap: wrap;
		gap: var(--s24-space-2);
		min-width: 0;
		width: auto;
		flex: 0 0 auto;
	}

	/* Сроки и цена — в ряд, wrap; ширина = 100% контейнера. */
	.s24-offer-meta-row .offer_information {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: var(--s24-space-2) var(--s24-space-3);
		margin: 0;
		padding: 0;
		min-width: 0;
		width: 100%;
		max-width: 100%;
		font-size: var(--s24-caption);
		line-height: var(--s24-lh-base);
		color: var(--s24-text-secondary);
	}

	/* Подсказка валюты — не шире колонки чипов */
	.s24-offer-meta-row .offer_information > .s24-dotted-hint {
		flex: 0 1 auto;
		width: auto;
		max-width: 100%;
		text-align: left;
		margin: 0;
	}

	.s24-offer-meta-row .offer_information strong {
		color: var(--s24-ink);
		font-weight: 700;
	}

	/* Чипы «стоимость / сроки» — брендовая пилюля: круглая «пилюля» иконки
	   на мягком primary-soft + белая карточка с тонкой рамкой, лейбл muted,
	   значение (strong) ink 700. */
	.s24-offer-meta-row .offer_information .s24-offer-meta-chip {
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		gap: var(--s24-space-2);
		width: max-content;
		max-width: 100%;
		min-width: 0;
		background: var(--s24-surface);
		border: 1px solid var(--s24-border);
		border-radius: 999px;
		padding: 4px 14px 4px 4px;
		white-space: nowrap;
		font-size: var(--s24-label);
		color: var(--s24-text-muted);
		font-variant-numeric: tabular-nums;
		box-sizing: border-box;
		box-shadow: var(--s24-shadow-card-soft);
		transition:
			background var(--s24-transition-fast),
			border-color var(--s24-transition-fast),
			box-shadow var(--s24-transition-fast),
			transform var(--s24-transition-fast);
	}

	.s24-offer-meta-row .offer_information .s24-offer-meta-chip:hover {
		border-color: var(--s24-primary-muted);
		box-shadow: var(--s24-shadow-card);
	}

	/* Круглый icon-slot: 26×26, мягкий primary-soft фон, primary-иконка внутри */
	.s24-offer-meta-row .offer_information .s24-offer-meta-chip::before {
		content: '';
		flex: 0 0 auto;
		width: 24px;
		height: 24px;
		border-radius: 50%;
		background-color: var(--s24-primary-soft);
		background-repeat: no-repeat;
		background-position: center;
		background-size: 14px 14px;
	}

	/* Иконка «карта / оплата» — в primary-цвете */
	.s24-offer-meta-row .offer_information .s24-offer-meta-chip--price::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23035bb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E");
	}

	/* Иконка «сроки» — часы, primary-цвет */
	.s24-offer-meta-row .offer_information .s24-offer-meta-chip--time::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23035bb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
	}

	/* Текст предложения — в колонке под шапкой (отступ задаёт .s24-offer-below-avatar). */
	.s24-offer-below-avatar .offer_text {
		padding: 0;
		margin: 0;
		border: none;
		background-color: transparent;
		box-shadow: none;
		font-size: var(--s24-caption);
		line-height: var(--s24-lh-base);
		color: var(--s24-text-secondary);
	}

	/* Дата размещения — в шапке под звёздами, мелким лейбл-размером. */
	.offer_avatar_and_information_block .s24-offer-date {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		font-size: var(--s24-label);
		color: var(--s24-text-muted);
		margin: 0;
		flex: 0 1 auto;
		min-width: 0;
		max-width: 100%;
	}

	.offer_avatar_and_information_block .s24-offer-date::before {
		content: none;
	}

	/* Обрезка длинных офферов до 5 строк + кнопка «Читать полностью».
	   Инициализация класса .is-clamped/.is-expanded выполняется JS-ом
	   (см. inline-script в конце projects.offers.tpl) — только если текст
	   реально переполнен (> 5 строк ИЛИ > 400 символов). */
	.s24-offer-text {
		position: relative;
	}

	.s24-offer-text.is-clamped .s24-offer-text__body {
		display: -webkit-box;
		-webkit-line-clamp: 5;
		line-clamp: 5;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Длинный текст по символам, но укладывается в ≤5 строк — ужимаем сильнее */
	.s24-offer-text.is-clamped.s24-offer-text--char-overflow .s24-offer-text__body {
		-webkit-line-clamp: 3;
		line-clamp: 3;
	}

	.s24-offer-text__toggle {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		background: none;
		border: none;
		padding: 0;
		margin-top: var(--s24-space-1);
		color: var(--s24-primary, #2e6dd4);
		font: inherit;
		cursor: pointer;
	}

	/* Иначе `display: inline-flex` перебивает UA-стиль [hidden] — кнопка
	   остаётся видимой, хотя JS ставит hidden после проверки переполнения. */
	.s24-offer-text__toggle[hidden] {
		display: none !important;
	}

	.s24-offer-text__toggle::after {
		content: '▾';
		display: inline-block;
		transition: transform 150ms ease;
		font-size: 10px;
	}

	.s24-offer-text.is-expanded .s24-offer-text__toggle::after {
		transform: rotate(180deg);
	}

	/* Legacy .clearfix, который мог быть у .offer_buttons. */
	.offer_buttons::before,
	.offer_buttons::after {
		display: none;
		content: none;
	}

	.offer_buttons > div,
	.offer_buttons > a {
		margin-left: 0;
		float: none;
	}

	/* Семантический порядок в flex-ряду (независимо от порядка в DOM):
	   success (зелёные: Исполнитель, Выполнено, На гарантию, Принять) →
	   primary (синие: Редактировать, Обновить, Уточнения, Решение) →
	   warning (янтарные: Арбитраж, Доработка) →
	   danger (красные деструктивы: Отказать, Удалить, Пожаловаться, Блок.) →
	   muted (нейтрально-серые: Пропустить). */
	.offer_buttons > .s24-btn--success { order: 0; }
	.offer_buttons > .s24-btn--primary-outline { order: 1; }
	.offer_buttons > .s24-btn--warning { order: 2; }
	.offer_buttons > .s24-btn--danger-outline { order: 3; }
	.offer_buttons > .s24-btn--muted-outline { order: 4; }
	.offer_buttons > .s24-btn--chip-success { order: 0; }
	.offer_buttons > .s24-btn--chip-primary { order: 1; }
	.offer_buttons > .s24-btn--chip-warning { order: 2; }
	.offer_buttons > .s24-btn--chip-danger { order: 3; }
	.offer_buttons > .s24-btn--chip-muted { order: 4; }

	/* «Исполнитель» среди success-кнопок — первым в порядке: */
	.offer_buttons > .setperformer { order: -1; }

	/* «Переписка» — низ второй зоны рейла (1fr), без absolute (не наезжает на кнопки) */
	[id$="shortoffer"] > .s24-offer-rail > .messages_link {
		grid-row: 2;
		grid-column: 1;
		align-self: end;
		justify-self: end;
		margin: 0;
		padding: 0;
		padding-top: var(--s24-space-3);
		padding-left: var(--s24-space-2);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		text-align: right;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		white-space: nowrap;
	}

	/*
	 * Маркер на блоке текста: .s24-offer-below-avatar--rail-width-from-messages
	 * Ширина колонки рейла = только in-flow «Переписка»; верхние кнопки вне потока
	 * (absolute), чтобы длинная кнопка не сжимала .s24-offer-below-avatar по ширине.
	 * Только если в рейле есть .messages_link; иначе ширина колонки по кнопкам, как раньше.
	 */
	[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		align-content: stretch;
		justify-content: flex-start;
		position: relative;
		grid-template-columns: unset;
		grid-template-rows: unset;
	}

	[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons:not(:empty) {
		position: absolute;
		top: 0;
		right: 0;
		left: auto;
		z-index: 1;
		grid-row: unset;
		grid-column: unset;
		align-self: unset;
		justify-self: unset;
		/* Рейл по ширине только «Переписка» — 100% иначе сжимает absolute-блок и кнопки (фон короче текста). */
		max-width: none;
		min-width: min-content;
		width: max-content;
	}

	[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons > .s24-btn,
	[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons > a.s24-btn {
		max-width: none;
	}

	[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .messages_link {
		margin-top: auto;
		grid-row: unset;
		grid-column: unset;
		align-self: flex-end;
		width: auto;
		max-width: 100%;
	}

	/* Блок диалога (POSTS) — полная ширина, ниже футера */
	.ownlist.offer > .s24-dialog-source {
		grid-column: 1 / -1;
	}

	/* ── Адаптив ───── */

	/* До 768px: двухколоночная сетка оффера сохраняется; рейл — единый блок справа. */
	@media (max-width: 767px) {
		[id$="shortoffer"] > .s24-offer-rail {
			gap: var(--s24-space-2);
		}
	}

	/* Очень узкая карточка (~микро-экран): кнопки рейла на всю ширину столбиком. */
	@container offer-card (max-width: 260px) {
		[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > .s24-btn,
		[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > a.s24-btn {
			flex: 1 1 100%;
			max-width: 100%;
			width: 100%;
		}

		/* Тот же режим «рейл по переписке», но в узком контейнере — снова ограничение по ширине карточки. */
		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons:not(:empty) {
			max-width: 100%;
			min-width: 0;
			width: 100%;
		}

		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons > .s24-btn,
		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons > a.s24-btn {
			max-width: 100%;
		}
	}

	/* Узкая карточка на десктопе: та же сетка шапки, что на десктопе/телефоне (аватар | имя+звёзды / чипы). */
	@container offer-card (max-width: 380px) {
		[id$="shortoffer"] {
			--s24-offer-body-inset: calc(84px + var(--s24-space-4));
		}

		[id$="shortoffer"] > .s24-offer-header-row {
			--s24-offer-header-stack-gap: var(--s24-space-1);
			display: grid;
			grid-template-columns: auto minmax(0, 1fr);
			grid-auto-rows: auto;
			column-gap: var(--s24-space-4);
			row-gap: var(--s24-space-2);
			align-items: start;
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row > .offer_avatar_and_information_block.s24-person {
			display: contents;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar {
			grid-column: 1;
			grid-row: 1 / span 2;
			align-self: start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar img {
			width: 84px;
			height: 84px;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body {
			grid-column: 2;
			grid-row: 1;
			display: flex;
			flex-direction: column;
			flex-wrap: nowrap;
			align-items: flex-start;
			text-align: left;
			gap: var(--s24-offer-header-stack-gap);
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__namerow {
			justify-content: flex-start;
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__name {
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__meta {
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-start;
			align-items: center;
			gap: 2px;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body > .label {
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row > .s24-offer-chips-cluster {
			grid-column: 2;
			grid-row: 2;
			width: 100%;
			max-width: 100%;
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-offer-meta-row,
		[id$="shortoffer"] > .s24-offer-header-row .s24-offer-meta-row .offer_information {
			width: 100%;
			max-width: 100%;
			align-items: flex-start;
			justify-content: flex-start;
		}
	}

	/* До 767px: сброс отступа; при ≤520 и в @container узкой карточки — свой inset под колонку контента. */
	@media (max-width: 767px) {
		[id$="shortoffer"] {
			--s24-offer-body-inset: 0;
		}
	}

	/* ≤640px: шапка → текст → рейл внизу. Кнопки: в один ряд, пока ширина карточки позволяет; при тесноте — по одной в ряд (@container). */
	@media (max-width: 640px) {
		.ownlist.offer {
			grid-template-columns: 1fr;
		}

		[id$="shortoffer"] {
			grid-template-columns: 1fr;
			grid-template-rows: auto auto auto;
		}

		[id$="shortoffer"] > .s24-offer-rail {
			grid-column: 1 / -1;
			grid-row: 3;
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: auto auto;
			justify-items: center;
			align-content: start;
			height: auto;
			width: 100%;
			min-height: 0;
			padding-block: 0;
			padding-inline: 0;
			box-sizing: border-box;
		}

		/* Сброс «рейл только по ширине переписки» — на узкой ширине снова обычная сетка рейла. */
		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) {
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: auto auto;
			position: static;
		}

		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .offer_buttons:not(:empty) {
			position: static;
			inset: auto;
			z-index: auto;
		}

		[id$="shortoffer"] > .s24-offer-below-avatar.s24-offer-below-avatar--rail-width-from-messages + .s24-offer-rail:has(> .messages_link) > .messages_link {
			margin-top: 0;
		}

		[id$="shortoffer"] > .s24-offer-rail > .offer_buttons {
			grid-row: 1;
			grid-column: 1;
			align-self: stretch;
			justify-self: stretch;
			display: flex;
			flex-direction: row;
			flex-wrap: nowrap;
			align-items: center;
			align-content: center;
			justify-content: center;
			gap: var(--s24-space-2);
			width: 100%;
			max-width: 100%;
			padding-inline: var(--s24-space-4);
			box-sizing: border-box;
			min-width: 0;
			/* Если в один ряд не влезает — горизонтальная прокрутка вместо обрезания (узкий контейнер уходит в колонку ниже). */
			overflow-x: auto;
			overflow-y: hidden;
			-webkit-overflow-scrolling: touch;
		}

		/* Порог по ширине #…shortoffer (container offer-card): ниже — в один столбик; иначе — одна линия (при нехватке — гориз. прокрутка). */
		@container offer-card (max-width: 500px) {
			[id$="shortoffer"] > .s24-offer-rail > .offer_buttons {
				flex-direction: column;
				flex-wrap: nowrap;
				align-items: stretch;
				justify-content: flex-start;
				overflow-x: visible;
			}

			[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > .s24-btn,
			[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > a.s24-btn {
				width: 100%;
				max-width: 100%;
				align-self: stretch;
				box-sizing: border-box;
			}
		}

		[id$="shortoffer"] > .s24-offer-rail > .messages_link {
			grid-row: 2;
			grid-column: 1;
			align-self: center;
			justify-self: center;
			margin: 0;
			padding: 0;
			padding-top: var(--s24-space-3);
			width: 100%;
			max-width: 100%;
			justify-content: center;
			text-align: center;
		}

		[id$="shortoffer"] > .s24-offer-header-row {
			grid-column: 1;
			grid-row: 1;
			--s24-offer-header-stack-gap: var(--s24-space-2);
			display: grid;
			grid-template-columns: auto minmax(0, 1fr);
			grid-auto-rows: auto;
			column-gap: var(--s24-space-4);
			row-gap: var(--s24-offer-header-stack-gap);
			margin: var(--s24-space-4) 0;
			align-items: start;
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row > .offer_avatar_and_information_block.s24-person {
			display: contents;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar {
			grid-column: 1;
			grid-row: 1 / span 2;
			align-self: start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__avatar img {
			width: 84px;
			height: 84px;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body {
			grid-column: 2;
			grid-row: 1;
			display: flex;
			flex-direction: column;
			flex-wrap: nowrap;
			align-items: flex-start;
			text-align: left;
			gap: var(--s24-offer-header-stack-gap);
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__namerow {
			justify-content: flex-start;
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__name {
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__meta {
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-start;
			align-items: center;
			gap: 2px;
			margin-top: -6px;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body > .label {
			align-self: flex-start;
		}

		[id$="shortoffer"] > .s24-offer-header-row > .s24-offer-chips-cluster {
			grid-column: 2;
			grid-row: 2;
			width: 100%;
			max-width: 100%;
			min-width: 0;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-offer-meta-row,
		[id$="shortoffer"] > .s24-offer-header-row .s24-offer-meta-row .offer_information {
			width: 100%;
			max-width: 100%;
			align-items: flex-start;
			justify-content: flex-start;
		}

		.s24-offer-below-avatar {
			grid-column: 1;
			grid-row: 2;
			padding-left: 0;
			padding-inline-end: 0;
		}

		[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > .s24-btn,
		[id$="shortoffer"] > .s24-offer-rail > .offer_buttons > a.s24-btn {
			flex: 0 0 auto;
			min-width: 0;
			width: auto;
			max-width: 100%;
			box-sizing: border-box;
		}
	}

	/* ≤520px: имя и рейтинг (звёзды) — в одну строку, звёзды сразу справа от имени. */
	@media (max-width: 520px) {
		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body {
			flex-direction: row;
			flex-wrap: wrap;
			align-items: center;
			column-gap: var(--s24-space-2);
			row-gap: var(--s24-offer-header-stack-gap);
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__body > .label {
			flex: 1 1 100%;
			width: 100%;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__namerow {
			flex: 0 1 auto;
			min-width: 0;
			align-self: center;
		}

		[id$="shortoffer"] > .s24-offer-header-row .s24-person__meta {
			flex: 0 0 auto;
			align-self: center;
		}
	}

	.messages_link {
		text-align: right;
	}

	/* ═══ Offers — чат: сообщения, аватары, статусы ═══ */

	.my_message {
		float: left;
	}

	.not_my_message {
		float: right;
	}

	.online_status {
		background-color: white;
		border-radius: 50%;
		height: 10px;
		position: relative;
		width: 10px;
		margin: 25px -30px -35px;
		float: right;
		display: none;
	}

	.online_status.big {
		position: absolute;
		height: 14px;
		width: 14px;
		margin: -14px 0 0 55px;
	}

	.online_status::before {
		content: '';
		border-radius: 50%;
		position: absolute;
		height: 6px;
		width: 6px;
		margin: 2px;
	}

	.online_status.offline::before {
		background-color: rgba(255, 0, 0, 0.8);
	}

	.online_status.online::before {
		background-color: rgba(39, 208, 39, 0.8);
	}

	.online_status.big::before {
		height: 9px;
		width: 9px;
		margin: 2.5px;
	}

	.unread {
		display: block;
		margin: 14px 10px;
		width: 5px;
		height: 5px;
		border-radius: 50%;
		background-color: rgba(88, 70, 255, 0.6);
	}

	/* ═══ Offers — закладки и фильтр сообщений (только авторы) ═══ */

	.favourite_post {
		background: url(../../../images/icons/default/star2.png) no-repeat;
		background-size: 10px;
		width: 10px;
		height: 10px;
		cursor: pointer;
		position: absolute;
		display: none;
	}

	.my_favourite_post {
		margin: 0;
		float: none;
	}

	.not_my_favourite_post {
		margin: 0;
		float: none;
	}

	.dialog_row:hover .favourite_post {
		display: block;
	}

	.favourite_post.checked {
		background-position: -0.2px -9.5px;
		display: block;
	}

	.filter_posts_dropdown {
		display: inline-block;
		width: 15px;
		margin: 8px 10px 4px 4px;
		padding-left: var(--s24-space-10);
		right: 7%;
		position: absolute;
	}

	.filter_posts_dropdown > .filter_posts_dropimg {
		opacity: 0.6;
		padding: 5px;
		border-radius: 50%;
		background-color: #eee;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		line-height: 0;
		box-sizing: content-box;
		color: #4b5563;
		cursor: pointer;
	}

	.filter_posts_dropdown > .filter_posts_dropimg .filter_posts_dropimg__icon {
		display: block;
		width: 18px;
		height: 18px;
	}

	.filter_posts_dropdown > .filter_posts_dropimg.checked {
		opacity: 1;
		background-color: #afffaf;
		cursor: pointer;
		color: #166534;
	}

	.filter_posts_dropdown-content {
		display: none;
		position: absolute;
		background-color: #f1f1f1;
		min-width: 85px;
		right: -10px;
		bottom: 25px;
		box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
		z-index: 1;
	}

	.filter_posts_dropdown-content a {
		color: black;
		padding: var(--s24-space-3) var(--s24-space-4);
		text-decoration: none;
		display: block;
		cursor: pointer;
	}

	.filter_posts_dropdown-content a.checked,
	.filter_posts_dropdown-content a.checked:hover {
		background-color: #ccc;
	}

	.filter_posts_dropdown-content a:hover { background-color: #ddd; }
	.filter_posts_dropdown:hover .filter_posts_dropdown-content { display: block; }
	.filter_posts_dropdown:hover > .filter_posts_dropimg { opacity: 1; }

	.dropdown > ul > a {
		margin: 0 5px;
	}

	/* ═══ Offers — responsive ═══ */

	/* В s24-components.css на <=979px есть legacy-правило скрытия .dialogavatar.
	   Для проектного диалога переопределяем: аватары должны оставаться видимыми. */
	@media (max-width: 979px) {
		#posts a.dialog_users_avatars.dialogavatar,
		#s24DialogDrawer a.dialog_users_avatars.dialogavatar {
			display: inline-flex;
		}
	}

	@media (max-width: 660px) {
		.favourite_post {
			background-size: 12px;
			width: 12px;
			height: 12px;
		}

		.favourite_post.checked {
			background-position: -0.2px -11.5px;
		}

		.my_favourite_post,
		.not_my_favourite_post {
			margin: 0;
		}

		.projectsposts .s24-dialog-cluster > .favourite_post,
		.s24-dialog-drawer__body .s24-dialog-cluster > .favourite_post {
			width: 12px;
			height: 12px;
		}

		.projectsposts .s24-dialog-cluster > .my_favourite_post,
		.s24-dialog-drawer__body .s24-dialog-cluster > .my_favourite_post {
			right: calc(-1 * var(--s24-space-2) - 12px);
		}

		.projectsposts .s24-dialog-cluster > .not_my_favourite_post,
		.s24-dialog-drawer__body .s24-dialog-cluster > .not_my_favourite_post {
			left: calc(-1 * var(--s24-space-2) - 12px);
		}

		/* На мобиле аватары не прячем: компактные и ближе к краю диалога. */
		.dialog_users_avatars {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			margin-top: 1px;
			width: 22px;
			height: 22px;
			flex: 0 0 22px;
		}

		.dialog_users_avatars,
		.dialog_users_avatars > img {
			display: block;
			width: 22px;
			height: 22px;
			border-radius: 50%;
			object-fit: cover;
			margin-right: 0;
			margin-left: 0;
		}

		.my_dialog_row > a.dialog_users_avatars {
			margin-right: 0;
			margin-left: -10px;
			float: none;
		}

		.not_my_dialog_row > a.dialog_users_avatars {
			margin-left: 0;
			margin-right: -10px;
			float: none;
		}

		/* Прежнее `max-width: 85%` создавало зазор: пузырь сжимался до 85% ширины
		   .s24-dialog-cluster, а кластер оставался по натуральному контенту → между
		   пузырём и `.unread` (flex-сосед кластера с gap: 8px) появлялась дырка,
		   а при >660px всё было нормально. Ограничение ширины уже даёт cluster
		   (max-width: 81%), bubble занимает 100% cluster — без доп. cap. */
		.projectsposts .dialog_row .dialog.not_my_message,
		.projectsposts .dialog_row .dialog.my_message {
			margin: 0 0 8px 0;
			box-sizing: border-box;
		}

		.unread {
			margin-right: var(--s24-space-3);
			margin-left: var(--s24-space-3);
		}

	}

	/* Раскладка карточки предложения теперь полностью управляется @container
	   offer-card выше — глобальный @media-брейкпоинт для offer_* удалён,
	   чтобы при узком viewport+широком контейнере (и наоборот) ничего
	   не ломалось. Здесь остались только НЕ связанные с offer-* правила. */
	@media (max-width: 480px) {
		.ownlist {
			padding: var(--s24-space-2);
		}

		.messages_link {
			text-align: center;
		}

		.dropdown {
			display: none;
		}

		.online_status_dialog {
			display: none;
		}

		.offerowneravatar > .online_status::before {
			margin: 2.5px -4px;
		}

		#claimshowmemorelink {
			display: none;
		}

		.modal-body {
			padding: 0;
		}
	}

	@media (max-width: 360px) {
		.my_favourite_post,
		.not_my_favourite_post {
			margin: 0;
		}

		.dialog_row {
			margin: 6px;
		}

		.unread {
			margin-right: 5px;
			margin-left: 5px;
		}
	}

	/* ═══ Offers list — шапки, контейнеры, админ-подсветка ═══ */

	.s24-offers-heading {
		font-size: var(--s24-heading-sm);
		margin: var(--s24-space-3) 0;
		line-height: 1.8;
	}

	/* Админская подсветка карточки предложения при наличии жалобы */
	.s24-offer-row--claim {
		background-color: var(--s24-warning);
	}

	/* ═══ Чат/переписка — подсветки и сервисные кнопки ═══ */

	/* Сообщение с warning-флагом (только для админа) */
	.s24-dialog-post--warning {
		background-color: var(--s24-warning);
	}

	/* Админская кнопка удаления сообщения (крестик) */
	.s24-postdelete {
		margin: -13px -8px;
		width: 13px;
		padding: var(--s24-space-1);
		float: right;
		cursor: pointer;
	}

	.s24-postdelete img {
		cursor: pointer;
		vertical-align: top;
	}

	/* DnD-зона файлов в форме отправки сообщения */
	.s24-dialog-dndfiles {
		width: 90%;
		margin: auto;
	}

	/* Кнопка отправки в обычной (не drawer) форме переписки */
	.s24-dialog-postform-button {
		margin: var(--s24-space-2) 0;
		min-width: 100px;
	}

	/* Алерты-уведомления внутри переписки (пустой диалог / блокировка / скрытие).
	   Ширина: ранее width90/width95; теперь 100% колонки переписки. */
	.projectsposts .alert.s24-alert--dialog-empty,
	.projectsposts .alert.s24-alert--dialog-info,
	.s24-dialog-drawer__body .alert.s24-alert--dialog-empty,
	.s24-dialog-drawer__body .alert.s24-alert--dialog-info {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.s24-alert--dialog-empty {
		margin: var(--s24-space-8) auto var(--s24-space-6);
	}

	.s24-alert--dialog-info {
		font-size: var(--s24-body-sm);
		margin: var(--s24-space-5) auto;
	}

	/* ═══ Блок отзыва Заказчика по проекту (projects.tpl — внизу страницы) ═══ */
	/* Wrapper над {PRJ_REVIEW_STARS} и {PRJ_REVIEW_TEXT}. Замена legacy-утилит `margin10 padding10`. */
	.s24-prj-review-display {
		margin: var(--s24-space-2);
		padding: var(--s24-space-2);
	}
}

/* ═══ Размещение заказа (modules/projects/tpl/projects.add.tpl) ═══ */
@scope (.s24-prjadd-page) {
	.s24-prjadd-page__stack {
		max-width: var(--s24-content-narrow);
		margin-left: auto;
		margin-right: auto;
		width: 100%;
		box-sizing: border-box;
	}

	.s24-tabs-content {
		padding: 0;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.s24-tabs-content > .tab-pane {
		padding: 0;
		border: 0;
		background: transparent;
	}

	.s24-form-layout {
		margin-top: 0;
		margin-bottom: var(--s24-space-4);
	}

	/* Лейблы над полями */
	.s24-prjadd .s24-form__body table > tbody > tr {
		grid-template-columns: 1fr;
		gap: var(--s24-space-1);
	}

	.s24-prjadd .s24-form__body > table > tbody {
		gap: var(--s24-space-5);
	}

	.s24-prjadd .s24-form__label {
		font-weight: 600;
		color: var(--s24-ink);
		font-size: var(--s24-caption);
	}

	/* Парные строки: две колонки по ширине контента */
	.s24-prjadd .s24-form__body table > tbody > tr.s24-prjadd__pair {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
		gap: var(--s24-space-1) var(--s24-space-6);
		width: 100%;
		box-sizing: border-box;
	}

	.s24-prjadd__pair > td:nth-child(1) { grid-column: 1; grid-row: 1; }
	.s24-prjadd__pair > td:nth-child(2) { grid-column: 1; grid-row: 2; }
	.s24-prjadd__pair > td:nth-child(3) { grid-column: 2; grid-row: 1; }
	.s24-prjadd__pair > td:nth-child(4) { grid-column: 2; grid-row: 2; }

	.s24-prjadd__pair > td:nth-child(2),
	.s24-prjadd__pair > td:nth-child(4) {
		min-width: 0;
	}

	.s24-prjadd .s24-form__body table > tbody > tr.s24-prjadd__triple {
		grid-template-columns: 1fr 1fr 1fr;
		grid-template-rows: auto auto;
		gap: var(--s24-space-1) var(--s24-space-4);
		width: 100%;
		box-sizing: border-box;
	}

	.s24-prjadd__triple > td:nth-child(1) { grid-column: 1; grid-row: 1; }
	.s24-prjadd__triple > td:nth-child(2) { grid-column: 1; grid-row: 2; }
	.s24-prjadd__triple > td:nth-child(3) { grid-column: 2; grid-row: 1; }
	.s24-prjadd__triple > td:nth-child(4) { grid-column: 2; grid-row: 2; }
	.s24-prjadd__triple > td:nth-child(5) { grid-column: 3; grid-row: 1; }
	.s24-prjadd__triple > td:nth-child(6) { grid-column: 3; grid-row: 2; }

	.s24-prjadd__triple > td:nth-child(2),
	.s24-prjadd__triple > td:nth-child(4),
	.s24-prjadd__triple > td:nth-child(6) {
		min-width: 0;
	}

	/* Между карточкой формы и блоком кнопки — только margin-top у .s24-form-actions */
	.s24-form-layout.s24-prjadd:has(+ .s24-form-actions.s24-prjadd__submit) {
		margin-bottom: 0;
	}

	/* Сабмит: как чекаут (sbr/marketorders) — кнопка, под ней .s24-mo-legal */
	.s24-prjadd__submit.s24-form-actions {
		margin: var(--s24-space-6) 0 3rem;
	}

	.s24-prjadd__submit.s24-form-actions.s24-form-actions--stack {
		margin-bottom: var(--s24-space-8);
	}

	.s24-prjadd #rtitle,
	.s24-prjadd #formtext,
	.s24-prjadd #htext {
		width: 100%;
	}

	.s24-prjadd .select-search-block {
		width: 100%;
		min-width: 0;
	}

	.s24-prjadd .select-search-block > .input-select-search {
		width: 100%;
	}

	.s24-prjadd .s24-prjadd-tel-half {
		width: 100%;
		min-width: 0;
	}

	.s24-prjadd .s24-prjadd-tel-half > input {
		width: 100%;
	}

	.s24-prjadd #formtext {
		min-height: 190px;
	}

	.s24-prjadd__authors-section {
		display: flex;
		flex-direction: column;
		gap: var(--s24-space-3);
	}

	.s24-prjadd__authors-section + .s24-prjadd__authors-section {
		margin-top: var(--s24-space-6);
		padding-top: var(--s24-space-6);
		border-top: 1px solid var(--s24-border);
	}

	.s24-prjadd-cancel {
		padding: 2px 6px;
		margin-left: 10px;
		cursor: pointer;
		color: var(--s24-text-muted);
	}

	.s24-prjadd-cancel:hover {
		color: var(--s24-danger);
	}

	.s24-prjadd-invite {
		padding: 7px 14px;
		border-radius: var(--s24-radius-sm);
		border: 1px solid var(--s24-border);
		background: var(--s24-surface-alt);
		color: var(--s24-text);
		text-decoration: none;
		display: inline-flex;
		align-items: center;
		line-height: 1.2;
		cursor: pointer;
		transition: border-color var(--s24-transition-fast), color var(--s24-transition-fast);
	}

	.s24-prjadd-invite:hover {
		border-color: var(--s24-primary);
		color: var(--s24-primary);
	}

	/* Приглашённые авторы (чипы под заголовком формы) */
	.s24-prjadd-invites {
		margin-bottom: var(--s24-space-5);
	}

	.s24-prjadd-invites__label {
		margin: 0 0 var(--s24-space-2);
		/* как у полей таблицы: .s24-prjadd .s24-form__label уже задаёт вес/цвет */
		display: block;
	}

	.s24-prjadd-invited__list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--s24-space-3);
	}

	.s24-prjadd-invited-chip {
		display: inline-flex;
		align-items: center;
		gap: var(--s24-space-2);
		padding: var(--s24-space-1) var(--s24-space-2) var(--s24-space-1) var(--s24-space-1);
		background: var(--s24-surface-alt);
		border: 1px solid var(--s24-border);
		border-radius: 9999px;
		box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
		max-width: 100%;
		box-sizing: border-box;
	}

	.s24-prjadd-invited-chip__avatar {
		flex-shrink: 0;
		line-height: 0;
		border-radius: 50%;
		box-shadow: 0 0 0 2px var(--s24-surface);
	}

	.s24-prjadd-invited-chip__avatar img {
		width: 32px;
		height: 32px;
		border-radius: 50%;
		object-fit: cover;
		display: block;
	}

	.s24-prjadd-invited-chip__cancel.s24-btn {
		flex-shrink: 0;
		min-width: 1.75rem;
		min-height: 1.75rem;
		padding: 0;
		margin: 0;
		border-radius: 50%;
		font-size: 0.75rem;
		line-height: 1;
		color: var(--s24-text-muted);
		border: 0;
		background: transparent;
	}

	.s24-prjadd-invited-chip__cancel.s24-btn:hover,
	.s24-prjadd-invited-chip__cancel.s24-btn:focus-visible {
		color: var(--s24-danger);
		background: color-mix(in srgb, var(--s24-danger) 12%, transparent);
	}

	.s24-prjadd-invited-chip .s24-prjadd-cancel {
		margin: 0;
	}

	@media (max-width: 767px) {
		.s24-prjadd .s24-form__body table > tbody > tr.s24-prjadd__pair {
			grid-template-columns: 1fr;
		}

		.s24-prjadd__pair > td:nth-child(3) { grid-column: 1; grid-row: 3; }
		.s24-prjadd__pair > td:nth-child(4) { grid-column: 1; grid-row: 4; }

		.s24-prjadd .s24-form__body table > tbody > tr.s24-prjadd__triple {
			grid-template-columns: 1fr;
		}

		.s24-prjadd__triple > td:nth-child(3) { grid-column: 1; grid-row: 3; }
		.s24-prjadd__triple > td:nth-child(4) { grid-column: 1; grid-row: 4; }
		.s24-prjadd__triple > td:nth-child(5) { grid-column: 1; grid-row: 5; }
		.s24-prjadd__triple > td:nth-child(6) { grid-column: 1; grid-row: 6; }
	}

	/* ═══ Preadd (projects.preadd.tpl): заголовок карточки = «Дополнительная информация»; название — первое поле формы ═══ */
	.s24-prjadd-preadd__header.s24-form__header {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.s24-prjadd-preadd__header-title {
		font-size: var(--s24-heading-md);
		font-weight: 700;
		line-height: 1.3;
		color: var(--s24-ink);
	}

	.s24-prjadd-preadd__header-desc {
		margin: var(--s24-space-2) 0 0;
		font-weight: 400;
	}

	.s24-prjadd-preadd__promo-row > td {
		padding-top: var(--s24-space-2);
	}

}

/*
 * Партнёрская программа — типографика вне @scope (.s24-prj-list):
 * в старых браузерах без @scope правила внутри scope не работают, из‑за чего
 * текст в .well выглядел «наследованием от body» и казался без размеров.
 */
.s24-partner-page .span3 > .well:not(.s24-well--center) {
	font-size: var(--s24-body-sm);
	line-height: var(--s24-lh-base);
	color: var(--s24-text);
}

.s24-partner-page .span3 > .well:not(.s24-well--center) > div + div {
	margin-top: var(--s24-space-1);
}

.s24-partner-page .span3 > .well:not(.s24-well--center) b {
	font-weight: 600;
}

.s24-partner-page .s24-partner-subs {
	font-size: var(--s24-caption);
	line-height: var(--s24-lh-base);
}

/* Промо-карточки партнёрки: те же токены, что и инфо-блоки (без скачка к «дефолту» браузера) */
.s24-partner-page .well.s24-well--center .s24-well-promo__title {
	font-size: var(--s24-body-sm);
	font-weight: 700;
	line-height: var(--s24-lh-tight);
	margin-bottom: var(--s24-space-2);
}

.s24-partner-page .well.s24-well--center .s24-well-promo__lead {
	font-size: var(--s24-caption);
	line-height: var(--s24-lh-base);
	color: var(--s24-text-muted);
	margin-bottom: var(--s24-space-3);
}

/* ═══ Модалка «Решение комиссии» (projects.offers.tpl — CLAIM_DECISION) ═══
   Ряд: % (узкая капсула) + сумма с суффиксом валюты в одной линии — как s24-input-money
   на балансе / чекауте.

   Перебиваем глобальное `.modal .modal-body .table { table-layout: fixed }` (s24-components.css),
   иначе колонки делят ширину поровну / с большим зазором между подписью и полями. */
#ClaimDecisionForm.modal .modal-body .table.s24-claim-decision__table {
	width: 100%;
	table-layout: auto;
	border-collapse: collapse;
	margin-bottom: 0;
}

#ClaimDecisionForm .s24-claim-decision__table > tbody > tr > td,
#ClaimDecisionForm .s24-claim-decision__table > tbody > tr > th {
	border-bottom: none;
	vertical-align: middle;
	padding-top: var(--s24-space-2);
	padding-bottom: var(--s24-space-2);
}

#ClaimDecisionForm .s24-claim-decision__intro {
	padding-bottom: var(--s24-space-4);
}

#ClaimDecisionForm .s24-claim-decision__intro textarea.s24-input-fill {
	width: 100%;
	box-sizing: border-box;
	min-height: 7.5rem;
}

/* Узкая колонка подписи — вплотную к полям (перебиваем «раздувание» от fixed-table) */
#ClaimDecisionForm .s24-claim-decision__label {
	width: auto;
	max-width: 7rem;
	white-space: nowrap;
	padding-right: 0.5rem;
	padding-left: 0;
	font-size: var(--s24-caption);
	font-weight: 500;
	color: var(--s24-text);
	text-align: left;
	vertical-align: middle;
}

/* Вторая колонка сразу после подписи, без лишнего отступа слева */
#ClaimDecisionForm .s24-claim-decision__table > tbody > tr > td:not(.s24-claim-decision__intro) {
	width: auto;
	padding-left: 0;
}

#ClaimDecisionForm .s24-claim-decision__amount-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--s24-space-2);
	min-width: 0;
}

/* Узкая капсула под проценты */
#ClaimDecisionForm .s24-claim-decision__pct.s24-input-money {
	max-width: 5.25rem;
	flex: 0 0 auto;
}

/* Сумма — компактная капсула рядом с % */
#ClaimDecisionForm .s24-claim-decision__amount-row > .s24-input-money:not(.s24-claim-decision__pct) {
	max-width: 11rem;
	flex: 0 1 auto;
}

/* number в капсуле % — те же отступы под суффикс, что у .s24-input-money input */
#ClaimDecisionForm .s24-claim-decision__pct.s24-input-money input[type="number"] {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	text-align: left;
	padding-right: calc(var(--s24-space-3) + 1rem + var(--s24-space-2));
	min-height: 48px;
	appearance: textfield;
	-moz-appearance: textfield;
}

#ClaimDecisionForm .s24-claim-decision__pct.s24-input-money input[type="number"]::-webkit-outer-spin-button,
#ClaimDecisionForm .s24-claim-decision__pct.s24-input-money input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Очень узкая модалка — только тогда переносим поля в столбец */
@media (max-width: 360px) {
	#ClaimDecisionForm .s24-claim-decision__amount-row {
		flex-wrap: wrap;
	}

	#ClaimDecisionForm .s24-claim-decision__pct.s24-input-money,
	#ClaimDecisionForm .s24-claim-decision__amount-row > .s24-input-money:not(.s24-claim-decision__pct) {
		max-width: 100%;
		flex: 1 1 100%;
	}
}
