/* Accessibility improvements */

/* Focus indicators for keyboard navigation */
a:focus, 
button:focus, 
input:focus, 
textarea:focus, 
select:focus {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

/* Skip to content link for screen readers */
.skip-to-main {
  position: absolute;
  left: -9999px;
  top: -9999px;
  z-index: 9999;
  background: #fff;
  padding: 15px;
  color: #000;
  text-decoration: none;
  border: 2px solid #0d6efd;
}

.skip-to-main:focus {
  left: 10px;
  top: 10px;
}

/* Form field labels and controls */
.form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
}

/* Improved form field focus styles */
.form-control:focus {
  border-color: #0d6efd;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* Ensure sufficient contrast for text */
.text-body-secondary {
  color: #555 !important; /* Darker than default to ensure contrast */
}

.small {
  color: #333 !important; /* Ensure small text has enough contrast */
}

/* Buttons with appropriate contrast */
.btn:focus {
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
}

/* Improved table accessibility */
table {
  border-collapse: collapse;
}

th {
  text-align: left;
}

/* Images with text alternatives */
img {
  max-width: 100%;
}

/* Hide elements visually but keep them available for screen readers */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}