/* ==============================================
   【司机模拟器 · 都市霓虹】增强魔化版
   车灯脉冲 · 尾灯拖影 · 仪表光爪 · 罚单封印
   新增：浮游光点 · 卡片悬浮 · 按钮极光 · 呼吸光晕
         · 轮胎印记 · 橙色caret · 列表路标记
         · 引用块呼吸 · 代码块美化 · 表格高亮
   背景为路网线条平铺，冰冷科技感
   聊天区域强制不透明，直接复制全部代码即可使用
============================================== */

:root {
  --bg-main: #0a0e14;
  --bg-card: rgba(20, 24, 34, 0.94);
  --bg-input: #141c26;
  --text-primary: #e0f0ff;
  --text-secondary: #8ab4d0;
  --neon-cyan: #00e5ff;
  --neon-orange: #ff6d00;
  --neon-gold: #ffd740;
  --glow-soft: 0 0 14px rgba(0, 229, 255, 0.3);
  --glow-strong: 0 0 24px rgba(255, 109, 0, 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) #0a0e14 !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='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40 L80 40 M40 0 L40 80' stroke='%2300e5ff' stroke-width='0.5' opacity='0.08'/%3E%3Ccircle cx='40' cy='40' r='3' fill='%23ff6d00' opacity='0.15'/%3E%3C/svg%3E"),
    radial-gradient(circle at 20% 30%, rgba(0,229,255,0.1) 0%, transparent 40%),
    radial-gradient(circle at 80% 60%, rgba(255,109,0,0.08) 0%, transparent 40%) !important;
  background-size: 80px 80px, auto, auto;
  position: relative;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  top: -10%;
  left: -10%;
  width: 60vw;
  height: 60vw;
  background: radial-gradient(circle, rgba(0,229,255,0.12) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
  animation: floatGlow1 18s ease-in-out infinite;
}

body::after {
  content: "";
  position: fixed;
  bottom: -15%;
  right: -10%;
  width: 70vw;
  height: 70vw;
  background: radial-gradient(circle, rgba(255,109,0,0.1) 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-orange);
  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(0, 229, 255, 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(0, 229, 255, 0.06);
  animation: quoteBreath 3s ease-in-out infinite;
}

@keyframes quoteBreath {
  0%, 100% { box-shadow: inset 0 0 15px rgba(0, 229, 255, 0.04); }
  50% { box-shadow: inset 0 0 25px rgba(0, 229, 255, 0.12); }
}

code {
  background: rgba(0, 229, 255, 0.1) !important;
  color: var(--neon-cyan) !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(0, 229, 255, 0.2);
}

pre {
  background: rgba(10, 14, 20, 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(255, 109, 0, 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(0, 229, 255, 0.25), rgba(255, 109, 0, 0.15)) !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(10, 14, 20, 0.6) !important;
  padding: 8px 14px !important;
  border-bottom: 1px solid rgba(0, 229, 255, 0.12) !important;
  color: var(--text-primary) !important;
}

tr:hover td {
  background: rgba(0, 229, 255, 0.08) !important;
  box-shadow: inset 0 0 15px rgba(0, 229, 255, 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(--neon-cyan), var(--neon-orange), 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(0,229,255,0.4) !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.12; transform: scale(1); }
  35%  { opacity: 0.28; transform: scale(1.006); }
  70%  { opacity: 0.16; transform: scale(1.002); }
  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, #00e5ff, #ff6d00, transparent);
  z-index: -1;
  opacity: 0.16;
  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-cyan) !important;
  box-shadow: 0 0 30px rgba(0,229,255,0.6), 0 0 15px rgba(255,109,0,0.4) !important;
}

button.active,
.tab-btn.active,
div[class*="active"] {
  color: #ffd740 !important;
  background: linear-gradient(135deg, rgba(0,229,255,0.18), rgba(255,109,0,0.18)) !important;
  font-weight: bold !important;
  text-shadow: 0 0 12px #00e5ff !important;
  border-bottom: 2px solid #ffd740 !important;
  box-shadow: 0 2px 18px rgba(0,229,255,0.45) !important;
}

button:hover,
.tab-btn:hover {
  border-color: var(--neon-cyan) !important;
  box-shadow: 0 0 25px rgba(0,229,255,0.7), 0 0 12px rgba(255,109,0,0.4) !important;
  transform: translateY(-3px) !important;
}

input,
select,
textarea,
.config-input {
  background: var(--bg-input) !important;
  border: 1px solid rgba(255,109,0,0.35) !important;
  color: var(--text-primary) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  transition: all 0.4s ease;
  caret-color: var(--neon-cyan) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--neon-cyan) !important;
  box-shadow: 0 0 18px rgba(0,229,255,0.7), inset 0 0 12px rgba(0,229,255,0.2) !important;
  animation: inputBreath 2s ease-in-out infinite;
  caret-color: var(--neon-orange) !important;
}

@keyframes inputBreath {
  0%, 100% { box-shadow: 0 0 18px rgba(0,229,255,0.5), inset 0 0 12px rgba(0,229,255,0.15); }
  50% { box-shadow: 0 0 28px rgba(0,229,255,0.9), inset 0 0 18px rgba(0,229,255,0.35); }
}

select option {
  background: #0a0e14 !important;
  color: #e0f0ff !important;
}

button[type="submit"],
button[class*="submit"],
.config-submit,
.send-btn {
  background: linear-gradient(135deg, #0a1a28, #142838) !important;
  border: 1px solid var(--neon-cyan) !important;
  color: var(--neon-cyan) !important;
  font-weight: bold !important;
  letter-spacing: 3px !important;
  text-shadow: 0 0 8px var(--neon-cyan), 0 0 15px var(--neon-orange) !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(0,229,255,0.25) 30%, 
    rgba(255,215,64,0.4) 50%, 
    rgba(0,229,255,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, #006080, #0088aa) !important;
  border-color: #ffd740 !important;
  color: #ffd740 !important;
  box-shadow: 0 0 30px rgba(0,229,255,0.8), 0 0 15px var(--neon-orange) !important;
  text-shadow: 0 0 15px #ffd740 !important;
}

.event-content,
div[class*="content"] {
  background: rgba(10,14,20,0.92) !important;
  border: 1px dashed rgba(0,229,255,0.35) !important;
  border-radius: 10px !important;
  color: #c0e8ff !important;
  font-family: var(--font-mono) !important;
  box-shadow: inset 0 0 20px rgba(255,109,0,0.06) !important;
  padding: 14px !important;
  line-height: 1.8 !important;
}

h1, h2, h3,
.form-title, .regret-title, .panel-title, .title {
  color: #ffd740 !important;
  text-shadow: 0 0 12px #00e5ff, 0 0 24px #ff6d00 !important;
  letter-spacing: 4px !important;
  background: linear-gradient(90deg, #ffd740, #00e5ff, #ffd740);
  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(0,229,255,0.35) !important;
  background: rgba(0, 0, 0, 0.3) !important;
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #0a0e14; }
::-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-orange), 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: #00e5ff;
  color: #0a0e14;
  text-shadow: 0 0 10px rgba(255, 215, 64, 0.5);
}
::-moz-selection {
  background: #00e5ff;
  color: #0a0e14;
  text-shadow: 0 0 10px rgba(255, 215, 64, 0.5);
}

/* ==============================================
   【都市霓虹 · 光标美化系统】
   仪表脉冲十字 · 橙色尾灯指针（全面覆盖）
   轮胎拖影I型 · 路标光爪 · 罚单封印环 · 引擎曼陀罗
============================================== */

@keyframes crossPulse {
  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='%2300e5ff' stop-opacity='0.5'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00' 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='%2300e5ff' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2.5' fill='%23ffd740' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 16 4 A 12 12 0 0 1 28 16' fill='none' stroke='%23ff6d00' stroke-width='1.2' opacity='0.5'/%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='%2300e5ff' stop-opacity='0.7'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00' 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='%23ffd740' stroke-width='2' opacity='1'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%23ff6d00' opacity='0.9'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%2300e5ff' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%2300e5ff' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%2300e5ff' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%2300e5ff' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M 28 16 A 12 12 0 0 1 16 28' fill='none' stroke='%23ffd740' stroke-width='1.5' opacity='0.6'/%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='%2300e5ff' stop-opacity='0.6'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00' 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='%2300e5ff' stroke-width='1.5' opacity='0.8'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23ffd740' opacity='0.6'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%23ff6d00' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%23ff6d00' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%23ff6d00' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%23ff6d00' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 16 28 A 12 12 0 0 1 4 16' fill='none' stroke='%23ffd740' stroke-width='1.2' opacity='0.5'/%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='%2300e5ff' stop-opacity='0.5'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00' 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='%2300e5ff' stroke-width='1.5' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='2.5' fill='%23ffd740' opacity='0.7'/%3E%3Cline x1='16' y1='1' x2='16' y2='7' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='16' y1='25' x2='16' y2='31' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='1' y1='16' x2='7' y2='16' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='25' y1='16' x2='31' y2='16' stroke='%2300e5ff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M 4 16 A 12 12 0 0 1 16 4' fill='none' stroke='%23ff6d00' stroke-width='1.2' opacity='0.5'/%3E%3C/svg%3E") 16 16, crosshair; }
}

body {
  animation: crossPulse 2.4s steps(4, end) infinite;
}

@keyframes carPointerPulse {
  0%, 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%3ClinearGradient id='carGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300e5ff'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M4 18 L10 18 L12 8 L20 8 L22 18 L28 18 L28 22 L4 22 Z' fill='url(%23carGrad)' stroke='%23ffd740' stroke-width='1.2' stroke-linejoin='round'/%3E%3Ccircle cx='10' cy='22' r='3' fill='%230a0e14' stroke='%23ffd740' stroke-width='1.2'/%3E%3Ccircle cx='22' cy='22' r='3' fill='%230a0e14' stroke='%23ffd740' stroke-width='1.2'/%3E%3Crect x='7' y='12' width='4' height='4' fill='%23ffd740' opacity='0.6'/%3E%3Crect x='21' y='12' width='4' height='4' fill='%23ffd740' opacity='0.6'/%3E%3C/svg%3E") 16 16, pointer;
  }
  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%3Cdefs%3E%3ClinearGradient id='carGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300e5ff'/%3E%3Cstop offset='100%25' stop-color='%23ff6d00'/%3E%3C/linearGradient%3E%3CradialGradient id='glowGrad' cx='50%25' cy='50%25' r='50%25'%3E%3Cstop offset='0%25' stop-color='%2300e5ff' stop-opacity='0.4'/%3E%3Cstop offset='100%25' stop-color='%2300e5ff' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='15' fill='url(%23glowGrad)'/%3E%3Cpath d='M4 18 L10 18 L12 8 L20 8 L22 18 L28 18 L28 22 L4 22 Z' fill='url(%23carGrad)' stroke='%23ffd740' stroke-width='1.8' stroke-linejoin='round'/%3E%3Ccircle cx='10' cy='22' r='3' fill='%230a0e14' stroke='%23ffd740' stroke-width='1.8'/%3E%3Ccircle cx='22' cy='22' r='3' fill='%230a0e14' stroke='%23ffd740' stroke-width='1.8'/%3E%3Crect x='7' y='12' width='4' height='4' fill='%23ffd740' opacity='0.9'/%3E%3Crect x='21' y='12' width='4' height='4' fill='%23ffd740' opacity='0.9'/%3E%3C/svg%3E") 16 16, 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: carPointerPulse 1.8s 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='16' height='28' viewBox='0 0 16 28'%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='%2300e5ff'/%3E%3Cstop offset='50%25' stop-color='%23ff6d00'/%3E%3Cstop offset='100%25' stop-color='%23ffd740'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='5' y='3' width='2.5' height='22' fill='url(%23vine)' rx='1'/%3E%3Crect x='3' y='0' width='6.5' height='2.5' fill='%2300e5ff' rx='1.5'/%3E%3Crect x='3' y='25.5' width='6.5' height='2.5' fill='%23ff6d00' rx='1.5'/%3E%3Ccircle cx='6' cy='3' r='2.5' fill='%2300e5ff' opacity='0.8'/%3E%3Ccircle cx='6' cy='25' r='2.5' fill='%23ff6d00' 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='%2300e5ff' opacity='0.8'/%3E%3Ccircle cx='21' cy='7' r='3' fill='%2300e5ff' opacity='0.8'/%3E%3Ccircle cx='7' cy='21' r='3' fill='%23ff6d00' opacity='0.8'/%3E%3Ccircle cx='21' cy='21' r='3' fill='%23ff6d00' opacity='0.8'/%3E%3Cline x1='10' y1='7' x2='18' y2='7' stroke='%23ffd740' stroke-width='1.5'/%3E%3Cline x1='10' y1='21' x2='18' y2='21' stroke='%23ffd740' stroke-width='1.5'/%3E%3Cline x1='7' y1='10' x2='7' y2='18' stroke='%23ffd740' stroke-width='1.5'/%3E%3Cline x1='21' y1='10' x2='21' y2='18' stroke='%23ffd740' 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='%2300e5ff'/%3E%3Ccircle cx='21' cy='7' r='4' fill='%2300e5ff'/%3E%3Ccircle cx='7' cy='21' r='4' fill='%23ff6d00'/%3E%3Ccircle cx='21' cy='21' r='4' fill='%23ff6d00'/%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='%23ff6d00' stroke-width='2' opacity='0.6'/%3E%3Ccircle cx='14' cy='14' r='9' fill='none' stroke='%23ffd740' stroke-width='1' stroke-dasharray='4 4' opacity='0.5'/%3E%3Cline x1='6' y1='6' x2='22' y2='22' stroke='%23ff6d00' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, not-allowed;
}

@keyframes mandalaSpin {
  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='%2300e5ff' stroke-width='2' stroke-dasharray='8 24' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23ff6d00' stroke-width='1.5' stroke-dasharray='6 12' opacity='0.6'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23ffd740' 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='%23ff6d00' stroke-width='2' stroke-dasharray='12 20' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23ffd740' stroke-width='1.5' stroke-dasharray='8 10' opacity='0.7'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%2300e5ff' 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='%2300e5ff' stroke-width='2' stroke-dasharray='8 24' opacity='0.9'/%3E%3Ccircle cx='16' cy='16' r='6' fill='none' stroke='%23ff6d00' stroke-width='1.5' stroke-dasharray='6 12' opacity='0.6'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23ffd740' opacity='0.8'/%3E%3C/svg%3E") 16 16, progress; }
}

.wait, .loading, [aria-busy="true"] {
  animation: mandalaSpin 1.2s linear infinite;
}