/* ============================================================
   CleverUM — кастомные стили Vaultwarden Web Vault
   Подключается через <link rel="stylesheet" href="brand.css?v=..."/>
   который вшивается в index.html на этапе сборки Docker.
   Загружается ПОСЛЕ css/vaultwarden.css — перекрывает всё через !important.
   ============================================================ */

/* ── 1. Логотип ─────────────────────────────────────────────
   Скрываем bit-svg (Vaultwarden) и показываем CleverUM через ::before.
   Паттерн совпадает с runtime SCSS (user.vaultwarden.scss.hbs).
   ────────────────────────────────────────────────────────── */

/* Экран входа / регистрации */
auth-anon-layout bit-landing-header bit-svg > svg,
auth-anon-layout bit-landing-header bit-icon > svg {
  display: none !important;
}

auth-anon-layout bit-landing-header bit-svg::before,
auth-anon-layout bit-landing-header bit-icon::before {
  display: block !important;
  content: "" !important;
  width: 260px !important;
  height: 56px !important;
  background: url("images/logo-dark@2x.png") no-repeat center left !important;
  background-size: contain !important;
}

.theme_dark auth-anon-layout bit-landing-header bit-svg::before,
.theme_dark auth-anon-layout bit-landing-header bit-icon::before {
  background-image: url("images/register-layout/logo-horizontal-white.png") !important;
}

/* Боковая панель хранилища — логотип Маркон-Холод (mh-new-logo.png) */
app-user-layout bit-nav-logo bit-svg > svg,
app-user-layout bit-nav-logo bit-icon > svg,
app-organization-layout bit-nav-logo bit-svg > svg,
app-organization-layout bit-nav-logo bit-icon > svg {
  display: none !important;
}

app-user-layout bit-nav-logo bit-svg::before,
app-user-layout bit-nav-logo bit-icon::before,
app-organization-layout bit-nav-logo bit-svg::before,
app-organization-layout bit-nav-logo bit-icon::before {
  display: block !important;
  content: "" !important;
  width: 168px !important;
  height: 56px !important;
  background: url("images/mh-new-logo.png") no-repeat center left !important;
  background-size: contain !important;
}

/* Прочие места с img.new-logo-themed (если остались в шаблонах) */
auth-anon-layout img.new-logo-themed {
  content: url("images/logo-dark@2x.png") !important;
}

.theme_dark auth-anon-layout img.new-logo-themed {
  content: url("images/register-layout/logo-horizontal-white.png") !important;
}

app-user-layout img.new-logo-themed,
app-organization-layout img.new-logo-themed {
  content: url("images/mh-new-logo.png") !important;
}

bit-nav-logo a.tw-relative.tw-p-3.tw-block {
  padding: 0 !important;
  height: auto !important;
}

app-user-layout bit-nav-logo bit-svg::before {
  width: 300px !important;
  height: 99px !important;
}

/* ── 2. Расширение браузера ──────────────────────────────────
   Диалоги и онбординг расширения нельзя скрывать CSS-ом:
   Vaultwarden ждёт пользовательского действия. Их пропускает
   brand.js через кнопки «Добавить позже» и «Перейти к веб-приложению».
   ────────────────────────────────────────────────────────── */

/* ── 3. Онбординг ───────────────────────────────────────────
   Extension/onboarding-диалоги нельзя скрывать CSS-ом: Vaultwarden
   может ждать пользовательского действия и зависнуть на загрузке.
   Обычный блок «Начать» внутри хранилища не блокирует приложение,
   поэтому его скрываем и дополнительно отклоняем через brand.js.
   ────────────────────────────────────────────────────────── */

app-user-layout app-vault-onboarding,
app-organization-layout app-vault-onboarding {
  display: none !important;
}

/* ── 4. Инструменты → Импорт и Экспорт ─────────────────────
   Паттерн bit-nav-item[route="..."] используется самим Vaultwarden.
   ────────────────────────────────────────────────────────── */

bit-nav-item[route="tools/import"],
bit-nav-item[route="import"],
a[href$="/tools/import"] {
  display: none !important;
}

bit-nav-item[route="tools/export"],
bit-nav-item[route="export"],
a[href$="/tools/export"] {
  display: none !important;
}

/* ── 5. Отчёты → Утечка данных ──────────────────────────────
   Карточка и пункт меню ссылаются на /reports/breach-report.
   ────────────────────────────────────────────────────────── */

bit-nav-item[route="reports/breach-report"],
a[href$="/reports/breach-report"],
a[href$="breach-report"],
app-breach-report {
  display: none !important;
}

app-reports-home > app-report-list > div.tw-inline-grid > div:has(a[href$="breach-report"]),
app-reports-home app-report-list div.tw-inline-grid div:last-child:has(a[href*="breach"]) {
  display: none !important;
}

/* ── 6. Переключатель продуктов (product-switcher) ──────────
   navigation-product-switcher — виден для админов (Password Manager / Admin Console).
   product-switcher и product-switcher-content — иконка-сетка и попап, скрываем.
   ────────────────────────────────────────────────────────── */

product-switcher {
  display: none !important;
}

product-switcher-content {
  display: none !important;
}

/* ── 7. Создание организации ────────────────────────────────
   Ссылка «Создать организацию» в меню хранилища.
   ────────────────────────────────────────────────────────── */

[routerLink="/create-organization"],
a[href$="create-organization"],
a[href$="/create-organization"] {
  display: none !important;
}

/* ── 8. Регистрация аккаунта ────────────────────────────────
   Кнопка/ссылка «Создать аккаунт» на странице входа.
   Доступ возможен только если учётная запись создана администратором.
   ────────────────────────────────────────────────────────── */

[routerLink="/signup"],
a[href$="/signup"] {
  display: none !important;
}

/* ── 9. Кнопка «Получить помощь» (GitHub Vaultwarden) ───────
   ────────────────────────────────────────────────────────── */

a[href^="https://github.com/dani-garcia/vaultwarden"] {
  display: none !important;
}

/* Иконка справки Bitwarden в заголовке «Фильтры». */
a[href="https://bitwarden.com/help/searching-vault/"] {
  display: none !important;
}

/* Пункт пользовательского меню «Получить приложения» ведёт на Bitwarden. */
a[bitmenuitem][href^="https://bitwarden.com/download"],
[role="menu"] a[role="menuitem"][href^="https://bitwarden.com/download"] {
  display: none !important;
}

/* ── 10. Меню Настройки → Правила домена ────────────────────
   ────────────────────────────────────────────────────────── */

bit-nav-item[route="settings/domain-rules"],
a[href$="/settings/domain-rules"] {
  display: none !important;
}

/* ── 11. Настройки безопасности → Ключи ─────────────────────
   Страница /#/settings/security/security-keys.
   ────────────────────────────────────────────────────────── */

bit-nav-item[route="security-keys"],
a[href$="/security-keys"] {
  display: none !important;
}

/* ── 12. Двухэтапный вход → DUO ────────────────────────────
   DUO = provider type 2 (enum: Authenticator:0, Email:1, Duo:2, ...).
   Класс проставляется динамически: tw-py-4 providers-2fa-2.
   ────────────────────────────────────────────────────────── */

.providers-2fa-2 {
  display: none !important;
}

/* ── 13. Подсказка при создании нового пароля ───────────────
   Компонент vault-new-item-nudge / bit-callout.
   ────────────────────────────────────────────────────────── */

vault-new-item-nudge {
  display: none !important;
}

/* ── 14. Дисклеймер на странице входа ───────────────────────
   #vw-disclaimer в форме входа (не футер app-frontend-layout).
   Скрываем оригинальный текст через font-size:0 и
   подставляем новый через ::after.
   ────────────────────────────────────────────────────────── */

auth-anon-layout #vw-disclaimer,
bit-landing-layout #vw-disclaimer {
  font-size: 0 !important;
  color: transparent !important;
}

auth-anon-layout #vw-disclaimer::after,
bit-landing-layout #vw-disclaimer::after {
  content: "За доступы к проекту отвечает команда CleverUM, а также системные администраторы группы компаний. В случае, если вы забыли пароль — свяжитесь с системными администраторами для восстановления доступа.";
  display: block;
  font-size: 0.75rem;
  line-height: 1.4;
  color: initial;
  white-space: pre-line;
}

/* Вход через устройство на странице /login. */
auth-anon-layout div.tw-text-center:has(+ button .bwi-mobile),
auth-anon-layout div.tw-text-center:has(+ button bit-icon[name="bwi-mobile"]),
auth-anon-layout button:has(.bwi-mobile),
auth-anon-layout button:has(bit-icon[name="bwi-mobile"]),
bit-landing-layout div.tw-text-center:has(+ button .bwi-mobile),
bit-landing-layout div.tw-text-center:has(+ button bit-icon[name="bwi-mobile"]),
bit-landing-layout button:has(.bwi-mobile),
bit-landing-layout button:has(bit-icon[name="bwi-mobile"]) {
  display: none !important;
}

/* ── 14b. Копирайт в футере (brand.js) ───────────────────── */

.brand-footer-copyright {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.4;
  text-align: center;
  opacity: 0.85;
}

.brand-footer-copyright--vault {
  flex-shrink: 0;
  padding: 0.75rem 1.5rem 1rem;
  margin-top: 100px;
}

/* ── 15. Фильтр типов — скрыть «Ключ SSH» ───────────────────
   В дереве типов SSH — единственный пункт с иконкой bwi-key.
   ────────────────────────────────────────────────────────── */

app-vault-filter .filter-option:has(.bwi-key) {
  display: none !important;
}

bit-chip-list bit-chip:has(.bwi-key) {
  display: none !important;
}

[role="menu"] [role="menuitem"]:has(.bwi-key) {
  display: none !important;
}

/* ── 15b. Коллекции на широких экранах без ellipsis ─────────
   До 1399px оставляем штатное поведение Vaultwarden. Начиная
   с 1400px разрешаем перенос длинных названий коллекций.
   ────────────────────────────────────────────────────────── */

@media (min-width: 1400px) {
  app-vault-filter #collections-filters .filter-buttons {
    align-items: flex-start !important;
  }

  app-vault-filter #collections-filters .filter-button {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.25rem !important;
    height: auto !important;
    min-height: 1.75rem !important;
    min-width: 0 !important;
    overflow: visible !important;
    text-align: left !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.25rem !important;
  }

  app-vault-filter #collections-filters .filter-button .bwi {
    flex: 0 0 auto !important;
    margin-top: 0.125rem !important;
  }
}

/* ── 16. Пункт «Документация» (brand.js → bit-nav-group) ───── */

bit-nav-group.brand-doc-nav-group {
  display: block;
  margin-top: 0.25rem;
}

.brand-doc-nav-group__header {
  display: flex;
  width: 100%;
  align-items: center;
  padding: 0.5rem 1rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.65;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.brand-doc-nav-group__items {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding-bottom: 0.25rem;
}

bit-nav-group.brand-doc-nav-group:not([open]) .brand-doc-nav-group__items {
  display: none;
}

.brand-doc-nav-group__link {
  display: block;
  padding: 0.5rem 1rem 0.5rem 1.5rem;
  font-size: 0.875rem;
  text-decoration: none;
  color: inherit;
  border-radius: 4px;
  opacity: 0.9;
}

.brand-doc-nav-group__link:hover {
  background: var(--color-background-hover, rgba(255, 255, 255, 0.06));
  opacity: 1;
}

.theme_light .brand-doc-nav-group__link:hover {
  background: rgba(0, 0, 0, 0.04);
}
