@charset "UTF-8";
/*
	==========================================
	NodeSeek 风格浅色主题  xy_theme_nodeseek
	==========================================
	设计基调（NodeSeek 浅色模式）：
	- 页面背景浅灰，内容卡片纯白、圆角、细边框弱阴影
	- 强调色为 NodeSeek 绿
	- 顶部导航 / 页脚保持深色，与浅色内容区形成上下包夹
	- 布局不动：只覆盖 bootstrap / bootstrap-bbs 的颜色类样式
	- 兼容原则：只覆盖全站通用语义类（.card、.btn、.badge、.form-control、
	  .input-group、.pagination、.breadcrumb、.dropdown、.alert 等），
	  各插件注入的组件自动继承新配色
*/

/* ============ 0. 变量与基础 ============ */
:root {
	--ns-bg: #f5f6f7;			/* 页面背景 浅灰 */
	--ns-card: #ffffff;			/* 卡片 */
	--ns-card-2: #fafbfc;		/* 卡片头部/浅底 */
	--ns-border: #e1e4e8;		/* 边框 */
	--ns-green: #2fbf71;		/* 主强调 NodeSeek 绿 */
	--ns-green-dark: #27a863;	/* hover 深绿 */
	--ns-green-deep: #1f9257;	/* active / 链接深绿 */
	--ns-green-light: #e8f7ef;	/* 绿浅底 */
	--ns-green-glow: rgba(47, 191, 113, 0.25);	/* focus 光晕 */
	--ns-text: #24292f;			/* 主文字 */
	--ns-text-2: #57606a;		/* 次文字 */
	--ns-text-3: #8b949e;		/* 弱文字 */
	--ns-header: #1f2328;		/* 导航/页脚深色 */
	--ns-radius: 8px;			/* 卡片圆角 */
}

html, table {
	font-size: 14px;
}

body {
	background: var(--ns-bg);
	color: var(--ns-text);
}

a {
	color: var(--ns-green-deep);
}

a:hover {
	color: var(--ns-green-dark);
}

::selection {
	background: var(--ns-green);
	color: #fff;
}

.text-grey, .text-gray {
	/* bootstrap.css 原值带 !important，同权重覆盖 */
	color: var(--ns-text-3) !important;
}

/* ============ 1. 顶部导航（深色 NodeSeek 头） ============ */
#header.navbar.bg-dark {
	background-color: var(--ns-header) !important;
}

.navbar-dark .navbar-nav .nav-link {
	color: rgba(255, 255, 255, 0.72);
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
	color: #fff;
}

/* 当前版块高亮：底部绿条（NodeSeek 风格） */
#header .nav-item.active > .nav-link {
	color: #fff;
	box-shadow: inset 0 -2px 0 var(--ns-green);
}

#header .navbar-brand {
	color: #fff;
}

/* 移动端展开菜单分割线（bootstrap-bbs.css 的灰线在深底上偏亮） */
@media (max-width: 992px) {
	#nav > ul > li > a.nav-link {
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}
}

/* ============ 2. 卡片体系 ============ */
.card {
	/* 覆盖 bootstrap-bbs.css 的 #f8f9fa 底 + 重阴影 */
	background: var(--ns-card);
	border: 1px solid var(--ns-border);
	border-radius: var(--ns-radius);
	box-shadow: 0 1px 2px rgba(30, 40, 50, 0.04);
}

.card > .card-header {
	/* 覆盖 bootstrap-bbs.css 的 linear-gradient 卡头 */
	color: var(--ns-text);
	font-size: 14px;
	border-bottom: 1px solid var(--ns-border);
	background-image: none;
	background-color: var(--ns-card-2);
	border-radius: calc(var(--ns-radius) - 1px) calc(var(--ns-radius) - 1px) 0 0;
}

.card > .card-footer {
	background-color: var(--ns-card-2);
	border-top: 1px solid var(--ns-border);
}

/* 卡片头 tabs：active 绿顶条 */
.card-header-tabs > .nav-item > .nav-link {
	color: var(--ns-text-2);
	border: 1px solid transparent;
	border-radius: 4px 4px 0 0;
}

.card-header-tabs > .nav-item > .nav-link:hover:not(.active) {
	/* 覆盖 bootstrap-bbs.css 的灰边 hover */
	border: 1px solid transparent;
	color: var(--ns-green-deep);
}

.card-header-tabs > .nav-item > .nav-link.active {
	/* 覆盖 bootstrap-bbs.css 的渐变 active */
	background-image: none;
	background-color: transparent;
	color: var(--ns-green-deep);
	font-weight: 600;
	border: 1px solid transparent;
	border-bottom-color: var(--ns-card-2);
	box-shadow: inset 0 2px 0 var(--ns-green);
}

/* ============ 3. 按钮 ============ */
.btn-primary {
	color: #fff;
	background-color: var(--ns-green);
	border-color: var(--ns-green);
}

.btn-primary:hover {
	color: #fff;
	background-color: var(--ns-green-dark);
	border-color: var(--ns-green-dark);
}

.btn-primary:focus, .btn-primary.focus {
	box-shadow: 0 0 0 0.2rem var(--ns-green-glow);
}

.btn-primary.disabled, .btn-primary:disabled {
	color: #fff;
	background-color: var(--ns-green);
	border-color: var(--ns-green);
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
	color: #fff;
	background-color: var(--ns-green-deep);
	border-color: var(--ns-green-deep);
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
	box-shadow: 0 0 0 0.2rem var(--ns-green-glow);
}

.btn-secondary {
	color: var(--ns-text-2);
	background-color: #fff;
	border-color: var(--ns-border);
}

.btn-secondary:hover {
	color: var(--ns-green-deep);
	background-color: var(--ns-green-light);
	border-color: var(--ns-green);
}

.btn-secondary:focus, .btn-secondary.focus {
	box-shadow: 0 0 0 0.2rem var(--ns-green-glow);
}

.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
	color: var(--ns-green-deep);
	background-color: var(--ns-green-light);
	border-color: var(--ns-green);
}

/* 点赞/收藏等 outline 按钮：绿描边（插件注入的按钮自动适配） */
.btn-outline-secondary {
	color: var(--ns-green-deep);
	background-color: transparent;
	background-image: none;
	border-color: var(--ns-green);
}

.btn-outline-secondary:hover {
	color: #fff;
	background-color: var(--ns-green);
	border-color: var(--ns-green);
}

.btn-outline-secondary:focus, .btn-outline-secondary.focus {
	box-shadow: 0 0 0 0.2rem var(--ns-green-glow);
}

.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active,
.show > .btn-outline-secondary.dropdown-toggle {
	color: #fff;
	background-color: var(--ns-green-deep);
	border-color: var(--ns-green-deep);
}

/* ============ 4. 表单 / 输入组 ============ */
.form-control {
	color: var(--ns-text);
	background-color: var(--ns-card);
	border-color: var(--ns-border);
}

.form-control:focus {
	color: var(--ns-text);
	background-color: var(--ns-card);
	border-color: var(--ns-green);
	box-shadow: 0 0 0 0.2rem var(--ns-green-glow);
}

.form-control::placeholder {
	color: var(--ns-text-3);
}

/* ax_custom 字段卡 / xn_vcode 验证码 / xn_search 搜索框共用的输入组 */
.input-group-text {
	color: var(--ns-text-2);
	background-color: var(--ns-card-2);
	border-color: var(--ns-border);
}

.custom-select {
	border-color: var(--ns-border);
}

/* ============ 5. 徽章（yp_model 勋章 / huux_notice 未读 / xn_tag 标签） ============ */
/* 注意：badge-primary 必须保持蓝色系（原版语义），不能跟主题主色（绿）走——
   yp_model 用户组徽章靠 badge-primary/success/info/warning/danger/light/dark 七色区分用户组，
   primary 若用绿色会与 success 组撞色（gid 9/10 与 5/8 无法区分） */
.badge-primary {
	background-color: #316bca;
}

.badge-secondary {
	background-color: #6c757d;
}

.badge-success {
	background-color: #2da44e;
}

.badge-info {
	background-color: #2f9ee8;
}

.badge-warning {
	background-color: #e8a33d;
}

.badge-danger {
	background-color: #e5534b;
}

.badge-light {
	color: var(--ns-text-2);
	background-color: #e9ecef;
}

.badge-dark {
	background-color: var(--ns-header);
}

/* ============ 6. 列表（帖子列表 / 回复列表） ============ */
.thread, .post {
	border-bottom: 1px solid var(--ns-border);
	padding: 0.7rem 0;
}

.thread:hover, .post:hover {
	/* 覆盖 bootstrap-bbs.css 的 hover white → 极浅绿 */
	background-color: var(--ns-green-light);
}

.threadlist > .thread:last-child,
.postlist > .post:last-child {
	border-bottom: 0;
}

/* 标题链接 */
.thread .subject a {
	color: var(--ns-text);
}

.thread .subject a:hover {
	color: var(--ns-green-deep);
	text-decoration: none;
}

/* ============ 7. 正文 / 引用 / 图片 / 表格 ============ */
.message img {
	border: 1px solid var(--ns-border);
	border-radius: 4px;
}

.message p {
	line-height: 1.7;
}

/* 引用块：浅底 + 绿色左边条（覆盖 bootstrap-bbs.css 的灰底） */
li.quote {
	background-color: var(--ns-card-2);
	border-left: 3px solid var(--ns-green);
}

.blockquote {
	font-size: 0.8rem;
	background-color: var(--ns-card-2);
	border-left: 3px solid var(--ns-green);
}

.blockquote .user {
	color: var(--ns-green-deep);
}

/* 覆盖 bootstrap-bbs.css 引用动画的起始深绿 */
@keyframes quote_animation {
	from {
		background-color: #d5f2e2;
	}
	to {
		background-color: var(--ns-card-2);
	}
}

.table td, .table th {
	border-color: var(--ns-border);
}

.table > thead > tr > th {
	border-bottom-color: var(--ns-border);
}

/* ============ 8. 分页 ============ */
.page-link {
	color: var(--ns-green-deep);
	background-color: var(--ns-card);
	border-color: var(--ns-border);
}

.page-link:hover, .page-link:focus {
	color: var(--ns-green-dark);
	background-color: var(--ns-green-light);
	border-color: var(--ns-border);
}

.page-item.active .page-link {
	color: #fff;
	background-color: var(--ns-green);
	border-color: var(--ns-green);
}

.page-item.disabled .page-link {
	color: var(--ns-text-3);
	background-color: var(--ns-card);
	border-color: var(--ns-border);
}

/* ============ 9. 面包屑 / 下拉 / 弹窗 / 提示 ============ */
.breadcrumb {
	/* bootstrap-bbs.css 原值带 !important，同权重覆盖 */
	background-color: var(--ns-card) !important;
	border: 1px solid var(--ns-border);
	border-radius: var(--ns-radius);
	box-shadow: none;
}

.breadcrumb:hover {
	background-color: var(--ns-card) !important;
}

.breadcrumb .breadcrumb-item a {
	color: var(--ns-text-2);
}

.breadcrumb .breadcrumb-item.active a {
	color: var(--ns-text-3);
}

.dropdown-menu {
	border-color: var(--ns-border);
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(30, 40, 50, 0.08);
}

.dropdown-item {
	color: var(--ns-text-2);
}

.dropdown-item:hover, .dropdown-item:focus {
	color: var(--ns-green-deep);
	background-color: var(--ns-green-light);
}

.card-header-dropdown .dropdown .dropdown-toggle {
	color: var(--ns-text-2);
}

.modal-content {
	border-color: var(--ns-border);
	border-radius: var(--ns-radius);
}

.modal-header, .modal-footer {
	border-color: var(--ns-border);
}

.alert-success {
	color: #1e7a45;
	background-color: var(--ns-green-light);
	border-color: #bfe9d2;
	border-radius: 6px;
}

/* ============ 10. 页脚（深色与导航呼应） ============ */
#footer.bg-dark {
	background-color: var(--ns-header) !important;
}

#footer.bg-dark, #footer.bg-dark a.text-muted, #footer.bg-dark .text-muted {
	color: rgba(255, 255, 255, 0.55) !important;
}

#footer.bg-dark a.text-muted:hover, #footer.bg-dark b {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* ============ 11. 侧栏 / 其他 ============ */
.line-height-3, .line-height-2 {
	color: var(--ns-text-2);
}

/* 用户名链接（帖子页/回复页） */
.username a {
	color: var(--ns-text-2);
	font-weight: 600;
}

.username a:hover {
	color: var(--ns-green-deep);
	text-decoration: none;
}

/* 附件列表（haya_post_attach_lite） */
.attachlist li {
	border-color: var(--ns-border);
}

/* 验证码图片 */
img.vcode {
	border-radius: 4px;
	border: 1px solid var(--ns-border);
}

/* xn_tag 标签胶囊：绿系激活态（原黑底白字） */
.tag_option {
	border-color: var(--ns-border);
	color: var(--ns-text-2);
	background: var(--ns-card);
}

.tag_option:active, .tag_option.active {
	border-color: var(--ns-green) !important;
	background: var(--ns-green) !important;
	color: #fff !important;
}

/* iqismart_com_sign 签到按钮（绝对定位在 tabs 内）层级保护 */
#sg_sign, #sg_signed {
	z-index: 5;
}

/* ============================================================
	   12. 布局改造层（v1.1，后台可逐项开关）
   ============================================================ */

/* ---- 12.1 列表 NodeSeek 化 ---- */
/* 板块徽章（thread_list_inc_top_icon_before hook 注入） */
.xy-forum-badge {
	display: inline-block;
	vertical-align: 1px;
	margin-right: 6px;
	padding: 1px 8px;
	font-size: 12px;
	font-weight: 600;
	line-height: 18px;
	color: var(--ns-green-deep);
	background: var(--ns-green-light);
	border: 1px solid #cdeedda6;
	border-radius: 4px;
	text-decoration: none;
}

.xy-forum-badge:hover {
	color: #fff;
	background: var(--ns-green);
	border-color: var(--ns-green);
	text-decoration: none;
}

/* 回复数徽章（thread_list_inc_posts_before hook 注入） */
.xy-posts-badge {
	display: inline-block;
	min-width: 26px;
	padding: 2px 6px;
	font-size: 12px;
	line-height: 16px;
	text-align: center;
	color: var(--ns-text-2);
	background: var(--ns-card-2);
	border: 1px solid var(--ns-border);
	border-radius: 4px;
}

/* 原生的评论 icon+数字隐藏（徽章已表达，避免重复） */
.threadlist .thread .text-muted.small > span.ml-2:last-child {
	display: none;
}

/* 标题加粗、行距 */
.thread .subject {
	font-weight: 600;
}

.thread .subject a:hover {
	text-decoration: none;
}

/* ---- 12.2 左侧竖版导航 ---- */
/* 默认隐藏，>=1400px 才显示（唯一断点控制，与 hook 里 class 配合） */
#xy-leftnav {
	display: none;
}

@media (min-width: 1600px) {
	#xy-leftnav {
		display: block;
		position: fixed;
		top: 76px;
		bottom: 16px;
		left: calc(50% - 720px);
		width: 180px;
		z-index: 100;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	/* 左导航存在时，container 右移让位（:has + JS 兜底双保险）
	   任意视口宽度下左导航右缘与 container 左缘保持约 60px 间距，hover 高亮不侵占内容区 */
	body.xy-has-leftnav #body > .container,
	body:has(#xy-leftnav) #body > .container {
		transform: translateX(90px);
	}
}

.xy-leftnav-inner {
	padding: 4px 4px 16px 0;
}

/* 发帖按钮（修 btn-block 在 flex/fixed 容器下的错乱） */
.xy-leftnav-new {
	display: block;
	width: 100%;
	margin-bottom: 12px;
	padding: 8px 12px;
	text-align: center;
	box-shadow: 0 2px 6px rgba(47, 191, 113, 0.35);
}

.xy-leftnav-new i {
	margin-right: 6px;
}

.xy-leftnav-list {
	list-style: none;
	padding: 0;
	margin: 0 0 12px;
}

.xy-leftnav-list li a {
	display: flex;
	align-items: center;
	padding: 7px 12px;
	font-size: 14px;
	color: var(--ns-text-2);
	border-radius: 6px;
	text-decoration: none;
}

.xy-leftnav-list li a i {
	width: 18px;
	margin-right: 8px;
	text-align: center;
	font-size: 13px;
}

.xy-leftnav-list li a:hover {
	color: var(--ns-green-deep);
	background: var(--ns-green-light);
}

.xy-leftnav-list li.active a {
	color: var(--ns-green-deep);
	font-weight: 600;
	background: var(--ns-green-light);
	box-shadow: inset 3px 0 0 var(--ns-green);
}

/* ---- 12.3 侧栏组件增强 ---- */
.xy-side-widget {
	margin-bottom: 1rem;
}

/* 热帖榜 */
.xy-hot-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.xy-hot-list li {
	display: flex;
	align-items: center;
	padding: 6px 0;
	border-bottom: 1px dashed var(--ns-border);
}

.xy-hot-list li:last-child {
	border-bottom: 0;
}

.xy-hot-rank {
	flex: 0 0 20px;
	height: 20px;
	margin-right: 8px;
	font-size: 12px;
	line-height: 20px;
	text-align: center;
	color: var(--ns-text-3);
	background: var(--ns-card-2);
	border-radius: 4px;
}

.xy-hot-rank-1, .xy-hot-rank-2, .xy-hot-rank-3 {
	color: #fff;
	background: var(--ns-green);
}

.xy-hot-list a {
	flex: 1 1 auto;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--ns-text);
}

.xy-hot-list a:hover {
	color: var(--ns-green-deep);
	text-decoration: none;
}

.xy-hot-views {
	flex: 0 0 auto;
	margin-left: 8px;
	font-size: 12px;
}

/* ---- 12.4 顶栏紧凑化 / 顶栏搜索框 ---- */
/* 顶栏整体瘦身 */
#header.navbar {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

#header .navbar-brand {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

/* 顶栏搜索框 */
.xy-topbar-search {
	flex: 0 1 320px;
	margin-right: 1rem;
}

.xy-topbar-search-group {
	width: 100%;
}

.xy-topbar-search .form-control {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.2);
	color: #fff;
	border-radius: 20px 0 0 20px;
}

.xy-topbar-search .form-control::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

.xy-topbar-search .form-control:focus {
	background: rgba(255, 255, 255, 0.18);
	border-color: var(--ns-green);
	box-shadow: none;
}

.xy-topbar-search .btn-primary {
	border-radius: 0 20px 20px 0;
}

/* 顶栏搜索存在时隐藏侧栏搜索卡（避免重复），JS 兜底由 topbar JS 加 body 类 */
@media (min-width: 992px) {
	body.xy-has-topbar-search .aside form#search_form,
	body:has(#xy_topbar_search_form) .aside form#search_form {
		display: none;
	}
}

/* 顶栏在窄屏搜索隐藏时保证折叠菜单里的搜索入口（xn_search 注入的 hidden-lg 项）可见 */


/* ---- 12.5 双发帖按钮去重：左导航存在时（宽屏）隐藏侧栏原发帖按钮 ---- */
@media (min-width: 1600px) {
	body.xy-has-leftnav .aside > a.btn-primary.btn-block,
	body:has(#xy-leftnav) .aside > a.btn-primary.btn-block {
		display: none;
	}
}

/* ---- 12.6 手机菜单按钮未读红点（header_nav overwrite 输出） ---- */
.navbar-toggler {
	position: relative;
}

.xy-toggler-badge {
	position: absolute;
	top: -2px;
	right: -4px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	font-size: 10px;
	line-height: 16px;
	text-align: center;
	color: #fff;
	background: #e5534b;
	border-radius: 8px;
	box-shadow: 0 0 0 2px var(--ns-header);
}

/* ---- 12.7 top 导航模式适配 ---- */
/* top 模式：横向版块在顶栏（body 无 xy-has-leftnav，container 不偏移，无额外处理） */
/* 顶栏版块过多时允许横向滚动，防止换行撑高 */
@media (min-width: 992px) {
	#header .navbar-nav.mr-auto {
		flex-wrap: nowrap;
		overflow-x: auto;
		max-width: 100%;
	}
	#header .navbar-nav.mr-auto .nav-link {
		white-space: nowrap;
	}
}
