/* ═══ Тема UTP (2026-10-11) ═══
   Классический учётный вид для пользователей, привыкших к нему: бежевые панели, плотная
   сетка, Tahoma 11px, поля 19px с кнопками «… × 🔍» внутри рамки, плоские вкладки.
   Только внешний вид — разметка, поведение и состав элементов форм те же, что в светлой теме.
   Включается html[data-theme="utp"] (переключатель темы в шапке). Цвета и размеры сняты со
   скриншотов эталона: шрифт — по ширине текста (Tahoma 11px совпала до 1px), строка таблицы
   19px (18 + линия), шапка таблицы 21px. Высоту строки оконного грида bias-grid.js берёт из --g-row-h.
   Правило для новых правок: каждый селектор — с префиксом html[data-theme="utp"], тогда
   светлая и тёмная темы не задеваются. */

html[data-theme="utp"] {
  color-scheme: light;
  --u-font: Tahoma, "Segoe UI", Arial, sans-serif;
  --u-fs: 11px;
  --u-text: #000000;
  --u-text-dim: #4d4d4d;
  --u-text-off: #8c8c8c;
  --u-bg: #fffbf0;          /* фон формы и панели вкладки */
  --u-panel: #f5f2dd;       /* командные панели, кнопки поля, нижние панели */
  --u-tab: #ebe6cc;         /* неактивная вкладка */
  --u-bd: #b3ac86;          /* рамки полей, вкладок, таблиц */
  --u-bd-light: #ccc6ad;
  --u-chk: #99926b;         /* рамка флажка */
  --u-field: #ffffff;
  --u-sel: #536ac2;         /* выделение (текст, текущая ячейка) */
  --u-group: #9f6500;       /* заголовок группы */
  --u-link: #3d56b8;
  --u-title: #cccccc;       /* заголовок окна формы */
  --u-hover: #fdf1c9;       /* наведение на кнопку панели */
  --u-hover-bd: #d8c37a;
  --u-grid-line: #cdd1d6;
  --u-grid-hdr: linear-gradient(#fafaf0, #f2ebcb);
  --u-grid-cur: #b7cce4;
  --u-grid-group: #f5f2dd;
  --g-row-h: 19px;          /* читает bias-grid.js (оконный грид) */
  /* Акценты светлой темы, которые красят мелочи (иконки сортировки, ссылки, тумблеры) */
  --fg-2b579a: #3d56b8;
  --bd-2b579a: #536ac2;
  --fg-234a85: #3d56b8;
  --sh-43_87_154_0p15: rgba(83, 106, 194, 0);
  scrollbar-color: #ccc6ad #faf9f3;
}

/* ── Общее ── */
html[data-theme="utp"] body {
  font-family: var(--u-font);
  font-size: var(--u-fs);
  color: var(--u-text);
  background: var(--u-panel);
}
html[data-theme="utp"] ::selection { background: var(--u-sel); color: #fff; }
html[data-theme="utp"] button,
html[data-theme="utp"] input,
html[data-theme="utp"] select,
/* Кроме редактора кода: его textarea лежит под подсвеченным слоем и должна иметь тот же моноширинный шрифт —
   иначе курсор и горизонтальная прокрутка считались по более узкому тексту, конец длинной строки не открывался (2026-10-12). */
html[data-theme="utp"] textarea:not(.bias-editor-input) { font-family: var(--u-font); }

/* ── Шапка приложения ── */
html[data-theme="utp"] .ws-topbar {
  height: 30px;
  padding: 0 6px;
  background: linear-gradient(#fdfcf6, #ebe6cc);
  color: var(--u-text);
  border-bottom: 1px solid var(--u-bd);
}
html[data-theme="utp"] .ws-topbar-title { font-size: 12px; font-weight: bold; }
html[data-theme="utp"] .ws-topbar .bias-btn-icon { color: #333; font-size: 15px; padding: 2px 5px; border-radius: 2px; border: 1px solid transparent; }
html[data-theme="utp"] .ws-topbar .bias-btn-icon:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .ws-topbar .ws-mainmenu-btn[aria-pressed="true"] { background: var(--u-hover); box-shadow: inset 0 0 0 1px var(--u-hover-bd); }
html[data-theme="utp"] .ws-topbar-logo .ink { fill: #333; }
html[data-theme="utp"] .ws-user-chip { height: 22px; gap: 5px; padding: 0 8px 0 2px; background: transparent; border: 1px solid transparent; border-radius: 2px; color: var(--u-text); font-size: var(--u-fs); }
html[data-theme="utp"] .ws-user-chip:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .ws-user-avatar { width: 18px; height: 18px; font-size: 10px; }
/* Текущая подсистема в шапке (2026-10-18) — как чип пользователя: тёмный текст на светлой шапке. */
html[data-theme="utp"] .ws-subsystem-chip { height: 22px; gap: 5px; padding: 0 8px; background: transparent; border: 1px solid transparent; border-radius: 2px; color: var(--u-text); font-size: var(--u-fs); }
html[data-theme="utp"] .ws-subsystem-chip:hover, html[data-theme="utp"] .ws-subsystem-chip:disabled:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .ws-subsystem-chip:disabled:hover { background: transparent; border-color: transparent; }
html[data-theme="utp"] .ws-lang-select { background-color: transparent; color: var(--u-text); border: 1px solid transparent; border-radius: 2px; font-size: var(--u-fs); padding: 1px 2px; height: 26px; box-sizing: border-box; }
html[data-theme="utp"] .ws-lang-select:hover, html[data-theme="utp"] .ws-lang-select:focus { background-color: var(--u-hover); border-color: var(--u-hover-bd); outline: none; }
html[data-theme="utp"] .ws-lang-select option { background: var(--u-field); color: var(--u-text); }
html[data-theme="utp"] .ws-about-circle { border-color: #333; color: #333; }

/* ── Левая панель (разделы) ── */
html[data-theme="utp"] .ws-nav { background: var(--u-bg); padding: 4px 0; }
html[data-theme="utp"] .ws-nav-section {
  padding: 8px 8px 2px;
  font-size: var(--u-fs);
  font-weight: bold;
  text-transform: none;
  letter-spacing: 0;
  color: var(--u-group);
}
html[data-theme="utp"] .ws-nav-item { font-size: var(--u-fs); color: var(--u-text); padding: 3px 8px 3px 20px; }
html[data-theme="utp"] .ws-nav-item:hover { background: var(--u-hover); }
html[data-theme="utp"] .ws-nav-item.ws-context-active { background: var(--u-hover); }
html[data-theme="utp"] .ws-nav-item[data-icon]::before { width: 16px; height: 16px; margin-right: 6px; vertical-align: -4px; background-size: 16px 16px; }

/* ── Нижняя панель открытых окон (ярлыки вкладок) ── */
html[data-theme="utp"] .ws-tabbar-row { height: 28px; /* 24 → 28: подсистема вкладки второй строкой, 2026-10-14 */ background: var(--u-panel); border-top: 1px solid var(--u-bd); }
html[data-theme="utp"] .ws-tab {
  font-size: var(--u-fs);
  padding: 0 8px;
  gap: 4px;
  color: var(--u-text);
  background: var(--u-tab);
  border-right: 1px solid var(--u-bd);
}
html[data-theme="utp"] .ws-tab:not(.active) { color: var(--u-text); }
html[data-theme="utp"] .ws-tab:not(.active):hover { background: var(--u-hover); color: var(--u-text); }
html[data-theme="utp"] .ws-tab.active { background: var(--u-bg); color: var(--u-text); font-weight: bold; box-shadow: inset 0 2px 0 var(--u-sel); }
html[data-theme="utp"] .ws-tab.ws-tab-shown { background: var(--u-bg); }
html[data-theme="utp"] .ws-tab-icon { width: 14px; height: 14px; }
html[data-theme="utp"] .ws-tab-sub { font-size: 9px; line-height: 10px; }
html[data-theme="utp"] .ws-tab-labels { line-height: 13px; }

/* ── Окно формы: заголовок, область, страница ── */
html[data-theme="utp"] .ws-content { background: var(--u-bg); }
html[data-theme="utp"] { --ws-head-h: 36px; --split-line: var(--u-bd-light); --split-hover: #8f7d3f; --split-hover-band: rgba(143, 125, 63, .28); --split-bar: var(--u-bd); --split-dots: var(--u-bd); } /* высота шапок; цвет линии разделителей */ /* шапка формы, панели «Подсистемы» и правой панели — по двухстрочному заголовку */
html[data-theme="utp"] .ws-formheader {
  padding: 1px 6px;
  gap: 2px;
  background: linear-gradient(#e2e2e2, var(--u-title));
  border-bottom: 1px solid #a8a8a8;
}
html[data-theme="utp"] .ws-fh-title { color: #333; margin-left: 4px; } /* шрифт — общий (site.css .ws-fh-title = .ws-fh-name) */
/* ── Конструктор табличного документа (bias-mxl-designer, 2026-10-15) — в стиле темы (селекторы точнее общих .mxd.mxd-inline … в site.css) ── */
html[data-theme="utp"] .ws-page .mxd.mxd-inline .mxd-win, html[data-theme="utp"] .mxd-win { font: var(--u-fs) var(--u-font); color: var(--u-text); border-color: var(--u-bd); }
html[data-theme="utp"] .ws-page .mxd.mxd-inline .mxd-win { border-color: var(--u-bd-light); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-tb { background: var(--u-panel); border-bottom-color: var(--u-bd-light); padding: 2px 4px; }
html[data-theme="utp"] .mxd.mxd-inline .mxd-tb .sep { background: var(--u-bd-light); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-tb .bias-field, html[data-theme="utp"] .mxd.mxd-inline .mxd-props .bias-field { font: var(--u-fs) var(--u-font); border-radius: 0; border-color: var(--u-bd); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-pane { background: var(--u-bg); border-left-color: var(--u-bd-light); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ph { background: var(--u-panel); border-bottom-color: var(--u-bd-light); font: bold var(--u-fs) var(--u-font); color: var(--u-text); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ph-x { border-radius: 0; }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ph-x:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-props h4 { font: bold var(--u-fs) var(--u-font); color: var(--u-group); border-bottom-color: var(--u-bd-light); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-props label, html[data-theme="utp"] .mxd.mxd-inline .mxd-props .row button { font: var(--u-fs) var(--u-font); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-props .row button { border: 1px solid var(--u-bd); background: var(--u-panel); border-radius: 0; }
html[data-theme="utp"] .mxd.mxd-inline .mxd-props .row button:hover { background: var(--u-hover); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-corner, html[data-theme="utp"] .mxd.mxd-inline .mxd-top, html[data-theme="utp"] .mxd.mxd-inline .mxd-left { background: var(--u-panel); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ch, html[data-theme="utp"] .mxd.mxd-inline .mxd-rh { font: var(--u-fs) var(--u-font); border-color: var(--u-bd-light); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ch.sel, html[data-theme="utp"] .mxd.mxd-inline .mxd-rh.sel { background: var(--u-grid-cur); }
html[data-theme="utp"] .mxd.mxd-inline .mxd-ar { font: var(--u-fs) var(--u-font); }
html[data-theme="utp"] .ws-formheader .bias-btn-icon, html[data-theme="utp"] .ws-subtree-header .bias-btn-icon, html[data-theme="utp"] .ws-rightpanel-header .bias-btn-icon { color: #333; font-size: 13px; padding: 1px 4px; border-radius: 0; }
html[data-theme="utp"] .ws-formheader .bias-btn-icon:hover, html[data-theme="utp"] .ws-subtree-header .bias-btn-icon:hover, html[data-theme="utp"] .ws-rightpanel-header .bias-btn-icon:hover { background: rgba(255, 255, 255, .55); }
html[data-theme="utp"] .ws-formheader .bias-btn-icon:disabled { color: #999; background: none; }
/* :where — правило слабее «без отступов» у вкладок во всю ширину (печать, табличный документ, модуль, схема компоновки). */
html[data-theme="utp"] :where(.ws-page) { --ws-page-py: 6px; --ws-page-px: 8px; padding: 6px 8px; }
html[data-theme="utp"] .bias-form { gap: 3px; }
html[data-theme="utp"] .bias-pages-panel { gap: 3px; }

/* ── Командная панель таблицы и формы ── */
html[data-theme="utp"] .ws-toolbar {
  padding: 1px 2px;
  gap: 1px;
  background: var(--u-panel);
  border: 1px solid var(--u-bd);
  border-bottom: none;
  border-radius: 0;
}
html[data-theme="utp"] .ws-toolbar-sep { margin: 2px 3px; background: var(--u-bd); }
html[data-theme="utp"] .ws-toolbar-scroll { width: 14px; margin: -1px 0; background: var(--u-panel); color: var(--u-text); }
html[data-theme="utp"] .ws-toolbar-scroll-left { left: -2px; margin-left: -2px; border-right: 1px solid var(--u-bd-light); }
html[data-theme="utp"] .ws-toolbar-scroll-right { right: -2px; margin-right: -2px; border-left: 1px solid var(--u-bd-light); }
html[data-theme="utp"] .ws-toolbar-scroll:hover:not(:disabled) { background: var(--u-hover); }
html[data-theme="utp"] .ws-toolbar-scroll:disabled { color: var(--u-text-off); }
/* Все командные панели — один вид и размер, как у панели дерева «Подсистемы» (2026-10-18, запрос пользователя):
   высота 25px, кнопки 22px, снизу линия. */
html[data-theme="utp"] .bias-command-bar { gap: 1px; padding: 1px 2px; min-height: 25px; box-sizing: border-box; background: var(--u-panel); border-bottom: 1px solid var(--u-bd); }
html[data-theme="utp"] .bias-command-bar .bias-btn {
  background: transparent;
  border: 1px solid transparent;
  color: var(--u-text);
  height: 22px; min-height: 22px; box-sizing: border-box; padding: 0 6px;
}
html[data-theme="utp"] .bias-command-bar .bias-btn-icon { min-width: 22px; width: auto; padding: 0 3px; }
html[data-theme="utp"] .bias-command-bar .bias-btn:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }

/* ── Кнопка ── */
html[data-theme="utp"] .bias-btn {
  background: linear-gradient(#ffffff, #ece8d4);
  color: var(--u-text);
  border: 1px solid var(--u-bd);
  border-radius: 2px;
  padding: 2px 10px;
  font-size: var(--u-fs);
  line-height: 15px;
}
html[data-theme="utp"] .bias-btn:hover { background: linear-gradient(#fffdf3, var(--u-hover)); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .bias-btn:active { background: var(--u-tab); }
html[data-theme="utp"] .bias-btn:disabled { background: var(--u-panel); color: var(--u-text-off); border-color: var(--u-bd-light); }
html[data-theme="utp"] .bias-btn-primary { font-weight: bold; }
html[data-theme="utp"] .bias-btn-icon { min-width: 22px; height: 22px; padding: 0 4px; font-size: 13px; border-radius: 2px; background: transparent; border-color: transparent; }
html[data-theme="utp"] .bias-btn-icon:hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .bias-btn-icon svg { width: 16px; height: 16px; }
html[data-theme="utp"] .bias-btn-link { background: none; border: 0; }
html[data-theme="utp"] .bias-btn.on, html[data-theme="utp"] .bias-btn.active, html[data-theme="utp"] .bias-btn[aria-pressed="true"] { background: var(--u-hover); border-color: var(--u-bd); color: var(--u-text); }
/* Первая кнопка командной панели в теме — не синяя, а жирная (панель плоская, как у исходной платформы). */
html[data-theme="utp"] .bias-command-bar > .bias-btn:first-child:not(.bias-btn-icon):not(.bias-btn-link):not(:disabled) { background: transparent; color: var(--u-text); border-color: transparent; font-weight: bold; }
html[data-theme="utp"] .bias-command-bar > .bias-btn:first-child:not(.bias-btn-icon):not(.bias-btn-link):not(:disabled):hover { background: var(--u-hover); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .bias-dialog-foot .bias-btn:not(.bias-btn-primary),
html[data-theme="utp"] .bias-dialog-foot .bias-btn-primary { background: linear-gradient(#ffffff, #ece8d4); color: var(--u-text); border: 1px solid var(--u-bd); }
html[data-theme="utp"] .bias-dialog-foot .bias-btn-primary { font-weight: bold; }

/* ── Поле ввода ── */
html[data-theme="utp"] .bias-field {
  height: 19px;
  padding: 1px 3px;
  font-size: var(--u-fs);
  line-height: 15px;
  color: var(--u-text);
  background: var(--u-field);
  border: 1px solid var(--u-bd);
  border-radius: 0;
  transition: none;
}
html[data-theme="utp"] .bias-field:hover { border-color: var(--u-bd); }
html[data-theme="utp"] .bias-field:focus { border-color: var(--u-chk); box-shadow: none; }
html[data-theme="utp"] .bias-field:disabled,
html[data-theme="utp"] .bias-field.ws-field-copyable[readonly] { background: var(--u-bg); color: var(--u-text-off); border-color: var(--u-bd-light); }
html[data-theme="utp"] textarea.bias-field { height: auto; min-height: 38px; line-height: 14px; }
html[data-theme="utp"] input.bias-field[type="file"] { height: auto; padding: 2px 4px; }
html[data-theme="utp"] .bias-field.bias-label-field { background: transparent; border-color: transparent; }
html[data-theme="utp"] .bias-field-with-header { gap: 4px; }
html[data-theme="utp"] .bias-field-with-header .bias-field-header-label { font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .bias-field-with-header.bias-field-header-left { column-gap: 4px; }
html[data-theme="utp"] .bias-label { font-size: var(--u-fs); padding: 1px 0; }

/* Поле с кнопками «… × 🔍» внутри общей рамки */
html[data-theme="utp"] .bias-field-group {
  height: 19px;
  background: var(--u-field);
  border: 1px solid var(--u-bd);
  border-radius: 0;
  transition: none;
}
html[data-theme="utp"] .bias-field-group:hover { border-color: var(--u-bd); }
html[data-theme="utp"] .bias-field-group:focus-within { border-color: var(--u-chk); box-shadow: none; }
html[data-theme="utp"] .bias-field-group .bias-field,
html[data-theme="utp"] .bias-field-group .bias-field:hover,
html[data-theme="utp"] .bias-field-group .bias-field:focus { height: 17px; border: none; background: transparent; }
html[data-theme="utp"] .bias-field-btn {
  width: 16px;
  background: var(--u-panel);
  color: var(--u-text);
  border-left: 1px solid var(--u-bd);
  font-size: 10px;
  font-weight: bold;
}
html[data-theme="utp"] .bias-field-btn:hover { background: var(--u-hover); color: var(--u-text); }
html[data-theme="utp"] .bias-field-btn svg { width: 11px; height: 11px; }
html[data-theme="utp"] .bias-combo-picker-btn { font-family: var(--u-font); letter-spacing: 0; }
html[data-theme="utp"] .bias-field-spin { margin: 0 1px; }
html[data-theme="utp"] .bias-field-spin-up,
html[data-theme="utp"] .bias-field-spin-down { width: 13px; height: 8px; color: var(--u-text); font-size: 6px; }

/* Поле со списком: стрелка — квадратная кнопка справа, как у кнопок поля */
html[data-theme="utp"] .bias-select {
  padding-right: 20px;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Cpath d='M0 0h7L3.5 4z' fill='%23000'/%3E%3C/svg%3E"),
    linear-gradient(var(--u-bd), var(--u-bd)),
    linear-gradient(var(--u-panel), var(--u-panel));
  background-repeat: no-repeat;
  background-position: right 4px center, right 16px top, right 0 top;
  background-size: 7px 4px, 1px 100%, 16px 100%;
}
html[data-theme="utp"] .bias-select:hover { background-position: right 4px center, right 16px top, right 0 top; }
/* Сплошной фон у списков (2026-10-16): без него браузер при открытии на миг рисовал список чёрным. */
html[data-theme="utp"] select { background-color: var(--u-field); color: var(--u-text); }
html[data-theme="utp"] select option { background-color: var(--u-field); color: var(--u-text); }
html[data-theme="utp"] .bias-combo-suggestions { border: 1px solid var(--u-bd); border-radius: 0; box-shadow: 2px 2px 4px rgba(0, 0, 0, .2); }
html[data-theme="utp"] .bias-combo-suggestion { padding: 2px 4px; font-size: var(--u-fs); }
html[data-theme="utp"] .bias-combo-suggestion:hover,
html[data-theme="utp"] .bias-combo-suggestion.active { background: var(--u-sel); color: #fff; }

/* ── Флажок (2026-10-12, запрос пользователя): квадрат 13px — белый, рамка цвета рамки темы, галочка чёрная.
   Флажок ячейки таблицы (.ar-cell-check) — тот же компонент, те же правила. ── */
html[data-theme="utp"] .bias-checkbox { gap: 4px; font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .bias-checkbox-input, html[data-theme="utp"] .ar-cell-check {
  width: 13px;
  height: 13px;
  border: 1px solid var(--u-bd);
  border-radius: 3px;
  background: #fff;
  transition: none;
}
html[data-theme="utp"] .bias-checkbox:hover .bias-checkbox-input, html[data-theme="utp"] .ar-cell-check:hover { border-color: var(--u-chk); background: #fff; }
html[data-theme="utp"] .bias-checkbox-input:checked, html[data-theme="utp"] .ar-cell-check.on { background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 11 11'%3E%3Cpath d='M2 5 4.5 7.2 9 2 9 4.4 4.5 9.6 2 7.4Z' fill='%23000'/%3E%3C/svg%3E") center / 11px 11px no-repeat; border-color: var(--u-bd); }
/* Галочка — векторная (фон выше), как в классической форме: чёрная по центру квадрата, концы хвостов срезаны вертикально (параллельно рамке). */
html[data-theme="utp"] .bias-checkbox-input:checked::after, html[data-theme="utp"] .ar-cell-check.on::after { content: none; }
html[data-theme="utp"] .bias-checkbox-input:focus-visible { box-shadow: none; outline: 1px dotted #000; outline-offset: 1px; }
html[data-theme="utp"] .bias-toggle { font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .bias-radio-option { padding: 1px 0; gap: 4px; }
html[data-theme="utp"] .bias-radio-input { width: 13px; height: 13px; border-color: var(--u-chk); background: #fff; }
html[data-theme="utp"] .bias-radio-input:checked { background: radial-gradient(circle, #21a121 0 2.5px, #fff 3px); }
html[data-theme="utp"] .bias-tumbler .bias-radio-option { border-color: var(--u-bd); color: var(--u-text); padding: 1px 8px; background: linear-gradient(#ffffff, #ece8d4); }
html[data-theme="utp"] .bias-tumbler .bias-radio-option:first-of-type,
html[data-theme="utp"] .bias-tumbler .bias-radio-option:last-of-type { border-radius: 0; }
html[data-theme="utp"] .bias-tumbler .bias-radio-option:has(.bias-radio-input:checked) { background: var(--u-tab); color: var(--u-text); box-shadow: inset 1px 1px 2px rgba(0, 0, 0, .2); }

/* ── Группа: цветной жирный заголовок с линией под ним, без рамки ── */
html[data-theme="utp"] fieldset.bias-group { border: none; border-radius: 0; padding: 0 0 4px; margin: 0 0 4px; gap: 3px; }
html[data-theme="utp"] fieldset.bias-group > legend {
  width: 100%;
  box-sizing: border-box;
  padding: 0 0 1px;
  margin-bottom: 3px;
  font-size: var(--u-fs);
  font-weight: bold;
  color: var(--u-group);
  border-bottom: 1px solid var(--u-bd);
}

/* ── Страницы (вкладки формы): ярлыки-коробочки ── */
html[data-theme="utp"] .bias-pages { margin: 0 0 4px; }
html[data-theme="utp"] .bias-pages-strip { gap: 0; margin-bottom: 0; border-bottom: 1px solid var(--u-bd); padding-left: 2px; }
html[data-theme="utp"] .bias-pages-btn {
  font-size: var(--u-fs);
  color: var(--u-text);
  background: var(--u-tab);
  border: 1px solid var(--u-bd);
  border-bottom: none;
  border-radius: 3px 3px 0 0;
  padding: 2px 8px 3px;
  margin: 2px -1px 0 0;
  max-width: 240px;   /* 120 резало обычные подписи («Параметры манифеста»), 2026-10-14 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html[data-theme="utp"] .bias-pages-btn:hover { color: var(--u-text); background: var(--u-hover); }
html[data-theme="utp"] .bias-pages-btn-active {
  position: relative;
  z-index: 1;
  background: var(--u-bg);
  font-weight: normal;
  margin-top: 0;
  padding-bottom: 5px;
  margin-bottom: -1px;
  border-bottom: 1px solid var(--u-bg);
}
html[data-theme="utp"] .bias-pages-btn-active:hover { background: var(--u-bg); }
html[data-theme="utp"] .bias-pages-panel {
  background: var(--u-bg);
  border: 1px solid var(--u-bd);
  border-top: none;
  padding: 4px 6px;
  box-sizing: border-box;
}

/* ── Таблица ── */
html[data-theme="utp"] .bias-table-grid { --bias-grid-row-h: 19px; }
html[data-theme="utp"] .ws-grid { border: 1px solid var(--u-bd); border-radius: 0; background: #fff; }
html[data-theme="utp"] .ws-toolbar:empty + .ws-grid { border-radius: 0; }
html[data-theme="utp"] .ws-grid-header {
  background: var(--u-grid-hdr);
  color: var(--u-text);
  font-size: var(--u-fs);
  font-weight: normal;
  text-transform: none;
  letter-spacing: 0;
  border-bottom: 1px solid var(--u-bd-light);
}
html[data-theme="utp"] .ws-grid-header > .ws-grid-cell { padding: 3px 4px 3px 5px; line-height: 14px; }
html[data-theme="utp"] .ws-grid-header > .ws-grid-cell + .ws-grid-cell { border-left: 1px solid var(--u-bd-light); }
html[data-theme="utp"] .ws-grid-cell-sortable { gap: 2px; }
html[data-theme="utp"] .ws-grid-cell-sortable:hover,
html[data-theme="utp"] .ws-grid-cell-sortable:focus { color: var(--u-text); }
html[data-theme="utp"] .ws-grid-sort-icon { font-size: 8px; opacity: 0; color: #8a8466; }
html[data-theme="utp"] .ws-grid-sort-active .ws-grid-sort-icon { opacity: 1; color: #8a8466; }
html[data-theme="utp"] .ws-grid-cell { padding: 2px 4px 2px 5px; font-size: var(--u-fs); line-height: 14px; }
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header) { border-top: 1px solid var(--u-grid-line); transition: none; }
html[data-theme="utp"] :not(.ws-grid-windowed-spacer):not(.ws-grid-ghost) > .ws-grid-row:not(.ws-grid-header):last-child,
html[data-theme="utp"] .ws-grid-row.ws-grid-row-last { border-bottom: 1px solid var(--u-grid-line); }
html[data-theme="utp"] .ws-grid-header + .ws-grid-row:not(.ws-grid-header) { border-top-color: transparent; }
html[data-theme="utp"] .ws-grid-cell + .ws-grid-cell { border-left: 1px solid var(--u-grid-line); }
/* Без переноса: одна строка, лишнее обрезается многоточием; колонка с переносом (АвтоВысотаЯчейки, wrap) —
   переносится и в этой теме (2026-10-14). */
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header) .ws-grid-cell:not(.ws-grid-cell-wrap) {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  overflow-wrap: normal;
}
html[data-theme="utp"] .ws-grid-cell.ws-grid-cell-icon { align-items: center; }
html[data-theme="utp"] .ws-grid-cell-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-theme="utp"] .ws-grid-cell-icon > .ws-grid-row-expand,
html[data-theme="utp"] .ws-grid-cell-icon > .ws-grid-row-expand-spacer,
html[data-theme="utp"] .ws-grid-cell-icon > .ws-grid-row-type-icon { margin-top: 0; }
html[data-theme="utp"] .ws-grid-row-type-icon { margin-right: 4px; }
html[data-theme="utp"] .ws-grid-row-type-img { width: 14px; height: 14px; }
html[data-theme="utp"] .ws-grid-row-expand svg { width: 10px; height: 10px; }
/* Без подсветки наведения; текущая строка — тонкие голубые линии, текущая ячейка — синяя */
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header):hover,
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header):focus:hover,
html[data-theme="utp"] .ws-grid-row.selected:hover,
html[data-theme="utp"] .ws-grid-windowed-spacer > .ws-grid-row.ws-grid-row-pinned:hover { background: transparent; }
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header):has(.ws-grid-row-type-group) { background: var(--u-grid-group); }
html[data-theme="utp"] .ws-grid-row.selected { box-shadow: inset 0 1px 0 var(--u-grid-cur), inset 0 -1px 0 var(--u-grid-cur); }
/* Фокус главнее условного оформления строки (фон/цвет ячейки — inline-стилем): всегда синий, текст белый. */
html[data-theme="utp"] .ws-grid-cell-focused:not(.ws-grid-cell-editing) {
  background: var(--u-sel) !important;
  color: #fff !important;
  box-shadow: none;
  outline: 1px dotted #fff;
  outline-offset: -2px;
}
/* Ячейка в правке (редактор, кнопка «…») — своими цветами. */
html[data-theme="utp"] .ws-grid-cell-focused:not(.ws-grid-cell-editing) a,
html[data-theme="utp"] .ws-grid-cell-focused:not(.ws-grid-cell-editing) * { color: #fff !important; }
html[data-theme="utp"] .ws-grid-windowed-spacer > .ws-grid-row.ws-grid-row-pinned,
html[data-theme="utp"] .ws-grid-windowed-spacer > .ws-grid-row.ws-grid-row-pinned.selected { background: var(--u-grid-group); }
html[data-theme="utp"] .ws-grid-row-pinned-last { box-shadow: 0 1px 0 var(--u-bd); }
html[data-theme="utp"] .ws-grid-col-resizer:hover { background: var(--u-bd-light); }
html[data-theme="utp"] .ws-grid-windowed-search { height: 19px; padding: 1px 3px; border: 1px solid var(--u-bd); border-radius: 0; font-size: var(--u-fs); box-shadow: none; }
html[data-theme="utp"] .ws-grid-windowed-hscroll-row,
html[data-theme="utp"] .ws-grid-windowed-scroll-corner { background: #faf9f3; }
/* Горизонтальная полоса списка — в цветах темы (2026-10-12): без линии сверху, дорожка не серая. */
html[data-theme="utp"] .ws-grid-windowed-hscroll-row { border-top: none; }
html[data-theme="utp"] .ws-grid-windowed-scroll-corner { border-left: none; }
html[data-theme="utp"] .ws-grid-windowed-hscroll { background: #faf9f3; scrollbar-color: #c9c3a6 #faf9f3; }
/* Высота полосы = толщина полосы прокрутки браузера (2026-10-12): при масштабе экрана она тоньше 16px, лишнее было сверху. */
html[data-theme="utp"] .ws-grid-windowed-hscroll { height: auto; overflow-x: scroll; }
html[data-theme="utp"] .ws-grid-windowed-hscroll-spacer { height: 1px; margin-bottom: -1px; }

/* ── Табло сообщений, строка состояния ── */
html[data-theme="utp"] .ws-messages { background: #fff; }
html[data-theme="utp"] .ws-messages-header { padding: 2px 6px; font-size: var(--u-fs); color: var(--u-text); background: var(--u-panel); border-bottom: 1px solid var(--u-bd); }
html[data-theme="utp"] .ws-messages-body { padding: 2px 6px; font-size: var(--u-fs); }
html[data-theme="utp"] .ws-message { font-size: var(--u-fs); padding: 0 4px; border-radius: 0; }
html[data-theme="utp"] .ws-message-error { font-family: var(--u-font); }
html[data-theme="utp"] .ws-statusbar { height: 18px; line-height: 18px; padding: 0 6px; font-size: var(--u-fs); background: var(--u-panel); color: var(--u-text); border-top: 1px solid var(--u-bd); }

/* ── Меню и окна ── */
html[data-theme="utp"] .ws-context-menu { background: #fff; border: 1px solid var(--u-bd); border-radius: 0; box-shadow: 2px 2px 4px rgba(0, 0, 0, .25); padding: 2px; }
html[data-theme="utp"] .ws-context-menu-item { padding: 3px 8px; font-size: var(--u-fs); color: var(--u-text); border-radius: 0; gap: 6px; }
html[data-theme="utp"] .ws-context-menu-item:hover { background: var(--u-sel); color: #fff; }
html[data-theme="utp"] .ws-context-menu-item:hover .ws-context-menu-icon { color: #fff; }
html[data-theme="utp"] .ws-context-menu-item:disabled:hover { background: transparent; color: var(--u-text-off); }
html[data-theme="utp"] .ws-context-menu-sep { margin: 2px 2px; background: var(--u-bd-light); }
html[data-theme="utp"] .bias-dialog { background: var(--u-bg); color: var(--u-text); border: 1px solid #8f8f8f; border-radius: 0; box-shadow: 3px 3px 8px rgba(0, 0, 0, .3); }
/* Окно без скруглений — и у шапки тоже (2026-10-18: белые уголки по краям шапки). */
html[data-theme="utp"] .bias-dialog-head { border-radius: 0; }
html[data-theme="utp"] .bias-dialog-head { padding: 3px 6px; font-size: var(--u-fs); font-weight: bold; color: #333; background: linear-gradient(#e2e2e2, var(--u-title)); border-bottom: 1px solid #a8a8a8; }
html[data-theme="utp"] .bias-dialog-x { font-size: 15px; color: #333; }
html[data-theme="utp"] .bias-dialog-body { --ws-page-py: 6px; --ws-page-px: 8px; padding: 6px 8px; }
html[data-theme="utp"] .bias-dialog-foot { padding: 4px 6px; background: var(--u-panel); border-top: 1px solid var(--u-bd); gap: 4px; }
html[data-theme="utp"] .bias-dialog-msg-text { font-size: var(--u-fs); }
html[data-theme="utp"] .bias-dialog-foot .bias-btn { min-width: 70px; }

/* ── Формы Админки и автоформы справочников ── */
html[data-theme="utp"] .ws-user-form { gap: 3px; }
html[data-theme="utp"] .ws-user-form-title { font-weight: bold; color: var(--u-group); }
html[data-theme="utp"] .bias-field-with-header.bias-field-header-left:not(.bias-form *),
html[data-theme="utp"] .bias-field-with-header.bias-field-header-top:not(.bias-form *) { gap: 4px; font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .bias-field-header-label:not(.bias-form *) { color: var(--u-text); }
html[data-theme="utp"] .bias-form[data-ar-catalog] .bias-field-with-header.bias-field-header-left { column-gap: 4px; }
html[data-theme="utp"] .bias-form[data-ar-catalog] .bias-field-with-header.bias-field-header-left > .bias-field-header-label { font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .bias-field-with-header:not(.bias-form *) input:not(.bias-field),
html[data-theme="utp"] .bias-field-header-top:not(.bias-form *) textarea:not(.bias-field) { padding: 1px 3px; border: 1px solid var(--u-bd); border-radius: 0; font-size: var(--u-fs); }
html[data-theme="utp"] .bias-field-with-header:not(.bias-form *) input:not(.bias-field) { height: 19px; box-sizing: border-box; }
html[data-theme="utp"] .ws-user-form-roles,
html[data-theme="utp"] .ws-user-form-active { font-size: var(--u-fs); gap: 6px; }
html[data-theme="utp"] .ws-user-form-error { font-size: var(--u-fs); }

/* ── Табличная часть объекта (грид-раскладка ws-grid-lay): строка 19px, редактор во всю ячейку ── */
html[data-theme="utp"] .ws-grid-lay .ws-grid-cell { min-height: 18px; }
/* Без переноса текст не должен распирать ярус: колонки соседних строк — одной ширины. */
html[data-theme="utp"] .ws-grid-lay .ws-grid-lg,
html[data-theme="utp"] .ws-grid-row:not(.ws-grid-header).ws-grid-lay .ws-grid-cell { min-width: 0; overflow: hidden; }
html[data-theme="utp"] .ws-grid-row.ws-grid-lay > * + *,
html[data-theme="utp"] .ws-grid-lay .ws-grid-lg-h > * + * { border-left-color: var(--u-grid-line); }
html[data-theme="utp"] .ws-grid-lay .ws-grid-lg-v > * + * { border-top-color: var(--u-grid-line); border-left: 0; } /* ячейки друг под другом — без левой линии (иначе «рамка» у нижней), 2026-10-11 */
html[data-theme="utp"] .ws-grid-header.ws-grid-lay .ws-grid-lg-v > * + *,
html[data-theme="utp"] .ws-grid-header.ws-grid-lay > * + *,
html[data-theme="utp"] .ws-grid-header.ws-grid-lay .ws-grid-lg-h > * + * { border-color: var(--u-bd-light); }
/* Редактор — ровно в границах ячейки. Горизонтальный отступ ячейки в правке тот же, что у остальных (5/4px):
   при отступе 0 колонки строки в правке раскладывались иначе и сдвигались на несколько пикселей (ступенька),
   поэтому редактор выходит на отступ отрицательными полями, 2026-10-11. */
html[data-theme="utp"] .ws-grid-lay .ws-grid-cell.ws-grid-cell-editing { padding: 0 4px 0 5px; }
html[data-theme="utp"] .ws-grid-lay .ws-grid-cell-editing > * { margin: 0 -4px 0 -5px !important; width: calc(100% + 9px) !important; height: 18px; }
html[data-theme="utp"] .ar-part { margin-top: 2px; }
/* Подпись табличной части над таблицей дублирует закладку — в классическом виде её нет. */
html[data-theme="utp"] .bias-pages-panel .ar-part-title { display: none; }

/* ── Кнопки выбора/очистки (поле и ячейка таблицы): «…» и «×» текстом на бежевой кнопке, как в классическом
   виде, вместо иконок светлой темы. ── */
html[data-theme="utp"] :is(.bias-field-btn, .bias-ls-refpick):is([data-ref-pick], [data-ar-ref-pick], [data-ls-ref-pick], [data-comp-choose], [data-ar-comp-pick], [data-build-choose], #ccard-action-pick, [data-comp-clear], [data-ar-ref-clear], [data-ar-comp-clear], [data-ar-enum-clear]) {
  font: bold 10px/1 var(--u-font);
  letter-spacing: 0;
  color: var(--u-text);
  padding-bottom: 3px;
}
html[data-theme="utp"] :is(.bias-field-btn, .bias-ls-refpick):is([data-comp-clear], [data-ar-ref-clear], [data-ar-comp-clear], [data-ar-enum-clear]) { font-size: 12px; padding-bottom: 1px; }
html[data-theme="utp"] :is(.bias-field-btn, .bias-ls-refpick):is([data-ref-pick], [data-ar-ref-pick], [data-ls-ref-pick], [data-comp-choose], [data-ar-comp-pick], [data-build-choose], #ccard-action-pick, [data-comp-clear], [data-ar-ref-clear], [data-ar-comp-clear], [data-ar-enum-clear])::before { display: none; }
html[data-theme="utp"] .bias-ls-refedit { gap: 0; }
html[data-theme="utp"] .bias-ls-refpick,
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refpick {
  min-width: 16px;
  width: 16px;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--u-bd);
  border-radius: 0;
  background: var(--u-panel);
}
html[data-theme="utp"] .bias-ls-refpick:hover,
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refpick:hover { background: var(--u-hover); }
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refedit { border: 1px solid var(--u-bd); box-sizing: border-box; background: #fff; }
html[data-theme="utp"] .ws-grid-cell.ws-grid-cell-editing { padding-top: 0; padding-bottom: 0; line-height: 0; }
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refedit { height: 18px; margin-top: 0; margin-bottom: 0; vertical-align: top; }
html[data-theme="utp"] .ws-grid-cell-editing .ar-cell-input,
html[data-theme="utp"] .ws-grid-cell-editing .ar-cell-input:focus { height: 18px; min-height: 0; padding: 0 3px; line-height: 16px; border: 1px solid var(--u-bd); border-radius: 0; box-shadow: none; box-sizing: border-box; vertical-align: top; }
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refedit > .ar-cell-input { height: 16px; border: 0; }
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refedit.bias-ls-choice { border-color: transparent; }
html[data-theme="utp"] .ws-grid-cell-editing .bias-ls-refpick { height: 16px; align-self: stretch; }

/* Флажок в ячейке — квадрат 13px с зелёной галочкой, как флажок поля. */
/* .ar-cell-check — правила флажка библиотеки выше (один компонент). */

/* ── Ссылки ── */
html[data-theme="utp"] .ws-page a { color: var(--u-link); }

/* Окно формы (выбор складов, отбор, сектора…): узкие поля от края, как в классических окнах (2026-10-11). */
html[data-theme="utp"] .ws-page.ws-form-window-page { padding: 0; }
/* Линия у свёрнутой левой панели (разделитель скрыт, 2026-10-12). */
/* Полосы прокрутки формы во вкладке — вплотную к границам панели (2026-10-12): отступ вкладки переносится внутрь прокручиваемой формы. */
html[data-theme="utp"] .ws-page:not(.ws-form-window-page):has(> .ws-user-form > .bias-form) { padding: 0; }
html[data-theme="utp"] .ws-page:not(.ws-form-window-page) > .ws-user-form > .bias-form { padding: 6px 8px; --ws-page-py: 6px; --ws-page-px: 8px; }

/* Форма выбора: «Выбрать» — первой кнопкой командной панели, отдельной строки над таблицей нет (2026-10-11). */
html[data-theme="utp"] .bias-picker-toolbar { display: none; }
html[data-theme="utp"] .bias-btn-icon.ws-toolbar-choose { font: 11px var(--u-font); color: var(--u-text); }


/* ── Чат (правая панель) в теме UTP (2026-10-11): бежевая панель, шапка-полоса, Tahoma 11px, сообщения
   прямоугольниками с тонкой рамкой (свои — светло-жёлтые, чужие — белые), поле ввода и кнопка темы. ── */
html[data-theme="utp"] .ws-rightpanel { background: var(--u-bg); }
/* Высота — как у шапки вкладки (--ws-head-h): нижние линии на одном уровне. */
html[data-theme="utp"] .ws-rightpanel-header {
  box-sizing: border-box; padding: 0 4px 0 6px; font-size: var(--u-fs); font-weight: bold; color: #333;
  background: linear-gradient(#e2e2e2, var(--u-title)); border-bottom: 1px solid #a8a8a8;
}
/* Панель дерева рядом с левой (Админка → Подсистемы, 2026-10-12): шапка — как у вкладки и чата (22px, полоса),
   командная панель — во всю ширину, без боковых линий (правило .ws-toolbar темы давало рамку), фон — как у левой панели. */
html[data-theme="utp"] .ws-subtree { background: var(--u-bg); border-right: 0; }
html[data-theme="utp"] .ws-subtree-body { background: var(--u-field); }
html[data-theme="utp"] .ws-subtree-header {
  padding: 0 4px 0 6px; background: linear-gradient(#e2e2e2, var(--u-title)); border-bottom: 1px solid #a8a8a8;
}
html[data-theme="utp"] .ws-subtree .ws-tree-toolbar { width: auto; margin: 0 0 2px; padding: 1px 2px; border: 0; border-bottom: 1px solid var(--u-bd); }
html[data-theme="utp"] .ws-subtree .ws-tree-toolbar .bias-btn-icon { min-width: 22px; height: 22px; }
html[data-theme="utp"] .chat-panel { font-family: var(--u-font); }
html[data-theme="utp"] .chat-target-row { margin: 4px 6px; gap: 4px; }
html[data-theme="utp"] .chat-target { padding: 1px 20px 1px 3px; font-size: var(--u-fs); background-position: right 4px center, right 16px top, right 0 top; }
html[data-theme="utp"] .chat-clear-feed { width: 20px; height: 20px; padding: 0; border: 1px solid var(--u-bd); border-radius: 2px; background: linear-gradient(#ffffff, #ece8d4); color: var(--u-text); }
html[data-theme="utp"] .chat-clear-feed:hover { background: linear-gradient(#fffdf3, var(--u-hover)); border-color: var(--u-hover-bd); }
html[data-theme="utp"] .chat-clear-feed svg { width: 13px; height: 13px; }
html[data-theme="utp"] .chat-feed { padding: 4px 6px; gap: 4px; background: var(--u-bg); }
html[data-theme="utp"] .chat-feed-empty { font-size: var(--u-fs); color: var(--u-text-off); }
html[data-theme="utp"] .chat-message {
  padding: 3px 6px; border-radius: 0; font-size: var(--u-fs); line-height: 14px; color: var(--u-text);
  background: #fff; border: 1px solid var(--u-bd-light);
}
html[data-theme="utp"] .chat-message.mine { background: #fffbe0; border-color: var(--u-bd); }
html[data-theme="utp"] .chat-message-author { font-size: var(--u-fs); font-weight: bold; color: var(--u-group); margin-bottom: 1px; }
html[data-theme="utp"] .chat-message-footer { gap: 4px; margin-top: 2px; }
html[data-theme="utp"] .chat-message-footer button { font-size: 10px; color: var(--u-text-off); }
html[data-theme="utp"] .chat-message-footer button:hover { color: var(--u-text); }
html[data-theme="utp"] .chat-message-time { font-size: 10px; color: var(--u-text-off); }
html[data-theme="utp"] .chat-message.selected { box-shadow: none; outline: 1px dotted var(--u-sel); outline-offset: 1px; }
html[data-theme="utp"] .chat-message-reply { border-radius: 0; font-size: 10px; }
html[data-theme="utp"] .chat-reply-bar, html[data-theme="utp"] .chat-msgtype-row { font-size: var(--u-fs); }
html[data-theme="utp"] .chat-composer { padding: 4px 6px; border-top: none; background: var(--u-panel); height: 78px; }
html[data-theme="utp"] .chat-composer textarea {
  padding: 2px 4px; font: var(--u-fs)/14px var(--u-font); color: var(--u-text);
  border: 1px solid var(--u-bd); border-radius: 0; background: #fff;
}
html[data-theme="utp"] .chat-composer textarea:focus { outline: none; border-color: var(--u-sel); box-shadow: none; }
html[data-theme="utp"] .chat-composer-row { gap: 4px; margin-top: 4px; }
html[data-theme="utp"] .chat-composer-attach-btn { width: 20px; height: 20px; border-radius: 2px; font-size: 13px; color: var(--u-text); }
html[data-theme="utp"] .chat-composer-attach-btn:hover { background: var(--u-hover); }
html[data-theme="utp"] .chat-composer-files-label { font-size: 10px; color: var(--u-text-off); }

/* «Настройка формы» в теме UTP (2026-10-11). */
html[data-theme="utp"] .ws-fs-toolbar { background: var(--u-panel); border: 1px solid var(--u-bd-light); padding: 1px 2px; }
html[data-theme="utp"] .ws-fs-pane-title { font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .ws-fs-tree, html[data-theme="utp"] .ws-fs-props { border: 1px solid var(--u-bd); border-radius: 0; background: #fff; }
html[data-theme="utp"] .ws-fs-props { background: var(--u-bg); }
html[data-theme="utp"] .ws-fs-node { font-size: var(--u-fs); padding: 0 4px; line-height: 18px; }
html[data-theme="utp"] .ws-fs-node.current .ws-fs-name { background: var(--u-sel); color: #fff; outline: 1px dotted #fff; outline-offset: -1px; padding: 0 2px; }
html[data-theme="utp"] .ws-fs-node.current { background: transparent; }
html[data-theme="utp"] .ws-fs-prop, html[data-theme="utp"] .ws-fs-prop-hint { font-size: var(--u-fs); color: var(--u-text); }
html[data-theme="utp"] .ws-fs-toolbar .ws-fs-more { font: var(--u-fs) var(--u-font); color: var(--u-text); }

/* Подсказка системы (bias-hint.js) в теме UTP: шрифт и рамка темы. */
html[data-theme="utp"] .bias-hint { font: 11px/1.45 var(--u-font); color: var(--u-text); border-color: var(--u-bd); border-radius: 5px; }
html[data-theme="utp"] .ws-chat-groups-title { font-size: var(--u-fs); color: var(--u-group); }
html[data-theme="utp"] .ws-chat-avatar { border-color: var(--u-bd); }

/* Поле даты и календарь (bias-datepicker.js) в теме UTP: кнопка поля — квадратная, как у поля со списком; календарь — рамка темы. */
html[data-theme="utp"] input.bias-field[type="date"], html[data-theme="utp"] input.bias-field[type="datetime-local"], html[data-theme="utp"] input.bias-field[data-bias-dt="date"], html[data-theme="utp"] input.bias-field[data-bias-dt="datetime-local"] {
  padding-right: 22px;
  background-image: url("/icons/Календарь.svg"), linear-gradient(var(--u-bd), var(--u-bd)), linear-gradient(var(--u-panel), var(--u-panel));
  background-position: right 2px center, right 18px top, right 0 top; background-size: 14px 14px, 1px 100%, 18px 100%; background-repeat: no-repeat;
}
html[data-theme="utp"] .bias-cal { font: 11px var(--u-font); color: var(--u-text); border: 1px solid var(--u-bd); border-radius: 0; background: var(--u-field); width: 210px; padding: 4px; }
html[data-theme="utp"] .bias-cal-head { background: var(--u-panel); margin: -4px -4px 4px; padding: 2px 4px; border-bottom: 1px solid var(--u-bd); }
html[data-theme="utp"] .bias-cal-nav, html[data-theme="utp"] .bias-cal-day, html[data-theme="utp"] .bias-cal-link { border-radius: 0; }
html[data-theme="utp"] .bias-cal-day { height: 20px; }
html[data-theme="utp"] .bias-cal-nav:hover, html[data-theme="utp"] .bias-cal-day:hover, html[data-theme="utp"] .bias-cal-link:hover { background: var(--u-hover); }
html[data-theme="utp"] .bias-cal .bias-cal-sel { background: var(--u-sel); }
html[data-theme="utp"] .bias-cal-today { border-color: var(--u-sel); }
html[data-theme="utp"] .bias-cal-link { color: var(--u-link) !important; }
html[data-theme="utp"] .bias-cal-foot { border-top-color: var(--u-bd-light); margin-top: 4px; padding-top: 4px; }
html[data-theme="utp"] .rd-rights-grid .ws-grid-row > .ws-grid-cell:first-child { background: var(--u-field); }
html[data-theme="utp"] .rd-rights-grid .ws-grid-header > .ws-grid-cell:first-child { background: #f4f0dc; }
