﻿.party-chip--interactive:hover,
.party-chip--interactive:focus-visible,
.location-chip--interactive:hover,
.location-chip--interactive:focus-visible,
.user-chip--interactive:hover,
.user-chip--interactive:focus-visible,
.role-chip--interactive:hover,
.role-chip--interactive:focus-visible,
.jurisdiction-badge--interactive:hover,
.jurisdiction-badge--interactive:focus-visible {
  border-color: var(--accent) !important;
}

.role-chip--interactive:hover,
.role-chip--interactive:focus-visible {
  background: var(--accent-bg);
}

.omnis-icon-btn--muted:hover:not(:disabled),
.omnis-icon-btn--muted:focus-visible:not(:disabled) {
  color: var(--text) !important;
}

.omnis-icon-btn--danger:hover:not(:disabled),
.omnis-icon-btn--danger:focus-visible:not(:disabled) {
  color: var(--state-blocked-text) !important;
}

.omnis-icon-btn--cta:hover:not(:disabled),
.omnis-icon-btn--cta:focus-visible:not(:disabled) {
  background: var(--accent-hover) !important;
  color: var(--on-accent) !important;
}

/* ---- Animation keyframes for feedback components --------------------- */

@keyframes omnis-spin {
  to { transform: rotate(360deg); }
}

@keyframes omnis-shimmer {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* ---- Focus-visible indicators for custom-styled inputs ---------------- */

.omnis-check-input:focus-visible + .omnis-check-indicator {
  box-shadow: var(--focus-ring-shadow) !important;
}

.omnis-check-input:disabled + .omnis-check-indicator {
  opacity: 0.5;
}

.omnis-radio-input:focus-visible + .omnis-radio-indicator {
  box-shadow: var(--focus-ring-shadow) !important;
}

.omnis-radio-input:disabled + .omnis-radio-indicator {
  opacity: 0.5;
}

label:has(> .omnis-file-input:focus-visible) {
  outline: 2px solid var(--focus-ring);
  outline-offset: 1px;
}
