.qwizz-catalog,
.qwizz-subjects {
	--qwizz-violet: #6d28d9;
	--qwizz-ink: #241c30;
	--qwizz-muted: #706778;
	display: grid;
	grid-template-columns: repeat(var(--qwizz-library-columns, 3), minmax(0, 1fr));
	gap: 16px;
	margin: 24px 0;
}

.qwizz-catalog *,
.qwizz-subjects * {
	box-sizing: border-box;
}

.qwizz-catalog .qwizz-icon,
.qwizz-subjects .qwizz-icon {
	overflow: visible;
}

.qwizz-library-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 20px;
	border: 1px solid #e5dfeb;
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 10px 32px rgba(42, 28, 58, .07);
}

.qwizz-library-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--qwizz-violet);
}

.qwizz-library-card__top > span {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #f1eafd;
}

.qwizz-library-card__top > b {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--qwizz-muted);
	font-size: 11px;
}

.qwizz-library-card h3 {
	margin: 16px 0 7px;
	color: var(--qwizz-ink);
	font-size: 19px;
	line-height: 1.25;
}

.qwizz-library-card p {
	flex: 1;
	margin: 0 0 18px;
	color: var(--qwizz-muted);
	font-size: 13px;
}

.qwizz-library-card > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 44px;
	border-radius: 11px;
	background: var(--qwizz-violet);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.qwizz-library-card > a:hover,
.qwizz-library-card > a:focus-visible {
	background: #5420aa;
	color: #fff;
}

.qwizz-library__empty {
	grid-column: 1 / -1;
	padding: 24px;
	border: 1px dashed #cfc5d8;
	border-radius: 14px;
	color: var(--qwizz-muted);
	text-align: center;
}

.qwizz-library-tools {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 12px;
	margin: 24px 0 10px;
	padding: 16px;
	border: 1px solid #e5dfeb;
	border-radius: 14px;
	background: #faf8fc;
}

.qwizz-library-tools label { display: grid; flex: 1 1 170px; gap: 5px; color: var(--qwizz-ink, #241c30); font-weight: 650; }
.qwizz-library-tools input,
.qwizz-library-tools select { min-height: 44px; padding: 7px 10px; border: 1px solid #9d94a5; border-radius: 8px; background: #fff; color: #241c30; font: inherit; }
.qwizz-library-tools button,
.qwizz-library-tools > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 1px solid #6d28d9; border-radius: 8px; background: #6d28d9; color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.qwizz-library-tools > a { background: transparent; color: #5b21b6; }
.qwizz-library-count { margin: 10px 0; color: var(--qwizz-muted, #706778); }
.qwizz-library-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; padding: 0; list-style: none; }
.qwizz-library-pagination a,
.qwizz-library-pagination .current { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 4px 10px; border: 1px solid #d8d2e3; border-radius: 8px; text-decoration: none; }
.qwizz-library-pagination .current { border-color: #6d28d9; background: #f1eafd; color: #5b21b6; font-weight: 700; }

.qwizz-subjects > a {
	display: grid;
	grid-template-columns: 44px 1fr;
	align-items: center;
	gap: 2px 12px;
	min-height: 76px;
	padding: 16px;
	border: 1px solid #e5dfeb;
	border-radius: 15px;
	background: #fff;
	color: var(--qwizz-ink);
	text-decoration: none;
	box-shadow: 0 7px 23px rgba(42, 28, 58, .05);
}

.qwizz-subjects > a:hover,
.qwizz-subjects > a:focus-visible {
	border-color: #a78bfa;
	transform: translateY(-1px);
}

.qwizz-subjects > a > span {
	grid-row: 1 / 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #f1eafd;
	color: var(--qwizz-violet);
}

.qwizz-subjects small {
	color: var(--qwizz-muted);
}

.qwizz-catalog :is(h2, h3, p, small, label, button, a, b, strong),
.qwizz-subjects :is(h2, h3, p, small, a, b, strong) {
	unicode-bidi: plaintext;
}

.qwizz-library-card__top .qwizz-flag {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 20px;
	overflow: hidden;
	border: 1px solid rgba(36, 28, 48, .14);
	border-radius: 4px;
	background: #fff;
}

.qwizz-library-card__top .qwizz-flag svg {
	display: block;
	width: 24px;
	height: 16px;
}

@media (max-width: 900px) {
	.qwizz-catalog,
	.qwizz-subjects {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.qwizz-catalog,
	.qwizz-subjects {
		grid-template-columns: 1fr;
	}
}

/* Theme-contained discovery with compact, equal-height choices. */
.qwizz-catalog,.qwizz-subjects{gap:12px;margin-block:18px}.qwizz-library-card{padding:16px;border-radius:14px;box-shadow:0 7px 24px rgb(42 28 58 / 6%)}.qwizz-library-card__top>span{width:36px;height:36px;border-radius:10px}.qwizz-library-card h3{margin:12px 0 6px;font-size:17px}.qwizz-library-card p{margin-bottom:14px;line-height:1.45}.qwizz-library-tools{gap:9px;margin:18px 0 8px;padding:12px;border-radius:12px}.qwizz-subjects>a{min-height:68px;padding:12px;border-radius:12px}.qwizz-subjects>a>span{width:40px;height:40px;border-radius:10px}
