/* WCAG 2.1 AA — accessibility overrides for the admin UI.
 *
 * Coverage:
 *  - 4.5:1 contrast ratio everywhere
 *  - Visible keyboard focus (3:1 against background)
 *  - Touch targets >= 44x44 px
 *  - Skip-link for screen readers
 *  - Reduced-motion media query
 *  - Print-friendly inheritance
 */

:root {
    --dss-primary:    #0f172a;
    --dss-secondary:  #475569;
    --dss-text:       #0f172a;
    --dss-text-muted: #334155;
    --dss-bg:         #ffffff;
    --dss-bg-alt:     #f8fafc;
    --dss-border:     #cbd5e1;
    --dss-error:      #b91c1c;
    --dss-success:    #15803d;
    --dss-warning:    #b45309;
    --dss-focus:      #2563eb;
}

/* Focus ring — high-contrast, never invisible */
:focus-visible {
    outline: 3px solid var(--dss-focus);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Touch targets */
.btn, button, input, select, textarea, a.nav-link {
    min-height: 44px;
}

/* Skip link */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--dss-primary);
    color: #fff;
    padding: 8px 16px;
    z-index: 9999;
}
.skip-link:focus { top: 0; }

/* Form field error association */
.form-control[aria-invalid="true"] {
    border-color: var(--dss-error);
}
.invalid-feedback {
    display: block;
    color: var(--dss-error);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Print stylesheet */
@media print {
    nav, .no-print, button[type="submit"], .btn { display: none !important; }
    body { background: #fff !important; color: #000 !important; }
    a::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #555; }
    .card { break-inside: avoid; }
    table { page-break-inside: auto; }
    tr    { page-break-inside: avoid; page-break-after: auto; }
}

/* High-contrast tables */
.table-a11y {
    border-collapse: collapse;
}
.table-a11y th, .table-a11y td {
    border: 1px solid var(--dss-border);
    padding: 0.5rem 0.75rem;
}
.table-a11y th {
    background: var(--dss-bg-alt);
    font-weight: 600;
    text-align: left;
}
