/* ==========================================================================
   nova · 组件层
   卡片 / 标签页 / 表单 / 列表 / 分页 / 面包屑 / 空状态 / 浮层 / 通用块
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 卡片（区块）
   -------------------------------------------------------------------------- */
.nv-card {
	margin-bottom: var(--nv-gap);
	border: 1px solid var(--nv-border);
	border-radius: var(--nv-radius-lg);
	background: var(--nv-surface);
	box-shadow: var(--nv-shadow);
}

.nv-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 56px;
	padding: 0 var(--nv-pad);
	border-bottom: 1px solid var(--nv-border);
	border-radius: var(--nv-radius-lg) var(--nv-radius-lg) 0 0;
}

.nv-card-head h2,
.nv-card-head h3 {
	color: var(--nv-heading);
	font-size: 16px;
	font-weight: 600;
	line-height: 56px;
}

.nv-card-head .nv-card-extra {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--nv-muted);
	font-size: 13px;
}

.nv-card-head .nv-card-extra a:hover {
	color: var(--nv-accent);
}

.nv-card-body {
	padding: var(--nv-pad);
}

.nv-card-body.nv-card-body-flush {
	padding: 0;
}

/* 无标题的纯内容块 */
.nv-panel {
	margin-bottom: var(--nv-gap);
	padding: var(--nv-pad);
	border: 1px solid var(--nv-border);
	border-radius: var(--nv-radius-lg);
	background: var(--nv-surface);
	box-shadow: var(--nv-shadow);
}

/* --------------------------------------------------------------------------
   2. 标签页
   -------------------------------------------------------------------------- */
.nv-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 22px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--nv-line);
}

.nv-tabs a,
.nv-tabs span {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 46px;
	padding-bottom: 2px;
	border-bottom: 2px solid transparent;
	color: var(--nv-muted);
	font-size: 14px;
}

.nv-tabs a:hover {
	color: var(--nv-accent);
}

.nv-tabs .is-active {
	border-bottom-color: var(--nv-accent);
	color: var(--nv-heading);
	font-weight: 600;
}

.nv-tabs .nv-tabs-right {
	margin-left: auto;
}

/* 分段控件 */
.nv-segment {
	display: inline-flex;
	padding: 3px;
	border-radius: var(--nv-radius);
	background: var(--nv-canvas);
}

.nv-segment a {
	padding: 5px 14px;
	border-radius: 6px;
	color: var(--nv-muted);
	font-size: 13px;
}

.nv-segment a:hover {
	color: var(--nv-accent);
}

.nv-segment .is-active {
	background: var(--nv-surface);
	box-shadow: var(--nv-shadow);
	color: var(--nv-accent);
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   3. 按钮
   -------------------------------------------------------------------------- */
.nv-btn-sm {
	height: 30px;
	padding: 0 12px;
	font-size: 13px;
}

.nv-btn-lg {
	height: 44px;
	padding: 0 26px;
	font-size: 15px;
}

.nv-btn-block {
	width: 100%;
}

.nv-btn-icon {
	width: 36px;
	padding: 0;
}

/* Discuz 原生按钮类统一到新体系 */
.nv-card .pn,
.nv-panel .pn,
.nv-btn {
	cursor: pointer;
}

/* --------------------------------------------------------------------------
   4. 表单
   -------------------------------------------------------------------------- */
.nv-form {
	display: grid;
	gap: 18px;
}

.nv-field {
	display: grid;
	gap: 7px;
}

.nv-field > label {
	color: var(--nv-heading);
	font-size: 13px;
	font-weight: 500;
}

.nv-field > label .nv-required {
	margin-left: 3px;
	color: var(--nv-danger);
}

.nv-field .nv-hint {
	color: var(--nv-muted);
	font-size: 12px;
	line-height: 1.6;
}

.nv-field .nv-error {
	color: var(--nv-danger);
	font-size: 12px;
}

.nv-input,
.nv-field input[type="text"],
.nv-field input[type="password"],
.nv-field input[type="email"],
.nv-field input[type="tel"],
.nv-field input[type="number"],
.nv-field input[type="search"],
.nv-field input[type="url"],
.nv-field select,
.nv-field textarea {
	box-sizing: border-box;
	width: 100%;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--nv-input-border);
	border-radius: var(--nv-radius);
	background: var(--nv-surface);
	color: var(--nv-text);
	font: inherit;
	font-size: 14px;
	outline: none;
	transition: border-color var(--nv-speed) var(--nv-ease), box-shadow var(--nv-speed) var(--nv-ease);
}

.nv-field textarea {
	height: auto;
	min-height: 130px;
	padding: 10px 14px;
	line-height: 1.7;
	resize: vertical;
}

.nv-field select {
	appearance: none;
	padding-right: 34px;
	background-image: linear-gradient(45deg, transparent 50%, var(--nv-light) 50%), linear-gradient(135deg, var(--nv-light) 50%, transparent 50%);
	background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.nv-field input:focus,
.nv-field select:focus,
.nv-field textarea:focus {
	border-color: var(--nv-accent);
	box-shadow: 0 0 0 3px var(--nv-accent-soft);
}

.nv-field input::placeholder,
.nv-field textarea::placeholder {
	color: var(--nv-light);
}

.nv-field input.er,
.nv-field textarea.er {
	border-color: var(--nv-danger);
}

.nv-field.is-error input {
	border-color: var(--nv-danger);
	box-shadow: 0 0 0 3px rgba(217, 72, 95, .1);
}

/* 复选框 / 单选 */
.nv-check {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--nv-text);
	font-size: 13px;
	cursor: pointer;
}

.nv-check input {
	width: 15px;
	height: 15px;
	margin: 0;
	accent-color: var(--nv-accent);
	cursor: pointer;
}

/* 表单行（Discuz tfm 风格） */
.nv-form-row {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

.nv-form-row > label {
	padding-top: 10px;
	color: var(--nv-heading);
	font-size: 13px;
	text-align: right;
}

.nv-form-row .nv-required {
	margin-left: 3px;
	color: var(--nv-danger);
}

.nv-form-actions {
	display: flex;
	align-items: center;
	gap: 14px;
}

/* --------------------------------------------------------------------------
   5. 列表：通用条目行
   -------------------------------------------------------------------------- */
.nv-list {
	border-top: 1px solid var(--nv-line);
}

.nv-item {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--nv-line);
}

.nv-item:hover {
	background: var(--nv-canvas);
}

.nv-item-main {
	flex: 1 1 auto;
	min-width: 0;
}

.nv-item-title {
	display: block;
	color: var(--nv-heading);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
}

.nv-item-title:hover {
	color: var(--nv-accent);
}

.nv-item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	margin-top: 6px;
	color: var(--nv-muted);
	font-size: 12px;
}

.nv-item-meta a {
	color: var(--nv-muted);
}

.nv-item-meta a:hover {
	color: var(--nv-accent);
}

.nv-item-side {
	flex: 0 0 auto;
	color: var(--nv-light);
	font-size: 12px;
	text-align: right;
}

.nv-item-side b {
	display: block;
	color: var(--nv-heading);
	font-size: 15px;
	font-weight: 600;
}

/* 头像 */
.nv-avatar {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--nv-canvas);
	object-fit: cover;
}

.nv-avatar-sm {
	width: 28px;
	height: 28px;
}

.nv-avatar-lg {
	width: 64px;
	height: 64px;
}

/* --------------------------------------------------------------------------
   6. 标签 / 徽章
   -------------------------------------------------------------------------- */
.nv-tag {
	display: inline-flex;
	align-items: center;
	height: 20px;
	padding: 0 8px;
	border-radius: 4px;
	background: var(--nv-accent-soft);
	color: var(--nv-accent);
	font-size: 12px;
	line-height: 1;
}

.nv-tag-muted {
	background: var(--nv-canvas);
	color: var(--nv-muted);
}

.nv-tag-line {
	border: 1px solid var(--nv-line);
	background: none;
	color: var(--nv-muted);
}

/* --------------------------------------------------------------------------
   7. 分页
   -------------------------------------------------------------------------- */
.nv-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 20px;
}

.nv-pager a,
.nv-pager span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	background: var(--nv-surface);
	color: var(--nv-text);
	font-size: 13px;
}

.nv-pager a:hover {
	border-color: var(--nv-accent);
	color: var(--nv-accent);
}

.nv-pager .is-current {
	border-color: var(--nv-accent);
	background: var(--nv-accent);
	color: #fff;
	font-weight: 600;
}

.nv-pager .is-disabled {
	color: var(--nv-light);
	background: var(--nv-canvas);
}

.nv-pager .nv-pager-info {
	margin-left: auto;
	color: var(--nv-muted);
	font-size: 12px;
}

/* --------------------------------------------------------------------------
   8. 面包屑
   -------------------------------------------------------------------------- */
.nv-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 16px;
	color: var(--nv-muted);
	font-size: 13px;
}

.nv-crumbs a {
	color: var(--nv-muted);
}

.nv-crumbs a:hover {
	color: var(--nv-accent);
}

.nv-crumbs .nv-crumbs-sep {
	color: var(--nv-line);
}

.nv-crumbs .is-current {
	color: var(--nv-text);
}

/* --------------------------------------------------------------------------
   9. 空状态 / 提示
   -------------------------------------------------------------------------- */
.nv-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 56px 24px;
	color: var(--nv-muted);
	text-align: center;
}

.nv-empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--nv-canvas);
	color: var(--nv-light);
	font-size: 24px;
}

.nv-empty-title {
	color: var(--nv-heading);
	font-size: 15px;
	font-weight: 600;
}

.nv-empty p {
	max-width: 420px;
	color: var(--nv-muted);
	font-size: 13px;
	line-height: 1.8;
}

/* 站内提示条 */
.nv-notice {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 16px;
	padding: 12px 16px;
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	background: var(--nv-canvas);
	color: var(--nv-text);
	font-size: 13px;
}

.nv-notice-icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 3px;
	border-radius: 50%;
	background: var(--nv-accent);
	color: #fff;
	font-size: 12px;
	line-height: 18px;
	text-align: center;
}

.nv-notice-warn {
	border-color: rgba(201, 138, 27, .3);
	background: color-mix(in srgb, var(--nv-warn) 10%, var(--nv-surface));
}

.nv-notice-warn .nv-notice-icon {
	background: var(--nv-warn);
}

.nv-notice-error {
	border-color: rgba(217, 72, 95, .3);
	background: color-mix(in srgb, var(--nv-danger) 8%, var(--nv-surface));
}

.nv-notice-error .nv-notice-icon {
	background: var(--nv-danger);
}

.nv-notice a {
	color: var(--nv-accent);
}

/* --------------------------------------------------------------------------
   10. 浮层：下拉菜单 / 提示框
   -------------------------------------------------------------------------- */
.nv-pop {
	position: absolute;
	z-index: 60;
	min-width: 150px;
	padding: 6px;
	border: 1px solid var(--nv-border);
	border-radius: var(--nv-radius-lg);
	background: var(--nv-surface);
	box-shadow: var(--nv-shadow-hover);
}

.nv-pop a {
	display: block;
	padding: 8px 12px;
	border-radius: var(--nv-radius);
	color: var(--nv-text);
	font-size: 13px;
}

.nv-pop a:hover {
	background: var(--nv-canvas);
	color: var(--nv-accent);
}

/* 气泡提示 */
.nv-tip {
	position: absolute;
	z-index: 70;
	max-width: 260px;
	padding: 8px 12px;
	border-radius: var(--nv-radius);
	background: rgba(70, 76, 91, .92);
	color: #fff;
	font-size: 12px;
	line-height: 1.6;
	box-shadow: var(--nv-shadow-hover);
}

.nv-tip-muted {
	color: rgba(255, 255, 255, .78);
}

/* --------------------------------------------------------------------------
   11. 数据摘要条
   -------------------------------------------------------------------------- */
.nv-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--nv-line);
	border-radius: var(--nv-radius);
	overflow: hidden;
}

.nv-stats > div {
	padding: 14px 8px;
	background: var(--nv-surface);
	text-align: center;
}

.nv-stats b {
	display: block;
	color: var(--nv-heading);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
}

.nv-stats span {
	color: var(--nv-muted);
	font-size: 12px;
}

/* --------------------------------------------------------------------------
   12. 加载 / 骨架
   -------------------------------------------------------------------------- */
.nv-loading {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--nv-muted);
	font-size: 13px;
}

.nv-loading::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 2px solid var(--nv-line);
	border-top-color: var(--nv-accent);
	border-radius: 50%;
	animation: nv-spin .7s linear infinite;
}

@keyframes nv-spin {
	to {
		transform: rotate(360deg);
	}
}

/* --------------------------------------------------------------------------
   13. 侧栏小组件
   -------------------------------------------------------------------------- */
.nv-side-card {
	margin-bottom: var(--nv-gap);
	border: 1px solid var(--nv-border);
	border-radius: var(--nv-radius-lg);
	background: var(--nv-surface);
	box-shadow: var(--nv-shadow);
}

.nv-side-card > h3 {
	padding: 0 var(--nv-pad);
	border-bottom: 1px solid var(--nv-border);
	color: var(--nv-heading);
	font-size: 15px;
	font-weight: 600;
	line-height: 52px;
}

.nv-side-card .nv-side-body {
	padding: 12px var(--nv-pad) var(--nv-pad);
}

.nv-side-card .nv-side-body.nv-side-body-flush {
	padding: 0;
}

/* --------------------------------------------------------------------------
   14. 窄屏适配
   -------------------------------------------------------------------------- */
/* 窄屏：带头像的列表行改两列网格（头像与标题同行，浏览数另起一行）。
   用 :has() 限定，避免影响「封面 + 文字」型条目；旧浏览器不支持时自动回落到 flex 布局。 */
@media (max-width: 480px) {
	.nv-item:has(> .nv-avatar) {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 2px 10px;
	}

	.nv-item:has(> .nv-avatar) > .nv-avatar {
		grid-row: 1;
		grid-column: 1;
	}

	.nv-item:has(> .nv-avatar) .nv-item-main {
		grid-row: 1;
		grid-column: 2;
	}

	.nv-item:has(> .nv-avatar) .nv-item-side {
		grid-row: 2;
		grid-column: 2;
		text-align: left;
	}
}

@media (max-width: 760px) {
	.nv-form-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.nv-form-row > label {
		padding-top: 0;
		text-align: left;
	}

	.nv-item {
		gap: 10px;
	}

	.nv-card-body {
		padding: 16px;
	}
}


/* ===== nova 首页定制 ===== */
.nv-page-index { padding-bottom: 40px; }

.nv-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin: 0 0 20px;
	padding: 30px 34px;
	border-radius: var(--nv-radius-lg);
	background: linear-gradient(120deg, #3c82cd 0%, #2f6cae 55%, #4663d9 100%);
	color: #fff;
	box-shadow: 0 10px 30px rgba(60,130,205,.22);
}
.nv-hero-title { margin: 0; color: #fff; font-size: 26px; font-weight: 700; letter-spacing: .5px; }
.nv-hero-sub { margin: 8px 0 0; color: rgba(255,255,255,.86); font-size: 14px; }
.nv-hero-stats { display: flex; gap: 28px; }
.nv-hero-stats > div { text-align: center; }
.nv-hero-stats b { display: block; font-size: 22px; font-weight: 700; line-height: 1.2; }
.nv-hero-stats span { font-size: 12px; color: rgba(255,255,255,.8); }

.nv-quicknav { margin: 0; padding: 8px 0; list-style: none; }
.nv-quicknav li { border-bottom: 1px solid var(--nv-line); }
.nv-quicknav li:last-child { border-bottom: 0; }
.nv-quicknav a {
	display: block;
	padding: 10px var(--nv-pad);
	color: var(--nv-text);
	font-size: 14px;
	transition: all .15s ease;
}
.nv-quicknav a:hover { background: var(--nv-canvas); color: var(--nv-accent); padding-left: calc(var(--nv-pad) + 4px); }

.nv-forum-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1px;
	background: var(--nv-line);
}
.nv-forum-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	background: var(--nv-surface);
	transition: background .15s ease;
}
.nv-forum-tile:hover { background: var(--nv-canvas); }
.nv-forum-tile-name { color: var(--nv-heading); font-size: 15px; font-weight: 600; }
.nv-forum-tile:hover .nv-forum-tile-name { color: var(--nv-accent); }
.nv-forum-tile-meta { color: var(--nv-light); font-size: 12px; }

.nv-cat-card .nv-card-head h2 { font-size: 16px; }

@media (max-width: 760px) {
	.nv-hero { padding: 22px; }
	.nv-hero-title { font-size: 20px; }
	.nv-hero-stats { gap: 16px; }
	.nv-hero-stats b { font-size: 18px; }
	.nv-forum-grid { grid-template-columns: 1fr 1fr; }
}


/* ===== nova 头部（参考站风格）===== */
#toptb {
	display: block !important;
	background: var(--nv-accent) !important;
	border-bottom: 0 !important;
	height: 38px;
	line-height: 38px;
}
#toptb .wp {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 38px;
}
#toptb .z, #toptb .y { float: none; }
#toptb a, #toptb .z a, #toptb .y a, #toptb span {
	color: rgba(255,255,255,.9) !important;
	font-size: 13px;
}
#toptb a:hover { color: #fff !important; }
#toptb a + a { margin-left: 18px; }

/* 头部主体 */
#dz_btm_layer .dz_layer_top { background: var(--nv-surface) !important; }
.dz_btm_layer.dz_nav {
	display: flex !important;
	align-items: center;
	gap: 26px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 12px 20px !important;
	box-sizing: border-box;
}
.dz_nav_logo { flex: 0 0 auto; }
.dz_nav_logo .dzlogo img,
.dz_nav_logo img.boardlogo { height: 42px !important; width: auto !important; }

.dz_layer_nav { flex: 1 1 auto; min-width: 0; }
.dz_layer_nav ul { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; }
.dz_layer_nav ul li { margin: 0 !important; float: none !important; }
.dz_layer_nav ul li a {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	padding: 8px 14px !important;
	border-radius: 999px;
	color: var(--nv-text) !important;
	font-size: 15px !important;
	line-height: 1.4;
}
.dz_layer_nav ul li a span {
	color: var(--nv-light);
	font-size: 10px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.dz_layer_nav ul li a:hover { background: var(--nv-accent-soft); color: var(--nv-accent) !important; }
.dz_layer_nav ul li a:hover span { color: var(--nv-accent); }
.dz_layer_nav ul li.a a,
.dz_layer_nav ul li.on a {
	background: var(--nv-accent) !important;
	color: #fff !important;
	font-weight: 600;
}
.dz_layer_nav ul li.a a span,
.dz_layer_nav ul li.on a span { color: rgba(255,255,255,.8); }

/* 头部右侧：登录按钮 / 用户区 */
.dz_layer_dl, .header-right { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.header-user-login .login_btn,
a.login_btn {
	display: inline-block;
	padding: 8px 22px !important;
	border-radius: 8px !important;
	background: var(--nv-accent) !important;
	color: #fff !important;
	font-size: 14px !important;
	line-height: 1.3;
	box-shadow: 0 4px 12px rgba(60,130,205,.28);
}
.header-user-login .login_btn:hover { background: var(--nv-accent-dark) !important; }

@media (max-width: 760px) {
	.dz_btm_layer.dz_nav { padding: 10px 14px !important; gap: 12px; }
	.dz_nav_logo .dzlogo img, .dz_nav_logo img.boardlogo { height: 32px !important; }
	.dz_layer_nav ul li a { padding: 6px 10px !important; font-size: 14px !important; }
	.dz_layer_nav ul li a span { display: none; }
}


/* 导航胶囊修正 */
.dz_layer_nav ul li a {
	height: auto !important;
	line-height: 1.45 !important;
	border-radius: 999px !important;
	background-clip: padding-box;
}
.dz_layer_nav ul li.a a,
.dz_layer_nav ul li.on a {
	box-shadow: 0 4px 12px rgba(60,130,205,.25);
}
.dz_layer_nav ul li.a a span,
.dz_layer_nav ul li.on a span { color: rgba(255,255,255,.75) !important; }


/* ===== 头部搜索框 ===== */
.nv-header-search { flex: 0 0 auto; }
.nv-header-search form {
	display: flex;
	align-items: center;
	gap: 0;
	height: 38px;
	padding: 0 4px 0 14px;
	border: 1px solid var(--nv-input-border);
	border-radius: 999px;
	background: var(--nv-canvas);
}
.nv-header-search input[type="text"] {
	width: 150px;
	height: 32px;
	border: 0 !important;
	background: transparent !important;
	color: var(--nv-text);
	font-size: 13px;
	outline: none;
}
.nv-header-search input::placeholder { color: var(--nv-light); }
.nv-header-search button {
	height: 30px;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: var(--nv-accent);
	color: #fff;
	font-size: 13px;
	cursor: pointer;
}
.nv-header-search button:hover { background: var(--nv-accent-dark); }

/* ===== 横幅细节 ===== */
.nv-hero-badge {
	display: inline-block;
	margin-bottom: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(255,255,255,.18);
	color: #fff;
	font-size: 12px;
	letter-spacing: .06em;
}
.nv-hero-more {
	margin-left: 12px;
	color: rgba(255,255,255,.92) !important;
	font-size: 13px;
	border-bottom: 1px solid rgba(255,255,255,.5);
}
.nv-hero-more:hover { color: #fff !important; border-bottom-color: #fff; }

/* ===== 热门讨论 ===== */
.nv-hotlist { margin: 0; padding: 0; list-style: none; }
.nv-hotlist li {
	padding: 8px 0;
	border-bottom: 1px dashed var(--nv-line);
	font-size: 13px;
	line-height: 1.6;
}
.nv-hotlist li:last-child { border-bottom: 0; }
.nv-hotlist a {
	display: block;
	color: var(--nv-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.nv-hotlist a:hover { color: var(--nv-accent); }

@media (max-width: 900px) {
	.nv-header-search { display: none; }
}


/* 头部与内容间距修正 */
.dz_btm_layer.dz_nav {
	min-height: 76px !important;
	align-items: center !important;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
}
.dz_layer_top { position: relative; z-index: 10; }
.dz_layer_nav ul li, .dz_layer_nav ul li a { position: static !important; }
.dz_layer_nav ul li a { display: inline-flex !important; }
#ct.nv-page-index { padding-top: 22px !important; }
.nv-hero { position: relative; z-index: 1; }


/* ===== 快捷导航图标（B）===== */
.nv-quicknav a { display: flex; align-items: center; gap: 10px; }
.nv-quicknav a::before {
	content: "";
	flex: 0 0 auto;
	width: 18px; height: 18px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	opacity: .75;
}
.nv-quicknav li:nth-child(1) a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c82cd' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 5h16v14H4z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E");
}
.nv-quicknav li:nth-child(2) a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c82cd' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 6h16v10H8l-4 4z'/%3E%3C/svg%3E");
}
.nv-quicknav li:nth-child(3) a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c82cd' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 4l2.6 5.6 6.1.8-4.5 4.3 1.1 6-5.3-3-5.3 3 1.1-6L3.3 10.4l6.1-.8z'/%3E%3C/svg%3E");
}
.nv-quicknav li:nth-child(4) a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c82cd' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 16l5-5 4 4 7-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3C/svg%3E");
}
.nv-quicknav li:nth-child(5) a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c82cd' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E");
}

/* 版块格加左侧色条 */
.nv-forum-tile { position: relative; }
.nv-forum-tile::before {
	content: "";
	position: absolute;
	left: 0; top: 16px; bottom: 16px;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--nv-accent);
	opacity: 0;
	transition: opacity .15s ease;
}
.nv-forum-tile:hover::before { opacity: 1; }


/* ===== 版块页：主题列表卡片化 ===== */
.mn > .bm, .mn .drag .bm {
	border-radius: var(--nv-radius-lg) !important;
	overflow: hidden;
}
.mn .bm_h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	padding: 0 20px !important;
	border-bottom: 1px solid var(--nv-line) !important;
	background: var(--nv-surface) !important;
}
.mn .bm_h h1, .mn .bm_h h2, .mn .bm_h h3 {
	margin: 0;
	color: var(--nv-heading) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
}

/* 筛选条 */
.dz_list_top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 12px 20px !important;
	border-bottom: 1px solid var(--nv-line);
	background: var(--nv-canvas) !important;
	font-size: 13px;
}
.dz_list_top a { color: var(--nv-muted) !important; }
.dz_list_top a:hover, .dz_list_top .xw1 { color: var(--nv-accent) !important; }
.dz_list_top .kmico {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	color: var(--nv-muted) !important;
	font-size: 12px;
}

/* 列表容器 */
.tl { margin: 0 !important; }
.forumportal_listc { padding: 0 !important; background: var(--nv-surface) !important; }
.forumportal_listc ul { margin: 0; padding: 0; list-style: none; }

/* 单行 */
li.kmlist {
	position: relative;
	display: block !important;
	margin: 0 !important;
	padding: 16px 20px !important;
	border-bottom: 1px solid var(--nv-line) !important;
	background: var(--nv-surface) !important;
	transition: background .15s ease;
}
li.kmlist:last-child { border-bottom: 0 !important; }
li.kmlist:hover { background: var(--nv-canvas) !important; }
li.kmlist::before {
	content: "";
	position: absolute;
	left: 0; top: 14px; bottom: 14px;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--nv-accent);
	opacity: 0;
	transition: opacity .15s ease;
}
li.kmlist:hover::before { opacity: 1; }

/* 标题 */
li.kmlist .kmtit,
li.kmlist .kmtit a {
	color: var(--nv-heading) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.6 !important;
	text-decoration: none !important;
}
li.kmlist .kmtit a:hover,
li.kmlist:hover .kmtit a { color: var(--nv-accent) !important; }
li.kmlist .km_subject { color: var(--nv-heading) !important; font-weight: 600; }

/* 摘要 */
li.kmlist .kmtxt,
li.kmlist .kmtxt * {
	color: var(--nv-muted) !important;
	font-size: 13px !important;
	line-height: 1.7 !important;
	margin-top: 4px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* 底部信息 */
li.kmlist .kmfoot {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 8px;
	color: var(--nv-light) !important;
	font-size: 12px !important;
}
li.kmlist .kmfoot a { color: var(--nv-muted) !important; }
li.kmlist .kmfoot a:hover { color: var(--nv-accent) !important; }
li.kmlist .kmpl, li.kmlist .kmck { color: var(--nv-light) !important; }
li.kmlist .kmtime { color: var(--nv-light) !important; }

/* 列表内的图标/缩略图 */
li.kmlist .kmimg img {
	border-radius: var(--nv-radius) !important;
	box-shadow: var(--nv-shadow);
}
li.kmlist .kmbg {
	border-radius: 999px !important;
	background: var(--nv-accent-soft) !important;
	color: var(--nv-accent) !important;
	font-size: 11px !important;
	padding: 2px 8px !important;
}

/* 快捷发帖区 */
.pbt .bm_h, .tedt .bar {
	border-radius: var(--nv-radius-lg) var(--nv-radius-lg) 0 0 !important;
}
.tedt {
	border-radius: var(--nv-radius-lg) !important;
	overflow: hidden;
	margin-top: var(--nv-gap);
}

/* 分页 */
.pg { padding: 14px 20px !important; background: var(--nv-surface) !important; text-align: right; }


/* 版块页行内布局修正 */
li.kmlist {
	display: block !important;
	padding: 16px 20px 16px 82px !important;
	position: relative !important;
}
li.kmlist .kmimg {
	position: absolute !important;
	left: 20px !important;
	top: 18px !important;
	width: 48px !important;
	height: 48px !important;
	overflow: hidden;
	border-radius: 50% !important;
}
li.kmlist .kmimg img {
	width: 48px !important;
	height: 48px !important;
	object-fit: cover !important;
	border-radius: 50% !important;
	box-shadow: none !important;
}
li.kmlist .kmtit { display: block !important; margin: 0 !important; }
li.kmlist .kmtxt { margin-top: 6px !important; }
li.kmlist .kmfoot { margin-top: 8px !important; }
li.kmlist .kmpl, li.kmlist .kmck { display: inline-block; margin-right: 8px; }


/* ===== 帖子页：楼层卡片化 ===== */
table.posthead {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--nv-gap);
	background: var(--nv-surface);
	border-radius: var(--nv-radius-lg);
	box-shadow: var(--nv-shadow);
}
table.posthead td.plc { padding: 22px 26px !important; }
table.posthead h1.ts,
table.posthead h1 {
	margin: 0 0 8px !important;
	color: var(--nv-heading) !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
}
table.posthead .xg1, table.posthead .y { color: var(--nv-muted) !important; font-size: 13px; }
table.posthead a { color: var(--nv-muted) !important; }
table.posthead a:hover { color: var(--nv-accent) !important; }

/* 楼层 */
table.plhin {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 16px;
	background: var(--nv-surface) !important;
	border: 1px solid var(--nv-line) !important;
	border-radius: var(--nv-radius-lg) !important;
	box-shadow: var(--nv-shadow);
	overflow: hidden;
}

/* 作者栏 */
table.plhin td.pls {
	width: 168px !important;
	padding: 18px 14px !important;
	background: var(--nv-canvas) !important;
	border-right: 1px solid var(--nv-line) !important;
	vertical-align: top;
	text-align: center;
}
table.plhin td.pls .avatar img,
table.plhin td.pls .avatar {
	width: 84px !important;
	height: 84px !important;
	border-radius: 50% !important;
	object-fit: cover;
	box-shadow: var(--nv-shadow);
}
table.plhin td.pls .authi a { color: var(--nv-heading) !important; font-size: 14px; font-weight: 600; }
table.plhin td.pls .authi a:hover { color: var(--nv-accent) !important; }
table.plhin td.pls .xg1, table.plhin td.pls .xi1 { color: var(--nv-light) !important; font-size: 12px; line-height: 1.8; }

/* 内容栏 */
table.plhin td.plc {
	padding: 18px 22px !important;
	vertical-align: top;
}
table.plhin .pi {
	padding-bottom: 10px !important;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--nv-line) !important;
	color: var(--nv-muted) !important;
	font-size: 12px;
}
table.plhin .pi .authi a, table.plhin .pi a { color: var(--nv-muted) !important; }
table.plhin .pi a:hover { color: var(--nv-accent) !important; }

/* 正文 */
table.plhin .pct { font-size: 15px; line-height: 1.9; color: var(--nv-text); }
table.plhin .pcb { }
table.plhin .t_fsz { line-height: 1.9; }
table.plhin .t_f, table.plhin .t_f * { color: var(--nv-text) !important; }
table.plhin .t_f img { max-width: 100%; height: auto; border-radius: var(--nv-radius); }
table.plhin .t_f a { color: var(--nv-accent) !important; }
table.plhin blockquote, table.plhin .quote {
	margin: 12px 0; padding: 12px 16px;
	border-left: 3px solid var(--nv-accent);
	border-radius: 0 var(--nv-radius) var(--nv-radius) 0;
	background: var(--nv-canvas) !important;
	color: var(--nv-muted) !important;
	font-size: 14px;
}

/* 楼层操作条 */
table.plhin .pti { margin-top: 10px; }
table.plhin .po, table.plhin .pob {
	border-top: 1px dashed var(--nv-line);
	padding-top: 10px;
	font-size: 12px;
	color: var(--nv-muted);
}
table.plhin .po a, table.plhin .pob a { color: var(--nv-muted) !important; }
table.plhin .po a:hover, table.plhin .pob a:hover { color: var(--nv-accent) !important; }

/* 帖内签名 */
table.plhin .sign {
	margin-top: 14px; padding-top: 12px;
	border-top: 1px dashed var(--nv-line) !important;
	color: var(--nv-light) !important;
	font-size: 12px;
	line-height: 1.8;
}

/* 快速回复 */
#fastpostform, .fpd {
	margin-top: var(--nv-gap);
	background: var(--nv-surface);
	border-radius: var(--nv-radius-lg);
	box-shadow: var(--nv-shadow);
	padding: 16px 20px;
}

@media (max-width: 760px) {
	table.plhin td.pls, table.plhin td.plc { display: block !important; width: auto !important; text-align: left; }
	table.plhin td.pls { border-right: 0 !important; border-bottom: 1px solid var(--nv-line) !important; }
	table.plhin td.pls .avatar img, table.plhin td.pls .avatar { width: 48px !important; height: 48px !important; }
}


/* 帖子页：X5 单栏结构修正 */
table.plhin td.pls { width: auto !important; background: transparent !important; border: 0 !important; }
table.plhin .pi {
	display: flex !important;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	padding: 12px 0 10px !important;
	margin-bottom: 14px !important;
	border-bottom: 1px solid var(--nv-line) !important;
	height: auto !important;
}
table.plhin .pi > strong { order: 1; }
table.plhin .pi .pti { order: 2; flex: 1 1 auto; min-width: 0; padding: 0 !important; margin: 0 !important; }
table.plhin .pi .pdbt { display: none; }
table.plhin .pi .authi { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--nv-muted); font-size: 12px; }
table.plhin .pi .avt { flex: 0 0 auto; padding-right: 0 !important; }
table.plhin .pi .avt img,
table.plhin .pi .authi img {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	box-shadow: var(--nv-shadow);
}
table.plhin .pi #fj { display: none !important; }
table.plhin .pi strong a { color: var(--nv-accent) !important; font-size: 12px; }

/* 正文段落间距 */
table.plhin .t_f p { margin: 0 0 12px; }
table.plhin .t_f p:last-child { margin-bottom: 0; }
