/* Reusable reader controls for long-form summaries */

.tk-reader {
	--tk-reader-font-size: 1.08rem;
	--tk-reader-line-height: 1.75;
}

.tk-reader[data-reader-size='compact'] {
	--tk-reader-font-size: 1rem;
	--tk-reader-line-height: 1.68;
}

.tk-reader[data-reader-size='normal'] {
	--tk-reader-font-size: 1.08rem;
	--tk-reader-line-height: 1.75;
}

.tk-reader[data-reader-size='large'] {
	--tk-reader-font-size: 1.2rem;
	--tk-reader-line-height: 1.78;
}

.tk-reader[data-reader-size='xlarge'] {
	--tk-reader-font-size: 1.32rem;
	--tk-reader-line-height: 1.82;
}

.tk-reader-settings {
	position: sticky;
	top: 0.75rem;
	z-index: 1010;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1rem;
	padding: 0.625rem 0.75rem;
	border: 1px solid rgba(67, 97, 238, 0.14);
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.tk-reader-settings__title {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	color: var(--text-secondary, #6c757d);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.2;
}

.tk-reader-settings__title .material-icons {
	font-size: 1.15rem;
	color: var(--color-primary, #4361ee);
}

.tk-reader-settings__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.tk-reader-settings__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0.35rem 0.65rem;
	border: 1px solid rgba(67, 97, 238, 0.22);
	border-radius: 0.55rem;
	background: #fff;
	color: var(--color-primary, #4361ee);
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition:
		background 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease,
		box-shadow 0.15s ease;
}

.tk-reader-settings__button:hover:not(:disabled) {
	background: rgba(67, 97, 238, 0.08);
	border-color: rgba(67, 97, 238, 0.38);
	box-shadow: 0 4px 14px rgba(67, 97, 238, 0.14);
}

.tk-reader-settings__button:focus-visible {
	outline: 2px solid var(--color-primary, #4361ee);
	outline-offset: 2px;
}

.tk-reader-settings__button:disabled {
	opacity: 0.42;
	cursor: not-allowed;
}

.tk-reader-settings__button--reset .material-icons {
	font-size: 1.25rem;
}

.tk-reader-settings__value {
	min-width: 3.5rem;
	color: var(--text-primary, #212529);
	font-size: 0.88rem;
	font-weight: 600;
	text-align: center;
}

.tk-reader p,
.tk-reader li {
	font-size: var(--tk-reader-font-size);
	line-height: var(--tk-reader-line-height);
}

.tk-reader .lead {
	font-size: calc(var(--tk-reader-font-size) + 0.08rem);
	line-height: 1.65;
}

.tk-reader small,
.tk-reader .small {
	font-size: calc(var(--tk-reader-font-size) - 0.12rem);
	line-height: 1.55;
}

.tk-reader h4 {
	font-size: calc(var(--tk-reader-font-size) + 0.36rem);
	line-height: 1.28;
}

.tk-reader h5 {
	font-size: calc(var(--tk-reader-font-size) + 0.2rem);
	line-height: 1.32;
}

.tk-reader h6 {
	font-size: calc(var(--tk-reader-font-size) + 0.04rem);
	line-height: 1.35;
}

.tk-reader .alert {
	font-size: var(--tk-reader-font-size);
	line-height: var(--tk-reader-line-height);
}

.tk-reader ul,
.tk-reader ol {
	padding-left: 1.45rem;
}

.tk-reader li + li {
	margin-top: 0.35rem;
}

@media (max-width: 575.98px) {
	.tk-reader[data-reader-size='compact'] {
		--tk-reader-font-size: 1.04rem;
		--tk-reader-line-height: 1.7;
	}

	.tk-reader[data-reader-size='normal'] {
		--tk-reader-font-size: 1.15rem;
		--tk-reader-line-height: 1.78;
	}

	.tk-reader[data-reader-size='large'] {
		--tk-reader-font-size: 1.28rem;
		--tk-reader-line-height: 1.82;
	}

	.tk-reader[data-reader-size='xlarge'] {
		--tk-reader-font-size: 1.42rem;
		--tk-reader-line-height: 1.86;
	}

	.tk-reader-settings {
		top: 0.5rem;
		align-items: stretch;
		flex-direction: column;
		padding: 0.6rem;
		border-radius: 0.65rem;
	}

	.tk-reader-settings__actions {
		display: grid;
		grid-template-columns: 44px minmax(3rem, 1fr) 44px 44px;
		width: 100%;
	}

	.tk-reader-settings__value {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.tk-reader .card-body {
		padding: 1.25rem !important;
	}

	.tk-reader h4.d-flex,
	.tk-reader h5.d-flex {
		align-items: flex-start !important;
	}

	.tk-reader h4 .material-icons,
	.tk-reader h5 .material-icons {
		flex-shrink: 0;
		margin-top: 0.15rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tk-reader-settings__button {
		transition: none;
	}
}
