/* Accessibility Styles */

/* Focus styles */
:focus {
    outline: 3px solid #4A90E2;
    outline-offset: 2px;
}

/* Ensure touch targets are large enough */
button,
.btn,
.navbar-toggle,
a {
    min-width: 48px;
    min-height: 48px;
    padding: 12px;
}

/* Ensure links are not distinguished by color alone */
a {
    text-decoration: underline;
}

.navbar-nav > li > a {
    text-decoration: none;
    border-bottom: 2px solid transparent;
}

.navbar-nav > li > a:hover,
.navbar-nav > li > a:focus {
    border-bottom-color: currentColor;
}

/* High contrast mode support */
@media (forced-colors: active) {
    a {
        text-decoration: underline !important;
    }
    
    button,
    .btn {
        border: 2px solid currentColor !important;
    }
}

/* Skip to main content link */
.skip-link {
    position: absolute;
    top: -100%;
    left: 50%;
    transform: translateX(-50%);
    background: #00327d;
    color: white;
    padding: 8px 16px;
    z-index: 9999;
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.3s ease-in-out, top 0.3s ease-in-out;
}

.skip-link:focus {
    top: 0;
    opacity: 1;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 50, 125, 0.5);
}

.skip-link:hover {
    background: #34495E;
    color: white;
    text-decoration: none;
}

/* Ensure sufficient color contrast */
.navbar-brand,
.btn,
a {
    color: #2C3E50;
}

.navbar {
    background-color: #FFFFFF;
}

/* Ensure form controls have sufficient contrast */
input,
textarea,
select {
    border: 2px solid #2C3E50;
}

/* Ensure error states are not color-dependent */
.error {
    border: 2px solid #E74C3C;
    padding: 8px;
    position: relative;
}

.error::before {
    content: "⚠";
    position: absolute;
    left: -24px;
} 