/* Финальный слой качества интерфейса. Он дополняет .bart-* компоненты,
   но не создаёт отдельную дизайн-систему. */

.bart-skip-target {
  min-width: 0;
  scroll-margin-top: 5rem;
}

.bart-skip-target:focus {
  outline: none;
}

/* Уважать пользовательское увеличение текста и не разрешать длинным
   техническим значениям расширять страницу. */
button,
a,
input,
select,
textarea {
  max-width: 100%;
}

.bart-btn,
.bart-icon-button,
.bart-nav-link,
.bart-input,
.bart-select,
.bart-textarea {
  touch-action: manipulation;
}

[aria-live] {
  overflow-wrap: anywhere;
}

@media (forced-colors: active) {
  .bart-btn,
  .bart-icon-button,
  .bart-nav-link,
  .bart-input,
  .bart-select,
  .bart-textarea {
    border: 1px solid ButtonText;
  }

  .bart-btn-primary,
  .bart-nav-link.is-active {
    forced-color-adjust: none;
    background: Highlight;
    color: HighlightText;
  }

  :focus-visible {
    outline: 3px solid Highlight;
    outline-offset: 3px;
  }
}

@media (max-width: 640px) {
  .bart-toast-stack {
    right: 0.75rem;
    left: 0.75rem;
    max-width: none;
  }
}

/* Служебный класс должен скрывать элемент даже при стилях компонентов. */
.hidden {
  display: none !important;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
