:root {
	--bg-main: #06111D;
	--bg-sidebar: #071421;
	--bg-panel: #0B1A2A;
	--bg-card: #0F2033;
	--bg-card-hover: #142A42;
	--bg-input: #FFFFFF;

	--primary: #173B63;
	--primary-hover: #1F4F83;

	--accent: #D8A545;
	--accent-hover: #E8B957;
	--accent-dark: #9A6F22;
	--accent-rgb: 216,165,69; /* для rgba(var(--accent-rgb), α) */
	--accent-gradient: linear-gradient(135deg, var(--accent-hover) 0%, #C8901F 100%);
	--accent-gradient-hover: linear-gradient(135deg, #F0C060 0%, #D8A030 100%);
	/* светлее основного: кнопки «Начать чат» и в cookie-баннере */
	--accent-gradient-soft: linear-gradient(135deg, #f0c66f, var(--accent));
	--accent-gradient-soft-hover: linear-gradient(135deg, #ffd77d, #e3b456);

	--text-main: #F2F5F8;
	--text-secondary: #AAB6C4;
	--text-muted: #6F7C8C;
	--text-on-accent: #1a0f00; /* текст и иконки на золотом фоне */
	/* поля ввода на белом фоне (--bg-input) */
	--text-input: #000000;
	--text-input-placeholder: rgba(0,0,0,0.45);

	--border-soft: rgba(255,255,255,0.08);
	--border-strong: rgba(var(--accent-rgb),0.45);

	--scrollbar-thumb: #2A3F54;
	--scrollbar-track: #0A1827;

	--success: #5EBB72;
	--danger: #E45B5B;
	--warning: #D8A545;

	--shadow-card: 0 12px 32px rgba(0,0,0,0.35);
	--shadow-soft: 0 6px 18px rgba(0,0,0,0.25);

	--radius-xs: 6px;
	--radius-sm: 10px;
	--radius-md: 14px;
	--radius-lg: 18px;
	--radius-xl: 24px;

	--font-12: 12px;
	--font-14: 14px;
	--font-base: 16px;
	--font-18: 18px;
	--font-22: 22px;
	--font-28: 28px;
	--font-38l: 36px;

	--header-size: 64px;

	--max-desktop-size: 1200px;
	--max-mobile-size: 600px;

	--font-name: Inter, "Segoe UI", Roboto, Arial, sans-serif;
}
* {
	font-family: var(--font-name);
}
button {
	outline: none;
	border: none;
}
html {
	height: 100%;
}
html, body {
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.45;
	color: var(--text-main);
	background: var(--bg-main);
}
body {
	height: 100%;
}

.dialog_item__role,
.header__text_title,
.dialog_item__content,
.dialog_item__name,
.header__text,
.header__subtext_title {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.two_columns {
	display: flex;
	flex-direction: row;
	/*height: 100vh;*/
	height: 100dvh;
	width: 100%;
	max-width: var(--max-desktop-size);
	padding: 0 20px;
	margin: 0 auto;
	overflow: hidden;
}
.one_column {
	display: flex;
	flex-direction: column;
	height: 100%;
	width: 100%;
	max-width: var(--max-mobile-size);
	margin: 0 auto;
	overflow: hidden;
}
.main {
	display: flex;
	gap: 20px;
	flex-direction: column;
}
.column_1 {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 360px;
	min-width: 360px;
	height: 100dvh;
	overflow: hidden;
	border-right: 1px solid var(--border-soft);
}

.column_2 {
	display: flex;
	flex-direction: column;
	height: 100dvh;
	width: 100%;
	overflow: hidden;
	background: linear-gradient(45deg, #0B2135 0%, var(--bg-main) 100%);
}
.column_header {
	height: var(--header-size);
	min-height: var(--header-size);
	width: 100%;
	display: flex;
	gap: 8px;
	padding: 14px;
	flex-direction: row;
	align-items: center;
	border-bottom: 1px solid var(--accent);
}
.column_header:first-child:has(> .header__arrow_back:first-child) {
	padding: 14px 14px 14px 0;
}
.header_logo {
	gap: 5px;
	width: 100%;
	display: flex;
	flex-direction: row;
	align-items: center;
	text-decoration: none;
}
.header_logo__img {
	width: 50px;
	height: 50px;
}
.header_logo__text {
	font-size: 28px;
	font-weight: 700;
	color: var(--text-main);
}
.header_logo__text span {
	font-size: 20px;
	color: var(--accent);
}
.header_logo__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.header_logo__body .header_logo__text {
	line-height: 1.1;
}
.header_tagline {
	font-size: 12px;
	color: var(--text-secondary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.header__arrow_back {
	width: var(--header-size);
	height: var(--header-size);
	min-width: var(--header-size);
	min-height: var(--header-size);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
}
.header__avatar {
	overflow: hidden;
	width: 50px;
	height: 50px;
	min-width: 50px;
	min-height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	text-decoration: none;
	color: inherit;
}
.header__avatar__img {
	border-radius: 50%;
	width: 50px;
	height: 50px;
	min-width: 50px;
	min-height: 50px;
	overflow: hidden;
	object-fit: cover;
}
/* зелёная точка «онлайн» на аватарке */
.avatar_online {
	position: absolute;
	right: 3px;
	bottom: 3px;
	height: 12px;
	width: 12px;
	background-color: #8ac176;
	border-radius: 50%;
	border: 1px solid #fff;
	z-index: 2;
}
.avatar_online--lg {
	right: 6px;
	bottom: 6px;
	height: 18px;
	width: 18px;
	border-width: 2px;
}
.header__text {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-decoration: none;
	color: inherit;
}
.header__text_title {
	font-size: 18px;
	font-weight: 400;
}
.header__subtext_title {
	font-size: 13px;
	olor: var(--text-secondary);
}
.header__amount {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	background: var(--bg-card);
	color: var(--text-main);
	font-size: 15px;
	line-height: 1.2;
	padding: 6px 12px;
	font-weight: 700;
	gap: 6px;
	text-decoration: none;
}
.header__amount_icon {
	flex-shrink: 0;
	fill: var(--accent);
}
/* меню "Сохранить беседу" в шапке чата */
.header__menu_wrap {
	position: relative;
	flex-shrink: 0;
}
.header__menu_btn {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	cursor: pointer;
}
.header__menu_btn svg {
	fill: var(--text-secondary);
	transition: fill 0.15s;
}
.header__menu_btn:hover svg {
	fill: var(--accent);
}
.header__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	z-index: 200;
	min-width: 220px;
}
.column_content {
	display: flex;
	width: 100%;
	flex-grow: 1;
	flex-direction: column;
	scroll-behavior: smooth;
	overflow-x: hidden;
	overflow-y: auto;
}
/* WebKit браузеры (Chrome, Edge, Safari, Opera) */
.column_content::-webkit-scrollbar,
.messages_list::-webkit-scrollbar,
.dialog_filter_menu::-webkit-scrollbar,
.aw_scroll_area::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}

/* Дорожка (трек) — фон по которому движется ползунок */
.column_content::-webkit-scrollbar-track,
.messages_list::-webkit-scrollbar-track,
.dialog_filter_menu::-webkit-scrollbar-track,
.aw_scroll_area::-webkit-scrollbar-track {
	background: var(--scrollbar-track);
	border-radius: 10px;
}

/* Ползунок — сам скролл */
.column_content::-webkit-scrollbar-thumb,
.messages_list::-webkit-scrollbar-thumb,
.dialog_filter_menu::-webkit-scrollbar-thumb,
.aw_scroll_area::-webkit-scrollbar-thumb {
	background: var(--scrollbar-thumb);
	border-radius: 10px;
	transition: background 0.2s ease;
}

/* Ползунок при наведении мыши */
.column_content::-webkit-scrollbar-thumb:hover,
.messages_list::-webkit-scrollbar-thumb:hover,
.dialog_filter_menu::-webkit-scrollbar-thumb:hover,
.aw_scroll_area::-webkit-scrollbar-thumb:hover {
	background: #3E5A78;
}

/* Ползунок при активном перетаскивании (зажат) */
.column_content::-webkit-scrollbar-thumb:active,
.messages_list::-webkit-scrollbar-thumb:active,
.dialog_filter_menu::-webkit-scrollbar-thumb:active,
.aw_scroll_area::-webkit-scrollbar-thumb:active {
	background: #5A7D9E;
}

/* Уголок, где пересекаются два скролла (если есть горизонтальный) */
.column_content::-webkit-scrollbar-corner,
.messages_list::-webkit-scrollbar-corner,
.dialog_filter_menu::-webkit-scrollbar-corner,
.aw_scroll_area::-webkit-scrollbar-corner {
	background: var(--bg-main);
}
.column_footer {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-height: 30vh;
	padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
}
/* пока показан плейсхолдер картинки/видео, 30vh не хватает - форма ввода выдавливалась за экран */
.column_footer:has(.message_is_typing[data-typing="1"][data-media="image"], .message_is_typing[data-typing="1"][data-media="video"]) {
	max-height: none;
}
.column_footer > * {
	flex-shrink: 0;
}
/* На десктопе (two_columns) поднимаем поле ввода сообщения, чтобы его низ
   совпадал с отступом кнопки "Создай советника и зарабатывай" в сайдбаре
   (margin: 10px у .dialog_list_footer) */
.two_columns .column_footer {
	padding-bottom: 10px;
}
.form_message__wrap {
	border-radius: 26px;
	background-color: #FFFFFF;
}
.form_message {
	position: relative;
	display: flex;
	flex-direction: row;
	width: 100%;
}
.form_message__files svg {
	fill: var(--text-input) !important;
}
.form_message__attachments {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	padding: 8px;
}
.form_message__attachments:empty {
	display: none;
	padding: 0;
}
.form_message__attachment {
	display: flex;
	flex-direction: column;
	width: 110px;
	flex-shrink: 0;
	border-radius: 10px;
	overflow: hidden;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
}
.form_message__attachment_thumb {
	position: relative;
	width: 100%;
	height: 64px;
	flex-shrink: 0;
}
.form_message__attachment_link {
	display: block;
	width: 100%;
	height: 100%;
}
.form_message__attachment_preview {
	width: 100%;
	height: 100%;
	background-color: var(--bg-input);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	transition: opacity 0.15s;
}
.form_message__attachment_preview--file {
	display: flex;
	align-items: center;
	justify-content: center;
}
.form_message__attachment_preview--file svg {
	fill: var(--text-secondary);
}
.form_message__attachment--uploading .form_message__attachment_preview {
	opacity: 0.4;
}
.form_message__attachment_info {
	padding: 6px 8px 8px;
	min-width: 0;
}
.form_message__attachment_name {
	font-size: 11px;
	line-height: 1.3;
	color: var(--text-main);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.form_message__attachment_size {
	font-size: 10px;
	line-height: 1.3;
	color: var(--text-secondary);
	margin-top: 2px;
}
.form_message__attachment_spinner {
	display: none;
	position: absolute;
	inset: 0;
	align-items: center;
	justify-content: center;
}
.form_message__attachment--uploading .form_message__attachment_spinner {
	display: flex;
}
.form_message__attachment_spinner::after {
	content: "";
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	animation: form_message_attachment_spin 0.7s linear infinite;
}
@keyframes form_message_attachment_spin {
	to { transform: rotate(360deg); }
}
.form_message__attachment_remove {
	position: absolute;
	top: 2px;
	right: 2px;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	padding: 0;
	background: rgba(0, 0, 0, 0.65);
	cursor: pointer;
}
.form_message__attachment_remove svg {
	width: 10px;
	height: 10px;
	fill: #fff;
}
.form_message__hint {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 16px;
	right: 16px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 12px;
	padding: 6px 8px 6px 12px;
	background-color: var(--danger);
	color: #fff;
	font-size: 13px;
	line-height: 1.3;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-soft);
	opacity: 0;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 0.2s, transform 0.2s;
}
.form_message__hint--visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.form_message__hint_text {
	flex: 1 1 auto;
}
.form_message__hint_btn {
	flex-shrink: 0;
	padding: 4px 12px;
	background: #fff;
	color: var(--danger);
	font-size: 12px;
	font-weight: 700;
	border-radius: 999px;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.15s;
}
.form_message__hint_btn:hover {
	opacity: 0.85;
}
.form_message__input--shake {
	animation: form_message_shake 0.3s;
}
@keyframes form_message_shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-4px); }
	75% { transform: translateX(4px); }
}
.form_message__files {
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	align-self: end;
}
.form_message__input {
	flex-grow: 1;
	height: 100%;
	padding: 14px 10px 14px 0;
	font-size: 16px;
	background: none;
	outline: none;
	border: none;
	color: var(--text-input);
	line-height: 20px;
}
.form_message__files.dn + .form_message__input {
	padding-left: 20px;
}
.form_message__input:focus::placeholder {
	color: transparent;
}

.form_message__input--auto {
    resize: none;
    overflow: hidden;
	overflow-y: auto;
	min-height: 34px;
	max-height: 30vh;
    height: auto;
}
.form_message__btn_send {
	display: flex;
	justify-content: center;
	align-items: center;
	align-self: end;
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	border-radius: 50%;
	cursor: pointer;
	background-color: var(--accent);
	opacity: 1;
	transition: opacity linear 0.2s;
	border: none;
	outline: none;
}
.form_message__btn_send:disabled {
	opacity: 0.5;
}

.messages_list {
	display: flex;
	flex-direction: column-reverse;
	flex-grow: 1;
	justify-content: end;
	width: 100%;
	gap: 15px;
	padding: 10px;
	overflow: hidden;
	overflow-y: auto;
}
.message_wrap {
	display: flex;
	flex-direction: column;
	width: 100%;
}
.message_wrap[data-msg-out="0"] {
	align-items: start;
}
.message_wrap[data-msg-out="1"] {
	align-items: end;
}

.message_wrap[data-msg-out="0"] > .message {
	background-color: var(--bg-card-hover);
}

.message_wrap[data-msg-out="1"] > .message {
	background-color: var(--accent-dark);
}

/* сервисное сообщение от советника (ошибка генерации, отказ модерации и т.п.) - серым */
.message_wrap[data-msg-out="0"] > .message--service {
	background-color: #2A2F36;
	color: var(--text-secondary);
}

.message_wrap[data-msg-out="0"] .message__status_icon {
	display: none;
}

.message {
	display: flex;
    flex-direction: column;
    border-radius: 8px;
    padding: 5px 10px;
    max-width: 80%;
}
@media (max-width: 480px) {
	.message {
		max-width: 95%;
	}
}
.message_footer {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: end;
	align-items: center;
	font-size: 12px;
	gap: 6px 12px;
}
/* отступ только когда в футере есть кнопки - пустой футер есть у каждого сообщения */
.message_footer:has(.message_action_btn) {
	margin-top: 8px;
}
/* у фото-сообщения внутренний отступ пузыря всего 6px - кнопки не прижимаем к краям */
.message--photo .message_footer:has(.message_action_btn) {
	padding: 0 6px 4px;
}
.message_action_btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0;
	border: none;
	background: none;
	color: var(--text-secondary);
	font-size: 12px;
	cursor: pointer;
}
.message_action_btn svg {
	fill: var(--text-secondary);
	transition: fill 0.15s;
}
.message_action_btn:hover,
.message_action_btn.is-active {
	color: var(--accent);
}
.message_action_btn:hover svg,
.message_action_btn.is-active svg {
	fill: var(--accent);
}
/* в своих сообщениях фон пузыря золотой - акцентный цвет на нём не виден, кнопки светлые */
.message_wrap[data-msg-out="1"] .message_action_btn {
	color: var(--text-main);
	opacity: 0.75;
	transition: opacity 0.15s;
}
.message_wrap[data-msg-out="1"] .message_action_btn svg {
	fill: var(--text-main);
}
.message_wrap[data-msg-out="1"] .message_action_btn:hover,
.message_wrap[data-msg-out="1"] .message_action_btn.is-active {
	color: var(--text-main);
	opacity: 1;
}
.message_wrap[data-msg-out="1"] .message_action_btn:hover svg,
.message_wrap[data-msg-out="1"] .message_action_btn.is-active svg {
	fill: var(--text-main);
}
/* кнопка только с иконкой (копировать, поделиться, избранное) - подпись в title, зона нажатия побольше */
.message_action_btn--icon {
	justify-content: center;
	min-width: 24px;
	min-height: 24px;
}
.message_action_btn.is-loading {
	opacity: 0.6;
	cursor: progress;
}
/* звёздочка «В избранное»: контур, в избранном - залита (Chats\SavedMessage) */
.message_save_btn svg,
.message_save_btn:hover svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linejoin: round;
}
.message_save_btn.is-active svg {
	fill: var(--accent);
	stroke: var(--accent);
}
/* подсветка ответа при переходе из избранного (/chat/<id>/#message<msg_id>) */
.message_wrap--highlight .message {
	box-shadow: 0 0 0 2px var(--accent);
	transition: box-shadow 0.4s;
}
.message_content {
	font-size: 16px;
	line-height: 20px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
}
.message_content__text_row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
}
.message_content__text {
	flex: 1 1 auto;
	overflow: hidden;
}
.message_content__text > *:first-child {
	margin-top: 0;
}
.message_content__text > *:last-child {
	margin-bottom: 0;
}
.message_content__text p {
	margin: 0 0 8px;
}
.message_content__text ul,
.message_content__text ol {
	margin: 0 0 8px;
	padding-left: 22px;
}
.message_content__text li {
	margin-bottom: 4px;
}
.message_content__text li > ul,
.message_content__text li > ol {
	margin-top: 4px;
	margin-bottom: 0;
}
.message_content__text h1,
.message_content__text h2,
.message_content__text h3,
.message_content__text h4,
.message_content__text h5,
.message_content__text h6 {
	margin: 14px 0 8px;
	line-height: 1.3;
	font-weight: 700;
	color: var(--text-main);
}
.message_content__text h1,
.message_content__text h2 {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--border-soft);
}
.message_content__text h1 {
	font-size: 21px;
	color: var(--accent);
}
.message_content__text h2 {
	font-size: 19px;
	color: var(--accent);
}
.message_content__text h3 {
	font-size: 17px;
}
.message_content__text h4 {
	font-size: 16px;
}
.message_content__text h5,
.message_content__text h6 {
	font-size: 14px;
	color: var(--text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.message_content__text strong {
	font-weight: 700;
	color: var(--text-main);
}
.message_content__text a {
	color: var(--accent);
	text-decoration: underline;
	word-break: break-word;
}
.message_content__text code {
	background-color: rgba(0,0,0,0.25);
	border-radius: 4px;
	padding: 2px 5px;
	font-size: 14px;
	word-break: break-word;
}
.message_content__text pre {
	background-color: rgba(0,0,0,0.25);
	border-radius: var(--radius-xs);
	padding: 10px 12px;
	margin: 0 0 8px;
	overflow-x: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(var(--accent-rgb), 0.35) transparent;
}
.message_content__text pre::-webkit-scrollbar {
	height: 4px;
}
.message_content__text pre::-webkit-scrollbar-track {
	background: transparent;
}
.message_content__text pre::-webkit-scrollbar-thumb {
	background: rgba(var(--accent-rgb), 0.35);
	border-radius: 2px;
}
.message_content__text pre::-webkit-scrollbar-thumb:hover {
	background: rgba(var(--accent-rgb), 0.65);
}
.message_content__text pre code {
	background-color: transparent;
	padding: 0;
}
.message_content__text blockquote {
	margin: 0 0 8px;
	padding-left: 12px;
	border-left: 3px solid var(--border-strong);
	color: var(--text-secondary);
}
.message_content__text table {
	border-collapse: collapse;
	margin: 0 0 8px;
	max-width: 100%;
	display: block;
	overflow-x: auto;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xs);
	background-color: rgba(0, 0, 0, 0.15);
	scrollbar-width: thin;
	scrollbar-color: rgba(var(--accent-rgb), 0.35) transparent;
}
.message_content__text table::-webkit-scrollbar {
	height: 4px;
}
.message_content__text table::-webkit-scrollbar-track {
	background: transparent;
}
.message_content__text table::-webkit-scrollbar-thumb {
	background: rgba(var(--accent-rgb), 0.35);
	border-radius: 2px;
}
.message_content__text table::-webkit-scrollbar-thumb:hover {
	background: rgba(var(--accent-rgb), 0.65);
}
.message_content__text th,
.message_content__text td {
	border: 1px solid var(--border-soft);
	padding: 6px 12px;
	white-space: nowrap;
}
.message_content__text thead {
	background-color: rgba(0, 0, 0, 0.2);
}
.message_content__text th {
	font-weight: 700;
	color: var(--text-main);
	text-align: left;
	border-bottom: 2px solid var(--border-strong);
}
.message_content__text tbody tr:nth-child(even) {
	background-color: rgba(255, 255, 255, 0.04);
}
.message_content__text hr {
	border: none;
	border-top: 1px solid var(--border-soft);
	margin: 8px 0;
}
.audio_player {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 220px;
	max-width: 320px;
	padding: 6px 12px 6px 6px;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	background-color: rgba(0, 0, 0, 0.22);
}
/* плеер стоит в строке текста перед датой - дату переносим на свою строку под ним */
.message_content__text_row > .audio_player {
	margin-top: 4px;
}
.audio_player + .message_content__status {
	flex-basis: 100%;
	justify-content: flex-end;
}
.audio_player audio {
	display: none;
}
.audio_player__btn {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: var(--accent);
	cursor: pointer;
	transition: background-color 0.15s, transform 0.15s;
}
.audio_player__btn svg {
	fill: var(--bg-main);
}
.audio_player__btn:hover {
	background-color: var(--accent-hover);
}
.audio_player__btn:active {
	transform: scale(0.94);
}
.audio_player__body {
	display: flex;
	flex-grow: 1;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.audio_player__track {
	position: relative;
	flex-grow: 1;
	height: 4px;
	border-radius: 2px;
	background-color: rgba(255, 255, 255, 0.14);
	cursor: pointer;
}
/* увеличенная зона клика по тонкой полоске */
.audio_player__track::before {
	content: '';
	position: absolute;
	inset: -8px 0;
}
.audio_player__progress {
	position: relative;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background-color: var(--accent);
}
.audio_player__progress::after {
	content: '';
	position: absolute;
	top: 50%;
	right: -6px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: var(--accent-hover);
	box-shadow: var(--shadow-soft);
	transform: translateY(-50%) scale(0);
	transition: transform 0.15s;
}
.audio_player.is-playing .audio_player__progress::after,
.audio_player__track:hover .audio_player__progress::after {
	transform: translateY(-50%) scale(1);
}
.audio_player__time {
	flex-shrink: 0;
	color: var(--text-secondary);
	font-size: var(--font-12);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
/* в своих сообщениях фон пузыря золотой - инвертируем плеер */
.message_wrap[data-msg-out="1"] .audio_player__btn {
	background-color: var(--text-main);
}
.message_wrap[data-msg-out="1"] .audio_player__btn svg {
	fill: var(--accent-dark);
}
.message_wrap[data-msg-out="1"] .audio_player__progress,
.message_wrap[data-msg-out="1"] .audio_player__progress::after {
	background-color: var(--text-main);
}
.message_wrap[data-msg-out="1"] .audio_player__time {
	color: var(--text-main);
}
.message_content__image_link {
	align-self: flex-start;
	display: block;
}
.message_content__image,
.message_content__video {
	display: block;
	width: auto;
	height: auto;
	/* абсолютные единицы, а не %: процентный max-width не учитывается при расчёте ширины пузыря,
	   и он растягивался до натурального размера картинки (см. комментарий у .message--photo) */
	max-width: min(320px, 75vw);
	max-height: 400px;
	object-fit: contain;
	border-radius: 8px;
}
.message_content__video {
	align-self: flex-start;
	background: #000;
}
.message_content__gallery {
	align-self: flex-start;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px;
	width: 100%;
	max-width: 320px;
}
.message_content__gallery_item {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 12px;
}
.message_content__gallery_item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.message_content__file {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 260px;
	padding: 8px 14px;
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.15);
	color: inherit;
	text-decoration: none;
}
.message_content__file svg {
	flex-shrink: 0;
	fill: currentColor;
}
.message_content__file_name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 14px;
}
.message_content__status {
	font-size: 12px;
	line-height: 18px;
	flex: 0 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
	margin-left: auto;
}
.message_content > .message_content__status {
	align-self: flex-end;
}
.message--photo,
.message--with-image {
	padding: 6px;
	overflow: hidden;
}
/* пузырь "картинка + текст": у картинки отступ 6px, как у фото-сообщения, тексту и футеру добавляем боковой отступ */
.message--with-image .message_content__text_row,
.message--with-image .message_footer:has(.message_action_btn) {
	padding: 0 4px;
}
.message--with-image .message_footer:has(.message_action_btn) {
	padding-bottom: 2px;
}
/* max-width в % при расчёте ширины пузыря игнорируется - пузырь растягивался шире картинки (до 80% чата).
   Для фото-сообщения ограничиваем в абсолютных единицах, тогда пузырь = ширина картинки */
.message--photo .message_content__image,
.message--photo .message_content__video {
	max-width: min(320px, 75vw);
}
.message--photo .message_content {
	display: block;
	gap: 0;
}
.message_content__photo_wrap {
	position: relative;
	display: block;
	line-height: 0;
}
.message_content__status--overlay {
	position: absolute;
	right: 8px;
	bottom: 8px;
	margin-left: 0;
	padding: 2px 8px;
	border-radius: 10px;
	background-color: rgba(0, 0, 0, 0.45);
	color: #fff;
}

.dialog_filters {
	display: flex;
	flex-shrink: 0;
	gap: 8px;
	padding: 10px 15px;
}
.dialog_filter {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: 6px;
	max-width: 100%;
	padding: 8px 14px;
	border: 1px solid var(--border-soft);
	border-radius: 999px;
	background: var(--bg-card);
	color: var(--text-secondary);
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
}
.dialog_filter span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
#dialogFilterToggle {
	max-width: 160px;
}
#dialogFilterToggleLabel {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dialog_filter svg {
	fill: var(--text-secondary);
	transition: fill 0.15s;
}
.dialog_filter:hover,
.dialog_filter--active {
	border-color: var(--accent);
	color: var(--accent);
}
.dialog_filter:hover svg,
.dialog_filter--active svg {
	fill: var(--accent);
}

.dialog_filter_dropdown {
	position: relative;
	flex-shrink: 0;
}
/* выпадающее меню: фильтр/сортировка над списком советников и меню «Ещё» у советника */
.dropdown_menu {
	display: flex;
	flex-direction: column;
	padding: 6px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity 0.15s ease, transform 0.15s ease;
}
.dropdown_menu--open,
.dialog_filter_dropdown--open .dropdown_menu {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.dropdown_menu__item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 9px 12px;
	border: none;
	border-radius: var(--radius-xs);
	background: none;
	color: var(--text-main);
	font-size: 14px;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}
.dropdown_menu__item span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dropdown_menu__item svg {
	fill: var(--text-secondary);
	flex-shrink: 0;
	transition: fill 0.15s;
}
.dropdown_menu__item:hover {
	background: var(--bg-card-hover);
}
.dropdown_menu__item.dialog_filter--active {
	color: var(--accent);
}
.dropdown_menu__item.dialog_filter--active svg {
	fill: var(--accent);
}
.dropdown_menu__item--danger {
	color: var(--danger);
}
.dropdown_menu__item--danger svg {
	fill: var(--danger);
}
.dialog_filter_menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 20;
	min-width: 180px;
	max-width: min(80vw, 280px);
	max-height: 60vh;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

.dialog_list {
	z-index: 1;
}
.dialog_item__wrap {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	column-gap: 5px;
	padding: 5px 5px 0 5px;
	border-radius: var(--radius-lg);
	transition: background 0.2s ease;
	width: 100%;
}
.dialog_item__wrap:hover {
	background: var(--bg-card-hover);
}
.dialog_item__wrap.dialog_item__active {
	background: linear-gradient(135deg, var(--primary), #102B49);
}
.dialog_item__link {
	flex: 1;
	min-width: 0;
	text-decoration: none;
}
.dialog_item__menu_wrap {
	position: relative;
	flex-shrink: 0;
}
.dialog_item__hide {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}
.dialog_item__hide svg {
	fill: var(--text-muted);
	transition: fill 0.15s;
}
.dialog_item__hide:hover {
	background: rgba(255,255,255,0.06);
	border-color: var(--danger);
}
.dialog_item__hide:hover svg {
	fill: var(--danger);
}

.dialog_item__menu {
	position: fixed;
	z-index: 200;
	min-width: 190px;
}

.dialog_item {
	width: 100%;
	padding-bottom: 5px;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid var(--bg-card-hover);
}

.dialog_item__avatar {
	width: 54px;
	height: 54px;
	min-width: 54px;
	min-height: 54px;
	position: relative;
}
.dialog_item__avatar img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	z-index: 1;
}

.dialog_item__content {
	flex-grow: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.dialog_item__name {
	font-size: 16px;
	font-weight: 400;
	color: var(--text-main);
}

.dialog_item__role {
	font-size: 14px;
	color: var(--text-secondary);
}

.dialog_item__rating {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--accent);
	font-size: 13px;
	font-weight: 600;
}
.dialog_item__rating svg {
	fill: var(--accent);
}
.dialog_item__rating span {
	color: var(--text-muted);
	font-weight: 400;
}

/* счётчик непрочитанных: в списке советников и в списке чатов */
.dialog_item__badge,
.chat_item__badge {
	min-width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--accent);
	color: #09111C;
	font-size: 13px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 1;
}
.dialog_item__badge[data-dialog-badge="0"],
.chat_item__badge[data-chat-badge="0"] {
	opacity: 0;
}

.dialog_list_footer {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 10px;
	margin: 10px 15px;
	padding: 10px;
	border-radius: var(--radius-lg);
	background: var(--accent-gradient);
	color: var(--text-on-accent);
	text-decoration: none;
	transition: filter 0.15s;
}
.dialog_list_footer:hover {
	filter: brightness(1.05);
}
.dialog_list_footer__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 2px dashed rgba(26,15,0,0.5);
}
.dialog_list_footer__icon svg {
	fill: var(--text-on-accent);
}
.dialog_list_footer__text {
	flex-grow: 1;
	font-size: 15px;
	font-weight: 600;
}
.dialog_list_footer__arrow {
	flex-shrink: 0;
	fill: var(--text-on-accent);
}

.chat_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 10px;
}

.chat_item__wrap {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  background: rgba(15,32,51,0.88);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  transition: 0.2s ease;
  padding-right: 4px;
}

.chat_item__wrap:hover {
  background: var(--bg-card-hover);
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.chat_item {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 10px;
  cursor: pointer;
  text-decoration: none;
}

.chat_item__hide {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: var(--radius-xs);
  cursor: pointer;
  transition: background 0.15s;
  margin-right: 2px;
}
.chat_item__hide svg {
  fill: var(--text-muted);
  transition: fill 0.15s;
}
.chat_item__hide:hover {
  background: rgba(255,255,255,0.06);
}
.chat_item__hide:hover svg {
  fill: var(--danger);
}

.chat_item__icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(var(--accent-rgb), 0.12);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.chat_item__icon svg {
	fill: var(--accent);
}
.chat_item__content {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	width: 100%;
	gap: 5px;
	overflow: hidden;
}
.chat_item__title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-main);
	-webkit-line-clamp: 2;
	display: -webkit-box;
	-webkit-box-orient: vertical;
}
.chat_item__dt {
	font-size: 12px;
	color: var(--text-secondary);
}
.chat_item__preview {
	font-size: 14px;
	color: var(--text-secondary);
}

.new_chat_form {
	padding: 10px 20px;
	display: flex;
	flex-direction: column;
	width: 100%;
	gap: 15px;
}
.advisor_share_top {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	gap: 6px;
	margin: 12px auto 0;
	padding: 8px 16px;
	border-radius: var(--radius-sm);
	border: 1px solid var(--accent);
	background: transparent;
	color: var(--accent);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s;
}
.advisor_share_top svg {
	fill: var(--accent);
}
.advisor_share_top:hover {
	background: rgba(var(--accent-rgb), 0.12);
}
.new_chat_form .advisor_share_top {
	margin-top: 0;
}
.new_chat_form__title {
	font-size: 14px;
	color: var(--text-primary);
	width: 100%;
	text-align: center;
}
.advisor_info__wrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.advisor_info {
	display: flex;
	flex-direction: row;
	gap: 15px;
	padding: 10px 20px;
}
.advisor_info__avatar {
	position: relative;
	width: 100%;
	height: 100%;
	min-width: 96px;
	min-height: 96px;
	max-width: 96px;
	max-height: 96px;
}
.advisor_info__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	border: 1px solid #fff;
	cursor: zoom-in;
}
.advisor_info__main {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.advisor_info__title {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 22px;
	margin: 0;
	font-weight: 700;
	color: var(--text-main);
}
.advisor_info__specialization {
	font-size: 14px;
	font-weight: 600;
	color: var(--accent);
}

.advisor_info__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	color: var(--text-secondary);
	font-size: 14px;
	font-weight: 600;
	margin-top: 10px;
}
.advisor_info__rating_stars {
	display: flex;
	gap: 2px;
}
.advisor_info__rating_stars svg.advisor_info__rating_star--filled {
	fill: var(--accent);
}
.advisor_info__rating_stars svg.advisor_info__rating_star--empty {
	fill: var(--border-soft);
}
.advisor_info__rating_value {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-main);
}
.advisor_info__rating_count {
	color: var(--text-secondary);
	font-weight: 500;
}
.advisor_info__rating--lg {
	margin-top: 0;
	gap: 12px;
}
.advisor_info__rating--lg .advisor_info__rating_stars {
	gap: 4px;
}
.advisor_info__rating--lg .advisor_info__rating_value {
	font-size: 28px;
}
.advisor_info__rating--lg .advisor_info__rating_count {
	font-size: 15px;
}

.advisor_info__tag {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--border-soft);
	color: var(--text-secondary);
	font-size: 14px;
}
.advisor_info__tag svg {
	fill: currentColor;
}

.advisor_info__actions {
	display: flex;
	flex-wrap: wrap;
}
.advisor_info__edit,
.advisor_info__delete {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: none;
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: var(--radius-xs);
	color: var(--text-secondary);
	font-size: 13px;
	cursor: pointer;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}
.advisor_info__edit svg,
.advisor_info__delete svg {
	fill: var(--text-secondary);
	transition: fill 0.15s;
}
.advisor_info__edit:hover {
	border-color: var(--accent);
	color: var(--accent);
}
.advisor_info__edit:hover svg {
	fill: var(--accent);
}
.advisor_info__delete:hover {
	border-color: var(--danger);
	color: var(--danger);
}
.advisor_info__delete:hover svg {
	fill: var(--danger);
}

.message_is_typing {
	padding: 10px 0 10px 25px;
	display: none;
	gap: 4px;
	align-items: baseline;
	width: fit-content;
}

.message_is_typing[data-typing="1"] {
	display: flex;
}

.message_is_typing span {
	width: 12px;
	height: 12px;
	background: #7a7f8a;
	border-radius: 50%;
	animation: bounce 1.4s infinite ease-in-out;
}

.message_is_typing span:nth-child(1) { animation-delay: 0s; }
.message_is_typing span:nth-child(2) { animation-delay: 0.2s; }
.message_is_typing span:nth-child(3) { animation-delay: 0.4s; }

/* плейсхолдер генерации картинки/видео вместо трёх точек (data-media="image|video") */
.media_placeholder {
	display: none;
	flex-direction: column;
	gap: 8px;
}
.message_is_typing[data-media="image"],
.message_is_typing[data-media="video"] {
	align-items: flex-start;
}
.message_is_typing[data-media="image"] span,
.message_is_typing[data-media="video"] span {
	display: none;
}
.message_is_typing[data-media="image"] .media_placeholder,
.message_is_typing[data-media="video"] .media_placeholder {
	display: flex;
}
.media_placeholder__card {
	position: relative;
	width: min(130px, 30vw);
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(circle at 30% 30%, rgba(120, 140, 255, 0.35), transparent 55%),
		radial-gradient(circle at 70% 75%, rgba(200, 120, 255, 0.3), transparent 55%),
		#1c1f26;
	background-size: 200% 200%, 200% 200%, auto;
	animation: media_placeholder_drift 6s ease-in-out infinite alternate;
}
.message_is_typing[data-media="video"] .media_placeholder__card {
	aspect-ratio: 16 / 9;
	width: min(160px, 35vw);
}
.media_placeholder__card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.08) 50%, transparent 70%);
	background-size: 250% 100%;
	animation: media_placeholder_shimmer 1.8s linear infinite;
}
.media_placeholder__icon {
	width: 40px;
	height: 40px;
	fill: none;
	stroke: rgba(255, 255, 255, 0.55);
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	animation: media_placeholder_pulse 1.8s ease-in-out infinite;
}
.media_placeholder__icon_video,
.message_is_typing[data-media="video"] .media_placeholder__icon_image {
	display: none;
}
.message_is_typing[data-media="video"] .media_placeholder__icon_video {
	display: inline;
}
.media_placeholder__label {
	font-size: 14px;
	color: transparent;
	background: linear-gradient(90deg, #7a7f8a 0%, #e4e6eb 50%, #7a7f8a 100%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	animation: media_placeholder_shimmer 2s linear infinite;
}
.message_is_typing[data-media="image"] .media_placeholder__label::before {
	content: "Создаю изображение…";
}
.message_is_typing[data-media="video"] .media_placeholder__label::before {
	content: "Создаю видео…";
}
@keyframes media_placeholder_shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}
@keyframes media_placeholder_drift {
	0% { background-position: 0% 0%, 100% 100%, 0 0; }
	100% { background-position: 100% 100%, 0% 0%, 0 0; }
}
@keyframes media_placeholder_pulse {
	0%, 100% { opacity: 0.5; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
	.media_placeholder__card,
	.media_placeholder__card::after,
	.media_placeholder__icon,
	.media_placeholder__label {
		animation: none;
	}
}

@keyframes bounce {
	0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
	30% { transform: translateY(-6px); opacity: 1; }
}
.preloader[data-preloader-visible="0"] {
	display: none;
}
.preloader[data-preloader-visible="1"] {
	display: flex;
}
.preloader {
	background: #0a0c10;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.preloader__spinner {
	width: 25px;
	height: 25px;
	border: 4px solid #1e293b;
	border-top: 4px solid #3b82f6;
	border-radius: 50%;
	animation: preloader__spin_anim 1s linear infinite;
}

@keyframes preloader__spin_anim {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.preloader__text {
	color: #94a3b8;
	font-size: 14px;
}

.column_content .na_form {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 20px 16px 8px;
}

.na_section {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px 16px 8px;
}
.na_section[hidden] {
	display: none;
}
.na_section__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-main);
}
.na_section__subtitle {
	font-size: 14px;
	color: var(--text-secondary);
	margin-top: -8px;
}

.settings_avatar {
	display: flex;
	justify-content: center;
	padding: 4px 0 8px;
}
.settings_avatar__preview {
	position: relative;
	display: block;
	width: 96px;
	height: 96px;
	cursor: pointer;
}
.settings_avatar__img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	background: var(--bg-card);
}
.settings_avatar__edit {
	position: absolute;
	right: -2px;
	bottom: -2px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	background: var(--accent);
	border: 2px solid var(--bg-main);
}
.settings_avatar__edit svg {
	fill: var(--text-on-accent);
}

.message_content__widget {
	margin-top: 8px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* Прокручиваемая область для длинных списков виджетов визарда советников
   (темы, модели) - кнопка подтверждения всегда остаётся видимой под ней,
   а не уезжает за пределы экрана вместе со списком */
.aw_scroll_area {
	max-height: 38vh;
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 4px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
/* Список рубрик (тем общения) длиннее прочих списков визарда - даём ему
   чуть больше высоты, чем остальным спискам, чтобы приходилось меньше
   скроллить. Раньше было 75vh - список занимал почти весь экран и
   выталкивал за пределы видимости вопрос бота над ним */
.aw_scroll_area--themes {
	max-height: 45vh;
}

/* Единый вертикальный отступ между блоками визарда советников (поля, кнопки,
   списки) - без него элементы слипаются друг с другом */
#awInputArea {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.aw_btn_row {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.aw_btn_row > * {
	flex: 1 1 auto;
}

/* Avatar picker */
.na_avatar_row {
	display: flex;
	justify-content: center;
	padding: 4px 0 8px;
}
.na_avatar_upload {
	position: relative;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	border: 2px dashed var(--text-muted);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	gap: 4px;
	color: var(--text-secondary);
	font-size: 11px;
	text-align: center;
	line-height: 1.25;
	transition: border-color 0.15s, box-shadow 0.15s;
	overflow: hidden;
}
.na_avatar_upload:hover {
	border-color: var(--accent);
}
.na_avatar_upload svg {
	fill: var(--text-secondary);
}
.na_avatar_upload__preview {
	display: none;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
}
.na_avatar_upload--selected {
	border-style: solid;
	border-color: var(--accent);
	box-shadow: 0 0 0 2px var(--accent);
}
.na_avatar_upload--error {
	border-style: solid;
	border-color: var(--danger);
	box-shadow: 0 0 0 2px var(--danger);
	color: var(--danger);
	animation: form_message_shake 0.3s;
}
.na_avatar_upload--error svg {
	fill: var(--danger);
}
.na_avatar_upload--selected .na_avatar_upload__preview {
	display: block;
}
.na_avatar_upload--selected .na_avatar_upload__icon,
.na_avatar_upload--selected .na_avatar_upload__text {
	display: none;
}

/* Form fields */
.na_field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.na_label {
	font-size: 14px;
	color: var(--text-secondary);
}
.na_label_row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.na_ai_generate_btn {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	gap: 6px;
	border-radius: var(--radius-sm);
	border: 1px solid var(--accent);
	background: transparent;
	color: var(--accent);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	align-self: start;
	cursor: pointer;
	transition: opacity 0.2s, background 0.15s;
}
.na_ai_generate_btn svg {
	fill: var(--accent);
	flex-shrink: 0;
}
/* Кнопка генерации аватара в мастере советников - крупнее остальных кнопок
   "Сгенерировать с помощью AI" (промпт, приветствие), т.к. это более заметное,
   отдельное действие на своём шаге, а не второстепенная кнопка рядом с полем */
#awAvatarGenerate {
	font-size: 15px;
	padding: 10px 16px;
	max-width: 100%;
	white-space: normal;
	text-align: left;
}
#awAvatarGenerate svg {
	width: 16px;
	height: 16px;
	margin-top: 2px;
}
.na_ai_generate_btn:hover:not(:disabled) {
	background: rgba(var(--accent-rgb), 0.1);
}
.na_ai_generate_btn:disabled {
	border-color: var(--border-soft);
	color: var(--text-secondary);
	cursor: not-allowed;
}
.na_ai_generate_btn:disabled svg {
	fill: var(--text-secondary);
}
.na_ai_generate_btn--loading svg {
	animation: na_spin 0.8s linear infinite;
}
@keyframes na_spin {
	to { transform: rotate(360deg); }
}
.na_balance_card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 0px;
}
.na_balance_card__info {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.na_balance_card__info svg {
	fill: #fff;
	flex-shrink: 0;
}
.na_balance_card__value {
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.na_input_wrap {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--bg-input);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	padding: 0 16px;
	height: 52px;
	transition: border-color 0.15s;
}
.na_input_wrap:focus-within {
	border-color: rgba(var(--accent-rgb), 0.5);
}
.na_input_wrap--highlight:focus-within {
	border-color: #fff;
	box-shadow: 0 0 0 3px rgba(255,255,255,0.16);
}
.na_input_wrap--error {
	border-color: var(--danger);
	box-shadow: 0 0 0 2px var(--danger);
	animation: form_message_shake 0.3s;
}
.na_input_wrap svg {
	fill: var(--text-input);
	flex-shrink: 0;
}
.na_input,
.na_textarea {
	flex: 1;
	background: none;
	border: none;
	outline: none;
	color: var(--text-input);
	font-size: 15px;
}
.na_input::placeholder,
.na_textarea::placeholder {
	color: var(--text-input-placeholder);
}
.na_input:focus::placeholder,
.na_textarea:focus::placeholder {
	color: transparent;
}

.na_input_wrap--narrow {
	width: 84px;
}
.na_input_wrap--narrow .na_input {
	flex: none;
	width: 100%;
	text-align: center;
}

.na_date_grid {
	display: grid;
	grid-template-columns: 0.8fr 1.4fr 1fr;
	gap: 10px;
}

.na_select--date {
	height: 52px;
	padding: 0 16px;
	background: var(--bg-input);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	color: var(--text-input);
	font-size: 15px;
	outline: none;
}

.na_select--date:focus {
	border-color: rgba(var(--accent-rgb), 0.5);
}

.na_textarea_wrap {
	position: relative;
	background: var(--bg-input);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 16px 30px;
	transition: border-color 0.15s;
}
.na_textarea_wrap:focus-within {
	border-color: rgba(var(--accent-rgb), 0.5);
}
/* Поля мастера советников не показывают счётчик символов (.na_counter) -
   не нужен запас снизу под него, и в целом паддинг компактнее, чтобы
   на маленьких экранах (iPhone) под текст оставалось больше места */
.na_textarea_wrap--wizard {
	padding: 10px 12px;
}
.na_textarea_wrap--wizard .na_textarea {
	height: 40vh;
}
.na_textarea_wrap svg {
	fill: var(--text-input);
	flex-shrink: 0;
	margin-top: 2px;
}
.na_textarea {
	line-height: 1.5;
	resize: none;
	overflow-y: auto;
}
/* Скроллбар текстовых полей по умолчанию системный (на iOS Safari - оверлейный,
   невидимый вне скролла); стилизуем явно, чтобы был виден постоянно, тонкий и в
   тон светлому фону поля (текстареа белая, в отличие от тёмных .aw_scroll_area и
   тому подобных, поэтому цвета свои, не общие для тёмных скроллбаров) */
.na_textarea::-webkit-scrollbar {
	width: 6px;
}
.na_textarea::-webkit-scrollbar-track {
	background: transparent;
}
.na_textarea::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.25);
	border-radius: 10px;
}
.na_textarea::-webkit-scrollbar-thumb:hover {
	background: rgba(0, 0, 0, 0.4);
}
.na_counter {
	position: absolute;
	bottom: 10px;
	right: 16px;
	font-size: 12px;
	color: var(--text-muted);
	pointer-events: none;
}

/* Style buttons */
.na_style_grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.na_style_btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	color: var(--text-main);
	font-size: 14px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
	text-align: left;
}
.na_style_btn:has(.na_radio_sr:focus-visible) {
	border-color: var(--accent);
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
.na_radio_sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.na_style_btn:hover {
	border-color: rgba(var(--accent-rgb), 0.4);
	background: var(--bg-card-hover);
}
.na_style_btn--active {
	border-color: var(--accent);
	background: rgba(var(--accent-rgb), 0.1);
	color: var(--accent);
}
.na_style_btn__icon {
	font-size: 18px;
	line-height: 1;
	flex-shrink: 0;
}

.na_model_list--error {
	outline: 2px solid var(--danger);
	outline-offset: 6px;
	border-radius: var(--radius-sm);
	animation: form_message_shake 0.3s;
}
.na_cost_input--error {
	border-color: var(--danger);
	box-shadow: 0 0 0 2px var(--danger);
	animation: form_message_shake 0.3s;
}

/* Footer */
.na_footer {
	padding: 12px 16px 16px;
	flex-shrink: 0;
	border-top: 1px solid var(--border-soft);
}
.na_btn_toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border-radius: var(--radius-sm);
	background: var(--bg-card-hover);
	border: 1px solid var(--border-soft);
	color: var(--text-main);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity 0.2s;
}
.na_btn_toggle:hover {
	opacity: 0.85;
}
.na_btn_toggle:disabled {
	color: var(--text-secondary);
	cursor: default;
	opacity: 0.7;
}
.na_btn_create {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 56px;
	border-radius: var(--radius-md);
	background: var(--accent-gradient);
	color: var(--text-on-accent);
	font-size: 18px;
	font-weight: 700;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s;
}
.na_btn_create:hover {
	opacity: 0.88;
}
.na_btn_delete {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 48px;
	margin-top: 10px;
	border-radius: var(--radius-md);
	background: none;
	border: 1px solid var(--danger);
	color: var(--danger);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity 0.2s;
}
.na_btn_delete:hover {
	opacity: 0.85;
}
.na_btn_delete svg {
	fill: var(--danger);
}
.na_footer_note {
	margin-top: 10px;
	text-align: center;
	font-size: 12px;
	color: var(--text-muted);
}
.na_footer_note a {
	color: var(--text-muted);
	text-decoration: underline;
}
.na_footer_note a:hover {
	color: var(--text-main);
}

.aw_summary_title {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 8px;
}

/* Строки резюме визарда советников - блок вместо таблицы, чтобы длинные
   значения (например "Стиль - дружелюбный") переносились, а не ломали
   вёрстку на узких экранах (360px) */
.aw_summary_row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 8px 0;
	border-bottom: 1px solid var(--border-soft);
}
.aw_summary_row:last-child {
	border-bottom: none;
}
.aw_summary_row__label {
	font-size: 12px;
	color: var(--text-secondary);
}
.aw_summary_row__value {
	font-size: 14px;
	word-break: break-word;
}
.aw_summary_row .na_ai_generate_btn {
	align-self: flex-start;
}
.aw_summary_note {
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--text-muted);
}

/* Экран резюме мастера советников - прячем шапку и историю переписки,
   чтобы выбранные параметры занимали весь экран, а не узкий футер под
   всей историей вопросов-ответов (см. renderSummary()/editField() в
   advisor_wizard.twig, которые переключают этот класс) */
body.aw-summary-mode .column_header,
body.aw-summary-mode .column_content,
body.aw-summary-mode #awTyping {
	display: none;
}
/* position: absolute вместо flex-grow внутри .column_2/.one_column - футер
   больше не зависит от того, как родитель по цепочке распределяет высоту
   (там встречались варианты, где flex-элемент раздувался по контенту и
   вылезал за overflow:hidden родителя) - тут высота жёстко равна области
   .column_2/.one_column (а не всего экрана - на десктопе рядом всё ещё
   виден список диалогов в .column_1, его перекрывать не нужно) */
body.aw-summary-mode .column_2,
body.aw-summary-mode .one_column {
	position: relative;
}
body.aw-summary-mode .na_footer {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 10;
	background: var(--bg-main);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}
body.aw-summary-mode .aw_scroll_area {
	max-height: none;
	flex: 1;
	min-height: 0;
}
.na_error {
	background: rgba(228, 91, 91, 0.12);
	border: 1px solid rgba(228, 91, 91, 0.4);
	border-radius: var(--radius-sm);
	color: var(--danger);
	font-size: 14px;
	padding: 12px 16px;
}
.na_success {
	background: rgba(91, 189, 122, 0.12);
	border: 1px solid rgba(91, 189, 122, 0.4);
	border-radius: var(--radius-sm);
	color: #5bbd7a;
	font-size: 14px;
	padding: 12px 16px;
}

/* ===== New Advisor — mobile ===== */
@media (max-width: 480px) {
	.na_avatar_upload {
		width: 110px;
		height: 110px;
	}
	.na_style_grid {
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}
	.na_style_btn {
		padding: 10px 12px;
		font-size: 13px;
	}
}
@media (max-width: 360px) {
	.na_avatar_upload {
		width: 96px;
		height: 96px;
		font-size: 10px;
	}
	.na_style_grid {
		grid-template-columns: 1fr;
	}
	.na_style_grid.na_style_grid--2col {
		grid-template-columns: 1fr 1fr;
	}
}

/* ===== Choose Advisor (start page) ===== */
.ca_wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	flex-grow: 1;
	height: 100%;
	padding: 40px 24px;
	gap: 18px;
}
.ca_icon_wrap {
	width: 215px;
	height: 178px;
	margin-bottom: 10px;
}
.ca_icon_svg {
	width: 100%;
	height: 100%;
}
.ca_bubble {
	filter:
		drop-shadow(0 0 5px rgba(var(--accent-rgb), 0.95))
		drop-shadow(0 0 14px rgba(var(--accent-rgb), 0.55))
		drop-shadow(0 0 32px rgba(var(--accent-rgb), 0.25));
}
.ca_title {
	font-size: 28px;
	font-weight: 700;
	color: var(--text-main);
	line-height: 1.2;
}
.ca_subtitle {
	font-size: 16px;
	color: var(--text-secondary);
	line-height: 1.65;
	max-width: 340px;
}
.ca_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	max-width: 400px;
	padding: 10px 20px;
	border-radius: var(--radius-lg);
	background: var(--accent-gradient);
	color: var(--text-on-accent);
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
	margin-top: 8px;
	transition: opacity 0.2s;
}
.ca_btn:hover {
	opacity: 0.88;
	color: var(--text-on-accent);
}
.ca_btn svg {
	fill: var(--text-on-accent);
}

/* ===== Dialog list menu ===== */
.dl_menu_btn {
	position: relative;
	width: 36px;
	height: 36px;
	min-width: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	border-radius: var(--radius-xs);
	cursor: pointer;
	margin-left: auto;
	transition: background 0.15s;
}
.dl_menu_btn:hover {
	background: rgba(255,255,255,0.08);
}
.dl_menu_btn__dot {
	position: absolute;
	top: 4px;
	right: 4px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: #f40;
	border: 1px solid #fff;
}

.dl_menu {
	position: absolute;
	top: var(--header-size);
	left: 0;
	width: 100%;
	background: var(--accent);
	border-radius: 0 0 var(--radius-md) var(--radius-md);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	z-index: 100;
	display: flex;
	flex-direction: column;
	padding: 6px 0;
	transform: translateY(-8px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.18s ease, transform 0.18s ease;
	border-bottom: 1px solid var(--accent);
}
.dl_menu--open {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.dl_menu_item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 18px;
	color: var(--text-on-accent);
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	transition: background 0.12s;
}
.dl_menu_item:hover {
	background: rgba(0,0,0,0.1);
}
.dl_menu_item svg {
	fill: var(--text-on-accent);
	flex-shrink: 0;
}
.dl_menu_item__value {
	margin-left: auto;
	padding: 2px 9px;
	background: rgba(0,0,0,0.12);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}
.dl_menu_item__new {
	padding: 2px 8px;
	background-color: #f40;
	color: #fff;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
.dl_menu_item--danger {
	color: var(--danger);
}
.dl_menu_item--danger svg {
	fill: var(--danger);
}
.na_section .dl_menu_item {
	color: var(--text-main);
}
.na_section .dl_menu_item svg {
	fill: var(--text-main);
}
.na_section .dl_menu_item:hover {
	background: rgba(255,255,255,0.06);
}
.na_section .dl_menu_item--danger,
.na_section .dl_menu_item--danger svg {
	color: var(--danger);
	fill: var(--danger);
}
.dl_menu_divider {
	height: 1px;
	background: rgba(0,0,0,0.15);
	margin: 4px 0;
}

.dl_menu_user {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 2px 10px 8px;
	padding: 10px 14px;
	color: var(--text-on-accent);
	text-decoration: none;
}
.dl_menu_user__avatar {
	width: 40px;
	height: 40px;
	min-width: 40px;
	border-radius: 50%;
	object-fit: cover;
}
.dl_menu_user__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.dl_menu_user__name {
	font-size: 15px;
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dl_menu_user__email {
	font-size: 12px;
	opacity: 0.7;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dl_menu_credits {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 2px 10px 8px;
	padding: 12px 14px;
	background: rgba(0,0,0,0.12);
	border-radius: var(--radius-md);
}
.dl_menu_credits__info {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	color: var(--text-on-accent);
	text-decoration: none;
}
.dl_menu_credits__label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	opacity: 0.7;
}
.dl_menu_credits__value {
	font-size: 19px;
	font-weight: 700;
}
.dl_menu_credits__btn {
	flex-shrink: 0;
	padding: 9px 16px;
	background: var(--text-on-accent);
	color: var(--accent);
	font-size: 13px;
	font-weight: 700;
	border-radius: 999px;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.15s;
}
.dl_menu_credits__btn:hover {
	opacity: 0.85;
}

.dl_menu_overlay {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99;
}
.dl_menu_overlay--open {
	display: block;
}
/* ===== Modal ===== */
.modal_overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(6, 17, 29, 0.75);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 0.18s ease;
	pointer-events: none;
}
.modal_overlay--open {
	opacity: 1;
	pointer-events: auto;
}
.modal {
	background: var(--bg-panel);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	padding: 28px 28px 24px;
	width: 100%;
	max-width: 380px;
	transform: translateY(12px) scale(0.97);
	transition: transform 0.18s ease;
}
.modal_overlay--open .modal {
	transform: translateY(0) scale(1);
}
/* полноэкранный просмотр фото (аватарка в профиле советника и в настройках), поверх .modal_overlay */
.photo_viewer {
	z-index: 1100;
	background: rgba(2, 8, 14, 0.92);
	backdrop-filter: none;
	padding: 40px 20px;
}
.photo_viewer__img {
	max-width: 100%;
	max-height: 100%;
	border-radius: var(--radius-md);
	object-fit: contain;
	transform: scale(0.96);
	transition: transform 0.18s ease;
}
.modal_overlay--open .photo_viewer__img {
	transform: scale(1);
}
.modal__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-main);
	margin-bottom: 8px;
}
.modal__text {
	font-size: 15px;
	color: var(--text-secondary);
	line-height: 1.5;
	margin-bottom: 24px;
}
.modal__text:empty {
	display: none;
}
.modal__actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}
.modal__btn {
	height: 42px;
	padding: 0 20px;
	border-radius: var(--radius-sm);
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
	border: none;
	transition: opacity 0.15s, background 0.15s;
}
.modal__btn:hover {
	opacity: 0.85;
}
.modal__btn--cancel {
	background: var(--bg-card-hover);
	color: var(--text-secondary);
}
.modal__btn--confirm {
	background: var(--accent-gradient);
	color: var(--text-on-accent);
}
.modal__btn--danger {
	background: var(--danger);
	color: #fff;
}
.modal__btn--ok {
	background: var(--primary);
	color: var(--text-main);
}

.modal__btn--lg {
	height: 48px;
	font-weight: 700;
}
/* круглый крестик в углу модалки */
.modal_close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: var(--text-secondary);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.15s;
}
.modal_close:hover {
	background: var(--bg-card-hover);
}
.modal_close svg {
	fill: var(--text-secondary);
}
/* крестик на тёмной подложке просмотра фото */
.modal_close--light {
	width: 40px;
	height: 40px;
	background: rgba(255,255,255,0.1);
}
.modal_close--light:hover {
	background: rgba(255,255,255,0.18);
}
.modal_close--light svg {
	fill: #fff;
}

/* передача беседы другому советнику (templates/chats/handoff_modal.twig) */
.handoff_modal {
	position: relative;
	max-width: 520px;
	max-height: calc(100vh - 40px);
	max-height: calc(100dvh - 40px);
	overflow-y: auto;
}
.handoff_modal .modal__title {
	padding-right: 32px;
}
.handoff_modal .modal__text {
	margin-bottom: 16px;
}
.handoff_modal__step {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.handoff_modal__step .modal__text,
.handoff_modal__step .modal__title {
	margin-bottom: 0;
}
.handoff_modal__search {
	height: 44px;
}
.handoff_modal__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: min(50vh, 420px);
	overflow-y: auto;
	margin: 0 -8px;
	scrollbar-width: thin;
	scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
.handoff_modal__empty {
	padding: 16px 8px;
	color: var(--text-secondary);
	font-size: 14px;
	text-align: center;
}
.handoff_advisor {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 8px;
	border: none;
	border-radius: var(--radius-sm);
	background: none;
	color: var(--text-main);
	text-align: left;
	cursor: pointer;
}
.handoff_advisor:hover {
	background: var(--bg-card-hover);
}
.handoff_advisor__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.handoff_advisor__text {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}
.handoff_advisor__name {
	font-size: 15px;
	font-weight: 600;
}
.handoff_advisor__name,
.handoff_advisor__role {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.handoff_advisor__role {
	font-size: 13px;
	color: var(--text-secondary);
}
.handoff_advisor__cost {
	flex-shrink: 0;
	font-size: 13px;
	color: var(--text-secondary);
}
.handoff_modal__back {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	padding: 0;
	border: none;
	background: none;
	color: var(--text-secondary);
	font-size: 14px;
	cursor: pointer;
}
.handoff_modal__back svg {
	fill: var(--text-secondary);
}
.handoff_modal__back:hover {
	color: var(--text-main);
}
.handoff_modal__target {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-right: 32px;
}
.handoff_modal__textarea_wrap {
	padding: 10px 12px;
}
.handoff_modal__textarea_wrap .na_textarea {
	width: 100%;
	resize: vertical;
	font-family: inherit;
	line-height: 1.45;
}
.handoff_modal__textarea_wrap .na_textarea:disabled {
	opacity: 0.6;
}
.handoff_modal__hint {
	font-size: 13px;
	color: var(--text-secondary);
}
.handoff_modal__summary_btn {
	margin-top: 6px;
	font-size: 13px;
}
.handoff_modal__send {
	width: 100%;
}
.handoff_modal__send:disabled {
	opacity: 0.5;
	cursor: default;
}

/* модалка-карточка по центру: иконка в круге, заголовок, текст, кнопки
   (нет кредитов, партнёрское вознаграждение, предложение включить push) */
.info_modal {
	max-width: 360px;
	padding: 32px 28px 28px;
	text-align: center;
	position: relative;
}
.info_modal .modal__title {
	font-size: 20px;
	margin-bottom: 10px;
}
.info_modal__icon {
	position: relative;
	width: 104px;
	height: 104px;
	margin: 4px auto 20px;
	border-radius: 50%;
	border: 1px solid var(--border-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.info_modal__icon svg {
	width: 48px;
	height: 48px;
	fill: var(--accent);
}
.info_modal__badge {
	position: absolute;
	top: 2px;
	right: 2px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--danger);
	border: 3px solid var(--bg-panel);
	display: flex;
	align-items: center;
	justify-content: center;
}
.info_modal__badge svg {
	width: 14px;
	height: 14px;
	fill: #fff;
}
/* одиночная кнопка-ссылка на всю ширину */
a.info_modal__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	margin-bottom: 14px;
}
.info_modal__actions {
	display: flex;
	gap: 10px;
}
.info_modal__actions .modal__btn {
	flex: 1;
}
.partner_income_modal__icon {
	overflow: hidden;
}
.partner_income_modal__icon img {
	width: 72px;
	height: 72px;
}

/* ===== Prices ===== */
.prices_wrap {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 20px 16px 40px;
	max-width: 600px;
	margin: 0 auto;
	width: 100%;
}
.prices_intro {
	text-align: center;
	padding: 10px 0;
}
.prices_intro__title {
	font-size: 20px;
	font-weight: 700;
	color: var(--text-main);
	margin-bottom: 8px;
}
.prices_intro__text {
	font-size: 14px;
	color: var(--text-secondary);
	line-height: 1.6;
}
.prices_section_title {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-muted);
}
.prices_packages {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.prices_package {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 16px;
	transition: border-color 0.2s;
	text-decoration: none;
}
.prices_package:hover {
	border-color: var(--border-strong);
}
.prices_package--popular {
	border-color: rgba(var(--accent-rgb), 0.5);
	background: linear-gradient(135deg, var(--bg-card) 0%, #122840 100%);
}
.prices_package__badge {
	position: absolute;
	top: -10px;
	left: 16px;
	background: var(--accent);
	color: var(--text-on-accent);
	font-size: 11px;
	font-weight: 700;
	padding: 2px 10px;
	border-radius: 20px;
}
.prices_package__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--text-main);
	min-width: 70px;
}
.prices_package__credits {
	flex: 1;
	font-size: 18px;
	font-weight: 700;
	color: var(--accent);
}
.prices_package__credits span {
	font-size: 12px;
	font-weight: 400;
	color: var(--text-secondary);
}
.prices_package__price {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-main);
}
.prices_package__per {
	font-size: 11px;
	color: var(--text-muted);
	min-width: 110px;
	text-align: right;
}
.prices_package__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 18px;
	border: none;
	border-radius: var(--radius-sm);
	background: var(--primary);
	color: var(--text-main);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.2s;
}
.prices_package__btn:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}
.prices_package__btn:hover {
	background: var(--primary-hover);
}
.prices_package__btn--accent {
	background: var(--accent-gradient);
	color: var(--text-on-accent);
}
.prices_package__btn--accent:hover {
	background: var(--accent-gradient-hover);
}
/* список строк-карточек: цены, расходы и доход по советникам и по дням, пополнения, мои советники */
.card_list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.card_list[hidden] {
	display: none;
}
.card_list__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: var(--bg-card);
	border-radius: var(--radius-sm);
}
.card_list__item--top {
	background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.08) 0%, var(--bg-card) 100%);
}
/* строка-кнопка (день в истории расходов/дохода) */
.card_list__item--btn {
	width: 100%;
	border: none;
	color: inherit;
	cursor: pointer;
	text-align: left;
	transition: background 0.15s;
}
.card_list__item--btn:hover {
	background: var(--bg-card-hover);
}
.card_list__link {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}
.card_list__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-width: 36px;
	border-radius: 50%;
	background: rgba(94,187,114,0.12);
}
.card_list__icon svg {
	fill: var(--success);
}
.card_list__main {
	flex: 1;
	min-width: 0;
}
.card_list__title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-main);
}
.card_list__sub {
	font-size: 12px;
	color: var(--text-muted);
	margin-top: 2px;
}
/* правая колонка: сумма + подпись под ней */
.card_list__stats {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}
.card_list__value {
	font-size: 15px;
	font-weight: 700;
	color: var(--accent);
	white-space: nowrap;
	text-align: right;
	display: flex;
	align-items: center;
	gap: 5px;
}
.card_list__value span {
	font-size: 11px;
	font-weight: 400;
	color: var(--text-muted);
}
.card_list__value--plus {
	color: var(--success);
}
.card_list__value--minus {
	color: var(--danger);
}
.card_list__arrow {
	flex-shrink: 0;
	fill: var(--text-muted);
}
.prices_free {
	display: flex;
	align-items: center;
	gap: 14px;
	background: rgba(var(--accent-rgb), 0.08);
	border: 1px solid rgba(var(--accent-rgb), 0.25);
	border-radius: var(--radius-md);
	padding: 16px;
}
.prices_free svg {
	fill: var(--accent);
	flex-shrink: 0;
}
.prices_free__title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-main);
}
.prices_free__sub {
	font-size: 12px;
	color: var(--text-secondary);
	margin-top: 3px;
}
.prices_legal {
	font-size: 11px;
	line-height: 1.5;
	color: var(--text-secondary);
	text-align: center;
	margin-top: 8px;
	opacity: 0.6;
}

.stats_summary {
	display: flex;
	gap: 12px;
}
.stats_summary__item {
	flex: 1;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 16px;
	text-align: center;
}
.stats_summary__value {
	font-size: 24px;
	font-weight: 700;
	color: var(--accent);
}
.stats_summary__label {
	font-size: 12px;
	color: var(--text-muted);
	margin-top: 4px;
}
.stats_model__avatar {
	width: 40px;
	height: 40px;
	min-width: 40px;
	border-radius: 50%;
	object-fit: cover;
}
.stats_empty {
	text-align: center;
	color: var(--text-secondary);
	font-size: 14px;
	padding: 24px 0;
}
.stats_empty a {
	color: var(--text-secondary);
}

.credits_balance {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px;
	background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.12) 0%, var(--bg-card) 100%);
	border: 1px solid rgba(var(--accent-rgb), 0.25);
	border-radius: var(--radius-md);
}
.credits_balance__label {
	font-size: 12px;
	color: var(--text-muted);
}
.credits_balance__value {
	font-size: 26px;
	font-weight: 700;
	color: var(--accent);
	margin-top: 4px;
}
.credits_balance__value span {
	font-size: 13px;
	font-weight: 400;
	color: var(--text-secondary);
}
.credits_balance__btn {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
	padding: 10px 18px;
	border-radius: var(--radius-sm);
	background: var(--accent-gradient);
	color: var(--text-on-accent);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: filter 0.15s;
}
.credits_balance__btn:hover {
	filter: brightness(1.05);
}
.credits_balance__btn svg {
	fill: var(--text-on-accent);
}

.credits_tabs {
	display: flex;
	gap: 6px;
	padding: 4px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
}
.credits_tab {
	flex: 1;
	padding: 9px 10px;
	border: none;
	border-radius: var(--radius-sm);
	background: none;
	color: var(--text-secondary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}
.credits_tab--active {
	background: var(--accent);
	color: var(--text-on-accent);
}

.income_day_detail {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.income_day_detail[hidden] {
	display: none;
}
.income_day_detail__back {
	display: flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	padding: 8px 0;
	border: none;
	background: none;
	color: var(--text-secondary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.income_day_detail__back svg {
	fill: var(--text-secondary);
}
.income_day_detail__back:hover {
	color: var(--text-main);
}
.income_day_detail__back:hover svg {
	fill: var(--text-main);
}

.balance_soon {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	padding: 40px 20px;
}
.balance_soon svg {
	fill: var(--accent);
}
.balance_soon__title {
	font-size: 16px;
	font-weight: 700;
	color: var(--text-main);
}
.balance_soon__text {
	font-size: 14px;
	color: var(--text-secondary);
	line-height: 1.6;
	max-width: 360px;
}
.balance_soon__text a {
	color: var(--accent);
}
.balance_soon__note {
	font-size: 12px;
	color: var(--text-muted);
	max-width: 360px;
}

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

/* ===== Cookie banner ===== */
.cookie_banner {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2000;
	gap: 16px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	padding: 16px 20px;
	padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	background: var(--bg-card);
	border-top: 1px solid var(--border-soft);
	box-shadow: var(--shadow-card);
}
.cookie_banner--visible {
	display: flex;
}
.cookie_banner__text {
	flex: 1 1 320px;
	max-width: 720px;
	color: var(--text-secondary);
	font-size: 14px;
	line-height: 1.5;
}
.cookie_banner__btn {
	flex-shrink: 0;
	border: none;
	border-radius: var(--radius-sm);
	background: var(--accent-gradient-soft);
	color: var(--text-on-accent);
	font-size: 14px;
	font-weight: 600;
	padding: 10px 22px;
	cursor: pointer;
}
.cookie_banner__btn:hover {
	background: var(--accent-gradient-soft-hover);
}

/* ===== Rate advisor modal ===== */
.rate_modal {
	max-width: 400px;
}
.rate_modal__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}
.rate_modal__header_text {
	min-width: 0;
}
.rate_modal__title {
	margin-bottom: 4px;
}
.rate_modal__subtitle {
	font-size: 14px;
	color: var(--text-secondary);
}
.rate_modal__close {
	position: static;
	flex-shrink: 0;
}
.rate_modal__close svg {
	fill: var(--text-secondary);
}

.rate_modal__stars {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: 24px 0 10px;
}
.rate_modal__star {
	border: none;
	background: none;
	padding: 4px;
	cursor: pointer;
	line-height: 0;
	transition: transform 0.1s;
}
.rate_modal__star:hover {
	transform: scale(1.1);
}
.rate_modal__star svg {
	fill: none;
	stroke: var(--text-muted);
	stroke-width: 1.5;
	transition: fill 0.12s, stroke 0.12s;
}
.rate_modal__star--filled svg {
	fill: var(--accent);
	stroke: var(--accent);
}
.rate_modal__sentiment {
	min-height: 20px;
	margin-bottom: 20px;
	text-align: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--accent);
}

.rate_modal__field {
	position: relative;
	margin-bottom: 20px;
}
.rate_modal__textarea {
	width: 100%;
	min-height: 90px;
	padding: 14px 14px 26px;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	background: #FFFFFF;
	color: var(--text-input);
	font-size: 14px;
	line-height: 1.5;
	resize: none;
	box-sizing: border-box;
}
.rate_modal__textarea::placeholder {
	color: var(--text-input-placeholder);
}
.rate_modal__textarea:focus::placeholder {
	color: transparent;
}
.rate_modal__textarea:focus {
	outline: none;
	border-color: var(--border-strong);
}
.rate_modal__counter {
	position: absolute;
	right: 12px;
	bottom: 10px;
	font-size: 12px;
	color: var(--text-muted);
	pointer-events: none;
}

.rate_modal__submit {
	width: 100%;
	height: 50px;
}
.rate_modal__submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ===== Agreement page ===== */
.legal_doc {
	max-width: 760px;
	margin: 0 auto;
	padding: 20px 16px 60px;
	color: var(--text-secondary);
	font-size: 15px;
	line-height: 1.65;
}
.agreement_download {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 20px;
	padding: 10px 18px;
	border-radius: var(--radius-sm);
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	color: var(--text-main);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.agreement_download:hover {
	border-color: var(--accent);
	color: var(--accent);
}
.agreement_download svg {
	fill: currentColor;
}
.legal_doc__title {
	color: var(--text-main);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 8px;
}
.legal_doc__meta {
	color: var(--text-muted);
	font-size: 13px;
	margin-bottom: 28px;
}
.legal_doc h2 {
	color: var(--text-main);
	font-size: 18px;
	font-weight: 700;
	margin: 32px 0 12px;
}
.legal_doc p {
	margin: 0 0 12px;
}
.legal_doc ul {
	margin: 0 0 12px;
	padding-left: 22px;
}
.legal_doc li {
	margin-bottom: 6px;
}
.legal_doc__requisites p {
	margin: 0 0 6px;
}
.legal_doc a {
	color: var(--accent);
}

/* ===== Advisor profile page ===== */
.advisor_profile__wrap {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 20px 16px 40px;
	max-width: 600px;
	margin: 0 auto;
	width: 100%;
}
.advisor_profile__chat_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px;
	border-radius: var(--radius-md);
	background: var(--accent-gradient-soft);
	color: var(--text-on-accent);
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
}
.advisor_profile__chat_btn svg {
	fill: currentColor;
}
.advisor_profile__chat_btn:hover {
	background: var(--accent-gradient-soft-hover);
}

.advisor_referral {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 16px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
}
.advisor_referral__income {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	width: 100%;
}
.advisor_referral__label {
	font-size: 14px;
	color: var(--text-secondary);
}
.advisor_referral__value {
	font-size: 18px;
	font-weight: 700;
	color: var(--accent);
}
.advisor_referral__value span {
	font-size: 12px;
	font-weight: 400;
	color: var(--text-muted);
}
.advisor_referral__toggle {
	padding: 0;
	border: none;
	background: none;
	color: var(--accent);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.advisor_referral__toggle:hover {
	color: var(--accent-hover);
}
.advisor_referral__panel {
	width: 100%;
}
.advisor_referral__promo_text {
	margin: 0;
	font-size: 14px;
	color: var(--text-secondary);
	line-height: 1.6;
}

.advisor_about {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.advisor_about__title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	color: var(--text-main);
}
.advisor_about__title_icon {
	display: flex;
	align-items: center;
	justify-content: center;
}
.advisor_about__title_icon svg {
	fill: #1072e7;
}
.advisor_about__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--text-secondary);
	white-space: pre-line;
}

.advisor_price__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	border-radius: 50%;
	background: rgba(16,114,231,0.12);
}
.advisor_price__icon svg {
	fill: #1072e7;
}

.advisor_share {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.advisor_share__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 10px 10px 14px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
}
.advisor_share__link svg {
	flex-shrink: 0;
	fill: var(--text-muted);
}
.advisor_share__url {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 13px;
	color: var(--text-secondary);
}
.advisor_share__copy {
	flex-shrink: 0;
	padding: 8px 14px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	background: none;
	color: var(--accent);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s;
}
.advisor_share__copy:hover {
	background: rgba(var(--accent-rgb), 0.1);
}

.advisor_share__socials {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scrollbar-width: none;
}
.advisor_share__socials::-webkit-scrollbar {
	display: none;
}
.advisor_share__social {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-shrink: 0;
	width: 64px;
	gap: 6px;
	padding: 0;
	border: none;
	background: none;
	color: var(--text-secondary);
	font-size: 12px;
	text-decoration: none;
	cursor: pointer;
}
.advisor_share__social_icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
}
.advisor_share__social_icon--whatsapp {
	background: var(--whatsapp);
}
.advisor_share__social_icon--telegram {
	background: var(--telegram);
}
.advisor_share__social_icon--viber {
	background: #7360f2;
}
.advisor_share__social_icon--vk {
	background: #0077ff;
}
.advisor_share__social_icon--more {
	background: var(--bg-card-hover);
	border: 1px solid var(--border-soft);
}
.advisor_share__social_icon--more svg {
	fill: var(--text-secondary);
}
.advisor_share__social_label {
	white-space: nowrap;
}

/* ===== Reviews page ===== */
.reviews_card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px;
	background: linear-gradient(145deg, rgba(15,32,51,0.96), rgba(8,20,34,0.96));
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
}
.reviews_card .advisor_info {
	padding: 0;
	background: none;
	border: none;
	box-shadow: none;
}
.reviews_card__tagline {
	margin-top: 8px;
	font-size: 15px;
	color: var(--text-secondary);
}

.reviews_score {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding-top: 16px;
	border-top: 1px solid var(--border-soft);
}
.reviews_score__value {
	font-size: 28px;
	font-weight: 700;
	color: var(--text-main);
}
.reviews_score__stars {
	display: flex;
	gap: 3px;
}
.reviews_score__count {
	font-size: 14px;
	color: var(--text-secondary);
}

.review_star--filled {
	fill: var(--accent);
}
.review_star--empty {
	fill: var(--border-soft);
}

.reviews_breakdown {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.reviews_breakdown__row {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}
.reviews_breakdown__star {
	display: flex;
	align-items: center;
	gap: 3px;
	width: 24px;
	flex-shrink: 0;
	font-size: 13px;
	color: var(--text-secondary);
}
.reviews_breakdown__star svg {
	fill: var(--accent);
}
.reviews_breakdown__bar {
	flex: 1;
	height: 6px;
	border-radius: 3px;
	background: var(--bg-card-hover);
	overflow: hidden;
}
.reviews_breakdown__bar_fill {
	display: block;
	height: 100%;
	background: var(--accent);
	border-radius: 3px;
}
.reviews_breakdown__count {
	width: 30px;
	flex-shrink: 0;
	text-align: right;
	font-size: 13px;
	color: var(--text-muted);
}
.reviews_breakdown__row--active .reviews_breakdown__count,
.reviews_breakdown__row--active .reviews_breakdown__star {
	color: var(--accent);
	font-weight: 700;
}

.reviews_controls {
	display: flex;
	gap: 10px;
	margin: 0;
}
.reviews_controls__field {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-sm);
	background: #FFFFFF;
}
.reviews_controls__field svg {
	flex-shrink: 0;
	fill: var(--text-input);
}
.reviews_controls__field select {
	flex: 1;
	min-width: 0;
	border: none;
	background: none;
	color: var(--text-input);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}
.reviews_controls__field select:focus {
	outline: none;
}

.reviews_list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.review_item {
	display: flex;
	gap: 12px;
	padding: 16px;
	background: var(--bg-card);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
}
.review_item__avatar {
	width: 44px;
	height: 44px;
	min-width: 44px;
	border-radius: 50%;
	object-fit: cover;
}
.review_item__content {
	flex: 1;
	min-width: 0;
}
.review_item__header {
	display: flex;
	align-items: center;
	gap: 6px;
}
.review_item__name {
	font-size: 15px;
	font-weight: 700;
	color: var(--text-main);
}
.review_item__verified {
	fill: #3897f0;
}
.review_item__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 3px;
	font-size: 13px;
	color: var(--text-muted);
}
.review_item__stars {
	display: flex;
	gap: 1px;
}
.review_item__rating_num {
	font-weight: 600;
	color: var(--text-secondary);
}
.review_item__text {
	margin: 8px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--text-secondary);
}

.reviews_chat_btn {
	margin: 10px 15px calc(10px + env(safe-area-inset-bottom, 0px));
}

/* ===== «Спросить совет» (templates/chats/council*.twig) ===== */
.council_wrap .na_field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.council_pick {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.council_pick__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.council_pick__counter {
	font-size: 13px;
	color: var(--text-secondary);
}
.council_pick__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: min(55vh, 460px);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
.council_advisor__check {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	border: 2px solid var(--text-muted);
	border-radius: var(--radius-xs);
	transition: background 0.15s, border-color 0.15s;
}
.council_advisor__check svg {
	fill: var(--text-on-accent);
	opacity: 0;
}
.council_advisor--selected {
	background: rgba(var(--accent-rgb), 0.12);
}
.council_advisor--selected .council_advisor__check {
	background: var(--accent);
	border-color: var(--accent);
}
.council_advisor--selected .council_advisor__check svg {
	opacity: 1;
}
.council_advisor--disabled {
	opacity: 0.45;
	cursor: default;
}
.council_advisor--disabled:hover {
	background: none;
}
.council_submit {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
}
.council_submit__btn {
	border: none;
	cursor: pointer;
	font-family: inherit;
}
.council_submit__btn:disabled {
	opacity: 0.5;
	cursor: default;
}
.council_recent {
	text-decoration: none;
}
.council_recent__question {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.council_recent .card_list__sub {
	display: block;
}
.council_avatars {
	display: flex;
	flex-shrink: 0;
}
.council_avatars img {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--bg-card);
}
.council_avatars img + img {
	margin-left: -10px;
}

.council_new_btn,
.council_share_btn {
	margin-left: auto;
}
.council_share_btn + .council_new_btn {
	margin-left: 4px;
}
.council_page {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px 16px 40px;
	max-width: var(--max-desktop-size);
	margin: 0 auto;
	width: 100%;
}
.council_question {
	padding: 16px 18px;
	border-radius: var(--radius-md);
	background: var(--primary);
}
.council_question__label {
	margin-bottom: 6px;
	font-size: 13px;
	color: var(--text-secondary);
}
.council_question__text {
	font-size: var(--font-base);
	line-height: 1.5;
	color: var(--text-main);
	word-break: break-word;
}
.council_summary {
	padding: 16px 18px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.08) 0%, var(--bg-card) 100%);
}
.council_summary__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-weight: 700;
	color: var(--accent);
}
.council_summary__title svg {
	fill: var(--accent);
}
.council_summary__note {
	font-size: 14px;
	line-height: 1.5;
	color: var(--text-secondary);
}
.council_summary__retry {
	padding: 0;
	border: none;
	background: none;
	color: var(--accent);
	font-size: inherit;
	cursor: pointer;
	text-decoration: underline;
}
.council_grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
}
.council_grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.council_card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	border-radius: var(--radius-md);
	background: var(--bg-card);
	overflow: hidden;
}
.council_card__head {
	padding: 12px 14px;
	border-bottom: 1px solid var(--border-soft);
}
.council_card__advisor {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	color: var(--text-main);
	text-decoration: none;
}
.council_card__body {
	padding: 14px;
	color: var(--text-main);
	font-size: 15px;
	line-height: 1.55;
	word-break: break-word;
}
.council_card__typing {
	padding: 0 0 8px;
}
.council_card__note {
	font-size: 14px;
	color: var(--text-secondary);
}
.council_card--failed .council_card__note {
	color: var(--text-muted);
}
.council_card__image {
	display: block;
	max-width: 100%;
	margin-bottom: 10px;
	border-radius: var(--radius-sm);
}
.council_grid--images .council_card__image {
	width: 100%;
	margin-bottom: 0;
}
.council_wrap .credits_tabs {
	margin-bottom: 16px;
}
.council_card__continue {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin-top: auto;
	padding: 10px 14px;
	border-top: 1px solid var(--border-soft);
	color: var(--accent);
	font-size: 14px;
	text-decoration: none;
}
.council_card__continue svg {
	fill: var(--accent);
}
.council_card__continue:hover {
	color: var(--accent-hover);
}
@media (max-width: 900px) {
	.council_grid,
	.council_grid--3 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* вход в «Спросить совет»: над списком диалогов и на пустом экране выбора советника */
.council_entry {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 10px 15px 0;
	padding: 10px 14px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: rgba(var(--accent-rgb), 0.08);
	color: var(--text-main);
	text-decoration: none;
	transition: background 0.15s;
}
.council_entry:hover {
	background: rgba(var(--accent-rgb), 0.16);
	color: var(--text-main);
}
.council_entry svg {
	flex-shrink: 0;
	fill: var(--accent);
}
.council_entry__text {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}
.council_entry__title {
	font-size: 15px;
	font-weight: 600;
}
.council_entry__sub {
	font-size: 12px;
	color: var(--text-secondary);
}
.ca_link {
	margin-top: 4px;
	font-size: 14px;
	color: var(--accent);
}
.ca_link:hover {
	color: var(--accent-hover);
}

/* статистика советника для автора: /my_advisors/<id>/ */
a.credits_tab {
	text-align: center;
	text-decoration: none;
}
.bot_stats_chart {
	display: flex;
	align-items: flex-end;
	gap: 2px;
	height: 120px;
	padding: 12px;
	background: var(--bg-card);
	border-radius: var(--radius-sm);
}
.bot_stats_chart__col {
	flex: 1;
	display: flex;
	align-items: flex-end;
	height: 100%;
}
.bot_stats_chart__bar {
	width: 100%;
	min-height: 2px;
	background: var(--accent);
	border-radius: 2px 2px 0 0;
}
.bot_stats_chart__col:hover .bot_stats_chart__bar {
	background: var(--accent-hover);
}
.bot_stats_chart__axis {
	display: flex;
	justify-content: space-between;
	margin-top: -8px;
	font-size: 11px;
	color: var(--text-muted);
}
.bot_stats_warn {
	box-shadow: inset 3px 0 0 var(--danger);
}
.bot_stats_warn .card_list__value {
	color: var(--danger);
}
.bot_stats_rating {
	gap: 20px;
}
.bot_stats_rating__total {
	min-width: 70px;
	text-align: center;
}
.bot_stats_rating__bars {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.bot_stats_rating__row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--text-secondary);
}
.bot_stats_rating__row svg {
	fill: var(--accent);
}
.bot_stats_rating__track {
	flex: 1;
	height: 6px;
	background: var(--border-soft);
	border-radius: 3px;
	overflow: hidden;
}
.bot_stats_rating__fill {
	height: 100%;
	background: var(--accent);
}
.bot_stats_rating__cnt {
	min-width: 20px;
	text-align: right;
}
.bot_stats_review__text {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--text-secondary);
	white-space: pre-line;
}
.bot_topics__item .card_list__main {
	min-width: 0;
}
.bot_topics__track {
	margin-top: 8px;
}
.bot_topics__note {
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--text-muted);
}
/* цифры за 30 дней в карточке советника в «Мои советники» */
.my_advisor_stats {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-top: 6px;
	font-size: 12px;
	color: var(--text-secondary);
}
.my_advisor_stats__up {
	color: var(--success);
}
.my_advisor_stats__down {
	color: var(--danger);
}
.my_advisor_actions {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

/* публичная страница ссылки /s/<token>/ (templates/chats/share.twig) - карточки и вопрос из стилей совета */
.share_page {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px 16px 40px;
	max-width: var(--max-desktop-size);
	margin: 0 auto;
	width: 100%;
}
.share_owner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	padding: 12px 16px;
	border: 1px dashed var(--text-secondary);
	border-radius: var(--radius-md);
	font-size: 13px;
	color: var(--text-secondary);
}
.share_owner__revoke {
	padding: 0;
	border: none;
	background: none;
	color: var(--accent);
	font-size: 13px;
	cursor: pointer;
}
.share_owner__revoke:hover {
	text-decoration: underline;
}
.share_page__answer .council_card__body {
	padding-top: 16px;
}
.share_page__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	height: auto;
	min-height: 48px;
	max-width: 100%;
	padding: 8px 24px;
	text-align: center;
	text-decoration: none;
}
.share_page__note {
	font-size: 12px;
	text-align: center;
	color: var(--text-secondary);
}

/* избранное /saved/ (templates/chats/saved.twig) - карточки из стилей совета, контейнер как у share_page */
.saved_item__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.saved_item__date {
	flex-shrink: 0;
	font-size: 12px;
	color: var(--text-secondary);
}
.saved_item__question {
	margin-bottom: 12px;
	padding: 8px 12px;
	border-left: 3px solid var(--border-strong);
	border-radius: var(--radius-xs);
	background: var(--primary);
	font-size: 14px;
	line-height: 1.45;
	color: var(--text-secondary);
	white-space: pre-line;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.saved_item__answer--collapsed {
	max-height: 320px;
	overflow: hidden;
}
.saved_item__answer--fade {
	-webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
	mask-image: linear-gradient(to bottom, #000 70%, transparent);
}
.saved_item__expand {
	display: none;
	margin-top: 8px;
	padding: 0;
	border: none;
	background: none;
	color: var(--accent);
	font-size: 14px;
	cursor: pointer;
}
.saved_item__expand.is-visible {
	display: inline-block;
}
.saved_item__expand:hover {
	color: var(--accent-hover);
}
.saved_item__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	padding: 10px 14px;
	border-top: 1px solid var(--border-soft);
}
.saved_item__actions .message_action_btn {
	font-size: 13px;
	text-decoration: none;
}
.saved_item__open {
	margin-left: auto;
	color: var(--accent);
}
.saved_item__open svg {
	fill: var(--accent);
}
.saved_item__remove svg,
.saved_item__remove:hover svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linejoin: round;
}
.saved_item__remove.is-active svg {
	fill: var(--accent);
	stroke: var(--accent);
}
.saved_item--removed .council_card__head,
.saved_item--removed .council_card__body {
	opacity: 0.45;
}
.saved_empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 48px 16px;
	text-align: center;
}
.saved_empty__icon {
	width: 40px;
	height: 40px;
	fill: none;
	stroke: var(--accent);
	stroke-width: 1.2;
	stroke-linejoin: round;
}
.saved_empty__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-main);
}
.saved_empty__text {
	max-width: 420px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--text-secondary);
}
.saved_pager {
	display: flex;
	justify-content: space-between;
	gap: 16px;
}
.saved_pager__link {
	color: var(--accent);
	font-size: 14px;
	text-decoration: none;
}
.saved_pager__link--next {
	margin-left: auto;
}
