/* ============================================================
   dbsport · modules.css —— 论坛首页 / 版块列表 / 帖子内容页模块
   ============================================================ */

/* ---- 论坛首页：分类 + 版块卡片 ---- */
.ys-cat{margin-bottom:22px;}
.ys-cat-title{
	font-size:16px;margin-bottom:12px;padding-left:10px;
	border-left:4px solid var(--ys-primary);
}
.ys-cat-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
	gap:var(--ys-gap);
}
.ys-forum-card{
	display:flex;align-items:center;gap:12px;
	background:var(--ys-surface);
	border:1px solid var(--ys-border);
	border-radius:var(--ys-radius);
	box-shadow:var(--ys-shadow);
	padding:14px;
	transition:all .15s ease;
}
.ys-forum-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,23,42,.08);}
.ys-forum-icon{
	flex:0 0 52px;width:52px;height:52px;border-radius:12px;overflow:hidden;
	background:var(--ys-surface-2);border:1px solid var(--ys-border);
	display:flex;align-items:center;justify-content:center;
}
.ys-forum-icon img{width:100%;height:100%;object-fit:cover;}
.ys-forum-ico-text{font-size:10px;color:var(--ys-text-2);padding:2px;text-align:center;word-break:break-all;}
.ys-forum-info{flex:1 1 auto;min-width:0;}
.ys-forum-info h4{font-size:15px;margin-bottom:2px;}
.ys-forum-info h4 a{color:var(--ys-text);}
.ys-forum-info h4 a:hover{color:var(--ys-primary);}
.ys-forum-desc{
	font-size:12px;color:var(--ys-text-2);
	overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ys-forum-sub{margin-top:6px;}
.ys-forum-sub a{
	display:inline-block;font-size:12px;color:var(--ys-text-2);
	background:var(--ys-surface-2);border-radius:4px;padding:2px 8px;margin:2px 4px 0 0;
}
.ys-forum-sub a:hover{color:var(--ys-primary);}
.ys-forum-stat{flex:0 0 auto;text-align:right;font-size:12px;color:var(--ys-text-3);}
.ys-forum-stat span{display:block;}

/* ---- 版块列表页 ---- */
.ys-fd-head{
	display:flex;justify-content:space-between;align-items:center;gap:12px;
	background:var(--ys-surface);
	border:1px solid var(--ys-border);
	border-radius:var(--ys-radius);
	box-shadow:var(--ys-shadow);
	padding:16px;margin-bottom:var(--ys-gap);
}
.ys-fd-title h2{font-size:18px;}
.ys-fd-title p{margin:4px 0 0;font-size:13px;color:var(--ys-text-2);}
.ys-subforums{
	padding:10px 14px;margin-bottom:var(--ys-gap);
	background:var(--ys-surface-2);border-radius:var(--ys-radius);
	font-size:13px;color:var(--ys-text-2);
}
.ys-subforum{
	display:inline-block;margin:2px 6px 2px 0;
	background:var(--ys-surface);border:1px solid var(--ys-border);
	border-radius:999px;padding:2px 12px;font-size:12px;
}
.ys-subforum:hover{border-color:var(--ys-primary);color:var(--ys-primary);}

/* 主题列表（卡片流） */
.ys-threadlist{
	background:var(--ys-surface);
	border:1px solid var(--ys-border);
	border-radius:var(--ys-radius);
	box-shadow:var(--ys-shadow);
	overflow:hidden;
}
.ys-thread{
	display:flex;align-items:center;gap:14px;
	padding:13px 16px;
	border-bottom:1px solid var(--ys-border);
	transition:background .12s ease;
}
.ys-thread:last-child{border-bottom:none;}
.ys-thread:hover{background:var(--ys-surface-2);}
.ys-thread-main{flex:1 1 auto;min-width:0;}
.ys-thread-title{
	font-size:15px;color:var(--ys-text);font-weight:500;
	display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ys-thread:hover .ys-thread-title{color:var(--ys-primary);}
.ys-thread-sub{margin-top:4px;font-size:12px;color:var(--ys-text-3);}
.ys-thread-sub a{color:var(--ys-text-3);}
.ys-thread-sub a:hover{color:var(--ys-primary);}
.ys-thread-sub em{margin-left:8px;font-style:normal;}
.ys-thread-stat{
	flex:0 0 auto;font-size:12px;color:var(--ys-text-3);text-align:center;
}
.ys-thread-stat span{display:block;padding:0 4px;}
.ys-thread-stat em{font-style:normal;color:var(--ys-text);font-weight:600;}
.ys-thread-last{
	flex:0 0 150px;font-size:12px;color:var(--ys-text-3);
	text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ys-thread-last a{color:var(--ys-text-3);}
.ys-thread-last a:hover{color:var(--ys-primary);}

/* ---- 帖子内容页 ---- */
.ys-vt-head{
	background:var(--ys-surface);
	border:1px solid var(--ys-border);
	border-radius:var(--ys-radius);
	box-shadow:var(--ys-shadow);
	padding:18px 20px;margin-bottom:var(--ys-gap);
}
.ys-vt-title{font-size:20px;line-height:1.4;margin-bottom:8px;}
.ys-vt-meta{font-size:13px;color:var(--ys-text-2);}
.ys-vt-meta a{color:var(--ys-primary);font-weight:600;}
.ys-vt-meta span{margin-left:14px;}
.ys-vt-actions{margin-top:12px;}
.ys-vt-actions .ys-btn{margin-right:8px;}

/* 楼层 */
.ys-post{
	display:flex;gap:16px;
	background:var(--ys-surface);
	border:1px solid var(--ys-border);
	border-radius:var(--ys-radius);
	box-shadow:var(--ys-shadow);
	padding:18px;margin-bottom:var(--ys-gap);
}
.ys-post-author{
	flex:0 0 120px;text-align:center;
	background:var(--ys-surface-2);
	border-radius:var(--ys-radius);
	padding:14px 8px;align-self:flex-start;
}
.ys-post-avatar img{width:64px;height:64px;border-radius:50%;}
.ys-post-username{
	display:block;margin-top:8px;font-size:13px;font-weight:600;color:var(--ys-text);
	word-break:break-all;
}
.ys-post-body{flex:1 1 auto;min-width:0;}
.ys-post-meta{
	font-size:12px;color:var(--ys-text-3);
	padding-bottom:8px;margin-bottom:10px;
	border-bottom:1px solid var(--ys-border);
}
.ys-post-meta span{margin-right:14px;}
.ys-post-content{
	font-size:15.5px;line-height:1.85;color:var(--ys-text);
	word-wrap:break-word;overflow:hidden;
	max-width:860px;
}
.ys-post-content img{max-width:100%;}
.ys-post-sig{
	margin-top:16px;padding-top:10px;
	border-top:1px dashed var(--ys-border);
	font-size:12px;color:var(--ys-text-3);
}
.ys-post-actions{
	margin-top:14px;padding-top:10px;
	border-top:1px solid var(--ys-border);
	font-size:13px;
}
.ys-post-actions a{margin-right:14px;color:var(--ys-text-2);}
.ys-post-actions a:hover{color:var(--ys-primary);}

/* 快速回复 */
.ys-fastpost .ys-card-body{padding-top:4px;}
.ys-fastpost-foot{margin-top:10px;text-align:right;}

/* ---- 侧栏 ---- */
.ys-side-info li{
	font-size:13px;color:var(--ys-text-2);
	padding:6px 0;border-bottom:1px dashed var(--ys-border);
}
.ys-side-info li:last-child{border-bottom:none;}
.ys-side-nav li{padding:5px 0;font-size:13px;}
.ys-side-nav a{color:var(--ys-text);}
.ys-side-nav a:hover{color:var(--ys-primary);}

/* 阅读体验优化（2026-10-31）：文章正文限宽居中，不再撑满容器 */
.ys-art-body{max-width:780px;margin:0 auto;font-size:16px;line-height:1.9;color:#1e293b;word-wrap:break-word;}
.ys-art-body p{margin:0 0 1em;}
.ys-art-body img{max-width:100%;height:auto;}
.ys-art-body h1,.ys-art-body h2,.ys-art-body h3,.ys-art-body h4{line-height:1.5;margin:1.2em 0 .6em;color:#0f172a;}
