@charset "utf-8";
/* ============================================================================
   频道蓝 · 社区主题 —— 亮色 + 版式（ws_qqpd_theme / css/theme.css）
   ----------------------------------------------------------------------------
   设计来源：腾讯频道 Web 端（pd.qq.com）桌面布局，配色与尺寸取自其设计 token：
     品牌     #2b64f5（hover #0b47e0）     页面底 #f3f3f3     卡片 #fff
     正文     #222      次要 rgba(60,60,67,.56)   三级 #bdbdbd
     边框     rgba(219,220,224,.4)        阴影 0 2px 4px rgba(0,0,0,.04)
     成功 #15d173 / 危险 #f74c30 / 警告 #ffb300
   版式骨架：
     顶栏 62px 吸顶 → 左栏 208px（sticky） + 主列（max 780px）
     主列内：频道横幅 100px/12px 圆角 → 发帖框 → tab（3px 短下划线）→ 卡片流
   ----------------------------------------------------------------------------
   约定：本文件只写「亮色 + 布局」，暗色只覆盖变量（theme-dark.css）。
   ========================================================================== */

:root{
	--qd-brand:#2b64f5;
	--qd-brand-rgb:43,100,245;
	--qd-brand-hover:#0b47e0;
	--qd-brand-weak:#f0f4fe;

	--qd-text:#222;
	--qd-text-2:rgba(60,60,67,.56);
	--qd-text-3:#bdbdbd;
	--qd-icon:rgba(60,60,67,.72);

	--qd-bg:#f3f3f3;
	--qd-card:#fff;
	--qd-card-2:#f9f9f9;
	--qd-hover:rgba(0,0,0,.03);
	--qd-active:rgba(0,0,0,.05);

	--qd-line:rgba(219,220,224,.9);
	--qd-line-2:rgba(219,220,224,.5);

	--qd-success:#15d173;
	--qd-error:#f74c30;
	--qd-warn:#ffb300;

	--qd-shadow:0 2px 4px rgba(0,0,0,.04);
	--qd-shadow-2:0 4px 12px rgba(0,0,0,.08);

	--qd-r-sm:6px;
	--qd-r:8px;
	--qd-r-lg:12px;

	--qd-top-h:62px;
	--qd-side-w:208px;
	--qd-max:1120px;
}

/* ---------- 基础 ---------- */
/* ★ 核心 bootstrap-bbs.css 把 html/body 锁成 height:100% + flex 列布局
   （为了把页脚压到底部）。这套约束会让 position:sticky 的顶栏失效 ——
   顶栏会跟着内容一起滚走。所以这里必须先解除它，再谈版式。 */
html,body{height:auto;}
body{
	display:block;
	min-height:100vh;
	background:var(--qd-bg);
	color:var(--qd-text);
	font-family:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans","PingFang SC","PingFang TC","Microsoft YaHei",sans-serif;
	font-size:14px;
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}
/* 核心在 #body 与 .container 上还有一层 padding 与 max-width。
   只在「装了本主题外壳」的页面上解除，不影响搜索页 / 登录页 / 我的等原生页面。
   :has() 不被支持时退化为一层 15px 内边距，版式不破。 */
#body:has(> .container > .qd-shell){padding-top:0;}
#body > .container:has(> .qd-shell){max-width:none;padding-left:0;padding-right:0;}
a{color:inherit;text-decoration:none;}
a:hover{color:inherit;text-decoration:none;}
.qd-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.qd-dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.4;margin:0 7px;vertical-align:middle;}

/* ---------- 顶栏 ---------- */
.qd-top{
	position:sticky;top:0;z-index:100;
	height:var(--qd-top-h);
	background:var(--qd-card);
	box-shadow:0 1px 0 var(--qd-line-2);
}
.qd-top-in{
	max-width:var(--qd-max);margin:0 auto;height:100%;
	display:flex;align-items:center;gap:10px;padding:0 16px;
}
.qd-top-menu{
	display:none;align-items:center;justify-content:center;
	width:34px;height:34px;border:0;border-radius:var(--qd-r);
	background:transparent;color:var(--qd-icon);font-size:16px;cursor:pointer;
}
.qd-top-menu:hover{background:var(--qd-hover);color:var(--qd-text);}
.qd-brand{display:flex;align-items:center;gap:8px;min-width:0;margin-right:8px;}
.qd-brand-logo{height:26px;width:auto;max-width:120px;object-fit:contain;display:block;}
.qd-brand-name{
	font-size:16px;font-weight:600;color:var(--qd-text);
	white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;
}
.qd-top-act{margin-left:auto;display:flex;align-items:center;gap:8px;}
.qd-iconbtn{
	display:inline-flex;align-items:center;justify-content:center;
	width:34px;height:34px;border:0;border-radius:var(--qd-r);
	background:transparent;color:var(--qd-icon);font-size:16px;cursor:pointer;
	transition:background .15s,color .15s;
}
.qd-iconbtn:hover{background:var(--qd-hover);color:var(--qd-text);}

/* 按钮 */
.qd-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:6px;
	height:34px;padding:0 16px;border-radius:var(--qd-r);
	font-size:14px;font-weight:500;line-height:1;border:0;cursor:pointer;
	transition:background .15s,color .15s,border-color .15s;white-space:nowrap;
}
.qd-btn-sm{height:30px;padding:0 13px;font-size:13px;}
.qd-btn-primary{background:var(--qd-brand);color:#fff;}
.qd-btn-primary:hover{background:var(--qd-brand-hover);color:#fff;}
.qd-btn-ghost{background:var(--qd-hover);color:var(--qd-text);}
.qd-btn-ghost:hover{background:var(--qd-active);color:var(--qd-text);}
.qd-btn-line{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.62);}
.qd-btn-line:hover{background:rgba(255,255,255,.28);color:#fff;}
.qd-btn i{font-size:13px;}

/* 用户菜单 */
.qd-user{position:relative;}
.qd-user-btn{
	display:flex;align-items:center;gap:6px;height:34px;padding:0 8px;
	border:0;border-radius:var(--qd-r);background:transparent;color:var(--qd-text);cursor:pointer;
}
.qd-user-btn:hover{background:var(--qd-hover);}
.qd-user-btn i{font-size:11px;color:var(--qd-text-3);}
.qd-user-name{font-size:13px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qd-av{display:block;border-radius:50%;overflow:hidden;flex:0 0 auto;background:var(--qd-card-2);}
.qd-av img{width:100%;height:100%;object-fit:cover;display:block;}
.qd-av-sm{width:26px;height:26px;}
.qd-user-menu{
	position:absolute;right:0;top:calc(100% + 6px);min-width:158px;
	background:var(--qd-card);border-radius:var(--qd-r-lg);
	box-shadow:var(--qd-shadow-2);border:1px solid var(--qd-line-2);
	padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);
	transition:opacity .16s,transform .16s,visibility .16s;
}
.qd-user.is-open .qd-user-menu{opacity:1;visibility:visible;transform:none;}
.qd-user-menu a{
	display:flex;align-items:center;gap:9px;height:36px;padding:0 10px;
	border-radius:var(--qd-r);font-size:13px;color:var(--qd-text);
}
.qd-user-menu a:hover{background:var(--qd-hover);}
.qd-user-menu a i{width:15px;font-size:13px;color:var(--qd-icon);}

/* 移动端横向版块条（桌面由左栏承担） */
.qd-nav{display:none;}

/* ---------- 骨架 ---------- */
.qd-shell{
	max-width:var(--qd-max);margin:0 auto;padding:16px 16px 40px;
	display:flex;align-items:flex-start;gap:20px;
}
.qd-railcol{
	width:var(--qd-side-w);flex:0 0 var(--qd-side-w);
	position:sticky;top:calc(var(--qd-top-h) + 16px);
	max-height:calc(100vh - var(--qd-top-h) - 32px);overflow-y:auto;
	scrollbar-width:thin;
}
.qd-main{flex:1 1 auto;min-width:0;max-width:780px;}

/* ---------- 左栏 ---------- */
.qd-side{display:flex;flex-direction:column;gap:14px;}
.qd-side-search{
	display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;
	background:var(--qd-card);border-radius:18px;color:var(--qd-text-3);
}
.qd-side-search i{font-size:13px;flex:0 0 auto;}
.qd-side-search input{
	flex:1 1 auto;min-width:0;border:0;background:transparent;outline:none;
	font-size:13px;color:var(--qd-text);padding:0;
}
.qd-side-search input::placeholder{color:var(--qd-text-3);}
.qd-side-group{display:flex;flex-direction:column;gap:2px;}
.qd-side-title{
	display:flex;align-items:center;gap:6px;
	padding:6px 10px;font-size:12px;font-weight:500;color:var(--qd-text-3);
}
.qd-side-title i{font-size:10px;opacity:.8;}
.qd-side-item{
	display:flex;align-items:center;gap:10px;height:38px;padding:0 10px;
	border-radius:var(--qd-r);font-size:14px;color:var(--qd-text);
	transition:background .14s,color .14s;
}
.qd-side-item:hover{background:var(--qd-hover);color:var(--qd-text);}
.qd-side-item.is-active{
	background:rgba(var(--qd-brand-rgb),.1);
	color:var(--qd-brand);font-weight:500;
}
.qd-side-item > i{width:16px;font-size:15px;text-align:center;flex:0 0 16px;opacity:.9;}
.qd-side-ico{width:18px;height:18px;border-radius:5px;object-fit:cover;flex:0 0 18px;}
.qd-side-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qd-side-num{font-size:11px;color:var(--qd-text-3);flex:0 0 auto;}
.qd-side-item.is-active .qd-side-num{color:rgba(var(--qd-brand-rgb),.7);}
.qd-side-more{
	display:flex;align-items:center;gap:6px;height:32px;margin-top:2px;padding:0 10px;
	border:0;background:transparent;color:var(--qd-text-3);font-size:12px;cursor:pointer;text-align:left;
}
.qd-side-more:hover{color:var(--qd-brand);}
.qd-side-more i{font-size:10px;transition:transform .18s;}
.qd-side-more.is-open i{transform:rotate(180deg);}
.qd-side-stats .qd-stats{
	display:flex;gap:6px;padding:4px 10px 6px;
}
.qd-stats span{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:1px;}
.qd-stats b{font-size:14px;font-weight:600;color:var(--qd-text);line-height:1.3;}
.qd-stats i{font-size:11px;font-style:normal;color:var(--qd-text-3);}
.qd-rail-extra:empty{display:none;}
.qd-minicard{
	background:var(--qd-card);border-radius:var(--qd-r-lg);padding:12px 14px;margin-bottom:10px;
}
.qd-minicard-title{font-size:12px;color:var(--qd-text-3);margin-bottom:6px;}
.qd-minicard-body{font-size:13px;line-height:1.7;color:var(--qd-text-2);}
.qd-mods{display:flex;flex-wrap:wrap;gap:8px;}
.qd-mod{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--qd-text-2);}
.qd-mod img{border-radius:50%;}

/* ---------- 频道横幅 ---------- */
.qd-banner{
	position:relative;height:100px;border-radius:var(--qd-r-lg);overflow:hidden;
	margin-bottom:14px;background:var(--qd-card);
}
.qd-banner-bg{position:absolute;inset:0;}
.qd-banner-img{
	position:absolute;right:0;top:0;height:100%;width:52%;
	object-fit:cover;object-position:center;
}
.qd-banner-fade{position:absolute;inset:0;}
/* 没有配背景图时的兜底：右侧一层柔和的三色渐变，避免半条横幅是死板的纯色块。
   用渐变而不是内置图片：零资源、任意宽度都不糊、暗色下也好调。 */
.qd-banner-ph{
	position:absolute;right:0;top:0;height:100%;width:56%;
	background:
		radial-gradient(circle at 74% 20%,rgba(var(--qd-brand-rgb),.46),transparent 58%),
		radial-gradient(circle at 96% 92%,rgba(255,179,0,.42),transparent 54%),
		linear-gradient(116deg,rgba(var(--qd-brand-rgb),.08) 0%,rgba(var(--qd-brand-rgb),.3) 48%,rgba(21,209,115,.24) 100%);
}
.qd-banner-body{
	position:relative;height:100%;display:flex;align-items:center;gap:14px;
	padding:0 18px;
}
.qd-banner-icon{
	width:60px;height:60px;flex:0 0 60px;border-radius:12px;
	border:2px solid #fff;background-size:cover;background-position:center;
	background-color:rgba(255,255,255,.6);box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.qd-banner-info{min-width:0;flex:1 1 auto;}
.qd-banner-name{
	margin:0;font-size:24px;font-weight:600;line-height:1.25;
	color:#1a1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.qd-banner-meta{
	margin-top:2px;font-size:12px;color:rgba(26,28,30,.62);
	display:flex;align-items:center;gap:2px;
}
.qd-banner-meta i{font-size:12px;opacity:.8;}
.qd-banner-act{flex:0 0 auto;}
.qd-banner.is-dark .qd-banner-name{color:#fff;}
.qd-banner.is-dark .qd-banner-meta{color:rgba(255,255,255,.8);}
.qd-banner.is-dark .qd-banner-icon{border-color:rgba(255,255,255,.35);}

/* 版块简介 */
.qd-forum-brief{
	font-size:13px;color:var(--qd-text-2);line-height:1.7;
	padding:0 2px 10px;
}

/* ---------- 发帖框 ---------- */
.qd-editor{
	display:block;background:var(--qd-card);border:1px solid rgba(34,34,34,.7);
	border-radius:var(--qd-r-lg);padding:0 14px 12px;margin-bottom:16px;
	transition:border-color .16s,box-shadow .16s;
}
.qd-editor:hover,.qd-editor:focus-within{
	border-color:var(--qd-brand);box-shadow:0 0 0 3px rgba(var(--qd-brand-rgb),.08);
}
.qd-editor-head{display:flex;align-items:center;gap:10px;height:46px;}
.qd-editor-av{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:0 0 24px;background:var(--qd-card-2);}
.qd-editor-ph{
	flex:1 1 auto;min-width:0;font-size:14px;font-weight:500;color:var(--qd-text-3);
	overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.qd-editor-tools{display:flex;align-items:center;gap:14px;color:var(--qd-icon);font-size:17px;}
.qd-editor.is-guest .qd-editor-ph{color:var(--qd-text-2);}
.qd-editor-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:2px;}
.qd-editor-tip{font-size:12px;color:var(--qd-text-3);margin-right:auto;}

/* ---------- tab ---------- */
.qd-tabs{
	display:flex;align-items:center;gap:10px;
	border-bottom:1px solid var(--qd-line-2);
	margin-bottom:12px;padding-bottom:0;
}
.qd-tabs-inner{
	display:flex;align-items:center;gap:2px;
	flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}
.qd-tabs-inner::-webkit-scrollbar{display:none;}
.qd-tab{
	position:relative;display:inline-block;white-space:nowrap;
	padding:9px 14px;font-size:16px;color:var(--qd-icon);
	border-radius:var(--qd-r) var(--qd-r) 0 0;
	transition:color .14s,background .14s;
}
.qd-tab:hover{color:var(--qd-text);background:var(--qd-hover);}
.qd-tab.is-active{color:var(--qd-text);font-weight:600;}
.qd-tab.is-active::after{
	content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:3px;
	border-radius:2px;background:var(--qd-brand);
}
.qd-tabs-sort{display:flex;align-items:center;gap:2px;flex:0 0 auto;padding-bottom:6px;}
.qd-sort{
	font-size:12px;color:var(--qd-text-3);padding:3px 8px;border-radius:var(--qd-r-sm);
}
.qd-sort:hover{color:var(--qd-text);background:var(--qd-hover);}
.qd-sort.is-active{color:var(--qd-brand);background:var(--qd-brand-weak);}

/* ---------- 信息流卡片 ---------- */
.qd-feed{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;}
.qd-card{
	position:relative;background:var(--qd-card);border-radius:var(--qd-r-lg);
	padding:14px 16px;list-style:none;
	transition:background .14s,box-shadow .14s;
}
.qd-card:hover{box-shadow:var(--qd-shadow);}
.qd-card.is-top{padding-left:16px;}
.qd-modcb{position:absolute;left:4px;top:16px;margin:0;}
.qd-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.qd-card-head .qd-av{width:24px;height:24px;flex:0 0 24px;font-size:0;}
.qd-nick{
	font-size:12px;font-weight:500;color:var(--qd-text-2);
	max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
a.qd-nick:hover{color:var(--qd-brand);}
.qd-tag{
	display:inline-flex;align-items:center;height:16px;padding:0 5px;
	border-radius:4px;font-size:11px;font-weight:500;line-height:1;
	background:var(--qd-brand-weak);color:var(--qd-brand);white-space:nowrap;
}
.qd-tag-plain{background:var(--qd-hover);color:var(--qd-text-2);max-width:120px;overflow:hidden;text-overflow:ellipsis;}
.qd-tag-brand{background:rgba(var(--qd-brand-rgb),.12);color:var(--qd-brand);}
.qd-tag-top{background:rgba(247,76,48,.12);color:var(--qd-error);margin-right:5px;vertical-align:1px;}
.qd-card-time{margin-left:auto;font-size:12px;color:var(--qd-text-3);white-space:nowrap;}
.qd-card-title{
	font-size:15px;font-weight:600;line-height:22px;
	color:var(--qd-text);margin-bottom:5px;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.qd-card-title:hover{color:var(--qd-brand);}
.qd-card-title i{font-size:12px;vertical-align:1px;margin-right:3px;}
.qd-card-title i.icon-top-1,.qd-card-title i.icon-top-2,.qd-card-title i.icon-top-3{color:var(--qd-error);}
.qd-card-text{
	font-size:14px;line-height:22px;color:var(--qd-text);
	display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
	word-break:break-word;
}
.qd-card-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px;max-width:420px;}
.qd-imgs-1{grid-template-columns:minmax(0,1fr);max-width:320px;}
.qd-imgs-2{grid-template-columns:repeat(2,1fr);max-width:420px;}
.qd-imgs-3{grid-template-columns:repeat(3,1fr);}
.qd-img{
	display:block;position:relative;overflow:hidden;border-radius:var(--qd-r-sm);
	background:var(--qd-card-2);aspect-ratio:1/1;
}
.qd-imgs-1 .qd-img{aspect-ratio:4/3;}
.qd-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.qd-card:hover .qd-img img{transform:scale(1.03);}
.qd-card-foot{
	display:flex;align-items:center;justify-content:space-between;gap:10px;
	margin-top:10px;
}
.qd-card-foot-l{min-width:0;display:flex;align-items:center;gap:8px;}
.qd-card-forum{
	font-size:12px;color:var(--qd-text-3);
	padding:2px 7px;border-radius:10px;background:var(--qd-hover);
	max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.qd-card-forum:hover{color:var(--qd-brand);}
.qd-card-foot-r{display:flex;align-items:center;gap:16px;flex:0 0 auto;}
.qd-act{
	display:inline-flex;align-items:center;gap:5px;
	font-size:12px;color:var(--qd-text-2);
}
.qd-act i{font-size:13px;}
a.qd-act:hover{color:var(--qd-brand);}
.qd-empty{
	display:flex;flex-direction:column;align-items:center;justify-content:center;
	gap:8px;padding:56px 0;background:var(--qd-card);border-radius:var(--qd-r-lg);
	color:var(--qd-text-3);font-size:13px;list-style:none;
}
.qd-empty i{font-size:30px;opacity:.45;}

/* 分页 */
.qd-pager{margin-top:14px;}
.pagination{gap:6px;margin:0;}
.pagination .page-link,.pagination .page-item .page-link{
	border:1px solid var(--qd-line-2);border-radius:var(--qd-r);
	color:var(--qd-text-2);font-size:13px;padding:5px 11px;background:var(--qd-card);
}
.pagination .page-link:hover{background:var(--qd-hover);color:var(--qd-text);border-color:var(--qd-line);}
.pagination .active .page-link{background:var(--qd-brand);border-color:var(--qd-brand);color:#fff;}
.pagination .disabled .page-link{opacity:.45;}

/* ---------- 帖子页 ---------- */
.qd-crumb{
	display:flex;align-items:center;gap:6px;flex-wrap:wrap;
	font-size:12px;color:var(--qd-text-3);margin-bottom:10px;
}
.qd-crumb a{color:var(--qd-text-3);}
.qd-crumb a:hover{color:var(--qd-brand);}
.qd-crumb span{color:var(--qd-text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px;}
.qd-crumb i{font-size:10px;opacity:.6;}

.qd-thread{background:var(--qd-card);border-radius:var(--qd-r-lg);padding:18px 20px 6px;}
.qd-thread-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.qd-thread-head .qd-av{width:36px;height:36px;flex:0 0 36px;}
.qd-thread-who{min-width:0;flex:1 1 auto;}
.qd-thread-who-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.qd-thread-who-line .qd-nick{font-size:14px;color:var(--qd-text);font-weight:600;max-width:none;}
.qd-thread-who-meta{display:flex;align-items:center;font-size:12px;color:var(--qd-text-3);margin-top:1px;}
.qd-thread-acts{display:flex;align-items:center;gap:4px;flex:0 0 auto;}
.qd-thread-title{
	font-size:20px;line-height:1.45;font-weight:600;color:var(--qd-text);
	margin:0 0 10px;word-break:break-word;
}
.qd-thread-msg{font-size:15px;line-height:1.8;color:var(--qd-text);word-break:break-word;}
.qd-thread-msg img{border-radius:var(--qd-r-sm);max-width:100%;height:auto;}
.qd-thread-msg p{margin-bottom:.8em;}
.qd-thread-msg a{color:var(--qd-brand);}
.qd-thread-plugin:empty{display:none;}
.qd-thread-plugin{padding:6px 0 2px;}
.qd-thread-stats{
	display:flex;align-items:center;gap:18px;flex-wrap:wrap;
	margin-top:12px;padding:12px 0;border-top:1px solid var(--qd-line-2);
	font-size:12px;color:var(--qd-text-3);
}
.qd-thread-stats span{display:inline-flex;align-items:baseline;gap:5px;}
.qd-thread-stats b{font-size:14px;font-weight:600;color:var(--qd-text);}

.qd-replies{background:var(--qd-card);border-radius:var(--qd-r-lg);margin-top:12px;padding:4px 20px 8px;}
.qd-replies-head{
	display:flex;align-items:center;gap:6px;
	padding:14px 0 10px;border-bottom:1px solid var(--qd-line-2);
}
.qd-replies-head b{font-size:15px;font-weight:600;}
.qd-replies-num{font-size:12px;color:var(--qd-text-3);}
.qd-replies-right{margin-left:auto;font-size:12px;color:var(--qd-text-3);}
.qd-postlist{display:flex;flex-direction:column;}
.qd-post{display:flex;gap:10px;padding:16px 0;border-bottom:1px solid var(--qd-line-2);}
.qd-post:last-child{border-bottom:0;}
.qd-post .qd-av{width:28px;height:28px;flex:0 0 28px;font-size:0;}
.qd-post-body{flex:1 1 auto;min-width:0;}
.qd-post-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px;}
.qd-post-head .qd-nick{font-size:13px;color:var(--qd-text);font-weight:500;max-width:none;}
.qd-post-time{font-size:12px;color:var(--qd-text-3);}
.qd-post-acts{margin-left:auto;display:flex;align-items:center;gap:2px;}
.qd-pact{
	display:inline-flex;align-items:center;justify-content:center;
	width:26px;height:26px;border-radius:var(--qd-r-sm);
	color:var(--qd-text-3);font-size:12px;transition:background .14s,color .14s;
}
.qd-pact:hover{background:var(--qd-hover);color:var(--qd-text);}
.qd-floor{
	display:inline-flex;align-items:baseline;gap:1px;
	font-size:12px;color:var(--qd-text-3);margin-left:6px;
}
.qd-floor b{font-weight:600;color:var(--qd-text-2);font-size:12px;}
.qd-post-msg{font-size:15px;line-height:1.75;color:var(--qd-text);word-break:break-word;}
.qd-post-msg img{border-radius:var(--qd-r-sm);max-width:100%;height:auto;}
.qd-post-msg a{color:var(--qd-brand);}
.qd-post-subject{font-size:14px;margin-bottom:4px;}
.qd-newpost{background:var(--qd-card-2);border-radius:var(--qd-r-lg);padding:16px;margin-top:8px;border-bottom:0;}
.qd-textarea{
	width:100%;border:1px solid var(--qd-line);border-radius:var(--qd-r);
	padding:10px 12px;font-size:14px;line-height:1.7;color:var(--qd-text);
	min-height:88px;
	background:var(--qd-card);resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s;
}
.qd-textarea:focus{border-color:var(--qd-brand);box-shadow:0 0 0 3px rgba(var(--qd-brand-rgb),.1);}
.qd-replyform{margin-top:2px;}
.qd-replyform-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.qd-reply-adv{font-size:12px;color:var(--qd-text-3);}
.qd-reply-adv:hover{color:var(--qd-brand);}
.qd-back{
	display:flex;align-items:center;justify-content:center;gap:6px;
	height:38px;margin:16px auto 0;max-width:220px;
	border-radius:var(--qd-r);background:var(--qd-card);
	font-size:13px;color:var(--qd-text-2);
}
.qd-back:hover{color:var(--qd-brand);}

/* 回到顶部 */
#qdBackTop{
	position:fixed;right:24px;bottom:28px;z-index:90;
	width:40px;height:40px;border:0;border-radius:50%;
	background:var(--qd-card);color:var(--qd-icon);font-size:16px;cursor:pointer;
	box-shadow:var(--qd-shadow-2);opacity:0;visibility:hidden;transform:translateY(6px);
	transition:opacity .2s,transform .2s,visibility .2s,background .15s;
}
#qdBackTop.is-on{opacity:1;visibility:visible;transform:none;}
#qdBackTop:hover{background:var(--qd-brand);color:#fff;}

/* 抽屉遮罩 */
.qd-mask{
	position:fixed;inset:var(--qd-top-h) 0 0 0;background:rgba(0,0,0,.36);
	z-index:110;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;
}
.qd-mask.is-on{opacity:1;visibility:visible;}

/* 页脚适配 */
#footer,.footer{background:transparent;border-top:1px solid var(--qd-line-2);margin-top:8px;}
#footer a,.footer a{color:var(--qd-text-3);}
#footer a:hover,.footer a:hover{color:var(--qd-brand);}

/* ---------- 响应式 ---------- */
@media (max-width: 1023px){
	:root{--qd-side-w:0px;}
	.qd-top-menu{display:inline-flex;}
	.qd-shell{padding:12px 12px 32px;gap:0;}
	.qd-railcol{
		position:fixed;left:0;top:0;bottom:0;width:264px;max-height:none;z-index:120;
		background:var(--qd-card);padding:14px 12px 24px;overflow-y:auto;
		transform:translateX(-102%);transition:transform .22s ease;
		box-shadow:4px 0 18px rgba(0,0,0,.12);
	}
	.qd-shell.qd-drawer-open .qd-railcol{transform:none;}
	.qd-main{max-width:none;}
	.qd-brand-name{max-width:150px;}
}

@media (max-width: 767px){
	.qd-nav{
		display:flex;align-items:center;gap:2px;
		overflow-x:auto;scrollbar-width:none;
		padding:0 12px 8px;background:var(--qd-card);
	}
	.qd-nav::-webkit-scrollbar{display:none;}
	.qd-nav-item{
		white-space:nowrap;padding:5px 10px;border-radius:14px;
		font-size:13px;color:var(--qd-text-2);background:var(--qd-hover);
	}
	.qd-nav-item.is-active,.qd-nav-item.active{background:rgba(var(--qd-brand-rgb),.12);color:var(--qd-brand);font-weight:500;}
	.qd-top{height:auto;padding-bottom:0;}
	.qd-top-in{height:56px;padding:0 12px;gap:6px;}
	.qd-brand-logo{height:24px;max-width:92px;}
	.qd-brand-name{display:none;}
	.qd-top-post span{display:none;}
	.qd-top-post{padding:0;min-width:34px;height:32px;}
	.qd-top-act{gap:6px;}
	.qd-user-name{display:none;}
	.qd-shell{padding:10px 10px 28px;}
	.qd-banner{height:88px;border-radius:10px;margin-bottom:10px;}
	.qd-banner-body{padding:0 12px;gap:10px;}
	.qd-banner-icon{width:48px;height:48px;flex-basis:48px;border-radius:10px;}
	.qd-banner-name{font-size:18px;}
	.qd-banner-meta{font-size:11px;}
	.qd-banner-img{width:46%;}
	.qd-editor{padding:0 12px 10px;margin-bottom:12px;border-radius:10px;}
	.qd-editor-head{height:42px;}
	.qd-tab{font-size:15px;padding:8px 11px;}
	.qd-tab.is-active::after{left:11px;right:11px;}
	.qd-card{padding:12px 12px;border-radius:10px;}
	.qd-card-head{gap:6px;margin-bottom:6px;}
	.qd-card-text{-webkit-line-clamp:2;}
	.qd-card-imgs{gap:3px;}
	.qd-card-foot-r{gap:12px;}
	.qd-thread{padding:14px 14px 4px;border-radius:10px;}
	.qd-thread-title{font-size:17px;}
	.qd-thread-msg,.qd-post-msg{font-size:15px;line-height:1.75;}
	.qd-replies{padding:2px 14px 6px;border-radius:10px;}
	.qd-post{padding:12px 0;}
	.qd-back{max-width:none;}
	#qdBackTop{right:14px;bottom:18px;width:36px;height:36px;}
	.qd-tabs-sort{display:none;}
}

@media (max-width: 420px){
	.qd-banner{height:80px;}
	.qd-banner-name{font-size:16px;}
	.qd-banner-icon{width:42px;height:42px;flex-basis:42px;}
	.qd-card-time{display:none;}
	.qd-card-foot-l{display:none;}
	.qd-tab{font-size:14px;padding:7px 9px;}
}

/* 打印 */
@media print{
	.qd-top,.qd-railcol,.qd-editor,.qd-tabs,.qd-pager,#qdBackTop,.qd-back{display:none!important;}
	.qd-shell{display:block;padding:0;}
	.qd-card,.qd-thread,.qd-replies{box-shadow:none;border:0;}
}

/* ---------- 加载态与图片放大（theme.js 用） ---------- */
.qd-loading{opacity:.55;pointer-events:none;transition:opacity .15s;}
.qd-lightbox{
	position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
	background:rgba(0,0,0,.86);opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s;
	cursor:zoom-out;padding:24px;
}
.qd-lightbox.is-on{opacity:1;visibility:visible;}
.qd-lightbox img{max-width:92vw;max-height:90vh;object-fit:contain;border-radius:4px;box-shadow:0 12px 40px rgba(0,0,0,.5);}
