/* ==========================================================
   newsite Â· æ°çç«ç¹æ ·å¼ï¼æ·±è²ç§æé£ï¼
   è§è§æ¥æºï¼wwwroot/forum-pages.html è®¾è®¡ç¨¿
   ä»ä½ç¨äº app/newsite é¡µé¢ï¼ä¸å½±åæ§çä»»ä½ app çæ ·å¼
   ========================================================== */
:root {
	--bg: #ffffff;
	--bg2: #ffffff;
	--panel: #f6f8fb;
	--panel2: #eef3ff;
	--border: #e7ebf0;
	--border2: #d6dde6;
	--text: #0f172a;
	--muted: #5b6675;
	--muted2: #8993a3;
	--brand: #2f5fd6;
	--cyan: #0ea5e9;
	--blue: #2f5fd6;
	--green: #0e9e6e;
	--red: #e02d4e;
	--amber: #d98a06;
	--grad: linear-gradient(120deg, #2f5fd6 0%, #0ea5e9 100%);
	--body: #ffffff;
	--topnav: rgba(255, 255, 255, .9);
	--hero-veil: rgba(255, 255, 255, 0);
	--radius: 12px;
	--site-max: 1440px;
	/* æ´ç«ç»ä¸æå¤§å®½åº¦ï¼è¶å®½å±ä¸åæ éæä¼¸ï¼å±ä¸­çç½ */
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0
}

body {
	background: var(--body);
	color: var(--text);
	font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
}

/* é¢çæ»å¨æ¡æ§½ä½ï¼é¿åç«åæ»å¨æ¡åºç°/æ¶å¤±æ¶æ´é¡µå®½åº¦è·³å¨ï¼ä¿®å¤ message ç­ 100vh é¡µé¢"å®½åº¦åæ¥åå»"ï¼ */
html {
	scrollbar-gutter: stable;
}

/* åªä½åç´ ä¸æº¢åºå®¹å¨ï¼æ¶é¤ç§»å¨ç«¯å å¾ç/è§é¢è¿å®½å¯¼è´çæ¨ªåæ»å¨ */
img,
svg,
video {
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none
}

.ns-wrap {
	max-width: var(--site-max);
	margin: 0 auto;
	padding: 0 22px
}

.ns-main {
	background: transparent;
	min-height: 60vh;
}

/* ============ é¡¶é¨å¯¼èª ============ */
.ns-topnav {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--border);
	background: var(--topnav);
	backdrop-filter: blur(12px)
}

.ns-topnav .bar {
	display: flex;
	align-items: center;
	gap: 18px;
	height: 60px
}

.ns-logo {
	font-size: 18px;
	font-weight: 850;
	letter-spacing: -.3px;
	white-space: nowrap
}

/* é¡¶é¨å¯¼èªéè²ï¼çº¯é»ç½ç°ï¼ä¸ä½¿ç¨åçè²/æ¸å */
.ns-logo .g {
	background: none;
	background-clip: border-box;
	-webkit-background-clip: border-box;
	color: var(--text)
}

.ns-nav {
	display: flex;
	gap: 4px;
	margin-left: 8px
}

.ns-nav a {
	font-size: 18px;
	color: var(--muted);
	padding: 8px 14px;
	border-radius: 9px;
	transition: .15s
}

.ns-nav a:hover {
	color: var(--text);
	background: #f2f3f5
}

.ns-nav a.on {
	color: var(--text);
	background: #e9ebee;
	font-weight: 700
}

.ns-search {
	flex: 1;
	max-width: 360px;
	margin-left: auto;
	background: #f2f3f5;
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 8px 14px;
	color: var(--muted2);
	font-size: 13px
}

.ns-user {
	display: flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap
}

.ns-user .me {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #e6e8eb;
	display: grid;
	place-items: center;
	color: var(--text);
	font-weight: 800;
	font-size: 13px;
	overflow: hidden
}

.ns-user .me img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.ns-user a.login {
	font-size: 16px;
	font-weight: 700;
	color: var(--text)
}

.ns-user a.reg {
	font-size: 12.5px;
	color: #fff;
	background: var(--text);
	padding: 7px 14px;
	border-radius: 9px;
	font-weight: 700
}

/* ============ éç¨ ============ */
.btn {
	font-size: 18px;
	font-weight: 700;
	padding: 12px 26px;
	border-radius: 11px;
	cursor: pointer;
	border: 1px solid transparent;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: .15s
}

.btn.pri {
	background: var(--grad);
	color: #06121f
}

.btn.sec {
	background: var(--panel2);
	border-color: var(--border2);
	color: var(--text)
}

.btn.sec:hover {
	border-color: var(--cyan)
}

.btn .ar {
	font-size: 13px
}

.cta {
	display: flex;
	gap: 14px;
	margin-top: 26px
}

.tag {
	font-size: 11px;
	color: var(--cyan);
	border: 1px solid rgba(55, 225, 255, .34);
	background: rgba(55, 225, 255, .06);
	padding: 3px 9px;
	border-radius: 20px;
	white-space: nowrap
}

/* ============ äº§åå¥å£å¡ç ============ */
.entries {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: repeat(3, 116px);
	gap: 14px;
	padding: 40px 0 56px
}

.ent {
	position: relative;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--panel);
	padding: 16px 18px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: .2s
}

.ent:hover {
	border-color: var(--border2)
}

.ent .ribbon {
	position: absolute;
	top: 0;
	right: 0;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .5px;
	color: #06121f;
	padding: 3px 11px;
	border-bottom-left-radius: 10px
}

.ribbon.flag {
	background: linear-gradient(120deg, #ff7a18, #ffc043)
}

.ribbon.open {
	background: linear-gradient(120deg, #37e1ff, #4d7cff);
	color: #06121f
}

.ribbon.edu {
	background: linear-gradient(120deg, #34d399, #7af0c0);
	color: #06121f
}

.ent .ename {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -.3px
}

.ent .epos {
	font-size: 12.5px;
	color: var(--muted);
	margin-top: 5px;
	line-height: 1.5
}

.ent .tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.ent.big {
	grid-row: 1/4;
	background: linear-gradient(150deg, rgba(255, 122, 24, .10), rgba(77, 124, 255, .06)), var(--panel);
	border-color: rgba(255, 122, 24, .34)
}

.ent.big .ename {
	font-size: 30px
}

.ent.big .render {
	position: absolute;
	right: 18px;
	bottom: 54px;
	width: 300px;
	opacity: .9;
	border: 1px solid var(--border2);
	border-radius: 10px;
	background:
		repeating-linear-gradient(45deg, rgba(20, 32, 58, .05) 0 6px, transparent 6px 12px), linear-gradient(160deg, #dfe6f2, #cdd7e8);
	display: grid;
	place-items: center;
	color: var(--muted2);
	font-size: 11px
}

.ent.big .pop {
	position: absolute;
	left: 18px;
	bottom: 16px;
	display: flex;
	gap: 8px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: .25s
}

.ent.big:hover .pop {
	opacity: 1;
	visibility: visible;
	transform: none
}

.pop a {
	font-size: 12px;
	font-weight: 700;
	color: #06121f;
	background: var(--grad);
	padding: 6px 13px;
	border-radius: 8px
}

/* ============ é¡µè ============ */
.ns-footer {
	border-top: 1px solid var(--border);
	background: var(--panel);
	margin-top: 20px
}

.ns-footer .links {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 20px 0
}

.ns-footer .fl {
	font-size: 12.5px;
	color: var(--muted);
	padding: 7px 14px;
	border: 1px solid var(--border);
	border-radius: 9px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	transition: .15s
}

.ns-footer .fl:hover {
	color: var(--text);
	border-color: var(--border2)
}

.ns-footer .wx {
	margin-left: auto;
	width: 62px;
	height: 62px;
	border: 1px solid var(--border2);
	border-radius: 9px;
	background:
		repeating-linear-gradient(0deg, #dfe6f2 0 4px, #cdd7e8 4px 8px), repeating-linear-gradient(90deg, #dfe6f2 0 4px, #cdd7e8 4px 8px);
	display: grid;
	place-items: center;
	color: var(--muted2);
	font-size: 9px;
	text-align: center
}

.ns-footer .copy {
	padding-top: 24px;
	padding-bottom: 24px;
	font-size: 11.5px;
	color: var(--muted2)
}

/* ============ äº§åå­é¡µ ============ */
.prod-hero {
	display: block;
	grid-template-columns: 480px 1fr;
	gap: 26px;
	padding: 34px 0;
	border-bottom: 1px solid var(--border)
}

.prod-img {
	height: 320px;
	border: 1px solid var(--border2);
	border-radius: 12px;
	background:
		repeating-linear-gradient(45deg, rgba(20, 32, 58, .05) 0 7px, transparent 7px 14px), linear-gradient(160deg, #dfe6f2, #cdd7e8);
	display: grid;
	place-items: center;
	color: var(--muted2);
	font-size: 12px
}

.prod-hero .ph-r .pt {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.prod-hero h2 {
	font-size: 30px;
	font-weight: 850;
	margin: 8px 0 6px;
	padding-right: 16px;
}

.prod-hero .ps {
	font-size: 18px;
	color: var(--e-muted);
	line-height: 1.6
}

.prod-badges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin: 16px 0
}

.pb {
	padding: 6px 14px;
	border: 1px solid var(--e-border);
	border-radius: 999px;
	background: #ccd9ec;
	font-size: 16px;
	font-weight: 700;
	color: var(--e-muted);
	white-space: nowrap;
	line-height: 1.45;
}

.prod-cta {
	display: flex;
	gap: 12px;
	margin-top: 8px
}

.tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid var(--border);
	margin-top: 8px
}

.tab {
	font-size: 13px;
	color: var(--muted);
	padding: 13px 18px;
	cursor: pointer;
	border-bottom: 2px solid transparent
}

.tab.on {
	color: var(--text);
	border-color: var(--brand)
}

.prod-body {
	padding: 24px 0 34px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px
}

.pc {
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 16px 18px
}

.pc h4 {
	font-size: 18px;
	font-weight: 750;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	gap: 8px
}

.pc h4 .d {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--brand)
}

.spec {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px
}

.spec td {
	padding: 8px 10px;
	border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.spec td:first-child {
	color: var(--text);
	font-weight: 600;
	width: 30%
}

.spec tr:hover td {
	background: var(--panel)
}

.doclist {
	list-style: none;
	font-size: 12.5px
}

.doclist li {
	padding: 9px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .06);
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--text)
}

.doclist li .dl {
	margin-left: auto;
	font-size: 11.5px;
	color: var(--cyan)
}

.board {
	display: flex;
	gap: 12px
}

.board .b {
	flex: 1;
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 12px;
	background: var(--panel)
}

.board .b .bn {
	font-size: 18px;
	font-weight: 700
}

.board .b .bd {
	font-size: 16px;
	color: var(--muted);
	margin-top: 5px;
	line-height: 1.5
}

.pc.full {
	grid-column: 1/3
}

/* å¼åèµæï¼è¯çèµæ / å¼åæ¿èµæ / è½¯ä»¶èµæ æ´è¡å®½çºµåæå */
.devres-grid {
	grid-column: 1/3;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px
}

/* å¼åèµæï¼å¼åæ¿ä¸å·¥å·å¡çå¯æ¢è¡ */
#pane-devres .board {
	flex-wrap: wrap
}

#pane-devres .board .b {
	flex: 1 1 220px
}

@media (max-width:900px) {
	.devres-grid {
		grid-template-columns: 1fr;
		grid-column: auto
	}
}

/* ===== Nuclei Studio è¯¦æé¡µ ===== */
.studio-ver {
	font-size: 13px;
	font-weight: 700;
	color: var(--pk);
	border: 1px solid var(--pkbd);
	background: var(--pkbg);
	border-radius: 8px;
	padding: 3px 10px;
	vertical-align: middle
}

.feat-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 18px
}

.feat {
	border: 1px solid var(--border);
	border-radius: 12px;
	background: var(--panel);
	padding: 12px
}

.feat .feat-img {
	border: 1px solid var(--border);
	border-radius: 8px;
	overflow: hidden;
	background: var(--panel);
}

.feat .feat-img img {
	width: 100%;
	display: block;
	cursor: zoom-in;
	transition: transform .3s
}

.feat .feat-img img:hover {
	transform: scale(1.03)
}

.feat .feat-t {
	font-size: 16px;
	font-weight: 700;
	margin-top: 10px
}

.feat .feat-d {
	font-size: 12px;
	color: var(--muted);
	margin-top: 4px;
	line-height: 1.6
}

.dl-plat {
	color: var(--muted2);
	font-size: 11.5px;
	margin-left: 8px
}

.dl-empty {
	font-size: 12.5px;
	color: var(--muted2);
	line-height: 1.8
}

/* é«çº§åè½åç»æ ç­¾ */
.adv-group {
	margin-top: 12px
}

.adv-group:first-of-type {
	margin-top: 4px
}

.adv-gt {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--text);
	margin-bottom: 8px
}

.adv-tags {
	margin: 0
}

/* Hero ä¸»å¾è½®æ­ï¼äº§å / Studio è¯¦æé¡µå±ç¨ï¼å¤å¾è½®æ­ãåå¾éæï¼ */
.prod-img {
	overflow: hidden
}

.herocar {
	position: relative;
	width: 100%;
	height: 100%
}

.herocar .hc-slide {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
	transition: opacity .5s;
	pointer-events: none
}

.herocar .hc-slide.on {
	opacity: 1;
	pointer-events: auto
}

.herocar .hc-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.herocar .fcar-btn {
	width: 28px;
	height: 28px;
	font-size: 16px;
	line-height: 26px;
	background: rgba(8, 14, 30, .55)
}

.herocar .fcar-btn.prev {
	left: 8px
}

.herocar .fcar-btn.next {
	right: 8px
}

.herocar .hc-dots {
	position: absolute;
	bottom: 8px;
	left: 0;
	right: 0;
	margin-top: 0
}

/* åè½ç¹æ§è½®æ­ */
.fcar-main {
	position: relative;
	border: 1px solid var(--border);
	border-radius: 14px;
	overflow: hidden;
	background: var(--panel);
	aspect-ratio: 716/297
}

.fcar-slide {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
	transition: opacity .5s;
	pointer-events: none
}

.fcar-slide.on {
	opacity: 1;
	pointer-events: auto
}

.fcar-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.fcar-cap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 12px 18px;
	background: linear-gradient(transparent, rgba(4, 10, 24, .88));
	display: flex;
	align-items: baseline;
	gap: 12px
}

.fcar-cap b {
	font-size: 14px
}

.fcar-cap span {
	font-size: 12px;
	color: var(--muted)
}

.fcar-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(8, 14, 30, .65);
	border: 1px solid var(--border);
	color: var(--text);
	font-size: 20px;
	line-height: 34px;
	text-align: center;
	cursor: pointer;
	z-index: 5;
	user-select: none
}

.fcar-btn:hover {
	background: var(--pk);
	color: #06121f
}

.fcar-btn.prev {
	left: 12px
}

.fcar-btn.next {
	right: 12px
}

.fcar-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 12px
}

.fcar-dots span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--panel2);
	cursor: pointer
}

.fcar-dots span.on {
	background: var(--pk);
	width: 20px;
	border-radius: 4px
}

@media (max-width:900px) {
	.feat-grid {
		grid-template-columns: 1fr
	}
}

.flow {
	font-size: 12.5px;
	color: var(--muted);
	line-height: 1.8
}

.flow b {
	color: var(--text);
	line-height: 30px;
}

/* ============ è®ºåé¦é¡µ ============ */
.forum-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 22px 0 6px
}

.forum-head .ft {
	font-size: 20px;
	font-weight: 850
}

.forum-head .ft .g {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent
}

.forum-head .fs {
	font-size: 12.5px;
	color: var(--muted2)
}

.cat-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	padding: 16px 0 8px
}

.cat {
	border: 1px solid var(--border);
	border-radius: 12px;
	background: var(--panel);
	padding: 16px 18px;
	transition: .15s
}

.cat:hover {
	border-color: var(--border2)
}

.cat .cn {
	font-size: 18px;
	font-weight: 800;
	display: flex;
	align-items: center;
	gap: 8px
}

.cat .cn .ic {
	width: 26px;
	height: 26px;
	border-radius: 7px;
	background: var(--panel2);
	display: grid;
	place-items: center;
	font-size: 13px
}

.cat .cd {
	font-size: 12px;
	color: var(--muted);
	margin: 8px 0 10px;
	line-height: 1.5
}

.cat .cm {
	font-size: 11px;
	color: var(--muted2)
}

.topic-list {
	padding: 8px 0 30px
}

.topic {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 10px;
	margin: 0 -10px;
	border-radius: 10px;
	border-bottom: 1px solid var(--border);
	transition: background .15s ease
}

.topic:hover {
	background: var(--panel2)
}

.topic:hover .ti {
	color: var(--brand)
}

.topic .av {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--grad);
	flex: none;
	display: grid;
	place-items: center;
	color: #fff;
	font-weight: 700;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
	font-size: 15px
}

.topic .ti {
	font-size: 18px;
	font-weight: 650
}

.topic .tm {
	font-size: 11.5px;
	color: var(--muted2);
	margin-top: 3px
}

.topic .pill {
	font-size: 10.5px;
	color: var(--cyan);
	border: 1px solid rgba(55, 225, 255, .34);
	padding: 2px 8px;
	border-radius: 20px;
	margin-right: 6px
}

.topic .st {
	margin-left: auto;
	text-align: right;
	font-size: 11.5px;
	color: var(--muted2);
	white-space: nowrap
}

.topic .st b {
	color: var(--text);
	display: block;
	font-size: 14px
}

/* ============ å¸å­è¯¦æ / å¯¼èªå¸ ============ */
.post {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 20px;
	padding: 14px 0 34px
}

.post .side {
	position: sticky;
	top: 76px;
	align-self: start
}

/* é¢åå± */
.crumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--muted2);
	padding: 20px 0 0
}

.crumb a {
	color: var(--muted)
}

.crumb a:hover {
	color: var(--brand)
}

.crumb .sep {
	opacity: .5
}

.crumb .cur {
	color: var(--text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 60%
}

.post-main .ptitle {
	font-size: 22px;
	font-weight: 850;
	line-height: 1.3
}

.post-main .pmeta {
	font-size: 16px;
	color: var(--muted2);
	margin: 8px 0 18px;
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	align-items: center
}

.post-body {
	font-size: 18px;
	color: var(--muted);
	line-height: 1.9;
}

.post-body p {
	margin-bottom: 13px
}

.post-body pre {
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 13px 15px;
	color: #bfe9ff;
	font-size: 12.5px;
	overflow: auto;
	margin: 12px 0;
	font-family: "SFMono-Regular", Consolas, monospace
}

.post-body code {
	font-family: "SFMono-Regular", Consolas, monospace;
	background: var(--panel2);
	border-radius: 5px;
	padding: 1px 6px;
	font-size: 12.5px
}

.post-body h3 {
	color: var(--text);
	font-size: 18px;
	margin: 18px 0 8px
}

.reply {
	border-top: 1px solid var(--border);
	padding: 16px 0;
	display: flex;
	gap: 12px
}

.reply .av {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--grad);
	flex: none;
	display: grid;
	place-items: center;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
	overflow: hidden
}

.reply .rc {
	flex: 1;
	min-width: 0;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.7
}

.reply .rc .rn {
	color: var(--text);
	font-weight: 700;
	margin-right: 8px
}

.side .sc {
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 15px 17px;
	margin-bottom: 14px;
	width: 480px;
}

.side .sc h5 {
	font-size: 18px;
	font-weight: 750;
	margin-bottom: 10px
}

.side .sc .row2 {
	display: flex;
	justify-content: space-between;
	font-size: 16px;
	color: var(--muted);
	padding: 5px 0
}

.side .sc .row2 b {
	color: var(--text)
}

.pin {
	font-size: 12px;
	color: var(--amber);
	border: 1px solid rgba(255, 192, 67, .4);
	background: rgba(255, 192, 67, .07);
	padding: 6px 10px;
	border-radius: 8px;
	margin-bottom: 12px
}

/* ============ åå¸ ============ */
.editor {
	padding: 26px 0 34px;
}

/* è®¾ç½®é¡µï¼ç¨æ·ä¸­å¿ï¼ï¼èç¦å¼å¸å±ï¼è¡¨åçº¦æä¸ºå±ä¸­èéå®½åº¦ï¼é¿åè¢«æå¾è¿å®½ */
.editor.set-editor {
	margin: 0 auto;
	padding-left: 4px;
	padding-right: 4px
}

.editor .field {
	margin-bottom: 16px
}

.editor label {
	font-size: 12.5px;
	color: var(--muted);
	display: block;
	margin-bottom: 7px;
	font-weight: 600
}

.editor input,
.editor textarea,
.editor select {
	width: 100%;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 12px 14px;
	color: var(--text);
	font-size: 16px;
	font-family: inherit;
	outline: none
}

.editor input:focus,
.editor textarea:focus {
	border-color: var(--cyan)
}

.editor textarea {
	min-height: 160px;
	resize: vertical;
	line-height: 1.7
}

.editor .hint {
	font-size: 11.5px;
	color: var(--muted2);
	margin-top: 6px
}

.editor .catpick {
	display: flex;
	gap: 8px;
	flex-wrap: wrap
}

.editor .catpick .cp {
	font-size: 12px;
	padding: 7px 13px;
	border: 1px solid var(--border);
	border-radius: 9px;
	color: var(--muted);
	cursor: pointer
}

.editor .catpick .cp.on {
	color: #06121f;
	background: var(--grad);
	border-color: transparent;
	font-weight: 700
}

.tpl {
	background: var(--panel);
	border: 1px dashed var(--border2);
	border-radius: 10px;
	padding: 10px 15px;
	font-size: 14px;
	color: var(--muted);
	line-height: 1.7;
	margin-top: 10px
}

.tpl b {
	color: var(--cyan)
}

/* ============ ååºå¼ ============ */
@media (max-width:900px) {
	.entries {
		grid-template-columns: 1fr;
		grid-template-rows: none
	}

	.ent.big {
		grid-row: auto
	}

	.ecogrid {
		grid-template-columns: 1fr
	}

	.cat-grid {
		grid-template-columns: 1fr 1fr
	}

	.prod-body {
		grid-template-columns: 1fr
	}

	.pc.full {
		grid-column: auto
	}

	.post {
		grid-template-columns: 1fr
	}

	.prod-hero {
		grid-template-columns: 1fr
	}

	.ns-nav {
		display: none
	}
}

/* ============ ç»å½ / æ³¨å ============ */
.auth-wrap {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	max-width: 920px;
	margin: 44px auto 64px;
	border: 1px solid var(--border);
	border-radius: 16px;
	overflow: hidden;
	background: var(--bg);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7)
}

.auth-side {
	padding: 44px 40px;
	background:
		radial-gradient(420px 260px at 90% -10%, rgba(77, 124, 255, .22), transparent 60%),
		radial-gradient(360px 240px at 0% 110%, rgba(255, 122, 24, .16), transparent 60%),
		var(--bg2);
	border-right: 1px solid var(--border);
	display: flex;
	flex-direction: column;
	justify-content: center
}

.auth-title {
	font-size: 30px;
	font-weight: 850;
	letter-spacing: -.5px;
	line-height: 1.2;
	margin-bottom: 14px
}

.auth-title .g {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent
}

.auth-sub {
	font-size: 16px;
	color: var(--muted);
	line-height: 1.8
}

.auth-points {
	list-style: none;
	margin-top: 22px;
	font-size: 13px;
	color: var(--muted);
	line-height: 2.2
}

.auth-main {
	padding: 34px 38px;
	background: var(--bg)
}

.auth-tabs {
	display: flex;
	gap: 6px;
	border-bottom: 1px solid var(--border);
	margin-bottom: 24px
}

.atab {
	font-size: 18px;
	color: var(--muted);
	padding: 10px 18px;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	font-weight: 600
}

.atab.on {
	color: var(--text);
	border-color: var(--brand);
	font-weight: 750
}

.auth-qr {
	display: grid;
	place-items: center;
	padding: 6px 0 4px
}

.auth-qr img {
	width: 230px;
	height: 230px;
	border: 1px solid var(--border2);
	border-radius: 12px;
	background: #fff;
	padding: 8px;
	cursor: pointer
}

.auth-hint {
	text-align: center;
	font-size: 12px;
	color: var(--muted2);
	margin-top: 12px
}

.auth-form .field {
	margin-bottom: 16px
}

.auth-form label {
	font-size: 12.5px;
	color: var(--muted);
	display: block;
	margin-bottom: 7px;
	font-weight: 600
}

.auth-form input[type=text],
.auth-form input[type=password] {
	width: 100%;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 12px 14px;
	color: var(--text);
	font-size: 16px;
	font-family: inherit;
	outline: none
}

.auth-form input:focus {
	border-color: var(--cyan)
}

.auth-ck {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	color: var(--muted);
	margin: 4px 0 14px;
	cursor: pointer
}

.auth-msg {
	font-size: 12.5px;
	color: var(--muted);
	min-height: 20px;
	margin: 10px 0;
	line-height: 1.6;
	text-align: center
}

.auth-form .auth-msg {
	text-align: left
}

.auth-msg.ok {
	color: var(--green)
}

.auth-msg.err {
	color: var(--red)
}

.auth-submit {
	width: 100%;
	justify-content: center;
	margin-top: 4px
}

.auth-submit:disabled {
	opacity: .6;
	cursor: wait
}

.auth-alt {
	font-size: 12.5px;
	color: var(--muted2);
	margin-top: 18px;
	text-align: center
}

.auth-alt a {
	color: var(--cyan);
	font-weight: 700
}

@media (max-width:900px) {
	.auth-wrap {
		grid-template-columns: 1fr;
		margin: 24px auto 44px
	}

	.auth-side {
		border-right: none;
		border-bottom: 1px solid var(--border);
		padding: 30px 28px
	}
}

/* ============ è¯¦æé¡µï¼å¸å­ / èµè®¯ï¼ ============ */
.pmeta .pill {
	font-size: 16px;
	color: var(--cyan);
	border: 1px solid rgba(55, 225, 255, .34);
	padding: 2px 8px;
	border-radius: 20px
}

.post-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: -6px 0 16px
}

.post-body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px
}

.post-body a {
	color: var(--cyan)
}

.post-body blockquote {
	border-left: 3px solid var(--blue);
	background: var(--panel);
	border-radius: 0 8px 8px 0;
	padding: 10px 14px;
	margin: 12px 0;
	color: var(--muted)
}

.post-body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	margin: 12px 0
}

.post-body td,
.post-body th {
	border: 1px solid var(--border);
	padding: 8px 10px
}

.post-body ul,
.post-body ol {
	padding-left: 22px
}

.reply-h {
	font-size: 18px;
	font-weight: 800;
	margin: 26px 0 4px;
	padding-top: 18px;
	border-top: 1px solid var(--border)
}

.reply-h b {
	color: var(--cyan);
	margin-left: 4px
}

.reply .rt {
	font-size: 11px;
	color: var(--muted2);
	margin-left: 8px;
	font-weight: 400
}

.reply .av {
	overflow: hidden;
	text-decoration: none
}

.reply .av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.reply .rc img {
	max-width: 100%
}

.reply-more {
	margin-top: 16px
}

.reply-tip {
	font-size: 12px;
	color: var(--muted2);
	margin-top: 14px;
	padding: 10px 14px;
	border: 1px dashed var(--border2);
	border-radius: 9px
}

.reply-tip a {
	color: var(--cyan);
	font-weight: 700
}

.side .row2 a {
	color: var(--muted)
}

.side .row2 a:hover {
	color: var(--cyan)
}

.side .row2 span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 78%
}

/* ============ äº§åç©éµé¡µ ============ */
/* æ¯æ¡äº§åçº¿ä¸å¥è¯å«è²ï¼T0 æ©ï¼æè°éäº§ï¼/ E203 éï¼å¼æºæå­¦ï¼/ E603 èï¼å¼æº64ä½ï¼/ å¤§å­¦è®¡å ç»¿ / Nuclei Studio ç´«ï¼è½¯ä»¶ï¼ */
.pk-t0 {
	--pk: #ff7a18;
	--pk2: #ffc043;
	--pkbg: rgba(255, 122, 24, .08);
	--pkbd: rgba(255, 122, 24, .38)
}

.pk-e203 {
	--pk: #37e1ff;
	--pk2: #7af0ff;
	--pkbg: rgba(55, 225, 255, .07);
	--pkbd: rgba(55, 225, 255, .38)
}

.pk-e603 {
	--pk: #4d7cff;
	--pk2: #8fabff;
	--pkbg: rgba(77, 124, 255, .08);
	--pkbd: rgba(77, 124, 255, .42)
}

.pk-edu {
	--pk: #34d399;
	--pk2: #7af0c0;
	--pkbg: rgba(52, 211, 153, .07);
	--pkbd: rgba(52, 211, 153, .38)
}

.pk-sw {
	--pk: #a78bfa;
	--pk2: #c4b5fd;
	--pkbg: rgba(167, 139, 250, .08);
	--pkbd: rgba(167, 139, 250, .42)
}

.prod-nav {
	position: sticky;
	top: 60px;
	z-index: 50;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	padding: 12px 0;
	background: var(--topnav);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--border)
}

.prod-nav a {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--muted);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 6px 14px;
	transition: .15s
}

.prod-nav a:hover {
	color: var(--text);
	border-color: var(--border2)
}

.prod-nav a i {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	margin-right: 7px
}

/* å¯¹æ¯è¡¨ */
.cmp {
	width: 100%;
	border-collapse: collapse;
	margin: 22px 0 10px;
	font-size: 13px
}

.cmp th,
.cmp td {
	border: 1px solid var(--border);
	padding: 12px 14px;
	text-align: left
}

.cmp thead th {
	font-size: 18px;
	font-weight: 850
}

.cmp thead .ph-t0 {
	background: rgba(255, 122, 24, .12);
	color: var(--text);
	border-top: 3px solid #ff7a18
}

.cmp thead .ph-e203 {
	background: rgba(55, 225, 255, .10);
	color: var(--text);
	border-top: 3px solid #37e1ff
}

.cmp thead .ph-e603 {
	background: rgba(77, 124, 255, .12);
	color: var(--text);
	border-top: 3px solid #4d7cff
}

.cmp tbody th {
	color: var(--muted);
	font-weight: 600;
	background: var(--panel);
	width: 15%
}

.cmp tbody td {
	color: var(--muted)
}

.cmp tbody td b {
	color: var(--text);
	font-weight: 700
}

.cmp tbody tr:hover td {
	background: var(--panel)
}

/* äº§åè¯¦æå¸¦ */
.pband {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 26px;
	margin: 26px 0;
	padding: 26px;
	border: 1px solid var(--pkbd);
	border-radius: 16px;
	background: linear-gradient(150deg, var(--pkbg), transparent 55%), var(--panel);
	scroll-margin-top: 130px
}

.pband .pmark {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	border: 1px solid var(--pkbd);
	border-radius: 12px;
	min-height: 190px;
	background:
		repeating-linear-gradient(45deg, rgba(255, 255, 255, .04) 0 7px, transparent 7px 14px), rgba(0, 0, 0, .2)
}

.pband .pmark .pm {
	font-family: "SFMono-Regular", Consolas, monospace;
	font-size: 34px;
	font-weight: 800;
	color: var(--pk);
	letter-spacing: -1px
}

.pband .pmark .pm-sub {
	font-size: 10.5px;
	letter-spacing: 2px;
	color: var(--muted2);
	text-transform: uppercase
}

.pband .pkind {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 1px;
	color: #06121f;
	background: linear-gradient(120deg, var(--pk), var(--pk2));
	padding: 3px 11px;
	border-radius: 20px;
	width: max-content
}

.pband h3 {
	font-size: 24px;
	font-weight: 850;
	margin: 10px 0 6px
}

.pband .ppos {
	font-size: 16px;
	color: var(--muted);
	line-height: 1.7;
	max-width: 640px
}

.pband .pbadges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin: 14px 0
}

.pband .pbadges .pb {
	border-color: var(--pkbd);
	background: var(--pkbg)
}

.pband .pbody {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 6px
}

.pband .pc {
	background: var(--panel);
}

.pband .pcta {
	display: flex;
	gap: 10px;
	margin-top: 16px;
	flex-wrap: wrap
}

.pband .pcta .btn {
	padding: 10px 20px;
	font-size: 13.5px
}

.pband .pcta .btn.pri {
	background: linear-gradient(120deg, var(--pk), var(--pk2));
	color: #06121f
}

/* è½¯ä»¶äº§åå¸¦ï¼æ¨ªçï¼IDE æï¼ */
.pband.soft {
	grid-template-columns: 1fr 420px
}

.pband .pide {
	border: 1px solid var(--pkbd);
	border-radius: 12px;
	overflow: hidden;
	background: var(--panel);
	display: flex;
	flex-direction: column
}

.pband .pide .bar {
	height: 30px;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0 12px;
	border-bottom: 1px solid var(--border)
}

.pband .pide .bar i {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--panel2)
}

.pband .pide .bar i:first-child {
	background: #ff5d6c
}

.pband .pide .bar i:nth-child(2) {
	background: #ffc043
}

.pband .pide .bar i:nth-child(3) {
	background: #34d399
}

.pband .pide .code {
	flex: 1;
	padding: 14px;
	font-family: "SFMono-Regular", Consolas, monospace;
	font-size: 11.5px;
	line-height: 1.8;
	color: #bfe9ff
}

.pband .pide .code .c1 {
	color: #6b7493
}

.pband .pide .code .c2 {
	color: #a78bfa
}

.pband .pide .code .c3 {
	color: var(--cyan);
}

/* å¤§å­¦è®¡åå¸¦ */
.pband.edu {
	grid-template-columns: 1fr 260px
}

.pband .edu-list {
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 14px
}

.pband .edu-list li {
	border: 1px solid var(--pkbd);
	background: var(--pkbg);
	border-radius: 10px;
	padding: 11px 13px;
	font-size: 12.5px;
	color: var(--muted)
}

.pband .edu-list li b {
	display: block;
	color: var(--text);
	font-size: 13px;
	margin-bottom: 3px
}

.pband .edu-nums {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px
}

.pband .edu-nums .n {
	border: 1px solid var(--pkbd);
	border-radius: 10px;
	background: var(--pkbg);
	padding: 14px;
	text-align: center
}

.pband .edu-nums .n b {
	display: block;
	font-size: 22px;
	font-weight: 850;
	color: var(--pk)
}

.pband .edu-nums .n span {
	font-size: 11px;
	color: var(--muted)
}

@media (max-width:900px) {

	.pband,
	.pband.soft,
	.pband.edu {
		grid-template-columns: 1fr
	}

	.pband .pbody {
		grid-template-columns: 1fr
	}

	.cmp {
		display: block;
		overflow-x: auto
	}

	.prod-nav {
		top: 0
	}
}

/* ============ äº§ååç»æ é¢ & çæè¯çç½æ ¼ ============ */
.pgroup {
	margin: 56px 0 18px;
	display: flex;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap
}

.pgroup .pg-t {
	font-size: 24px;
	font-weight: 850;
	letter-spacing: -.3px
}

.pgroup .pg-s {
	font-size: 12.5px;
	color: var(--muted)
}

.ecogrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 14px;
	margin: 26px 0;
}

.ecocard {
	position: relative;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--panel);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: .2s;
	overflow: hidden
}

.ecocard:hover {
	border-color: var(--border2);
	transform: translateY(-2px)
}

.ecocard.coming {
	opacity: .72
}

.ecocard .ribbon.eco {
	position: absolute;
	top: 0;
	right: 0;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .5px;
	color: #06121f;
	padding: 3px 11px;
	border-bottom-left-radius: 10px;
	background: linear-gradient(120deg, #f472b6, #fda4d8)
}

.ecocard .ec-name {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -.3px;
	padding-right: 74px
}

.ecocard .ec-sub {
	font-size: 11.5px;
	color: var(--cyan);
	font-weight: 700
}

.ecocard .ec-pos {
	font-size: 12.5px;
	color: var(--muted);
	line-height: 1.6
}

.ecocard .ec-kpis {
	display: flex;
	gap: 10px
}

.ecocard .ec-kpis .ek {
	flex: 1;
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 10px 8px;
	text-align: center;
	background: rgba(255, 255, 255, .02)
}

.ecocard .ec-kpis .ek b {
	display: block;
	font-size: 17px;
	font-weight: 850;
	color: var(--cyan)
}

.ecocard .ec-kpis .ek span {
	font-size: 10.5px;
	color: var(--muted)
}

.ecocard .ec-cta {
	margin-top: auto;
	padding-top: 6px
}

.ecocard .ec-soon {
	font-size: 12px;
	color: var(--muted2)
}

.pk-eco {
	--pk: #f472b6;
	--pk2: #fda4d8;
	--pkbg: rgba(244, 114, 182, .08);
	--pkbd: rgba(244, 114, 182, .38)
}

/* ============ äº§åè¯¦æé¡µï¼æäº§åçº¿çè²ï¼ ============ */


[class*="pk-"] .tab.on {
	border-color: var(--pk)
}

[class*="pk-"] .pc h4 .d {
	background: var(--pk)
}


[class*="pk-"] .doclist li .dl {
	color: var(--pk)
}

/* è¯¦æé¡µåºé¨äº§ååæ¢ */
.prod-switch {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 20px 0 34px;
	border-top: 1px solid var(--border)
}

.prod-switch a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	font-weight: 700;
	color: var(--muted);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 8px 16px;
	transition: .15s
}

.prod-switch a i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--pk)
}

.prod-switch a:hover {
	color: var(--text);
	border-color: var(--pkbd)
}

.prod-switch a.on {
	color: var(--pk);
	border-color: var(--pk);
	background: var(--pkbg)
}

.prod-switch a.back {
	margin-left: auto;
	color: var(--muted2);
	border-style: dashed
}

.prod-switch a.back:hover {
	color: var(--text);
	border-color: var(--border2)
}

/* ============ äº§åè¯¦æé¡µ Tab é¢æ¿ ============ */
.tpane {
	display: none
}

.tpane.on {
	display: block
}

.tpane .prod-body {
	padding-top: 22px
}

.spec-full td:first-child {
	width: 22%
}

.doclist-two {
	columns: 2;
	column-gap: 34px
}

.doclist-two li {
	break-inside: avoid
}

.topic-mini {
	display: flex;
	flex-direction: column
}

.topic-mini .tm-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 6px;
	border-bottom: 1px dashed var(--border);
	font-size: 18px
}

.topic-mini .tm-row:hover {
	background: var(--panel)
}

.topic-mini .tm-t {
	color: var(--text);
}

.topic-mini .tm-m {
	margin-left: auto;
	font-size: 11.5px;
	color: var(--muted2);
	white-space: nowrap
}

@media (max-width:900px) {
	.doclist-two {
		columns: 1
	}

	.spec-full td:first-child {
		width: 38%
	}
}

/* ============ è®ºåé¦é¡µï¼çå®æ°æ®çï¼ ============ */
.cate-name {
	font-size: 18px;
	font-weight: 800;
	color: var(--muted);
	padding: 18px 0 4px;
	display: flex;
	align-items: center;
	gap: 10px
}

.cate-name::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--border)
}

a.cat {
	display: block;
	color: inherit
}

.ftabs {
	margin-top: 14px
}

.ftabs .tab {
	font-weight: 600
}

.topic .tt {
	min-width: 0
}

.topic .ti {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 640px
}

.topic .av {
	overflow: hidden
}

.topic .av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.pill-top {
	color: var(--amber);
	border-color: rgba(255, 192, 67, .45);
	background: rgba(255, 192, 67, .08)
}

@media (max-width:900px) {
	.topic .ti {
		max-width: calc(100vw - 220px)
	}
}

/* ============ è®ºåé¡µåå¤´ï¼è®¾è®¡ç¨¿çå¼ï¼Logo + æç´¢ + ç¨æ·ï¼ ============ */
.forum-head2 {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 0 6px
}

.forum-head2 .ft {
	font-size: 18px;
	font-weight: 850;
	white-space: nowrap
}

.forum-head2 .ft .g {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent
}

.forum-head2 .fsearch {
	flex: 1;
	max-width: 420px;
	margin-left: 14px;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 9px 14px;
	color: var(--muted2);
	font-size: 13px;
	transition: .15s
}

.forum-head2 .fsearch:hover {
	border-color: var(--border2);
	color: var(--muted)
}

.forum-head2 .fh-me {
	margin-left: auto;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--grad);
	display: grid;
	place-items: center;
	color: #06121f;
	font-weight: 800;
	font-size: 13px;
	overflow: hidden;
	flex: none
}

.forum-head2 .fh-me img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.forum-head2 .fh-login {
	margin-left: auto;
	font-size: 13px;
	font-weight: 700;
	color: #06121f;
	background: var(--grad);
	padding: 7px 16px;
	border-radius: 9px
}

/* ============ åå¸é¡µ ============ */
.nt-head {
	margin-bottom: 22px
}

.nt-title {
	font-size: 22px;
	font-weight: 850
}

.nt-sub {
	font-size: 12.5px;
	color: var(--muted2);
	margin-top: 6px
}

.editor label i {
	color: var(--red);
	font-style: normal;
	font-weight: 700
}

.nt-selrow {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap
}

.nt-selrow select {
	flex: 1;
	min-width: 200px;
	max-width: 320px
}

.nt-selrow select[name=groupid] {
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 12px 14px;
	color: var(--text);
	font-size: 16px;
	font-family: inherit;
	outline: none
}

.nt-adv {
	border: 1px dashed var(--border2);
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 16px
}

.nt-adv-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0
}

.nt-adv-label {
	font-size: 12.5px;
	color: var(--muted);
	font-weight: 600;
	width: 60px;
	flex: none
}

.nt-adv-row input[type=text] {
	width: 90px;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 8px 12px;
	color: var(--text);
	font-size: 13px;
	font-family: inherit;
	outline: none
}

.nt-vcode {
	height: 25px;
	border-radius: 8px;
	border: 1px solid var(--border);
	cursor: pointer
}

.nt-msg {
	font-size: 12.5px;
	color: var(--muted);
	min-height: 20px;
	margin: 8px 0
}

.nt-msg.err {
	color: var(--red)
}

.nt-draft {
	font-size: 11.5px;
	color: var(--muted2);
	margin-left: auto
}

.editor .cp input {
	display: none
}

button.btn {
	border: none
}

/* ===== æ¿ååè¡¨é¡µï¼boardï¼ ===== */
.board-head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 26px 0 8px;
	padding: 20px 22px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 14px
}

.bh-av {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	overflow: hidden;
	flex: none;
	background: var(--panel2)
}

.bh-av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.bh-info {
	min-width: 0
}

.bh-name {
	font-size: 19px;
	font-weight: 800
}

.bh-desc {
	font-size: 18px;
	color: var(--e-muted);
	margin-top: 5px;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
}

.bh-meta {
	font-size: 11.5px;
	color: var(--muted2);
	margin-top: 6px
}

.bh-post {
	margin-left: auto;
	flex: none;
	padding: 10px 20px;
	font-size: 13.5px
}

/* åé¡µï¼pagination() è¾åº Bootstrap ç»æï¼ */
.page {
	margin: 18px 0 30px
}

.page .pagination {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: center
}

.page .page-link {
	display: block;
	font-size: 12.5px;
	color: var(--muted);
	padding: 7px 13px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 9px;
	text-decoration: none
}

.page .page-link:hover {
	color: var(--text);
	border-color: var(--cyan)
}

.page .page-item.active .page-link {
	color: #06121f;
	background: var(--grad);
	border-color: transparent;
	font-weight: 700
}

/* ä¸»é¢ç±»åå¾½ç«  */
.pill-ask {
	color: var(--blue);
	border-color: rgba(77, 124, 255, .45)
}

.pill-share {
	color: var(--green);
	border-color: rgba(52, 211, 153, .45)
}

/* ===== è¯è®ºåºå¢å¼º ===== */
.rquote {
	margin: 8px 0 10px;
	padding: 9px 13px;
	font-size: 12px;
	color: var(--muted2);
	line-height: 1.65;
	border-left: 3px solid var(--blue);
	background: var(--panel);
	border-radius: 0 9px 9px 0
}

.rquote b {
	color: var(--muted)
}

.rquote img {
	max-width: 100%
}

.rcon {
	margin-top: 4px
}

.raction {
	margin-top: 8px;
	font-size: 12px
}

.raction a {
	color: var(--muted2);
	text-decoration: none;
	cursor: pointer
}

.raction a:hover {
	color: var(--cyan)
}

/* è¡ååå¤æ¡ */
.rebox {
	margin-top: 10px;
	padding: 12px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 11px
}

.rebox textarea {
	width: 100%;
	min-height: 180px;
	resize: vertical;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 9px;
	padding: 10px 12px;
	font-size: 13px;
	color: var(--text);
	line-height: 1.7;
	font-family: inherit
}

.rebox textarea:focus {
	border-color: var(--cyan);
	outline: none
}

.rebox-bar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 9px
}

.remsg {
	font-size: 12px;
	color: var(--red);
	flex: 1
}

.rebtn {
	padding: 7px 16px;
	font-size: 12.5px
}

/* åºé¨è¯è®ºè¡¨å */
.cform {
	margin: 8px 0 34px;
	padding: 20px 22px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 14px
}

.cform-h {
	font-size: 18px;
	font-weight: 800;
	margin-bottom: 12px
}

.cform-h span {
	font-size: 12px;
	color: var(--muted2);
	font-weight: 400;
	margin-left: 8px
}

.cform textarea {
	width: 100%;
	min-height: 110px;
	resize: vertical;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 16px;
	color: var(--text);
	line-height: 1.7;
	font-family: inherit
}

.cform textarea:focus {
	border-color: var(--cyan);
	outline: none
}

.cform-bar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	flex-wrap: wrap
}

.cauth {
	width: 110px;
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 9px;
	padding: 9px 12px;
	font-size: 13px;
	color: var(--text)
}

.cauth:focus {
	border-color: var(--cyan);
	outline: none
}

.cauth-img {
	height: 36px;
	border-radius: 8px;
	cursor: pointer;
	border: 1px solid var(--border)
}

.cmsg {
	font-size: 12px;
	color: var(--red);
	flex: 1;
	min-width: 120px
}

.cform .btn {
	padding: 10px 24px;
	font-size: 16px;
	margin-left: auto
}

.cform-off {
	font-size: 13px;
	color: var(--muted);
	text-align: center;
	padding: 14px 0
}

.cform-off a {
	color: var(--cyan);
	font-weight: 700;
	text-decoration: none
}

.cform-off a:hover {
	text-decoration: underline
}

@media(max-width:820px) {
	.board-head {
		flex-wrap: wrap
	}

	.bh-post {
		margin-left: 0
	}

	.cmsg {
		flex-basis: 100%;
		order: 5
	}

	.cform .btn {
		margin-left: 0
	}
}

/* ===== Markdown é¢è§ï¼åå¸é¡µï¼ ===== */
.mdtabs {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--border)
}

.mdtab {
	font-size: 12.5px;
	color: var(--muted);
	padding: 9px 16px;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	user-select: none
}

.mdtab:hover {
	color: var(--text)
}

.mdtab.on {
	color: var(--text);
	border-color: var(--brand);
	font-weight: 700
}

.mdhint {
	font-size: 11px;
	color: var(--muted2);
	margin-left: auto;
	padding: 0 4px
}

.mdpreview {
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 18px 20px;
	min-height: 160px;
	max-height: 480px;
	overflow: auto
}

.mdempty {
	color: var(--muted2);
	font-size: 12.5px;
	text-align: center;
	padding: 40px 0
}

.post-body h1,
.post-body h2 {
	color: var(--text);
	font-size: 17px;
	margin: 18px 0 9px;
	line-height: 1.4
}

.post-body h4,
.post-body h5,
.post-body h6 {
	color: var(--text);
	font-size: 18px;
	margin: 14px 0 7px
}

.post-body li {
	margin-bottom: 4px
}

.post-body hr {
	border: none;
	border-top: 1px solid var(--border);
	margin: 16px 0
}

.post-body pre code {
	background: none;
	padding: 0;
	border-radius: 0
}

@media(max-width:820px) {
	.mdhint {
		display: none
	}
}

/* ===== Markdown å¿«æ·å·¥å·æ ï¼åå¸é¡µï¼ ===== */
.mdtool {
	display: flex;
	align-items: center;
	gap: 5px;
	flex-wrap: wrap;
	margin-bottom: 8px
}

.mdtool button {
	font-size: 12px;
	color: var(--muted);
	background: var(--panel2);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 6px 11px;
	cursor: pointer;
	line-height: 1.2
}

.mdtool button:hover {
	color: var(--text);
	border-color: var(--cyan)
}

.mdtool button:disabled {
	opacity: .55;
	cursor: default
}

.mdtool-sep {
	width: 1px;
	height: 18px;
	background: var(--border2);
	margin: 0 4px
}

/* åç select ä¸æéé¡¹ï¼å±å¼åè¡¨ä¸ºç³»ç»ç½åºï¼éé¡¹æå­éç¨æ·±è²ï¼å¦åç½åºæµå­çä¸æ¸ */
.editor select option,
.nt-selrow select option {
	color: #1a2233;
	background: #fff
}

/* ===== èµæºå¯¼èªé¡µï¼navï¼æäº§åçº¿åºåï¼ ===== */
.navswitch {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin: 24px 0 16px
}

.nsw {
	font-size: 16px;
	font-weight: 700;
	color: var(--muted);
	padding: 11px 20px;
	text-decoration: none;
	border: 1px solid var(--border);
	border-radius: 11px;
	background: var(--panel)
}

.nsw:hover {
	color: var(--text);
	border-color: var(--border2)
}

.nsw.on {
	color: var(--pk);
	border-color: var(--pkbd);
	background: var(--pkbg)
}

.navhead {
	margin-bottom: 22px;
	padding: 24px 26px;
	border: 1px solid var(--pkbd);
	border-radius: 16px;
	background: linear-gradient(150deg, var(--pkbg), transparent 55%), var(--panel)
}

.navhead .pin {
	font-size: 11.5px;
	color: var(--muted2);
	margin-bottom: 10px
}

.navhead .pt {
	font-size: 11px;
	letter-spacing: .16em;
	color: var(--pk);
	font-weight: 700;
	margin-bottom: 6px
}

.navhead .pn {
	font-size: 24px;
	font-weight: 850
}

.navhead .pn .g {
	color: var(--pk)
}

.navhead .ps {
	font-size: 13px;
	color: var(--muted);
	margin-top: 8px;
	line-height: 1.7;
	max-width: 720px
}

.navhead .pbadges {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
	margin-top: 14px
}

.navhead .pbadge {
	font-size: 11px;
	color: var(--text);
	border: 1px solid var(--pkbd);
	background: var(--pkbg);
	padding: 4px 11px;
	border-radius: 20px
}

.navbody {
	margin-bottom: 34px
}

.navboard {
	padding: 12px 0;
	border-bottom: 1px solid var(--border)
}

.navboard:last-child {
	border-bottom: none
}

.navboard b {
	font-size: 16px;
	color: var(--text)
}

.navboard p {
	font-size: 12.5px;
	color: var(--muted);
	line-height: 1.65;
	margin: 5px 0 0
}

@media(max-width:820px) {
	.navhead .pn {
		font-size: 19px
	}
}

/* ===== é¦é¡µ T0 å¤§å¡åå®¹å¡«åï¼ç¹æ§è¦ç¹ + KPI æ°å­æ¡ï¼ ===== */
.ent.big .bpoints {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	max-width: 62%
}

.ent.big .bpoints li {
	font-size: 12.5px;
	color: var(--muted);
	padding: 5px 0 5px 24px;
	position: relative;
	line-height: 1.55
}

.ent.big .bpoints li:before {
	content: 'â';
	position: absolute;
	left: 2px;
	top: 5px;
	color: var(--brand);
	font-weight: 800
}

.ent.big .bkpis {
	display: flex;
	gap: 26px;
	margin-top: 14px;
	max-width: 62%;
	margin-bottom: 14px;
}

.ent.big .bk b {
	display: block;
	font-size: 23px;
	font-weight: 850;
	color: var(--text);
	letter-spacing: -.3px
}

.ent.big .bk span {
	font-size: 11px;
	color: var(--muted2)
}

@media(max-width:820px) {

	.ent.big .bpoints,
	.ent.big .bkpis {
		max-width: 100%
	}

	.ent.big .render {
		position: static;
		width: 100%;
		height: 80px;
		margin-top: 12px
	}
}

/* ===== æç´¢é¡µï¼searchï¼ ===== */
.ns-sbox {
	max-width: 720px;
	margin: 34px auto 8px
}

.ns-sform {
	display: flex;
	gap: 10px
}

.ns-sinput {
	flex: 1;
	background: var(--panel2);
	border: 1px solid var(--border2);
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 18px;
	color: var(--text)
}

.ns-sinput:focus {
	border-color: var(--cyan);
	outline: none
}

.ns-sbtn {
	padding: 14px 26px;
	font-size: 18px;
	flex: none
}

.ns-smeta {
	font-size: 12.5px;
	color: var(--muted);
	margin-top: 12px;
	text-align: center
}

.ns-smeta b {
	color: var(--cyan)
}

.ns-sguide {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	max-width: 860px;
	margin: 26px auto 30px
}

.ns-sguide .flow a {
	color: var(--cyan);
	text-decoration: none
}

.ns-sguide .flow a:hover {
	text-decoration: underline
}

em.hl {
	font-style: normal;
	color: var(--brand);
	font-weight: 800
}

@media(max-width:820px) {
	.ns-sform {
		flex-direction: column
	}

	.ns-sbtn {
		width: 100%
	}

	.ns-sguide {
		grid-template-columns: 1fr
	}
}

/* ===== è®ºååºå®æ¿åï¼å ä½ç¶æ ===== */
.cat.soon {
	opacity: .62
}

.cat.soon:hover {
	opacity: .85
}

.soon-pill {
	font-size: 10px;
	color: var(--muted2);
	border: 1px solid var(--border2);
	border-radius: 20px;
	padding: 2px 8px;
	margin-left: 8px;
	font-weight: 400;
	vertical-align: 2px
}

/* ===== åå¸é¡µå­æ¿åéæ© ===== */
.editor .catpick .cp.dis {
	opacity: .45;
	cursor: not-allowed
}

.editor .catpick .cp.dis:hover {
	border-color: var(--border);
	color: var(--muted)
}

.cp-soon {
	font-size: 10px;
	color: var(--muted2);
	font-style: normal;
	margin-left: 5px
}

/* ===== ç®çç¨æ·ä¸­å¿ï¼settingï¼ ===== */
.set-me {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	margin-bottom: 18px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 14px
}

.set-av {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	overflow: hidden;
	flex: none;
	background: var(--panel2);
	display: grid;
	place-items: center;
	font-size: 20px;
	font-weight: 800;
	color: var(--cyan)
}

.set-av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.set-av.big {
	width: 88px;
	height: 88px;
	font-size: 30px
}

.set-mi {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0
}

.set-mi b {
	font-size: 17px
}

.set-mi span {
	font-size: 12px;
	color: var(--muted2)
}

.set-mi .set-signed {
	color: var(--muted)
}

.set-card {
	padding: 22px 24px;
	margin-bottom: 18px;
	background: var(--panel);
	border: 1px solid var(--border);
	border-radius: 14px
}

.set-h {
	font-size: 18px;
	font-weight: 800;
	margin-bottom: 16px
}

.set-facerow {
	display: flex;
	align-items: center;
	gap: 18px
}

.set-faceop .hint {
	margin-top: 8px
}

.cta .btn[disabled] {
	opacity: .5;
	cursor: not-allowed
}

/* ç¨æ·ä¸­å¿æä½ç»ææç¤ºæ¡ */
.set-ok {
	color: var(--green);
	background: rgba(52, 211, 153, .08);
	border: 1px solid rgba(52, 211, 153, .3);
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 13px;
	margin-bottom: 16px
}

.set-err {
	background: rgba(255, 93, 108, .08);
	border: 1px solid rgba(255, 93, 108, .3);
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 13px;
	margin-bottom: 16px
}

/* ===== å¤æ¥ç²è´´åå®¹ååºï¼éæ¼çåèèæ¯/æå­è²ä¸ç ´åæ·±è²ä¸»é¢ ===== */
.post-body [style],
.rcon [style],
.rquote [style] {
	background-color: transparent !important;
}

/* åå¤æ¡é¢è§é«åº¦è·éæ¾å¤§åçè¾å¥æ¡ */
.rebox .mdpreview {
	min-height: 180px;
	max-height: 320px
}

/* ===== æ»åæ¼å¾éªè¯ç  ===== */
.ns-cap {
	width: 300px;
	max-width: 100%;
	margin-top: 10px;
	user-select: none;
	-webkit-user-select: none
}

.cap-puzzle {
	position: relative;
	width: 300px;
	max-width: 100%;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--border);
	line-height: 0
}

.cap-bg {
	display: block;
	width: 100%
}

.cap-piece {
	position: absolute;
	left: 0;
	border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .55)
}

.cap-refresh {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 26px;
	height: 26px;
	border-radius: 7px;
	background: rgba(0, 0, 0, .45);
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	font-size: 18px;
	line-height: 1
}

.cap-refresh:hover {
	background: rgba(0, 0, 0, .65)
}

.cap-status {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	font-size: 12px;
	line-height: 1.5;
	padding: 4px 10px;
	display: none
}

.cap-status.ok {
	display: block;
	background: rgba(52, 211, 153, .88);
	color: #06251a
}

.cap-status.err {
	display: block;
	background: rgba(255, 93, 108, .88);
	color: #2b0a0e
}

.cap-track {
	position: relative;
	margin-top: 10px;
	height: 38px;
	border-radius: 9px;
	background: var(--panel2);
	border: 1px solid var(--border)
}

.cap-fill {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 0;
	background: rgba(64, 224, 208, .16);
	border-radius: 9px 0 0 9px
}

.cap-handle {
	position: absolute;
	left: 0;
	top: -1px;
	width: 44px;
	height: calc(100% + 2px);
	border-radius: 9px;
	background: var(--cyan);
	color: #04262b;
	display: grid;
	place-items: center;
	cursor: grab;
	font-size: 17px;
	font-weight: 700;
	touch-action: none;
	z-index: 2
}

.cap-handle.on {
	cursor: grabbing
}

.cap-handle.ok {
	background: var(--green);
	color: #06251a;
	cursor: default
}

.cap-text {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 12.5px;
	color: var(--muted2);
	pointer-events: none
}

/* æ»åéªè¯ç æ´ä½æ¶çªå° 240pxï¼æ¼å¾åæ ææ¾ç¤ºå®½åº¦èªå¨æ¢ç®ï¼ä¸å½±åæ ¡éªï¼ */
.ns-cap {
	width: 240px
}

.cap-track {
	height: 34px
}

.cap-handle {
	width: 40px
}

/* ==========================================================
   ä¸»é¢åæ¢å¨ï¼å·¦ä¸è§æµ®å¨æé®ï¼é¢è§æä½¿ç¨ï¼
   ========================================================== */
.theme-fab {
	position: fixed;
	left: 24px;
	bottom: 24px;
	z-index: 200;
	font-family: inherit
}

.theme-fab .tf-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--border2);
	background: var(--bg2);
	color: var(--text);
	font-size: 20px;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .25);
	transition: transform .15s ease
}

.theme-fab .tf-btn:hover {
	transform: scale(1.08)
}

.theme-fab .tf-panel {
	display: none;
	position: absolute;
	left: 0;
	bottom: 54px;
	width: 208px;
	padding: 8px;
	border-radius: 12px;
	border: 1px solid var(--border);
	background: var(--bg2);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .3)
}

.theme-fab.open .tf-panel {
	display: block
}

.theme-fab .tf-title {
	padding: 6px 10px 8px;
	font-size: 12px;
	color: var(--muted2)
}

.theme-fab .tf-item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 9px 10px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--text);
	font-size: 18px;
	text-align: left;
	cursor: pointer
}

.theme-fab .tf-item:hover {
	background: var(--panel2)
}

.theme-fab .tf-item.on {
	background: var(--panel2);
	outline: 1px solid var(--border2)
}

.theme-fab .tf-dot {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	flex: none;
	border: 1px solid rgba(0, 0, 0, .2)
}

/* äº§åæ¡å¾ / æ¸²æå¾ï¼ç½åºï¼ä¿è¯åä¸»é¢ä¸æ¸æ°ï¼ */
.prod-img img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
	border-radius: 8px;
	padding: 12px;
	box-sizing: border-box
}

.ent.big .render img {
	width: 100%;
	object-fit: contain;
	display: block;
	margin: 0 auto;
	border-radius: 8px;
	padding: 10px;
	box-sizing: border-box
}

/* ææ¡£åè¡¨ï¼æ´è¡å¯ç¹å¡çï¼åç§°å³é¾æ¥ */
.doclist li {
	padding: 0;
	border-bottom: none;
	margin-bottom: 8px;
	display: block
}

.doclist li a.dl-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--panel);
	border: 1px solid var(--border);
	color: var(--muted);
	text-decoration: none;
	transition: border-color .18s, transform .18s
}

.doclist li a.dl-row:hover {
	border-color: var(--cyan);
	transform: translateX(4px)
}

.doclist li a.dl-row .dl-ic {
	flex-shrink: 0;
	width: 22px;
	text-align: center;
	font-size: 15px
}

.doclist li a.dl-row .dl-main {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 12px
}

.doclist li a.dl-row .dl-name {
	color: var(--text);
	font-weight: 600;
	line-height: 1.5
}

.doclist li a.dl-row .dl-meta {
	display: flex;
	gap: 6px;
	flex-shrink: 0;
	margin-left: auto
}

.doclist li a.dl-row .dl-tag {
	flex-shrink: 0;
	font-size: 10.5px;
	line-height: 1;
	padding: 3px 8px;
	border-radius: 20px;
	border: 1px solid var(--border);
	color: var(--muted);
	background: rgba(255, 255, 255, .03);
	white-space: nowrap
}

.doclist li a.dl-row .dl-tag.lang {
	border-color: rgba(64, 196, 255, .35);
	color: var(--cyan)
}

.doclist li a.dl-row:hover .dl-tag {
	border-color: var(--cyan)
}

.doclist li a.dl-row:hover .dl-name {
	color: var(--cyan)
}

.doclist li a.dl-row .dl {
	margin-left: auto;
	align-self: center;
	flex-shrink: 0;
	font-size: 11.5px;
	color: var(--cyan);
	white-space: nowrap
}

@media (max-width:900px) {
	.doclist li a.dl-row .dl-main {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px
	}

	.doclist li a.dl-row .dl-meta {
		margin-left: 0
	}
}

.doclist-two {
	column-gap: 16px
}

/* è§æ ¼åæ°ï¼åç»å±æ¬¡æ */
.spec-full {
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden
}

.spec-full td {
	padding: 11px 16px;
	border-bottom: 1px solid var(--border)
}

.spec-full tr:last-child td {
	border-bottom: none
}

.spec-full td:first-child {
	width: 20%;
	background: var(--panel);
	border-right: 1px solid var(--border);
	border-left: 3px solid var(--cyan);
	color: var(--text);
	font-weight: 600
}

/* å¤§å­¦è®¡åæ°æ®ï¼ä¸è§é¢æ¿ï¼æ¿ä»£åå®«æ ¼æ¹åï¼ */
.pband .edu-nums {
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 1px solid var(--pkbd);
	border-radius: 14px;
	background: var(--pkbg);
	overflow: hidden;
	align-self: start
}

.pband .edu-nums .en-t {
	padding: 9px 16px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--pk);
	border-bottom: 1px solid var(--pkbd);
	text-align: center;
}

.pband .edu-nums .n {
	display: flex;
	align-items: baseline;
	gap: 20px;
	padding: 18px 16px;
	border: none;
	border-radius: 0;
	background: transparent;
	text-align: left
}

.pband .edu-nums .n+.n {
	border-top: 1px dashed var(--pkbd)
}

.pband .edu-nums .n b {
	font-size: 20px;
	font-weight: 850;
	color: var(--pk);
	min-width: 56px
}

.pband .edu-nums .n span {
	font-size: 18px;
	color: var(--muted)
}

.pband .edu-nums .n i {
	font-style: normal;
	margin-left: auto;
	opacity: .55;
	font-size: 20px
}

/* äº§åå¸¦å·¦ä¾§è§è§ï¼è¯çæ¸²æå¾ + æå­åæç½© */
.pband .pmark {
	background-size: cover;
	background-position: center;
	position: relative;
	overflow: hidden
}

.pband .pmark::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(4, 8, 18, .30), rgba(4, 8, 18, .62))
}

.pband .pmark .pm,
.pband .pmark .pm-sub {
	position: relative;
	z-index: 1;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .7)
}



/* æ¦è§æ¡å¾å¡ */
.archimg {
	background: #fff;
	border-radius: 10px;
	padding: 16px;
	text-align: center
}

.archimg img {
	max-width: 100%;
	max-height: 520px;
	object-fit: contain;
	display: inline-block
}

/* æ¡å¾ç¹å»æ¾å¤§ç¯ç®± */
.archimg img {
	cursor: zoom-in
}

.lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(3, 6, 14, .88);
	padding: 4vh 4vw;
	cursor: zoom-out;
	box-sizing: border-box
}

.lightbox.on {
	display: flex
}

.lightbox img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	background: #fff;
	border-radius: 12px;
	padding: 18px;
	box-shadow: 0 20px 80px rgba(0, 0, 0, .5);
	box-sizing: border-box
}

/* é¡¶æ ç¨æ·ä¸æèå */
.ns-user .me-wrap {
	position: relative
}

.ns-user .me-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 10px);
	min-width: 140px;
	background: var(--bg2);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 6px;
	display: none;
	box-shadow: 0 14px 40px rgba(0, 0, 0, .4);
	z-index: 99
}

.ns-user .me-wrap:hover .me-menu {
	display: block
}

.ns-user .me-menu .mm-name {
	padding: 8px 12px;
	font-size: 12px;
	font-weight: 700;
	color: var(--muted2);
	border-bottom: 1px solid var(--border);
	margin-bottom: 4px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap
}

.ns-user .me-menu a {
	display: block;
	padding: 8px 12px;
	font-size: 12.5px;
	color: var(--text);
	border-radius: 8px;
	text-decoration: none
}

.ns-user .me-menu a:hover {
	background: var(--panel)
}

.ns-user .me-menu a.out {
	color: var(--red);
}

/* ä¸æèåï¼æ¶é¤é´éæ­è£ + å»¶è¿æ¶èµ· */
.ns-user .me-menu {
	display: block;
	opacity: 0;
	visibility: hidden;
	transition: opacity .18s ease, visibility 0s linear .35s
}

.ns-user .me-menu::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 0;
	right: 0;
	height: 12px
}

.ns-user .me-wrap:hover .me-menu {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s
}

/* å¤´åæ¶æ¯è§æ  */
.ns-user .msg-badge {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 16px;
	height: 16px;
	line-height: 16px;
	padding: 0 4px;
	border-radius: 8px;
	background: #ff5a5a;
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	text-align: center;
	z-index: 2;
	box-shadow: 0 0 0 2px var(--bg2);
	box-sizing: border-box
}

.ns-user .me-menu .mm-count {
	float: right;
	background: #ff5a5a;
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	min-width: 16px;
	height: 16px;
	line-height: 16px;
	padding: 0 4px;
	border-radius: 8px;
	text-align: center;
	display: inline-block
}

/* æçæ¶æ¯é¡µ */
.msg-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 26px 0 16px
}

.msg-head h2 {
	font-size: 20px;
	font-weight: 800;
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 10px
}

.msg-head .msg-unread {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--red);
	background: rgba(255, 90, 90, .12);
	border: 1px solid rgba(255, 90, 90, .35);
	border-radius: 20px;
	padding: 3px 10px
}

.msg-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 40px
}

.msg {
	display: flex;
	gap: 14px;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--panel);
	padding: 16px 18px
}

.msg.unread {
	border-color: var(--cyan);
	background: linear-gradient(150deg, rgba(55, 225, 255, .06), transparent 60%), var(--panel)
}

.msg .av {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--grad);
	display: grid;
	place-items: center;
	color: #06121f;
	font-weight: 800;
	font-size: 18px;
	overflow: hidden;
	flex-shrink: 0;
	text-decoration: none
}

.msg .av img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.msg .av.sys {
	background: linear-gradient(135deg, #8b9bb4, #5a6b8c);
	color: #fff
}

.msg .mc {
	flex: 1;
	min-width: 0
}

.msg .mt {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--text)
}

.msg .mt .dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #ff5a5a;
	flex-shrink: 0
}

.msg .mt .time {
	margin-left: auto;
	font-size: 11.5px;
	color: var(--muted2)
}

.msg .mb {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--muted);
	word-break: break-all
}

.msg .ma {
	margin-top: 8px
}

.msg .ma a {
	font-size: 12px;
	color: var(--cyan);
	text-decoration: none
}

.msg .ma a:hover {
	text-decoration: underline
}

.msg-empty {
	text-align: center;
	padding: 70px 0
}

.msg-empty .e1 {
	font-size: 42px
}

.msg-empty .e2 {
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
	margin-top: 12px
}

.msg-empty .e3 {
	font-size: 12.5px;
	color: var(--muted2);
	margin-top: 6px
}

/* æ¶æ¯é¡µï¼èå¤©å¼å¸å± */
.chat-wrap {
	display: flex;
	border: 1px solid var(--border);
	border-radius: 16px;
	overflow: hidden;
	margin: 26px 0 40px;
	height: calc(100vh - 170px);
	min-height: 480px;
	background: var(--panel)
}

.chat-side {
	width: 280px;
	flex-shrink: 0;
	border-right: 1px solid var(--border);
	display: flex;
	flex-direction: column;
	background: var(--bg2)
}

.cs-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: 1px solid var(--border);
	font-size: 18px;
	font-weight: 800;
	color: var(--text)
}

.cs-head a {
	font-size: 11.5px;
	font-weight: 400;
	color: var(--muted2);
	text-decoration: none
}

.cs-head a:hover {
	color: var(--cyan)
}

.cs-list {
	flex: 1;
	overflow-y: auto
}

.cs-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-bottom: 1px solid var(--border);
	text-decoration: none;
	position: relative;
	transition: background .15s
}

.cs-item:hover {
	background: var(--panel)
}

.cs-item.on {
	background: var(--panel);
	box-shadow: inset 3px 0 0 var(--cyan)
}

.cs-item .av {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--grad);
	display: grid;
	place-items: center;
	color: #06121f;
	font-weight: 800;
	font-size: 18px;
	overflow: hidden;
	flex-shrink: 0
}

.cs-item .av img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.cs-item .av.sys {
	background: linear-gradient(135deg, #8b9bb4, #5a6b8c);
	color: #fff
}

.cs-item .ci {
	flex: 1;
	min-width: 0
}

.cs-item .cn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
	font-weight: 700;
	color: var(--text)
}

.cs-item .ct {
	font-size: 10.5px;
	font-weight: 400;
	color: var(--muted2)
}

.cs-item .cl {
	display: block;
	margin-top: 3px;
	font-size: 11.5px;
	color: var(--muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis
}

.cs-item .un {
	position: absolute;
	right: 12px;
	bottom: 12px;
	min-width: 16px;
	height: 16px;
	line-height: 16px;
	padding: 0 4px;
	border-radius: 8px;
	background: #ff5a5a;
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	text-align: center;
	box-sizing: border-box
}

.cs-empty {
	text-align: center;
	padding: 60px 0
}

.cs-empty .e1 {
	font-size: 38px
}

.cs-empty .e2 {
	font-size: 13px;
	color: var(--muted2);
	margin-top: 10px
}

.chat-main {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0
}

.cm-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	border-bottom: 1px solid var(--border);
	font-size: 18px;
	color: var(--text)
}

.cm-head a {
	font-size: 11.5px;
	color: var(--muted2);
	text-decoration: none
}

.cm-head a:hover {
	color: var(--cyan)
}

.cm-body {
	flex: 1;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 14px
}

.bub {
	max-width: 70%;
	display: flex;
	flex-direction: column;
	align-items: flex-start
}

.bub .bb {
	padding: 10px 14px;
	border-radius: 4px 14px 14px 14px;
	background: var(--bg2);
	border: 1px solid var(--border);
	font-size: 13px;
	line-height: 1.7;
	color: var(--text);
	white-space: pre-line;
	word-break: break-word
}

.bub .bt {
	margin-top: 4px;
	font-size: 10.5px;
	color: var(--muted2)
}

.bub.me {
	align-self: flex-end;
	align-items: flex-end
}

.bub.me .bb {
	border-radius: 14px 4px 14px 14px;
	background: var(--grad);
	border: none;
	color: #06121f;
	font-weight: 600
}

.cm-reply {
	display: flex;
	gap: 10px;
	padding: 14px 16px;
	border-top: 1px solid var(--border);
	align-items: flex-end
}

.cm-reply textarea {
	flex: 1;
	height: 64px;
	resize: none;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: var(--bg2);
	color: var(--text);
	padding: 10px 12px;
	font-size: 13px;
	line-height: 1.6;
	outline: none;
	font-family: inherit;
	box-sizing: border-box
}

.cm-reply textarea:focus {
	border-color: var(--cyan)
}

.cm-reply .btn {
	flex-shrink: 0
}

.cm-reply.sys-tip {
	justify-content: center;
	font-size: 12px;
	color: var(--muted2)
}

.cm-empty {
	flex: 1;
	display: grid;
	place-items: center;
	color: var(--muted2);
	font-size: 13px
}

@media (max-width:900px) {
	.chat-side {
		width: 200px
	}

	.chat-wrap {
		height: auto;
		min-height: 70vh
	}
}

/* èå¤©åºï¼éèæ»å¨æ¡ï¼ä¿çæ»å¨è½åï¼ */
.cs-list,
.cm-body {
	scrollbar-width: none;
	-ms-overflow-style: none
}

.cs-list::-webkit-scrollbar,
.cm-body::-webkit-scrollbar {
	width: 0;
	height: 0;
	display: none
}

/* èå¤©å¾çæ¶æ¯ */
.bub .bb .msg-img {
	max-width: 240px;
	max-height: 240px;
	border-radius: 8px;
	display: block;
	cursor: zoom-in
}

.bub.me .bb:has(.msg-img) {
	padding: 4px;
	background: var(--bg2);
	border: 1px solid var(--border)
}

.cm-reply #replyimgbtn {
	padding: 0 14px;
	height: 38px;
	font-size: 16px
}

/* åå¤åºï¼å·¥å·æ  + è¾å¥æ¡ ä¸ä¸ç»æ */
.cm-reply {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding: 0
}

.cm-reply .cr-bar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-bottom: 1px solid var(--border)
}

.cm-reply .cr-bar button {
	border: none;
	background: transparent;
	color: var(--muted);
	font-size: 12px;
	padding: 4px 8px;
	border-radius: 6px;
	cursor: pointer
}

.cm-reply .cr-bar button:hover {
	background: var(--panel);
	color: var(--cyan)
}

.cm-reply .cr-bar button:disabled {
	opacity: .5;
	cursor: default
}

.cm-reply .cr-main {
	display: flex;
	gap: 10px;
	padding: 12px 16px;
	align-items: flex-end
}

.cm-reply .cr-main textarea {
	flex: 1
}

.cm-reply.sys-tip {
	padding: 14px 16px
}

.cm-reply .cr-bar #replyimgbtn {
	height: auto;
	padding: 4px 8px;
	font-size: 12px
}

/* ==========================================================
   é¦é¡µ v3ï¼hp- åç¼ï¼ä»é¦é¡µä½¿ç¨ï¼
   é£æ ¼ï¼ç°ä»£å®ç½ ââ å¤§æ é¢ãæåé´å½±å¡çãBento å¸å±ãå¤§çç½
   éè²å¨é¨èµ°ä¸»é¢åéï¼8 å¥éè²æ¹æ¡èªå¨éé
   ========================================================== */
:root {
	--hp-glow1: rgba(47, 95, 214, .10);
	--hp-glow2: rgba(14, 165, 233, .10);
	--hp-band: #0f172a;
	--hp-band-fg: #ffffff;
	--hp-band-bd: rgba(255, 255, 255, .35);
	--hp-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 14px 32px -20px rgba(16, 24, 40, .18);
	--hp-shadow-h: 0 4px 8px rgba(16, 24, 40, .06), 0 22px 44px -22px rgba(16, 24, 40, .26);
}

/* ---------- HERO ---------- */
.hp-hero {
	position: relative;
	overflow: hidden;
	padding: 92px 0 76px;
	border-bottom: 1px solid var(--border)
}

.hp-glow {
	position: absolute;
	left: -10%;
	right: -10%;
	top: -320px;
	height: 760px;
	pointer-events: none;
	background:
		radial-gradient(closest-side at 34% 46%, var(--hp-glow1), transparent 72%),
		radial-gradient(closest-side at 72% 38%, var(--hp-glow2), transparent 72%)
}

.hp-hero-in {
	position: relative;
	z-index: 2;
	text-align: center
}

.hp-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 15px;
	border: 1px solid var(--border2);
	border-radius: 999px;
	background: var(--panel2);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--muted)
}

.hp-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--brand)
}

.hp-h1 {
	margin-top: 24px;
	font-size: clamp(34px, 4.6vw, 54px);
	font-weight: 850;
	line-height: 1.12;
	letter-spacing: -.03em
}

.hp-lede {
	margin: 22px auto 0;
	max-width: 640px;
	font-size: 16.5px;
	line-height: 1.8;
	color: var(--muted)
}

.hp-cta {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px
}

.hp-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 48px;
	padding: 0 26px;
	border: 1px solid var(--border2);
	border-radius: 12px;
	background: var(--panel);
	color: var(--text);
	font-size: 18px;
	font-weight: 700;
	box-shadow: var(--hp-shadow);
	transition: .18s
}

.hp-btn em {
	font-style: normal;
	transition: .18s
}

.hp-btn:hover {
	transform: translateY(-2px);
	border-color: var(--brand);
	color: var(--brand);
	box-shadow: var(--hp-shadow-h)
}

.hp-btn:hover em {
	transform: translateX(3px)
}

.hp-btn-p {
	background: var(--brand);
	border-color: var(--brand);
	color: #fff
}

.hp-btn-p:hover {
	color: #fff;
	filter: brightness(1.06)
}

.hp-hero-meta {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 56px
}

.hp-hero-meta>div {
	padding: 0 34px;
	border-left: 1px solid var(--border)
}

.hp-hero-meta>div:first-child {
	border-left: 0
}

.hp-hero-meta b {
	display: block;
	font-size: 24px;
	font-weight: 850;
	letter-spacing: -.02em
}

.hp-hero-meta span {
	display: block;
	margin-top: 5px;
	font-size: 12.5px;
	color: var(--muted)
}

/* ---------- åºå ---------- */
.hp-sec {
	padding: 68px 0
}

.hp-sec-alt {
	background: var(--panel);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border)
}

.hp-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 30px
}

.hp-head h2 {
	font-size: 30px;
	font-weight: 850;
	letter-spacing: -.02em
}

.hp-head p {
	margin-top: 10px;
	max-width: 620px;
	font-size: 18px;
	line-height: 1.75;
	color: var(--muted)
}

.hp-more {
	font-size: 18px;
	font-weight: 700;
	color: var(--brand);
	white-space: nowrap
}

.hp-more:hover {
	text-decoration: underline
}

/* ---------- Bento å¡ç ---------- */
.hp-bento {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px
}

.hp-card {
	display: flex;
	flex-direction: column;
	padding: 26px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--bg2);
	box-shadow: var(--hp-shadow);
	transition: .2s
}

.hp-card:hover {
	transform: translateY(-4px);
	border-color: var(--pkbd, var(--border2));
	box-shadow: var(--hp-shadow-h)
}

.hp-card.lg {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1.08fr .92fr;
	gap: 32px;
	align-items: center;
	padding: 32px
}

.hp-card.lg .hp-card-img {
	order: 1;
	min-height: 240px
}

.hp-card-img {
	display: grid;
	place-items: center;
	min-height: 158px;
	padding: 20px;
	border-radius: 14px;
	background: linear-gradient(155deg, var(--pkbg, var(--panel)), var(--panel))
}

.hp-card-img img {
	max-width: 100%;
	max-height: 190px;
	object-fit: contain
}

.hp-card.lg .hp-card-img img {
	max-height: 240px
}

.hp-card-b {
	display: flex;
	flex-direction: column;
	flex: 1
}

.hp-chip {
	align-self: flex-start;
	padding: 5px 11px;
	border: 1px solid var(--pkbd);
	border-radius: 999px;
	background: var(--pkbg);
	font-size: 11.5px;
	font-weight: 700;
	color: var(--pk)
}

.hp-card h3 {
	margin-top: 15px;
	font-size: 20px;
	font-weight: 850;
	letter-spacing: -.01em
}

.hp-card.lg h3 {
	font-size: 26px
}

.hp-card h3 a:hover {
	color: var(--pk)
}

.hp-card p {
	margin-top: 11px;
	font-size: 18px;
	line-height: 1.78;
	color: var(--muted)
}

.hp-ticks {
	list-style: none;
	margin-top: 18px;
	display: grid;
	gap: 9px
}

.hp-ticks li {
	display: flex;
	gap: 10px;
	font-size: 13px;
	line-height: 1.65
}

.hp-ticks svg {
	width: 15px;
	height: 15px;
	flex: none;
	margin-top: 4px;
	color: var(--pk)
}

.hp-card-f {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-top: auto;
	padding-top: 20px
}

.hp-card.lg .hp-card-f {
	margin-top: 24px;
	border-top: 1px solid var(--border)
}

.hp-lk {
	font-size: 18px;
	font-weight: 700;
	color: var(--pk)
}

.hp-lk:hover {
	text-decoration: underline
}

.hp-lk2 {
	font-size: 16px;
	font-weight: 600;
	color: var(--muted)
}

.hp-lk2:hover {
	color: var(--text)
}

/* ---------- éåè¡¨ ---------- */
.hp-table-wrap {
	border: 1px solid var(--border);
	border-radius: 16px;
	background: var(--bg2);
	box-shadow: var(--hp-shadow);
	overflow-x: auto
}

.hp-table {
	width: 100%;
	min-width: 900px;
	border-collapse: collapse
}

.hp-table th {
	padding: 14px 18px;
	border-bottom: 1px solid var(--border);
	background: var(--panel);
	text-align: left;
	white-space: nowrap;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	color: var(--muted)
}

.hp-table td {
	padding: 15px 18px;
	border-bottom: 1px solid var(--border);
	font-size: 18px;
	vertical-align: middle
}

.hp-table tbody tr:last-child td {
	border-bottom: 0
}

.hp-table tbody tr {
	transition: .15s
}

.hp-table tbody tr:hover {
	background: var(--panel)
}

.hp-table .c-name a {
	font-weight: 700
}

.hp-table .c-name a:hover {
	color: var(--brand)
}

.hp-table .c-name span {
	display: block;
	margin-top: 3px;
	font-size: 12px;
	color: var(--muted)
}

.hp-tag2 {
	display: inline-block;
	padding: 4px 10px;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: var(--panel);
	font-size: 12.5px;
	font-weight: 700;
	white-space: nowrap
}

.hp-table .c-app {
	min-width: 200px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--muted)
}

.hp-table .c-go {
	text-align: right;
	white-space: nowrap
}

.hp-table .c-go a {
	font-size: 13px;
	font-weight: 700;
	color: var(--brand)
}

.hp-empty {
	padding: 36px 18px;
	text-align: center;
	font-size: 13px;
	color: var(--muted)
}

.hp-empty a {
	color: var(--brand)
}

/* ---------- å·¥å·èµæº ---------- */
.hp-feat {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px
}

.hp-f {
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid var(--border);
	border-radius: 16px;
	background: var(--bg2);
	transition: .2s
}

.hp-f:hover {
	transform: translateY(-4px);
	border-color: var(--brand);
	box-shadow: var(--hp-shadow-h)
}

.hp-f-ic {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--border);
	border-radius: 12px;
	background: var(--panel2);
	color: var(--brand)
}

.hp-f-ic svg {
	width: 20px;
	height: 20px
}

.hp-f b {
	margin-top: 16px;
	font-size: 16px;
	font-weight: 800
}

.hp-f p {
	margin-top: 8px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--muted)
}

.hp-f em {
	margin-top: auto;
	padding-top: 18px;
	font-style: normal;
	font-size: 16px;
	font-weight: 700;
	color: var(--brand)
}

/* ---------- ç¤¾åºå¨æ ---------- */
.hp-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px
}

.hp-panel {
	border: 1px solid var(--border);
	border-radius: 16px;
	background: var(--bg2);
	box-shadow: var(--hp-shadow);
	overflow: hidden
}

.hp-panel-h {
	display: flex;
	align-items: center;
	padding: 16px 20px;
	border-bottom: 1px solid var(--border);
	background: var(--panel)
}

.hp-panel-h b {
	font-size: 18px;
	font-weight: 800
}

.hp-panel-h a {
	margin-left: auto;
	font-size: 13px;
	font-weight: 700;
	color: var(--brand)
}

.hp-panel-h a:hover {
	text-decoration: underline
}

.hp-list {
	list-style: none
}

.hp-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 20px;
	border-bottom: 1px solid var(--border);
	transition: .15s
}

.hp-list li:last-child {
	border-bottom: 0
}

.hp-list li:hover {
	background: var(--panel)
}

.hp-av {
	flex: none;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	object-fit: cover;
	display: grid;
	place-items: center;
	background: var(--grad);
	color: #06121f;
	font-size: 12px;
	font-weight: 800;
	overflow: hidden
}

.hp-ic {
	flex: none;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border: 1px solid var(--border);
	border-radius: 50%;
	background: var(--panel);
	color: var(--muted)
}

.hp-ic svg {
	width: 15px;
	height: 15px
}

.hp-list li a {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 14px
}

.hp-list li a:hover {
	color: var(--brand)
}

.hp-time {
	flex: none;
	font-size: 12px;
	color: var(--muted)
}

.hp-none {
	padding: 20px;
	font-size: 13px;
	color: var(--muted)
}

/* ---------- CTA ---------- */
.hp-band-wrap {
	padding: 8px 0 72px
}

.hp-band {
	padding: 58px 40px;
	border-radius: 24px;
	background: var(--hp-band);
	text-align: center;
	box-shadow: var(--hp-shadow)
}

.hp-band h2 {
	font-size: 30px;
	font-weight: 850;
	letter-spacing: -.02em;
	color: var(--hp-band-fg)
}

.hp-band p {
	margin: 12px auto 0;
	max-width: 560px;
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--hp-band-fg);
	opacity: .88
}

.hp-band .hp-btn-p {
	background: #fff;
	border-color: #fff;
	color: var(--brand)
}

.hp-band .hp-btn-p:hover {
	color: var(--brand);
	filter: none
}

.hp-band .hp-btn {
	border-color: var(--hp-band-bd);
	background: rgba(255, 255, 255, .14);
	color: var(--hp-band-fg);
	box-shadow: none
}

.hp-band .hp-btn:hover {
	color: var(--hp-band-fg);
	border-color: var(--hp-band-fg);
	background: rgba(255, 255, 255, .22);
	box-shadow: none
}

/* ---------- ååºå¼ ---------- */
@media (max-width:980px) {
	.hp-hero {
		padding: 64px 0 56px
	}

	.hp-hero-meta {
		margin-top: 44px
	}

	.hp-hero-meta>div {
		padding: 0 24px
	}

	.hp-bento,
	.hp-cols {
		grid-template-columns: 1fr
	}

	.hp-card.lg {
		grid-template-columns: 1fr;
		gap: 22px;
		padding: 26px
	}

	.hp-card.lg .hp-card-img {
		order: 0;
		min-height: 200px
	}

	.hp-feat {
		grid-template-columns: 1fr 1fr
	}

	.hp-sec {
		padding: 52px 0
	}

	.hp-head h2 {
		font-size: 26px
	}

	.hp-band {
		padding: 44px 24px
	}

	.hp-band h2 {
		font-size: 25px
	}
}

@media (max-width:560px) {
	.hp-feat {
		grid-template-columns: 1fr
	}

	.hp-hero-meta>div {
		min-width: 50%;
		padding: 12px 18px;
		border-left: 0
	}

	.hp-hero-meta>div:nth-child(even) {
		border-left: 1px solid var(--border)
	}

	.hp-table .c-app {
		display: none
	}
}

/* ==========================================================
   æ¹æ¡ E Â· ä¾§è¾¹ç®å½ / ææ¡£ç«æçï¼æ¥æº _home_variants/e.htmlï¼
   ========================================================== */
/* ============================================================
		   æ¹æ¡ E Â· ä¾§è¾¹ç®å½ / ææ¡£ç«æç
		   å³é®è¯ï¼å·¦ä¾§ sticky å¯¼èª + å³ä¾§é¿åå®¹æµãåä¸çº¿ãç´§åãé«ä¿¡æ¯å¯åº¦
		   åèï¼ææ¯ææ¡£ç«ï¼å¦ MDN / åç±» SDK ææ¡£é¦é¡µï¼
		   ============================================================ */
:root {
	--e-bg: #fff;
	--e-panel: #f6f8fb;
	--e-border: #e7ebf0;
	--e-border2: #d6dde6;
	--e-text: #0f172a;
	--e-muted: #111316;
	--e-muted2: #36393f;
	--e-brand: #2f5fd6;
	--e-brand2: #0ea5e9;
	--e-radius: 12px;
}

.e-shell {
	display: grid;
	grid-template-columns: 234px minmax(0, 1fr);
	gap: 0;
	max-width: var(--site-max);
	margin: 0 auto;
	padding: 0 22px
}

/* å·¦ä¾§ç®å½ */
.e-side {
	position: sticky;
	top: 64px;
	align-self: start;
	height: calc(100vh - 64px);
	padding: 30px 22px 30px 0;
	border-right: 1px solid var(--e-border)
}

.e-side-tt {
	margin: 15px 0 10px;
	font-size: 18px;
	font-weight: 800;
	letter-spacing: .12em;
	color: var(--e-muted2)
}

.e-side-tt:first-child {
	margin-top: 0
}

.e-side a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: 8px;
	font-size: 18px;
	color: var(--e-muted);
	transition: .14s
}

.e-side a:hover {
	background: #eef3ff;
	color: #28b4c3;
}

.e-side a.on {
	background: #c4d1ef;
	color: #28b4c3;
	font-weight: 700
}

.e-side a.on:hover {
	background: #c4d1ef;
	color: #28b4c3;
}

.e-side a .n {
	font-size: 11px;
	font-weight: 800;
	color: var(--e-muted2)
}

.e-side a.on .n {
	color: #28b4c3;
}

.e-side-card {
	margin-top: 26px;
	padding: 16px;
	border: 1px solid var(--e-border);
	border-radius: var(--e-radius);
	background: var(--e-panel)
}

.e-side-card b {
	font-size: 14px
}

.e-side-card p {
	margin: 7px 0 13px;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--e-muted)
}

.e-side-card a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 38px;
	border-radius: 9px;
	background: var(--e-brand);
	color: #fff;
	font-size: 16px;
	font-weight: 700
}

.e-side-card a:hover {
	background: var(--e-brand);
	filter: brightness(1.06)
}

/* å³ä¾§åå®¹ */
.e-main {
	min-width: 0;
	padding: 30px 0 30px 40px
}

.e-hero {
	padding: 20px 0 20px;
	border-bottom: 1px solid var(--e-border)
}

.e-crumb {
	font-size: 12.5px;
	color: var(--e-muted2)
}

.e-crumb b {
	color: var(--e-brand)
}

.e-h1 {
	margin-top: 24px;
	font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 820;
	line-height: 1.2;
	letter-spacing: -.02em
}

.e-h1 .e-hl {
	color: #2a326e;
}
.e-h1 .e-h3 {
	color: #ecba50;
}


.e-lede {
	margin-top: 14px;
	max-width: 620px;
	font-size: 15.5px;
	line-height: 1.8;
	color: var(--e-muted)
}

.e-cta {
	display: flex;
	gap: 11px;
	margin-top: 24px;
	flex-wrap: wrap
}

.e-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 42px;
	padding: 0 20px;
	border: 1px solid var(--e-border2);
	border-radius: 9px;
	background: #fff;
	color: var(--e-text);
	font-size: 18px;
	font-weight: 700;
	transition: .15s
}

.e-btn:hover {
	border-color: var(--e-brand);
	color: var(--e-brand)
}

.e-btn.p {
	background: var(--e-brand);
	border-color: var(--e-brand);
	color: #fff
}

.e-btn.p:hover {
	color: #fff;
	filter: brightness(1.06)
}

.e-sec {
	padding: 38px 0;
}

.e-sec:last-child {
	border-bottom: 0
}

.e-h2 {
	display: flex;
	align-items: baseline;
	gap: 12px;
	font-size: 22px;
	font-weight: 820;
	letter-spacing: -.01em
}

.e-h2 .idx {
	font-size: 13px;
	font-weight: 800;
}

.e-sub {
	margin-top: 8px;
	font-size: 18px;
	line-height: 1.7;
}

/* äº§åå¡ï¼2 åç´§å */
.e-ip {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 22px
}

.e-card {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 16px;
	padding: 16px;
	border: 1px solid var(--e-border);
	border-radius: var(--e-radius);
	background: #fff;
	transition: .16s
}

.e-card:hover {
	border-color: var(--e-brand);
	box-shadow: 0 12px 28px -20px rgba(16, 24, 40, .4)
}

.e-thumb {
	display: grid;
	place-items: center;
	border-radius: 9px;
	background: var(--e-panel)
}

.e-thumb img {
	max-width: 100%;
	max-height: 84px
}

.e-card h3 {
	font-size: 15.5px;
	font-weight: 800
}

.e-card h3 a:hover {
	color: var(--e-brand)
}

.e-card p {
	margin-top: 6px;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--e-muted)
}

.e-card .lk {
	display: inline-block;
	margin-top: 9px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--e-brand)
}

/* è¡¨æ ¼ */
.e-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 20px;
	font-size: 13px
}

.e-table th {
	padding: 11px 12px;
	border-bottom: 1px solid var(--e-border2);
	text-align: left;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .03em;
	color: var(--e-muted2)
}

.e-table td {
	padding: 12px;
	border-bottom: 1px solid var(--e-border);
	vertical-align: middle
}

.e-table tbody tr:hover {
	background: var(--e-panel)
}

.e-table .nm a {
	font-weight: 700
}

.e-table .nm a:hover {
	color: var(--e-brand)
}

.e-table .nm span {
	display: block;
	margin-top: 2px;
	font-size: 11.5px;
	color: var(--e-muted2)
}

.e-tag {
	display: inline-block;
	padding: 3px 9px;
	border: 1px solid var(--e-border);
	border-radius: 7px;
	background: var(--e-panel);
	font-size: 11.5px;
	font-weight: 700;
	white-space: nowrap
}

.e-app {
	color: var(--e-muted);
	font-size: 12.5px
}

.e-go {
	text-align: right;
	white-space: nowrap
}

.e-go a {
	color: var(--e-brand);
	font-weight: 700;
	font-size: 12.5px
}

/* å·¥å·ï¼è¡å¼ */
.e-tools {
	display: grid;
	gap: 1px;
	margin-top: 20px;
	background: var(--e-border);
	border: 1px solid var(--e-border);
	border-radius: var(--e-radius);
	overflow: hidden
}

.e-tool {
	display: grid;
	grid-template-columns: 34px 200px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 15px 18px;
	background: #fff
}

.e-tool .ic {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: var(--e-panel);
	color: var(--e-brand)
}

.e-tool .ic svg {
	width: 18px;
	height: 18px
}

.e-tool b {
	font-size: 18px;
	font-weight: 800
}

.e-tool p {
	font-size: 13px;
	line-height: 1.6;
	color: var(--e-muted)
}

.e-tool a {
	font-size: 13px;
	font-weight: 700;
	color: var(--e-brand);
	white-space: nowrap
}

/* ç¤¾åºï¼ä¸¤ååè¡¨ */
.e-feed {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-top: 22px
}

.e-feed h4 {
	font-size: 18px;
	font-weight: 800;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--e-border)
}

.e-feed ul {
	list-style: none;
	margin-top: 6px
}

.e-feed li {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 11px 0;
	border-bottom: 1px dashed var(--e-border)
}

.e-feed li:last-child {
	border-bottom: 0
}

.e-av {
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--e-brand);
	color: #fff;
	font-size: 11.5px;
	font-weight: 800
}

.e-ic {
	flex: none;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--e-panel);
	color: var(--e-muted)
}

.e-ic svg {
	width: 14px;
	height: 14px
}

.e-feed a {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 13.5px
}

.e-feed a:hover {
	color: var(--e-brand)
}

.e-time {
	flex: none;
	font-size: 11.5px;
	color: var(--e-muted2)
}

/* CTA */
.e-band {
	margin-top: 8px;
	padding: 40px;
	border-radius: 16px;
	background: #0f172a;
	color: #fff;
	text-align: center
}

.e-band h2 {
	font-size: 26px;
	font-weight: 820
}

.e-band p {
	margin: 10px auto 0;
	max-width: 520px;
	font-size: 18px;
	line-height: 1.7;
	color: #c5cdda
}

.e-band .e-cta {
	justify-content: center
}

.e-band .e-btn {
	background: #fff;
	border-color: #fff;
	color: #0f172a
}

.e-band .e-btn:hover {
	color: #0f172a
}

.e-band .e-btn.ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, .35);
	color: #fff
}

.e-band .e-btn.ghost:hover {
	color: #fff;
	border-color: #fff
}

@media (max-width:980px) {
	.e-shell {
		grid-template-columns: 1fr
	}

	/* ç§»å¨ç«¯ï¼å·¦ä¾§ç®å½è½¬ä¸ºé¡¶é¨æ¨ªåæ»å¨æ¡ï¼ä¸åç«æå é« */
	.e-side {
		position: static;
		height: auto;
		border-right: 0;
		border-bottom: 1px solid var(--e-border);
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		gap: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 10px 16px
	}

	.e-side-tt,
	.e-side-card {
		display: none
	}

	.e-side a {
		white-space: nowrap;
		padding: 6px 12px
	}

	/* ç§»å¨ç«¯ï¼æ­£æç»ä¸å·¦å³çç½ï¼é¿ååå®¹è´´è¾¹ */
	.e-main {
		padding: 22px 16px 32px
	}

	.e-ip,
	.e-feed {
		grid-template-columns: 1fr
	}

	.e-tool {
		grid-template-columns: 30px 1fr;
		grid-template-areas: "ic nm" "ic tx" "ic lk";
		gap: 6px 14px
	}

	.e-tool .ic {
		grid-area: ic
	}

	.e-tool b {
		grid-area: nm
	}

	.e-tool p {
		grid-area: tx
	}

	.e-tool a {
		grid-area: lk
	}
}

/* ===== E æ¹æ¡è½å°è¡¥é ===== */
.e-shell.no-side {
	grid-template-columns: 1fr;
}

.e-shell.no-side .e-main {
	padding-left: 0;
	max-width: 1020px;
	margin: 0 auto;
	width: 100%;
}

.e-main>.ns-wrap {
	max-width: none;
	margin: 0;
	padding: 0;
}

.e-thumb-more {
	background: #eef3ff;
	color: var(--e-brand);
	font-weight: 800;
	font-size: 13px;
}

.e-feed h4 {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}

.e-more {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--e-brand);
	white-space: nowrap;
}

.e-more:hover {
	text-decoration: underline;
}

.e-none {
	padding: 14px 0;
	font-size: 16px;
	color: var(--e-muted2);
	border-bottom: 0 !important;
}

.e-empty {
	padding: 22px 12px !important;
	text-align: center;
	color: var(--e-muted);
	font-size: 13px;
}

.e-empty a {
	color: var(--e-brand);
	font-weight: 700;
}

.e-av {
	object-fit: cover;
}

/* ==========================================================
   E å¼å®¹å±ï¼æåé¡µé¢æ§ç»ä»¶ç»ä¸ä¸ºææ¡£ç«åä¸çº¿é£æ ¼
   ä¸æ¹æ¨¡æ¿ç»æï¼ä»è¦çå¤è§ï¼å¨é¨èµ° E åéï¼ä¸æ¬¡è¦çå¨é¨é¡µé¢
   ========================================================== */

/* é¢åå± */
.crumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--e-muted2);
	margin-bottom: 10px;
}

.crumb a {
	color: var(--e-brand);
}

.crumb .sep {
	color: var(--e-brand);
}

.crumb .cur {
	color: var(--e-muted);
}

/* ç­é Tab */
.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	border-bottom: 1px solid var(--e-border);
	margin: 16px 0 4px;
}

.tabs .tab {
	padding: 8px 12px;
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	font-size: 18px;
	font-weight: 600;
	color: var(--e-muted);
}

.tabs .tab:hover {
	color: var(--e-text);
}

.tabs .tab.on {
	color: var(--e-brand);
	border-bottom-color: var(--e-brand);
	font-weight: 700;
}

/* ä¸»é¢åè¡¨ */
.topic-list {
	margin-top: 6px;
}

.topic-list .topic {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 2px;
	border-bottom: 1px dashed var(--e-border);
	background: transparent;
}

.topic-list .topic:last-child {
	border-bottom: 0;
}

.topic-list .topic:hover {
	background: var(--e-panel);
}

.topic-list .av {
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--e-brand);
	color: #fff;
	font-size: 11.5px;
	font-weight: 800;
	overflow: hidden;
}

.topic-list .av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.topic-list .tt {
	flex: 1;
	min-width: 0;
}

.topic-list .ti {
	font-size: 18px;
	font-weight: 600;
	color: var(--e-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.topic-list .tm {
	margin-top: 3px;
	font-size: 12px;
	color: var(--e-muted2);
}

.topic-list .st {
	flex: none;
	font-size: 12px;
	color: var(--e-muted2);
	white-space: nowrap;
}

.topic-list .st b {
	color: var(--e-text);
}

/* æ ç­¾ */
.pill {
	display: inline-block;
	padding: 2px 8px;
	margin-right: 6px;
	border: 1px solid var(--e-border);
	border-radius: 6px;
	background: var(--e-panel);
	font-size: 11.5px;
	font-weight: 700;
	color: var(--e-muted);
}

.tag {
	display: inline-block;
	padding: 3px 9px;
	margin: 0 6px 6px 0;
	border: 1px solid var(--e-border);
	border-radius: 7px;
	background: var(--e-panel);
	font-size: 16px;
	color: var(--e-muted);
}

.tag:hover,
.pill:hover {
	color: var(--e-brand);
	border-color: var(--e-brand);
}

/* æé® */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0 18px;
	border: 1px solid var(--e-border2);
	border-radius: 9px;
	background: #fff;
	color: var(--e-text);
	font-size: 16px;
	font-weight: 700;
}

.btn:hover {
	border-color: var(--e-brand);
	color: var(--e-brand);
}

.btn.pri {
	background: var(--e-brand);
	border-color: var(--e-brand);
	color: #fff;
}

.btn.pri:hover {
	color: #fff;
	filter: brightness(1.06);
}

.btn.sec {
	background: #fff;
}

/* æ¿åç½æ ¼ */
.cat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
	margin-top: 16px;
}

.cat-grid .cat {
	display: block;
	padding: 16px;
	border: 1px solid var(--e-border);
	border-radius: 12px;
	background: #fff;
}

.cat-grid .cat:hover {
	border-color: var(--e-brand);
	box-shadow: 0 12px 28px -20px rgba(16, 24, 40, .4);
}

.cat-grid .cn {
	font-size: 18px;
	font-weight: 800;
	color: var(--e-text);
}

.cat-grid .cn .ic {
	margin-right: 8px;
}

.cat-grid .cd {
	margin-top: 7px;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--e-muted);
}

.cat-grid .cm {
	margin-top: 9px;
	font-size: 12px;
	color: var(--e-muted2);
}

.cat-grid .soon-pill {
	margin-left: 8px;
	padding: 2px 8px;
	border-radius: 6px;
	background: var(--e-panel);
	color: var(--e-muted2);
	font-size: 11px;
	font-weight: 700;
}

.cat-grid .cat.soon {
	opacity: .75;
}

/* è®ºåé¡µåå¤´ */
.forum-head2 {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 0 22px;
	border-bottom: 1px solid var(--e-border);
}

.forum-head2 .ft {
	font-size: 26px;
	font-weight: 820;
	letter-spacing: -.01em;
	color: var(--e-text);
}

.forum-head2 .ft .g {
	color: var(--e-brand);
}

.forum-head2 .fsearch {
	flex: 1;
	max-width: 420px;
	margin-left: auto;
	padding: 9px 14px;
	border: 1px solid var(--e-border);
	border-radius: 9px;
	background: var(--e-panel);
	color: var(--e-muted2);
	font-size: 13px;
}

/* åå®¹ + é¡µé¢èªå¸¦å³æ  */
.post {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px;
	gap: 28px;
	align-items: start;
}

.post-main {
	min-width: 0;
}

.post.full {
	grid-template-columns: 1fr;
}

.post:not(.full) .post-main {
	max-width: 820px;
}

.side {
	display: grid;
	gap: 14px;
}

.sc {
	padding: 14px 16px;
	border: 1px solid var(--e-border);
	border-radius: 12px;
	background: #fff;
}

.sc h5 {
	font-size: 13px;
	font-weight: 800;
	color: var(--e-text);
	padding-bottom: 9px;
	border-bottom: 1px solid var(--e-border);
}

.sc .row2 {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--e-border);
	font-size: 12.5px;
	color: var(--e-muted);
}

.sc .row2:last-child {
	border-bottom: 0;
}

.sc .row2 b {
	color: var(--e-text);
	font-weight: 700;
}

.sc .row2 a {
	color: var(--e-muted);
}

.sc .row2 a:hover {
	color: var(--e-brand);
}

/* æç«  / å¸å­æ­£æ */
.ptitle {
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 820;
	line-height: 1.3;
	color: var(--e-text);
}

.pmeta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
	font-size: 12.5px;
	color: var(--e-muted2);
}

.pmeta a {
	color: var(--e-muted);
}

.pmeta a:hover {
	color: var(--e-brand);
}

.post-tags {
	margin-top: 12px;
}

.post-body {
	margin-top: 20px;
	font-size: 18px;
	line-height: 1.85;
	color: var(--e-text);
}

.post-body img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

.post-body pre {
	background: var(--e-panel) !important;
	border: 1px solid var(--e-border);
	border-radius: 10px;
	padding: 13px 15px;
	overflow-x: auto;
}

.post-body code {
	font-family: ui-monospace, Consolas, Monaco, monospace;
	font-size: 13px;
}

.post-body h1,
.post-body h2,
.post-body h3,
.post-body h4 {
	margin: 22px 0 10px;
	color: var(--e-text);
}

.post-body a {
	color: var(--e-brand);
	text-decoration: underline;
}

.post-body blockquote {
	margin: 14px 0;
	padding: 10px 14px;
	border-left: 3px solid var(--e-border2);
	background: var(--e-panel);
	color: var(--e-muted);
}

.post-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 14px 0;
	font-size: 16px;
}

.post-body th,
.post-body td {
	border: 1px solid var(--e-border);
	padding: 9px 11px;
}

.post-body th {
	background: var(--e-panel);
}

/* è¯è®º */
.reply-h {
	margin-top: 34px;
	padding-top: 22px;
	border-top: 1px solid var(--e-border);
	font-size: 16px;
	font-weight: 800;
	color: var(--e-text);
}

.reply-h b {
	color: var(--e-brand);
}

.reply {
	display: flex;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px dashed var(--e-border);
}

.reply .av {
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--e-brand);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	overflow: hidden;
}

.reply .rc {
	flex: 1;
	min-width: 0;
}

.reply .rn {
	font-size: 16px;
	font-weight: 700;
	color: var(--e-text);
}

.reply .rt {
	margin-left: 8px;
	font-size: 11.5px;
	color: var(--e-muted2);
}

.reply .rcon {
	margin-top: 5px;
	font-size: 18px;
	line-height: 1.75;
	color: var(--e-text);
}

.reply-more {
	margin-top: 14px;
}

/* æ¿åå¤´ */
.board-head {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 0 24px;
	border-bottom: 1px solid var(--e-border);
	padding: 10px;
}

.bh-av {
	flex: none;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	overflow: hidden;
	background: var(--e-panel);
}

.bh-av img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bh-info {
	flex: 1;
	min-width: 0;
}

.bh-name {
	font-size: 22px;
	font-weight: 820;
	color: var(--e-text);
}



.bh-meta {
	margin-top: 7px;
	font-size: 12px;
	color: var(--e-muted2);
}

/* èµæºå¯¼èªé¡µ */
.navswitch {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 6px;
}

.navswitch .nsw {
	padding: 7px 13px;
	border: 1px solid var(--e-border);
	border-radius: 8px;
	background: #fff;
	font-size: 13px;
	font-weight: 700;
	color: var(--e-muted);
}

.navswitch .nsw.on {
	background: #eef3ff;
	border-color: var(--e-brand);
	color: var(--e-brand);
}

.navhead {
	padding: 22px 0 26px;
	border-bottom: 1px solid var(--e-border);
}

.navhead .pin {
	font-size: 12.5px;
	color: var(--e-muted2);
}

.navhead .pt {
	margin-top: 10px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--e-brand);
}

.navhead .pn {
	margin-top: 6px;
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 820;
	color: var(--e-text);
}

.navhead .pn .g {
	color: var(--e-brand);
}

.navhead .ps {
	margin-top: 10px;
	max-width: 640px;
	font-size: 18px;
	line-height: 1.8;
	color: var(--e-muted);
}

.pbadges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.pbadge {
	padding: 4px 10px;
	border: 1px solid var(--e-border);
	border-radius: 7px;
	background: var(--e-panel);
	font-size: 12px;
	font-weight: 700;
	color: var(--e-muted);
}

/* äº§å / å¯¼èªé¡µåå®¹å */
.prod-body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 20px;
}

.prod-body .pc {
	padding: 18px;
	border: 1px solid var(--e-border);
	border-radius: 12px;
	background: #fff;
}

.prod-body .pc.full {
	grid-column: 1 / -1;
}

.prod-body .pc h4 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 18px;
	font-weight: 800;
	color: var(--e-text);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--e-border);
}

.doclist {
	list-style: none;
	margin-top: 6px;
}

.doclist li {
	padding: 10px 0;
	border-bottom: 1px dashed var(--e-border);
	font-size: 16px;
	color: var(--e-muted);
}

.doclist li:last-child {
	border-bottom: 0;
}

.doclist .dl {
	font-weight: 700;
	color: var(--e-brand);
}

.navboard {
	padding: 11px 0;
	border-bottom: 1px dashed var(--e-border);
}

.navboard:last-child {
	border-bottom: 0;
}

.navboard b {
	font-size: 18px;
	color: var(--e-text);
}

.navboard p {
	margin-top: 4px;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--e-muted);
}

.topic-mini {
	margin-top: 6px;
}

.tm-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 11px 0;
	border-bottom: 1px dashed var(--e-border);
	font-size: 16px;
}

.tm-row:last-child {
	border-bottom: 0;
}

.tm-t {
	color: var(--e-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tm-m {
	flex: none;
	font-size: 11.5px;
	color: var(--e-muted2);
}

.pcta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* åé¡µ */
.page {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 22px;
}

.page a,
.page span {
	padding: 7px 12px;
	border: 1px solid var(--e-border);
	border-radius: 8px;
	background: #fff;
	font-size: 13px;
	color: var(--e-muted);
}

.page a:hover {
	border-color: var(--e-brand);
	color: var(--e-brand);
}

.page .on,
.page strong {
	background: var(--e-brand);
	border-color: var(--e-brand);
	color: #fff;
}

@media (max-width: 980px) {

	.post,
	.prod-body {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================
   é¡¶æ ä¿ææ·±è²ï¼åå®¹åºæµè²ï¼ä¸ e.html é¢è§ææä¸è´ï¼
   ========================================================== */
.ns-topnav {
	background: rgba(4, 7, 15, .88);
	border-bottom-color: rgba(255, 255, 255, .08);
}

.ns-logo .g {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent
}

.ns-nav a {
	color: #97a1bb;
}

.ns-nav a:hover {
	color: #e8ecf6;
	background: rgba(255, 255, 255, .07);
}

.ns-nav a.on {
	color: #fff;
	background: rgba(47, 95, 214, .32);
}

.ns-search {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .14);
	color: #97a1bb;
}

.ns-user .me {
	background: rgba(255, 255, 255, .10);
	color: #e8ecf6;
}

.ns-user a.login {
	color: #e8ecf6;
}

.ns-user a.reg {
	background: var(--brand);
	color: #fff;
}

/* ç»å½åçä¸æèåä»æ¯æµè²æµ®å±ï¼ä¿è¯å¯è¯» */
.me-menu {
	background: #fff;
	border-color: var(--border);
	box-shadow: 0 18px 40px -20px rgba(16, 24, 40, .35);
}

/* ==========================================================
   é¦é¡µäº§ååç±»å¤§å¡ï¼éç¨çæè¯ç / å¼æºæå­¦ RISC-V IPï¼
   ========================================================== */
.e-pcards {
	display: grid;
	gap: 18px;
	margin-top: 22px;
}

.e-pcard {
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 20px;
	padding: 18px;
	min-height: 360px; /* ä¿è¯ç®å¡ï¼å¦ e203ï¼ä¹æè¶³å¤çæ»å¨åçåºé´ */
	border: 1px solid var(--e-border);
	border-radius: 16px;
	background: #fff;
	scroll-margin-top: 80px;
	/* éç¹å®ä½æ¶é¿å¼ sticky é¡¶æ  */
	transition: .16s
}

.e-pcard:hover {
	border-color: var(--e-brand);
	box-shadow: 0 16px 36px -24px rgba(16, 24, 40, .4);
}

.e-pcard.cur {
	border-color: #c4d1ef;
	box-shadow: 0 0 0 3px #eef3ff;
	background-color: #c4d1ef;
}

.pc-img {
	position: relative;
	border-radius: 12px;
	background: #f4f7fd;
	display: grid;
	place-items: center;
	overflow: hidden;
	min-height: 220px;
}

.pc-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 16px;
}

.pc-img-ph {
	padding: 20px;
	font-size: 18px;
	font-weight: 800;
	color: var(--e-brand);
	text-align: center;
	line-height: 1.7;
}

/* æ å¾ä¾§æ ï¼äº§åæ è¯ + æ ¸å¿åç¹ï¼æ¿ä»£ç©ºå¾æ åï¼ */
.pc-side {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 40px 10px 10px;
	border-radius: 12px;
	overflow: hidden;
	background:
		radial-gradient(130% 70% at 50% 0%, color-mix(in srgb, var(--e-brand) 13%, transparent), transparent 62%),
		#f4f7fd
}

.pc-side .pc-photo {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
	background: #fff
}

.pc-side .pc-chip {
	width: 54px;
	height: 54px;
	color: var(--e-brand);
	opacity: .9
}

.pc-side .pc-name {
	max-width: 100%;
	font-size: 17px;
	font-weight: 900;
	letter-spacing: -.01em;
	color: var(--e-brand);
	text-align: center;
	line-height: 1.35
}

.pc-side-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px
}

.pc-side-badges span {
	padding: 6px 14px;
	border: 1px solid var(--e-border);
	border-radius: 999px;
	background: #ccd9ec;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--e-muted);
	white-space: nowrap;
	line-height: 1.45
}

.pc-kind {
	border-radius: 999px;
	background: var(--e-brand);
	color: #fff;
	font-weight: 800;
	letter-spacing: .04em;
	box-shadow: 0 4px 12px rgba(41, 98, 255, .32);
}

.e-pcard h3 {
	margin-top: 2px;
	font-size: 22px;
	font-weight: 820;
	letter-spacing: -.01em;
	color: var(--e-text);
}

.pc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	position: relative;
	align-items: center;
}

.pc-head h3 {
	margin-top: 0;
	min-width: 0;
}

.pc-head .pc-cta {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.pc-head .pc-cta-mini {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	flex: none;
}

.pc-desc {
	margin-top: 6px;
	font-size: 18px;
	line-height: 1.8;
	color: var(--e-muted);
}

.pc-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.pc-badges span {
	padding: 4px 12px;
	border: 1px solid var(--e-border);
	border-radius: 999px;
	background: var(--e-panel);
	font-size: 18px;
	font-weight: 700;
	color: var(--e-muted);
}

.pc-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 12px;
}

.pc-box {
	padding: 12px 14px;
	border: 1px solid var(--e-border);
	border-radius: 12px;
	background: var(--e-panel);
}

.pc-box h4 {
	font-size: 18px;
	font-weight: 800;
	color: var(--e-text);
	padding-bottom: 6px;
	border-bottom: 1px solid var(--e-border);
}

.pc-box ul {
	list-style: none;
	margin-top: 2px;
}

.pc-box li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 5px 0;
	border-bottom: 1px dashed var(--e-border);
	font-size: 18px;
}

.pc-box li:last-child {
	border-bottom: 0;
}

.pc-box li b {
	flex: none;
	width: 64px;
	color: var(--e-text);
	font-weight: 700;
}

.pc-box li span {
	flex: 1;
	min-width: 0;
	color: var(--e-muted);
	line-height: 1.65;
}

.pc-box li a {
	flex: 1;
	min-width: 0;
	color: var(--e-brand);
	font-weight: 600;
	line-height: 1.65;
}

.pc-box li a:hover {
	text-decoration: underline;
}

.pc-box li a em {
	font-style: normal;
	font-size: 16px;
	border-bottom: 1px solid currentColor;
	margin-left: 6px;
	white-space: nowrap;
}



@media (max-width: 980px) {
	.e-pcard {
		grid-template-columns: 1fr;
	}

	.pc-img {
		min-height: 220px;
	}

	.pc-cols {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================
   è®ºåé¦é¡µ Â· çååç»ï¼ä»ç» + å¸å­åè¡¨ï¼
   ========================================================== */
.e-boards {
	display: grid;
	gap: 16px;
	margin-top: 20px;
}

.e-board {
	border: 1px solid var(--e-border);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
	scroll-margin-top: 80px;
	transition: .16s
}

.e-board:target,
.e-board.cur {
	border-color: #c4d1ef;
	box-shadow: 0 0 0 3px #eef3ff;
	background-color: #c4d1ef;
}

.fb-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	background: var(--e-panel);
	border-bottom: 1px solid var(--e-border)
}

.fb-av {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--e-border);
	display: grid;
	place-items: center;
	font-size: 22px
}
.fb-av img { width: 100%; height: 100%; object-fit: cover; border-radius: 9px; display: block; }

.fb-info {
	flex: 1;
	min-width: 0;
}

.fb-name {
	font-size: 18px;
	font-weight: 800;
	color: var(--e-text);
}

.fb-soon {
	margin-left: 8px;
	padding: 2px 8px;
	border-radius: 6px;
	background: #fff;
	border: 1px solid var(--e-border);
	color: var(--e-muted2);
	font-size: 16px;
	font-weight: 700
}

.fb-desc {
	margin-top: 4px;
	font-size: 18px;
	line-height: 1.65;
	color: var(--e-muted);
}

.fb-meta {
	margin-top: 6px;
	font-size: 12px;
	color: var(--e-muted2);
}

.fb-topics {
	list-style: none;
}

.fb-topics li {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 11px 18px;
	border-bottom: 1px dashed var(--e-border);
	font-size: 18px
}

.fb-topics li:last-child {
	border-bottom: 0;
}

.fb-topics a {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--e-text);
}

.fb-topics a:hover {
	color: var(--e-brand);
}

.fb-topics .e-time {
	flex: none;
	font-size: 16px;
	color: var(--e-muted2);
}

/* ===== çåå¡å Tabï¼ææ°/ç­é¨/é®ç­/åäº«ï¼===== */
.fb-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 10px 18px 0;
	border-bottom: 1px solid var(--e-border)
}

.fb-tab {
	padding: 7px 12px;
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	font-size: 18px;
	font-weight: 600;
	color: var(--e-muted)
}

.fb-tab:hover {
	color: var(--e-text);
}

.fb-tab.on {
	color: var(--e-brand);
	border-bottom-color: var(--e-brand);
	font-weight: 700;
}

.fb-lists .fb-topics {
	display: none;
}

.fb-lists .fb-topics.on {
	display: block;
}

/* ===== è®ºåé¦é¡µ Â· ä¸»é¢æµç­éï¼ææ° / ç­é¨ / é®ç­ / åäº«ï¼ä¸åè¡¨ ===== */

/* ==========================================================
   è®ºåé¦é¡µ Â· ä¸»é¢æµç­éï¼ææ° / ç­é¨ / é®ç­ / åäº«ï¼ä¸åè¡¨
   ========================================================== */
.e-tabs {
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.e-tab {
	padding: 6px 12px;
	border-radius: 8px;
	font-size: 18px;
	font-weight: 600;
	color: var(--e-muted);
}

.e-tab:hover {
	color: var(--e-text);
	background: var(--e-panel);
}

.e-tab.on {
	background: #eef3ff;
	color: var(--e-brand);
	font-weight: 700;
}

.e-tlist {
	margin-top: 14px;
}

.e-trow {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 2px;
	border-bottom: 1px dashed var(--e-border);
}

.e-trow:hover {
	background: var(--e-panel);
}

.e-ti {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 18px;
	font-weight: 600;
	color: var(--e-text)
}

.e-top {
	display: inline-block;
	margin-right: 6px;
	padding: 1px 7px;
	border-radius: 6px;
	background: var(--e-brand);
	color: #fff;
	font-size: 16px;
	font-style: normal;
	font-weight: 700
}

.e-tg {
	flex: none;
	max-width: 150px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 18px;
	color: var(--e-muted2)
}

.e-trow .e-time {
	flex: none;
	font-size: 16px;
	color: var(--e-muted2);
}

.e-trow .e-time b {
	color: var(--e-text);
}

/* ==========================================================
   çå¼å å®½ + å­å·è°æ´ï¼æææ¡£ç«éè¡æ åï¼è¦ç E åå§å¼ï¼
   å®¹å¨ 1440 / ä¾§æ  264 / æ­£æ 15px èµ·ï¼è¾å©ä¿¡æ¯ä¸å°äº 12.5px
   ========================================================== */

/* ---- å®¹å¨ä¸æ æ ¼ ---- */
.e-shell {
	grid-template-columns: 264px minmax(0, 1fr);
	max-width: var(--site-max);
}

.e-main {
	padding: 0px 0 20px 40px;
}

.ns-wrap {
	max-width: var(--site-max);
}

/* é¡¶æ ä¸é¡µèä¸åå®¹åå®½ */
.e-side {
	padding: 10px;
}

.e-pcards {
	gap: 20px;
}

.e-boards {
	gap: 18px;
}

.e-side-tt {
	background: #28b4c3;
	color: #fff;
	font-weight: 800;
	letter-spacing: .04em;
	box-shadow: 0 4px 12px rgba(41, 98, 255, .32);
	font-size: 18px;
	padding: 10px 10px;
	border-radius: 8px;
}

.e-side a {
	font-size: 18px;
	padding: 9px 12px;
}

.e-side a .n {
	font-size: 18px;
}

.e-side-card p {
	font-size: 18px;
}

.e-side-card a {
	height: 40px;
	font-size: 18px;
}

/* ---- æ é¢ä¸æ­£æ ---- */
.e-crumb {
	font-size: 18px;
}

.e-h1 {
	font-size: clamp(32px, 3.6vw, 46px);
}

.e-lede {
	font-size: 18px;
	line-height: 1.85;
}

.e-btn {
	height: 44px;
	padding: 0 22px;
	font-size: 18px;
}

.e-h2 {
	font-size: 24px;
}

.e-h2 .idx {
	font-size: 18px;
}

.e-sub {
	font-size: 18px;
	max-width: 880px;
	font-weight: 700;
}

.e-sec-hd {
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
	display: flex;
	justify-content: flex-start;
	background-color: #28b4c3;
	color: #FFF;
	border-radius: 8px;
	padding: 10px 20px 10px 20px;
}

.e-sec-hd .e-sub {
	margin-top: 0;
}

/* ---- äº§åå°å¡ ---- */
.e-card {
	grid-template-columns: 104px 1fr;
	gap: 18px;
	padding: 18px;
}

.e-thumb img {
	max-height: 92px;
}

.e-card h3 {
	font-size: 16.5px;
}

.e-card p {
	font-size: 16px;
}

.e-card .lk {
	font-size: 16px;
}

/* ---- éåè¡¨ ---- */
.e-table {
	font-size: 16px;
}

.e-table th {
	padding: 12px 13px;
	font-size: 12.5px;
}

.e-table td {
	padding: 13px;
}

.e-tag {
	padding: 4px 10px;
	font-size: 12.5px;
}

.e-app {
	font-size: 16px;
}

.e-go a {
	font-size: 16px;
}

/* ---- å·¥å·é¾è¡å¼ ---- */
.e-tool {
	grid-template-columns: 38px 210px 1fr auto;
	padding: 17px 20px;
}

.e-tool .ic {
	width: 38px;
	height: 38px;
}

.e-tool .ic svg {
	width: 20px;
	height: 20px;
}

.e-tool b {
	font-size: 15.5px;
}

.e-tool p {
	font-size: 18px;
}

.e-tool a {
	font-size: 18px;
}

/* ---- ç¤¾åºä¸¤å / ç©ºæ ---- */
.e-feed h4 {
	font-size: 15.5px;
}

.e-feed li {
	padding: 12px 0;
}

.e-feed a {
	font-size: 18px;
}

.e-av,
.e-ic {
	width: 30px;
	height: 30px;
	font-size: 12.5px;
}

.e-ic svg {
	width: 15px;
	height: 15px;
}

.e-time {
	font-size: 12.5px;
}

.e-more {
	font-size: 16px;
}

.e-none {
	font-size: 18px;
}

/* ---- CTA å ---- */
.e-band {
	padding: 46px;
}

.e-band h2 {
	font-size: 28px;
}

.e-band p {
	font-size: 15.5px;
}

/* ---- é¦é¡µäº§åå¤§å¡ ---- */
.e-pcard {
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 26px;
	padding: 10px;
}

.e-pcard h3 {
	font-size: 26px;
	padding-right: 16px;
}

.pc-desc {
	font-size: 18px;
	line-height: 1.85;
	max-width: 940px;
}

.pc-kind {
	font-size: 16px;
	padding: 7px 15px;
}

.pc-badges span {
	font-size: 16px;
	padding: 5px 13px;
}

.pc-box {
	padding: 6px 10px;
}

.pc-box h4 {
	font-size: 18px;
}


.pc-box li b {
	width: 84px;
}

.pc-cols {
	gap: 16px;
	margin-top: 18px;
}

.pc-cta-mini {
	gap: 12px;
}

/* ---- è®ºåçåå¡ ---- */
.fb-head {
	padding: 18px 20px;
	gap: 16px;
}

.fb-av {
	width: 48px;
	height: 48px;
	font-size: 24px;
}
.fb-av img { width: 100%; height: 100%; object-fit: cover; border-radius: 11px; display: block; }


.fb-meta {
	font-size: 12.5px;
}

.fb-tabs {
	padding: 12px 20px 0;
}

.fb-tab {
	font-size: 18px;
	padding: 8px 14px;
}

.fb-topics li {
	padding: 12px 20px;
	font-size: 18px;
}

.fb-topics .e-time {
	font-size: 12.5px;
}

/* ==========================================================
   é¡¶é¨å¯¼èª Â· ç§»å¨ç«¯ééå¢å¼ºï¼æ ¸å¿ï¼çªå±ä¸å¤æº¢ãå¯æ¨ªæ»ï¼
   ========================================================== */
@media (max-width: 980px) {
	.ns-topnav .bar {
		gap: 12px;
	}

	.ns-search {
		display: none;
	}

	/* çªå±éèé¿æç´¢æ¡ï¼æç»æ¨ªåæº¢åº */
}

@media (max-width: 640px) {
	.ns-topnav .bar {
		flex-wrap: wrap;
		height: auto;
		row-gap: 10px;
		padding: 10px 0
	}

	.ns-logo {
		flex: 1 1 auto;
	}

	.ns-user {
		margin-left: auto;
	}

	.ns-nav {
		order: 3;
		width: 100%;
		justify-content: flex-start;
		gap: 4px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch
	}

	.ns-nav a {
		white-space: nowrap;
	}
}

/* ==========================================================
   é¦é¡µäº§åå¤§å¡ Â· è¶å°å±ï¼â¤560pxï¼å¾®è°
   ========================================================== */
@media (max-width: 560px) {
	.e-hero {
		padding: 6px 0 2px;
	}

	.e-h1 {
		font-size: clamp(26px, 8vw, 34px);
	}

	.e-pcard {
		padding: 16px;
		gap: 18px;
		border-radius: 14px;
	}

	.pc-img {
		min-height: 180px;
		border-radius: 10px;
	}

	.e-pcard h3 {
		font-size: 21px;
	}

	.pc-desc {
		font-size: 16px;
		line-height: 1.8;
	}

	.pc-cta-mini {
		gap: 8px;
	}

	.pc-cta-mini .e-btn {
		flex: 1 1 auto;
		justify-content: center;
	}

	.e-band {
		padding: 32px 18px;
	}

	.e-band h2 {
		font-size: 22px;
	}
}
