/* ==============================================
   【博德之门3 · 夺心魔危机】沉浸式美化CSS
   灵能幽光 · 夺心魔紫 · 骰子滚动 · 蝌蚪脉冲
   新增：灵能浮游粒子 · 卡片悬浮 · 按钮流光
         · 骰子呼吸 · 金色caret · 列表灵能标记
         · 引用块呼吸 · 代码块美化 · 表格高亮
   背景为暗黑六边形平铺，深邃灵能感
   直接复制全部代码即可使用
============================================== */

:root {
  --bg-main: #0d0d1a;
  --bg-card: rgba(20, 18, 28, 0.94);
  --bg-input: #1a1428;
  --text-primary: #e0d8f0;
  --text-secondary: #a098c8;
  --neon-cyan: #7b4ac0;
  --neon-blue: #4a8ac0;
  --neon-pink: #c080d0;
  --neon-gold: #d4af37;
  --glow-soft: 0 0 14px rgba(123, 74, 192, 0.3);
  --glow-strong: 0 0 24px rgba(74, 138, 192, 0.5);
  --font-display: "ZCOOL KuaiLe", "STKaiti", "KaiTi", "Microsoft YaHei", sans-serif;
  --font-mono: 'Fira Code', monospace;
  font-size: 17px;
}

* {
  scrollbar-width: thin !important;
  scrollbar-color: var(--neon-cyan) #0d0d1a !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:
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='30,8 52,20 52,42 30,54 8,42 8,20' fill='none' stroke='%237b4ac0' stroke-width='1' stroke-linejoin='round' opacity='0.15'/%3E%3C/svg%3E"),
    radial-gradient(circle at 20% 30%, rgba(123,74,192,0.12) 0%, transparent 40%),
    radial-gradient(circle at 80% 60%, rgba(74,138,192,0.1) 0%, transparent 40%) !important;
  background-size: 60px 60px, auto, auto;
  position: relative;
  overflow-x: hidden;
}

/* 全局浮游灵能粒子1 */
body::before {
  content: "";
  position: fixed;
  top: -10%;
  left: -10%;
  width: 60vw;
  height: 60vw;
  background: radial-gradient(circle, rgba(123,74,192,0.15) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
  animation: floatGlow1 18s ease-in-out infinite;
}

/* 全局浮游灵能粒子2 */
body::after {
  content: "";
  position: fixed;
  bottom: -15%;
  right: -10%;
  width: 70vw;
  height: 70vw;
  background: radial-gradient(circle, rgba(212,175,55,0.08) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
  animation: floatGlow2 22s ease-in-out infinite;
}

@keyframes floatGlow1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(8vw, 5vh) scale(1.1); }
  50% { transform: translate(-3vw, 12vh) scale(0.9); }
  75% { transform: translate(-10vw, -4vh) scale(1.2); }
}

@keyframes floatGlow2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-12vw, -8vh) scale(1.3); }
  66% { transform: translate(6vw, -15vh) scale(0.8); }
}

/* 全局字体大小继承 */
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,
.chat-container, .container, .card, .box, .wrapper,
.content, .sidebar, .footer {
  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.3em;
  color: var(--neon-cyan);
  font-size: 0.7em;
  text-shadow: 0 0 8px var(--neon-cyan), 0 0 15px var(--neon-blue);
  animation: markerPulse 2s ease-in-out infinite;
  line-height: inherit;
}

@keyframes markerPulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}

/* 有序列表 */
ol {
  padding-left: 1.8em !important;
}

ol li::marker {
  color: var(--neon-gold);
  text-shadow: 0 0 6px var(--neon-gold);
  font-weight: bold;
}

/* ===== 引用块 ===== */
blockquote {
  border-left: 3px solid var(--neon-cyan) !important;
  background: rgba(123, 74, 192, 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(123, 74, 192, 0.08);
  animation: quoteBreath 3s ease-in-out infinite;
}

@keyframes quoteBreath {
  0%, 100% { box-shadow: inset 0 0 15px rgba(123, 74, 192, 0.05); }
  50% { box-shadow: inset 0 0 25px rgba(123, 74, 192, 0.15); }
}

/* ===== 代码块 & 行内代码 ===== */
code {
  background: rgba(123, 74, 192, 0.12) !important;
  color: var(--neon-pink) !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(123, 74, 192, 0.2);
}

pre {
  background: rgba(13, 13, 26, 0.95) !important;
  border: 1px solid var(--neon-cyan) !important;
  border-radius: 10px !important;
  padding: 1em !important;
  box-shadow: var(--glow-soft), inset 0 0 20px rgba(74, 138, 192, 0.05);
  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(123, 74, 192, 0.3), rgba(74, 138, 192, 0.2)) !important;
  color: var(--neon-gold) !important;
  padding: 10px 14px !important;
  text-align: left;
  font-weight: bold;
  text-shadow: 0 0 8px var(--neon-gold);
  border-bottom: 2px solid var(--neon-cyan) !important;
}

td {
  background: rgba(13, 13, 26, 0.6) !important;
  padding: 8px 14px !important;
  border-bottom: 1px solid rgba(123, 74, 192, 0.15) !important;
  color: var(--text-primary) !important;
}

tr:hover td {
  background: rgba(123, 74, 192, 0.1) !important;
  box-shadow: inset 0 0 15px rgba(123, 74, 192, 0.1);
}

/* ===== 容器与卡片：悬浮 + 流光边框 ===== */
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(--neon-cyan), var(--neon-blue), var(--neon-gold)) !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(123,74,192,0.5) !important;
  position: relative;
  animation: cardFloat 8s ease-in-out infinite;
}

@keyframes cardFloat {
  0%, 100% { transform: translateY(0px); }
  30% { transform: translateY(-6px); }
  60% { transform: translateY(-2px); }
}

/* 边框灵能流光 */
@keyframes immortalPulse {
  0%   { opacity: 0.14; transform: scale(1); }
  35%  { opacity: 0.32; transform: scale(1.007); }
  70%  { opacity: 0.18; transform: scale(1.002); }
  100% { opacity: 0.14; 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, #7b4ac0, #4a8ac0, transparent);
  z-index: -1;
  opacity: 0.18;
  animation: immortalPulse 3.8s infinite alternate;
}

/* 悬停增强 */
div[class*="container"]:hover,
div[class*="card"]:hover {
  animation-play-state: paused;
  transform: translateY(-6px) !important;
  border-color: var(--neon-gold) !important;
  box-shadow: 0 0 30px rgba(123,74,192,0.7), 0 0 15px rgba(212,175,55,0.5) !important;
}

/* ===== 按钮与交互元素 ===== */
button.active,
.tab-btn.active,
div[class*="active"] {
  color: #ffd740 !important;
  background: linear-gradient(135deg, rgba(123,74,192,0.2), rgba(74,138,192,0.2)) !important;
  font-weight: bold !important;
  text-shadow: 0 0 12px #7b4ac0 !important;
  border-bottom: 2px solid #d4af37 !important;
  box-shadow: 0 2px 18px rgba(123,74,192,0.5) !important;
}

button:hover,
.tab-btn:hover {
  border-color: var(--neon-cyan) !important;
  box-shadow: 0 0 25px rgba(123,74,192,0.8), 0 0 12px rgba(74,138,192,0.5) !important;
  transform: translateY(-3px) !important;
}

/* ===== 输入框 ===== */
input,
select,
textarea,
.config-input {
  background: var(--bg-input) !important;
  border: 1px solid rgba(123,74,192,0.4) !important;
  color: var(--text-primary) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  transition: all 0.4s ease;
  caret-color: var(--neon-gold) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--neon-gold) !important;
  box-shadow: 0 0 18px rgba(123,74,192,0.8), inset 0 0 12px rgba(74,138,192,0.25) !important;
  animation: inputBreath 2s ease-in-out infinite;
  caret-color: var(--neon-gold) !important;
}

@keyframes inputBreath {
  0%, 100% { box-shadow: 0 0 18px rgba(123,74,192,0.6), inset 0 0 12px rgba(74,138,192,0.2); }
  50% { box-shadow: 0 0 28px rgba(123,74,192,1), inset 0 0 18px rgba(74,138,192,0.4); }
}

select option {
  background: #0d0d1a !important;
  color: #e0d8f0 !important;
}

/* ===== 提交按钮：灵能流光扫过 ===== */
button[type="submit"],
button[class*="submit"],
.config-submit,
.send-btn {
  background: linear-gradient(135deg, #1a0d2e, #251840) !important;
  border: 1px solid var(--neon-cyan) !important;
  color: var(--neon-gold) !important;
  font-weight: bold !important;
  letter-spacing: 3px !important;
  text-shadow: 0 0 8px var(--neon-gold), 0 0 15px var(--neon-cyan) !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(123,74,192,0.3) 30%, 
    rgba(212,175,55,0.5) 50%, 
    rgba(123,74,192,0.3) 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, #2a1550, #3a2068) !important;
  border-color: var(--neon-gold) !important;
  color: var(--neon-gold) !important;
  box-shadow: 0 0 30px rgba(123,74,192,0.9), 0 0 15px var(--neon-cyan) !important;
  text-shadow: 0 0 20px var(--neon-gold) !important;
}

/* ===== 信息展示区 ===== */
.event-content,
div[class*="content"] {
  background: rgba(13,13,26,0.92) !important;
  border: 1px dashed rgba(123,74,192,0.4) !important;
  border-radius: 10px !important;
  color: #d0c8e0 !important;
  font-family: var(--font-mono) !important;
  box-shadow: inset 0 0 20px rgba(74,138,192,0.08) !important;
  padding: 14px !important;
  line-height: 1.8 !important;
}

/* ===== 标题：金色灵能闪光 ===== */
h1, h2, h3,
.form-title, .regret-title, .panel-title, .title {
  color: var(--neon-gold) !important;
  text-shadow: 0 0 12px #d4af37, 0 0 24px #7b4ac0 !important;
  letter-spacing: 4px !important;
  background: linear-gradient(90deg, #d4af37, #c9a96e, #d4af37);
  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(123,74,192,0.4) !important;
  background: rgba(0, 0, 0, 0.3) !important;
}

/* ===== 滚动条美化 ===== */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #0d0d1a; }
::-webkit-scrollbar-thumb {
  background: var(--neon-cyan);
  border-radius: 4px;
  box-shadow: 0 0 12px var(--neon-cyan);
  animation: scrollGlow 2s ease-in-out infinite;
}

@keyframes scrollGlow {
  0%, 100% { box-shadow: 0 0 8px var(--neon-cyan); }
  50% { box-shadow: 0 0 20px var(--neon-blue), 0 0 8px var(--neon-cyan); }
}

/* ===== 强制聊天背景不透明 ===== */
[class*="chat"],
[class*="message"],
[class*="conversation"],
[class*="dialog"],
[class*="talk"],
[class*="chat-container"] {
  background: var(--bg-card) !important;
  background-image: none !important;
}

/* ===== 全局选中文字 ===== */
::selection {
  background: #7b4ac0;
  color: #0d0d1a;
  text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}
::-moz-selection {
  background: #7b4ac0;
  color: #0d0d1a;
  text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}

/* ==============================================
   【博德之门3 · 夺心魔光标美化系统】
   灵能蝌蚪脉冲 · 夺心魔十字 · 灵能触须I型
   金色魔法圈 · 骰子旋转 · 灵能封印环
============================================== */

@keyframes illithidCrossPulse {
  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='%237b4ac0' stop-opacity='0.6'/%3E%3Cstop offset='100%25' stop-color='%234a8ac0' 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='%237b4ac0' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2.5' fill='%23d4af37' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%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='%234a8ac0' stop-opacity='0.8'/%3E%3Cstop offset='100%25' stop-color='%237b4ac0' 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='%23d4af37' stroke-width='2' opacity='1'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%23d4af37' opacity='0.9'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%234a8ac0' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%234a8ac0' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%234a8ac0' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%234a8ac0' stroke-width='2.5' stroke-linecap='round'/%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='%23d4af37' stop-opacity='0.7'/%3E%3Cstop offset='100%25' stop-color='%237b4ac0' 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='%237b4ac0' stroke-width='1.5' opacity='0.8'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23d4af37' opacity='0.6'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%23d4af37' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%23d4af37' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%23d4af37' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%23d4af37' stroke-width='2' stroke-linecap='round'/%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='%237b4ac0' stop-opacity='0.6'/%3E%3Cstop offset='100%25' stop-color='%234a8ac0' 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='%237b4ac0' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2.5' fill='%23d4af37' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%237b4ac0' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 16 16, crosshair; }
}

body {
  animation: illithidCrossPulse 2.4s steps(4, end) infinite;
}

/* ===== 可点击元素：金色D20骰子指针 ===== */
@keyframes dicePulse {
  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%3Crect x='2' y='2' width='24' height='24' rx='4' fill='%231a0d2e' stroke='%23d4af37' stroke-width='2'/%3E%3Ctext x='14' y='20' text-anchor='middle' font-size='14' fill='%23d4af37' font-weight='bold'%3E20%3C/text%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%3Crect x='2' y='2' width='24' height='24' rx='4' fill='%231a0d2e' stroke='%23ffd740' stroke-width='2'/%3E%3Ctext x='14' y='20' text-anchor='middle' font-size='14' fill='%23ffd740' font-weight='bold'%3E20%3C/text%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: dicePulse 1.8s ease-in-out infinite;
}

/* 文本输入区：灵能触须I型 */
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='16' height='28' viewBox='0 0 16 28'%3E%3Cdefs%3E%3ClinearGradient id='t' x1='0%25' y1='0%25' x2='0%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23d4af37'/%3E%3Cstop offset='50%25' stop-color='%237b4ac0'/%3E%3Cstop offset='100%25' stop-color='%234a8ac0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='5' y='3' width='2.5' height='22' fill='url(%23t)' rx='1'/%3E%3Crect x='3' y='0' width='6.5' height='2.5' fill='%237b4ac0' rx='1.5'/%3E%3Crect x='3' y='25.5' width='6.5' height='2.5' fill='%234a8ac0' rx='1.5'/%3E%3Ccircle cx='6' cy='3' r='2.5' fill='%23d4af37' opacity='0.8'/%3E%3Ccircle cx='6' cy='25' r='2.5' fill='%234a8ac0' opacity='0.8'/%3E%3C/svg%3E") 8 14, 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='%23d4af37' opacity='0.8'/%3E%3Ccircle cx='21' cy='7' r='3' fill='%23d4af37' opacity='0.8'/%3E%3Ccircle cx='7' cy='21' r='3' fill='%237b4ac0' opacity='0.8'/%3E%3Ccircle cx='21' cy='21' r='3' fill='%237b4ac0' opacity='0.8'/%3E%3Cline x1='10' y1='7' x2='18' y2='7' stroke='%23d4af37' stroke-width='1.5'/%3E%3Cline x1='10' y1='21' x2='18' y2='21' stroke='%23d4af37' stroke-width='1.5'/%3E%3Cline x1='7' y1='10' x2='7' y2='18' stroke='%237b4ac0' stroke-width='1.5'/%3E%3Cline x1='21' y1='10' x2='21' y2='18' stroke='%237b4ac0' 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='%23d4af37'/%3E%3Ccircle cx='21' cy='7' r='4' fill='%23d4af37'/%3E%3Ccircle cx='7' cy='21' r='4' fill='%237b4ac0'/%3E%3Ccircle cx='21' cy='21' r='4' fill='%237b4ac0'/%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='%237b4ac0' stroke-width='2' opacity='0.6'/%3E%3Ccircle cx='14' cy='14' r='9' fill='none' stroke='%23d4af37' stroke-width='1' stroke-dasharray='4 4' opacity='0.5'/%3E%3Cline x1='6' y1='6' x2='22' y2='22' stroke='%234a8ac0' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, not-allowed;
}

/* 加载状态：骰子旋转 */
@keyframes diceSpin {
  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%3Crect x='3' y='3' width='26' height='26' rx='4' fill='none' stroke='%23d4af37' stroke-width='2' opacity='0.9'/%3E%3Ctext x='16' y='22' text-anchor='middle' font-size='16' fill='%23d4af37'%3E1%3C/text%3E%3C/svg%3E") 16 16, progress; }
  25%  { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Crect x='3' y='3' width='26' height='26' rx='4' fill='none' stroke='%237b4ac0' stroke-width='2' opacity='0.9'/%3E%3Ctext x='16' y='22' text-anchor='middle' font-size='16' fill='%237b4ac0'%3E7%3C/text%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%3Crect x='3' y='3' width='26' height='26' rx='4' fill='none' stroke='%23d4af37' stroke-width='2' opacity='0.9'/%3E%3Ctext x='16' y='22' text-anchor='middle' font-size='16' fill='%23d4af37'%3E13%3C/text%3E%3C/svg%3E") 16 16, progress; }
  75%  { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Crect x='3' y='3' width='26' height='26' rx='4' fill='none' stroke='%237b4ac0' stroke-width='2' opacity='0.9'/%3E%3Ctext x='16' y='22' text-anchor='middle' font-size='16' fill='%237b4ac0'%3E20%3C/text%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%3Crect x='3' y='3' width='26' height='26' rx='4' fill='none' stroke='%23d4af37' stroke-width='2' opacity='0.9'/%3E%3Ctext x='16' y='22' text-anchor='middle' font-size='16' fill='%23d4af37'%3E1%3C/text%3E%3C/svg%3E") 16 16, progress; }
}

.wait, .loading, [aria-busy="true"] {
  animation: diceSpin 1.2s steps(4, end) infinite;
}