/* Accessibility CSS for high-contrast mode */

/* Root variables for high-contrast mode */
[data-high-contrast="true"] {
    --text-color: #ffffff;
    --background-color: #000000;
    --link-color: #ffff00;
    --visited-link-color: #ffcc00;
    --heading-color: #ffffff;
    --border-color: #ffffff;
    --button-bg: #0050ff;
    --button-text: #ffffff;
    --card-bg: #0c0c0c;
    --card-header-bg: #2b2b2b;
    --success-color: #00ff00;
    --warning-color: #ffff00;
    --danger-color: #ff0000;
    --info-color: #00ffff;
}

/* Base elements */
[data-high-contrast="true"] body,
[data-high-contrast="true"] .container,
[data-high-contrast="true"] main {
    background-color: var(--background-color);
    color: var(--text-color);
}

/* Typography */
[data-high-contrast="true"] h1,
[data-high-contrast="true"] h2,
[data-high-contrast="true"] h3,
[data-high-contrast="true"] h4,
[data-high-contrast="true"] h5,
[data-high-contrast="true"] h6 {
    color: var(--heading-color);
}

/* Links */
[data-high-contrast="true"] a {
    color: var(--link-color);
    text-decoration: underline;
}

[data-high-contrast="true"] a:visited {
    color: var(--visited-link-color);
}

[data-high-contrast="true"] a:hover,
[data-high-contrast="true"] a:focus {
    text-decoration: none;
    outline: 2px solid var(--link-color);
}

/* Buttons */
[data-high-contrast="true"] .btn,
[data-high-contrast="true"] button {
    background-color: var(--button-bg);
    color: var(--button-text);
    border: 2px solid var(--border-color);
}

[data-high-contrast="true"] .btn:hover,
[data-high-contrast="true"] button:hover,
[data-high-contrast="true"] .btn:focus,
[data-high-contrast="true"] button:focus {
    outline: 3px solid var(--link-color);
}

/* Navbar */
[data-high-contrast="true"] .navbar,
[data-high-contrast="true"] .navbar-dark {
    background-color: var(--card-header-bg) !important;
    border-bottom: 2px solid var(--border-color);
}

[data-high-contrast="true"] .navbar-brand,
[data-high-contrast="true"] .nav-link,
[data-high-contrast="true"] .navbar-text {
    color: var(--text-color) !important;
}

/* Card styles */
[data-high-contrast="true"] .card {
    background-color: var(--card-bg);
    border: 2px solid var(--border-color);
}

[data-high-contrast="true"] .card-header {
    background-color: var(--card-header-bg);
    color: var(--text-color);
    border-bottom: 2px solid var(--border-color);
}

[data-high-contrast="true"] .card-body {
    color: var(--text-color);
}

/* Forms */
[data-high-contrast="true"] .form-control,
[data-high-contrast="true"] .form-select {
    background-color: var(--background-color);
    color: var(--text-color);
    border: 2px solid var(--border-color);
}

[data-high-contrast="true"] .form-label {
    color: var(--text-color);
    font-weight: bold;
}

/* Tables */
[data-high-contrast="true"] .table {
    color: var(--text-color);
    border-color: var(--border-color);
}

[data-high-contrast="true"] .table th,
[data-high-contrast="true"] .table td {
    border: 2px solid var(--border-color);
}

/* Alerts */
[data-high-contrast="true"] .alert {
    border: 2px solid var(--border-color);
}

/* Progress bars */
[data-high-contrast="true"] .progress {
    background-color: var(--background-color);
    border: 2px solid var(--border-color);
}

/* Status colors with high-contrast alternatives */
[data-high-contrast="true"] .bg-success,
[data-high-contrast="true"] .table-success,
[data-high-contrast="true"] .alert-success,
[data-high-contrast="true"] .text-success {
    background-color: var(--background-color) !important;
    color: var(--success-color) !important;
    border-color: var(--success-color) !important;
}

[data-high-contrast="true"] .bg-warning,
[data-high-contrast="true"] .table-warning,
[data-high-contrast="true"] .alert-warning,
[data-high-contrast="true"] .text-warning {
    background-color: var(--background-color) !important;
    color: var(--warning-color) !important;
    border-color: var(--warning-color) !important;
}

[data-high-contrast="true"] .bg-danger,
[data-high-contrast="true"] .table-danger,
[data-high-contrast="true"] .alert-danger,
[data-high-contrast="true"] .text-danger {
    background-color: var(--background-color) !important;
    color: var(--danger-color) !important;
    border-color: var(--danger-color) !important;
}

[data-high-contrast="true"] .bg-info,
[data-high-contrast="true"] .table-info,
[data-high-contrast="true"] .alert-info,
[data-high-contrast="true"] .text-info {
    background-color: var(--background-color) !important;
    color: var(--info-color) !important;
    border-color: var(--info-color) !important;
}

/* Badge modifications */
[data-high-contrast="true"] .badge {
    border: 2px solid var(--border-color);
}

[data-high-contrast="true"] .badge.bg-success {
    background-color: var(--success-color) !important;
    color: var(--background-color) !important;
}

[data-high-contrast="true"] .badge.bg-warning {
    background-color: var(--warning-color) !important;
    color: var(--background-color) !important;
}

[data-high-contrast="true"] .badge.bg-danger {
    background-color: var(--danger-color) !important;
    color: var(--background-color) !important;
}

/* Footer */
[data-high-contrast="true"] .footer {
    background-color: var(--card-header-bg);
    border-top: 2px solid var(--border-color);
}

[data-high-contrast="true"] .footer .text-muted {
    color: var(--text-color) !important;
}

/* Increased focus visibility for keyboard navigation */
[data-high-contrast="true"] *:focus {
    outline: 3px solid var(--link-color) !important;
    outline-offset: 2px !important;
}

/* Accessibility toggle button */
.accessibility-toggle {
    display: inline-flex;
    align-items: center;
    margin-left: 10px;
    cursor: pointer;
}

.accessibility-toggle i {
    margin-right: 5px;
}

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

/* Improved font size for readability */
[data-high-contrast="true"] body {
    font-size: 16px;
    line-height: 1.6;
}

/* Increase spacing for better readability */
[data-high-contrast="true"] p,
[data-high-contrast="true"] li,
[data-high-contrast="true"] td,
[data-high-contrast="true"] th {
    line-height: 1.8;
}

/* Dropdown accessibility improvements */
[data-high-contrast="true"] .dropdown-menu {
    background-color: var(--card-bg);
    border: 2px solid var(--border-color);
}

[data-high-contrast="true"] .dropdown-item {
    color: var(--text-color);
}

[data-high-contrast="true"] .dropdown-item:hover,
[data-high-contrast="true"] .dropdown-item:focus {
    background-color: var(--button-bg);
    color: var(--button-text);
}

/* Return to top button - high contrast version */
[data-high-contrast="true"] #return-to-top {
    background: var(--button-bg);
    border: 3px solid var(--border-color);
    color: var(--button-text);
}