.ankle-skip-link {
  position: fixed;
  z-index: 2147483647;
  inset-block-start: 4px;
  inset-inline-start: 4px;
  transform: translateY(-180%);
  padding: 7px 10px;
  border: 2px outset #fff;
  background: #ffffe0;
  color: #000;
  font: 700 12px/1.2 "Courier New", Courier, monospace;
}
.ankle-skip-link:focus { transform: translateY(0); }

html[data-ankle-focus="visible"] :focus-visible {
  outline: 2px dotted currentColor !important;
  outline-offset: 2px !important;
}
html[data-ankle-links="underlined"] a { text-decoration: underline !important; }
html[data-ankle-contrast="high"] { filter: contrast(1.25); }
html[data-ankle-contrast="high"] body { background-color: Canvas; color: CanvasText; }
html[data-ankle-text="large"] { font-size: 118%; }
html[data-ankle-text="largest"] { font-size: 136%; }
html[data-ankle-motion="reduced"] *,
html[data-ankle-motion="reduced"] *::before,
html[data-ankle-motion="reduced"] *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  scroll-behavior: auto !important;
  transition-duration: .001ms !important;
}

.ankle-access-launcher {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 4px 0;
  padding: 5px 6px;
  border: 2px outset #fff;
  border-radius: 0;
  background: #c0c0c0;
  color: #000;
  text-align: start;
  font: 700 10px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}
.ankle-access-launcher--fallback {
  position: fixed;
  z-index: 2147483500;
  inset-inline-end: 6px;
  inset-block-end: 58px;
  width: auto;
}

.ankle-access-dialog {
  width: min(520px, calc(100vw - 24px));
  max-height: min(720px, calc(100vh - 24px));
  box-sizing: border-box;
  padding: 0;
  border: 2px solid #000;
  border-radius: 0;
  background: #c0c0c0;
  color: #000;
  box-shadow: 4px 4px 0 rgba(0,0,0,.45);
}
.ankle-access-dialog::backdrop { background: rgba(0,0,0,.45); }
.ankle-access-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 5px 4px 8px;
  background: #000080;
  color: #fff;
  font: 700 12px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ankle-access-titlebar button,
.ankle-access-actions button {
  min-width: 36px;
  min-height: 32px;
  border: 2px outset #fff;
  border-radius: 0;
  background: #c0c0c0;
  color: #000;
  font: 700 11px/1.2 "Courier New", Courier, monospace;
  cursor: pointer;
}
.ankle-access-titlebar button:active,
.ankle-access-actions button:active { border-style: inset; }
.ankle-access-body { padding: 14px; font: 14px/1.45 "Times New Roman", Times, serif; }
.ankle-access-body p { margin: 0 0 12px; }
.ankle-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.ankle-access-field { display: grid; gap: 4px; }
.ankle-access-field label {
  font: 700 10px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.ankle-access-field select {
  width: 100%;
  min-height: 36px;
  box-sizing: border-box;
  border: 2px inset #fff;
  border-radius: 0;
  background: #fff;
  color: #000;
  font: 13px/1.2 "Courier New", Courier, monospace;
}
.ankle-access-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.ankle-access-actions .primary { background: #ffffe0; }
.ankle-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
@media (max-width: 560px) {
  .ankle-access-grid { grid-template-columns: 1fr; }
  .ankle-access-dialog { max-height: calc(100dvh - 16px); }
}
@media (prefers-reduced-motion: reduce) {
  .ankle-skip-link { transition: none; }
}
@media (forced-colors: active) {
  .ankle-access-dialog,
  .ankle-access-launcher,
  .ankle-skip-link { forced-color-adjust: auto; }
}
