/* Shared action controls: burgundy palette, compact sizing and keyboard focus. */
:root {
  --action-bg: #8b203f;
  --action-hover: #701832;
  --action-border: #d9a9b7;
  --action-soft: #fff1f4;
  --action-shadow: 0 2px 5px #70183218;
}
.dark { --action-border: #805266; --action-soft: #3d202b; }
:is(.ui-btn, .btn, .button-component, .ui-auth button[type=submit], .as-app button.bg-blue-600, .as-app button.bg-blue-700) {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.5rem; padding: .6rem 1rem; border: 1px solid transparent;
  border-radius: .625rem; font-size: .875rem; font-weight: 600; line-height: 1.25;
  text-decoration: none; text-align: center; white-space: normal; cursor: pointer;
  box-shadow: var(--action-shadow);
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body.as-app :is(.ui-btn, .btn, .button-component):hover { transform: none; }
:is(.ui-btn--primary, .ui-auth button[type=submit]),
body.as-app :is(.btn-primary, .button-component.btn-primary, button.bg-blue-600, button.bg-blue-700) {
  background: linear-gradient(135deg, #9a294a, #7a1935) !important; border-color: var(--action-bg) !important;
  color: #fff !important; box-shadow: var(--action-shadow) !important;
}
:is(.ui-btn--primary, .ui-auth button[type=submit]):hover,
body.as-app :is(.btn-primary, .button-component.btn-primary, button.bg-blue-600, button.bg-blue-700):hover {
  background: var(--action-hover) !important; border-color: var(--action-hover) !important;
  box-shadow: 0 3px 9px #70183230 !important; transform: none !important;
}
body.as-app :is(.ui-btn--outline, .btn-secondary, .btn-outline-primary, .btn-outline-secondary) {
  background: var(--as-surface, #fff) !important; color: var(--as-accent, #8b203f) !important;
  border-color: var(--action-border) !important; box-shadow: 0 1px 3px #7018320d !important;
}
body.as-app :is(.ui-btn--outline, .btn-secondary, .btn-outline-primary, .btn-outline-secondary):hover {
  background: var(--action-soft) !important; border-color: var(--as-accent, #8b203f) !important;
  transform: none !important;
}
body.as-app :is(.ui-btn--accent, .btn-info) { background: var(--action-soft); color: var(--as-accent); border-color: var(--action-border); }
body.as-app .ui-btn--ghost { background: transparent; color: var(--as-ink); border-color: transparent; box-shadow: none; }
body.as-app .ui-btn--ghost:hover { background: var(--action-soft); color: var(--as-accent); box-shadow: none; }
body.as-app :is(.ui-btn--danger, .btn-danger) { background: #fff1f2; border-color: #e9abb8; color: #a31936; }
body.as-app :is(.ui-btn--danger, .btn-danger):hover { background: #ffe1e7; border-color: #a31936; }
.dark body.as-app :is(.ui-btn--danger, .btn-danger) { background: #3d202b; border-color: #805266; color: #ffb3c1; }
body.as-app :is(.ui-btn--sm, .btn-sm) { min-height: 2.25rem; padding: .45rem .8rem; font-size: .8125rem; }
body.as-app .ui-btn--icon { width: 2.25rem; height: 2.25rem; min-width: 2.25rem; padding: 0; }
body.as-app .ui-btn--block { width: 100%; }
:is(.ui-btn, .btn, .button-component, .ui-topbar-icon, .ui-user-trigger, .as-tab, .sidebar-title):focus-visible {
  outline: 3px solid var(--as-accent, #8b203f); outline-offset: 3px;
  box-shadow: none;
}
:is(.ui-btn, .btn, .button-component):active { transform: none; box-shadow: none; }
:is(.ui-btn, .btn, .button-component):is(:disabled, [aria-disabled=true], .is-loading) {
  opacity: .55; cursor: not-allowed; box-shadow: none !important; transform: none !important;
}
body.as-app .ui-topbar-icon { border-radius: .625rem; box-shadow: 0 1px 3px #7018320d; }
body.as-app .ui-topbar-icon:hover { border-color: var(--action-border); }
body.as-app .ui-user-trigger { box-shadow: 0 1px 4px #70183218; }
body.as-app .as-tab { border-radius: .5rem .5rem 0 0; }
body.as-app .as-tab:hover { background: var(--action-soft); color: var(--as-accent); }
body.as-app .ui-toggle button[aria-pressed=true] { background: var(--action-bg); color: #fff; }
body.as-app .ui-actions { flex-wrap: wrap; }
@media (max-width: 639px) {
  body.as-app :is(.ui-btn, .btn, .button-component) { min-height: 2.75rem !important; }
  body.as-app .ui-btn--icon { width: 2.75rem; height: 2.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.ui-btn, .btn, .button-component) { transition: none; }
}
body.as-app :is(.ui-btn, .btn, .button-component, .ui-topbar-icon, .ui-user-trigger, .as-tab, .sidebar-title):focus-visible {
  outline: 3px solid var(--as-accent, #8b203f); outline-offset: 3px; box-shadow: none;
}
