/* Standalone styles: shared by Bootstrap 4, Bootstrap 5 and standalone forms. */
#gh-a11y { --gh-blue: #2151a5; --gh-edge: max(16px, env(safe-area-inset-right)); color: #162d50; font: 14px/1.45 Arial, sans-serif; }
#gh-a11y *, #gh-a11y *::before, #gh-a11y *::after { box-sizing: border-box; }
#gh-a11y [hidden], #gh-a11y[hidden], .gh-a11y-alt-label[hidden] { display: none !important; }
#gh-a11y button { font: inherit; cursor: pointer; text-transform: none; letter-spacing: normal; }
#gh-a11y button:focus-visible, #gh-a11y input:focus-visible { outline: 3px solid #bf5700; outline-offset: 3px; }
#gh-a11y svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
#gh-a11y .gh-a11y-launcher { position: fixed; right: var(--gh-edge); bottom: max(18px, env(safe-area-inset-bottom)); width: 54px; height: 54px; display: grid; place-items: center; padding: 8px; border: 2px solid #fff; border-radius: 50%; background: #2151a5; color: #fff; box-shadow: 0 3px 14px #122f5b55; z-index: 100020; }
#gh-a11y .gh-a11y-launcher svg { width: 34px; height: 34px; stroke-width: 1.5; }
#gh-a11y .gh-a11y-launcher:hover { background: #143773; }
#gh-a11y .gh-a11y-panel { position: fixed; right: var(--gh-edge); bottom: max(84px, calc(env(safe-area-inset-bottom) + 78px)); width: 380px; max-width: calc(100vw - 32px); max-height: calc(100vh - 104px); max-height: calc(100dvh - 104px); display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #dce4ef; border-radius: 18px; box-shadow: 0 10px 40px #102c5040; text-align: left; z-index: 100020; }
#gh-a11y .gh-a11y-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 18px 18px 14px; border-bottom: 1px solid #e5ebf3; background: #f4f7fc; }
#gh-a11y .gh-a11y-brand { color: #2151a5; font-size: 10px; font-weight: 700; letter-spacing: 1.1px; }
#gh-a11y h2 { color: #162d50; font: bold 18px/1.4 Arial, sans-serif; margin: 3px 0 0; }
#gh-a11y .gh-a11y-close { flex-shrink: 0; width: 40px; height: 40px; border: 0; border-radius: 10px; background: #e7edf6; color: #162d50; font-size: 27px; line-height: 1; }
#gh-a11y .gh-a11y-scroll { overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 16px; scrollbar-width: thin; }
#gh-a11y .gh-a11y-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
#gh-a11y .gh-a11y-tool { min-height: 94px; min-width: 0; padding: 12px 5px 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; color: #263c59; text-align: center; box-shadow: 0 2px 4px #18335306; }
#gh-a11y .gh-a11y-tool span { font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
#gh-a11y .gh-a11y-tool:hover { border-color: #2151a5; background: #f4f7fc; }
#gh-a11y .gh-a11y-tool[aria-pressed="true"] { border-color: #2151a5; background: #eaf1ff; color: #123c80; box-shadow: inset 0 0 0 1px #2151a5; }
#gh-a11y .gh-a11y-level { min-height: 12px; font-size: 10px; line-height: 1.2; font-weight: 700; }
#gh-a11y .gh-a11y-reset { width: 100%; min-height: 42px; padding: 10px; border: 1px solid #c5d2e5; border-radius: 10px; background: #f0f4fa; color: #183e78; font-weight: 700; }
#gh-a11y .gh-a11y-note { margin: 12px 0 0; color: #52647b; font-size: 11px; line-height: 1.5; }
#gh-a11y .gh-a11y-status { color: #244b7b; font-size: 12px; margin: 12px 0; }
#gh-a11y .gh-a11y-status:empty { display: none; }
#gh-a11y .gh-a11y-position { margin: 14px 0; }
#gh-a11y .gh-a11y-position label { display: block; margin: 0 0 8px; font: 12px/1.4 Arial, sans-serif; }
#gh-a11y input[type="range"] { width: 100%; accent-color: #2151a5; }
#gh-a11y .gh-a11y-navigation { max-height: 220px; overflow-y: auto; margin: 12px 0; border: 1px solid #dce4ef; border-radius: 10px; }
#gh-a11y .gh-a11y-navigation button { display: block; width: 100%; padding: 10px; border: 0; border-bottom: 1px solid #e5ebf3; text-align: left; background: #fff; color: #183e78; overflow-wrap: anywhere; }
#gh-a11y .gh-a11y-navigation button:hover { background: #eaf1ff; }
#gh-a11y .gh-a11y-warm { position: fixed; inset: 0; background: #ffb347; opacity: .13; pointer-events: none; z-index: 100010; }
#gh-a11y .gh-a11y-mask { position: fixed; left: 0; right: 0; background: #06152b99; pointer-events: none; z-index: 100011; }
#gh-a11y .gh-a11y-mask-top { top: 0; }
#gh-a11y .gh-a11y-mask-bottom { bottom: 0; }
#gh-a11y .gh-a11y-ruler { position: fixed; left: 0; width: 100%; height: 7px; background: #ffcf43; border: 1px solid #664a00; box-shadow: 0 0 0 1px #fff; pointer-events: none; z-index: 100012; }
#gh-a11y .gh-a11y-lens { position: fixed; width: 320px; max-width: calc(100vw - 24px); max-height: min(260px, 45vh); overflow: hidden; padding: 14px; color: #162d50; background: #fff; border: 2px solid #2151a5; border-radius: 12px; box-shadow: 0 4px 18px #102c5040; font: 24px/1.6 Arial, sans-serif; overflow-wrap: anywhere; pointer-events: none; z-index: 100013; }
#gh-a11y .gh-a11y-lens img { width: 100%; max-height: 220px; object-fit: contain; }
html.gh-a11y-ready body .back-to-top {
    box-sizing: border-box; width: 54px; height: 54px; padding: 0;
    right: max(16px, env(safe-area-inset-right));
    bottom: calc(max(18px, env(safe-area-inset-bottom)) + 62px);
}
.gh-a11y-alt-label { display: block; width: fit-content; max-width: 100%; margin: 4px 0; padding: 4px 8px; border: 1px solid #b9cbe4; border-radius: 4px; background: #fff8d9; color: #273a54; font: 13px/1.5 Arial, sans-serif; overflow-wrap: anywhere; }
/* Do not filter/transform body: that changes fixed positioning and Bootstrap modals. */
html[data-gh-a11y-theme] {
    color-scheme: dark;
    --gh-a11y-bg: #152235; --gh-a11y-fg: #f4f7fb; --gh-a11y-link: #a9d4ff;
    --gh-a11y-control: #0f1b2c; --gh-a11y-border: #91aac8; --gh-a11y-muted: #bfcee1;
    --gh-a11y-action: #254e80; --gh-a11y-action-fg: #fff; --gh-a11y-action-border: #accbf0;
    --gh-a11y-hover: #35679e; --gh-a11y-hover-fg: #fff; --gh-a11y-focus: #ffda85;
    --gh-a11y-danger: #ffbac4; --gh-a11y-success: #a6e9bd; --gh-a11y-warning: #ffe09c;
}
html[data-gh-a11y-theme="contrast"] {
    --gh-a11y-bg: #000; --gh-a11y-fg: #fff; --gh-a11y-link: #ffed70;
    --gh-a11y-control: #080808; --gh-a11y-border: #fff; --gh-a11y-muted: #ddd;
    --gh-a11y-action: #171717; --gh-a11y-action-fg: #ffed70; --gh-a11y-action-border: #fff;
    --gh-a11y-hover: #ffed70; --gh-a11y-hover-fg: #000; --gh-a11y-focus: #70e5ff;
}
/* Paint surfaces, not every label/span/link. Inline backgrounds otherwise obscure
   floating labels, button contents and status colours. Preserve existing geometry. */
html[data-gh-a11y-theme] body,
html[data-gh-a11y-theme] body :where(header, footer, nav, main, section, article, aside, div, table, thead, tbody, tr, td, th, ul, ol, li, form, fieldset, blockquote):not([data-gh-a11y-ui], [data-gh-a11y-ui] *) {
    background-color: var(--gh-a11y-bg) !important; color: var(--gh-a11y-fg) !important; border-color: var(--gh-a11y-border) !important;
}
html[data-gh-a11y-theme] body :where(p, h1, h2, h3, h4, h5, h6, label, span, small, strong, em, legend, i):not([data-gh-a11y-ui], [data-gh-a11y-ui] *) { color: var(--gh-a11y-fg) !important; }
html[data-gh-a11y-theme] body a:not([data-gh-a11y-ui] *) { color: var(--gh-a11y-link) !important; }
html[data-gh-a11y-theme] body :where(.online-item, .custom_dropdown-item, .dropdown-item, .list-group-item, .accordion-button):not([data-gh-a11y-ui] *) { background-color: var(--gh-a11y-bg) !important; color: var(--gh-a11y-fg) !important; }
html[data-gh-a11y-theme] body :where(.online-panel, .custom_dropdown-menu, .dropdown-menu, .modal-content, .accordion-item):not([data-gh-a11y-ui] *) { border-color: var(--gh-a11y-border) !important; }
/* Buttons retain a visible boundary even when the original template uses border-0. */
html[data-gh-a11y-theme] body :is(button, .btn, .page-link, [role="button"], [type="button"], [type="submit"], [type="reset"], .online-trigger):not(.btn-close, .close, .btn-link, .accordion-button, [data-gh-a11y-ui], [data-gh-a11y-ui] *) {
    background-color: var(--gh-a11y-action) !important; color: var(--gh-a11y-action-fg) !important;
    border: 1px solid var(--gh-a11y-action-border) !important;
}
html[data-gh-a11y-theme] body :is(button, .btn, .page-link, [role="button"], .online-trigger):not(.btn-close, .close, .btn-link, .accordion-button, [data-gh-a11y-ui], [data-gh-a11y-ui] *):where(:hover, :active, [aria-expanded="true"], .active):not(:disabled, .disabled, [aria-disabled="true"]) {
    background-color: var(--gh-a11y-hover) !important; color: var(--gh-a11y-hover-fg) !important;
}
html[data-gh-a11y-theme] body :is(.online-item, .custom_dropdown-item, .custom_dropdown-toggle, .dropdown-item, .nav-link, .list-group-item, .accordion-button):not([data-gh-a11y-ui] *):where(:hover, :focus-visible, .active, [aria-selected="true"]) {
    background-color: var(--gh-a11y-hover) !important; color: var(--gh-a11y-hover-fg) !important;
}
html[data-gh-a11y-theme] body :where(button, .btn, [role="button"], .online-item, .custom_dropdown-item, .custom_dropdown-toggle, .dropdown-item, .nav-link, .list-group-item, .accordion-button):not([data-gh-a11y-ui], [data-gh-a11y-ui] *) :where(span, i, div, small, strong) {
    background-color: transparent !important; color: inherit !important;
}
html[data-gh-a11y-theme] body :where(.btn-danger, button.text-danger):not([data-gh-a11y-ui] *) { --gh-a11y-action: #652a39; --gh-a11y-action-fg: #fff; --gh-a11y-action-border: #ffbac4; --gh-a11y-hover: #83384b; --gh-a11y-hover-fg: #fff; }
html[data-gh-a11y-theme] body .btn-success:not([data-gh-a11y-ui] *) { --gh-a11y-action: #174d37; --gh-a11y-action-fg: #fff; --gh-a11y-action-border: #a6e9bd; --gh-a11y-hover: #246649; --gh-a11y-hover-fg: #fff; }
html[data-gh-a11y-theme] body .btn-warning:not([data-gh-a11y-ui] *) { --gh-a11y-action: #594212; --gh-a11y-action-fg: #fff; --gh-a11y-action-border: #ffe09c; --gh-a11y-hover: #77591c; --gh-a11y-hover-fg: #fff; }
html[data-gh-a11y-theme] body :is(button, .btn, input):not([data-gh-a11y-ui] *):where(:disabled, .disabled, [aria-disabled="true"]) {
    background-color: var(--gh-a11y-bg) !important; color: var(--gh-a11y-muted) !important;
    border-color: var(--gh-a11y-border) !important; border-style: dashed !important; opacity: .65;
}
html[data-gh-a11y-theme] body :where(a, button, input, select, textarea, [tabindex]):not([data-gh-a11y-ui] *):focus-visible { outline: 3px solid var(--gh-a11y-focus) !important; outline-offset: 3px; }
html[data-gh-a11y-theme] body :where(.btn-link, .close):not([data-gh-a11y-ui] *) { background-color: transparent !important; color: var(--gh-a11y-link) !important; }
html[data-gh-a11y-theme] body .btn-close:not([data-gh-a11y-ui] *) { filter: invert(1) grayscale(1) brightness(2); }
html[data-gh-a11y-theme] body :where(input, select, textarea, .form-control, .form-select, .input-group-text):not([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="button"], [type="submit"], [type="reset"], [data-gh-a11y-ui] *) {
    background-color: var(--gh-a11y-control) !important; color: var(--gh-a11y-fg) !important; border: 1px solid var(--gh-a11y-border) !important;
}
html[data-gh-a11y-theme] body :where(input, textarea):not([data-gh-a11y-ui] *)::placeholder { color: var(--gh-a11y-muted) !important; opacity: 1; }
/* Bootstrap floating labels use the placeholder only for :placeholder-shown.
   Keep it invisible in empty, focused and filled states; do not override transforms. */
html[data-gh-a11y-theme] body .form-floating > :where(input, textarea)::placeholder { color: transparent !important; opacity: 0 !important; }
html[data-gh-a11y-theme] body .form-floating > label { background-color: transparent !important; border-color: transparent !important; color: var(--gh-a11y-muted) !important; }
html[data-gh-a11y-theme] body :where(select, option):not([data-gh-a11y-ui] *) { background-color: var(--gh-a11y-control) !important; color: var(--gh-a11y-fg) !important; }
html[data-gh-a11y-theme] body :where(.form-select, .custom-select):not([data-gh-a11y-ui] *) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23dce9fa' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m3 6 5 5 5-5'/%3E%3C/svg%3E") !important; }
html[data-gh-a11y-theme] body :where(input, select, textarea):not([data-gh-a11y-ui] *):where(:disabled, [readonly]) { color: var(--gh-a11y-muted) !important; border-style: dashed !important; }
html[data-gh-a11y-theme] body :where(input[type="checkbox"], input[type="radio"]):not([data-gh-a11y-ui] *) { accent-color: #477bba; border-color: var(--gh-a11y-border) !important; }
html[data-gh-a11y-theme] body .form-check-input:not([data-gh-a11y-ui] *):not(:checked) { background-color: var(--gh-a11y-control) !important; }
html[data-gh-a11y-theme] body .form-check-input:checked:not([data-gh-a11y-ui] *) { background-color: #326db4 !important; }
html[data-gh-a11y-theme] body :where(.text-danger, .error-message, .invalid-feedback, .field-validation-error, .validation-summary-errors, [style*="color: red"], [style*="color:red"]):not([data-gh-a11y-ui] *) { color: var(--gh-a11y-danger) !important; }
html[data-gh-a11y-theme] body :where(.text-success, .valid-feedback):not([data-gh-a11y-ui] *) { color: var(--gh-a11y-success) !important; }
html[data-gh-a11y-theme] body .text-warning:not([data-gh-a11y-ui] *) { color: var(--gh-a11y-warning) !important; }
html[data-gh-a11y-theme] body :where(.is-invalid, .input-validation-error, [aria-invalid="true"]):not([data-gh-a11y-ui] *) { border-color: var(--gh-a11y-danger) !important; }
html[data-gh-a11y-theme] body :where(.alert-danger, .alert-success, .alert-warning, .alert-info):not([data-gh-a11y-ui] *) { background-color: var(--gh-a11y-control) !important; color: var(--gh-a11y-fg) !important; }
html[data-gh-a11y-theme] body .alert-danger { border-color: var(--gh-a11y-danger) !important; color: var(--gh-a11y-danger) !important; }
html[data-gh-a11y-theme] body .alert-success { border-color: var(--gh-a11y-success) !important; color: var(--gh-a11y-success) !important; }
html[data-gh-a11y-theme] body .alert-warning { border-color: var(--gh-a11y-warning) !important; color: var(--gh-a11y-warning) !important; }
html[data-gh-a11y-theme] body :where(.alert, .error-message, .field-validation-error) :where(span, strong, small, p):not([data-gh-a11y-ui] *) { background-color: transparent !important; color: inherit !important; }
html[data-gh-a11y-theme] body :where(.table, .result-table) { color: var(--gh-a11y-fg); --bs-table-bg: var(--gh-a11y-bg); --bs-table-striped-color: var(--gh-a11y-fg); --bs-table-hover-color: var(--gh-a11y-fg); --bs-table-accent-bg: transparent; }
html[data-gh-a11y-theme] body :where(.table, .result-table) tr:hover > :where(td, th) { background-color: var(--gh-a11y-control) !important; }
html[data-gh-a11y-theme] body .page-item.active > .page-link { background-color: var(--gh-a11y-hover) !important; color: var(--gh-a11y-hover-fg) !important; }
html[data-gh-a11y-theme] body .page-item.disabled > .page-link { background-color: var(--gh-a11y-bg) !important; color: var(--gh-a11y-muted) !important; }
html[data-gh-a11y-theme] body :where(.modal-backdrop, .popup-overlay, .online-overlay):not([data-gh-a11y-ui] *) { background-color: #0009 !important; }
html.gh-a11y-font body :where(p, div, span, a, li, td, th, label, input, select, textarea, button, h1, h2, h3, h4, h5, h6):not([data-gh-a11y-ui], [data-gh-a11y-ui] *, i, [class*="fa-"], [class*="bi-"]) { font-family: Verdana, Arial, sans-serif !important; }
html.gh-a11y-line body :where(p, li, td, th, label, input, select, textarea, h1, h2, h3, h4, h5, h6):not([data-gh-a11y-ui], [data-gh-a11y-ui] *) { line-height: var(--gh-a11y-line) !important; }
html.gh-a11y-spacing body :where(p, a, span, li, td, th, label, input, select, textarea, button, h1, h2, h3, h4, h5, h6):not([data-gh-a11y-ui], [data-gh-a11y-ui] *, i, [class*="fa-"], [class*="bi-"]) { letter-spacing: var(--gh-a11y-spacing) !important; }
html.gh-a11y-align body :where(p, h1, h2, h3, h4, h5, h6, blockquote):not([data-gh-a11y-ui], [data-gh-a11y-ui] *) { text-align: var(--gh-a11y-align) !important; }
html.gh-a11y-links body a[href]:not([data-gh-a11y-ui] *) { outline: 2px solid #b35400 !important; outline-offset: 2px; text-decoration: underline !important; text-decoration-thickness: 2px !important; }
html.gh-a11y-headings body :where(h1, h2, h3, h4, h5, h6):not([data-gh-a11y-ui] *) { outline: 2px dashed #2151a5; outline-offset: 3px; }
html.gh-a11y-sized body .form-floating > :where(.form-control, .form-select),
html.gh-a11y-line body .form-floating > :where(.form-control, .form-select),
html.gh-a11y-spacing body .form-floating > :where(.form-control, .form-select) { height: auto; min-height: 4.5em; padding-top: 2.2em; padding-bottom: .5em; }
html.gh-a11y-sized body :where(input:not([type="checkbox"], [type="radio"], [type="hidden"]), select, textarea, button):not([data-gh-a11y-ui] *) { max-width: 100%; }
html.gh-a11y-sized body .form-floating > label { white-space: normal; height: auto; max-width: 100%; }
@media (max-width: 359px) { #gh-a11y .gh-a11y-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-height: 480px) { #gh-a11y .gh-a11y-header { padding: 8px 14px; } #gh-a11y .gh-a11y-panel { bottom: 76px; max-height: calc(100dvh - 88px); } }
@media print { #gh-a11y, .gh-a11y-alt-label { display: none !important; } }
