/* Screen reader only content - visually hidden but accessible */
.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;
}

/* Comprehensive focus indicators for WCAG 2.2 compliance */
*:focus {
    outline: .1em solid var(--focus, #005fcc);
    outline-offset: .1em;
}

.arrowSelect:focus,
.arrowButton:focus,
.setupButton:focus,
.nextButton:focus,
.floatButton:focus,
.tool:focus,
.toolLogo:focus {
    outline: .1em solid var(--focus, #005fcc);
    outline-offset: .1em;
}

/* Focus for interactive table elements */
.radioButton:focus,
input:focus,
select:focus,
button:focus {
    outline: .1em solid var(--focus, #005fcc);
    outline-offset: .1em;
}

/* When the sizer is on, lock focus indicators to viewport-based units (vmin)
   so they don't scale with the browser's font-size setting. */
html.sizer-on *:focus,
html.sizer-on .arrowSelect:focus,
html.sizer-on .arrowButton:focus,
html.sizer-on .setupButton:focus,
html.sizer-on .nextButton:focus,
html.sizer-on .floatButton:focus,
html.sizer-on .tool:focus,
html.sizer-on .toolLogo:focus,
html.sizer-on .radioButton:focus,
html.sizer-on input:focus,
html.sizer-on select:focus,
html.sizer-on button:focus,
html.sizer-on #sup1:focus,
html.sizer-on .supplementalLink:focus {
    outline: 0.2vmin solid var(--focus, #005fcc);
    outline-offset: 0.2vmin;
}

.arrowSelect {
    cursor: pointer;
}

/* Ensure buttons have pointer cursor */
[role="button"],
.arrowButton,
.setupButton,
.nextButton,
.floatButton {
    cursor: pointer;
}
