/* Basic variables (using :root is sufficient) */
:root {
  /*
  --a11y-font-color: #000000;
  --a11y-btn-bg: #fff;
  --a11y-btn-fg: #000000;
  --a11y-btn-border: #757575;
  */
  --a11y-font-color: #000000;
  --a11y-btn-bg: #032D51;
  --a11y-btn-fg: #ffffff;
  --a11y-btn-border: #032D51;

  --a11y-btn-outline-focus: #032D51;
  --a11y-element-outline-focus: #032D51; 
  --a11y-tbl-outline-focus: #032D51;
  --a11y-tbl-arrow: #e9ecef;
  --a11y-tbl-filter-disabled: #e9ecef;

  --a11y-high-contrast-outline-focus: #0000ff; 
  --a11y-high-contrast-color: #000000;
  --a11y-high-contrast-background: #ffffff;
}

/* Only visible to screen readers, visually hidden */
.a11y-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 1px, 0) !important; /* robust for older browsers */
  white-space: nowrap !important;
  border: 0 !important;
}

/* ----------------------------------------------- */
/* a11y_actionButton                               */
/* ----------------------------------------------- */

/* a11y_actionButton: Standard state */
button.btn.a11y-btn.a11y-btn,
a.btn.a11y-btn.a11y-btn,
.btn.a11y-btn.a11y-btn {
  background-color: var(--a11y-btn-bg);
  color: var(--a11y-btn-fg);
  border: 1px solid var(--a11y-btn-border);
  border-radius: 4px;
}

/* a11y_actionButton: Hover/Focus */
button.btn.a11y-btn.a11y-btn:hover,
a.btn.a11y-btn.a11y-btn:hover,
.btn.a11y-btn.a11y-btn:hover,
button.btn.a11y-btn.a11y-btn:focus,
a.btn.a11y-btn.a11y-btn:focus,
.btn.a11y-btn.a11y-btn:focus,
button.btn.a11y-btn.a11y-btn:focus-visible,
a.btn.a11y-btn.a11y-btn:focus-visible,
.btn.a11y-btn.a11y-btn:focus-visible {
  outline: 3px solid var(--a11y-btn-outline-focus);
  outline-offset: 2px;
  border-color: var(--a11y-btn-outline-focus);
  background-color: var(--a11y-btn-bg);
  color: var(--a11y-btn-fg);
}

/* a11y_actionButton: Separate active styling for click feedback */
button.btn.a11y-btn.a11y-btn:active,
a.btn.a11y-btn.a11y-btn:active,
.btn.a11y-btn.a11y-btn:active {
  outline: none;
  outline-offset: none;
}

/* a11y_actionButton: Disabled */
button.btn.a11y-btn.a11y-btn:disabled,
a.btn.a11y-btn.a11y-btn:disabled,
.btn.a11y-btn.a11y-btn:disabled,
button.btn.a11y-btn.a11y-btn[aria-disabled="true"],
a.btn.a11y-btn.a11y-btn[aria-disabled="true"],
.btn.a11y-btn.a11y-btn[aria-disabled="true"] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ----------------------------------------------- */
/* a11y_selectInput                                */
/* ----------------------------------------------- */

/* Label visually like heading, semantics via role/aria-level */
.a11y-select label.control-label.a11y-heading-1 { 
  font-size: 1.75rem; 
  font-weight: 700; 
}
.a11y-select label.control-label.a11y-heading-2 { 
  font-size: 1.5rem; 
  font-weight: 700; 
}
.a11y-select label.control-label.a11y-heading-3 { 
  font-size: 1.25rem; 
  font-weight: 700; 
}

/* Focus styling for the Selectize input/native select */
.a11y-select .selectize-control.single .selectize-input.focus,
.a11y-select .selectize-control.single .selectize-input:hover,
.a11y-select select:focus {
  border: 1px solid var(--a11y-element-outline-focus);
  box-shadow: none;
  outline: 3px solid var(--a11y-element-outline-focus); 
  outline-offset: 2px;
}

/* Dropdown menus - style of selected/focused list items */
.a11y-select .selectize-dropdown .active:not(.selected),     
.a11y-select .selectize-dropdown .active{                   
  border: 3px solid var(--a11y-element-outline-focus);
}

/* ----------------------------------------------- */
/* a11y_numericInput                               */
/* ----------------------------------------------- */

/* numericInput Fokus-Styling: schwarze 1px-Umrandung */
.form-group.shiny-input-container.a11y-numeric input.form-control:focus,
.form-group.shiny-input-container.a11y-numeric input[type="number"]:focus,
.a11y-numeric .form-control:focus,
.a11y-numeric input[type="number"]:focus,
.form-group.shiny-input-container.a11y-numeric input.form-control:hover,
.form-group.shiny-input-container.a11y-numeric input[type="number"]:hover,
.a11y-numeric .form-control:hover,
.a11y-numeric input[type="number"]:hover {
  border: 1px solid var(--a11y-element-outline-focus);
  box-shadow: none;
  outline: 3px solid var(--a11y-element-outline-focus);
  outline-offset: 2px;
}

/* Standard state (without focus) */
.form-group.shiny-input-container.a11y-numeric input.form-control,
.a11y-numeric input[type="number"] {
  border-width: 1px;
  border-style: solid;
}

/* Disabled fields: don't force focus mark */
.form-group.shiny-input-container.a11y-numeric input.form-control:disabled:focus,
.a11y-numeric input[type="number"]:disabled:focus {
  outline: none;
  box-shadow: none;
}

/* ----------------------------------------------- */
/* a11y_textInput                                  */
/* ----------------------------------------------- */

/* Label visually like heading, semantics via role/aria-level */
.a11y-text label.control-label.a11y-heading-1 { 
  font-size: 1.75rem; 
  font-weight: 700; 
}
.a11y-text label.control-label.a11y-heading-2 { 
  font-size: 1.5rem; 
  font-weight: 700; 
}
.a11y-text label.control-label.a11y-heading-3 { 
  font-size: 1.25rem; 
  font-weight: 700; 
}

/* Focus/hover styling for text fields (analogous to numericInput) */
.form-group.shiny-input-container.a11y-text input.form-control:focus,
.form-group.shiny-input-container.a11y-text input[type="text"]:focus,
.a11y-text .form-control:focus,
.a11y-text input[type="text"]:focus,
.form-group.shiny-input-container.a11y-text input.form-control:hover,
.form-group.shiny-input-container.a11y-text input[type="text"]:hover,
.a11y-text .form-control:hover,
.a11y-text input[type="text"]:hover {
  border: 1px solid var(--a11y-element-outline-focus);
  box-shadow: none;
  outline: 3px solid var(--a11y-element-outline-focus);
  outline-offset: 2px;
}

/* Default state (without focus) */
.form-group.shiny-input-container.a11y-text input.form-control,
.a11y-text input[type="text"] {
  border-width: 1px;
  border-style: solid;
}

/* Disabled fields: don't force focus mark */
.form-group.shiny-input-container.a11y-text input.form-control:disabled:focus,
.a11y-text input[type="text"]:disabled:focus {
  outline: none;
  box-shadow: none;
}

/* ----------------------------------------------- */
/* a11y_radioButtons                               */
/* ----------------------------------------------- */

/* Label visually like heading, semantics via role/aria-level */
.a11y-radio label.control-label.a11y-heading-1 { 
  font-size: 1.75rem; 
  font-weight: 700; 
}
.a11y-radio label.control-label.a11y-heading-2 { 
  font-size: 1.5rem; 
  font-weight: 700; 
}
.a11y-radio label.control-label.a11y-heading-3 { 
  font-size: 1.25rem; 
  font-weight: 700; 
}

/* Focus/hover styling for radio buttons */
.form-group.shiny-input-radiogroup.shiny-input-container.a11y-radio input[type="radio"]:focus,
.a11y-radio input[type="radio"]:focus,
.form-group.shiny-input-radiogroup.shiny-input-container.a11y-radio input[type="radio"]:focus-visible,
.a11y-radio input[type="radio"]:focus-visible,
.form-group.shiny-input-radiogroup.shiny-input-container.a11y-radio input[type="radio"]:hover,
.a11y-radio input[type="radio"]:hover {
  outline: 3px solid var(--a11y-element-outline-focus);
  outline-offset: 2px;
}

/* Disabled radio buttons: don't force focus mark */
.form-group.shiny-input-radiogroup.shiny-input-container.a11y-radio input[type="radio"]:disabled:focus,
.a11y-radio input[type="radio"]:disabled:focus {
  outline: none;
}

/* ----------------------------------------------- */
/* a11y_dateInput                                  */
/* ----------------------------------------------- */

/* Label visually like heading, semantics via role/aria-level */
.a11y-date label.control-label.a11y-heading-1 { 
  font-size: 1.75rem; 
  font-weight: 700; 
}
.a11y-date label.control-label.a11y-heading-2 { 
  font-size: 1.5rem; 
  font-weight: 700; 
}
.a11y-date label.control-label.a11y-heading-3 { 
  font-size: 1.25rem; 
  font-weight: 700; 
}

/* Focus/hover styling for dateInput (analogous to numeric/text) */
.form-group.shiny-input-container.a11y-date input.form-control:focus,
.form-group.shiny-input-container.a11y-date input[type="text"]:focus,
.a11y-date .form-control:focus,
.a11y-date input[type="text"]:focus,
.form-group.shiny-input-container.a11y-date input.form-control:hover,
.form-group.shiny-input-container.a11y-date input[type="text"]:hover,
.a11y-date .form-control:hover,
.a11y-date input[type="text"]:hover {
  border: 1px solid var(--a11y-element-outline-focus);
  box-shadow: none;
  outline: 3px solid var(--a11y-element-outline-focus);
  outline-offset: 2px;
}

/* Default state (without focus) */
.form-group.shiny-input-container.a11y-date input.form-control,
.a11y-date input[type="text"] {
  border-width: 1px;
  border-style: solid;
}

/* Disabled fields: don't force focus mark */
.form-group.shiny-input-container.a11y-date input.form-control:disabled:focus,
.a11y-date input[type="text"]:disabled:focus {
  outline: none;
  box-shadow: none;
}

/* ----------------------------------------------- */
/* a11y_textButtonGroup                            */
/* ----------------------------------------------- */

/* Common container */
.a11y-text-btn-group {
  display: flex;
  gap: 0.5rem;
}

/* Inline layout: one row, button to the right of the field */
.a11y-text-btn-inline {
  flex-direction: row;
  align-items: flex-end; /* Label at field, button at field height */
}

/* Stack layout: arranged one below the other */
.a11y-text-btn-stack {
  flex-direction: column;
  align-items: flex-start;
}

/* Text field should use available space in inline layout */
.a11y-text-btn-inline .form-group.shiny-input-container.a11y-text {
  flex: 1 1 auto;
  margin-bottom: 0; /* possibly reduce Bootstrap spacing a bit */
}

/* Button: no extra margin at the bottom in inline layout */
.a11y-text-btn-inline .a11y-btn {
  margin-bottom: 0;
}

/* ----------------------------------------------- */
/* a11y_fluidPage, fluidRow, columns               */
/* ----------------------------------------------- */

/* Flexible layout for the content flow */
.a11y-flow {
  display: grid;
  gap: 1rem;
  grid-template-areas:
    "header"
    "nav"
    "main"
    "aside"
    "footer";
  width: 100%;
  min-width: 0;
  min-height: 0;
}

/* Fallback: Flexible layout for areas */
.a11y-header,
.a11y-nav,
.a11y-main,
.a11y-aside,
.a11y-footer {
  width: 100%;
}

/* Flexible layout for rows */
.a11y-row {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
  min-height: 0;
}

/* Columns with 12-point grid */
.a11y-col {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  min-width: 0;
  min-height: 0;
}

.a11y-main {
  min-width: 0;
  min-height: 0;
}

/* Responsive layouts for tablets and mobile devices */
@media (max-width: 1025px) {
  .a11y-row {
    flex-direction: column;
  }
  .a11y-row .a11y-col,
  .a11y-row .col-1, .a11y-row .col-2, .a11y-row .col-3, .a11y-row .col-4,
  .a11y-row .col-5, .a11y-row .col-6,
  .a11y-row .col-7, .a11y-row .col-8, .a11y-row .col-9, .a11y-row .col-10,
  .a11y-row .col-11, .a11y-row .col-12 {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .a11y-dt .dataTables_wrapper {
    font-size: 0.95em;
  }
}

/* ----------------------------------------------- */
/* a11y_dataTable                                  */
/* ----------------------------------------------- */

/* DataTable: Responsive Layout */
 .a11y-dt .dataTable,
 .a11y-dt .table.dataTable,
 .a11y-dt table.dataTable {
  width: 100% !important;
  max-width: 100%;
  min-width: 300px;
  box-sizing: border-box;
}

 .a11y-dt .dataTables_wrapper {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;   /* Horizontal scrolling */
}

/* DataTable: keyboard navigation */
 .a11y-dt .table.dataTable:focus,
 .a11y-dt .table.dataTable:focus-visible,
 .a11y-dt .dataTable.table:focus,
 .a11y-dt .dataTable.table:focus-visible {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
}

/* DataTable: Focus on row or cell */
 .a11y-dt .dataTable td:focus,
 .a11y-dt .dataTable td:focus-visible,
 .a11y-dt .dataTable td:hover,
 .a11y-dt .dataTable th:focus,
 .a11y-dt .dataTable th:focus-visible,
 .a11y-dt .dataTable th:hover {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: -2px;
  box-shadow: none;
  z-index: 2;
}
/* DataTable: "Active"*/
 .a11y-dt .dataTable td:active,
 .a11y-dt .dataTable th:active {
  border: 1.5px solid var(--a11y-tbl-border) !important;
  outline: none;
}
/* DataTable: Focus for KeyTable-Extension (selected cells) */
 .a11y-dt td.focus,
 .a11y-dt th.focus {
  outline: 3px solid var(--a11y-tbl-outline-focus) !important;
  outline-offset: -2px;
  z-index: 2;
}

/* DataTable: Focus/hover/active dropdown-list (e.g. for select number of elements per page) */
 .a11y-dt .dataTables_wrapper .dataTables_filter input:focus,
 .a11y-dt .dataTables_wrapper .dataTables_filter input:hover,
 .a11y-dt .dataTables_wrapper .dataTables_filter input:active,
 .a11y-dt .dataTables_wrapper .dataTables_length select:focus,
 .a11y-dt .dataTables_wrapper .dataTables_length select:hover,
 .a11y-dt .dataTables_wrapper .dataTables_length select:active,
 .a11y-dt .dataTables_wrapper .dt-button:focus,
 .a11y-dt .dataTables_wrapper .dt-button:hover,
 .a11y-dt .dataTables_wrapper .dt-button:active,
 .a11y-dt .dataTables_paginate li.active a:focus,
 .a11y-dt .dataTables_paginate li.active a:hover,
 .a11y-dt .dataTables_paginate li.active a:active,
 .a11y-dt .dataTables_paginate li a:focus,
 .a11y-dt .dataTables_paginate li a:hover,
 .a11y-dt .dataTables_paginate li a:active {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
  border-color: 1px var(--bs-body-color) !important;
  box-shadow: none;
}

/* DataTable: Buttons (e. g. export csv, excel, etc.) */
 .a11y-dt .dataTables_wrapper .btn {
	background-color: var(--a11y-btn-bg);
  border: 1px solid var(--a11y-btn-border);
	color: var(--a11y-btn-fg);
  border-radius: 4px !important;
  margin: 0.5rem !important;
}
/* DataTable: Focus/hover buttons (e. g. export csv, excel, etc.) */
 .a11y-dt .dataTables_wrapper .btn:focus-visible,
 .a11y-dt .dataTables_wrapper .btn:hover {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
  box-shadow: none;
  z-index: 2;
}
/* DataTable: Active buttons (e. g. export csv, excel, etc.) */
 .a11y-dt .dataTables_wrapper .btn:active {
  outline: none;
  outline-offset: none;
}
/* DataTable: Column filters */
 .a11y-dt .dataTables_wrapper .form-control:not(:disabled),
 .a11y-dt .dataTables_wrapper .form-control:not([disabled]) {
  color: var(--a11y-font-color) !important;
}
/* DataTable: Focus/hover/active column filters */
 .a11y-dt .dataTables_wrapper .form-control:focus,
 .a11y-dt .dataTables_wrapper .form-control:hover,
 .a11y-dt .dataTables_wrapper .form-control:active{
	outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
  color: var(--a11y-font-color);
  box-shadow: none;
}
/* DataTable: Make placeholder invisible in filter elements */
 .a11y-dt .dataTables_wrapper .form-control::placeholder,
 .a11y-dt .dataTables_wrapper .form-control:disabled::placeholder {
	color: transparent !important;
}
/* DataTable: Disabled column filters */
 .a11y-dt .dataTables_wrapper .form-control:disabled,
 .a11y-dt .dataTables_wrapper .form-control[disabled] {
  outline: none !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  background-color: var(--a11y-tbl-filter-disabled) !important;
  color: transparent !important;
}
/* DataTable: Focus/hover/active selection in column filters */
 .a11y-dt table.dataTable thead input[type="search"]:focus,
 .a11y-dt .dataTables_wrapper .dataTables_filter input[type="search"]:focus,
 .a11y-dt table.dataTable thead input[type="search"]:hover,
 .a11y-dt .dataTables_wrapper .dataTables_filter input[type="search"]:hover,
 .a11y-dt table.dataTable thead input[type="search"]:active,
 .a11y-dt .dataTables_wrapper .dataTables_filter input[type="search"]:active {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
  color: var(--bs-body-bg);
  border: 1px solid var(--bs-table-border-color);
  box-shadow: none;
}
/* DataTable: Color of arrows in sorting headers of columns */
.a11y-dt table.dataTable th.right-sorting::after,
.a11y-dt table.dataTable th.right-sorting::before {
  color: var(--a11y-tbl-arrow); 
  opacity: 0.8;
}
/* DataTable: Paginate button not active */
.a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link {
	background-color: var(--a11y-btn-bg);
	color: var(--a11y-btn-fg);
  border: 1px solid var(--a11y-btn-border);
  margin-bottom: 5px;
}
/* DataTable: Paginate button active (inverse style of not active button) */
 .a11y-dt .dataTables_paginate .page-link.active, .active .page-link {
  background-color: var(--a11y-btn-fg);
  color: var(--a11y-btn-bg);
  border: 1px solid var(--a11y-btn-border);
}
/* DataTable: Focus/hover on paginate button*/
 .a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:hover, 
.a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:focus {
  outline: 3px solid var(--a11y-tbl-outline-focus);
  outline-offset: 2px;
  border: 1px solid var(--a11y-btn-border) !important;
  box-shadow: none;
  z-index: 2;
}
/* DataTable: Active paginate button */
 .a11y-dt .dataTables_paginate .page-link.active, .active .page-link:active {
  outline: none;
  outline-offset: none;

}
/* DataTable: Paginate button disabled */
.a11y-dt .dataTables_paginate .page-link.disabled, .disabled .page-link,
.a11y-dt .dataTables_paginate .paginate_button.disabled, .disabled .page-link {
  cursor: not-allowed;
}

/* -------------------------------------------------- */
/* High Contrast Button */
/* -------------------------------------------------- */

/* Default style of high contrast button */
.a11y-high-contrast-toggle.btn,
.a11y-high-contrast-toggle.a11y-btn {
  background: #000000 !important;
  color: #ffffff !important;
  font-weight: 700;
}
.a11y-high-contrast-toggle.btn:focus,
.a11y-high-contrast-toggle.a11y-btn:focus,
.a11y-high-contrast-toggle.btn:focus-visible,
.a11y-high-contrast-toggle.a11y-btn:focus-visible,
.a11y-high-contrast-toggle.btn:hover,
.a11y-high-contrast-toggle.a11y-btn:hover {
  outline: 3px solid #ff0000 !important;
  outline-offset: 2px;
  box-shadow: none;
}

/* -------------------------------------------------- */
/* Global high-contrast mode via body.high-contrast */
/* -------------------------------------------------- */

/* Background/foreground in high-contrast mode */
body.high-contrast {
  background-color: var(--a11y-high-contrast-background) !important; 
  color: var(--a11y-high-contrast-color) !important;
}

/* Buttons (all Shiny buttons + a11y-btn) */
body.high-contrast .btn,
body.high-contrast .a11y-btn {
  background: var(--a11y-high-contrast-color) !important;
  color: var(--a11y-high-contrast-background) !important;
}

/* Focus/hover for buttons in high-contrast mode */
body.high-contrast .btn:focus,
body.high-contrast .a11y-btn:focus,
body.high-contrast .btn:focus-visible,
body.high-contrast .a11y-btn:focus-visible,
body.high-contrast .btn:hover,
body.high-contrast .a11y-btn:hover {
  outline: 3px solid var(--a11y-high-contrast-outline-focus) !important;
  outline-offset: 2px;
  box-shadow: none;
}

/* Form elements: Inputs, Select, Textarea, .form-control */
body.high-contrast input[type="checkbox"],
body.high-contrast input[type="radio"],
body.high-contrast .selectize-control.single .selectize-input,
body.high-contrast textarea,
body.high-contrast .form-control {
  background: var(--a11y-high-contrast-background) !important;
  color: var(--a11y-high-contrast-color) !important;
  border: 2px solid var(--a11y-high-contrast-outline-focus) !important;
}

/* Special form elements: checked checkboxes and radio buttons - fill when checked */
body.high-contrast input:checked[type="checkbox"],
body.high-contrast input:checked[type="radio"] {
  background: var(--a11y-high-contrast-outline-focus) !important;
}

/* Focus/hover for form elements in high-contrast mode */
body.high-contrast input[type="checkbox"]:focus,
body.high-contrast input[type="radio"]:focus,
body.high-contrast .selectize-control.single .selectize-input:focus,
body.high-contrast textarea:focus,
body.high-contrast .form-control:focus,
body.high-contrast input[type="checkbox"]:focus-visible,
body.high-contrast input[type="radio"]:focus-visible,
body.high-contrast .selectize-control.single .selectize-input:focus-visible,
body.high-contrast textarea:focus-visible,
body.high-contrast .form-control:focus-visible,
body.high-contrast input[type="checkbox"]:hover,
body.high-contrast input[type="radio"]:hover,
body.high-contrast .selectize-control.single .selectize-input:hover,
body.high-contrast textarea:hover,
body.high-contrast .form-control:hover {
  outline: 3px solid var(--a11y-high-contrast-outline-focus) !important;
  outline-offset: 2px;
  box-shadow: none;
}

/* Dropdown menus in high-contrast mode - style of selected/focused list items */
body.high-contrast .a11y-select .selectize-dropdown .active:not(.selected),     
body.high-contrast .a11y-select .selectize-dropdown .active,
body.high-contrast .selectize-dropdown .active:not(.selected),     
body.high-contrast .selectize-dropdown .active {                   
  border: 3px solid var(--a11y-element-outline-focus);
}

/* Links in high-contrast mode */
body.high-contrast a {
  text-decoration: underline;
}

/* High-contrast: DataTable Paginate Buttons */
/* Not-Not active paginate button in high-contrast mode */
body.high-contrast .a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link,
body.high-contrast .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link {
  background-color: var(--a11y-high-contrast-color) !important;
  color: var(--a11y-high-contrast-background) !important;
}

/* Active paginate button in high-contrast mode */
body.high-contrast .a11y-dt .dataTables_paginate .page-link.active,
body.high-contrast .a11y-dt .dataTables_paginate li.active a,
body.high-contrast .dataTables_paginate .page-link.active,
body.high-contrast .dataTables_paginate li.active a {
  background-color: var(--a11y-high-contrast-background) !important;
  color: var(--a11y-high-contrast-color) !important;
}

/* Focus/hover for paginate buttons in high-contrast mode */
body.high-contrast .a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:hover,
body.high-contrast .a11y-dt .dataTables_paginate li.active a:hover,
body.high-contrast .a11y-dt .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:focus,
body.high-contrast .a11y-dt .dataTables_paginate li.active a:focus,
body.high-contrast .a11y-dt .dataTables_paginate .page-link.active:hover,
body.high-contrast .a11y-dt .dataTables_paginate .page-link.active:focus,
body.high-contrast .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:hover,
body.high-contrast .dataTables_paginate li.active a:hover,
body.high-contrast .dataTables_paginate .paginate_button:not(.active):not(.disabled) .page-link:focus,
body.high-contrast .dataTables_paginate li.active a:focus,
body.high-contrast .dataTables_paginate .page-link.active:hover,
body.high-contrast .dataTables_paginate .page-link.active:focus {
  outline: 3px solid var(--a11y-high-contrast-outline-focus) !important;
  outline-offset: 2px;
  box-shadow: none;
  z-index: 2;
}

/* Optional: active paginate button on click – no extra outline */
body.high-contrast .a11y-dt .dataTables_paginate .page-link.active:active {
  outline: none !important;
  outline-offset: 0 !important;
}
