/* Sloika 3D — общая визуальная обратная связь интерактивных элементов. */
:where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle) {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease,
    box-shadow .16s ease, filter .16s ease, transform .12s ease, opacity .16s ease;
}
:where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle):not(:disabled):not([disabled]):not([aria-disabled="true"]):not([aria-busy="true"]):hover {
  filter: brightness(1.045);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .11);
}
:where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle):not(:disabled):not([disabled]):not([aria-disabled="true"]):not([aria-busy="true"]):active {
  filter: brightness(.97);
  transform: translateY(1px) scale(.99);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .10);
}
:where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle):focus-visible,
:where(a.btn, a.button, a.shop-btn, a.admin-btn, a.action-button, .shop-link-account, .shop-link-cart):focus-visible {
  outline: 3px solid rgba(156, 255, 59, .82);
  outline-offset: 3px;
}
:where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle):is(:disabled, [disabled], [aria-disabled="true"]) {
  cursor: not-allowed;
  opacity: .58;
  filter: saturate(.7);
  box-shadow: none;
  transform: none;
}
:where(button, input[type="submit"], [role="button"], .btn, .button, .shop-btn)[aria-busy="true"] {
  cursor: progress;
}
/* Ссылки, оформленные как действия, остаются ссылками — их навигация не меняется. */
:where(a.btn, a.button, a.shop-btn, a.admin-btn, a.action-button, .shop-link-account, .shop-link-cart) {
  -webkit-tap-highlight-color: transparent;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease, filter .16s ease;
}
:where(a.btn, a.button, a.shop-btn, a.admin-btn, a.action-button, .shop-link-account, .shop-link-cart):hover {
  filter: brightness(1.035);
}
@media (prefers-reduced-motion: reduce) {
  :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .btn, .button, .shop-btn, .shop-view-btn, .shop-reset, .menu-toggle, a.btn, a.button, a.shop-btn, a.admin-btn, a.action-button, .shop-link-account, .shop-link-cart) {
    transition: none !important;
  }
}
