@charset "utf-8";
/* ==========================================================================
   森系小清新 · 森系限定版（senxi）
   绿茵动态卡片 / 叶脉标签 / 木质藤蔓个人中心 / 草丛·落叶·萤火氛围
   作用域统一挂在 html.tpl-senxi 下，与其它模板互不影响。
   ========================================================================== */

/* ---------- 1. 调色板 ---------- */
html.tpl-senxi {
  --sx-deep: #2f6b4f;
  --sx-moss: #3f8a5f;
  --sx-leaf: #7bc47f;
  --sx-leaf2: #a7d79a;
  --sx-grass: #4a9d6e;
  --sx-cream: #f6fbf3;
  --sx-mist: #eaf3e6;
  --sx-bark: #8a5c3e;
  --sx-bark2: #6a4229;
  --sx-sun: #ffe08a;
  --sx-berry: #d2698b;
  --sx-amber: #d99a3d;
  --sx-ink: #2c4436;
  --sx-ink2: #6f8f78;
  --sx-line: #cfe4cd;
  --pink: #3f8a5f;
  --pink2: #7bc47f;
  --blue: #6aa9a0;
  --blue2: #4d8c84;
  --green: #4a9d6e;
  --purple: #7fae90;
  --orange: #c98a3d;
  --text: #2c4436;
  --text2: #6f8f78;
  --radius: 22px;
  --sx-shadow: 0 10px 26px rgba(63, 138, 95, .16);
  --sx-shadow-sm: 0 5px 14px rgba(63, 138, 95, .12);
  scroll-behavior: smooth;
}
html.tpl-senxi *,
html.tpl-senxi *::before,
html.tpl-senxi *::after { box-sizing: border-box; }

html.tpl-senxi body {
  margin: 0;
  min-height: 100vh;
  color: var(--sx-ink);
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  background-image:
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxODAnIGhlaWdodD0nMTgwJyB2aWV3Qm94PScwIDAgMTgwIDE4MCc+PGcgc3Ryb2tlPScjM2Y4YTVmJyBzdHJva2Utb3BhY2l0eT0nLjE2JyBzdHJva2Utd2lkdGg9JzEuMycgZmlsbD0nbm9uZScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJz48cGF0aCBkPSdNMjYgMCBMMjkgMTMgTDMxIDI2IEwzMyAzOSBMMzMgNTEgTDMxIDY0IEwyOSA3NyBMMjYgOTAgTDIzIDEwMyBMMjEgMTE2IEwxOSAxMjkgTDE5IDE0MSBMMjEgMTU0IEwyMyAxNjcgTDI2IDE4MCcvPjxwYXRoIGQ9J005NCAwIEw5NyAxMyBMOTkgMjYgTDk5IDM5IEw5NyA1MSBMOTMgNjQgTDkwIDc3IEw4NiA5MCBMODMgMTAzIEw4MSAxMTYgTDgxIDEyOSBMODMgMTQxIEw4NyAxNTQgTDkwIDE2NyBMOTQgMTgwJy8+PHBhdGggZD0nTTE1NSAwIEwxNTggMTMgTDE1OSAyNiBMMTYwIDM5IEwxNTkgNTEgTDE1OCA2NCBMMTU1IDc3IEwxNTMgOTAgTDE1MCAxMDMgTDE0OSAxMTYgTDE0OCAxMjkgTDE0OSAxNDEgTDE1MCAxNTQgTDE1MyAxNjcgTDE1NSAxODAnLz48L2c+PGcgZmlsbD0nIzRlOWE2MycgZmlsbC1vcGFjaXR5PScuMTgnPjxlbGxpcHNlIGN4PScyNicgY3k9JzAnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTg3IDI2IDApJy8+PGVsbGlwc2UgY3g9JzI2JyBjeT0nMCcgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg1MyAyNiAwKScvPjxlbGxpcHNlIGN4PScyOScgY3k9JzEzJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC02OSAyOSAxMyknLz48ZWxsaXBzZSBjeD0nMjknIGN5PScxMycgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg2MyAyOSAxMyknLz48ZWxsaXBzZSBjeD0nMzMnIGN5PSczOScgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjYgMzMgMzkpJy8+PGVsbGlwc2UgY3g9JzMzJyBjeT0nMzknIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoNTggMzMgMzkpJy8+PGVsbGlwc2UgY3g9JzMzJyBjeT0nNTEnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTY4IDMzIDUxKScvPjxlbGxpcHNlIGN4PSczMycgY3k9JzUxJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKDcyIDMzIDUxKScvPjxlbGxpcHNlIGN4PSczMScgY3k9JzY0JyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC00NyAzMSA2NCknLz48ZWxsaXBzZSBjeD0nMzEnIGN5PSc2NCcgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg4NSAzMSA2NCknLz48ZWxsaXBzZSBjeD0nMjYnIGN5PSc5MCcgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNTMgMjYgOTApJy8+PGVsbGlwc2UgY3g9JzI2JyBjeT0nOTAnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoNzEgMjYgOTApJy8+PGVsbGlwc2UgY3g9JzIzJyBjeT0nMTAzJyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKC02MyAyMyAxMDMpJy8+PGVsbGlwc2UgY3g9JzIzJyBjeT0nMTAzJyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKDc3IDIzIDEwMyknLz48ZWxsaXBzZSBjeD0nMjEnIGN5PScxMTYnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoLTUyIDIxIDExNiknLz48ZWxsaXBzZSBjeD0nMjEnIGN5PScxMTYnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoODAgMjEgMTE2KScvPjxlbGxpcHNlIGN4PScxOScgY3k9JzEyOScgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjYgMTkgMTI5KScvPjxlbGxpcHNlIGN4PScxOScgY3k9JzEyOScgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSg1OCAxOSAxMjkpJy8+PGVsbGlwc2UgY3g9JzIxJyBjeT0nMTU0JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKC04NSAyMSAxNTQpJy8+PGVsbGlwc2UgY3g9JzIxJyBjeT0nMTU0JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKDU1IDIxIDE1NCknLz48ZWxsaXBzZSBjeD0nMjMnIGN5PScxNjcnIHJ4PScyJyByeT0nNycgdHJhbnNmb3JtPSdyb3RhdGUoLTcxIDIzIDE2NyknLz48ZWxsaXBzZSBjeD0nMjMnIGN5PScxNjcnIHJ4PScyJyByeT0nNycgdHJhbnNmb3JtPSdyb3RhdGUoNjEgMjMgMTY3KScvPjxlbGxpcHNlIGN4PSc5NCcgY3k9JzAnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTg3IDk0IDApJy8+PGVsbGlwc2UgY3g9Jzk0JyBjeT0nMCcgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg1MyA5NCAwKScvPjxlbGxpcHNlIGN4PSc5NycgY3k9JzEzJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC02NSA5NyAxMyknLz48ZWxsaXBzZSBjeD0nOTcnIGN5PScxMycgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg2NyA5NyAxMyknLz48ZWxsaXBzZSBjeD0nOTknIGN5PSczOScgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNTggOTkgMzkpJy8+PGVsbGlwc2UgY3g9Jzk5JyBjeT0nMzknIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoNjYgOTkgMzkpJy8+PGVsbGlwc2UgY3g9Jzk3JyBjeT0nNTEnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTYwIDk3IDUxKScvPjxlbGxpcHNlIGN4PSc5NycgY3k9JzUxJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKDgwIDk3IDUxKScvPjxlbGxpcHNlIGN4PSc5MycgY3k9JzY0JyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC00MSA5MyA2NCknLz48ZWxsaXBzZSBjeD0nOTMnIGN5PSc2NCcgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg5MSA5MyA2NCknLz48ZWxsaXBzZSBjeD0nODYnIGN5PSc5MCcgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNTMgODYgOTApJy8+PGVsbGlwc2UgY3g9Jzg2JyBjeT0nOTAnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoNzEgODYgOTApJy8+PGVsbGlwc2UgY3g9JzgzJyBjeT0nMTAzJyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKC02NyA4MyAxMDMpJy8+PGVsbGlwc2UgY3g9JzgzJyBjeT0nMTAzJyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKDczIDgzIDEwMyknLz48ZWxsaXBzZSBjeD0nODEnIGN5PScxMTYnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoLTU5IDgxIDExNiknLz48ZWxsaXBzZSBjeD0nODEnIGN5PScxMTYnIHJ4PScyJyByeT0nOCcgdHJhbnNmb3JtPSdyb3RhdGUoNzMgODEgMTE2KScvPjxlbGxpcHNlIGN4PSc4MScgY3k9JzEyOScgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNzQgODEgMTI5KScvPjxlbGxpcHNlIGN4PSc4MScgY3k9JzEyOScgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSg1MCA4MSAxMjkpJy8+PGVsbGlwc2UgY3g9Jzg3JyBjeT0nMTU0JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKC05MSA4NyAxNTQpJy8+PGVsbGlwc2UgY3g9Jzg3JyBjeT0nMTU0JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKDQ5IDg3IDE1NCknLz48ZWxsaXBzZSBjeD0nOTAnIGN5PScxNjcnIHJ4PScyJyByeT0nNycgdHJhbnNmb3JtPSdyb3RhdGUoLTc1IDkwIDE2NyknLz48ZWxsaXBzZSBjeD0nOTAnIGN5PScxNjcnIHJ4PScyJyByeT0nNycgdHJhbnNmb3JtPSdyb3RhdGUoNTcgOTAgMTY3KScvPjxlbGxpcHNlIGN4PScxNTUnIGN5PScwJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC04NCAxNTUgMCknLz48ZWxsaXBzZSBjeD0nMTU1JyBjeT0nMCcgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg1NiAxNTUgMCknLz48ZWxsaXBzZSBjeD0nMTU4JyBjeT0nMTMnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTY1IDE1OCAxMyknLz48ZWxsaXBzZSBjeD0nMTU4JyBjeT0nMTMnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoNjcgMTU4IDEzKScvPjxlbGxpcHNlIGN4PScxNjAnIGN5PSczOScgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjMgMTYwIDM5KScvPjxlbGxpcHNlIGN4PScxNjAnIGN5PSczOScgcng9JzInIHJ5PSc5JyB0cmFuc2Zvcm09J3JvdGF0ZSg2MSAxNjAgMzkpJy8+PGVsbGlwc2UgY3g9JzE1OScgY3k9JzUxJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKC02NiAxNTkgNTEpJy8+PGVsbGlwc2UgY3g9JzE1OScgY3k9JzUxJyByeD0nMicgcnk9JzknIHRyYW5zZm9ybT0ncm90YXRlKDc0IDE1OSA1MSknLz48ZWxsaXBzZSBjeD0nMTU4JyBjeT0nNjQnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoLTQ3IDE1OCA2NCknLz48ZWxsaXBzZSBjeD0nMTU4JyBjeT0nNjQnIHJ4PScyJyByeT0nOScgdHJhbnNmb3JtPSdyb3RhdGUoODUgMTU4IDY0KScvPjxlbGxpcHNlIGN4PScxNTMnIGN5PSc5MCcgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNTYgMTUzIDkwKScvPjxlbGxpcHNlIGN4PScxNTMnIGN5PSc5MCcgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSg2OCAxNTMgOTApJy8+PGVsbGlwc2UgY3g9JzE1MCcgY3k9JzEwMycgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjcgMTUwIDEwMyknLz48ZWxsaXBzZSBjeD0nMTUwJyBjeT0nMTAzJyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKDczIDE1MCAxMDMpJy8+PGVsbGlwc2UgY3g9JzE0OScgY3k9JzExNicgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNTYgMTQ5IDExNiknLz48ZWxsaXBzZSBjeD0nMTQ5JyBjeT0nMTE2JyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKDc2IDE0OSAxMTYpJy8+PGVsbGlwc2UgY3g9JzE0OCcgY3k9JzEyOScgcng9JzInIHJ5PSc4JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjkgMTQ4IDEyOSknLz48ZWxsaXBzZSBjeD0nMTQ4JyBjeT0nMTI5JyByeD0nMicgcnk9JzgnIHRyYW5zZm9ybT0ncm90YXRlKDU1IDE0OCAxMjkpJy8+PGVsbGlwc2UgY3g9JzE1MCcgY3k9JzE1NCcgcng9JzInIHJ5PSc3JyB0cmFuc2Zvcm09J3JvdGF0ZSgtODUgMTUwIDE1NCknLz48ZWxsaXBzZSBjeD0nMTUwJyBjeT0nMTU0JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKDU1IDE1MCAxNTQpJy8+PGVsbGlwc2UgY3g9JzE1MycgY3k9JzE2Nycgcng9JzInIHJ5PSc3JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNzAgMTUzIDE2NyknLz48ZWxsaXBzZSBjeD0nMTUzJyBjeT0nMTY3JyByeD0nMicgcnk9JzcnIHRyYW5zZm9ybT0ncm90YXRlKDYyIDE1MyAxNjcpJy8+PC9nPjwvc3ZnPg=="),
    radial-gradient(ellipse at 12% 0%, rgba(255, 224, 138, .30), transparent 46%),
    radial-gradient(ellipse at 88% 4%, rgba(167, 215, 154, .34), transparent 44%),
    radial-gradient(ellipse at 50% 120%, rgba(123, 196, 127, .22), transparent 60%),
    linear-gradient(180deg, #f6fbf3 0%, #eef8ea 44%, #e6f3e0 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: 180px 180px, auto, auto, auto, auto;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0;
  background-attachment: fixed;
  overflow-x: hidden;
}
html.tpl-senxi a { color: var(--sx-moss); text-decoration: none; }
html.tpl-senxi img, html.tpl-senxi video { max-width: 100%; }
html.tpl-senxi .bubbles { display: none !important; }
html.tpl-senxi ::selection { background: rgba(123, 196, 127, .38); color: var(--sx-deep); }

/* ---------- 2. 环境氛围层 ---------- */
html.tpl-senxi .sx-canopy,
html.tpl-senxi .sx-meadow,
html.tpl-senxi .sx-leaves {
  position: fixed; left: 0; right: 0; pointer-events: none; z-index: 0;
}
html.tpl-senxi .sx-leaves { top: 0; bottom: 0; overflow: hidden; }

/* 顶部林冠 */
html.tpl-senxi .sx-canopy {
  top: 0; height: 130px; opacity: .55;
  background:
    radial-gradient(58px 40px at 6% -8%, #7bc47f 0 58%, transparent 60%),
    radial-gradient(76px 50px at 19% -12%, #6fb87a 0 58%, transparent 60%),
    radial-gradient(64px 44px at 33% -8%, #8ed08e 0 58%, transparent 60%),
    radial-gradient(84px 54px at 53% -14%, #6fb87a 0 58%, transparent 60%),
    radial-gradient(66px 44px at 71% -8%, #7bc47f 0 58%, transparent 60%),
    radial-gradient(78px 52px at 88% -12%, #5aa96e 0 58%, transparent 60%),
    radial-gradient(60px 42px at 97% -8%, #8ed08e 0 58%, transparent 60%);
  transform-origin: top center;
  animation: sxCanopySway 11s ease-in-out infinite alternate;
}
@keyframes sxCanopySway {
  from { transform: translateX(-6px) rotate(-.5deg); }
  to   { transform: translateX(6px) rotate(.5deg); }
}

/* 底部绿茵草地 */
html.tpl-senxi .sx-meadow {
  bottom: 0; height: 200px; z-index: 0;
  animation: sxBreeze 9s ease-in-out infinite alternate;
}
html.tpl-senxi .sx-meadow::before {
  content: ""; position: absolute; left: -12%; right: -12%; bottom: 0; height: 158px;
  border-radius: 50% 50% 0 0 / 66px 66px 0 0;
  background: linear-gradient(180deg, #b3dca6, #6fb87a 78%, #5aa96e);
  opacity: .9;
}
html.tpl-senxi .sx-meadow::after {
  content: ""; position: absolute; left: -16%; right: -16%; bottom: -12px; height: 132px;
  border-radius: 50% 50% 0 0 / 60px 60px 0 0;
  background:
    repeating-linear-gradient(83deg, rgba(47, 107, 79, .30) 0 1px, transparent 1px 8px),
    repeating-linear-gradient(97deg, rgba(47, 107, 79, .22) 0 1px, transparent 1px 11px),
    radial-gradient(6px 6px at 14% 34%, #ffe9a8 0 60%, transparent 62%),
    radial-gradient(5px 5px at 62% 26%, #ffffff 0 60%, transparent 62%),
    radial-gradient(5px 5px at 82% 44%, #f4b8cd 0 60%, transparent 62%),
    linear-gradient(180deg, #7cc48a, #3f8a5f);
  box-shadow: 0 -6px 18px rgba(63, 138, 95, .18);
}
@keyframes sxBreeze {
  from { transform: translateX(-8px) translateY(2px); }
  to   { transform: translateX(8px) translateY(-2px); }
}

/* 落叶 */
html.tpl-senxi .sx-leaf {
  position: absolute; top: -44px; width: 15px; height: 15px; opacity: .7;
  background: linear-gradient(135deg, #a7d79a, #3f8a5f);
  border-radius: 62% 8% 62% 8%;
  animation: sxFall linear infinite;
  will-change: transform;
}
html.tpl-senxi .sx-leaf.l2 { background: linear-gradient(135deg, #ffe9a8, #d99a3d); }
html.tpl-senxi .sx-leaf.l3 { background: linear-gradient(135deg, #f4b8cd, #d2698b); }
@keyframes sxFall {
  0%   { transform: translate3d(0, -44px, 0) rotate(0deg); opacity: 0; }
  8%   { opacity: .75; }
  92%  { opacity: .6; }
  100% { transform: translate3d(52px, 106vh, 0) rotate(420deg); opacity: 0; }
}

/* 萤火 */
html.tpl-senxi .sx-spore {
  position: absolute; width: 5px; height: 5px; border-radius: 50%;
  background: radial-gradient(circle, #fff6cf 0 46%, rgba(255, 224, 138, .55) 60%, transparent 72%);
  animation: sxDrift ease-in-out infinite alternate;
}
@keyframes sxDrift {
  from { transform: translate3d(0, 12px, 0); opacity: .18; }
  to   { transform: translate3d(26px, -22px, 0); opacity: .8; }
}

/* ---------- 3. 顶部导航 ---------- */
html.tpl-senxi .topbar {
  background: rgba(247, 252, 244, .86);
  backdrop-filter: blur(14px);
  box-shadow: 0 4px 18px rgba(63, 138, 95, .12);
  border-bottom: 2px solid rgba(123, 196, 127, .38);
}
html.tpl-senxi .topbar-inner { padding: 12px 18px 8px; gap: 12px; }
html.tpl-senxi .logo {
  font-size: 25px; font-weight: 900; letter-spacing: 1px;
  color: var(--sx-deep); cursor: pointer; text-shadow: none;
  display: inline-flex; align-items: center; gap: 8px;
}
html.tpl-senxi .logo b { color: var(--sx-leaf); }
html.tpl-senxi .sx-logo-mark {
  width: 26px; height: 26px; flex-shrink: 0; position: relative;
}
html.tpl-senxi .sx-logo-mark::before {
  content: ""; position: absolute; inset: 0; border-radius: 60% 10% 60% 10%;
  background: linear-gradient(135deg, var(--sx-leaf), var(--sx-deep));
  box-shadow: 0 3px 8px rgba(63, 138, 95, .35);
}
html.tpl-senxi .sx-logo-mark::after {
  content: ""; position: absolute; left: 50%; top: 12%;
  width: 1.5px; height: 76%; background: rgba(255, 255, 255, .7);
  transform: translateX(-50%) rotate(45deg); border-radius: 2px;
}

html.tpl-senxi .cat-bar { padding: 8px 18px 11px; gap: 9px; }
html.tpl-senxi .cat-chip {
  padding: 7px 16px; border-radius: 16px 16px 16px 5px;
  background: #fff; border: 1.5px solid var(--sx-line);
  color: var(--sx-ink); font-size: 13px; font-weight: 700;
  transition: .25s; box-shadow: 0 2px 6px rgba(63, 138, 95, .06);
}
html.tpl-senxi .cat-chip:hover,
html.tpl-senxi .cat-chip.active {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  color: #fff; border-color: transparent;
  transform: translateY(-2px); box-shadow: 0 7px 16px rgba(63, 138, 95, .32);
}
html.tpl-senxi .cat-chip .ic { border-radius: 50%; }
html.tpl-senxi .cat-divider { color: var(--sx-line); }

html.tpl-senxi .search-toggle {
  background: #fff; border: 1.5px solid var(--sx-line); color: var(--sx-moss);
}
html.tpl-senxi .search-toggle:hover {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  color: #fff; border-color: transparent;
  box-shadow: 0 6px 16px rgba(63, 138, 95, .3);
}
html.tpl-senxi .search-box { background: #fff; border: 1.5px solid var(--sx-line); border-radius: 18px; }
html.tpl-senxi .search-box:focus-within {
  border-color: var(--sx-leaf); box-shadow: 0 0 0 4px rgba(123, 196, 127, .16);
}
html.tpl-senxi .search-box button { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }
html.tpl-senxi .im-entry {
  background: #fff; border: 1.5px solid var(--sx-line); color: var(--sx-moss);
}
html.tpl-senxi .im-entry:hover { background: var(--sx-cream); border-color: var(--sx-leaf); }
html.tpl-senxi .im-badge { background: var(--sx-berry); box-shadow: 0 2px 6px rgba(210, 105, 139, .4); }
html.tpl-senxi .avatar {
  border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(123, 196, 127, .55), 0 4px 12px rgba(63, 138, 95, .22);
  background: linear-gradient(135deg, var(--sx-leaf2), var(--sx-cream));
}
html.tpl-senxi .avatar-lg {
  border-radius: 32% 32% 32% 12%;
  border: 4px solid #fff;
  box-shadow: 0 0 0 3px rgba(123, 196, 127, .5), 0 10px 24px rgba(63, 138, 95, .26);
}

/* ---------- 4. 主容器与标题 ---------- */
html.tpl-senxi .wrap {
  max-width: 1100px; margin: 0 auto; padding: 20px 18px 100px;
  position: relative; z-index: 1;
}
html.tpl-senxi #pageTitle {
  font-size: 21px; font-weight: 900; color: var(--sx-deep);
  display: flex; align-items: center; gap: 9px; margin-bottom: 10px;
  padding-bottom: 8px; position: relative;
}
html.tpl-senxi #pageTitle::before {
  content: ""; width: 9px; height: 15px; flex-shrink: 0;
  border-radius: 60% 10% 60% 10%;
  background: linear-gradient(135deg, var(--sx-leaf), var(--sx-moss));
}
html.tpl-senxi #pageTitle:empty::before { display: none; }

/* 区块标题 */
html.tpl-senxi .section-title { gap: 10px; margin: 26px 0 16px; }
html.tpl-senxi .section-title .t {
  font-size: 18px; font-weight: 900; color: var(--sx-deep);
  display: inline-flex; align-items: center; gap: 8px;
}
html.tpl-senxi .section-title .t::before {
  content: ""; width: 18px; height: 18px; flex-shrink: 0;
  border-radius: 62% 12% 62% 12%;
  background: linear-gradient(135deg, var(--sx-leaf2), var(--sx-moss));
  box-shadow: inset -3px -3px 0 rgba(47, 107, 79, .18);
}
html.tpl-senxi .section-title .line {
  flex: 1; height: 0; border-top: 2px dashed rgba(123, 196, 127, .5); background: none; border-radius: 0;
}
html.tpl-senxi .section-title .more { color: var(--sx-moss); font-weight: 800; }
html.tpl-senxi .section-title .more:hover { color: var(--sx-deep); }

/* ---------- 5. 视频网格与叶脉卡片 ---------- */
html.tpl-senxi .vgrid { gap: 18px; }
html.tpl-senxi .vcard {
  position: relative;
  background: linear-gradient(180deg, #ffffff 0%, #f4fbf1 100%);
  border: 1.5px solid var(--sx-line);
  border-radius: 26px 26px 26px 9px;
  overflow: hidden; cursor: pointer;
  box-shadow: var(--sx-shadow-sm);
  transition: transform .32s cubic-bezier(.2, .8, .3, 1), box-shadow .32s, border-color .32s;
}
html.tpl-senxi .vcard:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(63, 138, 95, .26);
  border-color: var(--sx-leaf);
}
html.tpl-senxi .vcard-media {
  aspect-ratio: 16/10; background: linear-gradient(135deg, #eaf3e6, #f6fbf3); position: relative; overflow: hidden;
}
html.tpl-senxi .vcard-media::after {
  content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, .6) 48%, transparent 64%);
  transform: translateX(-130%); transition: transform .75s ease;
}
html.tpl-senxi .vcard:hover .vcard-media::after { transform: translateX(130%); }
html.tpl-senxi .vcard-media img, html.tpl-senxi .vcard-media video { display: block; transition: transform .5s; }
html.tpl-senxi .vcard:hover .vcard-media img { transform: scale(1.05); }
html.tpl-senxi .vcard-noimg {
  color: var(--sx-moss);
  background: linear-gradient(135deg, #e3f2e0, #f6fbf3);
}
html.tpl-senxi .vcard-media .mask {
  background: linear-gradient(transparent 46%, rgba(47, 107, 79, .55));
}
html.tpl-senxi .vcard-media .playbtn {
  background: rgba(246, 251, 243, .95); color: var(--sx-deep);
  box-shadow: 0 4px 14px rgba(47, 107, 79, .3);
}
html.tpl-senxi .vcard-info { padding: 12px 14px 18px; }
html.tpl-senxi .vcard-info .t { font-size: 14px; font-weight: 800; color: var(--sx-ink); }
html.tpl-senxi .vcard-info .m { color: var(--sx-ink2); }
html.tpl-senxi .vcard-info .m .like { color: var(--sx-berry); }
html.tpl-senxi .vcard-info .vcard-time { color: #9bb3a3; }

/* 卡片底部绿茵（由 theme.js 注入 .sx-grass） */
html.tpl-senxi .sx-host { position: relative; }
html.tpl-senxi .sx-grass {
  position: absolute; left: 0; right: 0; bottom: 0; height: 15px; overflow: hidden;
  pointer-events: none; z-index: 3;
  background: linear-gradient(180deg, transparent, rgba(123, 196, 127, .22));
}
html.tpl-senxi .sx-grass i {
  position: absolute; bottom: -3px; width: 3px; height: var(--sx-h, 12px);
  border-radius: 60% 60% 12% 12%;
  background: linear-gradient(180deg, #9bd89b, #3f8a5f);
  transform-origin: 50% 100%;
  animation: sxSway 2.6s ease-in-out infinite;
  transition: height .3s;
}
html.tpl-senxi .sx-grass i:nth-child(even) { animation-name: sxSwayR; }
html.tpl-senxi .vcard:hover .sx-grass i { height: calc(var(--sx-h, 12px) + 8px); }
@keyframes sxSway { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } }
@keyframes sxSwayR { 0%, 100% { transform: rotate(9deg); } 50% { transform: rotate(-9deg); } }

/* ---------- 6. 标签（叶脉药丸） ---------- */
html.tpl-senxi .tag {
  position: relative; display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 800; padding: 4px 12px 4px 20px;
  border-radius: 14px 14px 14px 4px; color: #fff;
  box-shadow: 0 3px 9px rgba(47, 107, 79, .22);
}
html.tpl-senxi .tag::before {
  content: ""; position: absolute; left: 8px; top: 50%;
  width: 7px; height: 7px; margin-top: -3.5px;
  border-radius: 60% 12% 60% 12%;
  background: rgba(255, 255, 255, .85);
  transform: rotate(45deg);
}
html.tpl-senxi .vcard-media .tag {
  position: absolute; left: 9px; top: 9px; padding: 4px 12px 4px 20px;
}
html.tpl-senxi .tag-free { background: linear-gradient(135deg, #57b87f, #2f6b4f); }
html.tpl-senxi .tag-vip { background: linear-gradient(135deg, #6aa9a0, #3d7268); }
html.tpl-senxi .tag-pay { background: linear-gradient(135deg, #d99a3d, #b5762a); }
html.tpl-senxi .tag-points { background: linear-gradient(135deg, #e08a5a, #b95f2e); }
html.tpl-senxi .tag-lmt { background: linear-gradient(135deg, #d2698b, #a8425f); }
html.tpl-senxi .tag-gold {
  background: #fdf6dd; color: #9a7418; border: 1px solid #efd98a; box-shadow: none;
}
html.tpl-senxi .vcard-media .tag-gold { background: #fdf6dd; color: #9a7418; border: 1px solid #efd98a; }

html.tpl-senxi .tag-chip {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 5px 13px; border-radius: 14px 14px 14px 4px;
  background: #fff; border: 1.5px dashed var(--sx-leaf2);
  color: var(--sx-moss); font-size: 12.5px; font-weight: 700; cursor: pointer;
  transition: .22s;
}
html.tpl-senxi .tag-chip:hover,
html.tpl-senxi .tag-chip.active {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  color: #fff; border-style: solid; border-color: transparent;
}
html.tpl-senxi .tag-toggle {
  background: #fff; border: 1.5px dashed var(--sx-leaf2); color: var(--sx-moss);
  border-radius: 14px 14px 14px 4px;
}
html.tpl-senxi .tag-toggle .arr { color: var(--sx-moss); }
html.tpl-senxi .tag-cloud { border-top: 1px dashed var(--sx-line); }
html.tpl-senxi .detail-tags { gap: 8px; }

/* 个人徽章（木质小牌） */
html.tpl-senxi .pb-tag {
  border-radius: 12px 12px 12px 4px; font-weight: 800;
  border: 1px solid rgba(63, 138, 95, .18);
}
html.tpl-senxi .pb-tag.tag-acct { background: #e7f4e6; color: #2f6b4f; }
html.tpl-senxi .pb-tag.tag-mail { background: #e6f1ee; color: #3d7268; }
html.tpl-senxi .pb-tag.tag-inv { background: #fbf3dd; color: #9a7418; }
html.tpl-senxi .pb-tag.tag-reg { background: #e9f6e9; color: #2e7a4d; }
html.tpl-senxi .pb-tag.tag-ip { background: #eef1e4; color: #6a7340; }

/* ---------- 7. 按钮 ---------- */
html.tpl-senxi .btn {
  border-radius: 16px 16px 16px 6px; font-weight: 800;
  position: relative; overflow: hidden;
  box-shadow: 0 6px 16px rgba(63, 138, 95, .25);
}
html.tpl-senxi .btn::after {
  content: ""; position: absolute; left: -60%; top: -30%;
  width: 40%; height: 160%; transform: rotate(18deg);
  background: rgba(255, 255, 255, .22); pointer-events: none;
  transition: left .5s ease;
}
html.tpl-senxi .btn:hover::after { left: 130%; }
html.tpl-senxi .btn-primary { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }
html.tpl-senxi .btn-green { background: linear-gradient(135deg, #4a9d6e, #2f6b4f); }
html.tpl-senxi .btn-blue { background: linear-gradient(135deg, #6aa9a0, #3d7268); }
html.tpl-senxi .btn-purple { background: linear-gradient(135deg, #7fae90, #4d7a5c); }
html.tpl-senxi .btn-pink { background: linear-gradient(135deg, #d2698b, #a8425f); }
html.tpl-senxi .btn-orange { background: linear-gradient(135deg, #d99a3d, #b5762a); }
html.tpl-senxi .btn-danger { background: linear-gradient(135deg, #d2698b, #b04a68); }
html.tpl-senxi .btn-ghost {
  background: #fff; color: var(--sx-moss); border: 1.5px solid var(--sx-leaf2);
}

/* ---------- 8. 通用卡片 ---------- */
html.tpl-senxi .card {
  background: linear-gradient(180deg, #ffffff, #f5fbf2);
  border: 1.5px solid var(--sx-line);
  border-radius: 24px 24px 24px 9px;
  box-shadow: var(--sx-shadow);
  padding: 22px;
}
html.tpl-senxi .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(63, 138, 95, .2);
}
html.tpl-senxi .purchased-tip {
  border-radius: 18px 18px 18px 7px; font-weight: 800;
  background: linear-gradient(135deg, #e9f6e9, #d8efd6); color: #2e7a4d; border: 1.5px solid #b6e0b6;
}
html.tpl-senxi .purchased-tip.vip {
  background: linear-gradient(135deg, #e6f1ee, #d6e8e3); color: #3d7268; border-color: #b7d8d0;
}
html.tpl-senxi .purchased-tip.warn {
  background: linear-gradient(135deg, #fbf3dd, #f5e6c2); color: #9a7418; border-color: #ecd79a;
}

/* ---------- 9. 会员套餐（原木挂牌） ---------- */
html.tpl-senxi .plans-grid { gap: 22px; }
html.tpl-senxi .plan-card {
  border-radius: 26px 26px 26px 10px;
  padding: 24px 20px 22px;
  background: linear-gradient(170deg, #ffffff 0%, #f3faef 58%, #eaf5e6 100%);
  border: 2px solid var(--sx-line);
  box-shadow: 0 14px 32px rgba(63, 138, 95, .16);
  position: relative; overflow: hidden; transition: .35s;
}
html.tpl-senxi .plan-card::before {
  content: ""; position: absolute; left: -30px; top: -30px; width: 104px; height: 104px; border-radius: 50%;
  background: radial-gradient(circle at 34% 34%, rgba(167, 215, 154, .55), rgba(167, 215, 154, 0));
  pointer-events: none;
}
html.tpl-senxi .plan-card::after {
  content: ""; position: absolute; right: -24px; bottom: -28px; width: 90px; height: 90px; border-radius: 50%;
  background: radial-gradient(circle at 60% 40%, rgba(255, 224, 138, .5), rgba(255, 224, 138, 0));
  pointer-events: none;
}
html.tpl-senxi .plan-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 44px rgba(63, 138, 95, .26);
  border-color: var(--sx-leaf);
}
html.tpl-senxi .plan-card.hot {
  background: linear-gradient(160deg, var(--sx-moss), var(--sx-deep)); color: #fff; border-color: transparent;
}
html.tpl-senxi .plan-card.hot .plan-name,
html.tpl-senxi .plan-card.hot .plan-price { color: #fff; }
html.tpl-senxi .plan-name { color: var(--sx-deep); font-weight: 900; }
html.tpl-senxi .plan-price { color: var(--sx-moss); }
html.tpl-senxi .plan-card .hot-tag {
  position: absolute; top: 15px; right: -38px; background: var(--sx-sun); color: #6a4e10;
  font-size: 11px; font-weight: 900; padding: 4px 44px; transform: rotate(45deg); z-index: 3;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}
html.tpl-senxi .plan-feat { background: rgba(123, 196, 127, .10); border-radius: 14px; }
html.tpl-senxi .plan-card.hot .plan-feat { background: rgba(255, 255, 255, .16); }
html.tpl-senxi .plan-feat li::before { color: var(--sx-moss); content: "❧"; }
html.tpl-senxi .plan-card.hot .plan-feat li::before { color: var(--sx-sun); }
html.tpl-senxi .plan-feat li.off::before { content: "•"; color: #b9c9b9; }
html.tpl-senxi .plan-cats .cat-tag,
html.tpl-senxi .plan-cats .scope-tags .cat-tag {
  background: #eef7ea; color: var(--sx-moss); border: 1px solid var(--sx-line);
  border-radius: 12px 12px 12px 4px;
}
html.tpl-senxi .plan-candy, html.tpl-senxi .plan-candy2 { background: var(--sx-leaf2); }

/* ---------- 10. 个人中心（木质藤蔓） ---------- */
html.tpl-senxi .pcenter-head {
  position: relative; overflow: hidden;
  background:
    radial-gradient(ellipse at 86% -10%, rgba(255, 224, 138, .30), transparent 52%),
    linear-gradient(160deg, #ffffff, #eef8ea 62%, #e3f2e0);
  border: 2px solid var(--sx-line);
  border-radius: 28px 28px 28px 10px;
  padding: 26px; margin-bottom: 18px; gap: 20px;
  box-shadow: 0 14px 32px rgba(63, 138, 95, .16);
}
html.tpl-senxi .pcenter-head::before {
  content: ""; position: absolute; left: -40px; bottom: -46px; width: 150px; height: 150px; border-radius: 50%;
  background: radial-gradient(circle, rgba(123, 196, 127, .30), transparent 70%);
  pointer-events: none;
}
html.tpl-senxi .pcenter-head::after {
  content: ""; position: absolute; right: -34px; top: -30px; width: 128px; height: 128px; border-radius: 50%;
  background: radial-gradient(circle, rgba(167, 215, 154, .35), transparent 70%);
  pointer-events: none;
}
html.tpl-senxi .pcenter-head .avatar-lg {
  border-radius: 36% 36% 36% 14%;
  border: 4px solid #fff;
  box-shadow: 0 0 0 3px rgba(123, 196, 127, .55), 0 0 0 9px rgba(123, 196, 127, .16), 0 12px 26px rgba(63, 138, 95, .3);
}
html.tpl-senxi .pcenter-head .name { color: var(--sx-deep); font-weight: 900; }
html.tpl-senxi .pcenter-head .sig { color: var(--sx-ink2); }
html.tpl-senxi .pcenter-sig {
  background: #f7fbec; border: 1.5px dashed var(--sx-leaf2); color: #5e7a4a;
  border-radius: 14px 14px 14px 5px;
}
html.tpl-senxi .pcenter-sig .ico { color: var(--sx-moss); }
html.tpl-senxi .pcenter-badges { gap: 7px; }

html.tpl-senxi .pcenter-stats { gap: 12px; margin-top: 14px; }
html.tpl-senxi .pstat {
  background: #fff; border: 1.5px solid var(--sx-line);
  border-radius: 16px 16px 16px 6px; padding: 11px 20px; text-align: center;
  box-shadow: 0 5px 14px rgba(63, 138, 95, .12); position: relative;
}
html.tpl-senxi .pstat .n { color: var(--sx-moss); font-size: 19px; font-weight: 900; }
html.tpl-senxi .pstat .l { color: var(--sx-ink2); }
html.tpl-senxi .pstat::after {
  content: ""; position: absolute; right: 8px; top: 8px; width: 7px; height: 7px;
  border-radius: 60% 12% 60% 12%; background: var(--sx-leaf2); opacity: .8;
}

html.tpl-senxi .pcenter-tabs {
  background: #fff; border: 1.5px solid var(--sx-line);
  border-radius: 18px; padding: 6px; gap: 6px;
  box-shadow: 0 8px 20px rgba(63, 138, 95, .1);
}
html.tpl-senxi .pctab { border-radius: 13px 13px 13px 5px; color: var(--sx-ink2); font-weight: 800; }
html.tpl-senxi .pctab.active {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); color: #fff;
  box-shadow: 0 5px 14px rgba(63, 138, 95, .28);
}

html.tpl-senxi .me-quick { gap: 12px; }
html.tpl-senxi .me-quick .card {
  border-radius: 20px 20px 20px 7px;
}

html.tpl-senxi .wallet-grid { gap: 16px; }
html.tpl-senxi .wallet-card {
  border-radius: 22px 22px 22px 8px; padding: 20px; position: relative; overflow: hidden;
  box-shadow: 0 12px 26px rgba(63, 138, 95, .2);
}
html.tpl-senxi .wallet-card .label { opacity: .92; }
html.tpl-senxi .wallet-card .ic { opacity: .18; }
html.tpl-senxi .wc1 { background: linear-gradient(135deg, #4a9d6e, #2f6b4f); }
html.tpl-senxi .wc2 { background: linear-gradient(135deg, #6aa9a0, #3d7268); }
html.tpl-senxi .wc3 { background: linear-gradient(135deg, #8a5c3e, #6a4229); }
html.tpl-senxi .wc4 { background: linear-gradient(135deg, #7bc47f, #4a9d6e); }

html.tpl-senxi .flow-item { border-bottom: 1px dashed var(--sx-line); }
html.tpl-senxi .flow-item .in { color: #2f8a55; }
html.tpl-senxi .flow-item .out { color: var(--sx-berry); }

html.tpl-senxi .upload-card {
  background: linear-gradient(180deg, #ffffff, #f5fbf2); border: 1.5px solid var(--sx-line);
  border-radius: 24px 24px 24px 9px; box-shadow: var(--sx-shadow-sm);
}
html.tpl-senxi .upload-thumb { background: linear-gradient(135deg, #eaf3e6, #f6fbf3); color: var(--sx-leaf); }
html.tpl-senxi .upload-thumb .st { border-radius: 12px 12px 12px 4px; }

/* ---------- 11. 表单 / 弹窗 / 登录 ---------- */
html.tpl-senxi .field label { color: var(--sx-ink2); }
html.tpl-senxi .field input,
html.tpl-senxi .field select,
html.tpl-senxi .field textarea {
  background: #f7fbf4; border: 1.5px solid var(--sx-line);
  border-radius: 15px 15px 15px 6px; color: var(--sx-ink);
}
html.tpl-senxi .field input:focus,
html.tpl-senxi .field select:focus,
html.tpl-senxi .field textarea:focus {
  border-color: var(--sx-leaf); background: #fff;
  box-shadow: 0 0 0 4px rgba(123, 196, 127, .16);
}
html.tpl-senxi .field .tip { color: #9bb3a3; }

html.tpl-senxi .modal-mask { background: rgba(44, 68, 54, .48); }
html.tpl-senxi .modal {
  background: linear-gradient(180deg, #ffffff, #f3faef);
  border: 2px solid var(--sx-line);
  border-radius: 26px 26px 26px 10px;
  box-shadow: 0 24px 60px rgba(47, 107, 79, .32);
}
html.tpl-senxi .modal h3 { color: var(--sx-deep); }
html.tpl-senxi .modal .close { color: var(--sx-ink2); }

html.tpl-senxi .auth-card {
  background: linear-gradient(180deg, #ffffff, #f3faef);
  border: 2px solid var(--sx-line);
  border-radius: 28px 28px 28px 10px;
  box-shadow: 0 18px 44px rgba(63, 138, 95, .2);
}
html.tpl-senxi .auth-tabs { background: #eef7ea; border-radius: 15px; }
html.tpl-senxi .auth-tab { border-radius: 11px 11px 11px 5px; color: var(--sx-ink2); }
html.tpl-senxi .auth-tab.active { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }

/* ---------- 12. 支付方式 / 列表 ---------- */
html.tpl-senxi .pm-method {
  background: #fff; border: 1.5px solid var(--sx-line);
  border-radius: 18px 18px 18px 6px;
}
html.tpl-senxi .pm-method:hover,
html.tpl-senxi .pm-method.active {
  border-color: var(--sx-leaf); background: #f6fbf3;
  box-shadow: 0 6px 16px rgba(63, 138, 95, .14);
}
html.tpl-senxi .pm-check { color: var(--sx-moss); }
html.tpl-senxi .pm-ic { border-radius: 14px 14px 14px 5px; }
html.tpl-senxi .pm-ic-bal { background: linear-gradient(135deg, #4a9d6e, #2f6b4f); }
html.tpl-senxi .pm-ic-wx { background: linear-gradient(135deg, #4a9d6e, #2f6b4f); }
html.tpl-senxi .pm-ic-zfb { background: linear-gradient(135deg, #6aa9a0, #3d7268); }
html.tpl-senxi .pm-ic-qq { background: linear-gradient(135deg, #d99a3d, #b5762a); }

/* ---------- 13. 作者主页 ---------- */
html.tpl-senxi .author-card {
  background: linear-gradient(180deg, #ffffff, #f4fbf1);
  border: 1.5px solid var(--sx-line); border-radius: 26px 26px 26px 10px;
  box-shadow: var(--sx-shadow);
}
html.tpl-senxi .author-avatar {
  border-radius: 34% 34% 34% 12%; border: 3px solid #fff;
  box-shadow: 0 0 0 3px rgba(123, 196, 127, .5), 0 10px 24px rgba(63, 138, 95, .24);
}
html.tpl-senxi .author-name { color: var(--sx-deep); }
html.tpl-senxi .author-stat { background: #f6fbf3; border: 1.5px solid var(--sx-line); border-radius: 14px 14px 14px 5px; }
html.tpl-senxi .author-stat .n { color: var(--sx-moss); }
html.tpl-senxi .btn-follow { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }
html.tpl-senxi .btn-following { background: #eef7ea; color: var(--sx-moss); border: 1.5px solid var(--sx-line); }

/* ---------- 14. 提示 / 分页 / 加载 / 空态 ---------- */
html.tpl-senxi .toast {
  background: #fff; border: 2px solid var(--sx-leaf); color: var(--sx-ink);
  border-radius: 16px 16px 16px 6px; box-shadow: 0 10px 30px rgba(63, 138, 95, .22);
}
html.tpl-senxi .toast.err { border-color: var(--sx-berry); }
html.tpl-senxi .alert { border-radius: 18px 18px 18px 7px; }
html.tpl-senxi .alert-info { background: #e8f3f1; color: #3d7268; border: 1.5px solid #bfdcd6; }
html.tpl-senxi .alert-warn { background: #fbf3dd; color: #9a7418; border: 1.5px solid #ecd79a; }
html.tpl-senxi .alert-danger { background: #fbe9ef; color: #b04a68; border: 1.5px solid #eec2cf; }
html.tpl-senxi .alert-success { background: #e9f6e9; color: #2e7a4d; border: 1.5px solid #b6e0b6; }

html.tpl-senxi .page-btn {
  border: 1.5px solid var(--sx-line); background: #fff; color: var(--sx-ink2);
  border-radius: 12px 12px 12px 5px;
}
html.tpl-senxi .page-btn.cur {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); color: #fff; border-color: transparent;
}
html.tpl-senxi .page-info { color: var(--sx-ink2); }

html.tpl-senxi .spinner { border: 4px solid rgba(123, 196, 127, .28); border-top-color: var(--sx-moss); }
html.tpl-senxi .loading-box { color: var(--sx-ink2); }
html.tpl-senxi .empty { color: #9bb3a3; }
html.tpl-senxi .empty .big { color: var(--sx-leaf); }
html.tpl-senxi .empty-site-box .es-hill.es-h1,
html.tpl-senxi .empty-site-box .es-hill.es-h2 { background: linear-gradient(180deg, #a7d79a, #6fb87a); }
html.tpl-senxi .empty-site-box .es-film { filter: hue-rotate(70deg) saturate(.8); }
html.tpl-senxi .empty-site-box .es-cloud { background: #f2f9ef; }
html.tpl-senxi .empty-site-box .es-sun { background: radial-gradient(circle, #ffe9a8, rgba(255, 224, 138, 0)); }

/* ---------- 15. 视频详情 ---------- */
html.tpl-senxi .detail-title { color: var(--sx-deep); }
html.tpl-senxi .detail-desc { color: var(--sx-ink2); }
html.tpl-senxi .video-player-wrap { border-radius: 22px 22px 22px 8px; overflow: hidden; box-shadow: var(--sx-shadow); }
html.tpl-senxi .episode-panel {
  background: linear-gradient(180deg, #ffffff, #f4fbf1);
  border: 1.5px solid var(--sx-line); border-radius: 22px 22px 22px 8px;
}
html.tpl-senxi .episode-panel-head { color: var(--sx-deep); border-bottom: 1px dashed var(--sx-line); }
html.tpl-senxi .ep-item {
  background: #fff; border: 1.5px solid var(--sx-line); border-radius: 14px 14px 14px 5px;
}
html.tpl-senxi .ep-item.active,
html.tpl-senxi .ep-item:hover {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); color: #fff; border-color: transparent;
}
html.tpl-senxi .episode-grid { transition: max-height .3s ease; }
html.tpl-senxi .episode-grid.sx-ep-collapsed {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 74%, rgba(0, 0, 0, .3));
  mask-image: linear-gradient(180deg, #000 74%, rgba(0, 0, 0, .3));
}
html.tpl-senxi .sx-ep-more {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; margin: 12px 0 2px; padding: 9px 14px;
  font-family: inherit; font-size: 13px; font-weight: 800; line-height: 1.2;
  color: var(--sx-deep); background: linear-gradient(180deg, #f2fbf0, #e6f4e0);
  border: 1.5px solid var(--sx-line); border-radius: 14px 14px 14px 5px;
  cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
html.tpl-senxi .sx-ep-more:hover {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); color: #fff; border-color: transparent;
}
html.tpl-senxi .sx-ep-more .sx-ep-more-ar {
  width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 6px solid currentColor; transition: transform .25s;
}
html.tpl-senxi .sx-ep-more.is-open .sx-ep-more-ar { transform: rotate(180deg); }
html.tpl-senxi .detail-actions .btn { border-radius: 15px 15px 15px 6px; }
html.tpl-senxi .comment-item { border-bottom: 1px dashed var(--sx-line); }
html.tpl-senxi .comment-user { color: var(--sx-deep); }
html.tpl-senxi .comment-input-box { background: #f7fbf4; border: 1.5px solid var(--sx-line); border-radius: 16px 16px 16px 6px; }
html.tpl-senxi .cmt-like.liked { color: var(--sx-moss); }

/* ---------- 16. 视频流 feed ---------- */
html.tpl-senxi .feed-page { background: linear-gradient(180deg, #f6fbf3, #e7f3e1); }
html.tpl-senxi .feed-top {
  background: rgba(247, 252, 244, .9); backdrop-filter: blur(12px);
  border-bottom: 2px solid rgba(123, 196, 127, .35);
}
html.tpl-senxi .feed-top .ft-tabs span.active { color: var(--sx-deep); }
html.tpl-senxi .feed-top .ft-tabs span.active::after { background: var(--sx-leaf); }
html.tpl-senxi .ft-back, html.tpl-senxi .ft-refresh { color: var(--sx-deep); }
html.tpl-senxi .feed-progress i { background: linear-gradient(90deg, var(--sx-moss), var(--sx-leaf)); }
html.tpl-senxi .feed-info .fi-title { color: var(--sx-deep); }
html.tpl-senxi .feed-actions .fa-btn { color: var(--sx-moss); }
html.tpl-senxi .feed-actions .fa-btn.fa-follow { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }

/* ---------- 17. 聊天 / 抽奖 ---------- */
html.tpl-senxi .chat-head { background: rgba(247, 252, 244, .92); border-bottom: 2px solid rgba(123, 196, 127, .3); }
html.tpl-senxi .chat-wrap { background: linear-gradient(180deg, #eef8ea, #e6f3e0); }
html.tpl-senxi .msg-bubble { background: #fff; border: 1.5px solid var(--sx-line); border-radius: 16px 16px 16px 5px; }
html.tpl-senxi .msg-row.mine .msg-bubble { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); color: #fff; border-color: transparent; }
html.tpl-senxi .chat-input { background: #fff; border-top: 2px solid rgba(123, 196, 127, .3); }
html.tpl-senxi .lottery-grid .card { border-radius: 20px 20px 20px 7px; }
html.tpl-senxi .lottery-prize-tag { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); border-radius: 12px 12px 12px 4px; }

/* ---------- 18. 页脚 ---------- */
html.tpl-senxi .site-footer {
  color: var(--sx-ink2) !important; position: relative; z-index: 1;
}
html.tpl-senxi .site-footer a { color: var(--sx-moss); }

/* ---------- 19. 响应式 ---------- */
@keyframes sxCatPop {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: none; }
}
@media (max-width: 720px) {
  html.tpl-senxi .wrap { padding: 14px 12px 100px; }
  html.tpl-senxi .topbar-inner { padding: 10px 12px 6px; }
  html.tpl-senxi .cat-bar { padding: 8px 12px 10px; }

  /* 顶栏改版：手机端露出网站标题，分类收进叶形 ≡ 按钮的下拉面板 */
  html.tpl-senxi.sx-topbar-compact .topbar-inner { padding: 10px 12px; gap: 10px; }
  html.tpl-senxi.sx-topbar-compact .cat-bar { display: none; }
  html.tpl-senxi.sx-topbar-compact .sx-logo-mark { cursor: pointer; }
  html.tpl-senxi.sx-topbar-compact .sx-logo-mark::before { transition: box-shadow .2s; }
  html.tpl-senxi.sx-topbar-compact .sx-logo-mark.active::before { box-shadow: 0 3px 8px rgba(63, 138, 95, .35), 0 0 0 4px rgba(123, 196, 127, .3); }
  /* 叶形按钮内画三横（≡），保留树叶底 */
  html.tpl-senxi.sx-topbar-compact .sx-logo-mark::after {
    left: 25%; top: 50%; width: 50%; height: 2px;
    background: #fff; border-radius: 2px; opacity: 1;
    transform: translateY(-50%);
    box-shadow: 0 -6px 0 #fff, 0 6px 0 #fff;
  }
  html.tpl-senxi .sx-cat-pop {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 60; display: none;
    background: rgba(247, 252, 244, .97); backdrop-filter: blur(14px);
    border-bottom: 2px solid rgba(123, 196, 127, .38);
    box-shadow: 0 14px 30px rgba(63, 138, 95, .18);
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom, 0px));
  }
  html.tpl-senxi .sx-cat-pop.open { display: block; animation: sxCatPop .18s ease; }
  html.tpl-senxi .sx-cat-pop-grid { display: flex; flex-wrap: wrap; gap: 8px; }

  html.tpl-senxi .vcard { border-radius: 22px 22px 22px 8px; }
  html.tpl-senxi .pcenter-head { padding: 24px 16px 18px; gap: 14px; align-items: center; text-align: center; }
  html.tpl-senxi .pcenter-head .avatar-lg { border-radius: 50%; margin-top: 4px; }
  html.tpl-senxi .pcenter-badges { justify-content: center; }
  html.tpl-senxi .pcenter-stats { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  html.tpl-senxi .sx-meadow { height: 150px; }
  html.tpl-senxi .sx-meadow::before { height: 120px; }
  html.tpl-senxi .sx-meadow::after { height: 100px; }
}

/* ---------- 20. 动效降级 ---------- */
@media (prefers-reduced-motion: reduce) {
  html.tpl-senxi .sx-canopy,
  html.tpl-senxi .sx-meadow,
  html.tpl-senxi .sx-leaf,
  html.tpl-senxi .sx-spore,
  html.tpl-senxi .sx-grass i { animation: none !important; }
  html.tpl-senxi .vcard-media::after { display: none; }
}

/* ==========================================================================
   21. 个人中心增强：电脑端头像右置 / 信息左置 + 悬浮特效
   ========================================================================== */
@media (min-width: 721px) {
  html.tpl-senxi .pcenter-head {
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    align-items: center;
    gap: 26px;
    padding: 28px 30px;
  }
  html.tpl-senxi .pcenter-head .avatar-lg { flex: 0 0 auto; }
  html.tpl-senxi .pcenter-head .info { text-align: left; }

  /* 信息卡：悬浮浮起 + 叶纹角标 */
  html.tpl-senxi .pcenter-head .info {
    position: relative;
    background: linear-gradient(180deg, rgba(255,255,255,.80), rgba(244,251,241,.55));
    border: 1.5px solid rgba(207,228,205,.9);
    border-radius: 22px 22px 22px 8px;
    padding: 18px 20px;
    box-shadow: 0 10px 24px rgba(63,138,95,.10);
    transition: transform .4s cubic-bezier(.2,.8,.3,1), box-shadow .4s, background .4s, border-color .4s;
  }
  html.tpl-senxi .pcenter-head .info:hover {
    transform: translateY(-6px);
    background: linear-gradient(180deg, #ffffff, #f1f9ec);
    border-color: var(--sx-leaf);
    box-shadow: 0 22px 46px rgba(63,138,95,.24);
  }
  html.tpl-senxi .pcenter-head .info::before {
    content: ""; position: absolute; right: 14px; top: 12px; width: 34px; height: 34px;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc3MicgaGVpZ2h0PSc3Micgdmlld0JveD0nMCAwIDcyIDcyJz4KPGcgZmlsbD0nIzdiYzQ3ZicgZmlsbC1vcGFjaXR5PScwLjEzJz4KPHBhdGggZD0nTTM2IDVjMTAgOSAxNSAyMSAxNSAzNCAwIDExLTYgMTktMTUgMjQtOS01LTE1LTEzLTE1LTI0QzIxIDI2IDI2IDE0IDM2IDV6Jy8+CjwvZz4KPGcgc3Ryb2tlPScjMmY2YjRmJyBzdHJva2Utb3BhY2l0eT0nMC4xNCcgc3Ryb2tlLXdpZHRoPScxLjEnIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+CjxwYXRoIGQ9J00zNiAxMHY0OCcvPgo8cGF0aCBkPSdNMzYgMjJsLTkgOE0zNiAyMmw5IDhNMzYgMzZsLTExIDhNMzYgMzZsMTEgOE0zNiA1MGwtOCA3TTM2IDUwbDggNycvPgo8L2c+PC9zdmc+") center/contain no-repeat;
    opacity: .3; pointer-events: none;
    transition: transform .5s, opacity .5s;
  }
  html.tpl-senxi .pcenter-head .info:hover::before { transform: rotate(14deg) scale(1.15); opacity: .55; }
}

/* 头像：呼吸浮动 + 悬停抬升 */
html.tpl-senxi .pcenter-head .avatar-lg {
  transition: transform .5s cubic-bezier(.2,.8,.3,1), box-shadow .5s;
  animation: sxAvatarFloat 6s ease-in-out infinite;
}
html.tpl-senxi .pcenter-head .avatar-lg:hover {
  animation: none;
  transform: translateY(-6px) rotate(-3deg) scale(1.04);
  box-shadow: 0 0 0 3px rgba(123,196,127,.72), 0 0 0 13px rgba(123,196,127,.20), 0 22px 42px rgba(63,138,95,.36);
}
@keyframes sxAvatarFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

/* 徽标：悬浮抬升 */
html.tpl-senxi .pb-tag { transition: transform .28s, box-shadow .28s; }
html.tpl-senxi .pb-tag:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 8px 16px rgba(63,138,95,.2);
}

/* 数据格：悬浮浮起 + 数字放大 */
html.tpl-senxi .pstat {
  transition: transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, border-color .3s, background .3s;
}
html.tpl-senxi .pstat .n { transition: color .3s, transform .3s; }
html.tpl-senxi .pstat:hover {
  transform: translateY(-6px);
  border-color: var(--sx-leaf);
  background: linear-gradient(180deg, #ffffff, #f2faee);
  box-shadow: 0 16px 30px rgba(63,138,95,.24);
}
html.tpl-senxi .pstat:hover .n { transform: scale(1.08); }
html.tpl-senxi .pstat:hover .n { color: var(--sx-deep); }

/* ==========================================================================
   22. 个人中心标签（pcenter-tabs）美化：叶脉药丸 + 渐变激活态
   ========================================================================== */
html.tpl-senxi .pcenter-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 10px;
  padding: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(243,250,239,.97));
  border: 1.5px solid var(--sx-line);
  border-radius: 20px;
  box-shadow: 0 12px 26px rgba(63,138,95,.12);
}
/* 每个标签都是独立按钮卡片，图标在上、文字在下，网格行内上下对齐 */
html.tpl-senxi .pctab {
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 78px;
  padding: 12px 8px;
  background: linear-gradient(180deg, #ffffff, #f4fbf0);
  border: 1.5px solid var(--sx-line);
  border-radius: 16px 16px 16px 6px;
  color: var(--sx-ink2);
  font-weight: 800;
  text-align: center;
  white-space: normal;
  overflow: hidden;
  box-shadow: 0 6px 14px rgba(63,138,95,.08);
  transition: transform .25s, background .25s, border-color .25s, box-shadow .25s, color .25s;
}
html.tpl-senxi .pctab .pctab-ico {
  width: 30px; height: 30px; padding: 6px;
  border-radius: 50%;
  background: #eef7ea; color: var(--sx-moss);
  transition: background .25s, color .25s, transform .25s;
}
html.tpl-senxi .pctab .pctab-txt { font-size: 12.5px; line-height: 1.25; }
html.tpl-senxi .pctab:hover {
  background: #f4fbef;
  border-color: var(--sx-leaf);
  color: var(--sx-deep);
  transform: translateY(-4px);
  box-shadow: 0 12px 22px rgba(63,138,95,.18);
}
html.tpl-senxi .pctab:hover .pctab-ico { transform: rotate(-8deg) scale(1.08); }
html.tpl-senxi .pctab.active {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(63,138,95,.34);
}
html.tpl-senxi .pctab.active .pctab-ico { background: rgba(255,255,255,.24); color: #fff; }
html.tpl-senxi .pctab.active::after {
  content: ""; position: absolute; left: 50%; bottom: 5px;
  width: 18px; height: 3px; border-radius: 3px; background: rgba(255,255,255,.82);
  transform: translateX(-50%);
}

/* ==========================================================================
   23. 会员卡片叶纹背景（我的会员 / 我的会员中心 / 当前生效会员）
   ========================================================================== */
html.tpl-senxi .mem-card {
  position: relative; overflow: hidden;
  background-image:
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc3MicgaGVpZ2h0PSc3Micgdmlld0JveD0nMCAwIDcyIDcyJz4KPGcgZmlsbD0nIzdiYzQ3ZicgZmlsbC1vcGFjaXR5PScwLjEzJz4KPHBhdGggZD0nTTM2IDVjMTAgOSAxNSAyMSAxNSAzNCAwIDExLTYgMTktMTUgMjQtOS01LTE1LTEzLTE1LTI0QzIxIDI2IDI2IDE0IDM2IDV6Jy8+CjwvZz4KPGcgc3Ryb2tlPScjMmY2YjRmJyBzdHJva2Utb3BhY2l0eT0nMC4xNCcgc3Ryb2tlLXdpZHRoPScxLjEnIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+CjxwYXRoIGQ9J00zNiAxMHY0OCcvPgo8cGF0aCBkPSdNMzYgMjJsLTkgOE0zNiAyMmw5IDhNMzYgMzZsLTExIDhNMzYgMzZsMTEgOE0zNiA1MGwtOCA3TTM2IDUwbDggNycvPgo8L2c+PC9zdmc+"),
    linear-gradient(178deg, #ffffff 0%, #f2faee 66%, #e6f4e0 100%);
  background-size: 78px 78px, auto;
  background-repeat: repeat, no-repeat;
  background-position: 50% 50%, 0 0;
  border-color: var(--sx-line);
}
html.tpl-senxi .mem-card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 100% 0%, rgba(255,224,138,.26), transparent 55%);
}
html.tpl-senxi .mem-card > * { position: relative; z-index: 1; }

html.tpl-senxi .mvip-active {
  position: relative; overflow: hidden;
  display: flex; align-items: stretch; gap: 18px;
  background-image:
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc3MicgaGVpZ2h0PSc3Micgdmlld0JveD0nMCAwIDcyIDcyJz4KPGcgZmlsbD0nIzdiYzQ3ZicgZmlsbC1vcGFjaXR5PScwLjEzJz4KPHBhdGggZD0nTTM2IDVjMTAgOSAxNSAyMSAxNSAzNCAwIDExLTYgMTktMTUgMjQtOS01LTE1LTEzLTE1LTI0QzIxIDI2IDI2IDE0IDM2IDV6Jy8+CjwvZz4KPGcgc3Ryb2tlPScjMmY2YjRmJyBzdHJva2Utb3BhY2l0eT0nMC4xNCcgc3Ryb2tlLXdpZHRoPScxLjEnIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+CjxwYXRoIGQ9J00zNiAxMHY0OCcvPgo8cGF0aCBkPSdNMzYgMjJsLTkgOE0zNiAyMmw5IDhNMzYgMzZsLTExIDhNMzYgMzZsMTEgOE0zNiA1MGwtOCA3TTM2IDUwbDggNycvPgo8L2c+PC9zdmc+"),
    linear-gradient(135deg, #eaf7e3, #d8efd3) !important;
  background-size: 64px 64px, auto;
  background-repeat: repeat, no-repeat;
  background-position: 50% 50%, 0 0;
  border: 1.5px solid rgba(123,196,127,.55) !important;
  border-radius: 18px 18px 18px 7px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6), 0 10px 24px rgba(63,138,95,.14);
  transition: transform .4s cubic-bezier(.2,.8,.3,1), box-shadow .4s;
}
html.tpl-senxi .mvip-active:hover {
  transform: translateY(-4px);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), 0 20px 40px rgba(63,138,95,.22);
}
html.tpl-senxi .mvip-active::after {
  content: ""; position: absolute; right: -20px; top: -20px; width: 110px; height: 110px; border-radius: 50%;
  background: radial-gradient(circle, rgba(167,215,154,.5), transparent 70%);
  pointer-events: none;
}
html.tpl-senxi .mvip-active > * { position: relative; z-index: 1; }

/* ==========================================================================
   24. 视频详情双栏：左侧播放器 + 右侧作者卡 / TA 的最新视频
   ========================================================================== */
@media (min-width: 901px) {
  html.tpl-senxi body.sx-page-video #content.sx-video-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 300px);
    gap: 18px;
    align-items: start;
  }
  html.tpl-senxi body.sx-page-video #content.sx-video-grid > * { margin-top: 0 !important; }
  html.tpl-senxi body.sx-page-video #content.sx-video-grid > .video-player-wrap { grid-column: 1; grid-row: 1; }
  html.tpl-senxi body.sx-page-video #content.sx-video-grid > .sx-video-side { grid-column: 2; grid-row: 1; align-self: start; }
  html.tpl-senxi body.sx-page-video #content.sx-video-grid > :not(.video-player-wrap):not(.sx-video-side) { grid-column: 1 / -1; }
  /* 作者信息已移到右侧卡片，隐藏详情内的作者行，避免重复 */
  html.tpl-senxi body.sx-page-video .detail-body .video-author { display: none; }
}

html.tpl-senxi .sx-video-side { display: flex; flex-direction: column; min-width: 0; }

/* 作者信息 + TA 的最新视频：合并为同一张卡片 */
html.tpl-senxi .sx-vs-card {
  display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff, #f5fbf2);
  border: 2px solid var(--sx-line);
  border-radius: 24px 24px 24px 9px;
  box-shadow: var(--sx-shadow-sm);
}
/* 作者区：头像居左，右侧显示名称 / 作品 / 粉丝 / 进入主页（紧凑，给视频列表留高度） */
html.tpl-senxi .sx-vs-author {
  position: relative;
  display: flex; flex-direction: row; align-items: center; gap: 12px;
  text-align: left;
  padding: 14px 16px;
  background:
    radial-gradient(ellipse at 0% -40%, rgba(255,224,138,.32), transparent 60%),
    linear-gradient(165deg, #ffffff, #eef8ea 70%, #e3f2e0);
}
html.tpl-senxi .sx-vs-a-img {
  flex: 0 0 58px; width: 58px; height: 58px; overflow: hidden;
  border-radius: 30% 30% 30% 12%; border: 2.5px solid #fff;
  box-shadow: 0 0 0 2.5px rgba(123,196,127,.55), 0 0 0 6px rgba(123,196,127,.14), 0 8px 18px rgba(63,138,95,.26);
}
html.tpl-senxi .sx-vs-a-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
html.tpl-senxi .sx-vs-a-name { font-weight: 900; color: var(--sx-deep); font-size: 15px; }
html.tpl-senxi .sx-vs-a-sig { display: none; }
html.tpl-senxi .sx-vs-a-stats { display: flex; flex-direction: row; align-items: baseline; gap: 16px; margin-top: 0; }
html.tpl-senxi .sx-vs-a-stats span { font-size: 11.5px; color: var(--sx-ink2); display: flex; flex-direction: row; align-items: baseline; gap: 3px; }
html.tpl-senxi .sx-vs-a-stats b { color: var(--sx-moss); font-size: 15px; }
html.tpl-senxi .sx-vs-a-info {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; align-items: flex-start; gap: 5px;
}
html.tpl-senxi .sx-vs-a-go { flex: 0 0 auto; align-self: center; }

html.tpl-senxi .sx-vs-list-head {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 12px 14px 9px;
  border-top: 1.5px dashed var(--sx-line);
  font-weight: 900; color: var(--sx-deep); font-size: 14px;
}
html.tpl-senxi .sx-vs-list-head .sx-vs-count { font-size: 11.5px; font-weight: 700; color: #9bb3a3; }
html.tpl-senxi .sx-vs-vids {
  display: flex; flex-direction: column; gap: 10px;
  flex: 1 1 auto; min-height: 0;
  max-height: 60vh; overflow: auto; overscroll-behavior: contain;
  padding: 0 12px 12px;
}
html.tpl-senxi .sx-vs-vids::-webkit-scrollbar { width: 5px; }
html.tpl-senxi .sx-vs-vids::-webkit-scrollbar-thumb { background: rgba(123,196,127,.5); border-radius: 5px; }

html.tpl-senxi .sx-vs-vid {
  display: flex; gap: 10px; cursor: pointer;
  padding: 6px; border: 1.5px solid transparent;
  border-radius: 14px 14px 14px 5px;
  transition: background .25s, border-color .25s, transform .25s;
}
html.tpl-senxi .sx-vs-vid:hover { background: #f4fbef; border-color: var(--sx-line); transform: translateX(3px); }
html.tpl-senxi .sx-vs-thumb {
  position: relative; flex: 0 0 104px; width: 104px; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: 12px 12px 12px 4px; background: linear-gradient(135deg, #eaf3e6, #f6fbf3);
}
html.tpl-senxi .sx-vs-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
html.tpl-senxi .sx-vs-thumb .sx-vs-dur {
  position: absolute; right: 5px; bottom: 5px;
  background: rgba(31,54,40,.7); color: #fff; font-size: 10.5px; padding: 1px 6px; border-radius: 7px;
}
html.tpl-senxi .sx-vs-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
html.tpl-senxi .sx-vs-t {
  font-size: 12.5px; font-weight: 800; color: var(--sx-ink); line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
html.tpl-senxi .sx-vs-s { font-size: 11px; color: #9bb3a3; }
html.tpl-senxi .sx-vs-empty { font-size: 12.5px; color: #9bb3a3; text-align: center; padding: 18px 0; }

html.tpl-senxi .sx-vs-skel { display: flex; gap: 10px; padding: 6px; }
html.tpl-senxi .sx-vs-skel .sk-thumb {
  flex: 0 0 104px; width: 104px; aspect-ratio: 16 / 9; border-radius: 12px 12px 12px 4px;
  background: linear-gradient(90deg, #eef7ea 25%, #e0f0da 37%, #eef7ea 63%);
  background-size: 400% 100%; animation: sxShimmer 1.4s ease infinite;
}
html.tpl-senxi .sx-vs-skel .sk-line { flex: 1; display: flex; flex-direction: column; gap: 7px; justify-content: center; }
html.tpl-senxi .sx-vs-skel .sk-line i {
  height: 11px; border-radius: 6px;
  background: linear-gradient(90deg, #eef7ea 25%, #e0f0da 37%, #eef7ea 63%);
  background-size: 400% 100%; animation: sxShimmer 1.4s ease infinite;
}
html.tpl-senxi .sx-vs-skel .sk-line i:last-child { width: 60%; }
@keyframes sxShimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* ==========================================================================
   25. 新增动效降级
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html.tpl-senxi .pcenter-head .avatar-lg { animation: none !important; }
  html.tpl-senxi .pcenter-head .info,
  html.tpl-senxi .pcenter-head .info::before,
  html.tpl-senxi .pcenter-head .avatar-lg,
  html.tpl-senxi .pb-tag,
  html.tpl-senxi .pstat,
  html.tpl-senxi .pstat .n,
  html.tpl-senxi .pctab,
  html.tpl-senxi .pctab .pctab-ico,
  html.tpl-senxi .sx-vs-vid,
  html.tpl-senxi .sx-vs-skel .sk-thumb,
  html.tpl-senxi .sx-vs-skel .sk-line i { animation: none !important; transition: none !important; }
  html.tpl-senxi .pcenter-head .info:hover,
  html.tpl-senxi .pcenter-head .avatar-lg:hover,
  html.tpl-senxi .pb-tag:hover,
  html.tpl-senxi .pstat:hover,
  html.tpl-senxi .pctab:hover,
  html.tpl-senxi .sx-vs-vid:hover { transform: none !important; }
  html.tpl-senxi .mvip-shine { animation: none !important; }
}

/* ==========================================================================
   26. 动态 VIP 展示（填充「我的会员」右侧留白）
   ========================================================================== */
html.tpl-senxi .mvip-main { flex: 1 1 auto; min-width: 0; position: relative; z-index: 1; }
html.tpl-senxi .mvip-panel {
  position: relative; z-index: 1;
  flex: 0 0 208px; align-self: stretch;
  display: flex; flex-direction: column; justify-content: center; gap: 5px;
  padding: 16px 18px; overflow: hidden;
  border-radius: 16px 16px 16px 6px;
  background: linear-gradient(150deg, #2f6b4f, #4e9a63 46%, #7bc47f);
  color: #f2fff0;
  box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3), 0 14px 28px rgba(47,107,79,.3);
}
html.tpl-senxi .mvip-shine {
  position: absolute; top: -40%; left: -70%; width: 55%; height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transform: rotate(16deg); pointer-events: none;
  animation: sxVipShine 4.6s ease-in-out infinite;
}
@keyframes sxVipShine { 0% { left: -70%; } 55% { left: 150%; } 100% { left: 150%; } }
html.tpl-senxi .mvip-head { display: flex; align-items: center; gap: 6px; color: #ffe08a; }
html.tpl-senxi .mvip-crown { display: inline-flex; }
html.tpl-senxi .mvip-tier { font-size: 12px; font-weight: 900; letter-spacing: 3px; color: #ffe08a; }
html.tpl-senxi .mvip-plan {
  font-size: 13px; font-weight: 800; line-height: 1.4; color: #fff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.tpl-senxi .mvip-days { display: flex; align-items: baseline; gap: 3px; color: #ffe08a; }
html.tpl-senxi .mvip-days b {
  font-size: 34px; font-weight: 900; line-height: 1; letter-spacing: -.5px;
  font-variant-numeric: tabular-nums; text-shadow: 0 3px 10px rgba(0,0,0,.22);
}
html.tpl-senxi .mvip-days i { font-style: normal; font-size: 12px; font-weight: 800; }
html.tpl-senxi .mvip-cap { font-size: 10.5px; letter-spacing: 1px; color: rgba(242,255,240,.72); }
html.tpl-senxi .mvip-bar { margin-top: 3px; height: 6px; border-radius: 6px; background: rgba(255,255,255,.25); overflow: hidden; }
html.tpl-senxi .mvip-bar i {
  display: block; height: 100%; width: 0; border-radius: 6px;
  background: linear-gradient(90deg, #ffe08a, #fff6d3);
  transition: width 1.1s cubic-bezier(.2,.8,.3,1);
}

/* ==========================================================================
   27. 移动端适配（会员 VIP 卡片）
   ========================================================================== */
@media (max-width: 720px) {
  html.tpl-senxi .mvip-active { flex-direction: column; gap: 12px; }
  html.tpl-senxi .mvip-panel {
    flex: 0 0 auto; flex-direction: row; align-items: center; justify-content: space-between;
    gap: 12px; padding: 12px 16px;
  }
  html.tpl-senxi .mvip-head { flex: 0 0 auto; }
  html.tpl-senxi .mvip-plan { flex: 1 1 auto; font-size: 12.5px; }
  html.tpl-senxi .mvip-days b { font-size: 26px; }
  html.tpl-senxi .mvip-cap, html.tpl-senxi .mvip-bar { display: none; }
  html.tpl-senxi .pcenter-tabs { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 10px; }
  html.tpl-senxi .pctab { min-height: 72px; padding: 10px 6px; }
  html.tpl-senxi .pctab .pctab-txt { font-size: 12px; }
}

/* ==========================================================================
   28. 私信 / 聊天 / 消息中心森系化（含背景叶纹）
   ========================================================================== */
html.tpl-senxi .msg-center {
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(233,246,226,.72)),
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc3MicgaGVpZ2h0PSc3Micgdmlld0JveD0nMCAwIDcyIDcyJz4KPGcgZmlsbD0nIzdiYzQ3ZicgZmlsbC1vcGFjaXR5PScwLjEzJz4KPHBhdGggZD0nTTM2IDVjMTAgOSAxNSAyMSAxNSAzNCAwIDExLTYgMTktMTUgMjQtOS01LTE1LTEzLTE1LTI0QzIxIDI2IDI2IDE0IDM2IDV6Jy8+CjwvZz4KPGcgc3Ryb2tlPScjMmY2YjRmJyBzdHJva2Utb3BhY2l0eT0nMC4xNCcgc3Ryb2tlLXdpZHRoPScxLjEnIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+CjxwYXRoIGQ9J00zNiAxMHY0OCcvPgo8cGF0aCBkPSdNMzYgMjJsLTkgOE0zNiAyMmw5IDhNMzYgMzZsLTExIDhNMzYgMzZsMTEgOE0zNiA1MGwtOCA3TTM2IDUwbDggNycvPgo8L2c+PC9zdmc+") 0 0 / 96px 96px repeat;
  border: 2px solid var(--sx-line);
  box-shadow: 0 12px 30px rgba(63,138,95,.14);
}
html.tpl-senxi .msg-nav {
  background: linear-gradient(180deg, #f2fbe9, #e3f2e0);
  border-right: 2px solid var(--sx-line);
}
html.tpl-senxi .msg-nav-item { color: #9bb3a3; border-left-color: transparent; }
html.tpl-senxi .msg-nav-item:hover { color: var(--sx-moss); background: rgba(255,255,255,.55); }
html.tpl-senxi .msg-nav-item.active { color: var(--sx-deep); background: #fff; border-left-color: var(--sx-leaf); }
html.tpl-senxi .msg-side { background: rgba(252,254,250,.96); border-right: 2px solid var(--sx-line); }
html.tpl-senxi .msg-side-head { border-bottom: 2px solid var(--sx-line); }
html.tpl-senxi .msg-group-title { color: var(--sx-moss); }
html.tpl-senxi .msg-contact { border-radius: 14px 14px 14px 5px; }
html.tpl-senxi .msg-contact:hover { background: #eef8ea; }
html.tpl-senxi .msg-contact .nm { color: var(--sx-ink); }
html.tpl-senxi .msg-contact .del { color: #b6cdbd; }
html.tpl-senxi .msg-contact .del:hover { color: #d9536b; }
html.tpl-senxi .msg-main { background: transparent; }
html.tpl-senxi .msg-main .chat-msgs { background: transparent; }
html.tpl-senxi .msg-placeholder, html.tpl-senxi .msg-list-empty { color: #a8c2b0; }
html.tpl-senxi .chat-wrap { border: 2px solid var(--sx-line); }
html.tpl-senxi .chat-head {
  background: rgba(247,252,244,.94);
  border-bottom: 2px solid rgba(123,196,127,.3);
}
html.tpl-senxi .chat-back { border: 2px solid var(--sx-line); background: #fff; color: var(--sx-moss); }
html.tpl-senxi .chat-notice {
  background: linear-gradient(135deg,#fff8e8,#ffeecb);
  border-bottom: 1px solid #f0d79a; color: #9a6b00;
}
html.tpl-senxi .msg-bubble { background: #fff; border: 1.5px solid var(--sx-line); color: var(--sx-ink); }
html.tpl-senxi .msg-row.mine .msg-bubble {
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  color: #fff; border-color: transparent;
}
html.tpl-senxi .msg-time { color: #9bb3a3; }
html.tpl-senxi .msg-sys-tag { background: #e8f5e2; color: var(--sx-moss); }
html.tpl-senxi .msg-file { background: #fff; border: 1.5px solid var(--sx-line); }
html.tpl-senxi .msg-file:hover { border-color: var(--sx-leaf); box-shadow: 0 6px 16px rgba(63,138,95,.16); }
html.tpl-senxi .msg-file .file-name { color: var(--sx-ink); }
html.tpl-senxi .gift-card {
  background: linear-gradient(135deg,#fff8e8,#ffeecb);
  border: 1px solid #f0d79a;
}
html.tpl-senxi .msg-row.mine .gift-card {
  background: linear-gradient(135deg,#eaf7e3,#d8efd3);
  border-color: rgba(123,196,127,.55);
}
html.tpl-senxi .gift-card .g-title { color: #9a6b00; }
html.tpl-senxi .msg-row.mine .gift-card .g-title { color: var(--sx-deep); }
html.tpl-senxi .gift-card .g-amt { color: #d9a13c; }
html.tpl-senxi .msg-row.mine .gift-card .g-amt { color: var(--sx-moss); }
html.tpl-senxi .video-card { background: #fff; border-color: var(--sx-line); box-shadow: 0 6px 16px rgba(63,138,95,.12); }
html.tpl-senxi .video-card:hover { border-color: var(--sx-leaf); box-shadow: 0 10px 22px rgba(63,138,95,.2); }
html.tpl-senxi .video-card .vc-cover { background: #eef8ea; }
html.tpl-senxi .video-card .vc-price { color: var(--sx-moss); }
html.tpl-senxi .video-card .vc-tag { background: var(--sx-leaf); }
html.tpl-senxi .msg-row.mine .video-card { border-color: rgba(123,196,127,.55); }
html.tpl-senxi .dialog-item { background: #fbfef9; border: 2px solid var(--sx-line); border-radius: 16px 16px 16px 6px; }
html.tpl-senxi .dialog-item:hover { border-color: var(--sx-leaf); box-shadow: 0 8px 18px rgba(63,138,95,.16); }
html.tpl-senxi .dialog-name { color: var(--sx-deep); }
html.tpl-senxi .dialog-last { color: #9bb3a3; }
html.tpl-senxi .dialog-time { color: #a8c2b0; }
html.tpl-senxi .chat-input { background: #fff; border-top: 2px solid rgba(123,196,127,.3); }
html.tpl-senxi .chat-input input { border: 2px solid var(--sx-line); background: #fff; color: var(--sx-ink); }
html.tpl-senxi .chat-input input:focus { border-color: var(--sx-leaf); }
html.tpl-senxi .chat-tool { border: 2px solid var(--sx-line); background: #fff; }
html.tpl-senxi .chat-tool:hover { border-color: var(--sx-leaf); }
html.tpl-senxi .chat-plus { background: var(--sx-moss); border-color: var(--sx-moss); color: #fff; }
html.tpl-senxi .chat-plus:hover { background: var(--sx-deep); border-color: var(--sx-deep); }
html.tpl-senxi .chat-tools-panel { background: #fff; border: 2px solid var(--sx-line); }
html.tpl-senxi .unread-badge { background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf)); }

/* ==========================================================================
   29. 底部导航栏森系美化（全端）
   ========================================================================== */
html.tpl-senxi .bottom-nav {
  background: rgba(247,252,244,.94);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-top: 2px solid rgba(123,196,127,.28);
  box-shadow: 0 -6px 22px rgba(63,138,95,.14);
}
html.tpl-senxi .bottom-nav::before {
  content: ""; position: absolute; left: 0; right: 0; top: -3px; height: 3px;
  background: linear-gradient(90deg, transparent, var(--sx-leaf), transparent);
  opacity: .55; pointer-events: none;
}
html.tpl-senxi .bottom-nav-inner { gap: 6px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }
html.tpl-senxi .bnav-item {
  color: var(--sx-ink2);
  padding: 7px 22px;
  border: 1.5px solid transparent;
  border-radius: 16px 16px 16px 6px;
  transition: transform .25s cubic-bezier(.2,.8,.3,1), background .25s, border-color .25s, box-shadow .25s, color .25s;
}
html.tpl-senxi .bnav-item:hover {
  color: var(--sx-deep);
  background: #eef8ea;
  border-color: var(--sx-line);
  transform: translateY(-3px);
  box-shadow: 0 8px 16px rgba(63,138,95,.16);
}
html.tpl-senxi .bnav-item svg { transition: transform .25s; }
html.tpl-senxi .bnav-item:hover svg { transform: scale(1.08); }
html.tpl-senxi .bnav-item.active {
  color: #fff;
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(63,138,95,.36);
  transform: translateY(-4px);
}
html.tpl-senxi .bnav-item.active svg { color: #fff; transform: scale(1.06); }
html.tpl-senxi .bnav-item.active::after {
  content: ""; position: absolute; left: 50%; bottom: 3px;
  width: 16px; height: 3px; border-radius: 3px; background: rgba(255,255,255,.85);
  transform: translateX(-50%);
}
/* 沉浸式视频流：深绿半透明导航 */
html.tpl-senxi .feed-page .bottom-nav {
  background: rgba(31,54,40,.42);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-top: none;
  box-shadow: none;
}
html.tpl-senxi .feed-page .bottom-nav::before { opacity: .3; }
html.tpl-senxi .feed-page .bnav-item { color: rgba(255,255,255,.78); }
html.tpl-senxi .feed-page .bnav-item:hover { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.28); }
html.tpl-senxi .feed-page .bnav-item.active {
  color: #fff;
  background: linear-gradient(135deg, var(--sx-moss), var(--sx-leaf));
  border-color: transparent;
}

@media (max-width: 720px) {
  html.tpl-senxi .bottom-nav-inner { gap: 2px; padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px)); }
  html.tpl-senxi .bnav-item { padding: 6px 12px; border-radius: 14px 14px 14px 5px; }
  html.tpl-senxi .bnav-item.active::after { width: 14px; }
}

/* ---------- 30. 个人中心 · 余额卡片森系化（含「已消费余额」） ---------- */
html.tpl-senxi .wallet-grid { gap: 12px; }
html.tpl-senxi .wallet-card {
  position: relative;
  overflow: hidden;
  border: none;
  border-radius: 20px 20px 20px 7px;
  box-shadow: 0 12px 26px -12px rgba(47, 107, 79, .55), inset 0 0 0 1px rgba(255, 255, 255, .18);
  text-shadow: 0 1px 2px rgba(24, 60, 41, .18);
}
html.tpl-senxi .wallet-card::after {
  content: "";
  position: absolute;
  right: -26px;
  bottom: -34px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 68%);
  pointer-events: none;
}
html.tpl-senxi .wallet-card .label { opacity: .92; letter-spacing: .5px; }
html.tpl-senxi .wallet-card .amount { font-variant-numeric: tabular-nums; }
html.tpl-senxi .wallet-card .ic { opacity: .16; }
html.tpl-senxi .wallet-card.wc1 { background: linear-gradient(135deg, #2f6b4f, #6fbb74); }
html.tpl-senxi .wallet-card.wc2 { background: linear-gradient(135deg, #346b5b, #4e9a86); }
html.tpl-senxi .wallet-card.wc3 { background: linear-gradient(135deg, #4a9d6e, #8fc98a); }
html.tpl-senxi .wallet-card.wc4 { background: linear-gradient(135deg, #b98a3a, #d9b061); }
html.tpl-senxi .wallet-card.wc1,
html.tpl-senxi .wallet-card.wc2,
html.tpl-senxi .wallet-card.wc3,
html.tpl-senxi .wallet-card.wc4 { color: #fff; }
@media (max-width: 720px) {
  html.tpl-senxi .wallet-grid { gap: 10px; }
  html.tpl-senxi .wallet-card { border-radius: 16px 16px 16px 6px; }
  html.tpl-senxi .wallet-card .label { font-size: 12px; }
}


/* ==========================================================================
   31. 公告卡片：统一森系同色 + 柳树纹理背景适配
   ========================================================================== */
html.tpl-senxi #annBarTop > div,
html.tpl-senxi #annBarPlans > div,
html.tpl-senxi #annBarLogin > div {
  background: #e7f5e1 !important;
  border: 1.5px solid #b8ddb0 !important;
  color: #2f6b4f !important;
  border-radius: 16px 16px 16px 6px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 8px 18px rgba(63,138,95,.10) !important;
}
html.tpl-senxi #annBarTop > div b,
html.tpl-senxi #annBarPlans > div b,
html.tpl-senxi #annBarLogin > div b { color: #22603f !important; }
html.tpl-senxi .ann-mask .modal {
  background: #f4fbf1 !important;
  border: 1.5px solid #b8ddb0 !important;
  box-shadow: 0 18px 40px rgba(63,138,95,.22) !important;
}
html.tpl-senxi .ann-mask .modal h3 { color: #2f6b4f !important; }

/* ==========================================================================
   32. 分类页面卡片：森绿配色本土化 + 叶脉纹理
   （顶部分类条 cat-chip / 列表页筛选条 filter-bar·filter-chip / 标签云 tag-chip）
   ========================================================================== */
html.tpl-senxi { --sx-card-tex: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc3MicgaGVpZ2h0PSc3Micgdmlld0JveD0nMCAwIDcyIDcyJz4KPGcgZmlsbD0nIzdiYzQ3ZicgZmlsbC1vcGFjaXR5PScwLjEzJz4KPHBhdGggZD0nTTM2IDVjMTAgOSAxNSAyMSAxNSAzNCAwIDExLTYgMTktMTUgMjQtOS01LTE1LTEzLTE1LTI0QzIxIDI2IDI2IDE0IDM2IDV6Jy8+CjwvZz4KPGcgc3Ryb2tlPScjMmY2YjRmJyBzdHJva2Utb3BhY2l0eT0nMC4xNCcgc3Ryb2tlLXdpZHRoPScxLjEnIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+CjxwYXRoIGQ9J00zNiAxMHY0OCcvPgo8cGF0aCBkPSdNMzYgMjJsLTkgOE0zNiAyMmw5IDhNMzYgMzZsLTExIDhNMzYgMzZsMTEgOE0zNiA1MGwtOCA3TTM2IDUwbDggNycvPgo8L2c+PC9zdmc+"); }

html.tpl-senxi .cat-chip {
  background-color: #fff;
  background-image: var(--sx-card-tex);
  background-size: 46px 46px;
  background-position: 50% 50%;
  border: 1.5px solid var(--sx-line);
  color: var(--sx-ink);
  border-radius: 16px 16px 16px 5px;
  box-shadow: 0 2px 6px rgba(63, 138, 95, .06);
}
html.tpl-senxi .cat-chip:hover,
html.tpl-senxi .cat-chip.active {
  background-image: linear-gradient(135deg, #2f6b4f, #3a8055);
  background-size: auto;
  color: #fff; border-color: transparent;
  box-shadow: 0 7px 16px rgba(63, 138, 95, .32);
}
html.tpl-senxi .cat-chip.cat-sub {
  background-image: linear-gradient(180deg, #ffffff, #f3faef);
  border: 1.5px dashed var(--sx-leaf2);
  color: var(--sx-deep);
}
html.tpl-senxi .cat-divider { color: var(--sx-line); }

html.tpl-senxi .filter-bar {
  background-color: #fbfef9;
  background-image: var(--sx-card-tex), linear-gradient(180deg, #ffffff 0%, #f2faee 100%);
  background-size: 84px 84px, auto;
  background-repeat: repeat, no-repeat;
  background-position: 50% 50%, 0 0;
  border: 1.5px solid var(--sx-line);
  border-radius: 18px 18px 18px 7px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 8px 20px rgba(63, 138, 95, .08);
}
html.tpl-senxi .filter-chip {
  background-color: #fff;
  background-image: var(--sx-card-tex);
  background-size: 40px 40px;
  background-position: 50% 50%;
  border: 1.5px solid var(--sx-line);
  color: var(--sx-ink);
  border-radius: 15px 15px 15px 5px;
}
html.tpl-senxi .filter-chip:hover,
html.tpl-senxi .filter-chip.active {
  background-image: linear-gradient(135deg, #2f6b4f, #3a8055);
  background-size: auto;
  color: #fff; border-color: transparent;
  box-shadow: 0 5px 14px rgba(63, 138, 95, .28);
}
html.tpl-senxi .filter-chip.filter-sub {
  background-image: linear-gradient(180deg, #ffffff, #f3faef);
  border: 1.5px dashed var(--sx-leaf2);
  color: var(--sx-deep);
}
html.tpl-senxi .filter-sub-row,
html.tpl-senxi .filter-fee-row { border-top: 1.5px dashed var(--sx-line); }
html.tpl-senxi .tag-toggle { color: var(--sx-deep); border-top: 1.5px dashed var(--sx-line); }
html.tpl-senxi .tag-toggle .arr { color: var(--sx-deep); }
html.tpl-senxi .tag-cloud { border-top: 1.5px dashed var(--sx-line); }
html.tpl-senxi .tag-chip {
  background-color: #fff;
  background-image: var(--sx-card-tex);
  background-size: 36px 36px;
  background-position: 50% 50%;
  border: 1.5px dashed var(--sx-leaf2);
  color: var(--sx-deep);
  border-radius: 14px 14px 14px 4px;
}
html.tpl-senxi .tag-chip:hover,
html.tpl-senxi .tag-chip.active {
  background-image: linear-gradient(135deg, #2f6b4f, #3a8055);
  background-size: auto;
  color: #fff; border-style: solid; border-color: transparent;
}

/* 子分类选中/悬浮时呈现激活态，避免子分类样式覆盖激活态导致看不出选中 */
html.tpl-senxi .cat-chip.cat-sub:hover,
html.tpl-senxi .cat-chip.cat-sub.active,
html.tpl-senxi .filter-chip.filter-sub:hover,
html.tpl-senxi .filter-chip.filter-sub.active {
  background-image: linear-gradient(135deg, #2f6b4f, #3a8055);
  background-size: auto;
  color: #fff; border-style: solid; border-color: transparent;
}

/* ==========================================================================
   30. 氛围动画：页面切到后台时暂停，省电且不可见
   ========================================================================== */
html.tpl-senxi.sx-motion-pause .sx-canopy,
html.tpl-senxi.sx-motion-pause .sx-meadow,
html.tpl-senxi.sx-motion-pause .sx-leaf,
html.tpl-senxi.sx-motion-pause .sx-spore,
html.tpl-senxi.sx-motion-pause .sx-grass i { animation-play-state: paused !important; }
