/**
 * Стили виджетов Portfolio Backtest.
 * Адаптивность: карточки и графики тянутся по ширине контейнера.
 */

.pbt-widget {
	--pbt-up: #16a34a;
	--pbt-down: #dc2626;
	--pbt-border: #e5e7eb;
	--pbt-muted: #6b7280;
	--pbt-bg: #ffffff;
	--pbt-accent: #2563eb;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #111827;
	background: var(--pbt-bg);
	/* Без рамки и скруглений — блок вписывается в текст урока. */
	border: 0;
	border-radius: 0;
	padding: 0 0 8px;
	margin: 18px 0;
	box-sizing: border-box;
	max-width: 100%;
}

.pbt-widget * { box-sizing: border-box; }

/* Шапка карточки */
.pbt-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.pbt-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	font-weight: 700;
	margin: 0;
}
.pbt-title .pbt-icon { font-size: 22px; line-height: 1; }

/* Крупная цифра доходности */
.pbt-headline {
	text-align: right;
}
.pbt-headline .pbt-big {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.1;
}
.pbt-headline .pbt-sub {
	font-size: 12px;
	color: var(--pbt-muted);
	margin-top: 2px;
}
.pbt-up { color: var(--pbt-up); }
.pbt-down { color: var(--pbt-down); }
/* DCA-доходность под CAGR (тёмно-серым). */
.pbt-dca-line { color: #374151; font-size: 13px; margin-top: 3px; }

/* Переключатель периода */
.pbt-periods {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin: 14px 0 6px;
}
.pbt-period-btn {
	border: 1px solid var(--pbt-border);
	background: #f9fafb;
	color: #374151;
	border-radius: 999px;
	padding: 5px 12px;
	font-size: 13px;
	cursor: pointer;
	transition: all .15s ease;
}
.pbt-period-btn:hover { background: #eef2ff; }
.pbt-period-btn.is-active {
	background: var(--pbt-accent);
	border-color: var(--pbt-accent);
	color: #fff;
}

/* Выбор точных годов */
.pbt-year-range {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: #374151;
}
.pbt-year-sel {
	border: 1px solid var(--pbt-border, #e5e7eb);
	border-radius: 999px;
	background: #f9fafb;
	color: #374151;
	padding: 4px 8px;
	font-size: 13px;
	cursor: pointer;
}

/* Тумблер инфляции */
.pbt-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: #374151;
	cursor: pointer;
	margin-left: auto;
}

/* Область графика */
.pbt-chart-wrap { position: relative; width: 100%; }
/* min-height — только заглушка до отрисовки, держим её близкой к реальной
   высоте графика, чтобы страница не «прыгала». */
.pbt-chart { width: 100%; min-height: 310px; margin-top: 6px; }

/* Кнопка «на весь экран» — слева сверху (справа стоит панель ApexCharts). */
.pbt-fs-btn {
	position: absolute;
	top: 2px;
	left: 0;
	z-index: 5;
	border: 1px solid var(--pbt-border, #e5e7eb);
	background: rgba(255, 255, 255, .9);
	color: #374151;
	border-radius: 6px;
	width: 26px;
	height: 26px;
	line-height: 1;
	font-size: 14px;
	cursor: pointer;
	padding: 0;
}
.pbt-fs-btn:hover { background: #eef2ff; color: #111827; }
/* У таблиц кнопка стоит в потоке над правым краем — поверх шапки таблицы
   она бы перекрыла заголовок столбца. */
.pbt-fs-host:not(.pbt-fs-chart) { display: flex; flex-direction: column; }
.pbt-fs-host:not(.pbt-fs-chart) .pbt-fs-btn {
	position: static;
	align-self: flex-end;
	order: -1;
	width: 24px;
	height: 24px;
	font-size: 13px;
	margin-bottom: -6px;
}

/* Полноэкранный режим (график и широкие таблицы). Нативный fullscreen сам
   растягивает контейнер; запасной режим (Safari на iPhone) делает то же оверлеем. */
.pbt-fs-host { position: relative; }
.pbt-fs-host.pbt-fs-on {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	background: var(--pbt-bg, #fff);
	z-index: 99999;
	padding: 34px 8px 8px;
	overflow: auto;
}
.pbt-fs-host:fullscreen {
	background: var(--pbt-bg, #fff);
	padding: 34px 8px 8px;
	overflow: auto;
}
/* График занимает всю высоту, таблица — прокручивается по обеим осям. */
.pbt-fs-host.pbt-fs-on.pbt-fs-chart,
.pbt-fs-host.pbt-fs-chart:fullscreen { display: flex; align-items: center; overflow: hidden; }
.pbt-fs-host.pbt-fs-on .pbt-chart,
.pbt-fs-host:fullscreen .pbt-chart { flex: 1 1 auto; margin: 0; }
.pbt-fs-host.pbt-fs-on .pbt-table-wrap,
.pbt-fs-host:fullscreen .pbt-table-wrap { max-height: calc(100vh - 50px); overflow: auto; }
.pbt-fs-host.pbt-fs-on .pbt-fs-btn,
.pbt-fs-host:fullscreen .pbt-fs-btn { top: 6px; left: 6px; position: fixed; }

/* Портретный телефон в запасном режиме: разворачиваем график поперёк экрана,
   чтобы длинная сторона досталась оси времени. */
.pbt-fs-host.pbt-fs-on.pbt-fs-rotate .pbt-chart {
	width: 100vh;
	height: calc(100vw - 42px);
	transform: rotate(90deg);
	transform-origin: center center;
	flex: 0 0 auto;
	margin: 0 auto;
}
.pbt-fs-host.pbt-fs-on.pbt-fs-rotate { justify-content: center; overflow: hidden; }
/* Выгрузка рядов CSV из меню графика не нужна: картинку унести можно, данные нет.
   Пункт удаляется и в JS (stripCsvExport), это подстраховка на перерисовку тулбара. */
.apexcharts-menu-item.exportCSV { display: none !important; }

/* Конструктор: сохранение состава ссылкой. */
.pbt-b-save { margin: 10px 0 4px; }
.pbt-b-savebtn {
	font: inherit;
	font-size: 13px;
	padding: 6px 12px;
	color: #1f2937;
	background: #f3f4f6;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	cursor: pointer;
}
.pbt-b-savebtn:hover { background: #e9ebee; }
.pbt-b-savehint { margin-top: 4px; font-size: 12px; color: #6b7280; }

/* Матрица корреляций: узкие числовые столбцы, диагональ приглушена. */
.pbt-table.pbt-corr-table td { text-align: right; white-space: nowrap; }
.pbt-table.pbt-corr-table td:first-child { text-align: left; }
.pbt-table.pbt-corr-table td.pbt-corr-diag { color: #6b7280; }

/* Строка «Старт» в таблице по годам — точка отсчёта, а не год. */
.pbt-table tr.pbt-year-start td { color: #6b7280; background: #fafafa !important; }

/* Кнопка «Показать все годы» — строкой таблицы, в месте пропуска. */
.pbt-table tr.pbt-years-more-row td { padding: 4px 8px; background: #fff !important; }
.pbt-years-more {
	display: inline-block;
	margin: 0;
	padding: 4px 10px;
	font: inherit;
	font-size: 13px;
	color: #1f2937;
	background: #f3f4f6;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	cursor: pointer;
}
.pbt-years-more:hover { background: #e9ebee; }

.pbt-bars { width: 100%; min-height: 200px; margin-top: 6px; }
.pbt-brush { width: 100%; margin: -4px 0 4px; }

/* Подписи */
.pbt-notes {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 13px;
	color: var(--pbt-muted);
	margin-top: 10px;
}
.pbt-notes b { color: #111827; }
.pbt-datadate {
	font-size: 12px;
	color: var(--pbt-muted);
	margin-top: 10px;
}
/* Фактически выбранный период (для проверки, за какой отрезок цифры). */
.pbt-period-info {
	font-size: 12px;
	color: var(--pbt-muted);
	margin-top: 10px;
}
.pbt-period-info + .pbt-datadate { margin-top: 2px; }

/* Таблица показателей */
.pbt-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 14px; overflow-x: auto; }
/* Тема курса навязывает таблицам свои отступы (`table { margin: 20px 0 !important }`
   в EduPress), из-за чего внутри блока появляются лишние пустоты. Внутри виджета
   возвращаем свои — иначе на странице урока блок «дышит» иначе, чем в админке. */
.pbt-widget table.pbt-table { margin: 10px 0 12px !important; }

/* Полоса горизонтальной прокрутки. Без явных стилей Chrome рисует её поверх
   нижней строки таблицы (классические полосы «съедают» высоту контента) —
   отсюда обрезанная последняя строка. Тонкая видимая полоса + нижний отступ
   таблицы решают и это, и «непонятно, что таблица прокручивается». */
.pbt-table-wrap { scrollbar-width: thin; scrollbar-color: #c7cbd1 transparent; }
.pbt-table-wrap::-webkit-scrollbar { height: 8px; }
.pbt-table-wrap::-webkit-scrollbar-track { background: #f3f4f6; border-radius: 4px; }
.pbt-table-wrap::-webkit-scrollbar-thumb { background: #c7cbd1; border-radius: 4px; }
.pbt-table-wrap::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
.pbt-table-wrap { width: 100%; overflow-x: auto; }
.pbt-table th, .pbt-table td {
	text-align: right;
	padding: 8px 10px;
	border-bottom: 1px solid var(--pbt-border);
	white-space: nowrap;
}
.pbt-table th:first-child, .pbt-table td:first-child { text-align: left; }
/* Закреплённый первый столбец при горизонтальной прокрутке.

   Тема WordPress может мешать двумя способами: сбрасывать фон ячеек
   (`td { background: transparent !important }`) и назначать ячейкам/строкам
   (в т.ч. чётным — зебра) `position: relative; z-index: …`, из-за чего
   прокручиваемые столбцы всплывали поверх закреплённого. Поэтому:
   1) обёртка — собственный контекст наложения (z-index не «протечёт» на
      элементы страницы вроде фиксированной шапки);
   2) у закреплённого столбца максимально конкретный селектор + !important +
      заведомо больший z-index (900), чтобы победить любые темовые правила;
   3) прокручиваемым ячейкам жёстко занижаем z-index. */
.pbt-widget .pbt-table-wrap { position: relative; z-index: 0; }
.pbt-widget .pbt-table-wrap table.pbt-table tr th:first-child,
.pbt-widget .pbt-table-wrap table.pbt-table tr td:first-child {
	position: -webkit-sticky;
	position: sticky;
	left: 0;
	background-color: var(--pbt-bg, #fff) !important;
	background-image: none !important;
	z-index: 900 !important;
}
.pbt-widget .pbt-table-wrap table.pbt-table thead tr th:first-child {
	z-index: 901 !important;
}
.pbt-widget .pbt-table-wrap table.pbt-table tr th:not(:first-child),
.pbt-widget .pbt-table-wrap table.pbt-table tr td:not(:first-child) {
	z-index: 0 !important;
}
.pbt-table td:first-child { box-shadow: 1px 0 0 var(--pbt-border, #e5e7eb); }
.pbt-table thead th {
	color: var(--pbt-muted);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: .01em;
	white-space: normal;      /* длинные названия переносятся */
	vertical-align: bottom;
	max-width: 130px;
	line-height: 1.25;
}
.pbt-table thead th.pbt-sortable { cursor: pointer; user-select: none; }
.pbt-table thead th.pbt-sortable:hover { color: #111827; background: #f3f4f6; }
.pbt-table .pbt-sort-ind { font-size: 10px; color: var(--pbt-accent); }
/* Пометка «данные с …» у активов с более поздней историей (сравнение). */
.pbt-table .pbt-note { color: var(--pbt-muted); font-size: 12px; font-weight: 400; white-space: nowrap; }

/* ---- Составные части портфеля — второстепенная строка ----
   Итог по портфелю должен читаться первым, поэтому строки по каждому активу
   приглушены и отделены линией. Цвет CAGR-ячеек задаётся инлайново, поэтому
   гасим их через opacity самой строки, а не цветом текста. */
.pbt-table tr.pbt-comp-row { opacity: .68; }
.pbt-table tr.pbt-comp-row td { font-weight: 400; }
.pbt-table tr.pbt-comp-row:first-of-type td { border-top: 1px solid var(--pbt-border, #e5e7eb); }
.pbt-table tr.pbt-comp-row td:first-child { padding-left: 20px; }
.pbt-comp-note {
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--pbt-muted);
}

/* ---- Таблица «CAGR по периодам» (эпоха × актив) ---- */
/* Название эпохи и мелкая серая подпись под ним (контекст десятилетия). */
.pbt-table .pbt-era-title { display: block; font-weight: 600; }
.pbt-table .pbt-era-sub {
	display: block;
	font-size: 11px;
	font-weight: 400;
	color: var(--pbt-muted);
	line-height: 1.3;
	margin-top: 1px;
	white-space: normal;
	max-width: 190px;
}
/* Ячейка CAGR: фон задаётся инлайново (насыщенность по величине). */
.pbt-table td.pbt-cagr-cell { text-align: right; }
.pbt-table .pbt-cagr-val { font-weight: 600; }
/* Пометка «с ММ.ГГГГ» для частичных данных внутри ячейки. */
.pbt-table .pbt-cell-note {
	display: block;
	font-size: 10px;
	font-weight: 400;
	color: var(--pbt-muted);
	line-height: 1.2;
	white-space: nowrap;
}
.pbt-table td.pbt-cell-empty { color: #9ca3af; }
.pbt-table .pbt-cagr-val.pbt-flat { color: #4b5563; }
/* Чем насыщеннее заливка, тем темнее подпись: брендовый зелёный на зелёном
   фоне не читается. На верхних ступенях — белым. */
.pbt-table td.pbt-cell-mid .pbt-cagr-val.pbt-up { color: #0f3d24 !important; }
.pbt-table td.pbt-cell-mid .pbt-cagr-val.pbt-down { color: #6b1b13 !important; }
.pbt-table td.pbt-cell-mid .pbt-cell-note { color: #374151; }
.pbt-table td.pbt-cell-dark .pbt-cagr-val { color: #fff !important; }
.pbt-table td.pbt-cell-dark .pbt-cell-note { color: rgba(255, 255, 255, .85); }
.pbt-table tr.pbt-row-total td { font-weight: 600; border-top: 2px solid var(--pbt-border); }

/* ---- Матрица «актив × год»: компактная, чтобы влезло больше лет ---- */
.pbt-table.pbt-table-matrix { font-size: 12px; }
.pbt-table.pbt-table-matrix th,
.pbt-table.pbt-table-matrix td {
	padding: 5px 6px;
	text-align: center;          /* значения по центру столбца */
}
.pbt-table.pbt-table-matrix th:first-child,
.pbt-table.pbt-table-matrix td:first-child { text-align: left; }
/* Ячейки со значениями — по ширине числа (width:1% ужимает до содержимого). */
.pbt-table.pbt-table-matrix td.pbt-cagr-cell,
.pbt-table.pbt-table-matrix td.pbt-cell-empty {
	width: 1%;
	white-space: nowrap;
}
.pbt-table.pbt-table-matrix thead th {
	font-size: 11px;
	max-width: none;
	white-space: nowrap;
}
/* Всё, что шире значений (слаги, подписи), переносим, а не растягиваем. */
.pbt-table.pbt-table-matrix tr.pbt-row-sum td { white-space: normal; word-break: break-word; }
.pbt-table.pbt-table-matrix .pbt-cagr-val { font-weight: 600; }

/* ---- Матрица «актив × год» ---- */
/* Неполный последний год (YTD) — пунктирная рамка, чтобы не путать с полным. */
.pbt-table td.pbt-cell-ytd { outline: 1px dashed rgba(37, 99, 235, 0.45); outline-offset: -2px; }
/* Итоговые столбцы (среднегодовая / за период) стоят слева, сразу за названием
   актива, — отделяем их от годов линией справа. */
.pbt-table.pbt-table-matrix td.pbt-col-edge,
.pbt-table.pbt-table-matrix thead th:nth-child(3) { border-right: 2px solid var(--pbt-border); }
.pbt-table thead th:nth-last-child(2), .pbt-table thead th:last-child { border-left: 2px solid var(--pbt-border); }
/* Итоговые строки: лучший/худший актив года и доля активов в плюсе. */
.pbt-table tr.pbt-row-sum td {
	font-size: 11px;
	color: #4b5563;
	border-top: 1px solid var(--pbt-border);
	background-color: #fafafa !important;
}
.pbt-table tr.pbt-row-sum td:first-child { font-weight: 600; }
.pbt-table td.pbt-sum-best { color: #15803d; }
.pbt-table td.pbt-sum-worst { color: #b91c1c; }
.pbt-table td.pbt-sum-pos { color: #374151; font-weight: 600; }
/* Выбор годов в интерактивном дашборде. */
.pbt-dash-years { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: #374151; }

/* Блок лучших/худших лет — две строки с еле заметным фоном */
.pbt-years {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 10px;
	font-size: 13px;
}
.pbt-years .pbt-year-item {
	padding: 6px 10px;
	border-radius: 8px;
	border: 1px solid transparent;
}
.pbt-years .pbt-best {
	background: rgba(22, 163, 74, 0.08);
	border-color: rgba(22, 163, 74, 0.18);
}
.pbt-years .pbt-worst {
	background: rgba(220, 38, 38, 0.07);
	border-color: rgba(220, 38, 38, 0.18);
}

/* Лучший/худший год — одна строка, по разным краям (перенос на узких экранах). */
.pbt-years-row {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	font-size: 13px;
}
.pbt-years-row .pbt-year-item {
	padding: 6px 10px;
	border-radius: 8px;
	border: 1px solid transparent;
}
.pbt-years-row .pbt-best {
	background: rgba(22, 163, 74, 0.08);
	border-color: rgba(22, 163, 74, 0.18);
}
.pbt-years-row .pbt-worst {
	background: rgba(220, 38, 38, 0.07);
	border-color: rgba(220, 38, 38, 0.18);
}

/* Сообщение об ошибке/отсутствии данных */
.pbt-error {
	color: var(--pbt-down);
	font-size: 14px;
	padding: 8px 0;
}

/* Секции */
.pbt-section { margin-top: 18px; }
/* Первая секция не должна добавлять отступ сверху: расстояние до текста урока
   уже задано margin виджета и абзацем темы. */
.pbt-section:first-child { margin-top: 0; }
.pbt-section-title { font-size: 15px; font-weight: 700; margin: 0 0 6px; }

/* Добавить актив в сравнение */
.pbt-add-asset {
	margin: 6px 0 2px;
	padding: 6px 10px;
	border: 1px dashed #c7ccd4;
	border-radius: 8px;
	background: #fff;
	font-size: 13px;
	color: #374151;
	cursor: pointer;
	max-width: 320px;
}

/* ------------------------- Демо-дашборд (плитки) ------------------------- */
/* Рендерится на сервере: в разметке только готовые проценты, без данных. */
.pbt-dash {
	--pbt-up: #16a34a;
	--pbt-down: #dc2626;
	--pbt-border: #e5e7eb;
	--pbt-muted: #6b7280;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #111827;
	margin: 18px 0;
	box-sizing: border-box;
	max-width: 100%;
}
.pbt-dash * { box-sizing: border-box; }
.pbt-dash-title { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
/* Название показателя (среднегодовая, макс. просадка …) — одно на весь дашборд,
   поэтому стоит в заголовке, а не под каждой цифрой. */
.pbt-dash-metric { font-weight: 400; color: var(--pbt-muted); }

.pbt-dash-periods { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.pbt-dash-period {
	border: 1px solid var(--pbt-border);
	background: #f9fafb;
	color: #374151;
	border-radius: 999px;
	padding: 5px 12px;
	font-size: 13px;
	font-family: inherit;
	cursor: pointer;
	transition: all .15s ease;
}
.pbt-dash-period.is-active {
	background: #2563eb;
	border-color: #2563eb;
	color: #fff;
}
.pbt-dash-period.is-locked { color: #9ca3af; }
.pbt-dash-period.is-locked:hover { background: #f3f4f6; color: #6b7280; }

.pbt-dash-lock {
	font-size: 13px;
	color: #92400e;
	background: rgba(245, 158, 11, 0.12);
	border: 1px solid rgba(245, 158, 11, 0.35);
	border-radius: 8px;
	padding: 7px 10px;
	margin-bottom: 10px;
}
.pbt-dash-lock.is-flash { animation: pbt-flash .5s ease; }
@keyframes pbt-flash {
	0% { background: rgba(245, 158, 11, 0.4); }
	100% { background: rgba(245, 158, 11, 0.12); }
}

/* Сетка плиток — сама подстраивается под ширину контейнера. */
.pbt-dash-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px;
}
.pbt-tile {
	border: 1px solid var(--pbt-border);
	border-radius: 12px;
	padding: 12px 14px;
	min-height: 96px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.pbt-tile-name {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.25;
	color: #111827;
}
.pbt-tile-icon { font-size: 15px; }
/* Название плитки ссылкой (атрибут links у [pbt_dashboard]). Цвет задан явно:
   тема красит все ссылки своим цветом, а название плитки должно оставаться
   названием — подчёркивание достаточно намекает на ссылку. */
.pbt-dash .pbt-tile-link,
.pbt-dash .pbt-tile-link:visited {
	color: #111827;
	text-decoration: none;
	box-shadow: inset 0 -1px 0 rgba(37, 99, 235, 0.5);
}
.pbt-dash .pbt-tile-link:hover,
.pbt-dash .pbt-tile-link:focus { color: #2563eb; box-shadow: inset 0 -1px 0 #2563eb; }
.pbt-dash-lock a { color: #92400e; text-decoration: underline; }
.pbt-tile-value { font-size: 26px; font-weight: 800; line-height: 1.1; margin-top: 8px; }
/* min-height держит строку у плиток без подписи — чтобы цифры стояли в ряд. */
.pbt-tile-sub { font-size: 11px; color: var(--pbt-muted); margin-top: 2px; min-height: 1.2em; }
.pbt-dash .pbt-up { color: var(--pbt-up); }
.pbt-dash .pbt-down { color: var(--pbt-down); }
.pbt-dash .pbt-flat { color: #4b5563; }
.pbt-dash-note { font-size: 12px; color: var(--pbt-muted); margin-top: 10px; }
.pbt-dash .pbt-error { color: var(--pbt-down); font-size: 14px; padding: 8px 0; }

@media (max-width: 560px) {
	.pbt-dash-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
	.pbt-tile-value { font-size: 22px; }
}

/* ------------------------- Конструктор ------------------------- */
.pbt-builder {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #111827;
}
.pbt-b-form {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
	gap: 18px;
	border: 1px solid var(--pbt-border, #e5e7eb);
	border-radius: 14px;
	padding: 16px 18px;
	margin: 18px 0;
	background: #fafafa;
}
.pbt-b-legend { font-weight: 700; font-size: 14px; margin-bottom: 8px; }
.pbt-b-asset {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 0;
	font-size: 14px;
}
.pbt-b-asset-title { flex: 1; }
.pbt-b-weight { width: 68px; padding: 4px 6px; border: 1px solid #d1d5db; border-radius: 6px; text-align: right; }
.pbt-b-weight:disabled { background: #f3f4f6; color: #9ca3af; }
.pbt-b-opts { display: flex; flex-direction: column; gap: 10px; }
.pbt-b-field { display: flex; flex-direction: column; gap: 3px; }
.pbt-b-label { font-size: 12px; color: #6b7280; }
.pbt-b-field input, .pbt-b-field select {
	padding: 6px 8px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 14px; width: 100%;
	box-sizing: border-box; background: #fff;
}
.pbt-b-check { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #374151; cursor: pointer; }
.pbt-b-result { margin-top: 0; }
.pbt-b-periods { display: flex; flex-wrap: wrap; gap: 6px; }
.pbt-b-preset { width: 100%; }
.pbt-b-exact { display: flex; flex-direction: column; gap: 10px; margin-top: 2px; }

/* Мобильная адаптация */
@media (max-width: 560px) {
	.pbt-widget { padding: 4px 0 8px; }
	.pbt-headline { text-align: left; }
	.pbt-head { flex-direction: column; }
	.pbt-headline .pbt-big { font-size: 26px; }
	.pbt-b-form { grid-template-columns: 1fr; }
}
