.ow-a11y-root {
	position: fixed;
	z-index: var(--ow-a11y-z, 99999);
	font-family: system-ui, -apple-system, Segoe UI, sans-serif;
	color: #111827;
}

.ow-a11y-pos-bottom-right {
	right: var(--ow-a11y-offset-x, 20px);
	bottom: var(--ow-a11y-offset-y, 20px);
}

.ow-a11y-pos-bottom-left {
	left: var(--ow-a11y-offset-x, 20px);
	bottom: var(--ow-a11y-offset-y, 20px);
}

.ow-a11y-pos-top-right {
	right: var(--ow-a11y-offset-x, 20px);
	top: var(--ow-a11y-offset-y, 20px);
}

.ow-a11y-pos-top-left {
	left: var(--ow-a11y-offset-x, 20px);
	top: var(--ow-a11y-offset-y, 20px);
}

.ow-a11y-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 44px;
	min-width: 44px;
	padding: 0.55rem 0.9rem;
	border: 2px solid transparent;
	border-radius: 999px;
	background: var(--ow-a11y-accent, #1d4ed8);
	color: var(--ow-a11y-accent-text, #fff);
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}

.ow-a11y-size-small .ow-a11y-toggle {
	min-height: 44px;
	padding: 0.4rem 0.7rem;
	font-size: 0.85rem;
}

.ow-a11y-size-large .ow-a11y-toggle {
	min-height: 52px;
	padding: 0.7rem 1.1rem;
	font-size: 1.05rem;
}

.ow-a11y-toggle:focus {
	outline: 3px solid #facc15;
	outline-offset: 3px;
}

.ow-a11y-toggle-icon {
	display: inline-flex;
}

.ow-a11y-dialog {
	position: absolute;
	width: min(22rem, calc(100vw - 2rem));
	max-height: min(32rem, calc(100vh - 6rem));
	overflow: auto;
	background: #fff;
	color: #111827;
	border: 2px solid #111827;
	border-radius: 12px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
}

.ow-a11y-pos-bottom-right .ow-a11y-dialog,
.ow-a11y-pos-top-right .ow-a11y-dialog {
	right: 0;
}

.ow-a11y-pos-bottom-left .ow-a11y-dialog,
.ow-a11y-pos-top-left .ow-a11y-dialog {
	left: 0;
}

.ow-a11y-pos-bottom-right .ow-a11y-dialog,
.ow-a11y-pos-bottom-left .ow-a11y-dialog {
	bottom: calc(100% + 10px);
}

.ow-a11y-pos-top-right .ow-a11y-dialog,
.ow-a11y-pos-top-left .ow-a11y-dialog {
	top: calc(100% + 10px);
}

.ow-a11y-dialog-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.85rem 1rem 0.4rem;
}

.ow-a11y-dialog-header h2 {
	margin: 0;
	font-size: 1.1rem;
}

.ow-a11y-dialog-body {
	padding: 0.4rem 1rem 1rem;
}

.ow-a11y-group {
	margin: 0 0 1rem;
}

.ow-a11y-group h3 {
	margin: 0 0 0.45rem;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.ow-a11y-row {
	display: flex;
	gap: 0.4rem;
	margin-bottom: 0.4rem;
}

.ow-a11y-btn,
.ow-a11y-icon-btn {
	min-height: 44px;
	min-width: 44px;
	padding: 0.45rem 0.7rem;
	border: 2px solid #111827;
	border-radius: 8px;
	background: #fff;
	color: #111827;
	font-weight: 600;
	cursor: pointer;
}

.ow-a11y-btn-block {
	width: 100%;
	text-align: left;
	margin: 0 0 0.35rem;
}

.ow-a11y-btn[aria-pressed="true"] {
	background: #1d4ed8;
	color: #fff;
	border-color: #1d4ed8;
}

.ow-a11y-btn:focus,
.ow-a11y-icon-btn:focus {
	outline: 3px solid #2563eb;
	outline-offset: 2px;
}

.ow-a11y-btn-reset {
	width: 100%;
	background: #111827;
	color: #fff;
}

.ow-a11y-brand {
	margin: 0;
	padding: 0 1rem 0.85rem;
	font-size: 0.75rem;
	color: #4b5563;
}

.ow-a11y-heading-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ow-a11y-heading-list button {
	width: 100%;
	text-align: left;
	margin: 0 0 0.35rem;
	min-height: 44px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.ow-a11y-h-1 { font-weight: 700; }
.ow-a11y-h-2 { padding-left: 0.8rem; }
.ow-a11y-h-3 { padding-left: 1.6rem; }
.ow-a11y-h-4,
.ow-a11y-h-5,
.ow-a11y-h-6 { padding-left: 2.4rem; }

@media (max-width: 640px) {
	.ow-a11y-hide-mobile {
		display: none;
	}
}
