/* == “罹界·道染春秋” 主题CSS v5.3 (排版与YAML高亮优化版) == */

/* =========================================
   1. 变量定义区 (亮/暗主题精准切换)
========================================= */

/* --- ☀️ 默认/亮色模式变量 --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"],
.group.is-user div[class*="group-[.is-user]:ml-auto"] {
  --bg-color-main-rgba: 250, 249, 245; 
  --bg-color-card: rgba(255, 255, 255, 0.6); 
  --header-bg-color: rgba(0, 0, 0, 0.08); 
  
  /* YAML块与代码块样式 (亮色) */
  --code-bg-color: rgba(200, 75, 49, 0.04); /* 融入主题色的高透背景 */
  --code-border-color: rgba(200, 75, 49, 0.15); 
  --yaml-key-color: #059669;     /* 翠绿色 */
  --yaml-val-color: #374151;     /* 深灰色 */
  --yaml-bracket-color: #C84B31; /* 主题红 */

  --accent-color-primary: #C84B31; 
  --accent-color-secondary: #A23E27; 
  --accent-color-primary-rgba: 200, 75, 49; 
  --accent-color-secondary-rgba: 162, 62, 39; 
  --text-color-main: #1f2937; 
  --text-color-secondary: #6b7280; 
  --button-text-color: #ffffff; 
  --border-color: rgba(200, 75, 49, 0.35); 
  --lust-text-color: #D65D7A; 
  --progress-bar-bg: rgba(0, 0, 0, 0.1); 
  --system-alert-color: #C53030; 
  --system-alert-color-rgba: 197, 48, 48; 
  --system-alert-border-bleed: #6A0000; 
  --psi-bg-color: #f0fdf4; 
  --psi-border-color: #86efac; 
  --psi-text-color: #166534; 
  --system-interrupt-color-rgba: 34, 197, 94; 
  --male-text-color: #144EEB; 
  --male-border-color: rgba(20, 78, 235, 0.6); 
  --female-text-color: #9a3412; 
  --female-border-color: rgba(154, 52, 18, 0.6); 
  --dialogue-bg-color: rgba(100, 116, 139, 0.1); 
  --pps-bg-color: rgba(255, 255, 255, 0.7); 
  --pso-bg-color: rgba(0, 0, 0, 0.04); 
  --pso-text-color: #1f2937; 
  --pso-text-shadow: 0 1px 1px rgba(0,0,0,0.1);
  --font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; 
  --font-family-serif: 'Georgia', 'Times New Roman', serif; 
  --font-family-monospace: 'Courier New', 'SF Mono', 'Cascadia Code', monospace;
}

/* --- 🌙 暗色模式变量 (通过平台 data-theme 属性精准触发) --- */
[data-theme="dark"] .group.is-assistant div[class*="group-[.is-assistant]:bg-card"],
[data-theme="dark"] .group.is-user div[class*="group-[.is-user]:ml-auto"] {
  --bg-color-main-rgba: 26, 32, 44;         
  --bg-color-card: rgba(0, 0, 0, 0.4);      
  --header-bg-color: rgba(255, 255, 255, 0.05); 
  
  /* YAML块与代码块样式 (暗色) */
  --code-bg-color: rgba(0, 0, 0, 0.35);     /* 深色高透背景 */
  --code-border-color: rgba(255, 255, 255, 0.1); 
  --yaml-key-color: #fbbf24;     /* 明黄色 */
  --yaml-val-color: #e2e8f0;     /* 亮灰色 */
  --yaml-bracket-color: #E63946; /* 主题亮红 */

  --accent-color-primary: #E63946; 
  --accent-color-secondary: #D90429; 
  --accent-color-primary-rgba: 230, 57, 70; 
  --accent-color-secondary-rgba: 217, 4, 41; 
  --text-color-main: #e2e8f0;               
  --text-color-secondary: #a0aec0;          
  --button-text-color: #F7FAFC; 
  --border-color: rgba(230, 57, 70, 0.5); 
  --lust-text-color: #ff79c6;               
  --progress-bar-bg: rgba(255, 255, 255, 0.1); 
  --system-alert-color: #fc8181; 
  --system-alert-color-rgba: 252, 129, 129; 
  --system-alert-border-bleed: #9b2c2c; 
  --psi-bg-color: rgba(44, 82, 130, 0.3); 
  --psi-border-color: #63b3ed; 
  --psi-text-color: #90cdf4; 
  --system-interrupt-color-rgba: 66, 153, 225; 
  --male-text-color: #63b3ed; 
  --male-border-color: rgba(99, 179, 237, 0.7); 
  --female-text-color: #fbd38d; 
  --female-border-color: rgba(251, 211, 141, 0.7); 
  --dialogue-bg-color: rgba(255, 255, 255, 0.05); 
  --pps-bg-color: rgba(0, 0, 0, 0.3);
  --pso-bg-color: rgba(255, 255, 255, 0.05); 
  --pso-text-color: #e2e8f0; 
  --pso-text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}


/* =========================================
   2. 基础气泡容器样式 (AI & 玩家)
========================================= */

/* 共享的基础排版与背景 */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"],
.group.is-user div[class*="group-[.is-user]:ml-auto"] { 
  font-family: var(--font-family-sans) !important; 
  color: var(--text-color-main) !important; 
  background-color: rgba(var(--bg-color-main-rgba), 0.85) !important; 
  background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800"%3E%3Cg fill="%239C92AC" fill-opacity="0.04"%3E%3Cpath fill-rule="evenodd" d="M11 0l5 20-5 20-5-20L1 20 6 0h5z"/%3E%3C/g%3E%3C/svg%3E') !important; 
  box-sizing: border-box !important; 
  max-width: 800px !important; 
  margin: 1.5em auto !important; 
  padding: 1.5em 2em !important; 
  border: 1px solid var(--border-color) !important; 
  border-radius: 8px !important; 
  box-shadow: 0 0 25px rgba(var(--accent-color-primary-rgba), 0.15) !important; 
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important; 
}

/* 玩家气泡专属微调 (区分度) */
.group.is-user div[class*="group-[.is-user]:ml-auto"] {
  background-color: rgba(var(--bg-color-main-rgba), 0.95) !important;
  border-left: 4px solid var(--accent-color-primary) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
}

/* 基础通用元素排版优化 */
.group div[class*="bg-card"] p, .group div[class*="ml-auto"] p { 
  font-size: 1.05em !important; /* 增大正文字号 */
  line-height: 1.85 !important; /* 增加行距，提升呼吸感 */
  letter-spacing: 0.04em !important; 
  margin-bottom: 1em !important;
}
.group div[class*="bg-card"] .pt, .group div[class*="ml-auto"] .pt { background: none !important; border: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
.group div[class*="bg-card"] hr, .group div[class*="ml-auto"] hr { border: none !important; height: 2px !important; background: linear-gradient(90deg, transparent 0%, rgba(var(--accent-color-primary-rgba), 0.5) 20%, rgba(var(--accent-color-primary-rgba), 0.8) 50%, rgba(var(--accent-color-primary-rgba), 0.5) 80%, transparent 100%) !important; margin: 2.5em 0 !important; border-radius: 2px !important; }


/* =========================================
   3. 核心演出与排版组件
========================================= */

/* --- 状态速览 .pso --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pso {
  padding: 0.8em 1.2em !important;
  background-color: var(--pso-bg-color) !important; 
  border: 1px solid var(--border-color) !important;
  border-radius: 8px !important;
  margin-bottom: 1.5em !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
  gap: 0.5em 1.5em !important;
  font-size: 0.95em !important; /* 微调字号 */
  line-height: 1.6 !important;
  color: var(--pso-text-color) !important; 
  text-shadow: var(--pso-text-shadow) !important; 
  transition: all 0.3s ease !important;
}

/* --- 异宝面板 .pmh & .psy --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pmh { display: flex !important; justify-content: space-between !important; align-items: center !important; border-bottom: 2px solid var(--accent-color-primary) !important; padding-bottom: 0.5em !important; margin-bottom: 1.2em !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pmh > h2 { margin: 0 !important; font-size: 1.8em !important; line-height: 1 !important; color: var(--text-color-secondary) !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy { position: relative !important; border: none !important; background: none !important; margin: 0 !important; padding: 0 !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy > summary { display: inline-flex !important; align-items: center !important; padding: 0.4em 1.8em 0.4em 0.8em !important; border: 1px solid var(--border-color) !important; background-color: var(--header-bg-color) !important; font-size: 1.1em !important; color: var(--text-color-secondary) !important; border-radius: 6px !important; cursor: pointer !important; list-style: none !important; user-select: none !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy > summary::-webkit-details-marker { display: none !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy > summary::after { content: '▼' !important; position: absolute !important; right: 0.6em !important; font-size: 0.6em !important; transition: transform 0.2s !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy[open] > summary::after { transform: rotate(180deg) !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psy > .ppc { position: absolute !important; top: calc(100% + 5px) !important; right: 0 !important; z-index: 10 !important; min-width: 280px !important; background-color: rgba(var(--bg-color-main-rgba), 0.85) !important; backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important; border: 1px solid var(--border-color) !important; border-radius: 8px !important; padding: 1em !important; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3) !important; font-size: 0.95em !important; }

/* --- 章节标题 .psr --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psr { display: block !important; text-align: center !important; font-size: 1.4em !important; font-weight: bold !important; margin: 1.5em 0 !important; font-family: var(--font-family-serif) !important; color: var(--accent-color-primary) !important; text-shadow: 0 1px 3px rgba(0,0,0,0.2) !important; }

/* --- 江湖日志 .pps --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps { background-color: var(--pps-bg-color) !important; border: 1px solid var(--border-color) !important; border-radius: 0.8em !important; padding: 0 !important; margin: 2.5em 0 !important; box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important; overflow: hidden !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps h3 { color: var(--text-color-main) !important; font-size: 1.05em !important; font-weight: 600 !important; margin: 0 !important; padding: 0.6em 1.5em !important; border-bottom: 1px solid var(--border-color) !important; background-color: var(--header-bg-color) !important; text-align: center !important; position: relative !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps h3::before, .group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps h3::after { content: '◇' !important; position: absolute !important; top: 50% !important; transform: translateY(-50%) !important; color: var(--accent-color-primary) !important; font-size: 0.8em !important; opacity: 0.6 !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps h3::before { left: 0.8em !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps h3::after { right: 0.8em !important; }

/* --- 折叠面板 (角色/记忆) details --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] details:not(.pss):not(.psy) { margin-bottom: 1.5em !important; border: 1px solid var(--border-color) !important; border-radius: 0.8em !important; background-color: var(--bg-color-card) !important; overflow: hidden !important; transition: box-shadow 0.3s ease !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] details:not(.pss):not(.psy) > summary { padding: 0.6em 1.2em !important; font-weight: 700 !important; font-size: 1.05em !important; background-image: linear-gradient(90deg, #6f2232, #c3073f, #6f2232) !important; color: #ffffff !important; cursor: pointer !important; outline: none !important; background-size: 300% 100% !important; animation: aurora-flow 8s ease-in-out infinite !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] details:not(.pss):not(.psy) .ppc { padding: 0; font-size: 0.95em !important; line-height: 1.6 !important; }

/* --- 选项 .pal --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pal { display: block !important; margin: 0 0 0.8em 0 !important; padding: 0.6em 0.8em 0.6em 1.2em !important; border-left: 4px solid var(--accent-color-primary) !important; background-color: rgba(var(--accent-color-secondary-rgba), 0.1) !important; border-radius: 0 5px 5px 0 !important; font-size: 1em !important; transition: all 0.2s ease !important; cursor: pointer !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pal:hover { background-color: rgba(var(--accent-color-primary-rgba), 0.2) !important; transform: translateX(5px) !important; }

/* --- 进度条 .zy-bar --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar { position: relative !important; width: 100% !important; height: 10px !important; border-radius: 5px !important; background-color: var(--progress-bar-bg) !important; margin-top: 1.5em !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar::before, .group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar::after { content: '' !important; position: absolute !important; bottom: calc(100% + 0.4em) !important; font-size: 0.9em !important; font-weight: 600 !important; color: var(--text-color-secondary) !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar::before { content: attr(data-label) !important; left: 0 !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar::after { content: attr(data-value) !important; right: 0 !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar.hp { background-image: linear-gradient(to right, #4a90e2, #6f2232) !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .zy-bar.lewd { background-image: linear-gradient(135deg, #6f2232, var(--lust-text-color)) !important; }


/* =========================================
   4. 代码块/YAML 终极透明度与高亮修复
========================================= */

/* 重置 pre 基础样式 (加入毛玻璃透明统一风格) */
.group div[class*="bg-card"] pre,
.group div[class*="ml-auto"] pre { 
  background-color: var(--code-bg-color) !important; 
  backdrop-filter: blur(4px) !important; /* 毛玻璃效果 */
  -webkit-backdrop-filter: blur(4px) !important;
  border: 1px solid var(--code-border-color) !important; 
  border-radius: 6px !important; 
  padding: 1.2em !important; 
  margin: 0.5em 0 1em 0 !important; 
  white-space: pre-wrap !important; 
  word-wrap: break-word !important; 
  overflow-x: auto !important; 
  font-size: 0.92em !important; /* 缩小代码块内字体 */
  line-height: 1.65 !important;
}

/* 强制代码文本基础颜色 */
.group div[class*="bg-card"] pre code,
.group div[class*="ml-auto"] pre code {
  color: var(--yaml-val-color) !important;
  font-family: var(--font-family-monospace) !important;
  text-shadow: none !important;
  background: transparent !important;
}

/* 🌟 YAML 语法高亮覆盖 (兼容 Prism.js / Highlight.js) 🌟 */
/* 键名 (Keys) */
.group div[class*="bg-card"] pre code span[class*="attr"],
.group div[class*="bg-card"] pre code span[class*="key"],
.group div[class*="bg-card"] pre code span[class*="property"] {
  color: var(--yaml-key-color) !important;
  font-weight: 600 !important;
}
/* 键值 (Values & Strings) */
.group div[class*="bg-card"] pre code span[class*="string"],
.group div[class*="bg-card"] pre code span[class*="number"],
.group div[class*="bg-card"] pre code span[class*="literal"] {
  color: var(--yaml-val-color) !important;
}
/* 符号与括号 (Punctuation & Brackets) */
.group div[class*="bg-card"] pre code span[class*="punctuation"],
.group div[class*="bg-card"] pre code span[class*="bullet"] {
  color: var(--yaml-bracket-color) !important;
  font-weight: bold !important;
}

/* 修复 details 和 pps 内的代码块圆角贴合 */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] details .ppc > pre,
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .pps pre {
  margin: 0 !important; border-radius: 0 0 0.8em 0.8em !important; border-left: none !important; border-right: none !important; border-bottom: none !important;
}

/* 修复复制按钮定位 */
.group div[class*="bg-card"] pre div[class*="copyIcon"] { flex: 0 0 auto !important; position: absolute !important; right: 10px !important; top: 10px !important; }


/* =========================================
   5. 特殊演出效果 (传音、裂痕)
========================================= */

.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .p-male,
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .p-female { background-color: var(--dialogue-bg-color) !important; padding: 0.3em 0.8em 0.4em 1em !important; margin: 0.5em 0 !important; border-radius: 0 8px 8px 0 !important; border-left: 3px solid !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .p-male { border-left-color: var(--male-border-color) !important; color: var(--male-text-color) !important; }
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .p-female { border-left-color: var(--female-border-color) !important; color: var(--female-text-color) !important; }

/* --- 1. 器魂发言 (表层) .psi --- */
.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psi { 
  font-family: var(--font-family-monospace) !important; 
  text-align: center !important; 
  padding: 1em !important; 
  margin: 1.5em 0 !important; 
  font-weight: bold !important; 
  line-height: 1.6 !important; 
  border-radius: 6px !important; 
  border: 2px double var(--psi-border-color) !important; 
  color: var(--psi-text-color) !important; 
  background-color: var(--psi-bg-color) !important; 
  box-shadow: inset 0 0 15px rgba(0,0,0,0.2) !important; 
  text-shadow: 0 0 5px rgba(var(--system-interrupt-color-rgba), 0.5) !important; 
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease !important; 
}

.group.is-assistant div[class*="group-[.is-assistant]:bg-card"] .psa {
  font-family: var(--font-family-monospace) !important; text-align: center !important; padding: 1em !important; margin: 1.5em 0 !important; font-weight: bold !important; border-radius: 6px !important;
  color: var(--system-alert-color) !important; background: radial-gradient(ellipse at center, rgba(var(--system-alert-color-rgba), 0.1) 0%, transparent 70%) !important; animation: crack-and-bleed 4s linear infinite !important;
}
@keyframes crack-and-bleed {
  0%, 100% { border: 1px solid var(--system-alert-color); box-shadow: 0 0 5px rgba(var(--system-alert-color-rgba), 0.2); }
  5%, 65% { border: 1px solid var(--system-alert-border-bleed); }
  10% { border: 1px solid var(--system-alert-color); box-shadow: 0 0 15px rgba(var(--system-alert-color-rgba), 0.5); }
}


/* =========================================
   6. 平台杂项与响应式
========================================= */

@keyframes aurora-flow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

@media (max-width: 767px) { 
  .group div[class*="bg-card"], .group div[class*="ml-auto"] { margin: 1em 0 !important; padding: 1em 0.8em !important; font-size: 15px !important; border-radius: 0 !important; border-left: none !important; border-right: none !important; } 
}

/* 底部动态文字特效 */
#conversation .flex.gap-2.items-center.justify-center:has(> .rounded-full.bg-primary) { position: relative !important; width: 100% !important; justify-content: center !important; margin-bottom: 3.5em !important; padding-top: 1em !important; }
#conversation .flex.gap-2.items-center.justify-center:has(> .rounded-full.bg-primary)::before { content: '' !important; position: absolute !important; top: -0.5em !important; left: 50% !important; transform: translateX(-50%) !important; width: 12px !important; height: 12px !important; background-color: var(--accent-color-primary) !important; border-radius: 50% !important; animation: dameng-pulse 2s infinite !important; }
#conversation .flex.gap-2.items-center.justify-center:has(> .rounded-full.bg-primary)::after { content: "...侠影淫姿、媚骨铮铮..." !important; position: absolute !important; top: calc(100% - 4em) !important; left: 50% !important; transform: translateX(-50%) !important; border-radius: 8px !important; border: 1px solid var(--border-color) !important; background-color: rgba(var(--bg-color-main-rgba), 0.8) !important; color: var(--text-color-main) !important; font-size: 14px !important; font-weight: 600 !important; padding: 0.5em 1em !important; white-space: nowrap !important; overflow: hidden !important; animation: typing-dameng 8s steps(14, end) infinite !important; }
@keyframes dameng-pulse { 0% { box-shadow: 0 0 0 0 rgba(var(--accent-color-primary-rgba), 0.7) !important; } 70% { box-shadow: 0 0 0 15px rgba(var(--accent-color-primary-rgba), 0) !important; } 100% { box-shadow: 0 0 0 0 rgba(var(--accent-color-primary-rgba), 0) !important; } }
@keyframes typing-dameng { from { width: 0; } to { width: 17em; } }