/* ==============================================
   【九阴真经 · 暗金武侠】专属美化（独立CSS）
   水墨粒子 · 剑意脉冲 · 暗金呼吸 · 太极光标
   适配：角色创建页面 / 江湖主界面 / 文字游戏前端
   直接复制全部代码，替换原有样式即可使用
============================================== */

:root {
  --bg-main: #0d0d14;
  --bg-card: rgba(20, 20, 35, 0.94);
  --bg-input: #141428;
  --text-primary: #d8d0c8;
  --text-secondary: #8a8a9a;
  --gold: #c9a040;
  --gold-light: #e0c060;
  --accent-red: #b05050;
  --accent-blue: #5080b0;
  --accent-green: #50a070;
  --glow-soft: 0 0 14px rgba(201, 160, 64, 0.3);
  --glow-strong: 0 0 24px rgba(224, 192, 96, 0.5);
  --font-display: "STKaiti", "KaiTi", "Microsoft YaHei", sans-serif;
  --font-mono: 'Fira Code', monospace;
  font-size: 17px;
}

* {
  scrollbar-width: thin !important;
  scrollbar-color: var(--gold) #0d0d14 !important;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ===== 全局背景：水墨暗纹 + 剑意浮光 ===== */
body {
  background: var(--bg-main) !important;
  color: var(--text-primary) !important;
  font-family: var(--font-display) !important;
  font-size: 17px !important;
  line-height: 1.6 !important;
  background-image:
    radial-gradient(circle at 15% 25%, rgba(201,160,64,0.08) 0%, transparent 40%),
    radial-gradient(circle at 75% 60%, rgba(80,120,160,0.06) 0%, transparent 40%),
    radial-gradient(circle at 50% 80%, rgba(160,80,80,0.05) 0%, transparent 40%) !important;
  position: relative;
  overflow-x: hidden;
}

/* 全局浮动剑气1 */
body::before {
  content: "";
  position: fixed;
  top: -8%;
  left: -12%;
  width: 55vw;
  height: 55vw;
  background: radial-gradient(circle, rgba(201,160,64,0.1) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
  animation: swordGlow1 20s ease-in-out infinite;
}

/* 全局浮动剑气2 */
body::after {
  content: "";
  position: fixed;
  bottom: -10%;
  right: -8%;
  width: 65vw;
  height: 65vw;
  background: radial-gradient(circle, rgba(160,80,80,0.08) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
  animation: swordGlow2 24s ease-in-out infinite;
}

@keyframes swordGlow1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(6vw, 4vh) scale(1.08); }
  50% { transform: translate(-4vw, 10vh) scale(0.92); }
  75% { transform: translate(-8vw, -3vh) scale(1.15); }
}

@keyframes swordGlow2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-10vw, -6vh) scale(1.2); }
  66% { transform: translate(5vw, -12vh) scale(0.85); }
}

p, div, span, li, a, td, th, label, button,
input, select, textarea, .form-title, .regret-title,
.panel-title, .title, h1, h2, h3, h4, h5, h6,
.tab-btn, .event-content, .config-input, .config-select {
  font-size: inherit !important;
}

/* ===== 无序列表：金色剑穗标记 ===== */
ul {
  list-style: none !important;
  padding-left: 1.5em !important;
}

ul li {
  position: relative;
  padding-left: 0.5em;
}

ul li::before {
  content: "⚔";
  position: absolute;
  left: -1.4em;
  color: var(--gold);
  font-size: 0.65em;
  text-shadow: 0 0 8px var(--gold), 0 0 15px var(--gold-light);
  animation: swordMarkerPulse 2.5s ease-in-out infinite;
  line-height: inherit;
}

@keyframes swordMarkerPulse {
  0%, 100% { opacity: 0.5; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.3) rotate(15deg); }
}

ol {
  padding-left: 1.8em !important;
}

ol li::marker {
  color: var(--gold-light);
  text-shadow: 0 0 6px var(--gold);
  font-weight: bold;
}

/* ===== 引用块：暗金卷轴 ===== */
blockquote {
  border-left: 3px solid var(--gold) !important;
  background: rgba(201, 160, 64, 0.05) !important;
  margin: 1em 0 !important;
  padding: 0.8em 1.2em !important;
  border-radius: 0 8px 8px 0 !important;
  color: var(--text-secondary) !important;
  font-style: italic;
  box-shadow: inset 0 0 15px rgba(201, 160, 64, 0.06);
  animation: scrollBreath 4s ease-in-out infinite;
}

@keyframes scrollBreath {
  0%, 100% { box-shadow: inset 0 0 15px rgba(201, 160, 64, 0.04); }
  50% { box-shadow: inset 0 0 25px rgba(201, 160, 64, 0.12); }
}

/* ===== 代码块 ===== */
code {
  background: rgba(201, 160, 64, 0.1) !important;
  color: var(--gold-light) !important;
  padding: 0.2em 0.5em !important;
  border-radius: 4px !important;
  font-family: var(--font-mono) !important;
  font-size: 0.9em;
  border: 1px solid rgba(201, 160, 64, 0.2);
}

pre {
  background: rgba(13, 13, 20, 0.95) !important;
  border: 1px solid var(--gold) !important;
  border-radius: 10px !important;
  padding: 1em !important;
  box-shadow: var(--glow-soft), inset 0 0 20px rgba(201, 160, 64, 0.04);
  overflow-x: auto;
}

pre code {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  color: var(--text-primary) !important;
}

/* ===== 表格：金边暗底 ===== */
table {
  border-collapse: collapse !important;
  width: 100%;
  margin: 1em 0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--glow-soft);
}

th {
  background: linear-gradient(135deg, rgba(201,160,64,0.25), rgba(138,106,48,0.15)) !important;
  color: var(--gold-light) !important;
  padding: 10px 14px !important;
  text-align: left;
  font-weight: bold;
  text-shadow: 0 0 8px var(--gold);
  border-bottom: 2px solid var(--gold) !important;
}

td {
  background: rgba(13, 13, 20, 0.6) !important;
  padding: 8px 14px !important;
  border-bottom: 1px solid rgba(201, 160, 64, 0.12) !important;
  color: var(--text-primary) !important;
}

tr:hover td {
  background: rgba(201, 160, 64, 0.08) !important;
  box-shadow: inset 0 0 15px rgba(201, 160, 64, 0.08);
}

/* ===== 卡片：悬浮 + 暗金流光边框 ===== */
div[class*="container"],
div[class*="panel"],
div[class*="card"] {
  background: var(--bg-card) !important;
  border: 1px solid transparent !important;
  background-image: linear-gradient(var(--bg-card), var(--bg-card)),
                    linear-gradient(135deg, var(--gold), var(--accent-red), var(--gold-light)) !important;
  background-origin: border-box !important;
  background-clip: padding-box, border-box !important;
  border-radius: 14px !important;
  box-shadow: var(--glow-soft), 0 0 3px rgba(201,160,64,0.4) !important;
  position: relative;
  animation: cardFloat 8s ease-in-out infinite;
}

@keyframes cardFloat {
  0%, 100% { transform: translateY(0px); }
  30% { transform: translateY(-4px); }
  60% { transform: translateY(-1px); }
}

@keyframes immortalPulse {
  0%   { opacity: 0.12; transform: scale(1); }
  35%  { opacity: 0.28; transform: scale(1.005); }
  70%  { opacity: 0.15; transform: scale(1.001); }
  100% { opacity: 0.12; transform: scale(1); }
}

div[class*="container"]::before,
div[class*="card"]::before {
  content: '';
  position: absolute;
  top: -2px; left: -2px; right: -2px; bottom: -2px;
  border-radius: 16px;
  background: linear-gradient(45deg, transparent, #c9a040, #8a6a30, transparent);
  z-index: -1;
  opacity: 0.15;
  animation: immortalPulse 4s infinite alternate;
}

div[class*="container"]:hover,
div[class*="card"]:hover {
  animation-play-state: paused;
  transform: translateY(-4px) !important;
  border-color: var(--gold) !important;
  box-shadow: 0 0 30px rgba(201,160,64,0.6), 0 0 15px rgba(224,192,96,0.4) !important;
}

/* ===== 按钮与交互元素 ===== */
button.active,
.tab-btn.active,
div[class*="active"] {
  color: var(--gold-light) !important;
  background: linear-gradient(135deg, rgba(201,160,64,0.18), rgba(138,106,48,0.18)) !important;
  font-weight: bold !important;
  text-shadow: 0 0 10px var(--gold) !important;
  border-bottom: 2px solid var(--gold-light) !important;
  box-shadow: 0 2px 16px rgba(201,160,64,0.4) !important;
}

button:hover,
.tab-btn:hover {
  border-color: var(--gold) !important;
  box-shadow: 0 0 22px rgba(201,160,64,0.7), 0 0 10px rgba(224,192,96,0.4) !important;
  transform: translateY(-2px) !important;
}

/* ===== 输入框：暗金内底 ===== */
input,
select,
textarea,
.config-input {
  background: var(--bg-input) !important;
  border: 1px solid rgba(201,160,64,0.35) !important;
  color: var(--text-primary) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  transition: all 0.4s ease;
  caret-color: var(--gold) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 18px rgba(201,160,64,0.6), inset 0 0 12px rgba(224,192,96,0.15) !important;
  animation: inputBreath 2.5s ease-in-out infinite;
  caret-color: var(--gold-light) !important;
}

@keyframes inputBreath {
  0%, 100% { box-shadow: 0 0 18px rgba(201,160,64,0.5), inset 0 0 12px rgba(224,192,96,0.1); }
  50% { box-shadow: 0 0 28px rgba(201,160,64,0.85), inset 0 0 18px rgba(224,192,96,0.3); }
}

select option {
  background: #0d0d14 !important;
  color: #d8d0c8 !important;
}

/* ===== 提交按钮：剑气扫过 ===== */
button[type="submit"],
button[class*="submit"],
.config-submit,
.send-btn {
  background: linear-gradient(135deg, #2a1a08, #3d2810) !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold) !important;
  font-weight: bold !important;
  letter-spacing: 3px !important;
  text-shadow: 0 0 8px var(--gold), 0 0 15px var(--gold-light) !important;
  border-radius: 8px !important;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease !important;
  z-index: 1;
}

button[type="submit"]::after,
.send-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 300%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(224,192,96,0.25) 30%, 
    rgba(255,215,100,0.4) 50%, 
    rgba(224,192,96,0.25) 70%, 
    transparent 100%);
  transform: skewX(-25deg);
  transition: 0.5s;
  z-index: -1;
  animation: btnShimmer 4s linear infinite;
}

@keyframes btnShimmer {
  0% { left: -100%; }
  100% { left: 100%; }
}

button[type="submit"]:hover,
.send-btn:hover {
  background: linear-gradient(135deg, #6a4020, #906030) !important;
  border-color: var(--gold-light) !important;
  color: var(--gold-light) !important;
  box-shadow: 0 0 30px rgba(201,160,64,0.8), 0 0 15px var(--gold) !important;
  text-shadow: 0 0 15px var(--gold-light) !important;
}

/* ===== 信息展示区：暗金底纹 ===== */
.event-content,
div[class*="content"] {
  background: rgba(13,13,20,0.92) !important;
  border: 1px dashed rgba(201,160,64,0.35) !important;
  border-radius: 10px !important;
  color: #e0d8c8 !important;
  font-family: var(--font-mono) !important;
  box-shadow: inset 0 0 20px rgba(201,160,64,0.06) !important;
  padding: 14px !important;
  line-height: 1.8 !important;
}

/* ===== 标题：暗金闪光 ===== */
h1, h2, h3,
.form-title, .regret-title, .panel-title, .title {
  color: var(--gold-light) !important;
  text-shadow: 0 0 10px var(--gold), 0 0 20px var(--accent-red) !important;
  letter-spacing: 4px !important;
  background: linear-gradient(90deg, #e0c060, #c9a040, #e0c060);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;
  animation: titleShine 3s linear infinite;
}

@keyframes titleShine {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* ===== 底部/侧边栏 ===== */
.regret-wrap,
div[class*="sidebar"],
div[class*="footer"] {
  border-top: 1px solid rgba(201,160,64,0.35) !important;
  background: rgba(0, 0, 0, 0.3) !important;
}

/* ===== 滚动条：暗金 ===== */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #0d0d14; }
::-webkit-scrollbar-thumb {
  background: var(--gold);
  border-radius: 4px;
  box-shadow: 0 0 10px var(--gold);
  animation: scrollGlow 3s ease-in-out infinite;
}

@keyframes scrollGlow {
  0%, 100% { box-shadow: 0 0 6px var(--gold); }
  50% { box-shadow: 0 0 18px var(--gold-light), 0 0 6px var(--gold); }
}

/* ===== 强制聊天背景不透明 ===== */
[class*="chat"],
[class*="message"],
[class*="conversation"],
[class*="dialog"],
[class*="talk"],
[class*="chat-container"] {
  background: var(--bg-card) !important;
  background-image: none !important;
}

/* ===== 全局选中文字 ===== */
::selection {
  background: #c9a040;
  color: #0d0d14;
  text-shadow: 0 0 8px rgba(224,192,96,0.4);
}
::-moz-selection {
  background: #c9a040;
  color: #0d0d14;
  text-shadow: 0 0 8px rgba(224,192,96,0.4);
}

/* ==============================================
   【九阴 · 太极剑意光标系统】
   太极脉冲 · 剑意十字 · 暗金指针（全面覆盖）
============================================== */

@keyframes taijiCrossPulse {
  0%   { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3CradialGradient id='g' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060' stop-opacity='0.5'/%3E%3Cstop offset='100%25' stop-color='%23c9a040' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='14' fill='url(%23g)'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23c9a040' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23e0c060' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 16 4 A 12 12 0 0 1 28 16' fill='none' stroke='%238a6a30' stroke-width='1.2' opacity='0.4'/%3E%3C/svg%3E") 16 16, crosshair; }
  33%  { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3CradialGradient id='g' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060' stop-opacity='0.7'/%3E%3Cstop offset='100%25' stop-color='%238a6a30' stop-opacity='0.1'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='15' fill='url(%23g)'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23c9a040' stroke-width='2' opacity='1'/%3E%3Ccircle cx='16' cy='16' r='2.5' fill='%23e0c060' opacity='0.9'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%238a6a30' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%238a6a30' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%238a6a30' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%238a6a30' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M 28 16 A 12 12 0 0 1 16 28' fill='none' stroke='%23e0c060' stroke-width='1.5' opacity='0.5'/%3E%3C/svg%3E") 16 16, crosshair; }
  66%  { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3CradialGradient id='g' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%23c9a040' stop-opacity='0.6'/%3E%3Cstop offset='100%25' stop-color='%23e0c060' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='14' fill='url(%23g)'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%238a6a30' stroke-width='1.5' opacity='0.8'/%3E%3Ccircle cx='16' cy='16' r='1.5' fill='%23e0c060' opacity='0.6'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 16 28 A 12 12 0 0 1 4 16' fill='none' stroke='%23e0c060' stroke-width='1.2' opacity='0.4'/%3E%3C/svg%3E") 16 16, crosshair; }
  100% { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3CradialGradient id='g' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060' stop-opacity='0.5'/%3E%3Cstop offset='100%25' stop-color='%23c9a040' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='14' fill='url(%23g)'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23c9a040' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23e0c060' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%23c9a040' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 4 16 A 12 12 0 0 1 16 4' fill='none' stroke='%238a6a30' stroke-width='1.2' opacity='0.4'/%3E%3C/svg%3E") 16 16, crosshair; }
}

body {
  animation: taijiCrossPulse 2.8s steps(4, end) infinite;
}

/* ===== 太极脉冲指针（可点击元素） ===== */
@keyframes taijiPointer {
  0%, 100% {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cdefs%3E%3ClinearGradient id='sword' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23c9a040'/%3E%3Cstop offset='100%25' stop-color='%238a6a30'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M14 2 L18 12 L26 14 L18 16 L14 26 L10 16 L2 14 L10 12 Z' fill='url(%23sword)' stroke='%23e0c060' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14, pointer;
  }
  50% {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cdefs%3E%3ClinearGradient id='sword' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060'/%3E%3Cstop offset='100%25' stop-color='%23c9a040'/%3E%3C/linearGradient%3E%3CradialGradient id='glow' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060' stop-opacity='0.4'/%3E%3Cstop offset='100%25' stop-color='%23e0c060' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='14' cy='14' r='13' fill='url(%23glow)'/%3E%3Cpath d='M14 2 L18 12 L26 14 L18 16 L14 26 L10 16 L2 14 L10 12 Z' fill='url(%23sword)' stroke='%23e0c060' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14, pointer;
  }
}

:where(
  a, button, [role="button"],
  input[type="submit"], input[type="button"], input[type="reset"],
  .config-submit, .send-btn,
  .tab-btn, .regret-title, .panel-title, .form-title, .title,
  .btn, .button, [onclick], label, select, summary,
  [tabindex]:not([tabindex="-1"]),
  .link, .nav-link, .menu-item, .dropdown-toggle,
  .accordion-header, .modal-close,
  [class*="clickable"], [class*="pointer"], [class*="btn"]
):not(
  input[type="text"], input[type="search"], input[type="password"],
  input[type="email"], input[type="number"], textarea,
  [contenteditable="true"], .config-input
) {
  animation: taijiPointer 2s ease-in-out infinite;
}

/* 文本输入区：墨剑光标 */
input[type="text"], input[type="search"], input[type="password"], input[type="email"],
input[type="number"], textarea, [contenteditable="true"], .config-input {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='24' viewBox='0 0 14 24'%3E%3Cdefs%3E%3ClinearGradient id='vine' x1='0%25' y1='0%25' x2='0%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23e0c060'/%3E%3Cstop offset='50%25' stop-color='%23c9a040'/%3E%3Cstop offset='100%25' stop-color='%238a6a30'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='4' y='3' width='2.5' height='18' fill='url(%23vine)' rx='1'/%3E%3Crect x='2' y='0' width='6' height='2.5' fill='%23c9a040' rx='1.2'/%3E%3Crect x='2' y='21.5' width='6' height='2.5' fill='%238a6a30' rx='1.2'/%3E%3Ccircle cx='5' cy='3' r='2' fill='%23e0c060' opacity='0.8'/%3E%3Ccircle cx='5' cy='21' r='2' fill='%238a6a30' opacity='0.8'/%3E%3C/svg%3E") 7 12, text !important;
}

/* 拖拽元素：剑爪 */
[draggable="true"], .draggable, .resizable, .grab {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='7' cy='7' r='3' fill='%23c9a040' opacity='0.8'/%3E%3Ccircle cx='21' cy='7' r='3' fill='%23c9a040' opacity='0.8'/%3E%3Ccircle cx='7' cy='21' r='3' fill='%238a6a30' opacity='0.8'/%3E%3Ccircle cx='21' cy='21' r='3' fill='%238a6a30' opacity='0.8'/%3E%3Cline x1='10' y1='7' x2='18' y2='7' stroke='%23e0c060' stroke-width='1.5'/%3E%3Cline x1='10' y1='21' x2='18' y2='21' stroke='%23e0c060' stroke-width='1.5'/%3E%3Cline x1='7' y1='10' x2='7' y2='18' stroke='%23e0c060' stroke-width='1.5'/%3E%3Cline x1='21' y1='10' x2='21' y2='18' stroke='%23e0c060' stroke-width='1.5'/%3E%3C/svg%3E") 14 14, grab;
}
[draggable="true"]:active, .grabbing {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='7' cy='7' r='4' fill='%23e0c060'/%3E%3Ccircle cx='21' cy='7' r='4' fill='%23e0c060'/%3E%3Ccircle cx='7' cy='21' r='4' fill='%23e0c060'/%3E%3Ccircle cx='21' cy='21' r='4' fill='%23e0c060'/%3E%3C/svg%3E") 14 14, grabbing;
}

/* 禁用状态：封印环 */
:disabled, [disabled], .disabled, [aria-disabled="true"] {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='12' fill='none' stroke='%238a6a30' stroke-width='2' opacity='0.6'/%3E%3Ccircle cx='14' cy='14' r='9' fill='none' stroke='%23e0c060' stroke-width='1' stroke-dasharray='4 4' opacity='0.4'/%3E%3Cline x1='6' y1='6' x2='22' y2='22' stroke='%23c9a040' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, not-allowed;
}

/* 加载状态：太极轮转 */
@keyframes taijiSpin {
  0%   { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='none' stroke='%23c9a040' stroke-width='2' stroke-dasharray='8 24' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23e0c060' stroke-width='1.5' stroke-dasharray='6 12' opacity='0.6'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%238a6a30' opacity='0.8'/%3E%3C/svg%3E") 16 16, progress; }
  50%  { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='none' stroke='%238a6a30' stroke-width='2' stroke-dasharray='12 20' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23e0c060' stroke-width='1.5' stroke-dasharray='8 10' opacity='0.7'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23c9a040' opacity='0.9'/%3E%3C/svg%3E") 16 16, progress; }
  100% { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='none' stroke='%23c9a040' stroke-width='2' stroke-dasharray='8 24' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23e0c060' stroke-width='1.5' stroke-dasharray='6 12' opacity='0.6'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%238a6a30' opacity='0.8'/%3E%3C/svg%3E") 16 16, progress; }
}

.wait, .loading, [aria-busy="true"] {
  animation: taijiSpin 1.4s linear infinite;
}