/*
 * 知识库章节 · 沉浸阅读
 *
 * 类打在 <html> 上（首屏脚本 + reader.js），好藏主题 .app-sidebar。
 * 侧栏只许 display:none，不要动 view-transition-name / visibility。
 * 进出沉浸用左右滑，不用整页淡、也不用 View Transition。
 */

html.mytheme-kb-immersive,
html.mytheme-kb-immersive body,
html.mytheme-kb-immersive .mytheme-page-shell,
html.mytheme-kb-immersive .mytheme-page-main,
html.mytheme-kb-immersive .mytheme-page-main > main {
	background: #fff;
}

html.mytheme-kb-immersive .mytheme-page-main > header {
	display: none !important;
}

@media (min-width: 768px) {
	html.mytheme-kb-immersive .app-sidebar {
		display: none !important;
	}
}

html.mytheme-kb-immersive .mytheme-kb-reader {
	min-height: 100vh;
	background: #fff;
}

html.mytheme-kb-immersive .mytheme-kb-reader-toolbar,
html.mytheme-kb-immersive .mytheme-kb-chapter-nav {
	display: none !important;
}

html.mytheme-kb-immersive .mytheme-kb-reader-grid,
html.mytheme-kb-immersive .mytheme-kb-reader-grid.is-intro {
	grid-template-columns: minmax(0, 1fr);
}

html.mytheme-kb-immersive .mytheme-kb-content {
	width: min(100% - 3rem, var(--kb-read-max));
	padding-top: 4.5rem;
	margin-block: 0 5rem;
}

/*
 * 宽屏沉浸：左空 1fr + 正文限宽 + 右 1fr。细条坐在右列开头，
 * 和合集「正文 | 大纲」一样贴着字，不要 position:fixed 甩到窗口边上。
 */
@media (min-width: 1100px) {
	html.mytheme-kb-immersive .mytheme-kb-reader-grid:not(.is-intro) {
		grid-template-columns: minmax(1.5rem, 1fr) minmax(0, var(--kb-read-max)) minmax(7rem, 1fr);
	}

	html.mytheme-kb-immersive .mytheme-kb-reader-grid:not(.is-intro) .mytheme-kb-content {
		grid-column: 2;
		width: 100%;
		justify-self: stretch;
	}
}

html.mytheme-kb-immersive .mytheme-kb-immersive-enter {
	display: none !important;
}

/* —— 入口：本页目录下面 / 窄屏工具条 / 中档左栏底 —— */
.mytheme-kb-immersive-enter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	box-sizing: border-box;
	border: 1px solid #ccc;
	background: #fff;
	color: #999;
	font-size: 13px; /* text-footnote，跟退出沉浸同一档 */
	font-weight: 500;
	line-height: 16px;
	cursor: pointer;
	padding: 0 0.5rem;
	min-height: 24px;
	border-radius: 9999px;
	width: fit-content;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.mytheme-kb-immersive-enter--toc {
	margin-top: 1.25rem;
	width: fit-content;
}

.mytheme-kb-nav-immersive-slot {
	flex-shrink: 0;
	padding-top: 0.5rem;
}

.mytheme-kb-immersive-enter--nav-bottom {
	display: none;
	margin-top: 0;
	width: fit-content;
}

.mytheme-kb-immersive-enter--toolbar {
	display: none;
	width: 34px;
	height: 34px;
	min-height: 34px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: #f5f5f5;
	color: #222;
	flex-shrink: 0;
}

.mytheme-kb-immersive-enter:hover {
	background: #fff;
	color: #222;
	border-color: #222;
}

.mytheme-kb-immersive-enter--toolbar:hover {
	background: #f5f5f5;
	color: #222;
	border-color: transparent;
}

.mytheme-kb-immersive-enter:focus-visible,
.mytheme-kb-immersive-exit:focus-visible,
.mytheme-kb-page-toc-pin:focus-visible {
	outline: 2px solid #111;
	outline-offset: 2px;
	border-radius: 4px;
}

.mytheme-kb-immersive-enter-icon {
	flex-shrink: 0;
	width: 12px;
	height: 12px;
}

.mytheme-kb-immersive-enter--toolbar .mytheme-kb-immersive-enter-icon {
	width: 16px;
	height: 16px;
}

.mytheme-kb-page-toc-rail,
.mytheme-kb-page-toc-title-float,
.mytheme-kb-page-toc-pin {
	display: none;
}

@media (max-width: 1099px) {
	.mytheme-kb-immersive-enter--toc {
		display: none;
	}

	.mytheme-kb-immersive-enter--nav-bottom {
		display: inline-flex;
	}
}

@media (max-width: 999px) {
	.mytheme-kb-immersive-enter--nav-bottom {
		display: none;
	}

	.mytheme-kb-immersive-enter--toolbar {
		display: inline-flex;
	}
}

/* —— 沉浸控件：回书架留左上；退出钮跟大纲细条走，描边黑字胶囊 —— */
.mytheme-kb-immersive-chrome {
	display: none;
}

html.mytheme-kb-immersive .mytheme-kb-immersive-chrome {
	display: block;
}

.mytheme-kb-immersive-chrome-start {
	position: fixed;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 1.25rem);
	left: 1.25rem;
	z-index: 32;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: min(42vw, 18rem);
}

html.mytheme-kb-immersive .mytheme-kb-immersive-chrome .mytheme-kb-back {
	display: inline-flex;
}

.mytheme-kb-immersive-chrome-title {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #999;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	text-decoration: none;
}

.mytheme-kb-immersive-chrome-title:hover {
	color: #666;
}

.mytheme-kb-immersive-exit {
	display: none;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	border: 1px solid #ccc;
	background: #fff;
	color: #999;
	font-size: 13px; /* text-footnote */
	font-weight: 500;
	line-height: 16px;
	min-height: 24px;
	padding: 0 0.5rem;
	border-radius: 9999px;
	cursor: pointer;
	width: fit-content;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.mytheme-kb-immersive-exit:hover {
	background: #fff;
	color: #222;
	border-color: #222;
}

.mytheme-kb-immersive-toast {
	position: fixed;
	left: 50%;
	bottom: 1.75rem;
	z-index: 40;
	transform: translateX(-50%) translateY(8px);
	padding: 0.65rem 1.1rem;
	border-radius: 9999px;
	background: #222;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.mytheme-kb-immersive-toast.is-on {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

@media (max-width: 1099px) {
	.mytheme-kb-immersive-chrome-title {
		display: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-immersive-chrome .mytheme-kb-immersive-exit {
		display: inline-flex;
		position: fixed;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 1.25rem);
		right: 1.25rem;
		z-index: 32;
		min-height: 26px;
	}
}

/* —— 沉浸：默认细条，悬上去才出大纲卡（对齐合集 PostPanelToc） —— */
@media (min-width: 1100px) {
	html.mytheme-kb-immersive .mytheme-kb-page-toc {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		grid-column: 3;
		justify-self: start;
		align-self: start;
		position: sticky;
		/* 一屏高的粘列，细条+退出钮落在画面正中，不再靠堆 padding 往下顶 */
		top: var(--wp-admin--admin-bar--height, 0px);
		left: auto;
		right: auto;
		z-index: 28;
		width: auto;
		min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
		max-height: none;
		margin: 0;
		/* 底垫一点，居中块会略高于画面正中 */
		padding: 0 1rem 2rem 2.75rem;
		overflow: visible;
		background: transparent;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc .mytheme-kb-immersive-exit {
		display: inline-flex;
		align-self: flex-start;
		margin-top: 0.65rem;
		margin-left: 0;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-inner {
		position: relative;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-edit-slot {
		display: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-rail {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.72rem;
		padding: 0.25rem 0;
		cursor: pointer;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-rail-bar {
		position: relative;
		display: block;
		height: 4px;
		width: 32px;
		border-radius: 999px;
		background: #f3f4f6;
		overflow: hidden;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-rail-fill {
		position: absolute;
		inset: 0 auto 0 0;
		width: 0;
		border-radius: 999px;
		background: rgba(34, 34, 34, 0.55);
		transition: width 0.45s ease;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-panel {
		position: absolute;
		top: 0;
		left: 100%;
		right: auto;
		margin-left: 12px;
		margin-right: 0;
		width: 13.5rem;
		max-height: min(70vh, 560px);
		padding: 1rem 0.85rem 1rem 0.75rem;
		overflow: auto;
		overscroll-behavior: contain;
		background: #fff;
		border: 1px solid #ededed;
		border-radius: 14px;
		box-shadow: 0 8px 28px rgba(17, 17, 17, 0.08);
		opacity: 0;
		pointer-events: none;
		transform: translateX(-6px);
		transition: opacity 0.2s ease, transform 0.2s ease;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-flip .mytheme-kb-page-toc-panel {
		left: auto;
		right: 100%;
		margin-left: 0;
		margin-right: 12px;
		transform: translateX(6px);
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-hold .mytheme-kb-page-toc-panel {
		opacity: 0 !important;
		pointer-events: none !important;
		transform: translateX(-6px);
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-open .mytheme-kb-page-toc-panel,
	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-pinned .mytheme-kb-page-toc-panel {
		opacity: 1;
		pointer-events: auto;
		transform: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-pinned .mytheme-kb-page-toc-rail {
		display: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-pinned .mytheme-kb-page-toc-panel {
		position: static;
		right: auto;
		margin-right: 0;
		transform: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-title-plain {
		display: none;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-title-float {
		display: inline;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-title {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
		margin-bottom: 0.85rem;
		color: #999;
		font-weight: 400;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-pin {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		color: #ccc;
		cursor: pointer;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc.is-toc-pinned .mytheme-kb-page-toc-pin {
		color: var(--kb-primary, #e03030);
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-list {
		border-left: 0;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-list a,
	html.mytheme-kb-immersive .mytheme-kb-page-toc-list .mytheme-kb-page-toc-item {
		margin-left: 0;
		padding: 0.35rem 0.5rem 0.35rem 0.7rem;
		border-left: 2px solid transparent;
		border-radius: 0 6px 6px 0;
	}

	html.mytheme-kb-immersive .mytheme-kb-page-toc-list a.is-active {
		font-weight: 600;
	}
}

@media (max-width: 1099px) {
	html.mytheme-kb-immersive .mytheme-kb-page-toc {
		display: none !important;
	}
}

/*
 * 进出沉浸：侧栏/章节栏往左收，本页目录往右收，再换布局；
 * 回书架从左滑入，细条和退出从右滑入。只动 transform/opacity。
 */
html.mytheme-kb-im-anim,
html.mytheme-kb-im-anim body {
	background: #fff;
}

html.mytheme-kb-im-anim .mytheme-page-shell {
	overflow: hidden;
}

html.mytheme-kb-im-anim .app-sidebar,
html.mytheme-kb-im-anim .mytheme-kb-chapter-nav,
html.mytheme-kb-im-anim .mytheme-kb-page-toc,
html.mytheme-kb-im-anim .mytheme-kb-content,
html.mytheme-kb-im-anim .mytheme-kb-reader-toolbar {
	will-change: transform, opacity;
	pointer-events: none;
}

html.mytheme-kb-im-anim .mytheme-kb-immersive-enter,
html.mytheme-kb-im-anim .mytheme-kb-immersive-exit {
	pointer-events: auto;
}

html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .app-sidebar {
	transition: transform 0.34s cubic-bezier(0.4, 0, 0.2, 1);
}

html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-chapter-nav,
html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-page-toc,
html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-reader-toolbar {
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.24s ease;
}

html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-content,
html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-immersive-chrome-start,
html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-page-toc-rail,
html.mytheme-kb-im-anim:not(.mytheme-kb-im-show-normal):not(.mytheme-kb-im-show-immersive) .mytheme-kb-immersive-exit {
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
}

html.mytheme-kb-im-hide-normal .app-sidebar {
	transform: translateX(-110%);
	transition: transform 0.34s cubic-bezier(0.4, 0, 0.2, 1);
}

html.mytheme-kb-im-hide-normal .mytheme-kb-chapter-nav {
	transform: translateX(-2.25rem);
	opacity: 0;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.24s ease;
	transition-delay: 0.04s;
}

html.mytheme-kb-im-hide-normal .mytheme-kb-page-toc {
	transform: translateX(2.25rem);
	opacity: 0;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.24s ease;
	transition-delay: 0.05s;
}

html.mytheme-kb-im-hide-normal .mytheme-kb-content {
	transform: translateX(-1.5rem);
	transition: transform 0.34s cubic-bezier(0.4, 0, 0.2, 1);
}

html.mytheme-kb-im-hide-normal .mytheme-kb-reader-toolbar {
	transform: translateY(-0.75rem);
	opacity: 0;
	transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
}

html.mytheme-kb-im-hide-immersive .mytheme-kb-immersive-chrome-start {
	transform: translateX(-1.5rem);
	opacity: 0;
	transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
}

html.mytheme-kb-im-hide-immersive .mytheme-kb-page-toc-rail,
html.mytheme-kb-im-hide-immersive .mytheme-kb-page-toc .mytheme-kb-immersive-exit,
html.mytheme-kb-im-hide-immersive .mytheme-kb-immersive-chrome .mytheme-kb-immersive-exit {
	transform: translateX(1.5rem);
	opacity: 0;
	transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
}

html.mytheme-kb-im-hide-immersive .mytheme-kb-content {
	transform: translateX(1.5rem);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

html.mytheme-kb-im-show-immersive:not(.mytheme-kb-im-show-go) .mytheme-kb-content,
html.mytheme-kb-im-show-normal:not(.mytheme-kb-im-show-go) .app-sidebar,
html.mytheme-kb-im-show-normal:not(.mytheme-kb-im-show-go) .mytheme-kb-chapter-nav,
html.mytheme-kb-im-show-normal:not(.mytheme-kb-im-show-go) .mytheme-kb-page-toc,
html.mytheme-kb-im-show-normal:not(.mytheme-kb-im-show-go) .mytheme-kb-reader-toolbar,
html.mytheme-kb-im-show-normal:not(.mytheme-kb-im-show-go) .mytheme-kb-content {
	transition: none;
}

html.mytheme-kb-im-show-immersive .mytheme-kb-content {
	transform: translateX(5.5rem);
}

html.mytheme-kb-im-show-immersive.mytheme-kb-im-show-go .mytheme-kb-content {
	transform: none;
	transition: transform 0.42s cubic-bezier(0.16, 1.12, 0.3, 1);
}

html.mytheme-kb-im-show-immersive.mytheme-kb-im-show-go .mytheme-kb-immersive-chrome-start {
	animation: mytheme-kb-im-slide-left 0.42s cubic-bezier(0.16, 1.12, 0.3, 1) both;
}

html.mytheme-kb-im-show-immersive.mytheme-kb-im-show-go .mytheme-kb-page-toc-rail,
html.mytheme-kb-im-show-immersive.mytheme-kb-im-show-go .mytheme-kb-page-toc .mytheme-kb-immersive-exit,
html.mytheme-kb-im-show-immersive.mytheme-kb-im-show-go .mytheme-kb-immersive-chrome .mytheme-kb-immersive-exit {
	animation: mytheme-kb-im-slide-right 0.42s cubic-bezier(0.16, 1.12, 0.3, 1) both;
}

html.mytheme-kb-im-show-normal .app-sidebar {
	transform: translateX(-110%);
}

html.mytheme-kb-im-show-normal .mytheme-kb-chapter-nav,
html.mytheme-kb-im-show-normal .mytheme-kb-reader-toolbar {
	transform: translateX(-2.25rem);
	opacity: 0;
}

html.mytheme-kb-im-show-normal .mytheme-kb-page-toc {
	transform: translateX(2.25rem);
	opacity: 0;
}

html.mytheme-kb-im-show-normal .mytheme-kb-content {
	transform: translateX(-4.5rem);
}

html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .app-sidebar {
	transform: none;
	transition: transform 0.44s cubic-bezier(0.16, 1.12, 0.3, 1);
}

html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .mytheme-kb-chapter-nav {
	transform: none;
	opacity: 1;
	transition: transform 0.4s cubic-bezier(0.16, 1.12, 0.3, 1), opacity 0.28s ease;
	transition-delay: 0.04s;
}

html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .mytheme-kb-page-toc {
	transform: none;
	opacity: 1;
	transition: transform 0.4s cubic-bezier(0.16, 1.12, 0.3, 1), opacity 0.28s ease;
	transition-delay: 0.06s;
}

html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .mytheme-kb-reader-toolbar {
	transform: none;
	opacity: 1;
	transition: transform 0.36s cubic-bezier(0.16, 1.12, 0.3, 1), opacity 0.24s ease;
}

html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .mytheme-kb-content {
	transform: none;
	transition: transform 0.42s cubic-bezier(0.16, 1.12, 0.3, 1);
}

@keyframes mytheme-kb-im-slide-left {
	from {
		opacity: 0;
		transform: translateX(-1.75rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes mytheme-kb-im-slide-right {
	from {
		opacity: 0;
		transform: translateX(1.75rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 767px) {
	html.mytheme-kb-im-hide-normal .app-sidebar,
	html.mytheme-kb-im-show-normal .app-sidebar,
	html.mytheme-kb-im-show-normal.mytheme-kb-im-show-go .app-sidebar {
		transform: none;
		transition: none;
	}

	html.mytheme-kb-im-show-immersive .mytheme-kb-content,
	html.mytheme-kb-im-show-normal .mytheme-kb-content {
		transform: translateY(0.75rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mytheme-kb-immersive-enter,
	.mytheme-kb-immersive-exit,
	.mytheme-kb-immersive-chrome-title,
	.mytheme-kb-immersive-toast,
	html.mytheme-kb-immersive .mytheme-kb-page-toc-panel,
	html.mytheme-kb-immersive .mytheme-kb-page-toc-rail-fill,
	html.mytheme-kb-im-anim .app-sidebar,
	html.mytheme-kb-im-anim .mytheme-kb-chapter-nav,
	html.mytheme-kb-im-anim .mytheme-kb-page-toc,
	html.mytheme-kb-im-anim .mytheme-kb-content,
	html.mytheme-kb-im-anim .mytheme-kb-reader-toolbar,
	html.mytheme-kb-im-anim .mytheme-kb-immersive-chrome-start,
	html.mytheme-kb-im-anim .mytheme-kb-immersive-exit {
		transition: none;
		animation: none;
	}

	.mytheme-kb-immersive-toast {
		transform: translateX(-50%);
	}
}
