/* ==========================================================================
   E-SULEKH ACCESSIBILITY (WCAG AA)
   Focus indicators, skip link, contrast fixes, disabled states.
   ========================================================================== */

/* -- Focus visible indicators (WCAG 2.4.7) -------------------------------- */
*:focus-visible {
    outline: 2px solid var(--es-primary) !important;
    outline-offset: 2px !important;
}

/* Remove default outline for mouse users */
*:focus:not(:focus-visible) {
    outline: none !important;
}

/* Stronger focus for form elements */
.form-control:focus-visible,
.form-select:focus-visible,
.btn:focus-visible {
    outline: 2px solid var(--es-primary) !important;
    outline-offset: 1px !important;
    box-shadow: 0 0 0 0.15rem var(--es-primary-soft) !important;
}

/* -- Skip to content link (WCAG 2.4.1) ----------------------------------- */
.skip-link {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 99999;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.skip-link:focus {
    position: fixed;
    top: 64px;
    left: 8px;
    width: auto;
    height: auto;
    padding: 12px 24px;
    background: var(--es-primary);
    color: #ffffff !important;
    border-radius: var(--es-radius);
    box-shadow: var(--es-shadow-lg);
}

/* -- Disabled states ------------------------------------------------------ */
.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    pointer-events: auto !important;
}

.form-control:disabled,
.form-select:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    background-color: var(--es-table-stripe) !important;
}

/* -- Screen reader only utility ------------------------------------------- */
.sr-only,
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* -- High contrast mode support ------------------------------------------- */
@media (forced-colors: active) {
    .btn { border: 1px solid ButtonText !important; }
    .form-control, .form-select { border: 1px solid ButtonText !important; }
    *:focus-visible { outline: 2px solid Highlight !important; }
    .es-navbar { border-bottom: 1px solid ButtonText; }
}
