/* Accessibility helpers for contrast and non-color cues */

/* High-visibility focus outlines for interactive controls */
button:focus, a:focus, input:focus, select:focus, textarea:focus, .btn:focus {
  outline: 3px solid #ffbf47; /* amber - stands out on light/dark */
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Ensure primary action has sufficient contrast (fallback override) */
.btn-main {
  color: #ffffff !important;
  /* don't override background if brand-specific, but ensure text is white for contrast */
}

/* Status label icons (non-color cues) */
.label .status-icon, .label > .status-icon {
  margin-right: 6px;
  font-weight: 700;
}

/* Specific icons for status types */
.label-success > .status-icon { color: #0b6623; } /* green icon */
.label-primary > .status-icon { color: #0b5ea3; } /* info icon color */
.label-orange > .status-icon, .label-warning > .status-icon { color: #b35800; } /* warning color */

/* Make labels more visually distinct (border + padding) */
.label {
  padding: 6px 8px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,0.08);
}

/* Alerts: ensure icon is shown and screen-reader friendly */
.alert.has-icon {
  position: relative;
  padding-left: 44px;
}
.alert.has-icon .alert-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
}

/* Ensure links remain distinguishable (underline on hover/focus) */
a:focus, a:hover {
  text-decoration: underline;
}

/* Make small badges accessible (add border to improve contrast) */
.badge, .badge-danger, .badge-success, .bg-danger, .bg-success {
  border: 1px solid rgba(0,0,0,0.08);
}

/* Utility visually-hidden for screen-reader-only text */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
