/* Фирменный слой хранится отдельно, чтобы обновление upstream Horilla не затирало нашу тему. */
:root {
  --yo-bg: #09101e;
  --yo-surface: #0e1a2a;
  --yo-surface-high: #152940;
  --yo-primary: #f8de94;
  --yo-on-primary: #09101e;
  --yo-secondary: #b16a32;
  --yo-text: #ffffff;
  --yo-text-muted: #999999;
  --yo-outline: rgba(248, 222, 148, 0.2);
  --yo-outline-soft: rgba(248, 222, 148, 0.1);
  --yo-success: #8ee6b0;
  --yo-danger: #ff9d98;
  --yo-warning: #f8de94;
  --yo-radius: 8px;
}

/* Единый шрифт нужен и во фрагментах, которые Horilla подгружает после первой отрисовки.
   Иконочные шрифты исключены намеренно. Material рисует иконку лигатурой: подменишь
   ему font-family — и в страницу уходит само слово, `close` вместо крестика. Наш файл
   подключён после style.css, вес селекторов равен, поэтому побеждали мы — и ломали
   53 иконки в 15 шаблонах, включая плавающую кнопку на каждой странице. */
.oh-auth,
.oh-auth *:not([class*="material-"]),
.oh-wrapper-main,
.oh-wrapper-main *:not([class*="material-"]) {
  font-family: "Onest", sans-serif;
}

/* Внешняя оболочка отделяет рабочие области от браузерного фона без правки upstream-лейаута. */
.oh-auth,
.oh-wrapper-main,
#main,
#main-section {
  background: var(--yo-bg);
  color: var(--yo-text);
}

.oh-auth-card,
.oh-card-dashboard,
.oh-profile-section,
.oh-kanban__card,
.oh-dropdown,
.oh-modal__dialog,
.oh-activity-sidebar {
  background: var(--yo-surface);
  border: 1px solid var(--yo-outline-soft);
  border-radius: var(--yo-radius);
  box-shadow: 0 12px 32px var(--yo-outline-soft);
  color: var(--yo-text);
}

/* Вход остаётся спокойным и контрастным, даже когда парольный вход включён отдельно. */
.oh-auth-card .oh-onboarding-card__title,
.oh-auth-card .text-muted,
.oh-auth-card .oh-label,
.oh-auth-card small,
.oh-auth-card p {
  color: var(--yo-text);
}

.oh-auth-card .text-muted,
.oh-navbar__breadcrumb-link,
.oh-navbar__clock,
.oh-sidebar__submenu-link,
.oh-profile__info-label,
.oh-kanban__card-footer,
.oh-sticky-table__td {
  color: var(--yo-text-muted);
}

.oh-form-group,
.oh-input-group {
  color: var(--yo-text);
}

.oh-input,
.oh-input-group .oh-input,
.oh-dropdown select,
.oh-dropdown input {
  background: var(--yo-surface-high);
  border: 1px solid var(--yo-outline);
  border-radius: var(--yo-radius);
  color: var(--yo-text);
}

.oh-input::placeholder {
  color: var(--yo-text-muted);
}

.oh-input:focus,
.oh-dropdown select:focus,
.oh-dropdown input:focus {
  border-color: var(--yo-primary);
  box-shadow: 0 0 0 3px var(--yo-outline-soft);
  outline: 0;
}

/* Навигация и меню остаются тёмными при раскрытии вложенных разделов. */
.oh-navbar,
.oh-navbar__wrapper,
.oh-navbar__systray,
.oh-sidebar,
.oh-sidebar__menu,
.oh-sidebar__submenu {
  background: var(--yo-surface);
  border-color: var(--yo-outline-soft);
  color: var(--yo-text);
}

.oh-navbar__action-icons,
.oh-navbar__toggle-link,
.oh-navbar [class*="oh-navbar__toggle-"],
.oh-navbar__icon,
.oh-sidebar__menu-link,
.oh-sidebar__submenu-link {
  color: var(--yo-text);
}

/* Разделители в шапке. Upstream рисует их `1px solid #eee` — на светлой теме
   это почти невидимый волосок, на нашей тёмной — светло-серые рейки во всю
   высоту шапки. Цвет упущен первой волной перекраски: тогда перекрасили сам
   навбар, а его внутренние блоки остались с чужим значением. */
.oh-navbar__action-icons,
.oh-navbar__notifications,
.oh-navbar__clock,
.oh-navbar__user-info {
  border-left-color: var(--yo-outline-soft);
  border-right-color: var(--yo-outline-soft);
}

.oh-navbar__action-icons:hover,
.oh-navbar__toggle-link:hover,
.oh-sidebar__menu-link:hover,
.oh-sidebar__submenu-link:hover {
  background: var(--yo-surface-high);
  color: var(--yo-primary);
}

.oh-sidebar__menu-link--active,
.oh-sidebar__submenu-link--active,
.oh-sidebar__menu-item--active > .oh-sidebar__menu-link,
.oh-sidebar__submenu-item--active > .oh-sidebar__submenu-link {
  background: var(--yo-outline-soft);
  color: var(--yo-primary);
}

.oh-dashboard,
.oh-dashboard__cards {
  background: var(--yo-bg);
}

.oh-card-dashboard__header,
.oh-card-dashboard__title,
.oh-card-dashboard__count {
  color: var(--yo-text);
}

.oh-card-dashboard--success .oh-card-dashboard__count {
  color: var(--yo-success);
}

.oh-card-dashboard--warning .oh-card-dashboard__count {
  color: var(--yo-warning);
}

.oh-card-dashboard--neutral .oh-card-dashboard__count {
  color: var(--yo-text-muted);
}

/* Таблицы часто занимают весь экран, поэтому фон задан на ячейках, а не только контейнере. */
.oh-sticky-table,
.oh-sticky-table__table,
.oh-sticky-table__thead,
.oh-sticky-table__tbody,
.oh-sticky-table__tr,
.oh-sticky-table__th,
.oh-sticky-table__td {
  background: var(--yo-surface);
  border-color: var(--yo-outline-soft);
}

.oh-sticky-table__th {
  color: var(--yo-primary);
}

.oh-sticky-table__td,
.oh-profile--md,
.oh-profile--lg,
.oh-profile [class*="oh-profile__info-"],
.oh-profile__info-title,
.oh-profile__info-value {
  color: var(--yo-text);
}

.oh-btn-group {
  border-color: var(--yo-outline);
}

.oh-general__tabs,
.oh-tabs {
  border-color: var(--yo-outline-soft);
}

.oh-general__tab,
.oh-general__tab-link,
.oh-tabs__tab,
.oh-tabs__tab-link {
  color: var(--yo-text-muted);
}

.oh-general__tab--active,
.oh-general__tab--active .oh-general__tab-link,
.oh-general__tab-link--active,
.oh-tabs__tab--active,
.oh-tabs__tab--active .oh-tabs__tab-link,
.oh-tabs__tab-link--active {
  border-color: var(--yo-primary);
  color: var(--yo-primary);
}

.oh-kanban,
.oh-kanban__section,
.oh-kanban__section-head {
  background: var(--yo-bg);
  border-color: var(--yo-outline-soft);
  color: var(--yo-text);
}

.oh-kanban__card-footer {
  border-color: var(--yo-outline-soft);
}

.oh-badge,
.oh-badge--small,
.oh-badge--round,
.oh-badge--secondary {
  background: var(--yo-outline-soft);
  color: var(--yo-primary);
}

.oh-modal,
.oh-modal--show {
  background: var(--yo-outline-soft);
}

.oh-modal__dialog-header,
.oh-modal__dialog-footer,
.oh-modal__close {
  border-color: var(--yo-outline-soft);
  color: var(--yo-text);
}

.oh-modal__dialog-body {
  background: var(--yo-surface);
  color: var(--yo-text);
}

.oh-btn,
.oh-btn--secondary,
.oh-btn--success,
.oh-btn--danger,
.oh-btn--light,
.oh-btn--small {
  background: var(--yo-primary);
  border-color: var(--yo-primary);
  border-radius: var(--yo-radius);
  color: var(--yo-on-primary);
}

.oh-btn--success {
  background: var(--yo-success);
  border-color: var(--yo-success);
}

.oh-btn--secondary {
  background: var(--yo-secondary);
  border-color: var(--yo-secondary);
  color: var(--yo-text);
}

.oh-btn--secondary:hover,
.oh-btn--secondary:focus-visible {
  color: var(--yo-text);
}

.oh-btn--danger {
  background: var(--yo-danger);
  border-color: var(--yo-danger);
}

.oh-btn--light {
  background: var(--yo-surface-high);
  border-color: var(--yo-outline);
  color: var(--yo-text);
}

.oh-btn--transparent {
  background: transparent;
  border-color: transparent;
  color: var(--yo-text);
}

.oh-btn:hover,
.oh-btn:focus-visible {
  box-shadow: 0 0 0 3px var(--yo-outline);
  color: var(--yo-on-primary);
}

/* Только у стартовых кнопок Horilla цвет записан в style, поэтому иначе каскад не может его заменить. */
.oh-auth a.oh-btn.oh-btn--secondary[style] {
  background: var(--yo-primary) !important;
  color: var(--yo-on-primary) !important;
}

.oh-alert-container .oh-alert,
.oh-alert--danger,
.oh-alert--warning,
.oh-alert--info,
.oh-alert--success {
  background: var(--yo-surface-high);
  border-color: var(--yo-outline);
  color: var(--yo-text);
}

.oh-alert--danger {
  border-left-color: var(--yo-danger);
}

.oh-alert--warning,
.oh-alert--info {
  border-left-color: var(--yo-warning);
}

.oh-alert--success {
  border-left-color: var(--yo-success);
}

.oh-activity-sidebar__header,
.oh-activity-sidebar__body,
.oh-activity-sidebar__title,
.oh-activity-sidebar__close {
  background: var(--yo-surface);
  border-color: var(--yo-outline-soft);
  color: var(--yo-text);
}

/* Размеры знака под входом задаются здесь: inline-стиль в шаблоне был сломан
   («200px» без имени свойства) и тянул картинку по высоте. */
.oh-auth__logo {
  display: block;
  width: 200px;
  max-width: 60vw;
  height: auto;
  margin: 2rem auto 0;
  opacity: 0.9;
}

/* Основные рабочие поверхности: карточки и выпадающие панели не должны оставаться белыми. */
body,
.custom-dropdown,
.oh-navbar__notification-tray,
.oh-accordion-meta__header,
.oh-accordion-meta__body,
.oh-user_permission-list_item,
.oh-alert,
.oh-btn--view,
.oh-floatin-btn,
.oh-hover-btn__small,
.oh-card,
.oh-kanban-card,
.oh-dropdown__menu,
.oh-dropdown__import,
.oh-btn--white-outline:hover,
.oh-btn--white-outline:focus,
.oh-btn--white-outline:focus-visible,
.oh-input__search-group,
.oh-select,
.oh-kanban__section-head--white,
.oh-pagination__item,
.oh-activity-sidebar__qa-item,
.oh-table,
.oh-sticky-table__sd,
.oh-sticky-table__sr,
.oh-sticky-dropdown_btn,
.oh-titebar-button_mob--container,
.lastTd,
.fixed-table thead th,
.oh-timesheet .accordion-header,
.oh-timesheet .accordion-body,
.oh-tabs__tab--active,
.oh-tabs__content,
.oh-tabs__movable,
.oh-modal__diaglog-nav,
.oh-filter-tag,
.oh-titlebar__tag,
.oh-layout_horizontal .oh-kanban-card,
.oh-dashboard-card,
.oh-history_date-content,
.dropdown-content,
.oh-onboarding-card,
.oh-onboarding-preview,
.oh-chat__header,
.oh-chat__header::before,
.oh-chat__header::after,
.oh-chat__sidebar,
.oh-chat__main-input-container,
.oh-chat__main-input-container::after,
.oh-chat__header-avatar-status--offline::after,
.oh-chat__bubble--other .oh-chat__bubble-content,
.oh-chat__dropdown-dialog,
.oh-helpdesk__header,
.oh-helpdesk__right,
.oh-helpdesk__card,
.oh-helpdesk__chatbox,
.oh-helpdesk__bubble,
.oh-faq,
.oh-faq__item,
.oh-faq-card,
.oh-autocomplete-suggestions,
.oh-job-selected_detail,
.oh-announcement_feed-card,
.fullscreen .note-editing-area,
.orgchart .node .title .parentNodeSymbol::after,
.orgchart .node .content {
  background: var(--yo-surface);
  border-color: var(--yo-outline-soft);
}

/* Bootstrap и Select2 фиксируют белый фон с !important, поэтому повторяем приоритет upstream. */
.bg-body,
.bg-white {
  background: var(--yo-surface) !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice,
.lastTd {
  background: var(--yo-surface) !important;
  border-color: var(--yo-outline-soft);
}

/* Таблицы и сводная таблица используют вложенный слой для строк, заголовков и выделений. */
.oh-sticky-table__th,
#pivot-container .pvtUiCell,
#pivot-container .pvtTable,
#pivot-container .pvtTable td,
#pivot-container .pvtTable tr:nth-child(2n) td,
#pivot-container .pvtTable tbody tr th,
#pivot-container .pvtTable thead tr th,
.fixed-table th:nth-child(2),
.fixed-table td:nth-child(2),
.fixed-table th:first-child,
.fixed-table td:first-child,
#pivot-container .pvtTable tr:nth-child(even) td,
#pivot-container .pvtRowLabel,
#pivot-container .pvtColLabel,
.pvtAxisContainer li span.pvtAttr,
.pvtFilterBox p :nth-child(2),
.oh-state-highlight,
.oh-table-config__close-tr,
.oh-table-config__close-th {
  background: var(--yo-surface-high);
  border-color: var(--yo-outline-soft);
}

#pivot-container .pvtTable tbody tr th,
#pivot-container .pvtTable thead tr th {
  background: var(--yo-surface-high) !important;
}

/* Вкладки, канбан и настройки используют более высокий слой для интерактивных состояний. */
.bg-light,
.oh-btn--light,
.oh-btn--light-dark-text,
.oh-btn--view:hover,
.oh-btn--view:focus,
.oh-btn--view:focus-visible,
.oh-btn--light-bkg,
.oh-kanban__section-head,
.oh-kanban__section--highlight,
.oh-kanban__card--highlight,
.oh-kanban__card-body-collapse,
.oh-sticky-table__tbody--highlight,
.oh-tabs__movable:hover .oh-tabs__movable-header,
.oh-permission-panel,
.oh-user-panel,
.oh-history_msg-container,
.members-container,
.oh-chat__main,
.oh-chat__file-tag:hover,
.oh-helpdesk_attached-items,
.oh-faq__tag:hover,
.autocomplete-suggestion:hover,
.oh-apply_btn,
.oh-alert--danger,
.oh-inner-sidebar__link--active,
.oh-history_msging-email,
.oh-recuritment_tag,
.oh-navbar__user-info:hover,
.oh-navbar__notifications:hover,
.oh-navbar__action-icons:hover,
.oh-alert--info,
.oh-btn--light-bkg:hover,
.oh-kanban__card-body-collapse:hover,
.oh-progress,
.oh-table tbody tr:hover,
.oh-sticky-table__tr:hover,
.oh-kanban-card-action:has(.oh-kanban-card-action__checkbox:checked),
.oh-permission-panel:hover,
.oh-user-panel:hover,
.oh-chat__sidebar-search-input,
.oh-helpdesk__icon,
.oh-helpdesk_attached-items:hover,
.oh-survey__table-row:hover .oh-survey__table-col,
mark,
.mark,
.oh-navbar__clock:hover,
.oh-navbar__clock:focus,
.oh-navbar__clock:focus-visible,
.oh-pagination__item:hover,
.members-container ul .li-last,
.oh-alert--warning,
.oh-btn--light:hover,
.oh-btn--light:focus,
.oh-btn--light:focus-visible,
.oh-btn--light-dark-text:hover,
.oh-btn--light-dark-text:focus,
.oh-btn--light-dark-text:focus-visible,
.oh-btn--view-active,
.oh-hover-btn:hover,
.oh-radio__checkmark,
.oh-radio:hover input ~ .oh-radio__checkmark,
.oh-kanban-group__head:hover,
.oh-kanban-card--collapsed .oh-kanban-group__head,
.oh-tabs__tab:hover,
.oh-tabs__new-tab-config:hover,
.oh-tabs__tab--active:hover,
.oh-timeoff-modal__download-link,
.oh-filter-tag__close::before,
.oh-history_date::before,
.oh-onboarding-card__highlight-code,
.oh-payslip__net-payable-right,
.oh-helpdesk__tag,
.oh-faq__tag,
.oh-recuritment__progress-bar,
.dropdown-content a:hover,
.oh-switch .oh-switch__checkbox {
  background: var(--yo-surface-high);
  border-color: var(--yo-outline-soft);
}

.oh-btn--light-bkg,
.oh-btn--light-bkg:hover,
.select2-results__option--selected {
  background: var(--yo-surface-high) !important;
}

/* Бывшие почти-белые (96–100%) блоки остаются основными поверхностями; это не hover-слой. */
.bg-light,
.oh-btn--light,
.oh-btn--light-dark-text,
.oh-btn--view:hover,
.oh-btn--view:focus,
.oh-btn--view:focus-visible,
.oh-btn--light-bkg,
.oh-kanban__section-head,
.oh-kanban__section--highlight,
.oh-kanban__card--highlight,
.oh-kanban__card-body-collapse,
.oh-sticky-table__tbody--highlight,
.oh-tabs__movable:hover .oh-tabs__movable-header,
.oh-permission-panel,
.oh-user-panel,
.oh-history_msg-container,
.members-container,
.oh-chat__main,
.oh-chat__file-tag:hover,
.oh-helpdesk_attached-items,
.oh-faq__tag:hover,
.autocomplete-suggestion:hover,
.oh-apply_btn,
.oh-alert--danger,
.oh-inner-sidebar__link--active,
.oh-history_msging-email,
.oh-recuritment_tag,
.oh-navbar__user-info:hover,
.oh-navbar__notifications:hover,
.oh-navbar__action-icons:hover,
.oh-alert--info,
.oh-btn--light-bkg:hover,
.oh-kanban__card-body-collapse:hover,
.oh-progress,
.oh-table tbody tr:hover,
.oh-sticky-table__tr:hover,
.oh-kanban-card-action:has(.oh-kanban-card-action__checkbox:checked),
.oh-permission-panel:hover,
.oh-user-panel:hover,
.oh-chat__sidebar-search-input,
.oh-helpdesk__icon,
.oh-helpdesk_attached-items:hover,
.oh-survey__table-row:hover .oh-survey__table-col,
.oh-tabs__tab--active:hover {
  background: var(--yo-surface);
}

.oh-btn--light-bkg,
.oh-btn--light-bkg:hover {
  background: var(--yo-surface) !important;
}

/* Переключатели и радиокнопки сохраняют различимый светлый индикатор на тёмной форме. */
.oh-switch .oh-switch__checkbox::after,
.oh-switch .oh-switch__checkbox:checked::after,
.oh-radio .oh-radio__checkmark:after {
  background: var(--yo-text);
}

/* Модальные окна, онбординг и доска не должны возвращать светлые рамки upstream. */
.oh-modal__dialog,
.oh-modal__dialog-header,
.oh-modal__dialog-footer,
.oh-card,
.oh-card--no-shadow,
.oh-list-cards__item,
.oh-list-card__footer,
.oh-card__footer--border-top,
.oh-card--border,
.oh-item--border-bottom,
.oh-container--outline,
.oh-btn-group,
.oh-btn-group > *,
.oh-kanban,
.oh-kanban__card,
.oh-kanban__card:last-child,
.oh-kanban__add-section,
.oh-general__tabs--border,
.oh-inner-sidebar,
.oh-inner-sidebar-toggle,
.oh-inner-sidebar-content__header,
.oh-inner-sidebar-content__footer,
.oh-sticky-table,
.oh-sticky-table__th,
.oh-sticky-table__sd,
.oh-sticky-table__thead div.oh-sticky-table__th:first-child,
.oh-sticky-table__tfoot div.oh-sticky-table__th:first-child,
.oh-sticky-table__sr,
.oh-sticky-table__th--sticky,
.oh-sticky-table__th--right,
.oh-sticky-dropdown--header,
.table-wrapper,
.fixed-table th,
.fixed-table td,
.oh-timesheet-table,
.pvtAxisContainer,
.pvtVals,
.pvtAttrDropdown,
.pvtFilterBox,
.oh-tabs,
.oh-tabs__tab,
.oh-tabs__new-tab-config,
.oh-tabs__movable-header,
.oh-tabs__action-bar,
.oh-modal__dialog-process .oh-modal__dialog-body-process .oh-inner-sidebar .oh-card--no-shadow,
.oh-modal__dialog-process .oh-modal__dialog-body-process .oh-inner-sidebar-content .oh-profile_info-card,
.oh-permission-panel,
.oh-user-panel,
.oh-profile-section,
.oh-profile-section__sidebar,
.members-container,
.oh-onboarding-card__header,
.oh-onboarding-card__collapse-header,
.oh-feedback-care__header,
.oh-payslip,
.oh-payslip__header,
.oh-payslip__table,
.oh-payslip__table-th,
.oh-payslip__net-payable,
.oh-we-calendar__cell,
.oh-chat__sidebar-section-header,
.oh-chat__sidebar-section::after,
.oh-chat__header-avatar-status::after,
.oh-chat__member-tag,
.oh-chat__file-tag,
.oh-helpdesk__meta-item::after,
.oh-helpdesk__card-header,
.oh-helpdesk__bubble-header,
.oh-helpdesk__document,
.helpdesk__card-footer,
.oh-helpdesk__comment--container,
.oh-faq__item-header,
.oh-faq__item-body,
.oh-survey__table-row,
.oh-announcement_header,
.qs-datepicker-container {
  border-color: var(--yo-outline-soft);
}

/* Нативные контролы получают тёмную палитру, чтобы системные select и числовые поля не выбивались. */
#main,
.oh-wrapper-main {
  color-scheme: dark;
}

select,
input[type="number"],
input[type="date"],
textarea,
.oh-chat__sidebar-search-input:focus,
.oh-chat__sidebar-search-input:focus-visible,
.oh-chat__main-input:focus,
.oh-chat__main-input:focus-visible,
.oh-survey-ques .oh-input,
.oh-survey-ques .select2-container--default .select2-selection--multiple {
  background: var(--yo-surface-high);
  border-color: var(--yo-outline);
  color: var(--yo-text);
}

/* Текст всех рабочих поверхностей светлый; акцентные ссылки остаются золотистыми. */
a,
a:hover,
a:active,
a:focus,
a:focus-within,
.oh-text--dark,
.oci-menu::before,
.oh-navbar__notification-head,
.oh-navbar__notification-text,
.oh-navbar__breadcrumb-link.active,
.oh-accordion-meta__btn,
.oh-accordion-meta__btn-icon,
.oh-user_permssion-dropdownbtn,
.oh-dropdown__menu,
.oh-dropdown__import,
.oh-input,
.oh-pagination__page,
.oh-pagination__label,
.oh-sticky-table__th,
.oh-sticky-table__sd,
.oh-table__editable-input:read-only,
.oh-sticky-dropdown_btn,
.fixed-table td,
.fixed-table thead th,
.oh-timesheet .oh-table tr th,
.pvtSearch,
.oh-general__tab-link,
.oh-filter-tag,
.oh-titlebar__tag,
.oh-onboarding-card__step--active .oh-onboarding-card__text,
.oh-chat__bubble--other .oh-chat__bubble-content,
.oh-recuritment_company-name,
.oh-recuritment_application-count,
.oh-job__description-list .oh-job__description-list_item,
.orgchart .node .content,
#pivot-container .pvtTable td,
.oh-activity-list__description strong,
.oh-timeoff-modal__download-link,
.oh-history_task-state,
.oh-helpdesk__tag,
.oh-helpdesk__close,
.oh-modal__section-head,
.oh-table thead tr th,
.oh-filter-tag__close,
.oh-permission-count,
.oh-payslip__employee-title,
.oh-payslip__netpay-title,
.oh-chat__typing-message {
  color: var(--yo-text);
}

a,
.oh-link--secondary,
.oh-text--secondary,
.search_content li a .search_text,
.oh-navbar__notification-tray-link,
.oh-btn--secondary-link,
.oh-btn--white-outline:hover,
.oh-btn--white-outline:focus,
.oh-btn--white-outline:focus-visible,
.oh-btn--light,
.oh-pagination__link--active,
.oh-inner-sidebar__link:hover,
.oh-inner-sidebar__link:focus,
.oh-inner-sidebar__link:focus-visible,
.oh-filter-tag:hover .oh-filter-tag__close,
.oh-chat__sidebar-user:hover .oh-chat__sidebar-username,
.oh-chat__add-group-user:hover,
.oh-chat__add-group-user:focus,
.oh-chat__add-group-user:focus-visible,
.oh-announcement-btn:hover {
  color: var(--yo-primary);
}

/* Второстепенная метаинформация намеренно приглушена, чтобы не спорить с данными в карточках. */
.oh-navbar__icon,
.oh-navbar__clock-icon,
.oh-input-group__icon,
.oh-profile__info-label,
.oh-profile__info-icon,
.oh-history_time,
.oh-history-task-state,
.oh-helpdesk__timestamp,
.oh-helpdesk__header-status {
  color: var(--yo-text-muted);
}

/* Bootstrap фиксирует эти утилиты с !important; без симметричного правила заголовки исчезают на тёмном фоне. */
.text-dark,
.text-body {
  color: var(--yo-text) !important;
}

.oh-dropdown__link,
.select2-results__option--highlighted,
.pvtSearch,
.qs-overlay,
.qs-overlay-month,
.qs-overlay-year {
  color: var(--yo-text) !important;
}

.qs-overlay,
.qs-overlay-month,
.qs-overlay-year {
  background: var(--yo-surface) !important;
}

.link-dark {
  color: var(--yo-text);
}

/* Статусные кнопки сохраняют смысл своих состояний, а не исходный почти-чёрный текст Horilla. */
.oh-btn--warning,
.oh-btn--warning:hover,
.oh-btn--warning:focus,
.oh-btn--warning:focus-visible {
  background: var(--yo-warning);
  border-color: var(--yo-warning);
  color: var(--yo-on-primary);
}

.oh-btn--warning-outline:hover,
.oh-btn--warning-outline:focus,
.oh-btn--warning-outline:focus-visible {
  color: var(--yo-on-primary);
}

.oh-btn--primary-outline {
  border-color: var(--yo-primary);
  color: var(--yo-primary);
}

.oh-card-dashboard--success .oh-card-dashboard__sign,
.oh-btn--success-outline,
.oh-floatin-btn--success:hover {
  color: var(--yo-success);
  border-color: var(--yo-success);
}

.link-danger,
.text-danger {
  color: var(--yo-danger) !important;
}

/* Акцент Horilla заменён по роли: заполнения — бронзовые, текст и вкладки — золотистые. */
.orgchart .frontend1 .title,
.oh-navbar__notification-image,
.oh-badge--secondary,
.oh-btn--secondary,
.oh-btn--secondary:disabled,
.oh-btn--secondary-ouline:hover,
.oh-btn--secondary-outline:hover,
.oh-btn--secondary-outline:focus,
.oh-btn--secondary-outline:focus-visible,
.oh-hover-btn__small:hover,
.oh-input-picker--selected,
.oh-switch .oh-switch__checkbox:checked,
.oh-switch .oh-switch__checkbox:checked:hover,
.oh-radio input:checked ~ .oh-radio__checkmark,
.oh-profile__active-badge--secondary,
.oh-progress__bar--secondary,
.oh-progress__bar--table-secondary,
.oh-modal__dialog--custom .oh-general__tab .oh-general__tab-link--active,
.oh-kanban-card-action .oh-kanban-card-action__checkbox:checked + .oh-kanban-card-action__checkbox-label::before,
.oh-chat__bubble--you .oh-chat__bubble-content,
.oh-progress-bar__state,
.oh-apply_btn:active,
.oh-apply_btn:focus,
.oh-apply_btn:hover,
.oh-titlebar__tag-close,
.oh-sidebar__company-profile,
.pvtFilterBox p :nth-child(1),
.oh-timeoff-card__icon-container,
.oh-history_tabs-items:hover,
.oh-onboarding-card--top-bar::before,
.oh-onboarding-preview--top-bar::before,
.oh-job__description-list .oh-job__description-list_item::before {
  background: var(--yo-secondary);
  border-color: var(--yo-secondary);
}

.oh-btn--secondary,
.oh-btn--secondary:disabled,
.oh-navbar__notification-image,
.oh-badge--secondary,
.oh-modal__dialog--custom .oh-general__tab .oh-general__tab-link--active,
.oh-chat__bubble--you .oh-chat__bubble-content,
.pvtFilterBox p :nth-child(1),
.oh-history_tabs-items:hover {
  color: var(--yo-text);
}

.orgchart .frontend1 .content,
.oh-checkpoint-badge--secondary,
.oh-btn--secondary-ouline,
.oh-btn--secondary-outline,
.oh-progress--table-secondary,
.oh-helpdesk__bubble--reply,
.oh-survey__table-row:hover,
.members-container ul .active {
  border-color: var(--yo-primary);
}

.oh-general__tab-link--active,
.oh-profile-section__sidebar-item--active {
  border-color: var(--yo-primary);
  color: var(--yo-primary);
}

.oh-onboarding-card__count {
  background: var(--yo-outline-soft);
  color: var(--yo-primary);
}

.oh-helpdesk__bubble--reply {
  background: var(--yo-surface-high);
}

.oh-apply_btn {
  border-color: var(--yo-primary);
  color: var(--yo-primary);
}

input[type="checkbox"] {
  accent-color: var(--yo-secondary);
}

/* Бейдж непрочитанных уведомлений и destructive-утилиты остаются красным семантическим сигналом. */
.oh-navbar__notification-dot--green,
.oh-navbar__notification-beacon,
.oh-badge_count {
  background: var(--yo-danger);
}

/* У календаря upstream фиксирует состояния с !important, поэтому сохраняем тот же приоритет. */
.qs-square.qs-num.qs-current {
  color: var(--yo-primary) !important;
}

.qs-overlay-month:hover {
  background: var(--yo-surface-high) !important;
  color: var(--yo-primary) !important;
}

.qs-overlay .qs-submit {
  background: var(--yo-secondary) !important;
  color: var(--yo-text) !important;
}

.oh-btn--danger,
.oh-btn--danger:hover,
.oh-btn--danger:focus,
.oh-btn--danger:focus-visible {
  background: var(--yo-danger);
  border-color: var(--yo-danger);
}

@media print {
  /* Печать не должна переносить тёмную оболочку в бумажные кадровые документы. */
  .oh-wrapper-main,
  #main,
  #main-section,
  .oh-card-dashboard,
  .oh-sticky-table,
  .oh-sticky-table__table,
  .oh-sticky-table__thead,
  .oh-sticky-table__tbody,
  .oh-sticky-table__tr,
  .oh-sticky-table__th,
  .oh-sticky-table__td {
    background: var(--yo-text);
    color: var(--yo-on-primary);
    box-shadow: none;
  }
}

/* Подпись у кнопки возврата в TeamOS. Соседние кнопки шапки — голые иконки, но
   уход в другое приложение надо назвать, иначе его не находят. На узких экранах
   upstream сжимает эти блоки до 50px, поэтому там остаётся одна иконка. */
.oh-navbar__action-icons-label {
  margin-left: 8px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--yo-text);
}

@media (max-width: 767.98px) {
  .oh-navbar__action-icons-label {
    display: none;
  }
}

/* Знак в левом верхнем углу сайдбара. Высота прибита к высоте шапки
   (.oh-navbar — 65px плюс 3px нижней границы): без этого блок набирал высоту
   из паддингов, выходил ниже шапки, и линия под знаком не совпадала с линией
   под шапкой. */
.yo-sidebar-brand {
  box-sizing: border-box;
  height: 68px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-bottom: 3px solid var(--yo-outline-soft);
  text-decoration: none;
}

.yo-sidebar-brand:hover {
  text-decoration: none;
}

.yo-sidebar-brand__mark {
  display: block;
  width: 104px;
  height: auto;
}

.yo-sidebar-brand__name {
  color: var(--yo-primary);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
