/* ============================================================
   金玉支付 · 前台设计系统（作用域 .jy-pay）
   ─────────────────────────────────────────────────────────
   设计语言与后台面板同源：金 / 蓝双主色、柔和圆角、克制动效。
   与后台的差异（有意为之）：
     ① 字体继承站点主题（font-family: inherit），不与博客割裂；
     ② 颜色自动跟随阅读环境：默认浅色，系统深色时自动切深色，
        主题亦可手动指定 .jy-pay--dark / .jy-pay--light；
     ③ 所有尺寸为响应式，窄屏下表格降级为卡片。

   ── 令牌约定（与 admin.css 一致，便于跨端协作）───────
   颜色 / 圆角 / 阴影 / 动效一律引用 CSS 变量，禁止写死色值；
   新增主题相关变量必须同时给出浅色与深色两份取值。
   ─────────────────────────────────────────────────────────
   ============================================================ */

.jy-pay {
	/* -- 品牌（固定，不随主题） -- */
	--jy-gold-1: #f4d58d;
	--jy-gold-2: #d4af37;
	--jy-gold-3: #b8860b;
	--jy-gold-ink: #3a2c07;

	/* -- 强调色 -- */
	--jy-accent: #1677ff;
	--jy-accent-strong: #0958d9;
	--jy-accent-soft: #eaf2ff;
	--jy-focus-ring: rgba(22, 119, 255, .18);

	/* -- 语义状态色 -- */
	--jy-ok: #059669;
	--jy-ok-bg: #e7f6ef;
	--jy-warn: #b45309;
	--jy-warn-bg: #fdf3e3;
	--jy-err: #dc2626;
	--jy-err-bg: #fdecec;

	/* -- 表面 -- */
	--jy-card-bg: #ffffff;
	--jy-card-border: #e8edf4;
	--jy-soft: #f7f9fc;
	--jy-soft-2: #eef2f7;
	--jy-line: #eef2f7;
	--jy-page-bg: #f4f6f9;
	--jy-gold-line: linear-gradient(90deg, var(--jy-gold-1), var(--jy-gold-2), var(--jy-gold-1));

	/* -- 文字 -- */
	--jy-text: #0f172a;
	--jy-text-2: #475569;
	--jy-text-3: #94a3b8;

	/* -- 输入控件 -- */
	--jy-input-bg: #ffffff;
	--jy-input-border: #d8e0ea;
	--jy-input-text: #0f172a;

	/* -- 圆角 -- */
	--jy-r-lg: 16px;
	--jy-r-md: 12px;
	--jy-r-sm: 10px;
	--jy-r-pill: 999px;

	/* -- 阴影 -- */
	--jy-shadow: 0 12px 32px rgba(15, 23, 42, .07);
	--jy-shadow-sm: 0 1px 3px rgba(15, 23, 42, .06);

	/* -- 动效 -- */
	--jy-dur: .22s;
	--jy-ease: cubic-bezier(.4, 0, .2, 1);

	font-family: inherit;
	font-size: 15px;
	line-height: 1.65;
	color: var(--jy-text);
	text-align: left;
}

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

/* 深色：跟随系统 */
@media (prefers-color-scheme: dark) {
	.jy-pay:not(.jy-pay--light) {
		--jy-card-bg: #1b2738;
		--jy-card-border: rgba(255, 255, 255, .09);
		--jy-soft: #202e42;
		--jy-soft-2: #26364d;
		--jy-line: rgba(255, 255, 255, .09);
		--jy-page-bg: #0f172a;
		--jy-text: #e8eef7;
		--jy-text-2: #a9b6c8;
		--jy-text-3: #7b8ba1;
		--jy-input-bg: #1a2536;
		--jy-input-border: rgba(255, 255, 255, .16);
		--jy-input-text: #e8eef7;
		--jy-accent-soft: rgba(22, 119, 255, .16);
		--jy-focus-ring: rgba(88, 166, 255, .26);
		--jy-ok-bg: rgba(16, 185, 129, .16);
		--jy-warn-bg: rgba(245, 158, 11, .16);
		--jy-err-bg: rgba(239, 68, 68, .16);
		--jy-shadow: 0 14px 36px rgba(0, 0, 0, .35);
		--jy-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);
	}
}

/* 深色：主题手动指定 */
.jy-pay--dark {
	--jy-card-bg: #1b2738;
	--jy-card-border: rgba(255, 255, 255, .09);
	--jy-soft: #202e42;
	--jy-soft-2: #26364d;
	--jy-line: rgba(255, 255, 255, .09);
	--jy-page-bg: #0f172a;
	--jy-text: #e8eef7;
	--jy-text-2: #a9b6c8;
	--jy-text-3: #7b8ba1;
	--jy-input-bg: #1a2536;
	--jy-input-border: rgba(255, 255, 255, .16);
	--jy-input-text: #e8eef7;
	--jy-accent-soft: rgba(22, 119, 255, .16);
	--jy-ok-bg: rgba(16, 185, 129, .16);
	--jy-warn-bg: rgba(245, 158, 11, .16);
	--jy-err-bg: rgba(239, 68, 68, .16);
	--jy-shadow: 0 14px 36px rgba(0, 0, 0, .35);
}

/* ============================= 独立整页（结果页 / 跳转页） ============================= */
.jy-pay-page {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	background: var(--jy-page-bg);
}
.jy-pay-page .jy-card { width: 100%; max-width: 460px; text-align: center; }

/* ============================= 卡片 ============================= */
.jy-card {
	position: relative;
	margin: 22px 0;
	padding: 22px 24px;
	background: var(--jy-card-bg);
	border: 1px solid var(--jy-card-border);
	border-radius: var(--jy-r-lg);
	box-shadow: var(--jy-shadow);
	overflow: hidden;
}
/* 品牌金细线：卡片的克制点缀 */
.jy-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 2px;
	background: var(--jy-gold-line);
	opacity: .85;
}
.jy-card--plain::before { display: none; }
.jy-card--flush { padding: 0; }
.jy-card--narrow { max-width: 460px; }

.jy-card__head { margin: 0 0 16px; }
.jy-card__title {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--jy-text);
	display: flex;
	align-items: center;
	gap: 9px;
}
.jy-card__sub { margin: 6px 0 0; font-size: 13.5px; color: var(--jy-text-2); }
.jy-card__foot {
	margin: 18px -24px -22px;
	padding: 13px 24px;
	background: var(--jy-soft);
	border-top: 1px solid var(--jy-line);
	font-size: 13px;
	color: var(--jy-text-2);
}

/* ============================= 价格 ============================= */
.jy-price { display: flex; align-items: baseline; gap: 4px; color: var(--jy-text); }
.jy-price__cur { font-size: 15px; font-weight: 600; }
.jy-price__num {
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -.01em;
	font-variant-numeric: tabular-nums;
}
.jy-price__unit { font-size: 13px; color: var(--jy-text-3); }
.jy-price--lg .jy-price__num { font-size: 32px; }
.jy-price__strike {
	font-size: 13px;
	color: var(--jy-text-3);
	text-decoration: line-through;
	margin-left: 6px;
	font-variant-numeric: tabular-nums;
}

/* ============================= 表单 ============================= */
.jy-field { margin: 0 0 14px; }
.jy-label {
	display: block;
	margin: 0 0 7px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--jy-text-2);
}
.jy-label__opt { font-weight: 400; color: var(--jy-text-3); }

.jy-input {
	width: 100%;
	padding: 11px 13px;
	font-family: inherit;
	font-size: 15px;
	color: var(--jy-input-text);
	background: var(--jy-input-bg);
	border: 1px solid var(--jy-input-border);
	border-radius: var(--jy-r-sm);
	transition: border-color var(--jy-dur) var(--jy-ease), box-shadow var(--jy-dur) var(--jy-ease);
}
.jy-input::placeholder { color: var(--jy-text-3); }
.jy-input:focus {
	outline: none;
	border-color: var(--jy-accent);
	box-shadow: 0 0 0 3px var(--jy-focus-ring);
}

/* 带前缀（¥ 符号）的输入 */
.jy-affix {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--jy-input-border);
	border-radius: var(--jy-r-sm);
	background: var(--jy-input-bg);
	overflow: hidden;
	transition: border-color var(--jy-dur) var(--jy-ease), box-shadow var(--jy-dur) var(--jy-ease);
}
.jy-affix:focus-within {
	border-color: var(--jy-accent);
	box-shadow: 0 0 0 3px var(--jy-focus-ring);
}
.jy-affix__sign {
	display: flex;
	align-items: center;
	padding: 0 12px;
	font-size: 15px;
	font-weight: 600;
	color: var(--jy-text-2);
	background: var(--jy-soft);
	border-right: 1px solid var(--jy-input-border);
}
.jy-affix .jy-input {
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: 18px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.jy-affix .jy-input:focus { box-shadow: none; }
/* 去掉数字输入的上下箭头，避免破坏排版 */
.jy-pay input[type=number]::-webkit-outer-spin-button,
.jy-pay input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.jy-pay input[type=number] { -moz-appearance: textfield; appearance: textfield; }

.jy-hint { margin: 7px 0 0; font-size: 12.5px; color: var(--jy-text-3); }
.jy-hint .jy-ico { vertical-align: -2.5px; margin-right: 3px; }

/* 卡片标题图标：品牌金点缀，与后台面板的视觉语言一致 */
.jy-card__title .jy-ico { color: var(--jy-gold-2); flex: none; }
.jy-btn .jy-ico,
.jy-alert .jy-ico,
.jy-empty .jy-ico { flex: none; }

/* 内容预览（付费墙）：左侧金色细线的引用块 */
.jy-preview {
	margin: 0 0 16px;
	padding: 12px 15px;
	font-size: 14px;
	line-height: 1.8;
	color: var(--jy-text-2);
	background: var(--jy-soft);
	border-radius: var(--jy-r-sm);
	border-left: 3px solid var(--jy-gold-2);
}

/* ============================= 按钮 ============================= */
.jy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 11px 22px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	color: #fff;
	background: var(--jy-accent);
	border: 1px solid transparent;
	border-radius: var(--jy-r-sm);
	cursor: pointer;
	text-decoration: none;
	transition: background var(--jy-dur) var(--jy-ease), transform .12s var(--jy-ease), box-shadow var(--jy-dur) var(--jy-ease);
}
.jy-btn:hover { background: var(--jy-accent-strong); color: #fff; }
.jy-btn:active { transform: translateY(1px); }
.jy-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--jy-focus-ring); }

.jy-btn--block { display: flex; width: 100%; }
.jy-btn--lg { padding: 14px 26px; font-size: 16px; }

.jy-btn--ghost {
	color: var(--jy-text-2);
	background: transparent;
	border-color: var(--jy-input-border);
}
.jy-btn--ghost:hover { color: var(--jy-text); background: var(--jy-soft); }

.jy-btn--gold {
	color: var(--jy-gold-ink);
	background: linear-gradient(135deg, var(--jy-gold-1), var(--jy-gold-2));
	border-color: transparent;
	box-shadow: 0 6px 16px rgba(212, 175, 55, .28);
}
.jy-btn--gold:hover { filter: brightness(1.04); color: var(--jy-gold-ink); }

.jy-btn[disabled],
.jy-btn.is-loading { cursor: default; opacity: .72; }
.jy-btn.is-loading { pointer-events: none; }
.jy-btn__spin {
	width: 15px;
	height: 15px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: jy-spin .7s linear infinite;
	flex: none;
}
.jy-btn--ghost .jy-btn__spin { border-color: var(--jy-text-3); border-top-color: var(--jy-text-2); }
.jy-btn--gold .jy-btn__spin { border-color: rgba(58, 44, 7, .35); border-top-color: var(--jy-gold-ink); }

/* ============================= 优惠码 ============================= */
.jy-coupon { margin: 0 0 14px; }
.jy-coupon__row { display: flex; gap: 8px; }
.jy-coupon__row .jy-input { letter-spacing: .06em; text-transform: uppercase; }
.jy-coupon__toggle {
	padding: 0;
	font-family: inherit;
	font-size: 13px;
	color: var(--jy-accent);
	background: none;
	border: 0;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.jy-coupon__msg {
	display: none;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	padding: 8px 12px;
	font-size: 13px;
	border-radius: var(--jy-r-sm);
	animation: jy-fade-up .24s var(--jy-ease) both;
}
.jy-coupon__msg.is-on { display: flex; }
.jy-coupon__msg.ok { color: var(--jy-ok); background: var(--jy-ok-bg); }
.jy-coupon__msg.err { color: var(--jy-err); background: var(--jy-err-bg); }
.jy-coupon__msg--wait { color: var(--jy-text-2); background: var(--jy-soft); }
.jy-coupon__msg b { font-variant-numeric: tabular-nums; }

/* ============================= 徽章 ============================= */
.jy-tag {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.7;
	border-radius: var(--jy-r-pill);
	white-space: nowrap;
}
.jy-tag--paid { color: var(--jy-ok); background: var(--jy-ok-bg); }
.jy-tag--pending { color: var(--jy-warn); background: var(--jy-warn-bg); }
.jy-tag--closed { color: var(--jy-text-3); background: var(--jy-soft-2); }
.jy-tag--refunded { color: var(--jy-err); background: var(--jy-err-bg); }
.jy-tag--gold { color: var(--jy-gold-ink); background: linear-gradient(135deg, var(--jy-gold-1), var(--jy-gold-2)); }

/* ============================= 提示条 ============================= */
.jy-alert {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 14px;
	padding: 12px 14px;
	font-size: 13.5px;
	border-radius: var(--jy-r-md);
	border: 1px solid transparent;
}
.jy-alert__ico { flex: none; margin-top: 1px; }
.jy-alert--info { color: var(--jy-text-2); background: var(--jy-soft); border-color: var(--jy-line); }
.jy-alert--ok { color: var(--jy-ok); background: var(--jy-ok-bg); }
.jy-alert--warn { color: var(--jy-warn); background: var(--jy-warn-bg); }
.jy-alert--err { color: var(--jy-err); background: var(--jy-err-bg); }

/* ============================= 打赏金额快选 ============================= */
.jy-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.jy-chip {
	padding: 7px 16px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	color: var(--jy-text-2);
	background: var(--jy-soft);
	border: 1px solid var(--jy-input-border);
	border-radius: var(--jy-r-pill);
	cursor: pointer;
	transition: all var(--jy-dur) var(--jy-ease);
	font-variant-numeric: tabular-nums;
}
.jy-chip:hover { border-color: var(--jy-accent); color: var(--jy-accent); }
.jy-chip.is-active {
	color: var(--jy-accent);
	background: var(--jy-accent-soft);
	border-color: var(--jy-accent);
}

/* ============================= 订单表格 / 卡片 ============================= */
.jy-table-wrap { margin: 0; overflow-x: auto; }
.jy-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.jy-table th,
.jy-table td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid var(--jy-line);
	vertical-align: middle;
}
.jy-table th {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--jy-text-3);
	background: var(--jy-soft);
	white-space: nowrap;
}
.jy-table tbody tr:last-child td { border-bottom: 0; }
.jy-table tbody tr { transition: background var(--jy-dur) var(--jy-ease); }
.jy-table tbody tr:hover { background: var(--jy-soft); }
.jy-table .jy-mono {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12.5px;
	color: var(--jy-text-2);
}
.jy-table .jy-num { font-variant-numeric: tabular-nums; font-weight: 500; }
.jy-table__muted { color: var(--jy-text-3); }

/* 移动端：表格 → 卡片（由 .jy-table--cards 触发） */
.jy-order-list { display: none; }
.jy-order {
	padding: 14px 16px;
	border-bottom: 1px solid var(--jy-line);
}
.jy-order:last-child { border-bottom: 0; }
.jy-order__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.jy-order__name { font-weight: 500; color: var(--jy-text); }
.jy-order__row {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin-top: 6px;
	font-size: 13px;
	color: var(--jy-text-2);
}
.jy-order__no {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	color: var(--jy-text-3);
}

/* ============================= 空状态 ============================= */
.jy-empty {
	padding: 44px 24px;
	text-align: center;
	color: var(--jy-text-3);
}
.jy-empty__ico { margin: 0 auto 12px; opacity: .5; }
.jy-empty__title { margin: 0 0 4px; font-size: 15px; font-weight: 500; color: var(--jy-text-2); }
.jy-empty__desc { margin: 0; font-size: 13.5px; }
.jy-empty .jy-btn { margin-top: 16px; }

/* ============================= 结果页 ============================= */
.jy-result__ico {
	width: 68px;
	height: 68px;
	margin: 4px auto 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	animation: jy-pop .42s var(--jy-ease) both;
}
.jy-result__ico--ok { color: var(--jy-ok); background: var(--jy-ok-bg); }
.jy-result__ico--wait { color: var(--jy-warn); background: var(--jy-warn-bg); }
.jy-result__title { margin: 0 0 6px; font-size: 21px; font-weight: 600; }
.jy-result__desc { margin: 0 0 18px; font-size: 14px; color: var(--jy-text-2); }
.jy-result__meta {
	margin: 18px 0;
	padding: 14px 16px;
	background: var(--jy-soft);
	border-radius: var(--jy-r-md);
	text-align: left;
}
.jy-result__meta dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; }
.jy-result__meta dt { color: var(--jy-text-3); font-size: 13px; }
.jy-result__meta dd {
	margin: 0;
	text-align: right;
	font-size: 13.5px;
	color: var(--jy-text);
	font-variant-numeric: tabular-nums;
}
.jy-result__actions { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }

/* ============================= 跳转页 ============================= */
.jy-redirect__ring {
	width: 54px;
	height: 54px;
	margin: 0 auto 18px;
	border: 3px solid var(--jy-soft-2);
	border-top-color: var(--jy-accent);
	border-radius: 50%;
	animation: jy-spin .8s linear infinite;
}
.jy-redirect__title { margin: 0 0 6px; font-size: 17px; font-weight: 600; }
.jy-redirect__desc { margin: 0; font-size: 13.5px; color: var(--jy-text-2); }
.jy-redirect__no {
	margin: 16px 0 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	color: var(--jy-text-3);
	word-break: break-all;
}
/* 自动提交表单在跳转时不应干扰视觉 */
.jy-redirect form { display: none; }

/* ============================= 商城聚合页 ============================= */
.jy-store {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 22px 0;
}
.jy-store--cols-1 { grid-template-columns: 1fr; }
.jy-store--cols-2 { grid-template-columns: repeat(2, 1fr); }
.jy-store--cols-3 { grid-template-columns: repeat(3, 1fr); }
.jy-store--cols-4 { grid-template-columns: repeat(4, 1fr); }

.jy-product {
	display: flex;
	flex-direction: column;
	background: var(--jy-card-bg);
	border: 1px solid var(--jy-card-border);
	border-radius: var(--jy-r-lg);
	overflow: hidden;
	box-shadow: var(--jy-shadow-sm);
	transition: box-shadow var(--jy-dur) var(--jy-ease), transform var(--jy-dur) var(--jy-ease);
}
.jy-product:hover {
	box-shadow: var(--jy-shadow);
	transform: translateY(-2px);
}
.jy-product__thumb {
	display: flex;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--jy-gold-1), var(--jy-gold-2));
	align-items: center;
	justify-content: center;
	color: var(--jy-gold-ink);
	overflow: hidden;
}
.jy-product__thumb .jy-ico { opacity: .9; }
.jy-product__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.jy-product__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 8px;
	padding: 16px 18px;
}
.jy-product__title {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--jy-text);
}
.jy-product__title a { color: inherit; text-decoration: none; }
.jy-product__title a:hover { color: var(--jy-accent); }
.jy-product__excerpt {
	margin: 0;
	flex: 1;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--jy-text-2);
}
.jy-product__price { margin-top: 4px; }
.jy-product__buy { margin-top: 10px; }

/* ============================= 工具类 ============================= */
.jy-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.jy-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.jy-muted { color: var(--jy-text-3); }
.jy-sep { height: 1px; margin: 16px 0; background: var(--jy-line); border: 0; }
.jy-link { color: var(--jy-accent); text-decoration: none; }
.jy-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ============================= 动效 ============================= */
@keyframes jy-spin { to { transform: rotate(360deg); } }
@keyframes jy-pop {
	0% { transform: scale(.6); opacity: 0; }
	60% { transform: scale(1.06); }
	100% { transform: scale(1); opacity: 1; }
}
@keyframes jy-fade-up {
	from { opacity: 0; transform: translateY(4px); }
	to { opacity: 1; transform: none; }
}
.jy-pay .jy-anim-up { animation: jy-fade-up .3s var(--jy-ease) both; }

@media (prefers-reduced-motion: reduce) {
	.jy-pay *,
	.jy-pay *::before,
	.jy-pay *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* ============================= 积分系统 ============================= */
.jy-credits { margin: 22px 0; }
.jy-credits__head { margin: 0 0 14px; }
.jy-credits__title {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-size: 19px;
	font-weight: 600;
	color: var(--jy-text);
}
.jy-credits__title .jy-ico { color: var(--jy-gold-2); }
.jy-credits__sub { margin: 6px 0 0; font-size: 13.5px; color: var(--jy-text-2); }
.jy-credit-intro {
	margin: 0 0 16px;
	padding: 12px 15px;
	font-size: 13.5px;
	line-height: 1.8;
	color: var(--jy-text-2);
	background: var(--jy-soft);
	border-radius: var(--jy-r-sm);
	white-space: pre-line;
}

/* 档位网格 */
.jy-credit-tiers {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 14px;
}
.jy-credit-tier {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 14px;
	text-align: center;
	background: var(--jy-card-bg);
	border: 1px solid var(--jy-card-border);
	border-radius: var(--jy-r-md);
}
.jy-credit-tier__pay { font-size: 17px; font-weight: 600; color: var(--jy-text); }
.jy-credit-tier__get { font-size: 13px; font-weight: 500; color: var(--jy-accent); }
.jy-credit-tier__bonus { font-size: 12px; color: var(--jy-gold-3); }
.jy-credit-tier .jy-btn { margin-top: 8px; }

/* 余额卡 */
.jy-credit-balance {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	margin: 0 0 18px;
	padding: 22px;
	background: linear-gradient(135deg, rgba(244, 213, 141, .22), rgba(212, 175, 55, .14));
	border: 1px solid var(--jy-card-border);
	border-radius: var(--jy-r-lg);
}
.jy-credit-balance__num {
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	color: var(--jy-gold-3);
	font-variant-numeric: tabular-nums;
}
.jy-credit-balance__label { font-size: 13.5px; color: var(--jy-text-2); }

.jy-credit-recharge-inline { margin: 18px 0; }
.jy-credits__sub2 {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 18px 0 12px;
	font-size: 15px;
	font-weight: 600;
	color: var(--jy-text);
}
.jy-credits__sub2 .jy-ico { color: var(--jy-gold-2); }

/* 积分解锁区块（付费墙内） */
.jy-credit-unlock {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px dashed var(--jy-line);
}
.jy-credit-unlock__head {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--jy-text-2);
}
.jy-credit-unlock__head .jy-ico { color: var(--jy-gold-2); }

/* 积分变动正负色 */
.jy-credit-plus { color: var(--jy-ok); }
.jy-credit-minus { color: var(--jy-err); }

/* 轻量提示（兑换结果） */
.jy-toast-front {
	position: fixed;
	left: 50%;
	bottom: 32px;
	transform: translateX(-50%);
	z-index: 9999;
	max-width: 90vw;
	padding: 11px 18px;
	font-family: inherit;
	font-size: 14px;
	color: #fff;
	background: var(--jy-text);
	border-radius: var(--jy-r-pill);
	box-shadow: 0 8px 24px rgba(15, 23, 42, .28);
}
.jy-toast-front--err { background: var(--jy-err); }

/* ============================= 响应式 ============================= */

/* 商城网格：平板降级为 2 列，避免 3/4 列拥挤 */
@media (max-width: 900px) {
	.jy-store--cols-3,
	.jy-store--cols-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
	.jy-card { margin: 16px 0; padding: 18px 16px; border-radius: var(--jy-r-md); }
	.jy-card__foot { margin: 16px -16px -18px; padding: 12px 16px; }
	.jy-price__num { font-size: 23px; }

	/* 表格降级为卡片 */
	.jy-table--cards,
	.jy-table--cards tbody,
	.jy-table--cards tr,
	.jy-table--cards td { display: block; width: 100%; }
	.jy-table--cards thead { display: none; }
	.jy-table--cards tr {
		padding: 13px 16px;
		border-bottom: 1px solid var(--jy-line);
	}
	.jy-table--cards tr:last-child { border-bottom: 0; }
	.jy-table--cards tr:hover { background: transparent; }
	.jy-table--cards td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 3px 0;
		border: 0;
		text-align: right;
	}
	.jy-table--cards td::before {
		content: attr(data-label);
		flex: none;
		font-size: 12.5px;
		font-weight: 500;
		color: var(--jy-text-3);
		text-align: left;
	}
	.jy-table--cards td:first-child {
		display: block;
		margin-bottom: 6px;
		font-weight: 500;
		text-align: left;
	}
	.jy-table--cards td:first-child::before { display: none; }

	/* 商城网格：手机单列 */
	.jy-store,
	.jy-store--cols-2,
	.jy-store--cols-3,
	.jy-store--cols-4 { grid-template-columns: 1fr; }
}
