.abws { --abws-cell: clamp(2rem, 7.5vw, 3.25rem); max-width: 48rem; margin: 1.5rem auto; color: #17202a; }
.abws.has-custom-background { box-sizing: border-box; padding: clamp(18px, 3vw, 32px); background-position: center; background-repeat: no-repeat; background-size: cover; }
.abws__title { margin: 0 0 .4rem; }
.abws__instructions { margin: 0 0 1rem; }
.abws__print-instructions { display: none; }
.abws__grid { display: grid; grid-template-columns: repeat(var(--abws-size), minmax(0, 1fr)); gap: .2rem; width: min(100%, calc(var(--abws-size) * var(--abws-cell))); margin-inline: auto; touch-action: pan-y; user-select: none; }
.abws__cell { min-width: 0; aspect-ratio: 1; border: 2px solid #36516a; border-radius: .25rem; background: #fff; color: inherit; font: 700 clamp(.8rem, 3vw, 1.25rem)/1 system-ui, sans-serif; cursor: pointer; touch-action: none; }
.abws__cell:hover, .abws__cell.is-selected { background: #ffe99a; }
.abws__cell.is-found { border-color: #147a45; background: #bdeccf; color: #0f512f; }
.abws__cell:focus-visible, .abws__reset:focus-visible { outline: 3px solid #1a73b8; outline-offset: 2px; }
.abws__words { margin-top: 1rem; }
.abws__words h3 { margin-bottom: .35rem; }
.abws__words ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .35rem 1rem; padding-left: 1.2rem; }
.abws__word small { display: block; color: #4d5965; }
.abws__word.is-found { color: #0f6a3b; text-decoration: line-through; }
.abws__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.abws__reset, .abws__print { padding: .6rem .9rem; border: 1px solid #36516a; border-radius: .25rem; background: #fff; color: #17202a; font: inherit; cursor: pointer; }
.abws__print { background: #17202a; color: #fff; }
.abws__status { min-height: 1.5em; margin-top: .75rem; }
@media (max-width: 420px) { .abws__grid { gap: .1rem; } .abws__cell { border-width: 1px; } }
.abws-single {
	min-height: 60vh;
	padding: clamp(3rem, 8vw, 7rem) 1.25rem;
	background: #f2f2f2;
}

.abws-single__inner {
	width: min(100%, 1100px);
	margin: 0 auto;
}

@media print {
	@page { size: portrait; margin: .4in; }
	html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
	body * { visibility: hidden !important; }
	.abws, .abws * { visibility: visible !important; }
	.abws {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		color: #000 !important;
		font-family: Arial, sans-serif !important;
	}
	.abws__title { width: min(100%, 5.8in) !important; margin: 0 auto .06in !important; text-align: center !important; font: 700 18pt/1.1 Arial, sans-serif !important; }
	.abws__instructions { display: none !important; }
	.abws__print-instructions { display: block !important; width: min(100%, 5.8in) !important; margin: 0 auto .12in !important; text-align: center !important; font-size: 9pt !important; line-height: 1.25 !important; }
	.abws__grid { width: min(100%, 5.8in) !important; gap: 0 !important; margin: 0 auto .3in !important; break-inside: avoid; }
	.abws__cell, .abws__cell:hover, .abws__cell.is-selected, .abws__cell.is-found {
		border: 1px solid #555 !important;
		border-radius: 0 !important;
		background: #fff !important;
		color: #000 !important;
		font: 700 10pt/1 Arial, sans-serif !important;
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}
	.abws__words { width: min(100%, 5.8in) !important; margin: 0 auto !important; }
	.abws__words h3 { margin: 0 0 .08in !important; font: 700 12pt/1 Arial, sans-serif !important; }
	.abws__words ul { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: .03in .18in !important; margin: 0 !important; padding-left: .2in !important; }
	.abws__word, .abws__word.is-found { margin: 0 0 .06in !important; color: #000 !important; font-size: 9pt !important; line-height: 1.2 !important; text-decoration: none !important; break-inside: avoid; }
	.abws__word small { color: #333 !important; font-size: 7.5pt !important; }
	.abws__actions, .abws__status { display: none !important; }
}
