/**
 * SirVPS Host Review 主样式
 * 全宽 · 响应式 · 三栏（左侧栏 + 内容 + 右侧栏）
 */

/* ============ 基础 ============ */
:root {
	--sirvps-primary: #2563eb;
	--sirvps-secondary: #0f172a;
	--sirvps-accent: #f97316;
	--sirvps-text: #334155;
	--sirvps-heading: #0f172a;
	--sirvps-link: #2563eb;
	--sirvps-bg: #f5f7fb;
	--sirvps-card: #ffffff;
	--sirvps-border: #e2e8f0;
	--sirvps-radius: 14px;
	--sirvps-container: 1440px;
	--sirvps-gutter: 24px;
	--sirvps-font-size: 16px;
	--sirvps-line-height: 1.8;
	--sirvps-spacing: 0px;
	--sirvps-header-h: 72px;
	--sirvps-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
	--sirvps-shadow-soft: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);
	--sirvps-shadow-strong: 0 2px 6px rgba(15, 23, 42, .08), 0 18px 48px rgba(15, 23, 42, .12);
	--sirvps-transition: .25s cubic-bezier(.4, 0, .2, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--sirvps-font);
	font-size: var(--sirvps-font-size);
	line-height: var(--sirvps-line-height);
	letter-spacing: var(--sirvps-spacing);
	color: var(--sirvps-text);
	background: var(--sirvps-bg);
	overflow-x: hidden;
}

body.sirvps-no-scroll {
	overflow: hidden;
}

a {
	color: var(--sirvps-link);
	text-decoration: none;
	transition: color var(--sirvps-transition);
}

a:hover {
	color: var(--sirvps-primary);
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--sirvps-heading);
	line-height: 1.35;
	margin: 0 0 .6em;
	font-weight: 700;
}

p {
	margin: 0 0 1em;
}

ul, ol {
	margin: 0 0 1em;
	padding-left: 1.4em;
}

button {
	font-family: inherit;
}

input, textarea, select {
	font-family: inherit;
	font-size: 15px;
}

hr {
	border: 0;
	border-top: 1px solid var(--sirvps-border);
	margin: 24px 0;
}

.screen-reader-text:focus {
	position: static !important;
	clip: auto;
	width: auto;
	height: auto;
	padding: 8px 14px;
	background: var(--sirvps-primary);
	color: #fff;
	z-index: 999;
}

.sirvps-skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	clip: auto;
	width: auto;
	height: auto;
	background: var(--sirvps-primary);
	color: #fff;
	padding: 10px 16px;
	border-radius: 8px;
}

/* ============ 容器与栅格 ============ */
.sirvps-container {
	width: 100%;
	max-width: var(--sirvps-container);
	margin: 0 auto;
	padding-left: var(--sirvps-gutter);
	padding-right: var(--sirvps-gutter);
}

.sirvps-shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	padding: 28px 0 48px;
	align-items: start;
}

.sirvps-shell--three {
	grid-template-columns: var(--sirvps-col-left, 3)fr var(--sirvps-col-main, 6)fr var(--sirvps-col-right, 3)fr;
}

.sirvps-shell--left {
	grid-template-columns: minmax(240px, 3fr) minmax(0, 9fr);
}

.sirvps-shell--right {
	grid-template-columns: minmax(0, 9fr) minmax(240px, 3fr);
}

.sirvps-content-primary {
	min-width: 0;
}

.sirvps-main {
	min-width: 0;
}

/* 侧栏 */
.sirvps-sidebar {
	min-width: 0;
}

.sirvps-sidebar__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: sticky;
	top: calc(var(--sirvps-header-h) + 24px);
}

.sirvps-widget {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 18px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-widget-title {
	font-size: 15px;
	font-weight: 800;
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--sirvps-primary);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.sirvps-widget-more {
	font-size: 12px;
	font-weight: 500;
	color: #94a3b8;
}

/* ============ 顶部公告栏 ============ */
.sirvps-topbar {
	background: var(--sirvps-secondary);
	color: #fff;
	font-size: 13px;
}

.sirvps-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 38px;
}

.sirvps-topbar__text a {
	color: #fff;
}

.sirvps-topbar__close {
	background: none;
	border: 0;
	color: rgba(255, 255, 255, .7);
	font-size: 20px;
	cursor: pointer;
	line-height: 1;
	padding: 0 4px;
}

.sirvps-topbar.is-hidden {
	display: none;
}

/* ============ 阅读进度 ============ */
.sirvps-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 1200;
	background: transparent;
	pointer-events: none;
}

.sirvps-progress i {
	display: block;
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, var(--sirvps-primary), var(--sirvps-accent));
	transition: width .1s linear;
}

/* ============ 头部 ============ */
.sirvps-header {
	background: var(--sirvps-card);
	border-bottom: 1px solid var(--sirvps-border);
	position: relative;
	z-index: 900;
}

.sirvps-header.is-sticky {
	position: sticky;
	top: 0;
	box-shadow: 0 2px 14px rgba(15, 23, 42, .06);
}

.sirvps-header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: var(--sirvps-header-h);
}

.sirvps-header__logo {
	flex: 0 0 auto;
}

.sirvps-header__logo img {
	max-height: calc(var(--sirvps-header-h) - 24px);
	width: auto;
}

.sirvps-logo-text {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 900;
	font-size: 22px;
	letter-spacing: -.5px;
	color: var(--sirvps-heading);
}

.sirvps-logo-text__mark {
	display: inline-grid;
	place-items: center;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
	border-radius: 10px;
	padding: 4px 8px;
	font-size: 15px;
	letter-spacing: 0;
}

.sirvps-nav--primary {
	flex: 1 1 auto;
	min-width: 0;
}

.sirvps-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.sirvps-menu > li {
	position: relative;
}

.sirvps-menu a {
	display: block;
	padding: 10px 14px;
	font-size: 15px;
	font-weight: 600;
	color: var(--sirvps-heading);
	border-radius: 10px;
}

.sirvps-menu a:hover {
	background: rgba(37, 99, 235, .08);
	color: var(--sirvps-primary);
}

.sirvps-menu .current-menu-item > a {
	color: var(--sirvps-primary);
}

.sirvps-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 190px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: 12px;
	box-shadow: var(--sirvps-shadow-strong);
	list-style: none;
	margin: 6px 0 0;
	padding: 8px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: var(--sirvps-transition);
	z-index: 50;
}

.sirvps-menu li:hover > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.sirvps-menu .sub-menu a {
	font-weight: 500;
	border-radius: 8px;
	padding: 8px 12px;
}

.sirvps-header__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}

.sirvps-icon-btn {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border: 1px solid var(--sirvps-border);
	background: var(--sirvps-card);
	border-radius: 10px;
	cursor: pointer;
	color: var(--sirvps-heading);
	transition: var(--sirvps-transition);
}

.sirvps-icon-btn:hover {
	border-color: var(--sirvps-primary);
	color: var(--sirvps-primary);
}

.sirvps-member-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 12px 4px 4px;
	border: 1px solid var(--sirvps-border);
	border-radius: 999px;
	background: var(--sirvps-card);
	color: var(--sirvps-heading);
	font-size: 13px;
	font-weight: 600;
}

.sirvps-member-btn img {
	border-radius: 50%;
	width: 28px;
	height: 28px;
}

.sirvps-member-btn__name {
	max-width: 90px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sirvps-menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 40px;
	height: 40px;
	background: none;
	border: 1px solid var(--sirvps-border);
	border-radius: 10px;
	cursor: pointer;
	padding: 0 9px;
}

.sirvps-menu-toggle span {
	display: block;
	height: 2px;
	background: var(--sirvps-heading);
	border-radius: 2px;
	transition: var(--sirvps-transition);
}

.sirvps-menu-toggle.is-active span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}

.sirvps-menu-toggle.is-active span:nth-child(2) {
	opacity: 0;
}

.sirvps-menu-toggle.is-active span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

/* 搜索面板 */
.sirvps-search-panel {
	background: var(--sirvps-card);
	border-bottom: 1px solid var(--sirvps-border);
	padding: 18px 0;
	box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.sirvps-search-form {
	display: flex;
	gap: 10px;
	align-items: stretch;
}

.sirvps-search-form input {
	flex: 1;
	min-width: 0;
	padding: 12px 16px;
	border: 1px solid var(--sirvps-border);
	border-radius: 12px;
	background: var(--sirvps-bg);
	color: var(--sirvps-text);
	outline: none;
	transition: var(--sirvps-transition);
}

.sirvps-search-form input:focus {
	border-color: var(--sirvps-primary);
	background: var(--sirvps-card);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.sirvps-search-tips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.sirvps-search-tips a {
	font-size: 12px;
	padding: 4px 10px;
	background: var(--sirvps-bg);
	border-radius: 999px;
	color: #64748b;
}

.sirvps-search-panel__close {
	background: none;
	border: 0;
	font-size: 24px;
	cursor: pointer;
	color: #94a3b8;
	padding: 0 6px;
}

.sirvps-search-form--inline {
	max-width: 520px;
	margin: 14px 0 0;
}

/* 二级导航 */
.sirvps-subnav {
	background: var(--sirvps-card);
	border-top: 1px solid var(--sirvps-border);
}

.sirvps-subnav__list {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 8px 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.sirvps-subnav__list::-webkit-scrollbar {
	display: none;
}

.sirvps-subnav__list a {
	display: block;
	padding: 6px 14px;
	font-size: 14px;
	font-weight: 500;
	color: #64748b;
	border-radius: 999px;
	white-space: nowrap;
}

.sirvps-subnav__list a:hover,
.sirvps-subnav__list .current-menu-item a {
	background: rgba(37, 99, 235, .1);
	color: var(--sirvps-primary);
}

/* 头部变体 */
.sirvps-header--centered .sirvps-header__inner {
	flex-wrap: wrap;
	justify-content: center;
}

.sirvps-header--centered .sirvps-nav--primary {
	flex: 0 0 100%;
	order: 3;
	justify-content: center;
}

.sirvps-header--centered .sirvps-menu {
	justify-content: center;
}

.sirvps-header--transparent {
	background: transparent;
	border-bottom: 0;
	backdrop-filter: blur(12px);
}

.sirvps-header--minimal .sirvps-header__inner {
	min-height: 56px;
}

/* ============ 快讯 ============ */
.sirvps-ticker {
	background: var(--sirvps-card);
	border-bottom: 1px solid var(--sirvps-border);
}

.sirvps-ticker,
.sirvps-ticker .sirvps-ticker__label {
	display: flex;
	align-items: center;
}

.sirvps-ticker__label {
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	padding: 8px 16px;
	white-space: nowrap;
}

.sirvps-ticker__viewport {
	flex: 1;
	overflow: hidden;
	height: 38px;
	position: relative;
}

.sirvps-ticker__list {
	list-style: none;
	margin: 0;
	padding: 0;
	animation: sirvps-ticker-scroll 40s linear infinite;
}

.sirvps-ticker__list li {
	height: 38px;
	display: flex;
	align-items: center;
}

.sirvps-ticker__list a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 24px;
	font-size: 14px;
	color: var(--sirvps-text);
	white-space: nowrap;
}

.sirvps-ticker__time {
	color: var(--sirvps-primary);
	font-weight: 700;
}

@keyframes sirvps-ticker-scroll {
	0% { transform: translateY(0); }
	100% { transform: translateY(-50%); }
}

/* ============ 广告位 ============ */
.sirvps-ad {
	margin: 16px 0;
	text-align: center;
}

.sirvps-ad--mobile {
	display: none;
}

/* ============ 面包屑 ============ */
.sirvps-breadcrumb {
	font-size: 13px;
	color: #94a3b8;
	margin-bottom: 16px;
}

.sirvps-breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

.sirvps-breadcrumb li + li::before {
	content: "/";
	margin-right: 6px;
	color: #cbd5e1;
}

.sirvps-breadcrumb .is-current span {
	color: var(--sirvps-heading);
}

/* ============ 区块标题 ============ */
.sirvps-block-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 32px 0 18px;
}

.sirvps-block-title {
	font-size: 20px;
	font-weight: 800;
	margin: 0;
	position: relative;
	padding-left: 14px;
}

.sirvps-block-head--bar .sirvps-block-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12%;
	width: 5px;
	height: 76%;
	border-radius: 3px;
	background: linear-gradient(180deg, var(--sirvps-primary), var(--sirvps-accent));
}

.sirvps-block-head--line .sirvps-block-title {
	padding-left: 0;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--sirvps-border);
}

.sirvps-block-head--center {
	justify-content: center;
	text-align: center;
}

.sirvps-block-head--center .sirvps-block-title {
	padding-left: 0;
}

.sirvps-block-more {
	font-size: 13px;
	color: #94a3b8;
	font-weight: 500;
}

/* ============ 网格 ============ */
.sirvps-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(1, minmax(0, 1fr));
}

.sirvps-posts--masonry {
	align-items: start;
}

/* ============ 卡片 ============ */
.sirvps-card {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--sirvps-shadow-soft);
	transition: transform var(--sirvps-transition), box-shadow var(--sirvps-transition), border-color var(--sirvps-transition);
}

.sirvps-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sirvps-shadow-strong);
	border-color: rgba(37, 99, 235, .35);
}

.sirvps-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eef2f7;
}

.sirvps-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.sirvps-card:hover .sirvps-card__media img {
	transform: scale(1.06);
}

.sirvps-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0) 40%, rgba(15, 23, 42, .45));
	opacity: 0;
	transition: var(--sirvps-transition);
}

.sirvps-card:hover .sirvps-card__overlay {
	opacity: 1;
}

.sirvps-card__score,
.sirvps-card__pin {
	position: absolute;
	top: 10px;
	left: 10px;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(15, 23, 42, .2);
}

.sirvps-card__pin {
	left: auto;
	right: 10px;
	background: rgba(15, 23, 42, .85);
}

.sirvps-card__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.sirvps-card__terms {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.sirvps-card__term {
	font-size: 11px;
	font-weight: 700;
	color: var(--sirvps-primary);
	background: rgba(37, 99, 235, .1);
	padding: 3px 8px;
	border-radius: 6px;
}

.sirvps-card__title {
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	line-height: 1.5;
}

.sirvps-card__title a {
	color: var(--sirvps-heading);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sirvps-card__title a:hover {
	color: var(--sirvps-primary);
}

.sirvps-card__subtitle {
	font-size: 13px;
	color: #94a3b8;
	margin: 0;
}

.sirvps-card__excerpt {
	font-size: 13.5px;
	color: #64748b;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sirvps-card__action {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
	border-top: 1px dashed var(--sirvps-border);
}

.sirvps-price {
	font-weight: 800;
	color: var(--sirvps-accent);
}

.sirvps-card__exp {
	font-size: 12px;
	color: #94a3b8;
}

/* 列表样式 */
.sirvps-posts--list {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.sirvps-post {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 18px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 14px;
	box-shadow: var(--sirvps-shadow-soft);
	transition: var(--sirvps-transition);
}

.sirvps-post:hover {
	box-shadow: var(--sirvps-shadow-strong);
	transform: translateY(-2px);
}

.sirvps-post__media {
	border-radius: 10px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #eef2f7;
}

.sirvps-post__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-post__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	justify-content: center;
}

.sirvps-post__term {
	align-self: flex-start;
	font-size: 11px;
	font-weight: 700;
	color: var(--sirvps-primary);
	background: rgba(37, 99, 235, .1);
	padding: 3px 8px;
	border-radius: 6px;
}

.sirvps-post__title {
	font-size: 18px;
	margin: 0;
}

.sirvps-post__title a {
	color: var(--sirvps-heading);
}

.sirvps-post__excerpt {
	font-size: 14px;
	color: #64748b;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* 元信息 */
.sirvps-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 12.5px;
	color: #94a3b8;
	align-items: center;
}

.sirvps-meta__item a {
	color: inherit;
}

.sirvps-meta__item a:hover {
	color: var(--sirvps-primary);
}

/* ============ Hero ============ */
.sirvps-hero {
	position: relative;
	border-radius: calc(var(--sirvps-radius) + 4px);
	overflow: hidden;
	background: var(--sirvps-secondary);
	box-shadow: var(--sirvps-shadow-strong);
	margin-bottom: 8px;
}

.sirvps-hero__item {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .6s ease;
}

.sirvps-hero__item.is-active {
	opacity: 1;
	visibility: visible;
	position: relative;
}

.sirvps-hero__item:not(.is-active) {
	display: none;
}

.sirvps-hero__link {
	display: block;
	position: relative;
	height: 460px;
	color: #fff;
}

.sirvps-hero__media {
	position: absolute;
	inset: 0;
}

.sirvps-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-hero__mask {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, .15) 0%, rgba(15, 23, 42, .85) 100%);
}

.sirvps-hero__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 40px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 760px;
}

.sirvps-hero__cat {
	align-self: flex-start;
	background: var(--sirvps-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 6px;
}

.sirvps-hero__title {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.3;
	color: #fff;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.sirvps-hero__meta {
	font-size: 13px;
	color: rgba(255, 255, 255, .8);
}

.sirvps-hero__nav {
	position: absolute;
	bottom: 18px;
	right: 24px;
	display: flex;
	align-items: center;
	gap: 10px;
	z-index: 5;
}

.sirvps-hero__prev,
.sirvps-hero__next {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, .22);
	color: #fff;
	font-size: 20px;
	cursor: pointer;
	backdrop-filter: blur(6px);
	transition: var(--sirvps-transition);
}

.sirvps-hero__prev:hover,
.sirvps-hero__next:hover {
	background: var(--sirvps-primary);
}

.sirvps-hero__dots {
	display: flex;
	gap: 6px;
}

.sirvps-hero__dot {
	width: 8px;
	height: 8px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .4);
	cursor: pointer;
	padding: 0;
	transition: var(--sirvps-transition);
}

.sirvps-hero__dot.is-active {
	width: 22px;
	border-radius: 4px;
	background: var(--sirvps-primary);
}

/* Hero 变体 */
.sirvps-hero--text .sirvps-hero__link {
	height: auto;
	padding: 22px 26px;
	background: var(--sirvps-card);
	border-bottom: 1px solid var(--sirvps-border);
	color: var(--sirvps-heading);
	display: flex;
	align-items: center;
	gap: 16px;
}

.sirvps-hero--text .sirvps-hero__idx {
	font-size: 26px;
	font-weight: 900;
	color: var(--sirvps-primary);
	opacity: .5;
}

.sirvps-hero--text .sirvps-hero__title {
	font-size: 17px;
	color: var(--sirvps-heading);
	text-shadow: none;
	margin: 0;
}

.sirvps-hero--text .sirvps-hero__excerpt {
	font-size: 13px;
	color: #94a3b8;
}

.sirvps-hero--split .sirvps-hero__link {
	height: 380px;
}

.sirvps-hero--grid .sirvps-hero__link {
	height: 320px;
}

/* ============ 按钮 ============ */
.sirvps-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 18px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 700;
	border: 1px solid transparent;
	cursor: pointer;
	transition: var(--sirvps-transition);
	background: var(--sirvps-bg);
	color: var(--sirvps-text);
	line-height: 1.4;
}

.sirvps-btn--primary {
	/* 不使用 color-mix()，避免旧版浏览器整条声明失效导致按钮无背景 */
	background: linear-gradient(135deg, var(--sirvps-primary) 0%, #7c3aed 100%);
	color: #fff;
	box-shadow: 0 6px 18px rgba(37, 99, 235, .28);
}

.sirvps-btn--primary:hover {
	color: #fff;
	filter: brightness(1.06);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(37, 99, 235, .34);
}

.sirvps-btn--ghost,
.sirvps-btn--outline {
	background: transparent;
	border-color: var(--sirvps-border);
	color: var(--sirvps-heading);
}

.sirvps-btn--ghost:hover,
.sirvps-btn--outline:hover {
	border-color: var(--sirvps-primary);
	color: var(--sirvps-primary);
}

.sirvps-btn--sm {
	padding: 7px 14px;
	font-size: 13px;
	border-radius: 8px;
}

.sirvps-btn--xs {
	padding: 4px 10px;
	font-size: 12px;
	border-radius: 6px;
}

.sirvps-btn--lg {
	padding: 13px 26px;
	font-size: 15px;
}

.sirvps-btn--block {
	width: 100%;
}

.sirvps-load-more-wrap {
	text-align: center;
	margin: 28px 0;
}

/* ============ 评分组件 ============ */
.sirvps-stars {
	position: relative;
	display: inline-block;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 1px;
	white-space: nowrap;
}

.sirvps-stars__bg {
	color: #e2e8f0;
}

.sirvps-stars__fg {
	position: absolute;
	left: 0;
	top: 0;
	overflow: hidden;
	color: #fbbf24;
	white-space: nowrap;
}

.sirvps-stars__num {
	margin-left: 6px;
	font-weight: 700;
	color: var(--sirvps-accent);
	font-size: 13px;
}

.sirvps-score-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
}

.sirvps-score-badge i {
	font-style: normal;
}

.sirvps-score-pill {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	padding: 4px 10px;
	border-radius: 8px;
	background: rgba(37, 99, 235, .1);
	color: var(--sirvps-primary);
	font-weight: 800;
	font-size: 14px;
}

.sirvps-score-pill--lg {
	min-width: 62px;
	font-size: 22px;
	padding: 8px 14px;
	border-radius: 12px;
}

.sirvps-score-sub {
	display: block;
	font-size: 11px;
	color: #94a3b8;
	font-weight: 500;
}

.sirvps-score-circle {
	--pct: 0;
	position: relative;
	width: 86px;
	height: 86px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background:
		conic-gradient(var(--sirvps-primary) calc(var(--pct) * 1%), #e8edf5 0);
	flex: 0 0 auto;
}

.sirvps-score-circle::after {
	content: "";
	position: absolute;
	inset: 8px;
	border-radius: 50%;
	background: var(--sirvps-card);
}

.sirvps-score-circle__num {
	position: relative;
	z-index: 2;
	font-size: 24px;
	font-weight: 900;
	color: var(--sirvps-heading);
	line-height: 1;
}

.sirvps-score-circle__max {
	position: relative;
	z-index: 2;
	font-size: 11px;
	color: #94a3b8;
}

/* 评分框 */
.sirvps-rating-box {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 18px;
	box-shadow: var(--sirvps-shadow-soft);
	margin-bottom: 20px;
}

.sirvps-rating-box__total {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 14px;
	border-bottom: 1px dashed var(--sirvps-border);
}

.sirvps-rating-box__meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.sirvps-rating-box__user {
	font-size: 12px;
	color: #94a3b8;
}

.sirvps-rating-dims {
	list-style: none;
	margin: 0;
	padding: 14px 0 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sirvps-rating-dim {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr) 40px;
	align-items: center;
	gap: 10px;
	font-size: 13px;
}

.sirvps-rating-dim__label {
	color: #64748b;
}

.sirvps-rating-dim__bar {
	height: 8px;
	border-radius: 999px;
	background: #eef2f7;
	overflow: hidden;
}

.sirvps-rating-dim__bar i {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--sirvps-primary), var(--sirvps-accent));
	transition: width .8s ease;
}

.sirvps-rating-dim__val {
	font-weight: 800;
	text-align: right;
	color: var(--sirvps-heading);
}

.sirvps-mini-title {
	font-size: 15px;
	font-weight: 800;
	margin: 0 0 12px;
	padding-left: 10px;
	border-left: 4px solid var(--sirvps-primary);
}

/* 用户评分分布 */
.sirvps-user-rating {
	margin-top: 14px;
}

.sirvps-user-rating__row {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) 30px;
	gap: 8px;
	align-items: center;
	font-size: 12px;
	margin-bottom: 6px;
}

.sirvps-user-rating__bar {
	height: 7px;
	background: #eef2f7;
	border-radius: 999px;
	overflow: hidden;
}

.sirvps-user-rating__bar i {
	display: block;
	height: 100%;
	background: #fbbf24;
}

/* 独立评分条 */
.sirvps-bar {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr) 46px;
	gap: 10px;
	align-items: center;
	margin-bottom: 8px;
	font-size: 13px;
}

.sirvps-bar__track {
	height: 8px;
	background: #eef2f7;
	border-radius: 999px;
	overflow: hidden;
}

.sirvps-bar__track i {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--sirvps-primary), var(--sirvps-accent));
}

/* ============ 排行榜 ============ */
.sirvps-ranking {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 20px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-table-wrap {
	overflow-x: auto;
}

.sirvps-rank-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	min-width: 720px;
}

.sirvps-rank-table th {
	text-align: left;
	font-size: 12.5px;
	font-weight: 700;
	color: #94a3b8;
	padding: 10px 12px;
	border-bottom: 2px solid var(--sirvps-border);
	white-space: nowrap;
}

.sirvps-rank-table td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--sirvps-border);
	vertical-align: middle;
}

.sirvps-rank-row:hover {
	background: rgba(37, 99, 235, .04);
}

.sirvps-rank-row.is-choice {
	background: linear-gradient(90deg, rgba(249, 115, 22, .07), transparent);
}

.sirvps-rank-badge {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: #eef2f7;
	color: #64748b;
	font-weight: 800;
	font-size: 13px;
}

.sirvps-rank-badge--1 {
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	color: #fff;
}

.sirvps-rank-badge--2 {
	background: linear-gradient(135deg, #cbd5e1, #94a3b8);
	color: #fff;
}

.sirvps-rank-badge--3 {
	background: linear-gradient(135deg, #d8a07a, #b45309);
	color: #fff;
}

.sirvps-rank-name {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	color: var(--sirvps-heading);
}

.sirvps-rank-logo {
	width: 34px;
	height: 34px;
	border-radius: 8px;
	object-fit: contain;
	background: #f8fafc;
	border: 1px solid var(--sirvps-border);
}

.sirvps-rank-cats {
	display: block;
	margin-top: 4px;
	font-size: 12px;
}

.sirvps-rank-cats a {
	color: #94a3b8;
	margin-right: 6px;
}

.sirvps-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 6px;
	background: var(--sirvps-bg);
	color: #64748b;
}

.sirvps-tag--choice {
	background: linear-gradient(135deg, var(--sirvps-accent), #ef4444);
	color: #fff;
	margin-left: 8px;
}

.sirvps-tag--topic {
	background: linear-gradient(135deg, var(--sirvps-primary), #7c3aed);
	color: #fff;
	margin-bottom: 10px;
}

.sirvps-chip {
	display: inline-block;
	font-size: 12px;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--sirvps-bg);
	color: #64748b;
	margin-right: 4px;
}

.sirvps-chip-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.sirvps-chip-nav .sirvps-chip {
	padding: 6px 14px;
	font-weight: 600;
	cursor: pointer;
}

.sirvps-chip-nav .sirvps-chip.is-active {
	background: var(--sirvps-primary);
	color: #fff;
}

.sirvps-spec-line {
	color: #64748b;
	font-size: 13px;
}

.sirvps-rating-count {
	font-size: 12px;
	color: #94a3b8;
	margin-left: 6px;
}

.sirvps-compare-btn {
	background: none;
	border: 1px solid var(--sirvps-border);
	border-radius: 6px;
	padding: 4px 10px;
	font-size: 12px;
	cursor: pointer;
	color: #64748b;
	transition: var(--sirvps-transition);
}

.sirvps-compare-btn:hover,
.sirvps-compare-btn.is-added {
	border-color: var(--sirvps-primary);
	color: var(--sirvps-primary);
}

.sirvps-rank-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}

.sirvps-rank-filters select {
	padding: 8px 12px;
	border: 1px solid var(--sirvps-border);
	border-radius: 8px;
	background: var(--sirvps-card);
	color: var(--sirvps-text);
	max-width: 180px;
}

/* 领奖台 */
.sirvps-podium {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 24px;
}

.sirvps-podium__item {
	position: relative;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 18px;
	text-align: center;
	box-shadow: var(--sirvps-shadow-soft);
	transition: var(--sirvps-transition);
}

.sirvps-podium__item:hover {
	transform: translateY(-4px);
	box-shadow: var(--sirvps-shadow-strong);
}

.sirvps-podium__item--1 {
	border-color: #fbbf24;
	background: linear-gradient(180deg, rgba(251, 191, 36, .12), var(--sirvps-card));
}

.sirvps-podium__item--2 {
	border-color: #cbd5e1;
}

.sirvps-podium__item--3 {
	border-color: #d8a07a;
}

.sirvps-podium__crown {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
	font-weight: 900;
	box-shadow: 0 4px 12px rgba(15, 23, 42, .2);
}

.sirvps-podium__thumb {
	display: block;
	margin: 10px auto 12px;
	width: 78px;
	height: 78px;
	border-radius: 14px;
	overflow: hidden;
	background: #f1f5f9;
}

.sirvps-podium__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-podium__item h3 {
	font-size: 15px;
	margin: 8px 0;
}

/* 榜单卡片 */
.sirvps-rank-card {
	position: relative;
}

.sirvps-rank-card__no {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border-radius: 8px;
	background: rgba(15, 23, 42, .8);
	color: #fff;
	font-weight: 800;
	font-size: 13px;
}

.sirvps-rank-card.is-top .sirvps-rank-card__no {
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
}

.sirvps-rank-card__thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eef2f7;
}

.sirvps-rank-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ============ 厂商详情 ============ */
.sirvps-host-header {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 22px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 22px;
	box-shadow: var(--sirvps-shadow-soft);
	margin-bottom: 22px;
}

.sirvps-host-header__media {
	width: 120px;
	height: 120px;
	border-radius: 16px;
	overflow: hidden;
	background: #f1f5f9;
	border: 1px solid var(--sirvps-border);
}

.sirvps-host-header__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-host-header__scoreline {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin: 6px 0;
}

.sirvps-host-header__user {
	font-size: 13px;
	color: #94a3b8;
}

.sirvps-host-header__price {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 4px 0 10px;
}

.sirvps-host-header__price strong {
	font-size: 22px;
	color: var(--sirvps-accent);
}

.sirvps-host-header__price-label {
	font-size: 13px;
	color: #94a3b8;
}

.sirvps-host-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.sirvps-coupon {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: 6px;
	border: 1px dashed var(--sirvps-accent);
	color: var(--sirvps-accent);
	background: rgba(249, 115, 22, .07);
	cursor: copy;
}

.sirvps-coupon--lg {
	font-size: 14px;
	padding: 10px 16px;
}

.sirvps-host-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 24px;
	align-items: start;
}

.sirvps-host-body__side {
	position: sticky;
	top: calc(var(--sirvps-header-h) + 24px);
}

.sirvps-pros-cons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 22px 0;
}

.sirvps-pros,
.sirvps-cons {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 16px 18px;
}

.sirvps-pros {
	border-left: 4px solid #10b981;
}

.sirvps-cons {
	border-left: 4px solid #ef4444;
}

.sirvps-pros h4,
.sirvps-cons h4 {
	font-size: 14px;
	margin: 0 0 10px;
}

.sirvps-pros ul,
.sirvps-cons ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}

.sirvps-spec {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 18px;
	margin-bottom: 16px;
}

.sirvps-spec__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.sirvps-spec__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 13.5px;
}

.sirvps-spec__list li:last-child {
	border-bottom: 0;
}

.sirvps-spec__k {
	color: #94a3b8;
}

.sirvps-spec__v {
	font-weight: 600;
	color: var(--sirvps-heading);
	text-align: right;
}

.sirvps-plans {
	margin: 22px 0;
}

.sirvps-plan-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	min-width: 640px;
}

.sirvps-plan-table th {
	background: var(--sirvps-bg);
	font-size: 12.5px;
	color: #64748b;
	padding: 10px;
	text-align: left;
}

.sirvps-plan-table td {
	padding: 12px 10px;
	border-bottom: 1px solid var(--sirvps-border);
}

.sirvps-plan-price {
	color: var(--sirvps-accent);
	font-weight: 800;
}

.sirvps-disclosure {
	font-size: 12.5px;
	color: #94a3b8;
	border-top: 1px dashed var(--sirvps-border);
	padding-top: 14px;
}

/* ============ 文章详情 ============ */
.sirvps-article {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 28px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-article__header {
	margin-bottom: 18px;
}

.sirvps-article__terms {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.sirvps-article__title {
	font-size: 28px;
	font-weight: 800;
	margin: 0 0 10px;
	line-height: 1.4;
}

.sirvps-article__subtitle {
	font-size: 15px;
	color: #64748b;
	margin-bottom: 10px;
}

.sirvps-article__updated {
	font-size: 12.5px;
	color: #94a3b8;
	margin: 6px 0 0;
}

.sirvps-article__thumb {
	margin: 0 0 20px;
	border-radius: 12px;
	overflow: hidden;
}

.sirvps-content {
	font-size: 16px;
	line-height: 1.9;
	color: var(--sirvps-text);
	word-wrap: break-word;
}

.sirvps-content.is-narrow {
	max-width: 680px;
	margin: 0 auto;
}

.sirvps-content h2 {
	font-size: 22px;
	margin-top: 1.6em;
	padding-left: 12px;
	border-left: 4px solid var(--sirvps-primary);
}

.sirvps-content h3 {
	font-size: 18px;
	margin-top: 1.4em;
}

.sirvps-content h4 {
	font-size: 16px;
}

.sirvps-content p {
	margin-bottom: 1.1em;
}

.sirvps-content img {
	border-radius: 10px;
}

.sirvps-content ul,
.sirvps-content ol {
	margin-bottom: 1.1em;
}

.sirvps-content li {
	margin-bottom: .4em;
}

.sirvps-content blockquote {
	margin: 1.4em 0;
	padding: 14px 18px;
	border-left: 4px solid var(--sirvps-accent);
	background: rgba(249, 115, 22, .06);
	border-radius: 0 10px 10px 0;
}

.sirvps-content blockquote p:last-child {
	margin-bottom: 0;
}

.sirvps-content pre {
	background: #0f172a;
	color: #e2e8f0;
	padding: 16px 18px;
	border-radius: 12px;
	overflow-x: auto;
	font-size: 13.5px;
	line-height: 1.7;
}

.sirvps-content code {
	background: rgba(15, 23, 42, .06);
	padding: 2px 6px;
	border-radius: 5px;
	font-size: .9em;
}

.sirvps-content pre code {
	background: none;
	padding: 0;
	color: inherit;
}

.sirvps-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.4em 0;
	font-size: 14px;
}

.sirvps-content th,
.sirvps-content td {
	border: 1px solid var(--sirvps-border);
	padding: 10px 12px;
}

.sirvps-content th {
	background: var(--sirvps-bg);
}

.sirvps-content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.sirvps-page-links {
	margin: 20px 0;
	font-weight: 600;
}

.sirvps-toc {
	background: var(--sirvps-bg);
	border: 1px solid var(--sirvps-border);
	border-radius: 12px;
	padding: 16px 18px;
	margin: 0 0 22px;
}

.sirvps-toc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.sirvps-toc__title {
	font-weight: 800;
	font-size: 15px;
	color: var(--sirvps-heading);
}

.sirvps-toc__toggle {
	background: none;
	border: 1px solid var(--sirvps-border);
	border-radius: 6px;
	font-size: 12px;
	padding: 3px 10px;
	cursor: pointer;
	color: #64748b;
}

.sirvps-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	max-height: 380px;
	overflow-y: auto;
}

.sirvps-toc__item--h3 {
	padding-left: 16px;
	font-size: 13.5px;
}

.sirvps-toc__item--h4 {
	padding-left: 30px;
	font-size: 13px;
	color: #64748b;
}

.sirvps-toc.is-collapsed .sirvps-toc__list {
	display: none;
}

/* 分享 */
.sirvps-share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 20px 0;
	padding-top: 18px;
	border-top: 1px dashed var(--sirvps-border);
}

.sirvps-share__label {
	font-size: 13px;
	color: #94a3b8;
}

.sirvps-share__btn {
	font-size: 12.5px;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--sirvps-bg);
	color: #475569;
	border: 1px solid var(--sirvps-border);
	transition: var(--sirvps-transition);
}

.sirvps-share__btn:hover {
	background: var(--sirvps-primary);
	border-color: var(--sirvps-primary);
	color: #fff;
}

/* 关注 */
.sirvps-follow {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 14px 18px;
	background: linear-gradient(135deg, rgba(37, 99, 235, .08), rgba(249, 115, 22, .08));
	border-radius: 12px;
	margin-bottom: 20px;
	font-size: 13.5px;
}

/* 作者框 */
.sirvps-author {
	display: flex;
	gap: 16px;
	background: var(--sirvps-bg);
	border-radius: 12px;
	padding: 18px;
	margin: 20px 0;
}

.sirvps-author__avatar img {
	border-radius: 50%;
}

.sirvps-author__name {
	font-size: 16px;
	margin: 0 0 6px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.sirvps-author__desc {
	font-size: 13.5px;
	color: #64748b;
	margin: 0 0 8px;
}

.sirvps-author__stats {
	display: flex;
	gap: 16px;
	font-size: 12.5px;
	color: #94a3b8;
}

.sirvps-level-badge {
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
}

/* 上下篇 */
.sirvps-post-nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 22px 0;
}

.sirvps-post-nav__item {
	border: 1px solid var(--sirvps-border);
	border-radius: 12px;
	padding: 14px 16px;
	transition: var(--sirvps-transition);
	background: var(--sirvps-card);
}

.sirvps-post-nav__item:hover {
	border-color: var(--sirvps-primary);
	transform: translateY(-2px);
}

.sirvps-post-nav__item span {
	display: block;
	font-size: 12px;
	color: #94a3b8;
	margin-bottom: 4px;
}

.sirvps-post-nav__item b {
	font-size: 14px;
	color: var(--sirvps-heading);
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sirvps-post-nav__item.is-next {
	text-align: right;
}

/* 提示框 */
.sirvps-note {
	border-radius: 12px;
	padding: 16px 18px;
	margin: 18px 0;
	border: 1px solid var(--sirvps-border);
	background: var(--sirvps-bg);
}

.sirvps-note--info {
	border-left: 4px solid var(--sirvps-primary);
	background: rgba(37, 99, 235, .06);
}

.sirvps-note--warn {
	border-left: 4px solid #f59e0b;
	background: rgba(245, 158, 11, .08);
}

.sirvps-note--ok {
	border-left: 4px solid #10b981;
	background: rgba(16, 185, 129, .08);
}

.sirvps-note__title {
	display: block;
	margin-bottom: 6px;
}

.sirvps-note__body p:last-child {
	margin-bottom: 0;
}

/* 提示条 */
.sirvps-notice {
	padding: 14px 18px;
	border-radius: 12px;
	margin: 16px 0;
	background: var(--sirvps-bg);
	border: 1px solid var(--sirvps-border);
	font-size: 14px;
}

.sirvps-notice--ok {
	background: rgba(16, 185, 129, .08);
	border-color: rgba(16, 185, 129, .3);
	color: #047857;
}

.sirvps-notice--warn {
	background: rgba(245, 158, 11, .08);
	border-color: rgba(245, 158, 11, .3);
	color: #b45309;
}

.sirvps-notice--info {
	background: rgba(37, 99, 235, .06);
	border-color: rgba(37, 99, 235, .25);
}

.sirvps-empty {
	background: var(--sirvps-card);
	border: 1px dashed var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 40px 20px;
	text-align: center;
	color: #94a3b8;
}

/* ============ 教程页 ============ */
.sirvps-tutorial-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	padding: 14px 18px;
	background: var(--sirvps-bg);
	border-radius: 12px;
	margin-top: 14px;
}

.sirvps-tutorial-meta__item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
}

.sirvps-tutorial-meta__item i {
	font-style: normal;
	color: #94a3b8;
}

.sirvps-tutorial-meta__item b {
	color: var(--sirvps-heading);
}

.sirvps-tutorial-meta__item b.is-beginner {
	color: #10b981;
}

.sirvps-tutorial-meta__item b.is-intermediate {
	color: #f59e0b;
}

.sirvps-tutorial-meta__item b.is-advanced {
	color: #ef4444;
}

.sirvps-tutorial-body {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.sirvps-tutorial-body__toc {
	position: sticky;
	top: calc(var(--sirvps-header-h) + 24px);
}

/* ============ 专题 ============ */
.sirvps-topic-header {
	position: relative;
	border-radius: var(--sirvps-radius);
	overflow: hidden;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-topic-color, #7c3aed));
	color: #fff;
	padding: 34px;
	margin-bottom: 24px;
}

.sirvps-topic-header__media {
	position: absolute;
	inset: 0;
	opacity: .25;
}

.sirvps-topic-header__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-topic-header__body {
	position: relative;
	z-index: 2;
}

.sirvps-topic-header__title {
	color: #fff;
	font-size: 30px;
	margin: 0 0 10px;
}

.sirvps-topic-header__desc {
	font-size: 15px;
	opacity: .92;
	max-width: 720px;
}

.sirvps-topic-header__desc p:last-child {
	margin-bottom: 0;
}

.sirvps-topic-header__meta {
	font-size: 13px;
	opacity: .85;
}

.sirvps-topic-card {
	position: relative;
	display: block;
	border-radius: var(--sirvps-radius);
	overflow: hidden;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	transition: var(--sirvps-transition);
	color: var(--sirvps-heading);
}

.sirvps-topic-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sirvps-shadow-strong);
	border-color: var(--sirvps-topic-color, var(--sirvps-primary));
	color: var(--sirvps-heading);
}

.sirvps-topic-card img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.sirvps-topic-card__ph {
	display: grid;
	place-items: center;
	height: 100px;
	font-size: 34px;
	font-weight: 900;
	color: #fff;
	background: linear-gradient(135deg, var(--sirvps-topic-color, var(--sirvps-primary)), var(--sirvps-accent));
}

.sirvps-topic-card__name {
	display: block;
	padding: 12px 14px 4px;
	font-weight: 700;
	font-size: 15px;
}

.sirvps-topic-card__count {
	display: block;
	padding: 0 14px 14px;
	font-size: 12px;
	color: #94a3b8;
}

.sirvps-topic-card--lg {
	display: flex;
	flex-direction: column;
}

.sirvps-topic-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px;
}

.sirvps-topic-card__desc {
	font-size: 13px;
	color: #64748b;
}

/* ============ 表单 ============ */
.sirvps-form {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 24px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-form__row {
	margin-bottom: 16px;
}

.sirvps-form__row label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--sirvps-heading);
}

.sirvps-form input[type="text"],
.sirvps-form input[type="email"],
.sirvps-form input[type="password"],
.sirvps-form input[type="url"],
.sirvps-form input[type="number"],
.sirvps-form input[type="file"],
.sirvps-form select,
.sirvps-form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--sirvps-border);
	border-radius: 10px;
	background: var(--sirvps-bg);
	color: var(--sirvps-text);
	outline: none;
	transition: var(--sirvps-transition);
}

.sirvps-form input:focus,
.sirvps-form select:focus,
.sirvps-form textarea:focus {
	border-color: var(--sirvps-primary);
	background: var(--sirvps-card);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.sirvps-form__row--inline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-size: 13.5px;
}

.sirvps-form__tip {
	font-size: 13px;
	color: #94a3b8;
	margin: 12px 0 0;
}

.sirvps-form__message {
	font-size: 13.5px;
	margin-top: 10px;
}

.sirvps-form__message.is-error {
	color: #dc2626;
}

.sirvps-form__message.is-ok {
	color: #059669;
}

.sirvps-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.sirvps-tabpane {
	padding: 14px;
	background: var(--sirvps-bg);
	border-radius: 10px;
	margin-bottom: 16px;
}

.sirvps-ai-draft {
	display: flex;
	gap: 8px;
	align-items: center;
	margin-bottom: 16px;
	padding: 14px;
	background: linear-gradient(135deg, rgba(37, 99, 235, .07), rgba(124, 58, 237, .07));
	border-radius: 12px;
}

.sirvps-ai-draft__topic {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--sirvps-border);
	border-radius: 10px;
	background: var(--sirvps-card);
}

/* 登录/注册切换 */
.sirvps-auth {
	max-width: 460px;
	margin: 0 auto;
}

.sirvps-auth__title {
	font-size: 18px;
	margin: 0 0 14px;
}

/* ============ 会员中心 ============ */
.sirvps-account-header {
	display: flex;
	align-items: center;
	gap: 20px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 22px;
	box-shadow: var(--sirvps-shadow-soft);
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.sirvps-account-header__avatar img {
	border-radius: 50%;
}

.sirvps-account-header__body {
	flex: 1;
	min-width: 220px;
}

.sirvps-account-header__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 13px;
	color: #64748b;
}

.sirvps-account-header__progress {
	margin-top: 10px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-width: 320px;
}

.sirvps-account-header__progress em {
	font-size: 12px;
	color: #94a3b8;
	font-style: normal;
}

.sirvps-account-header__actions {
	display: flex;
	gap: 10px;
}

.sirvps-account__nav {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--sirvps-border);
	padding-bottom: 12px;
}

.sirvps-account__tab {
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 600;
	color: #64748b;
	background: var(--sirvps-bg);
}

.sirvps-account__tab.is-active {
	background: var(--sirvps-primary);
	color: #fff;
}

.sirvps-account__content {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 22px;
}

.sirvps-user-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.sirvps-user-table th,
.sirvps-user-table td {
	padding: 10px;
	border-bottom: 1px solid var(--sirvps-border);
	text-align: left;
}

.sirvps-user-table th {
	font-size: 12.5px;
	color: #94a3b8;
}

.sirvps-status {
	font-size: 11.5px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 6px;
	background: var(--sirvps-bg);
	color: #64748b;
}

.sirvps-status--ok {
	background: rgba(16, 185, 129, .12);
	color: #047857;
}

.sirvps-status--warn {
	background: rgba(245, 158, 11, .14);
	color: #b45309;
}

.sirvps-user-comments {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sirvps-user-comments li {
	padding: 12px 0;
	border-bottom: 1px dashed var(--sirvps-border);
}

.sirvps-user-comments__time {
	font-size: 12px;
	color: #94a3b8;
	margin-left: 8px;
}

.sirvps-user-comments p {
	margin: 6px 0 0;
	font-size: 13.5px;
	color: #64748b;
}

.sirvps-points-card__level {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.sirvps-points-card__next {
	font-size: 12.5px;
	color: #94a3b8;
}

.sirvps-points-log {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sirvps-points-log li {
	display: flex;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 13.5px;
}

.sirvps-points-log__val {
	font-weight: 800;
	color: #10b981;
	min-width: 46px;
}

.sirvps-points-log__time {
	margin-left: auto;
	color: #94a3b8;
	font-size: 12px;
}

/* ============ 对比 ============ */
.sirvps-compare-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	min-width: 680px;
}

.sirvps-compare-table th,
.sirvps-compare-table td {
	border: 1px solid var(--sirvps-border);
	padding: 12px;
	text-align: left;
}

.sirvps-compare-table thead th {
	background: var(--sirvps-bg);
}

.sirvps-compare-list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13px;
}

.sirvps-compare-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 62px;
	background: var(--sirvps-card);
	border-top: 1px solid var(--sirvps-border);
	box-shadow: 0 -8px 24px rgba(15, 23, 42, .1);
	padding: 12px 0;
	z-index: 800;
}

.sirvps-compare-bar .sirvps-container {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.sirvps-compare-bar__label {
	font-weight: 800;
	font-size: 13px;
}

.sirvps-compare-bar__list {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
	flex-wrap: wrap;
}

.sirvps-compare-bar__list li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--sirvps-bg);
	border-radius: 999px;
	padding: 4px 8px 4px 12px;
	font-size: 13px;
}

.sirvps-compare-bar__list button {
	background: none;
	border: 0;
	cursor: pointer;
	color: #94a3b8;
	font-size: 16px;
	line-height: 1;
}

.sirvps-compare-bar__clear {
	background: none;
	border: 0;
	color: #94a3b8;
	cursor: pointer;
	font-size: 13px;
	text-decoration: underline;
}

/* ============ 小工具内容 ============ */
.sirvps-widget-rank {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: rank;
}

.sirvps-widget-rank__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 14px;
}

.sirvps-widget-rank__item:last-child {
	border-bottom: 0;
}

.sirvps-widget-rank__no {
	width: 22px;
	height: 22px;
	display: grid;
	place-items: center;
	border-radius: 6px;
	background: #eef2f7;
	color: #64748b;
	font-size: 12px;
	font-weight: 800;
	flex: 0 0 auto;
}

.sirvps-widget-rank__item.is-top .sirvps-widget-rank__no {
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	color: #fff;
}

.sirvps-widget-rank__name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--sirvps-heading);
	font-weight: 600;
}

.sirvps-widget-rank__score {
	font-weight: 800;
	color: var(--sirvps-primary);
}

.sirvps-widget-rank__price {
	font-size: 12px;
	color: var(--sirvps-accent);
}

.sirvps-host-mini {
	display: flex;
	gap: 12px;
	padding: 12px;
	border: 1px solid var(--sirvps-border);
	border-radius: 12px;
	margin-bottom: 12px;
	background: var(--sirvps-bg);
}

.sirvps-host-mini__thumb {
	width: 62px;
	height: 62px;
	border-radius: 10px;
	overflow: hidden;
	flex: 0 0 auto;
	background: #fff;
}

.sirvps-host-mini__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sirvps-host-mini__body {
	min-width: 0;
}

.sirvps-host-mini__body h4 {
	font-size: 14px;
	margin: 0 0 6px;
}

.sirvps-host-mini__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	margin-bottom: 6px;
}

.sirvps-host-mini__pros {
	font-size: 12px;
	color: #64748b;
	margin: 0 0 8px;
}

.sirvps-widget-posts {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sirvps-widget-post a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 14px;
}

.sirvps-widget-post:last-child a {
	border-bottom: 0;
}

.sirvps-widget-post__no {
	width: 20px;
	height: 20px;
	display: grid;
	place-items: center;
	border-radius: 5px;
	background: #eef2f7;
	font-size: 11px;
	font-weight: 800;
	color: #64748b;
	flex: 0 0 auto;
}

.sirvps-widget-post.is-hot .sirvps-widget-post__no {
	background: linear-gradient(135deg, var(--sirvps-accent), #ef4444);
	color: #fff;
}

.sirvps-widget-post__title {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--sirvps-heading);
}

.sirvps-widget-post__meta {
	font-size: 11px;
	color: #94a3b8;
	white-space: nowrap;
}

.sirvps-widget-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sirvps-widget-list a {
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 9px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 14px;
}

.sirvps-widget-list img {
	width: 72px;
	height: 54px;
	object-fit: cover;
	border-radius: 8px;
	flex: 0 0 auto;
}

.sirvps-widget-list__title {
	flex: 1;
	min-width: 0;
	color: var(--sirvps-heading);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sirvps-widget-list__meta {
	font-size: 11px;
	color: #94a3b8;
	white-space: nowrap;
}

.sirvps-widget-deals {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sirvps-widget-deals li a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px 0;
	border-bottom: 1px dashed var(--sirvps-border);
	font-size: 14px;
}

.sirvps-widget-deals__title {
	color: var(--sirvps-heading);
	font-weight: 600;
}

.sirvps-widget-deals__exp {
	font-size: 11.5px;
	color: #94a3b8;
}

.sirvps-widget-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.sirvps-social-icons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sirvps-social {
	font-size: 12.5px;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--sirvps-bg);
	color: #475569;
}

.sirvps-social:hover {
	background: var(--sirvps-primary);
	color: #fff;
}

.sirvps-subscribe__form {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.sirvps-subscribe__form input {
	flex: 1;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid var(--sirvps-border);
	border-radius: 10px;
	background: var(--sirvps-bg);
}

.sirvps-subscribe__msg {
	flex: 0 0 100%;
	font-size: 12.5px;
	color: var(--sirvps-primary);
}

.sirvps-widget-profile__img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 12px;
}

.sirvps-widget-profile__stats {
	display: flex;
	gap: 14px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}

.sirvps-widget-profile__stats li {
	display: flex;
	flex-direction: column;
	font-size: 12px;
	color: #94a3b8;
}

.sirvps-widget-profile__stats b {
	font-size: 17px;
	color: var(--sirvps-heading);
}

/* ============ 评论 ============ */
.sirvps-comments {
	margin-top: 32px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 24px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-comment-list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.sirvps-comment-list .children {
	list-style: none;
	margin: 0 0 0 40px;
	padding: 0;
}

.sirvps-comment__body {
	display: flex;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px dashed var(--sirvps-border);
}

.sirvps-comment__avatar img {
	border-radius: 50%;
}

.sirvps-comment__content {
	flex: 1;
	min-width: 0;
}

.sirvps-comment__head {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 13.5px;
	margin-bottom: 6px;
}

.sirvps-comment__time {
	font-size: 12px;
	color: #94a3b8;
}

.sirvps-comment__rating {
	font-size: 12px;
}

.sirvps-comment__text {
	font-size: 14.5px;
}

.sirvps-comment__text p:last-child {
	margin-bottom: 0;
}

.sirvps-comment__foot {
	font-size: 12.5px;
	margin-top: 8px;
}

.sirvps-comment-reply-title {
	font-size: 17px;
	margin-bottom: 14px;
}

.sirvps-comment-notes {
	font-size: 13px;
	color: #94a3b8;
	margin: 0 0 12px;
}

.sirvps-comment-rating {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}

.sirvps-comment-rating__stars {
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
}

.sirvps-comment-rating__stars input {
	display: none;
}

.sirvps-comment-rating__stars label {
	font-size: 22px;
	color: #e2e8f0;
	cursor: pointer;
	transition: var(--sirvps-transition);
	margin: 0;
}

.sirvps-comment-rating__stars input:checked ~ label,
.sirvps-comment-rating__stars label:hover,
.sirvps-comment-rating__stars label:hover ~ label {
	color: #fbbf24;
}

/* ============ 分页 ============ */
.sirvps-pagination {
	margin: 30px 0 0;
}

.sirvps-pagination ul {
	display: flex;
	justify-content: center;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.sirvps-page-item a,
.sirvps-page-item span {
	display: grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border-radius: 10px;
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	color: var(--sirvps-text);
	font-weight: 600;
	font-size: 14px;
}

.sirvps-page-item.is-active span,
.sirvps-page-item a:hover {
	background: var(--sirvps-primary);
	border-color: var(--sirvps-primary);
	color: #fff;
}

/* ============ 归档头 ============ */
.sirvps-archive-header {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 24px;
	margin-bottom: 22px;
	box-shadow: var(--sirvps-shadow-soft);
}

.sirvps-archive-title {
	font-size: 24px;
	margin: 0 0 8px;
}

.sirvps-archive-desc {
	font-size: 14px;
	color: #64748b;
	margin: 0;
}

.sirvps-archive-desc p:last-child {
	margin-bottom: 0;
}

.sirvps-archive-header--hosts {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	background: linear-gradient(135deg, rgba(37, 99, 235, .08), rgba(249, 115, 22, .08));
	flex-wrap: wrap;
}

.sirvps-author-header {
	display: flex;
	align-items: center;
	gap: 16px;
}

.sirvps-author-header img {
	border-radius: 50%;
}

/* ============ 404 ============ */
.sirvps-404 {
	background: var(--sirvps-card);
	border: 1px solid var(--sirvps-border);
	border-radius: var(--sirvps-radius);
	padding: 60px 24px;
	text-align: center;
}

.sirvps-404__code {
	font-size: 84px;
	font-weight: 900;
	line-height: 1;
	background: linear-gradient(135deg, var(--sirvps-primary), var(--sirvps-accent));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.sirvps-404__title {
	font-size: 24px;
	margin: 12px 0;
}

.sirvps-404__desc {
	color: #64748b;
	margin-bottom: 20px;
}

.sirvps-404 .sirvps-search-form {
	justify-content: center;
	max-width: 460px;
	margin: 0 auto 18px;
}

/* ============ 页脚 ============ */
.sirvps-footer {
	background: var(--sirvps-secondary);
	color: #cbd5e1;
	margin-top: 30px;
	padding: 44px 0 0;
}

.sirvps-footer--light {
	background: #f8fafc;
	color: #475569;
}

.sirvps-footer--primary {
	background: linear-gradient(135deg, var(--sirvps-primary), #7c3aed);
	color: rgba(255, 255, 255, .85);
}

.sirvps-footer-cols {
	display: grid;
	gap: 26px;
	padding-bottom: 34px;
}

.sirvps-footer-cols--1 { grid-template-columns: 1fr; }
.sirvps-footer-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sirvps-footer-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sirvps-footer-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.sirvps-footer-col .sirvps-widget {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	color: inherit;
}

.sirvps-footer-col .widget-title {
	color: #fff;
	border-color: rgba(255, 255, 255, .3);
}

.sirvps-footer-col a {
	color: rgba(255, 255, 255, .78);
}

.sirvps-footer-col a:hover {
	color: #fff;
}

.sirvps-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.sirvps-footer__logo {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 900;
	font-size: 20px;
	color: #fff;
	margin-bottom: 8px;
}

.sirvps-footer__desc {
	font-size: 13.5px;
	max-width: 420px;
	margin-bottom: 14px;
	opacity: .8;
}

.sirvps-footer__menu {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13.5px;
}

.sirvps-footer__copyright {
	padding: 16px 0 22px;
	border-top: 1px solid rgba(255, 255, 255, .1);
	font-size: 12.5px;
	opacity: .75;
	text-align: center;
}

/* ============ 移动端工具条 / 返回顶部 ============ */
.sirvps-back-top {
	position: fixed;
	right: 20px;
	bottom: 78px;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	background: var(--sirvps-primary);
	color: #fff;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(15, 23, 42, .22);
	opacity: 0;
	visibility: hidden;
	transition: var(--sirvps-transition);
	z-index: 700;
}

.sirvps-back-top.is-visible {
	opacity: 1;
	visibility: visible;
}

.sirvps-mobile-bar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--sirvps-card);
	border-top: 1px solid var(--sirvps-border);
	z-index: 850;
	padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
	box-shadow: 0 -6px 20px rgba(15, 23, 42, .08);
}

.sirvps-mobile-bar a {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	font-size: 11px;
	color: #64748b;
	padding: 4px 0;
}

.sirvps-mobile-bar a .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

.sirvps-mobile-bar a.is-active,
.sirvps-mobile-bar a:hover {
	color: var(--sirvps-primary);
}

.sirvps-mobile-bar i {
	font-style: normal;
}

.sirvps-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--sirvps-secondary);
	color: #fff;
	z-index: 1000;
	padding: 14px 0;
	font-size: 13.5px;
}

.sirvps-cookie .sirvps-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.sirvps-cookie p {
	margin: 0;
}

.sirvps-cookie button {
	background: var(--sirvps-primary);
	border: 0;
	color: #fff;
	padding: 8px 18px;
	border-radius: 8px;
	font-weight: 700;
	cursor: pointer;
}

/* ============ 预加载 / 动效 ============ */
.sirvps-preloader {
	position: fixed;
	inset: 0;
	background: var(--sirvps-bg);
	display: grid;
	place-items: center;
	z-index: 2000;
}

.sirvps-preloader span {
	width: 44px;
	height: 44px;
	border: 3px solid var(--sirvps-border);
	border-top-color: var(--sirvps-primary);
	border-radius: 50%;
	animation: sirvps-spin .8s linear infinite;
}

@keyframes sirvps-spin {
	to { transform: rotate(360deg); }
}

[data-animate] {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .5s ease, transform .5s ease;
}

[data-animate].is-in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	[data-animate] {
		opacity: 1;
		transform: none;
	}
	.sirvps-ticker__list {
		animation: none;
	}
}

/* ============ 深色模式 ============ */
@media (prefers-color-scheme: dark) {
	html[data-theme-mode="auto"] {
		--sirvps-bg: #0b1120;
		--sirvps-card: #131c31;
		--sirvps-border: #24304a;
		--sirvps-text: #cbd5e1;
		--sirvps-heading: #f1f5f9;
		--sirvps-secondary: #0b1120;
	}
}

html[data-theme-mode="on"],
html.is-dark {
	--sirvps-bg: #0b1120;
	--sirvps-card: #131c31;
	--sirvps-border: #24304a;
	--sirvps-text: #cbd5e1;
	--sirvps-heading: #f1f5f9;
	--sirvps-secondary: #0b1120;
}

html.is-dark .sirvps-header {
	background: var(--sirvps-card);
	border-color: var(--sirvps-border);
}

html.is-dark .sirvps-stars__bg {
	color: #334155;
}

html.is-dark .sirvps-content pre {
	background: #0f172a;
}

/* ============ 响应式 ============ */
@media (min-width: 640px) {
	.sirvps-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sirvps-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sirvps-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
	.sirvps-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sirvps-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
	.sirvps-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 平板：三栏 → 内容 + 右栏 */
@media (max-width: 1200px) {
	.sirvps-shell--three {
		grid-template-columns: minmax(0, 8fr) minmax(260px, 4fr);
	}

	.sirvps-shell--three .sirvps-sidebar--left {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.sirvps-shell--three .sirvps-sidebar--left .sirvps-sidebar__inner {
		position: static;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
		align-items: start;
	}

	.sirvps-host-body {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-host-body__side {
		position: static;
	}

	.sirvps-tutorial-body {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-tutorial-body__toc {
		position: static;
	}
}

/* 手机：全部单栏 */
@media (max-width: 992px) {
	.sirvps-shell,
	.sirvps-shell--three,
	.sirvps-shell--left,
	.sirvps-shell--right {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-shell--three .sirvps-sidebar--left,
	.sirvps-shell--three .sirvps-sidebar--right,
	.sirvps-shell--left .sirvps-sidebar--left,
	.sirvps-shell--right .sirvps-sidebar--right {
		grid-column: auto;
		grid-row: auto;
	}

	.sirvps-shell--three .sirvps-sidebar--left .sirvps-sidebar__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-sidebar__inner {
		position: static;
	}

	.sirvps-nav--primary {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: 280px;
		background: var(--sirvps-card);
		border-right: 1px solid var(--sirvps-border);
		padding: 80px 18px 24px;
		overflow-y: auto;
		transform: translateX(-100%);
		transition: transform var(--sirvps-transition);
		z-index: 1100;
		box-shadow: var(--sirvps-shadow-strong);
	}

	.sirvps-nav--primary.is-open {
		transform: none;
	}

	.sirvps-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
	}

	.sirvps-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding-left: 12px;
		display: none;
	}

	.sirvps-menu li.is-open > .sub-menu {
		display: block;
	}

	.sirvps-menu-toggle {
		display: flex;
	}

	.sirvps-header__actions .sirvps-member-btn .sirvps-member-btn__name,
	.sirvps-header__cta {
		display: none;
	}

	.sirvps-hero__link {
		height: 340px;
	}

	.sirvps-hero__content {
		padding: 24px;
	}

	.sirvps-hero__title {
		font-size: 22px;
	}

	.sirvps-post {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-post__media {
		aspect-ratio: 16 / 9;
	}

	.sirvps-article {
		padding: 18px;
	}

	.sirvps-article__title {
		font-size: 22px;
	}

	.sirvps-pros-cons {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-post-nav {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-post-nav__item.is-next {
		text-align: left;
	}

	.sirvps-podium {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-host-header {
		grid-template-columns: minmax(0, 1fr);
		text-align: left;
	}

	.sirvps-form__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-footer-cols--3,
	.sirvps-footer-cols--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sirvps-mobile-bar {
		display: flex;
	}

	.sirvps-ad--mobile {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 58px;
		z-index: 800;
		margin: 0;
		background: var(--sirvps-card);
		padding: 6px;
	}

	body {
		padding-bottom: env(safe-area-inset-bottom);
	}

	.sirvps-content {
		font-size: 15.5px;
	}
}

@media (max-width: 640px) {
	:root {
		--sirvps-gutter: 16px;
	}

	.sirvps-footer-cols--2,
	.sirvps-footer-cols--3,
	.sirvps-footer-cols--4 {
		grid-template-columns: minmax(0, 1fr);
	}

	.sirvps-archive-header,
	.sirvps-ranking,
	.sirvps-comments {
		padding: 16px;
	}

	.sirvps-topic-header {
		padding: 22px;
	}

	.sirvps-topic-header__title {
		font-size: 22px;
	}

	.sirvps-hero__link {
		height: 280px;
	}

	.sirvps-hero__nav {
		right: 12px;
		bottom: 12px;
	}

	.sirvps-author {
		flex-direction: column;
		gap: 10px;
	}

	.sirvps-account-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.sirvps-compare-bar {
		bottom: 58px;
	}

	.sirvps-back-top {
		bottom: 116px;
		right: 12px;
	}
}
