.accessibility-skip {
 position: fixed;
 top: 4px;
 left: 4px;
 z-index: 100;
 display: flex;
 flex-wrap: wrap;
 gap: 6px;
 pointer-events: none;
}

.accessibility-skip a {
 position: absolute;
 transform: translateY(-200%);
 padding: 12px;
 border: 2px solid var(--ink);
 border-radius: 8px;
 background: white;
 color: #0b2148;
 white-space: nowrap;
}

.accessibility-skip a:focus {
 position: static;
 transform: none;
 pointer-events: auto;
}

.accessibility-controls {
 display: grid;
 gap: 5px;
 margin: -12px 0 20px;
}

.accessibility-controls button {
 min-height: 44px;
 padding: 7px 10px;
 text-align: left;
 font-size: 12px;
}

#accessibility-read-toggle[aria-pressed="true"] {
 background: var(--mint);
 border-color: #008579;
}

#accessibility-dialog {
 width: min(560px, calc(100% - 24px));
 max-height: calc(100dvh - 24px);
 overflow: auto;
}

#accessibility-dialog label {
 display: flex;
 align-items: center;
 gap: 10px;
 min-height: 48px;
 margin: 12px 0;
}

#accessibility-dialog input[type="checkbox"] {
 width: 22px;
 height: 22px;
 flex-shrink: 0;
 margin: 0;
 accent-color: #0b2148;
}

#accessibility-dialog button {
 min-height: 44px;
}

#accessibility-playback {
 display: flex;
 align-items: center;
 justify-content: space-between;
 flex-wrap: wrap;
 gap: 6px;
 margin: 0 4px 6px;
 font-size: 12px;
}

#accessibility-stop {
 min-height: 44px;
}

.response-actions {
 flex-wrap: wrap;
 gap: 8px 14px;
}

.response-actions button {
 min-height: 32px;
}

.message:focus-visible {
 outline: 3px solid #008579;
 outline-offset: 3px;
}

.accessibility-large :is(button, .outline, select) {
 min-height: 44px;
 font-size: 16px;
}

.accessibility-large :is(.text-segment, .message.user, textarea, #notice) {
 font-size: 18px;
 line-height: 1.7;
}

.accessibility-large .answer-style-options {
 display: flex;
 overflow-x: auto;
 padding: 4px;
}

.accessibility-large .answer-style-options button {
 flex: 0 0 auto;
 min-width: 80px;
 padding: 8px;
}

.accessibility-large .footer-note {
 font-size: 12px;
}

@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
  scroll-behavior: auto !important;
  animation: none !important;
  transition: none !important;
 }
}
