.e64-a11y-root,
.e64-a11y-root * { box-sizing: border-box; }

.e64-a11y-root {
  --e64-a11y-accent: #167C3A;
  --e64-a11y-bottom: 24px;
  position: fixed;
  bottom: var(--e64-a11y-bottom);
  z-index: 2147483000;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-align: left !important;
  color: #1b1b1b !important;
  filter: none !important;
}
.e64-a11y-right { right: 20px; }
.e64-a11y-left { left: 20px; }

.e64-a11y-launcher {
  width: 54px; height: 54px; border-radius: 50%; border: 3px solid #fff;
  background: var(--e64-a11y-accent) !important; color: #fff !important;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  box-shadow: 0 4px 18px rgba(0,0,0,.3); padding: 0; margin: 0;
}
.e64-a11y-launcher svg { width: 30px; height: 30px; fill: currentColor; }
.e64-a11y-launcher:focus-visible,
.e64-a11y-panel button:focus-visible { outline: 4px solid #ffd400 !important; outline-offset: 3px !important; }

.e64-a11y-panel {
  position: absolute; bottom: 66px; width: 340px; max-width: calc(100vw - 24px);
  background: #fff !important; color: #1b1b1b !important; border: 1px solid #d8d8d8;
  border-radius: 14px; box-shadow: 0 12px 35px rgba(0,0,0,.28); overflow: hidden;
}
.e64-a11y-right .e64-a11y-panel { right: 0; }
.e64-a11y-left .e64-a11y-panel { left: 0; }
.e64-a11y-panel[hidden] { display: none !important; }

.e64-a11y-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 16px; background: var(--e64-a11y-accent) !important; color: #fff !important;
  font-size: 17px !important;
}
.e64-a11y-close {
  background: transparent !important; color: #fff !important; border: 0; font-size: 28px !important;
  width: 36px; height: 36px; line-height: 30px !important; padding: 0; cursor: pointer;
}
.e64-a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px; background: #fff !important; }
.e64-a11y-grid button {
  min-height: 74px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; border: 1px solid #d8d8d8; border-radius: 9px; background: #f7f7f7 !important;
  color: #1b1b1b !important; cursor: pointer; padding: 9px 7px; font: 600 13px/1.25 Arial, Helvetica, sans-serif !important;
  text-align: center !important;
}
.e64-a11y-grid button:hover { border-color: var(--e64-a11y-accent); }
.e64-a11y-grid button[aria-pressed="true"] { background: var(--e64-a11y-accent) !important; color: #fff !important; border-color: var(--e64-a11y-accent); }
.e64-a11y-grid button:disabled { opacity: .45; cursor: not-allowed; }
.e64-a11y-symbol { font-size: 24px !important; font-weight: 700 !important; line-height: 1 !important; }
.e64-a11y-reset {
  width: calc(100% - 24px); margin: 0 12px 12px; min-height: 42px; border-radius: 8px;
  border: 2px solid var(--e64-a11y-accent); background: #fff !important; color: var(--e64-a11y-accent) !important;
  font: 700 14px/1.2 Arial, Helvetica, sans-serif !important; cursor: pointer;
}

/* Visitor preference modes. Toolbar is explicitly excluded/reset. */
html.e64-a11y-contrast body { background: #000 !important; color: #fff !important; }
html.e64-a11y-contrast body *:not(.e64-a11y-root):not(.e64-a11y-root *) { background-color: #000 !important; color: #fff !important; border-color: #fff !important; text-shadow: none !important; box-shadow: none !important; }
html.e64-a11y-contrast body a:not(.e64-a11y-root a) { color: #ffeb00 !important; text-decoration: underline !important; }
html.e64-a11y-contrast body input:not(.e64-a11y-root input),
html.e64-a11y-contrast body textarea:not(.e64-a11y-root textarea),
html.e64-a11y-contrast body select:not(.e64-a11y-root select) { background: #000 !important; color: #fff !important; border: 2px solid #fff !important; }

html.e64-a11y-grayscale body > *:not(.e64-a11y-root) { filter: grayscale(100%) !important; }

html.e64-a11y-readable body p:not(.e64-a11y-root p),
html.e64-a11y-readable body a:not(.e64-a11y-root a),
html.e64-a11y-readable body li:not(.e64-a11y-root li),
html.e64-a11y-readable body label:not(.e64-a11y-root label),
html.e64-a11y-readable body button:not(.e64-a11y-root button),
html.e64-a11y-readable body input:not(.e64-a11y-root input),
html.e64-a11y-readable body select:not(.e64-a11y-root select),
html.e64-a11y-readable body textarea:not(.e64-a11y-root textarea),
html.e64-a11y-readable body td:not(.e64-a11y-root td),
html.e64-a11y-readable body th:not(.e64-a11y-root th),
html.e64-a11y-readable body h1:not(.e64-a11y-root h1),
html.e64-a11y-readable body h2:not(.e64-a11y-root h2),
html.e64-a11y-readable body h3:not(.e64-a11y-root h3),
html.e64-a11y-readable body h4:not(.e64-a11y-root h4),
html.e64-a11y-readable body h5:not(.e64-a11y-root h5),
html.e64-a11y-readable body h6:not(.e64-a11y-root h6),
html.e64-a11y-readable body small:not(.e64-a11y-root small),
html.e64-a11y-readable body strong:not(.e64-a11y-root strong),
html.e64-a11y-readable body em:not(.e64-a11y-root em),
html.e64-a11y-readable body span:not(.e64-a11y-root span):not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.material-icons):not(.material-symbols-outlined):not([class^="fa-"]):not([class*=" fa-"]):not([class^="icon-"]):not([class*=" icon-"]):not([class^="j-icon"]):not([class*=" j-icon"]) {
  font-family: Arial, Verdana, Tahoma, sans-serif !important;
}

html.e64-a11y-links body a:not(.e64-a11y-root a) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 2px !important; }

html.e64-a11y-spacing body p:not(.e64-a11y-root p),
html.e64-a11y-spacing body a:not(.e64-a11y-root a),
html.e64-a11y-spacing body li:not(.e64-a11y-root li),
html.e64-a11y-spacing body label:not(.e64-a11y-root label),
html.e64-a11y-spacing body td:not(.e64-a11y-root td),
html.e64-a11y-spacing body th:not(.e64-a11y-root th),
html.e64-a11y-spacing body h1:not(.e64-a11y-root h1),
html.e64-a11y-spacing body h2:not(.e64-a11y-root h2),
html.e64-a11y-spacing body h3:not(.e64-a11y-root h3),
html.e64-a11y-spacing body h4:not(.e64-a11y-root h4),
html.e64-a11y-spacing body h5:not(.e64-a11y-root h5),
html.e64-a11y-spacing body h6:not(.e64-a11y-root h6),
html.e64-a11y-spacing body small:not(.e64-a11y-root small),
html.e64-a11y-spacing body strong:not(.e64-a11y-root strong),
html.e64-a11y-spacing body em:not(.e64-a11y-root em),
html.e64-a11y-spacing body span:not(.e64-a11y-root span):not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.material-icons):not(.material-symbols-outlined):not([class^="fa-"]):not([class*=" fa-"]):not([class^="icon-"]):not([class*=" icon-"]):not([class^="j-icon"]):not([class*=" j-icon"]) {
  line-height: 1.65 !important;
  letter-spacing: .06em !important;
  word-spacing: .12em !important;
}

html.e64-a11y-pause *,
html.e64-a11y-pause *::before,
html.e64-a11y-pause *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

/* Keep functional SVG icons visible; this mode hides content images only. */
html.e64-a11y-hide-images body img:not(.e64-a11y-root img),
html.e64-a11y-hide-images body picture:not(.e64-a11y-root picture) { visibility: hidden !important; }

html.e64-a11y-big-cursor body,
html.e64-a11y-big-cursor body *:not(.e64-a11y-root):not(.e64-a11y-root *) {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 2l22 14-10 2 6 9-5 3-6-10-7 7z' fill='white' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 3 2, auto !important;
}
html.e64-a11y-big-cursor body a:not(.e64-a11y-root a),
html.e64-a11y-big-cursor body button:not(.e64-a11y-root button),
html.e64-a11y-big-cursor body [role="button"]:not(.e64-a11y-root [role="button"]) {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M10 2v13L6 12l-3 3 10 12h10l5-9-3-2-2 3V8h-4v8-10h-4v10-12z' fill='white' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 10 2, pointer !important;
}

@media (max-width: 480px) {
  .e64-a11y-right { right: 12px; }
  .e64-a11y-left { left: 12px; }
  .e64-a11y-panel { width: calc(100vw - 24px); }
  .e64-a11y-grid button { min-height: 68px; font-size: 12px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .e64-a11y-root *, .e64-a11y-root *::before, .e64-a11y-root *::after { animation: none !important; transition: none !important; }
}

@media print {
  .e64-a11y-root { display: none !important; }
}
