/* ============ mitbbs / 华人空间 — structure ============ */

/* page frame: 1024px centered white page on near-white ground */
#wrap.hx-wrap {
	width: 1024px;
	margin: 0 auto;
	background: #fff;
	border-left: 1px solid #cbcbcb;
	border-right: 1px solid #cbcbcb;
	padding: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.hx-body { padding: 0 0 12px; }

/* ---- top utility nav ---- */
.hx-topnav {
	border-bottom: 1px solid #cbcbcb;
	padding: 5px 8px;
	background: #fff;
	font-size: 12px;
	overflow: hidden;
}
.hx-topnav a { margin: 0 2px; }
.hx-topnav-r { float: right; }
.hx-menu-toggle { display: none; }

/* ---- header row: seal logo + wordmark | search ---- */
.hx-header {
	display: flex;
	align-items: center;
	padding: 10px 8px;
	gap: 12px;
}
.hx-logo { display: flex; align-items: center; flex: none; }
.hx-logo:hover { text-decoration: none; }
.hx-seal {
	width: 48px; height: 48px;
	background: #B5332B;
	border: 2px solid #8E241E;
	border-radius: 6px;
	color: #fff;
	font-size: 21px; font-weight: bold;
	display: flex; align-items: center; justify-content: center;
	margin-right: 10px;
	flex: none;
}
.hx-brand { display: flex; flex-direction: column; }
.hx-name { font-size: 24px; font-weight: bold; letter-spacing: 3px; line-height: 1.15; }
.hx-dom { font-size: 11px; color: #888; font-family: Arial, sans-serif; letter-spacing: 2px; }
.hx-hright { flex: 1; text-align: right; min-width: 0; }
.hx-hlinks { font-size: 12px; margin-bottom: 22px; color: #666; }
.hx-search input {
	width: 280px; max-width: 62%;
	height: 24px;
	border: 1px solid #cbcbcb;
	border-radius: 4px;
	font-size: 13px;
	padding: 2px 6px;
	vertical-align: middle;
}
.hx-search button {
	height: 30px;
	padding: 0 18px;
	background: #FFF0A6;
	color: #000;
	border: 1px solid #C9B458;
	border-radius: 4px;
	font-size: 14px;
	cursor: pointer;
	vertical-align: middle;
}

/* ---- slim breadcrumb bar ---- */
.hx-crumb {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding: 6px 8px;
	border-top: 1px solid #cbcbcb;
	border-bottom: 1px solid #cbcbcb;
	background: #f7f9fc;
	font-size: 12px;
}

/* ---- two-column layout (main + 300px sidebar) ---- */
.hx-cols { display: flex; gap: 12px; padding: 12px 8px 0; align-items: flex-start; }
.hx-main { flex: 1; min-width: 0; }
.hx-sidebar { width: 300px; flex: none; min-width: 0; }

/* ---- module: gradient title bar + bordered body (creaders.net convention) ---- */
.hx-mod { margin-bottom: 12px; }
.hx-modhead {
	min-height: 26px;
	line-height: 26px;
	background: linear-gradient(to bottom, #fdfefe, #dfe8f2);
	border: 1px solid #cbcbcb;
	padding: 0 8px;
	font-weight: bold;
	font-size: 13px;
	overflow: hidden;
}
.hx-modhead .hx-sq {
	display: inline-block;
	width: 8px; height: 8px;
	background: #b95838;
	margin-right: 6px;
}
.hx-modhead .hx-more { float: right; font-weight: normal; font-size: 11px; color: #666; }
.hx-modbody { border: 1px solid #cbcbcb; border-top: none; padding: 8px 10px; }
.hx-sidebody { font-size: 12px; line-height: 2; color: #333; }
.hx-sidebody p { margin: 0 0 4px; }

/* ---- forum rows (index) ---- */
.hx-forumrow {
	display: flex;
	gap: 10px;
	padding: 9px 6px;
	border-bottom: 1px dotted #cbcbcb;
	align-items: flex-start;
}
.hx-forumrow:last-child { border-bottom: none; }
.hx-fr-main { flex: 1; min-width: 0; }
.hx-fr-name { font-size: 14px; font-weight: bold; }
.hx-fr-desc { color: #555; font-size: 12px; margin-top: 2px; }
.hx-fr-mods { color: #888; font-size: 11px; margin-top: 2px; }
.hx-fr-counts { flex: none; width: 110px; text-align: center; color: #555; font-size: 12px; }
.hx-fr-last { flex: none; width: 220px; font-size: 11px; color: #666; text-align: right; overflow: hidden; }
.hx-unread {
	display: inline-block;
	width: 8px; height: 8px;
	background: #B5332B;
	border-radius: 50%;
	margin-right: 6px;
}

/* ---- board head + toolbar (viewforum) ---- */
.hx-boardhead { text-align: center; padding: 14px 8px 6px; }
.hx-boardhead h1 { font-size: 18px; margin: 0 0 4px; }
.hx-boardhead h1 span { font-size: 13px; color: #666; font-weight: normal; margin-left: 8px; }
.hx-boardhead p { color: #555; font-size: 12px; margin: 0; }
.hx-toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 8px;
	border-top: 1px solid #cbcbcb;
	border-bottom: 1px solid #cbcbcb;
	background: #f7f9fc;
	font-size: 12px;
}
.hx-pagenav { margin-left: auto; }
.hx-postbtn {
	background: #FBFBF1;
	color: #333;
	border: 1px solid #d8d2b8;
	padding: 6px 14px;
	font-size: 13px;
	flex: none;
}
.hx-postbtn:hover { color: #333; text-decoration: none; background: #f0ecd9; }
.hx-modesel { font-size: 12px; padding: 2px; }

/* ---- topic table (subSilver-derived look) ---- */
.hx-tablewrap { padding: 0 8px; }
table.hx-topics { width: 100%; border-collapse: collapse; font-size: 12px; }
.hx-topics thead th {
	background: linear-gradient(to bottom, #5C7FA3, #3E5F7E);
	color: #fff;
	font-weight: bold;
	padding: 7px 6px;
	text-align: center;
	border: 1px solid #3E5F7E;
	font-size: 12px;
}
.hx-topics tbody td { padding: 7px 6px; border-bottom: 1px solid #e6e6e6; vertical-align: middle; }
.hx-topics tbody tr.hx-alt td { background: #F5F7FA; }
/* automatic 序号 numbering, no template arithmetic needed */
.hx-topics tbody { counter-reset: hxrow; }
.hx-topics tbody tr.hx-topicrow { counter-increment: hxrow; }
.hx-c-num { width: 44px; text-align: center; color: #888; }
.hx-c-num::before { content: counter(hxrow); }
.hx-c-n { width: 92px; text-align: center; color: #555; white-space: nowrap; }
.hx-c-a { width: 112px; text-align: center; }
.hx-c-t { width: 150px; text-align: right; font-size: 11px; color: #666; }
.hx-t-subject { font-size: 13px; }
.hx-dot {
	display: inline-block;
	width: 7px; height: 7px;
	background: #B5332B;
	border-radius: 50%;
	margin-right: 5px;
}
.hx-lock { color: #B5332B; font-size: 11px; }
.hx-minipages { font-size: 11px; color: #888; }
.hx-adcell { padding: 0 !important; border-bottom: none !important; }

/* ---- thread view ---- */
.hx-topictitle { font-size: 17px; padding: 14px 8px 4px; margin: 0; line-height: 1.5; }
.hx-post { border: 1px solid #98AAB1; margin: 0 8px 12px; background: #fff; max-width: 100%; }
.hx-posthead {
	display: flex;
	align-items: center;
	gap: 10px;
	background: linear-gradient(to bottom, #fdfefe, #e7eef6);
	border-bottom: 1px solid #cbcbcb;
	padding: 6px 10px;
	font-size: 12px;
	flex-wrap: wrap;
}
.hx-pauthor { font-weight: bold; font-size: 13px; }
.hx-rank { color: #888; font-size: 11px; }
.hx-pdate { color: #888; margin-left: auto; }
.hx-pnum { color: #888; }
.hx-avatar { float: left; margin: 8px; max-width: 100px; }
.hx-avatar img { max-width: 100px; height: auto; }
.hx-message { padding: 10px 12px; font-size: 14px; line-height: 1.8; overflow: hidden; word-wrap: break-word; text-align: center; }
.hx-message img { max-width: 100%; height: auto; }
.hx-sig { border-top: 1px dotted #cbcbcb; margin: 6px 12px 0; padding: 6px 0; color: #666; font-size: 12px; }
.hx-postactions { padding: 6px 12px; border-top: 1px solid #eee; font-size: 12px; text-align: right; }
.hx-postactions a { margin-left: 10px; color: #555; }
.hx-ignored { padding: 10px 12px; color: #888; font-style: italic; }
.hx-poll { margin: 0 8px 12px; border: 1px solid #98AAB1; padding: 10px 12px; background: #fbfdff; }
.hx-pollq { font-size: 14px; font-weight: bold; margin-bottom: 6px; }
.hx-pollmeta { color: #666; font-size: 11px; margin: 4px 0; }
.hx-pollopt { display: block; padding: 4px 0; font-size: 13px; cursor: pointer; }
.hx-pollopt input { margin-right: 6px; }
.hx-pollpct { color: #888; margin-left: 8px; font-size: 11px; }
.hx-pollbtn { background: #FFF0A6; border: 1px solid #C9B458; padding: 4px 16px; cursor: pointer; font-size: 13px; }

/* pagination: [‹ 上页] [1] [2] … [下页 ›] */
.hx-pages a, .hx-pages b, .hx-pages > span { margin: 0 2px; padding: 2px 7px; border: 1px solid #cbcbcb; background: #fff; font-size: 12px; }
.hx-pages b { background: #3E5F7E; color: #fff; border-color: #3E5F7E; }
.hx-pages a:hover { text-decoration: none; border-color: #990000; }

/* ---- ad slots ---- */
.hx-housead {
	border: 1px solid #9db8d9;
	background: linear-gradient(to bottom, #f2f7fd, #dbe8f7);
	display: flex;
	align-items: center;
	padding: 12px 18px;
	gap: 14px;
	margin: 12px 8px;
	box-sizing: border-box;
}
.hx-housead-lb { margin: 12px auto; max-width: 970px; }
.hx-ha-badge { font-size: 34px; color: #1B6EC2; line-height: 1; flex: none; }
.hx-ha-main { flex: 1; min-width: 0; }
.hx-ha-title { font-size: 16px; font-weight: bold; color: #0f2a52; }
.hx-ha-title span { font-size: 12px; font-weight: normal; color: #333; margin-left: 8px; }
.hx-ha-sub { font-size: 12px; color: #555; margin-top: 4px; }
.hx-ha-cta {
	background: #1B6EC2;
	color: #fff;
	font-size: 13px;
	padding: 9px 16px;
	border-radius: 4px;
	white-space: nowrap;
	flex: none;
}
.hx-ha-cta:hover { color: #fff; text-decoration: none; background: #155a9e; }
/* sidebar 300x250: stacked */
.hx-housead-side { flex-direction: column; text-align: center; margin: 0 0 12px; max-width: 100%; overflow: hidden; }
.hx-housead-side .hx-ha-logo { max-width: 100%; box-sizing: border-box; gap: 6px; padding: 6px 10px; }
.hx-housead-side .hx-sw-mark { height: 32px; width: 32px; }
.hx-housead-side .hx-sw-name { font-size: 20px; }
.hx-housead-side .hx-sw-tag { font-size: 6px; white-space: normal; }
/* in-list native card: slim */
.hx-housead-native { margin: 0; }
/* thread interstitial: slim full-width */
.hx-housead-slim { padding: 8px 14px; margin: 0 0 12px; }
.hx-housead-slim .hx-ha-badge { font-size: 22px; }
.hx-housead-slim .hx-ha-title { font-size: 13px; }

/* ---- footer ---- */
.hx-footer {
	border-top: 1px solid #cbcbcb;
	margin-top: 12px;
	padding: 12px;
	text-align: center;
	color: #888;
	font-size: 11px;
	line-height: 2;
}

/* ---- breaking-news ticker (CSS-only; content injected by the news pipeline) ---- */
.hx-ticker {
	display: flex;
	align-items: center;
	border: 1px solid #cbcbcb;
	background: #fff;
	margin: 0 8px 12px;
	height: 26px;
	overflow: hidden;
	font-size: 12px;
}
.hx-ticker .hx-tlabel {
	flex: none;
	background: #B5332B;
	color: #fff;
	font-weight: bold;
	padding: 0 10px;
	height: 26px;
	line-height: 26px;
}
.hx-ticker .hx-twrap { flex: 1; overflow: hidden; white-space: nowrap; }
.hx-ticker .hx-tmoving { display: inline-block; padding-left: 100%; animation: hx-tick 40s linear infinite; }
.hx-ticker .hx-twrap:hover .hx-tmoving { animation-play-state: paused; }
@keyframes hx-tick { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
.hx-ticker .hx-tmoving a { margin-right: 40px; }
/* hide the whole ticker when the pipeline has injected nothing yet */
.hx-ticker:has(.hx-tmoving:empty) { display: none; }

/* board rules strip (viewforum) */
.hx-rules { background: #FDF6E3; border: 1px solid #E3D19B; color: #5C4A00;
  font-size: 13px; line-height: 1.6; padding: 8px 12px; margin: 10px 0; border-radius: 3px; }
.hx-rules strong { color: #8A6D00; }
/* ==== classic mitbbs cream theme (owner-directed 2026-10-01, from old mitbbs.com board screenshot) ==== */
#wrap.hx-wrap { background: #FBFBF1; }
.hx-modhead { background: linear-gradient(to bottom, #FFFDEE, #F6EECB); border-color: #DCD2A6; }
.hx-topics thead th { background: linear-gradient(to bottom, #FFFDEE, #F5EECB); color: #333; border-color: #DCD2A6; }
.hx-topics tbody td { background: #fff; }
.hx-topics tbody tr.hx-alt td { background: #FBF9EC; }
/* ==== landing (home.php): hot news + per-board top 5 ==== */
.hx-landing .hx-modnote { float: right; font-weight: normal; font-size: 11px; color: #888; }
.hx-hotlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.hx-hotlist li { padding: 6px 0; border-bottom: 1px dashed #E2DCBD; display: flex; justify-content: space-between; gap: 12px; min-width: 0; }
.hx-hotlist li:last-child { border-bottom: none; }
.hx-hott { font-size: 14px; font-weight: normal; color: #000; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hx-hott:hover { color: #1a5fb4; }
.hx-hotmeta { font-size: 11px; color: #888; white-space: nowrap; }
.hx-catblock { margin-bottom: 14px; }
.hx-cathead { min-height: 26px; line-height: 26px; background: linear-gradient(to bottom, #FFFDEE, #F6EECB); border: 1px solid #DCD2A6; padding: 0 8px; font-weight: bold; font-size: 14px; }
.hx-boardgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
.hx-boardmod { border: 1px solid #cbcbcb; background: #fff; min-width: 0; }
.hx-bm-head { display: flex; justify-content: space-between; align-items: center; background: linear-gradient(to bottom, #fdfefe, #eef2f7); border-bottom: 1px solid #cbcbcb; padding: 5px 8px; font-weight: bold; font-size: 13px; }
.hx-bm-head .hx-more { font-weight: normal; font-size: 11px; color: #666; }
.hx-toplist { list-style: none; margin: 0; padding: 6px 8px; }
.hx-toplist li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; border-bottom: 1px dotted #eee; font-size: 12px; }
.hx-toplist li:last-child { border-bottom: none; }
.hx-toplist a { color: #000; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hx-toplist a:hover { color: #1a5fb4; }
.hx-tmeta { color: #999; font-size: 11px; white-space: nowrap; }
.hx-empty { color: #999; font-size: 12px; padding: 6px 8px; margin: 0; }
.hx-ver { font-size: 11px; color: #999; }
.hx-like { color: #888; }
.hx-like.liked, .hx-like.liked .hx-likeheart { color: #c00; }
.hx-like:hover { color: #c00; text-decoration: none; }
/* ==== tags / trust / solved / wiki (Discourse gap build) ==== */
.hx-tags { margin: 6px 0 10px; }
.hx-tag { display: inline-block; background: #eef2f7; border: 1px solid #c9d6e8; color: #1a5fb4; border-radius: 3px; padding: 1px 8px; margin: 0 4px 4px 0; font-size: 12px; text-decoration: none; }
.hx-tag:hover { background: #dbe7f5; text-decoration: none; }
.hx-trust { font-size: 11px; border-radius: 3px; padding: 1px 6px; margin-left: 4px; }
.hx-trust-0 { background: #eee; color: #888; }
.hx-trust-1 { background: #dff0d8; color: #3c763d; }
.hx-trust-2 { background: #d9edf7; color: #31708f; }
.hx-trust-3 { background: #fcf8e3; color: #8a6d3b; border: 1px solid #faebcc; }
/* 2026-10-05: 8级会员体系徽章 */
.hx-trust-4 { background: #f5e6c8; color: #7a5c00; border: 1px solid #e8d194; }
.hx-trust-5 { background: #e8d5f2; color: #5b2a86; border: 1px solid #c9a8e0; }
.hx-trust-6 { background: #d4e9f7; color: #0f4c81; border: 1px solid #9ecfec; font-weight: bold; }
.hx-trust-7 { background: linear-gradient(180deg, #fdf6dd, #f7e9bd); color: #7a5c00; border: 1px solid #d4a017; font-weight: bold; }
.hx-trust-8 { background: linear-gradient(135deg, #fff7d6, #fde68a); color: #5a4a1a; border: 1px solid #d4b84a; font-weight: bold; }
.hx-trust-official { background: #e8e8e8; color: #333; border: 1px solid #999; font-weight: bold; }
.hx-solvedbadge { color: #fff; background: #5cb85c; font-size: 11px; border-radius: 3px; padding: 1px 6px; margin-left: 4px; }
.hx-wikibadge { color: #fff; background: #5bc0de; font-size: 11px; border-radius: 3px; padding: 1px 6px; margin-left: 4px; }
/* 2026-10-05: 会员徽章 */
.hx-badge { display: inline-block; font-size: 14px; margin-left: 3px; vertical-align: -2px; cursor: default; }
.hx-solve, .hx-wikitoggle { color: #888; }
.hx-solve:hover, .hx-wikitoggle:hover { color: #c00; text-decoration: none; }
.hx-tags-field { margin: 8px 0; }
.hx-tags-field label { font-weight: bold; margin-right: 6px; }
.hx-tags-field input { padding: 4px 8px; border: 1px solid #ccc; border-radius: 3px; }
.hx-mention { color: #1a5fb4; font-weight: bold; text-decoration: none; }
.hx-mention:hover { text-decoration: underline; }
@media (max-width: 760px) { .hx-boardgrid { grid-template-columns: 1fr; } .hx-hotlist { grid-template-columns: 1fr; } .hx-hotlist li { flex-wrap: wrap; } .hx-housead { flex-direction: column; text-align: center; } .hx-ha-main { text-align: center; } }
/* ==== one-click Google sign-in (login page) ==== */
.hx-oauth { text-align: center; padding: 12px 0 6px; }
.hx-oauth-title { font-size: 13px; color: #555; margin-bottom: 12px; }
.hx-google-btn { display: inline-flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #DADCE0; border-radius: 6px; padding: 11px 26px; font-size: 15px; font-weight: bold; color: #3C4043 !important; box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.hx-google-btn:hover { background: #F8F9FA; color: #202124 !important; text-decoration: none; }
.hx-g-logo { display: inline-flex; flex: none; }
.hx-oauth-or { margin: 16px auto 2px; max-width: 320px; color: #999; font-size: 12px; border-top: 1px solid #E6E1C8; padding-top: 10px; }
/* ==== login / registration form fixes ==== */
:root { color-scheme: light; }
#login input.inputbox { background-color: #fff; color: #333; }
#login dl { margin-bottom: 10px; }
#login dt { margin-bottom: 3px; }
/* registration terms readability */
#agreement .content { line-height: 1.9; padding: 14px 18px; }
#agreement .content p { margin-bottom: 12px; }
/* ==== SnipeWise house ad with official logo lockup ==== */
.hx-ha-logo { display: inline-flex; flex: none; align-items: center; gap: 10px; text-decoration: none; background: #fff; border-radius: 10px; padding: 8px 14px; box-shadow: 0 1px 4px rgba(15,42,82,.15); }
.hx-sw-mark { height: 46px; width: 46px; flex: none; }
.hx-sw-text { display: inline-flex; flex-direction: column; line-height: 1.1; text-align: left; }
.hx-sw-name { font-size: 30px; font-weight: 800; letter-spacing: -1px; white-space: nowrap; background: linear-gradient(90deg,#2b7cd3 0%,#6f5cc4 22%,#e5322d 42%,#ef7d1a 60%,#d9a400 74%,#2ca24c 92%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hx-sw-tag { font-size: 7.3px; font-weight: 700; letter-spacing: .29px; text-transform: uppercase; color: #5f5f5f; white-space: nowrap; margin-top: 3px; }
/* ==== site font: Microsoft YaHei first (2026-10-02) ==== */
body, .hx-wrap, input, button, select, textarea, .hx-table, .hx-toplist, .hx-hotlist {
	font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;
}
/* ==== official logo A lockup in header ==== */
.hx-logoimg { display: block; height: 96px; width: auto; max-width: 100%; }
@media (max-width: 760px) { .hx-logoimg { height: 68px; } }
/* ==== per-forum logo variant banner ==== */
.hx-forumlogo { background: #FBFBF1; border-bottom: 1px solid #E6E1C8; text-align: center; padding: 10px 12px 8px; }
.hx-forumlogo img { height: 58px; width: auto; max-width: 92%; }
@media (max-width: 760px) { .hx-forumlogo img { height: 44px; } }
/* ==== landing ad positions (managed via /ad_admin.php) ==== */
.hx-adslot { border: 1.5px dashed #C9BE8E; background: #FFFDEE; color: #8a7a3a; text-align: center; padding: 22px 10px; margin: 14px 0; font-size: 13px; border-radius: 6px; }
.hx-adslot small { display: block; color: #B4A55F; font-size: 11px; margin-top: 4px; }
.hx-adbox { margin: 14px 0; text-align: center; }
.hx-adbox img { max-width: 100%; height: auto; }
.hx-adbox a { display: inline-block; max-width: 100%; }
.hx-sidebar .hx-adslot, .hx-sidebar .hx-adbox { margin: 0 0 14px; }
/* ==== landing article links: black, no underline; read turns blue (2026-10-02) ==== */
.hx-hotlist a, .hx-toplist a { text-decoration: none; color: #000; }
.hx-hotlist a:visited, .hx-toplist a:visited { color: #1a5fb4; }
.hx-hotlist a:hover, .hx-toplist a:hover { text-decoration: underline; color: #1a5fb4; }
.hx-hotmeta a, .hx-bm-head a, .hx-more { text-decoration: none; }

/* Constrain oversized images in post content */
.hx-message img { max-width: 100%; height: auto; max-height: 512px; object-fit: contain; }
.hx-message img[src*=twemoji] { width: 1.2em; height: 1.2em; max-height: none; vertical-align: -0.2em; }

/* ============ Article typography overhaul (2026-10-02) ============ */
/* Topic title: centered editorial headline */
.hx-topictitle { text-align: center; font-size: 23px; font-weight: bold; line-height: 1.5; color: #1a1a1a; padding: 20px 16px 12px; margin: 0; max-width: 100%; }

/* Post body: professional left-aligned editorial typography */
.hx-message { text-align: left; font-size: 16px; line-height: 1.8; color: #222; padding: 20px 32px; max-width: 800px; margin: 0 auto; overflow: hidden; word-wrap: break-word; overflow-wrap: break-word; }
.hx-message p { margin: 0 0 1em; }
.hx-message p:last-child { margin-bottom: 0; }

/* Lists: proper indentation and rhythm */
.hx-message ul, .hx-message ol { text-align: left; margin: 0.9em 0 1.1em; padding-left: 2em; }
.hx-message li { margin-bottom: 0.5em; line-height: 1.8; }
.hx-message li:last-child { margin-bottom: 0; }
.hx-message ul ul, .hx-message ol ol, .hx-message ul ol, .hx-message ol ul { margin-top: 0.5em; margin-bottom: 0.5em; }

/* Headings inside post content */
.hx-message h1, .hx-message h2, .hx-message h3, .hx-message h4 { text-align: left; font-weight: bold; color: #1a1a1a; margin: 1.5em 0 0.7em; line-height: 1.5; }
.hx-message h1 { font-size: 21px; }
.hx-message h2 { font-size: 19px; }
.hx-message h3 { font-size: 17px; }
.hx-message h4 { font-size: 16px; }

/* Standalone article images ([img] BBCode): centered, responsive */
.hx-message img.postimage { display: block; margin: 1.2em auto; max-width: 100%; height: auto; max-height: 512px; object-fit: contain; border-radius: 4px; }
/* Inline images (smilies etc.): stay in text flow, constrained */
.hx-message img { max-width: 100%; height: auto; }
.hx-message img[src*=twemoji] { display: inline-block; width: 1.2em; height: 1.2em; max-height: none; margin: 0; vertical-align: -0.2em; }

/* Blockquotes */
.hx-message blockquote { text-align: left; margin: 1.1em 0; padding: 12px 18px; border-left: 3px solid #d8d2b8; background: #fdfcf4; color: #444; border-radius: 0 4px 4px 0; }
.hx-message blockquote cite { display: block; font-style: normal; font-weight: bold; color: #777; margin-bottom: 0.4em; font-size: 14px; }
.hx-message blockquote blockquote { margin: 0.8em 0 0.2em; }

/* Links: black, visited blue (site article convention) */
.hx-message a { color: #000; }
.hx-message a:visited { color: #1a3a8f; }
.hx-message a:hover { color: #8a6d1a; }

/* Code */
.hx-message code { background: #f5f2e8; padding: 1px 6px; border-radius: 3px; font-size: 0.9em; font-family: Consolas, Menlo, monospace; }
.hx-message pre { background: #f5f2e8; padding: 14px 18px; border-radius: 6px; overflow-x: auto; text-align: left; font-size: 14px; line-height: 1.6; margin: 1.1em 0; }
.hx-message pre code { background: none; padding: 0; }

/* Horizontal rules */
.hx-message hr { border: none; border-top: 1px solid #e5e0cf; margin: 1.6em auto; max-width: 60%; }

/* Mobile: comfortable reading on small screens */
@media (max-width: 760px) {
  .hx-topictitle { font-size: 19px; padding: 16px 14px 10px; }
  .hx-message { font-size: 15px; padding: 16px 18px; }
  .hx-message ul, .hx-message ol { padding-left: 1.6em; }
}

/* ===== Blog post typography (matches article pages) ===== */
.hx-blog-post .postbody h3.hx-blog-title { font-size: 23px; font-weight: bold; line-height: 1.5; color: #1a1a1a; text-align: center; margin: 0 0 18px; padding: 4px 0 0; }
.hx-blog-post .postbody h3.hx-blog-title a { color: #1a1a1a; text-decoration: none; }
.hx-blog-post .postbody h3.hx-blog-title a:hover { color: #8a6d1a; }
.hx-blog-body { font-size: 16px; line-height: 1.8; color: #222; text-align: left; overflow-wrap: break-word; word-wrap: break-word; }
.hx-blog-body p { margin: 0 0 1em; }
.hx-blog-body p:last-child { margin-bottom: 0; }
.hx-blog-body a { color: #000; }
.hx-blog-body a:visited { color: #1a3a8f; }
.hx-blog-body a:hover { color: #8a6d1a; }
/* Author/date/views metadata: clean, subtle */
.hx-blog-post .postprofile dt { font-size: 14px; font-weight: bold; }
.hx-blog-post .postprofile dd { font-size: 12px; color: #999; }
/* Source attribution footer (作者/分类/原文) */
.hx-blog-source { margin-top: 24px; padding-top: 12px; border-top: 1px solid #d8d2b8; font-size: 13px; line-height: 1.7; color: #999; }
.hx-blog-source a { color: #666; word-break: break-all; }
.hx-blog-source a:visited { color: #555; }
/* Mobile */
@media (max-width: 760px) {
  .hx-blog-post .postbody h3.hx-blog-title { font-size: 19px; }
  .hx-blog-body { font-size: 15px; }
}
.hx-langbtn.hx-lang-active { background: #d8d2b8; font-weight: bold; }
.hx-langbtn.hx-lang-loading { opacity: 0.6; }

/* ===== Blog list redesign: magazine cards ===== */
.hx-blog-hero { background: linear-gradient(180deg, #f5f1de 0%, #FBFBF1 100%); border-bottom: 1px solid #e8e2c8; padding: 40px 20px 32px; text-align: center; margin: 0 0 4px; }
.hx-blog-hero-title { font-size: 32px; font-weight: 800; color: #1a1a1a; margin: 0 0 8px; letter-spacing: 6px; }
.hx-blog-hero-tag { font-size: 15px; color: #777; margin: 0 0 20px; }
.hx-blog-writebtn { display: inline-block; background: #333; color: #FBFBF1; font-size: 15px; font-weight: bold; padding: 10px 28px; border-radius: 24px; text-decoration: none; transition: background .2s, transform .2s; }
.hx-blog-writebtn:hover { background: #555; color: #FBFBF1; transform: translateY(-1px); }
.hx-blog-cats { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 18px 16px 6px; max-width: 1100px; margin: 0 auto; }
.hx-blog-cat { display: inline-block; font-size: 13px; color: #555; background: #fff; border: 1px solid #d8d2b8; border-radius: 16px; padding: 6px 16px; text-decoration: none; transition: all .15s; }
.hx-blog-cat:hover { border-color: #333; color: #1a1a1a; }
.hx-blog-cat-active { background: #333; border-color: #333; color: #FBFBF1; font-weight: bold; }
.hx-blog-cat-active:hover { color: #FBFBF1; }
.hx-blog-filter-note { text-align: center; font-size: 13px; color: #888; margin: 10px 0 0; }
.hx-blog-filter-note a { color: #8a6d1a; text-decoration: none; }
.hx-blog-card { display: flex; gap: 20px; background: #fff; border: 1px solid #e8e2c8; border-radius: 10px; padding: 20px; margin: 16px auto; max-width: 1060px; transition: box-shadow .2s, transform .2s; overflow: hidden; }
.hx-blog-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.08); transform: translateY(-2px); }
.hx-blog-media { flex: 0 0 220px; width: 220px; height: 150px; border-radius: 8px; overflow: hidden; background: #f0ebda; display: block; }
.hx-blog-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.hx-blog-card:hover .hx-blog-media img { transform: scale(1.04); }
.hx-blog-media-broken img { display: none; }
.hx-blog-media-broken { background: linear-gradient(135deg, #efe9d2, #e2d9b8); }
.hx-blog-media-fallback { background: linear-gradient(135deg, #efe9d2, #ddd2ac); display: flex; align-items: center; justify-content: center; text-decoration: none; }
.hx-blog-fallback-char { font-size: 52px; font-weight: 800; color: rgba(51,51,51,.28); }
.hx-blog-cardbody { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.hx-blog-catbadge { align-self: flex-start; font-size: 12px; color: #6b5d2a; background: #f5f1de; border: 1px solid #d8d2b8; border-radius: 12px; padding: 2px 12px; text-decoration: none; margin-bottom: 8px; }
.hx-blog-catbadge:hover { background: #d8d2b8; color: #333; }
.hx-blog-cardtitle { font-size: 19px; font-weight: 700; line-height: 1.45; margin: 0 0 8px; }
.hx-blog-cardtitle a { color: #1a1a1a; text-decoration: none; }
.hx-blog-cardtitle a:hover { color: #8a6d1a; }
.hx-blog-excerpt { font-size: 14px; line-height: 1.75; color: #666; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.hx-blog-meta { display: flex; align-items: center; gap: 14px; font-size: 12px; color: #999; flex-wrap: wrap; }
.hx-blog-author { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; color: #555; font-weight: 600; }
.hx-blog-author:hover { color: #8a6d1a; }
.hx-blog-avatar { width: 26px; height: 26px; border-radius: 50%; background: #d8d2b8; color: #333; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
/* Featured (top) card */
.hx-blog-featured { flex-direction: column; padding: 0; gap: 0; }
.hx-blog-featured .hx-blog-media { flex: none; width: 100%; height: 320px; border-radius: 0; }
.hx-blog-featured .hx-blog-cardbody { padding: 24px 28px 22px; }
.hx-blog-cardtitle-lg { font-size: 26px; }
.hx-blog-featured .hx-blog-excerpt { -webkit-line-clamp: 2; font-size: 15px; }
.hx-blog-readmore { margin-left: auto; color: #8a6d1a; font-weight: 600; text-decoration: none; font-size: 13px; }
.hx-blog-readmore:hover { text-decoration: underline; }
/* Pager */
.hx-blog-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 28px auto 40px; max-width: 1060px; }
.hx-blog-pageinfo { font-size: 13px; color: #999; }
.hx-blog-pagebtn { display: inline-block; font-size: 14px; color: #333; background: #fff; border: 1px solid #d8d2b8; border-radius: 8px; padding: 8px 20px; text-decoration: none; }
.hx-blog-pagebtn:hover { background: #f5f1de; border-color: #333; }
.hx-blog-empty { text-align: center; color: #999; font-size: 15px; padding: 60px 20px; max-width: 1060px; margin: 16px auto; background: #fff; border: 1px solid #e8e2c8; border-radius: 10px; }
/* Mobile */
@media (max-width: 760px) {
  .hx-blog-hero { padding: 28px 16px 24px; }
  .hx-blog-hero-title { font-size: 26px; }
  .hx-blog-card { flex-direction: column; gap: 14px; padding: 16px; margin: 12px 12px; }
  .hx-blog-media { flex: none; width: 100%; height: 180px; }
  .hx-blog-featured .hx-blog-media { height: 200px; }
  .hx-blog-featured .hx-blog-cardbody { padding: 18px 18px 16px; }
  .hx-blog-cardtitle { font-size: 17px; }
  .hx-blog-cardtitle-lg { font-size: 21px; }
  .hx-blog-cats { padding: 14px 12px 4px; }
}

/* Single-line byline: author · date · 阅读：views (replaces stacked postprofile) */
.hx-blog-post .hx-blog-byline { font-size: 13px; color: #777; margin: 0 0 12px; padding: 0; line-height: 1.6; }
.hx-blog-post .hx-blog-byline a { color: #333; font-weight: 600; text-decoration: none; }
.hx-blog-post .hx-blog-byline a:hover { color: #8a6d1a; }
.hx-blog-post .hx-blog-byline-sep { margin: 0 8px; color: #c9c0a5; }
/* No profile sidebar on blog single view: full-width body */
.hx-blog-post .postbody { float: none; width: auto; }

/* Registration: language + timezone on one compact line (2026-10-04) */
.hx-reg-dl { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.hx-reg-dl dt { flex: 0 0 auto; min-width: 0; }
.hx-reg-dl dd { flex: 1 1 auto; margin: 0; }
#lang.hx-reg-input { max-width: 160px; width: auto; }
#timezone.tz_select { max-width: 220px; width: auto; }
/* 2026-10-05: AI内容质量评分徽章 (Phase 3) */
.hx-quality { font-size: 11px; border-radius: 3px; padding: 1px 6px; margin-left: 4px; background: linear-gradient(180deg, #fff7d6, #ffe9a8); color: #8a6d00; border: 1px solid #e8c93d; font-weight: bold; }

/* Native Unicode emoji rendering (2026-10-05) */
.hx-emoji { font-size: 1.25em; line-height: 1; vertical-align: -0.15em; }
.hx-emoji-pick { font-size: 24px; line-height: 1.5; cursor: pointer; padding: 2px 4px; display: inline-block; }
#smiley-box a { text-decoration: none; }
#smiley-box a:hover .hx-emoji-pick { background: #fdf6dd; border-radius: 6px; }
/* ============ AI Agent Identity Banner (2026-10-09, portal-hub v2) ============
   Site branding: mitbbs.ai as the Chinese portal for superintelligent agents.
   Desktop: top row = logo left (120px) + category pills center + 120px-tall
   agent button right; bottom row = one-line slogan centered.
   Mobile (<=700px): compact legacy look, pills hidden. Permanent, not dismissible. */
.hx-agent-banner {
	position: relative;
	overflow: hidden;
	margin: 10px 0 14px;
	border-radius: 12px;
	background: linear-gradient(120deg, #e9f2fd 0%, #d9e8fb 45%, #eef5ff 100%);
	border: 1px solid rgba(120, 170, 225, 0.55);
	box-shadow: 0 2px 12px rgba(80, 130, 200, 0.18);
}
.hx-agent-banner .hx-ab-glow { display: none; }
.hx-agent-banner .hx-ab-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 32px;
	max-width: 1140px;
	margin: 0 auto;
}
/* ---- top row: logo | pills | button ---- */
.hx-agent-banner .hx-ab-top {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 30px;
	width: 100%;
}
.hx-agent-banner .hx-ab-logo {
	flex: none;
	width: 120px;
	height: 120px;
	border-radius: 24px;
	box-shadow: 0 4px 16px rgba(80, 130, 200, 0.28);
	background: #fff;
}
/* ---- content category pill tabs (middle column) ---- */
.hx-ab-cats {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-content: center;
	gap: 8px;
}
.hx-ab-cats a {
	display: inline-block;
	padding: 6px 15px;
	font-size: 13px;
	font-weight: 600;
	color: #1a56c4;
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(120, 170, 225, 0.55);
	border-radius: 999px;
	text-decoration: none !important;
	transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.hx-ab-cats a:hover {
	color: #fff;
	background: linear-gradient(135deg, #1a6dcc 0%, #2f8de4 100%);
	border-color: #1a6dcc;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(26, 109, 204, 0.35);
}
/* ---- agent button, right side, same 120px height as logo ---- */
.hx-agent-banner .hx-ab-side { flex: none; }
.hx-agent-banner .hx-ab-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
	height: 120px;
	padding: 0 30px;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: #14315e;
	background: #fef9e7;
	border: none;
	border-radius: 16px;
	box-shadow: 0 4px 16px rgba(26, 86, 196, 0.35);
	text-decoration: none !important;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.hx-agent-banner .hx-ab-badge:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(26, 86, 196, 0.45);
}
/* ---- slogan: one line, centered, bottom row ---- */
.hx-agent-banner .hx-ab-sloganline {
	text-align: center;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.6;
	color: #14315e;
	letter-spacing: 0.02em;
}
/* mobile-only line break: hidden on desktop so slogan stays one line */
.hx-agent-banner .hx-ab-sloganline .hx-ab-slogan-br { display: none; }
/* thin accent line along the top edge, subtle shimmer */
.hx-agent-banner::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, #7fb2ef 20%, #cfe4fd 50%, #7fb2ef 80%, transparent);
	background-size: 200% 100%;
	opacity: 0.85;
	animation: hx-ab-shimmer 7s linear infinite;
}
@keyframes hx-ab-shimmer {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}
/* tablet: slightly tighter */
@media (max-width: 960px) {
	.hx-agent-banner .hx-ab-inner { gap: 12px; padding: 20px 22px; }
	.hx-agent-banner .hx-ab-top { gap: 20px; }
	.hx-agent-banner .hx-ab-logo { width: 90px; height: 90px; border-radius: 20px; }
	.hx-agent-banner .hx-ab-badge { height: 90px; padding: 0 22px; font-size: 13px; }
	.hx-agent-banner .hx-ab-sloganline { font-size: 18px; }
	.hx-ab-cats a { font-size: 12px; padding: 5px 12px; }
}
/* mobile: compact legacy look, pills hidden */
@media (max-width: 700px) {
	.hx-agent-banner { margin: 8px 8px 12px; border-radius: 10px; }
	.hx-agent-banner .hx-ab-inner {
		gap: 10px;
		padding: 14px 12px;
	}
	/* mobile v3 (2026-10-09): 2-line slogan on top; logo + badge same height below */
	.hx-agent-banner .hx-ab-top {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: center;
		gap: 12px;
	}
	.hx-agent-banner .hx-ab-logo { flex: none; width: 64px; height: 64px; border-radius: 16px; }
	.hx-ab-cats { display: none; }
	.hx-agent-banner .hx-ab-side { flex: none; display: flex; align-items: stretch; justify-content: center; }
	.hx-agent-banner .hx-ab-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		height: 64px;
		font-size: 11px;
		padding: 0 18px;
		letter-spacing: 0.1em;
		border-radius: 12px;
		line-height: 1.5;
		color: #1a56c4;
		background: #d7e7fd;
		border: 1px solid #9cc3ee;
		box-shadow: none;
	}
	.hx-agent-banner .hx-ab-sloganline { font-size: 13px; }
	.hx-agent-banner .hx-ab-sloganline .hx-ab-slogan-br { display: inline; }
	.hx-agent-banner::before { animation: none; }
}

.hx-listen-btn{display:inline-block;margin:0 8px 0 0;padding:6px 14px;font-size:13px;border:1px solid #e0c84f;background:#fff3b0;color:#333;border-radius:4px;cursor:pointer;vertical-align:middle;flex:none}
.hx-listen-btn:hover{background:#ffe97a;border-color:#c8a93a}
.hx-listen-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:9999;display:flex;align-items:center;gap:10px;background:rgba(20,20,20,.92);color:#fff;border-radius:28px;padding:10px 18px;box-shadow:0 4px 16px rgba(0,0,0,.35);max-width:94vw}
.hx-listen-bar[hidden]{display:none}
.hx-listen-pp,.hx-listen-stop,.hx-listen-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px 8px}
.hx-listen-close{font-size:16px;opacity:.7}
.hx-listen-status{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.hx-listen-rate{font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap}
.hx-listen-rate select{background:#333;color:#fff;border:1px solid #555;border-radius:6px;padding:3px 6px;font-size:13px}
.hx-listen-hl{background:#fff8dc !important;outline:2px solid #f0c040;border-radius:4px}
@media (max-width:760px){
.hx-listen-btn{display:inline-block;margin:0 8px 0 0;padding:6px 14px;font-size:13px;border:1px solid #e0c84f;background:#fff3b0;color:#333;border-radius:4px;cursor:pointer;vertical-align:middle;flex:none}
.hx-listen-bar{bottom:8px;padding:8px 12px;gap:6px}
.hx-listen-status{max-width:30vw;font-size:12px}
.hx-listen-rate{font-size:12px}
}

/* 听新闻 (2026-10-11): server-audio player */
.hx-listen-btn{display:inline-block;margin:0 8px 0 0;padding:6px 14px;font-size:13px;border:1px solid #e0c84f;background:#fff3b0;color:#333;border-radius:4px;cursor:pointer;vertical-align:middle;flex:none}
.hx-listen-btn:hover{background:#ffe97a;border-color:#c8a93a}
.hx-listen-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:9999;display:flex;align-items:center;gap:10px;background:rgba(20,20,20,.94);color:#fff;border-radius:28px;padding:10px 18px;box-shadow:0 4px 16px rgba(0,0,0,.35);max-width:94vw}
.hx-listen-bar[hidden]{display:none}
.hx-listen-audio{width:280px;max-width:60vw;height:36px}
.hx-listen-status{font-size:14px;white-space:nowrap}
.hx-listen-close{background:none;border:none;color:#fff;font-size:16px;cursor:pointer;opacity:.7;padding:4px 8px}
@media (max-width:760px){
.hx-listen-btn{display:inline-block;margin:0 8px 0 0;padding:6px 14px;font-size:13px;border:1px solid #e0c84f;background:#fff3b0;color:#333;border-radius:4px;cursor:pointer;vertical-align:middle;flex:none}
.hx-listen-bar{bottom:8px;padding:8px 12px;gap:6px}
.hx-listen-audio{width:200px}
.hx-listen-status{font-size:12px}
}
