/*
Theme Name: 尚美笔记 · 江南书斋
Theme URI: https://www.snmei.com
Author: 尚美笔记
Description: 江南园林书斋素雅风格。宣纸米白、黛黑文字、浅青灰线条，极简留白，无特效无插件依赖。
Version: 1.2.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: snmei-jiangnan
Tags: 素雅, 古风, 阅读
*/

/* ==========================================================================
   0. 设计令牌 —— 全站唯一色值来源，任何页面不得自行写死颜色
   ========================================================================== */
:root {
	/* 底色 */
	--jz-paper: #F8F6F0;         /* 宣纸米白：页面底 */
	--jz-paper-deep: #F2EEE4;    /* 稍深一档：区块底 */
	--jz-paper-line: #EDE9DF;    /* 表格斑马 / 输入框底 */

	/* 文字 */
	--jz-ink: #22262A;           /* 黛黑：正文 */
	--jz-ink-mid: #4C5359;       /* 次级文字 */
	--jz-ink-soft: #7B838A;      /* 注解 / 日期 */

	/* 线条 */
	--jz-line: #CBD2D9;          /* 浅青灰：主分割线 */
	--jz-line-soft: #E2E6EA;     /* 更淡：行间细线 */

	/* 点缀 */
	--jz-wood: #9C7A57;          /* 浅木赭 */
	--jz-wood-soft: #C4AE94;     /* 赭色细线 */
	--jz-cyan: #6F8A8B;          /* 淡墨青 */
	--jz-cyan-soft: #A8BABB;

	/* 选中文字底 */
	--jz-select: #E7E2D6;

	/* 字体：思源宋体自托管（assets/fonts/noto-serif-sc.css 按 unicode-range 分片）
	   后面几项是回落，字体未就绪时先用系统宋体顶上，不会白屏 */
	--jz-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong",
		"SimSun", "Times New Roman", serif;

	/* 尺度 */
	--jz-w: 1080px;              /* 版心 */
	--jz-w-read: 41rem;          /* 阅读行宽 */
	--jz-sp-xs: .35rem;
	--jz-sp-s: .7rem;
	--jz-sp-m: 1.15rem;
	--jz-sp-l: 1.9rem;
	--jz-sp-xl: 3rem;
	--jz-sp-2xl: 4.6rem;
	--jz-r: 2px;                 /* 全站唯一圆角 */

	/* 暗纹尺寸 */
	--jz-lattice: 46px;
}

/* ==========================================================================
   1. 基础重置
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	background-color: var(--jz-paper);
	color: var(--jz-ink);
	font-family: var(--jz-serif);
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: .01em;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--jz-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--jz-line);
}

a:hover,
a:focus-visible {
	border-bottom-color: var(--jz-wood);
	color: var(--jz-ink);
}

:focus-visible {
	outline: 1px solid var(--jz-cyan);
	outline-offset: 3px;
}

hr {
	border: 0;
	border-top: 1px solid var(--jz-line);
	margin: var(--jz-sp-l) 0;
}

::selection {
	background: var(--jz-select);
	color: var(--jz-ink);
}

/* ==========================================================================
   2. 排版
   ========================================================================== */
h1,
h2,
h3,
h4 {
	margin: 0 0 var(--jz-sp-m);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: .06em;
}

h1 {
	font-size: clamp(1.55rem, 3.2vw, 2.05rem);
}

h2 {
	font-size: clamp(1.2rem, 2.2vw, 1.4rem);
}

h3 {
	font-size: 1.1rem;
}

h4 {
	font-size: 1rem;
	color: var(--jz-ink-mid);
}

p {
	margin: 0 0 var(--jz-sp-m);
}

strong,
b {
	font-weight: 600;
}

small,
.jz-small {
	font-size: .82rem;
	color: var(--jz-ink-soft);
	letter-spacing: .02em;
}

blockquote {
	margin: var(--jz-sp-l) 0;
	padding: var(--jz-sp-m) 0 var(--jz-sp-m) var(--jz-sp-m);
	border-left: 2px solid var(--jz-wood-soft);
	color: var(--jz-ink-mid);
	background: transparent;
}

code,
pre {
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: .88em;
}

code {
	padding: .12em .4em;
	background: var(--jz-paper-line);
	border-radius: var(--jz-r);
}

pre {
	overflow-x: auto;
	padding: var(--jz-sp-m);
	background: var(--jz-paper-deep);
	border: 1px solid var(--jz-line-soft);
	border-radius: var(--jz-r);
	line-height: 1.7;
}

pre code {
	padding: 0;
	background: none;
}

table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--jz-sp-l) 0;
	font-size: .95rem;
}

th,
td {
	padding: var(--jz-sp-s) var(--jz-sp-m);
	border-bottom: 1px solid var(--jz-line-soft);
	text-align: left;
	vertical-align: top;
}

thead th {
	border-bottom: 1px solid var(--jz-line);
	color: var(--jz-ink-mid);
	font-weight: 400;
	letter-spacing: .06em;
}

/* ==========================================================================
   3. 布局骨架
   ========================================================================== */
.jz-page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.jz-main {
	flex: 1 0 auto;
	padding: var(--jz-sp-xl) 0 var(--jz-sp-2xl);
}

.jz-wrap {
	width: 100%;
	max-width: var(--jz-w);
	margin: 0 auto;
	padding: 0 1.6rem;
}

.jz-wrap--read {
	max-width: var(--jz-w-read);
}

/* 细线收束的分段：上下各一条淡线，营造书页分栏 */
.jz-band {
	border-top: 1px solid var(--jz-line-soft);
	border-bottom: 1px solid var(--jz-line-soft);
	padding: var(--jz-sp-xl) 0;
}

/* ==========================================================================
   4. 公共头部
   ========================================================================== */
.jz-header {
	border-bottom: 1px solid var(--jz-line);
	background-color: var(--jz-paper);
}

.jz-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jz-sp-m);
	min-height: 76px;
}

/* 头部标识：一枚藏书印 + 域名。印是 SVG，字形已转曲线，不依赖访客字体 */
.jz-brand {
	display: inline-flex;
	align-items: center;
	gap: .58rem;
	border-bottom: 0;
	font-size: 1.06rem;
	letter-spacing: .04em;
	line-height: 1;
}

.jz-brand:hover {
	border-bottom: 0;
}

.jz-brand__mark {
	display: block;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	/* 拉丁字母的视觉重心在 x-height 上，24px 的方印按行盒居中会显得偏上，
	   这里压下去 2px 与字母中线齐平（改这一个数就够了，别在模板里再调） */
	transform: translateY(3px);
}

.jz-brand__name {
	line-height: 1;
	white-space: nowrap;
}

.jz-brand__tld {
	font-size: .86em;
}

/* 导航：5 个固定栏目，等距，细下划线的当前项 */
.jz-nav {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(.9rem, 2.6vw, 2.2rem);
}

.jz-nav a {
	position: relative;
	flex: 0 0 auto;
	padding: .35rem 0;
	border-bottom: 0;
	font-size: .95rem;
	letter-spacing: .1em;
	color: var(--jz-ink-mid);
	white-space: nowrap;
}

.jz-nav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: transparent;
}

.jz-nav a:hover {
	color: var(--jz-ink);
}

.jz-nav a.is-active {
	color: var(--jz-ink);
}

.jz-nav a.is-active::after {
	background: var(--jz-wood-soft);
}

/* ==========================================================================
   5. 公共底部
   ========================================================================== */
.jz-footer {
	flex: 0 0 auto;
	border-top: 1px solid var(--jz-line);
	padding: var(--jz-sp-l) 0;
	background-color: var(--jz-paper);
}

/* 左列字样、右列法务链接。用 grid 而不是 flex：
   flex 下这层「会自己换行的容器」按内容算宽度时会被算成最宽单项，
   第二行备案就被白白挤下去；grid 的 1fr 是确定宽度，不给它钻空子。 */
.jz-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--jz-sp-s) var(--jz-sp-l);
	font-size: .8rem;
	color: var(--jz-ink-soft);
	letter-spacing: .04em;
}

.jz-footer a {
	color: var(--jz-ink-soft);
	border-bottom-color: var(--jz-line-soft);
}

.jz-footer a:hover {
	color: var(--jz-ink-mid);
	border-bottom-color: var(--jz-wood-soft);
}

/* 版权 + 两条备案：各自整块不拆，换行时「·」不会孤零零落在行首 */
.jz-footer__copy {
	min-width: 0;
}

/* 用右外边距而不是左：换行后左外边距会变成行首缩进，右的不会 */
.jz-footer__item {
	white-space: nowrap;
	margin-right: var(--jz-sp-s);
}

.jz-footer__item:last-child {
	margin-right: 0;
}

/* 分隔点比文字淡一档，别抢眼 */
.jz-footer__sep {
	color: var(--jz-line);
}

/* 公安备案徽标：官方 62×67 的警徽，按 16px 高显示，与文字基线对齐。
   全局 img 是 display:block（正文配图要独占一行），这里必须改回 inline，
   否则图标会把备案号顶到下一行。 */
.jz-footer__badge {
	display: inline-block;
	width: auto;
	height: 16px;
	margin-right: var(--jz-sp-xs);
	vertical-align: -.22em;
	border: 0;
}

.jz-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jz-sp-m);
	flex: 0 0 auto;
}

/* ==========================================================================
   6. 首页
   ========================================================================== */
.jz-hero {
	position: relative;
	padding: var(--jz-sp-2xl) 0 var(--jz-sp-xl);
	border-bottom: 1px solid var(--jz-line-soft);
	overflow: hidden;
}

/* 窗棂细格：一张 46px 的方格 + 中心小框，只出现在标题区，向下淡出，不压字 */
.jz-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46' viewBox='0 0 46 46'%3E%3Cg fill='none' stroke='%23CBD2D9' stroke-width='1'%3E%3Cpath d='M0 .5h46M.5 0v46' stroke-opacity='.62'/%3E%3Cpath d='M15.5 15.5h15v15h-15z' stroke-opacity='.34'/%3E%3C/g%3E%3C/svg%3E");
	background-size: var(--jz-lattice) var(--jz-lattice);
	background-repeat: repeat;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .58), transparent 86%);
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .58), transparent 86%);
	pointer-events: none;
}

.jz-hero__inner {
	position: relative;
	max-width: 34rem;
}

.jz-hero__title {
	margin: 0 0 var(--jz-sp-s);
	letter-spacing: .14em;
}

.jz-hero__desc {
	margin: 0;
	color: var(--jz-ink-mid);
	font-size: .95rem;
	letter-spacing: .04em;
}

/* 远山淡墨：底部一条极淡山形，纯装饰。用曲线而非折线，避免出现整齐的锯齿带 */
.jz-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 76px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='76' viewBox='0 0 640 76'%3E%3Cpath d='M0 76V54c40 0 60-24 96-24s54 22 90 22 54-32 92-32 56 30 92 30 54-16 92-16 56 22 94 20c24-1 50 0 84 0v22z' fill='%2322262A' fill-opacity='.05'/%3E%3C/svg%3E");
	background-repeat: repeat-x;
	background-position: bottom center;
	background-size: auto 76px;
	pointer-events: none;
}

.jz-hero > .jz-wrap {
	position: relative;
	z-index: 1;
}

/* 栏目区块 */
.jz-section {
	padding: var(--jz-sp-xl) 0;
}

.jz-section + .jz-section {
	border-top: 1px solid var(--jz-line-soft);
}

.jz-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--jz-sp-m);
	margin-bottom: var(--jz-sp-l);
}

.jz-section__title {
	position: relative;
	margin: 0;
	padding-left: 1rem;
	font-size: 1.22rem;
	letter-spacing: .14em;
}

/* 标题前的一小段木赭竖线，全站唯一装饰 */
.jz-section__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 2px;
	height: .95em;
	background: var(--jz-wood-soft);
}

.jz-section__more {
	font-size: .82rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
	border-bottom-color: transparent;
}

.jz-section__more:hover {
	border-bottom-color: var(--jz-wood-soft);
}

/* ==========================================================================
   7. 卡片（作品）
   ========================================================================== */
/* 窗格：外框只画上、左，每张卡画右、下，拼成一张连续细线网。
   不能给容器铺底色来做格线——条目不满一行时，空格会露出底色变成一块灰。 */
.jz-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 0;
	border-top: 1px solid var(--jz-line-soft);
	border-left: 1px solid var(--jz-line-soft);
}

.jz-card {
	display: flex;
	flex-direction: column;
	padding: var(--jz-sp-m);
	background: var(--jz-paper);
	border-right: 1px solid var(--jz-line-soft);
	border-bottom: 1px solid var(--jz-line-soft);
	border-left: 0;
}

.jz-card:hover {
	background: var(--jz-paper-deep);
}

.jz-card__thumb {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--jz-paper-line);
	border: 1px solid var(--jz-line-soft);
	margin-bottom: var(--jz-sp-s);
}

.jz-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 手作实拍图缺省时的淡框占位，不显示破图 */
.jz-card__thumb--blank::after {
	content: "尚美";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--jz-cyan-soft);
	font-size: .8rem;
	letter-spacing: .3em;
}

.jz-card__title {
	margin: 0 0 var(--jz-sp-xs);
	font-size: 1rem;
	line-height: 1.6;
	letter-spacing: .04em;
}

.jz-card__desc {
	margin: 0;
	color: var(--jz-ink-mid);
	font-size: .86rem;
	line-height: 1.8;
	/* 固定占两行高度：摘要长短不一时，卡片底部日期仍能齐平 */
	height: 3.6em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.jz-card__meta {
	margin-top: auto;
	padding-top: var(--jz-sp-s);
	font-size: .76rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
}

/* ==========================================================================
   8. 条目行（教程 / 典籍列表）
   ========================================================================== */
.jz-rows {
	border-top: 1px solid var(--jz-line);
}

/* 紧接页面标题时不再补顶线，否则和标题的下边线叠成两条 */
.jz-pagehead + .jz-rows {
	border-top: 0;
}

.jz-row {
	display: grid;
	grid-template-columns: 8.5rem 1fr;
	gap: var(--jz-sp-m);
	padding: var(--jz-sp-m) 0;
	border-bottom: 1px solid var(--jz-line-soft);
	border-left: 0;
	border-right: 0;
	align-items: start;
}

.jz-row:hover {
	border-bottom-color: var(--jz-line);
}

.jz-row__side {
	font-size: .78rem;
	color: var(--jz-ink-soft);
	letter-spacing: .08em;
	padding-top: .35em;
}

.jz-row__side b {
	display: block;
	font-weight: 400;
	color: var(--jz-wood);
}

.jz-row__title {
	margin: 0 0 var(--jz-sp-xs);
	font-size: 1.05rem;
	line-height: 1.65;
	letter-spacing: .04em;
}

.jz-row__desc {
	margin: 0;
	color: var(--jz-ink-mid);
	font-size: .88rem;
	line-height: 1.85;
}

/* ==========================================================================
   9. 按钮
   ========================================================================== */
.jz-btn {
	display: inline-block;
	padding: .62rem 1.5rem;
	border: 1px solid var(--jz-ink);
	border-radius: var(--jz-r);
	background: transparent;
	color: var(--jz-ink);
	font-family: inherit;
	font-size: .9rem;
	letter-spacing: .12em;
	line-height: 1.6;
	cursor: pointer;
	text-align: center;
}

.jz-btn:hover {
	background: var(--jz-ink);
	color: var(--jz-paper);
	border-color: var(--jz-ink);
}

.jz-btn--wood {
	border-color: var(--jz-wood-soft);
	color: var(--jz-wood);
}

.jz-btn--wood:hover {
	background: var(--jz-wood);
	border-color: var(--jz-wood);
	color: var(--jz-paper);
}

.jz-btn--quiet {
	border-color: var(--jz-line);
	color: var(--jz-ink-mid);
}

.jz-btn--quiet:hover {
	background: var(--jz-paper-deep);
	color: var(--jz-ink);
	border-color: var(--jz-line);
}

.jz-btn--wide {
	display: block;
	width: 100%;
}

/* ==========================================================================
   10. 阅读页（作品 / 教程 / 典籍共用版式）
   ========================================================================== */
.jz-entry {
	max-width: var(--jz-w-read);
	margin: 0 auto;
}

.jz-entry__head {
	padding-bottom: var(--jz-sp-m);
	border-bottom: 1px solid var(--jz-line);
	margin-bottom: var(--jz-sp-l);
}

.jz-entry__kicker {
	display: inline-block;
	margin-bottom: var(--jz-sp-s);
	font-size: .78rem;
	color: var(--jz-wood);
	letter-spacing: .16em;
}

.jz-entry__title {
	margin: 0 0 var(--jz-sp-s);
	letter-spacing: .06em;
	line-height: 1.55;
}

.jz-entry__meta {
	font-size: .8rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
}

.jz-entry__meta span + span::before {
	content: "·";
	margin: 0 .55rem;
	color: var(--jz-line);
}

.jz-entry__cover {
	margin: 0 0 var(--jz-sp-l);
	border: 1px solid var(--jz-line-soft);
}

.jz-entry__body {
	font-size: 1.02rem;
	line-height: 2.05;
}

.jz-entry__body > * + * {
	margin-top: var(--jz-sp-m);
}

.jz-entry__body h2 {
	margin-top: var(--jz-sp-xl);
	padding-left: .85rem;
	border-left: 2px solid var(--jz-wood-soft);
	letter-spacing: .08em;
}

.jz-entry__body h3 {
	margin-top: var(--jz-sp-l);
	color: var(--jz-ink);
}

.jz-entry__body ul,
.jz-entry__body ol {
	margin: 0 0 var(--jz-sp-m);
	padding-left: 1.4rem;
}

.jz-entry__body li {
	margin-bottom: var(--jz-sp-xs);
}

.jz-entry__body li::marker {
	color: var(--jz-cyan-soft);
}

/* 正文第一块和上方分割线之间留一口气；图片开头时尤其明显 */
.jz-entry__body > :first-child {
	margin-top: var(--jz-sp-m);
}

.jz-entry__body img {
	max-width: 100%;
	height: auto;
	display: block;
	margin-right: auto;
	margin-left: auto;
}

.jz-entry__body figure {
	margin: var(--jz-sp-l) 0;
}

.jz-entry__body figcaption {
	margin-top: var(--jz-sp-xs);
	font-size: .78rem;
	color: var(--jz-ink-soft);
	text-align: center;
	letter-spacing: .04em;
}

.jz-entry__foot {
	margin-top: var(--jz-sp-xl);
	padding-top: var(--jz-sp-m);
	border-top: 1px solid var(--jz-line-soft);
}

/* 上一篇 / 下一篇：两列细线分隔（同样用边框拼线，缺一篇时不会露底色） */
.jz-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border-top: 1px solid var(--jz-line-soft);
	border-left: 1px solid var(--jz-line-soft);
	margin-top: var(--jz-sp-l);
}

.jz-pager a,
.jz-pager span {
	display: block;
	padding: var(--jz-sp-m);
	background: var(--jz-paper);
	border-right: 1px solid var(--jz-line-soft);
	border-bottom: 1px solid var(--jz-line-soft);
	border-left: 0;
	font-size: .88rem;
	line-height: 1.7;
}

.jz-pager a:hover {
	background: var(--jz-paper-deep);
}

.jz-pager em {
	display: block;
	font-style: normal;
	font-size: .74rem;
	color: var(--jz-ink-soft);
	letter-spacing: .1em;
	margin-bottom: .2rem;
}

.jz-pager .is-right {
	text-align: right;
}

/* ==========================================================================
   11. 拦截页（藏经阁游客）
   ========================================================================== */
.jz-lock {
	max-width: 30rem;
	margin: var(--jz-sp-xl) auto;
	text-align: center;
}

/* 双线窗棂框：外层细线，内层偏移细线 */
.jz-lock__frame {
	position: relative;
	padding: var(--jz-sp-xl) var(--jz-sp-l);
	border: 1px solid var(--jz-line);
}

.jz-lock__frame::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid var(--jz-line-soft);
	pointer-events: none;
}

.jz-lock__mark {
	display: block;
	margin: 0 auto var(--jz-sp-m);
	width: 26px;
	height: 34px;
	border: 1px solid var(--jz-wood-soft);
	position: relative;
}

.jz-lock__mark::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: var(--jz-line);
	transform: translateX(-50%);
}

.jz-lock__title {
	margin: 0 0 var(--jz-sp-s);
	font-size: 1.15rem;
	letter-spacing: .18em;
}

.jz-lock__text {
	margin: 0 0 var(--jz-sp-l);
	color: var(--jz-ink-mid);
	font-size: .92rem;
	letter-spacing: .06em;
}

.jz-lock__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jz-sp-s);
	justify-content: center;
}

.jz-lock__note {
	margin: var(--jz-sp-m) 0 0;
	font-size: .78rem;
	color: var(--jz-ink-soft);
}

/* ==========================================================================
   12. 会员中心（2×2 窗格）
   ========================================================================== */
.jz-member {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--jz-line-soft);
	border: 1px solid var(--jz-line-soft);
	margin-top: var(--jz-sp-l);
}

.jz-panel {
	padding: var(--jz-sp-l) var(--jz-sp-m);
	background: var(--jz-paper);
}

.jz-panel__title {
	margin: 0 0 var(--jz-sp-m);
	font-size: .95rem;
	letter-spacing: .14em;
	color: var(--jz-ink);
}

.jz-panel__title span {
	font-size: .74rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
	margin-left: .4rem;
}

.jz-panel__list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .88rem;
}

.jz-panel__list li {
	padding: var(--jz-sp-xs) 0;
	border-bottom: 1px solid var(--jz-line-soft);
	line-height: 1.8;
	display: flex;
	justify-content: space-between;
	gap: var(--jz-sp-s);
}

.jz-panel__list li:last-child {
	border-bottom: 0;
}

.jz-panel__list em {
	font-style: normal;
	color: var(--jz-ink-soft);
	font-size: .78rem;
	white-space: nowrap;
}

.jz-panel__count {
	font-size: 1.9rem;
	line-height: 1.3;
	color: var(--jz-wood);
	letter-spacing: .04em;
}

/* ==========================================================================
   13. 表单
   ========================================================================== */
.jz-form {
	max-width: 26rem;
}

.jz-field {
	margin-bottom: var(--jz-sp-m);
}

.jz-field label,
.jz-label {
	display: block;
	margin-bottom: var(--jz-sp-xs);
	font-size: .84rem;
	color: var(--jz-ink-mid);
	letter-spacing: .08em;
}

.jz-input,
.jz-textarea,
.jz-select {
	width: 100%;
	padding: .6rem .8rem;
	border: 1px solid var(--jz-line);
	border-radius: var(--jz-r);
	background: var(--jz-paper);
	color: var(--jz-ink);
	font-family: inherit;
	font-size: .95rem;
	line-height: 1.7;
}

.jz-input:focus,
.jz-textarea:focus,
.jz-select:focus {
	outline: 1px solid var(--jz-cyan);
	outline-offset: 0;
	border-color: var(--jz-cyan-soft);
}

.jz-textarea {
	min-height: 12rem;
	resize: vertical;
}

.jz-form__foot {
	margin-top: var(--jz-sp-l);
}

.jz-form__hint {
	margin-top: var(--jz-sp-s);
	font-size: .78rem;
	color: var(--jz-ink-soft);
}

.jz-form__hint a {
	color: var(--jz-wood);
}

/* ==========================================================================
   14. 提示条 / 空状态 / 分页
   ========================================================================== */
.jz-notice {
	margin: var(--jz-sp-m) 0;
	padding: var(--jz-sp-s) var(--jz-sp-m);
	border-left: 2px solid var(--jz-cyan-soft);
	background: var(--jz-paper-deep);
	color: var(--jz-ink-mid);
	font-size: .88rem;
}

.jz-notice--warn {
	border-left-color: var(--jz-wood-soft);
}

.jz-empty {
	padding: var(--jz-sp-2xl) 0;
	text-align: center;
	color: var(--jz-ink-soft);
	font-size: .9rem;
	letter-spacing: .08em;
}

/* 分页：纯文字，细线分隔 */
.jz-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--jz-sp-m);
	margin-top: var(--jz-sp-xl);
	padding-top: var(--jz-sp-m);
	border-top: 1px solid var(--jz-line-soft);
	font-size: .84rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
}

.jz-pagination a {
	border-bottom-color: transparent;
	color: var(--jz-ink-mid);
}

.jz-pagination a:hover {
	border-bottom-color: var(--jz-wood-soft);
}

.jz-pagination .is-current {
	color: var(--jz-ink);
}

/* 紧接列表时，列表末行已有下线，分页不再补顶线 */
.jz-rows + .jz-pagination,
.jz-grid + .jz-pagination {
	border-top: 0;
	padding-top: 0;
}

/* ==========================================================================
   15. 页面标题（内页统一）
   ========================================================================== */
.jz-pagehead {
	padding-bottom: var(--jz-sp-m);
	border-bottom: 1px solid var(--jz-line);
	margin-bottom: var(--jz-sp-l);
}

.jz-pagehead__title {
	margin: 0;
	font-size: clamp(1.3rem, 2.6vw, 1.6rem);
	letter-spacing: .16em;
}

.jz-pagehead__desc {
	margin: var(--jz-sp-xs) 0 0;
	font-size: .84rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
}

/* ==========================================================================
   16. 手机端适配 —— 全站唯一一套断点，任何模板不得再写 media query
   ========================================================================== */
@media (max-width: 900px) {
	.jz-wrap {
		padding: 0 1.15rem;
	}

	.jz-hero {
		padding: var(--jz-sp-xl) 0 var(--jz-sp-l);
	}

	.jz-section {
		padding: var(--jz-sp-l) 0;
	}

	.jz-main {
		padding: var(--jz-sp-l) 0 var(--jz-sp-xl);
	}
}

@media (max-width: 720px) {
	body {
		font-size: 15.5px;
		line-height: 1.85;
	}

	/* 头部：品牌一行，导航一行，避免挤在一行换行错乱。
	   只改上下内边距，左右沿用 .jz-wrap 的，否则导航会贴到屏幕边缘 */
	.jz-header__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		min-height: 0;
		padding-top: .9rem;
		padding-bottom: 0;
	}

	.jz-brand {
		padding-bottom: .7rem;
		font-size: 1rem;
		letter-spacing: .04em;
		gap: .5rem;
	}

	.jz-brand__mark {
		width: 22px;
		height: 22px;
	}

	.jz-nav {
		justify-content: space-between;
		gap: .4rem;
		border-top: 1px solid var(--jz-line-soft);
		padding: .15rem 0;
	}

	.jz-nav a {
		font-size: .88rem;
		letter-spacing: .04em;
		padding: .55rem 0;
	}

	/* 条目行：日期挪到标题上方，避免左侧定宽挤扁正文 */
	.jz-row {
		grid-template-columns: 1fr;
		gap: .25rem;
		padding: var(--jz-sp-m) 0;
	}

	.jz-row__side {
		padding-top: 0;
	}

	.jz-row__side b {
		display: inline;
		margin-left: .35rem;
	}

	.jz-row__title {
		font-size: 1rem;
	}

	/* 卡片：两列 → 一列在小屏更好读，900~720 之间仍两列 */
	.jz-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jz-member {
		grid-template-columns: minmax(0, 1fr);
	}

	.jz-entry__body {
		font-size: 1rem;
		line-height: 1.95;
	}

	.jz-pager {
		grid-template-columns: minmax(0, 1fr);
	}

	.jz-pager .is-right {
		text-align: left;
	}

	.jz-lock {
		margin: var(--jz-sp-l) auto;
	}

	.jz-lock__frame {
		padding: var(--jz-sp-l) var(--jz-sp-m);
	}

	/* 阅读页底部两个操作竖排，窄屏上不挤在同一行 */
	.jz-entry__acts {
		flex-direction: column;
		align-items: flex-start;
		gap: .5rem;
	}

	/* 分类行在手机上一行放不下就换行，间距收窄 */
	.jz-cats {
		font-size: .8rem;
		gap: .1rem .95rem;
	}

	.jz-footer__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: .5rem;
	}
}

@media (max-width: 520px) {
	.jz-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.jz-card__thumb {
		aspect-ratio: 16 / 10;
	}

	.jz-nav a {
		font-size: .84rem;
		letter-spacing: 0;
	}

	/* 窄屏备案号各占一行，行首那个点没有意义 */
	.jz-footer__sep {
		display: none;
	}

	.jz-section__head {
		flex-direction: column;
		align-items: flex-start;
		gap: .35rem;
		margin-bottom: var(--jz-sp-m);
	}

	/* 小屏首屏变矮，远山会显得抢眼，压淡一些 */
	.jz-hero::after {
		height: 46px;
		background-size: auto 46px;
		opacity: .55;
	}

	.jz-entry__title {
		font-size: 1.28rem;
	}

	.jz-panel {
		padding: var(--jz-sp-m);
	}

	/* 超长英文 / 链接不撑破版面 */
	.jz-entry__body,
	.jz-card__title,
	.jz-row__title {
		overflow-wrap: break-word;
		word-break: break-word;
	}
}

/* ==========================================================================
   17. 操作行 / 分类行 / 表单补充
   只补模板真正用到、前面没有的几处，不新增任何装饰。
   ========================================================================== */

/* 收藏：一个纯文字按钮，外面套普通表单（不用 JS） */
.jz-act-form {
	display: inline;
	margin: 0;
}

.jz-act {
	display: inline;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--jz-line);
	background: none;
	color: var(--jz-ink-mid);
	font-family: inherit;
	font-size: .84rem;
	letter-spacing: .1em;
	line-height: 1.9;
	cursor: pointer;
}

.jz-act:hover,
.jz-act:focus-visible {
	border-bottom-color: var(--jz-wood-soft);
	color: var(--jz-ink);
}

/* 阅读页底部那一行：左边收藏，右边回栏目 */
.jz-entry__acts {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--jz-sp-s) var(--jz-sp-m);
	margin-bottom: var(--jz-sp-m);
}

/* 紧接操作行时，上下篇不再补一段大间距 */
.jz-entry__acts + .jz-pager {
	margin-top: 0;
}

/* 分类行：一串文字，当前项一条赭色细线 */
.jz-cats {
	display: flex;
	flex-wrap: wrap;
	gap: .15rem 1.15rem;
	margin: 0 0 var(--jz-sp-m);
	font-size: .84rem;
	color: var(--jz-ink-soft);
	letter-spacing: .06em;
}

.jz-cats a {
	padding-bottom: .1rem;
	border-bottom: 1px solid transparent;
	color: var(--jz-ink-soft);
}

.jz-cats a:hover {
	color: var(--jz-ink);
	border-bottom-color: var(--jz-line);
}

.jz-cats a.is-active {
	color: var(--jz-ink);
	border-bottom-color: var(--jz-wood-soft);
}

/* 二级分类比一级矮半头，用中点隔开，一眼看出是从属的一项 */
.jz-cats--sub {
	font-size: .78rem;
	color: var(--jz-ink-soft);
}

.jz-cats--sub a::before {
	content: "·";
	margin-right: .4rem;
	color: var(--jz-line);
}

.jz-cats--sub a:first-child::before {
	content: none;
}

/* 记住登录 */
.jz-field .jz-check {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: 0;
	font-size: .84rem;
	color: var(--jz-ink-mid);
	cursor: pointer;
}

.jz-field .jz-check input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--jz-cyan);
}

/* 发文表单比登录表单宽，正文一行能多放几个字 */
.jz-form--wide {
	max-width: 42rem;
}

/* 窗格里的链接：长标题折行，不撑破格子 */
.jz-panel__list a {
	border-bottom-color: transparent;
	color: var(--jz-ink-mid);
	overflow-wrap: break-word;
	word-break: break-word;
}

.jz-panel__list a:hover {
	color: var(--jz-ink);
	border-bottom-color: var(--jz-wood-soft);
}

/* 列表下面跟的一句注解，不要贴着最后一行 */
.jz-panel__list + .jz-small {
	margin-top: var(--jz-sp-s);
}

/* ==========================================================================
   18. 账号注销
   ========================================================================== */

/* 会员中心底部那一行：低调，但不能藏起来（注销入口要「易于发现」） */
.jz-member__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .2rem .9rem;
	margin: var(--jz-sp-l) 0 0;
	padding-top: var(--jz-sp-m);
	border-top: 1px solid var(--jz-line-soft);
	font-size: .84rem;
}

.jz-member__foot a {
	color: var(--jz-ink-mid);
	border-bottom: 1px solid var(--jz-line);
}

.jz-member__foot a:hover {
	color: var(--jz-ink);
	border-bottom-color: var(--jz-wood-soft);
}

.jz-member__foot span {
	color: var(--jz-ink-soft);
	font-size: .78rem;
}

/* 注销说明：一道赭色竖线起警示作用，不做恐吓式红块 */
.jz-danger {
	max-width: 42rem;
	margin: var(--jz-sp-m) 0 var(--jz-sp-l);
	padding: var(--jz-sp-m) var(--jz-sp-l) var(--jz-sp-m) var(--jz-sp-m);
	border-left: 3px solid var(--jz-wood-soft);
	background: var(--jz-paper-deep);
}

.jz-danger__lead {
	margin: 0 0 var(--jz-sp-s);
	font-size: .95rem;
	line-height: 1.9;
	color: var(--jz-ink);
}

.jz-danger ul {
	margin: 0;
	padding-left: 1.1rem;
	list-style: disc;
}

.jz-danger li {
	margin: .3rem 0;
	font-size: .86rem;
	line-height: 1.85;
	color: var(--jz-ink-mid);
}

/* 单选一组：两项之间留一点气 */
.jz-field .jz-check + .jz-check {
	margin-top: .5rem;
}

/* 注销页的次要出口：和按钮同一行，垂直居中对齐 */
.jz-form__foot--row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.2rem;
}

.jz-form__foot--row .jz-act--back {
	margin-left: 0;
}

/* ==========================================================================
   19. 打印：只留正文，去掉装饰
   ========================================================================== */
@media print {
	.jz-header,
	.jz-footer,
	.jz-pager,
	.jz-pagination {
		display: none;
	}

	body {
		background: #fff;
	}

	.jz-hero::before,
	.jz-hero::after {
		display: none;
	}
}
