/* ═══ B平台加载动画适配（自动注入）═══ */
.flex.items-center.justify-center.size-6 { opacity: 1 !important; }
.flex.items-center.justify-center.size-6 > .flex.gap-2 { display: none !important; }

/* ═══ B平台表格修正（自动注入）═══ */
.rili-markdown-renderer table { display:table!important; table-layout:auto!important; width:100%!important; border-collapse:collapse!important; }
.rili-markdown-renderer table caption { display:table-caption!important; caption-side:top!important; text-align:center!important; padding:8px!important; }
.rili-markdown-renderer thead { display:table-header-group!important; }
.rili-markdown-renderer tbody { display:table-row-group!important; }
.rili-markdown-renderer tr { display:table-row!important; }
.rili-markdown-renderer th, .rili-markdown-renderer td { display:table-cell!important; }

/* ═══ B平台按钮组保护（自动注入 — 防止按钮消失）═══
   原理：B平台消息操作按钮结构为：
   .flex.items-center.gap-1.ml-auto (hover显隐包装)
     └── .bg-muted.rounded.flex.p-0.5 (按钮组容器)
           └── button.rounded-full.size-7 (单个按钮)
   以下规则使用高specificity + !important确保按钮
   不被任何转换后/透传的CSS规则意外隐藏
   ═══════════════════════════════════════════════ */
/* 按钮组容器保护 */
.w-full.h-full.flex.group .bg-muted.rounded.flex.p-0\.5,
.is-user .bg-muted.rounded.flex.p-0\.5,
.is-assistant .bg-muted.rounded.flex.p-0\.5 {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;
  position: relative !important;
  width: auto !important;
  height: auto !important;
  max-height: none !important;
  pointer-events: auto !important;
  clip: auto !important;
  clip-path: none !important;
}
/* 单个按钮保护 */
.w-full.h-full.flex.group .bg-muted.rounded.flex.p-0\.5 > button,
.is-user .bg-muted.rounded.flex.p-0\.5 > button,
.is-assistant .bg-muted.rounded.flex.p-0\.5 > button {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: relative !important;
  clip: auto !important;
  clip-path: none !important;
}
/* hover显隐包装层保护 — 仅保留B平台原生的opacity过渡 */
.flex.items-center.gap-1.ml-auto.md\:opacity-0.group-hover\:opacity-100 {
  visibility: visible !important;
  display: flex !important;
  pointer-events: auto !important;
  overflow: visible !important;
}
/* 操作行保护 */
.flex.w-full.items-center.justify-between.gap-2.px-2 {
  display: flex !important;
  visibility: visible !important;
  overflow: visible !important;
}

/* --- 魔法少女RPG UI主题 - v7.0 (已修复按钮消失问题) --- */
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;700&display=swap');
@keyframes k-shine{0%{background-position:-200% 0}100%{background-position:200% 0}}
.rili-markdown-renderer{--c-hp:#50fa7b;--c-mp:#8be9fd;--c-dura:#f1fa8c;--c-corr:#bd93f9;--c-plea:#ff79c6;--c-accent:#ff79c6;--c-glow:#ffc0e5;--c-dark:#c6538c;--c-text1:#3e4c6e;--c-text2:#6272a4;--c-border:rgba(180,190,220,.6);--c-overlay:rgba(40,42,54,.97);font-family:'M PLUS Rounded 1c','Segoe UI',sans-serif;font-size:14px;line-height:1.6;padding:5px;color:var(--c-text1)}
.rili-markdown-renderer details{margin-bottom:10px;border:none;background:none}
.rili-markdown-renderer summary{list-style:none;background-image:linear-gradient(to right,#ffc0cb,#ffb6c1);color:#fff;padding:8px 16px;border-radius:12px;cursor:pointer;font-weight:700;transition:transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;gap:8px;box-shadow:0 2px 5px rgba(0,0,0,.1);text-shadow:0 0 3px #ff69b4,0 0 5px rgba(255,255,255,.8)}
.rili-markdown-renderer summary:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(255,105,180,.4)}
.rili-markdown-renderer summary::-webkit-details-marker{display:none}
.rili-markdown-renderer summary::before{content:'✦';font-size:1.2em;color:#fff799;transition:transform .3s ease-in-out;text-shadow:0 0 5px #ffd700}
.rili-markdown-renderer details[open]>summary::before{transform:rotate(180deg)}
.rili-markdown-renderer .a{background-color:rgba(255,255,255,.85);border:1px solid #ffb6c1;border-radius:12px;padding:12px;margin-top:8px}
.rili-markdown-renderer .b{background:rgba(255,255,255,.7);border:1px solid var(--c-border);border-radius:8px;padding:5px 12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.rili-markdown-renderer info{font-weight:700;color:var(--c-dark);margin-right:8px;display:flex;align-items:center}
.rili-markdown-renderer info::before{content:'✧';margin-right:4px;color:var(--c-accent)}
.rili-markdown-renderer .b.c{flex-direction:column;align-items:flex-start}
.rili-markdown-renderer .b.r{gap:10px}
.rili-markdown-renderer progress{-webkit-appearance:none;appearance:none;flex-grow:1;height:16px;background-color:rgba(0,0,0,.1);border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.2);border:1px solid rgba(0,0,0,.1)}
.rili-markdown-renderer progress::-webkit-progress-bar{background-color:transparent}
.rili-markdown-renderer progress::-webkit-progress-value{border-radius:8px;background-size:200% 100%;background-image:linear-gradient(90deg,transparent 20%,rgba(255,255,255,.7) 50%,transparent 80%);animation:k-shine 2.5s infinite linear}
.rili-markdown-renderer .s::-webkit-progress-value{background-color:var(--c-hp)}
.rili-markdown-renderer .t::-webkit-progress-value{background-color:var(--c-mp)}
.rili-markdown-renderer .u::-webkit-progress-value{background-color:var(--c-dura)}
.rili-markdown-renderer .w::-webkit-progress-value{background-color:var(--c-corr)}
.rili-markdown-renderer .v::-webkit-progress-value{background-color:var(--c-plea)}
.d{background:#343746;border-radius:18px;padding:10px;margin:8px;box-shadow:0 5px 15px rgba(0,0,0,.2),inset 0 0 10px rgba(0,0,0,.5)}
.e{display:flex;justify-content:space-between;align-items:center;color:#f8f8f2;font-size:.8em;padding:0 8px 8px}
.e>div{display:flex;gap:5px;align-items:center}
.f{background:#f1f3f8;border-radius:8px;padding:10px;max-height:300px;overflow-y:auto}
.g{color:var(--c-dark);font-weight:700;text-align:center;padding-bottom:8px;border-bottom:1px solid var(--c-border);margin-bottom:10px}
.h{background:transparent;padding:8px 0;border-bottom:1px solid var(--c-border)}
.h:last-child{border-bottom:none;padding-bottom:0}
.i{font-weight:700;color:var(--c-text2)}
.j{font-size:.95em;margin:4px 0}
.k{font-size:.8em;color:#999;margin-top:8px;display:flex;justify-content:space-between;align-items:center}
.l{font-weight:700;color:var(--c-accent)}
.n{cursor:pointer;color:#aaa;transition:color .2s ease; display: inline-flex; align-items: center;}
.n i.icon-like{font-style: normal; margin-right: 4px; transition: all .2s ease;}
.n i.icon-like::before{content:"♡"}
.n:hover i.icon-like::before{content:"❤️"; color: #ff0055;}
.n:hover i.icon-like{transform: scale(1.2);}
.n:hover{color:var(--c-dark)}
.h.o{margin-left:15px;padding-left:10px;border-left:3px solid var(--c-accent)}
.p{color:var(--c-dark);font-weight:400}
.rili-markdown-renderer T{position:relative;display:inline-block;cursor:help;border-bottom:1px dotted var(--c-accent);padding:0 3px;border-radius:3px;transition:all .2s ease;font-weight:700}
.rili-markdown-renderer T:hover{background:var(--c-glow);color:var(--c-dark)}
.rili-markdown-renderer T::before{content:"\2060"}
.rili-markdown-renderer T Ti{visibility:hidden;opacity:0;text-decoration:none;white-space:normal;width:max-content;max-width:300px;background-color:var(--c-overlay);color:#f8f8f2;text-align:left;border-radius:8px;padding:12px 16px;font-size:.9em;border:1px solid var(--c-accent);box-shadow:0 0 20px var(--c-glow);transition:opacity .3s ease,visibility .3s ease;pointer-events:none;position:absolute;z-index:1000;bottom:140%;left:0;transform:translateX(0)}
.rili-markdown-renderer T Ti::after{content:"";position:absolute;top:100%;left:15px;margin-left:-6px;border-width:6px;border-style:solid;border-color:var(--c-accent) transparent transparent transparent}
.rili-markdown-renderer T:hover Ti{visibility:visible;opacity:1}
.rili-markdown-renderer T Ti span{color:var(--c-accent);font-weight:700}
.rili-markdown-renderer T[data-quality=稀有]{color:#50fa7b;border-color:#50fa7b}
.rili-markdown-renderer T[data-quality=史诗]{color:#bd93f9;border-color:#bd93f9}
.rili-markdown-renderer T[data-quality=传说]{color:#ffb86c;border-color:#ffb86c}
.rili-markdown-renderer T[data-quality=普通]{color:#aaa;border-color:#aaa}
.rili-markdown-renderer T[data-quality]:hover{background:none}
.rili-markdown-renderer .y .a{border-color:#d3d3d3}
.z{margin-bottom: 10px;}
.z:last-child{margin-bottom: 0;}
.aa{width:100%;border-collapse:collapse;font-size:.9em;margin-top:10px}
.aa th,.aa td{padding:8px;text-align:left;border-bottom:1px solid var(--c-border)}
.aa thead th{background-color:rgba(211,211,211,.3);color:var(--c-text2)}
.aa tbody tr:hover{background-color:rgba(211,211,211,.4)}
.rili-markdown-renderer choice{padding:10px}
.rili-markdown-renderer choice h2{text-align:center}
.rili-markdown-renderer choice ol{list-style:none;padding-left:0;counter-reset:ch-c}
.rili-markdown-renderer choice li{background:#fff;border:1px solid #ffb6c1;border-left:4px solid var(--c-accent);border-radius:8px;padding:10px 15px 10px 35px;margin-bottom:8px;cursor:pointer;position:relative;transition:all .2s ease}
.rili-markdown-renderer choice li:hover{background:var(--c-glow);border-color:var(--c-dark);transform:translateX(5px)}
.rili-markdown-renderer choice li::before{counter-increment:ch-c;content:counter(ch-c);position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--c-dark);font-weight:700;font-size:1.1em}
.x{display:block}
.ab{background:rgba(255,250,250,0.9);border:1px solid var(--c-glow);border-radius:12px;padding:1em 1.5em;margin:10px 0;box-shadow:0 3px 10px rgba(255,192,203,0.3)}
.ab p{margin-bottom:1em}
.ab p:last-child{margin-bottom:0}
.rili-markdown-renderer hr{border:0;height:1px;background-image:linear-gradient(to right,rgba(189,147,249,0),rgba(189,147,249,.75),rgba(189,147,249,0));margin:10px 0}
@media (max-width:600px){.rili-markdown-renderer .b.r{flex-wrap:wrap}.rili-markdown-renderer .b.r progress{width:100%;order:3;margin-top:5px}}
/* --- 魔法少女RPG风格 v9 (最终完整版) --- */
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;700&display=swap');
/* ===== 聊天框美化 (AI与用户) ===== */
[class*="bg-[#F1CBCB]"], 
[class*="bg-[#c9e1e9]"] {
    display: none !important;
}
.is-assistant > .border.border-muted {
    background: linear-gradient(135deg, #fce3ee 0%, #e6e0ff 100%) !important;
    border: 2px solid #d1c4e9 !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 12px rgba(214, 196, 233, 0.5), 0 0 8px rgba(252, 227, 238, 0.6) !important;
    transition: all 0.3s ease-in-out !important;
}
.is-user > .border.border-muted {
    background: linear-gradient(135deg, #e9e4ff 0%, #fff0f5 100%) !important;
    border: 2px solid #fbcfe8 !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 12px rgba(244, 114, 182, 0.25), 0 0 8px rgba(255, 230, 240, 0.6) !important;
    transition: all 0.3s ease-in-out !important;
    color: #581c87;
}
/* ===== 加载动画 (已放大) ===== */
.flex.items-center.justify-center.size-6 > .flex.gap-2 { display: none !important; }
.flex.items-center.justify-center.size-6 {
    position: relative !important;
    height: 55px !important;
    width: auto !important;
    min-width: 170px !important;
}
.flex.items-center.justify-center.size-6::before {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50' fill='%23b39ddb'%3E%3Cpath d='M25,0 L30,20 L50,25 L30,30 L25,50 L20,30 L0,25 L20,20 Z' /%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute !important;
    top: 0;
    left: 50%;
    width: 28px !important;
    height: 28px !important;
    animation: magic-spin 1.8s linear infinite, magic-glow 2.2s ease-in-out infinite alternate !important;
}
.flex.items-center.justify-center.size-6::after {
    content: '正在施展输出魔法…';
    position: absolute !important;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #7e57c2 !important; 
    font-family: 'KaiTi', 'STKaiti', serif !important; 
    white-space: nowrap;
    text-shadow: 0 0 5px rgba(255, 224, 255, 0.9) !important;
}
@keyframes magic-spin { from { transform: translateX(-50%) rotate(0deg); } to { transform: translateX(-50%) rotate(360deg); } }
@keyframes magic-glow { from { filter: drop-shadow(0 0 2px #e1bee7); } to { filter: drop-shadow(0 0 6px #d1c4e9) drop-shadow(0 0 10px #f8bbd0); } }
/* ===== 聊天框内闪亮按钮 ===== */
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7{
    position: relative !important;
    overflow: visible !important;
    background: rgba(244, 114, 182, 0.1) !important;
    border: 1px solid rgba(244, 114, 182, 0.2) !important;
    border-radius: 10px !important;
    color: #be185d !important;
    padding: 2px 8px !important;
    margin: 0 4px !important;
    transition: all 0.3s ease !important;
}
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7{
    color: #db2777 !important;
    background: rgba(244, 114, 182, 0.15) !important;
    border-color: rgba(244, 114, 182, 0.4) !important;
    box-shadow: 0 0 10px rgba(244, 114, 182, 0.3) !important;
}
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7{
    content: '✦';
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 16px;
    color: #fce7f3;
    text-shadow: 0 0 5px #fbcfe8, 0 0 10px #f9a8d4;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7{
    animation: sparkle-out 0.6s ease-out forwards;
}
@keyframes sparkle-out {
    0% { opacity: 1; transform: translate(-50%, -50%) scale(0.5) rotate(0deg); }
    80% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -150%) scale(1.5) rotate(180deg); }
}
/* ===== 全局功能按钮 (mod, 流式等) ===== */
button.MuiButtonBase-root:not(#ai-send-button):not(.MuiButton-textPrimary) {
    position: relative !important;
    overflow: visible !important;
    background: rgba(252, 231, 243, 0.6) !important;
    border: 1px solid rgba(244, 114, 182, 0.3) !important;
    border-radius: 12px !important;
    color: #db2777 !important;
    padding: 4px 12px !important;
    margin: 2px 4px !important;
    font-family: 'M PLUS Rounded 1c', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    transition: all 0.3s ease !important;
}
button.MuiButtonBase-root:not(#ai-send-button):not(.MuiButton-textPrimary):hover {
    background: rgba(252, 231, 243, 0.9) !important;
    border-color: rgba(244, 114, 182, 0.7) !important;
    box-shadow: 0 0 12px rgba(244, 114, 182, 0.4) !important;
    color: #be185d !important;
}
button.MuiButtonBase-root:not(#ai-send-button):not(.MuiButton-textPrimary)::after {
    content: '⭐';
    position: absolute;
    top: -6px;
    right: -6px;
    font-size: 14px;
    text-shadow: 0 0 6px #ffffff, 0 0 10px #f9a8d4;
    opacity: 0;
    transform: scale(0) rotate(0deg);
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
button.MuiButtonBase-root:not(#ai-send-button):not(.MuiButton-textPrimary):hover::after {
    opacity: 1;
    transform: scale(1) rotate(360deg);
}
/* ===== 底部其他元素 (模型名, Token) ===== */
.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground,
/* [Token消耗hover逻辑转换未启用]
.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground,
.text-orange-500 {
    color: #9c27b0 !important;
    font-weight: 500 !important;
    background-color: rgba(233, 213, 255, 0.3) !important;
    padding: 2px 6px !important;
    border-radius: 6px !important;
    margin: 0 4px !important;
}
*/
/* ===== 魔法少女粉色输入区 ===== */
.p-\[5\.5px\].max-h-\[150px\] {
  background: rgba(255, 240, 245, 0.8) !important;
  border: 1.5px solid rgba(244, 114, 182, 0.4) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 12px rgba(244, 114, 182, 0.1) !important;
  padding: 6px !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  width: auto !important;
  max-width: 95% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
#ai-chat-input {
  background: rgba(255, 250, 252, 0.8) !important;
  border-radius: 10px !important;
  border: 1px solid rgba(249, 168, 212, 0.7) !important;
  font-family: 'M PLUS Rounded 1c', "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: #86198f !important;
  caret-color: #F472B6 !important;
  padding: 10px 44px 10px 10px !important;
  height: auto !important;
  max-height: 120px !important;
  resize: none !important;
  outline: none !important;
  transition: all 0.3s ease;
}
#ai-chat-input::placeholder { color: rgba(190, 100, 150, 0.5) !important; }
#ai-chat-input:focus {
  border-color: #F472B6 !important;
  box-shadow: 0 0 8px rgba(244, 114, 182, 0.3) !important;
  background: rgba(255, 250, 252, 0.9) !important;
}
.p-\[5\.5px\].max-h-\[150px\] .flex.items-center.px-1 {
  background: rgba(244, 114, 182, 0.1) !important;
  color: #c026d3 !important;
  border-radius: 6px !important;
  border: 1px solid rgba(244, 114, 182, 0.25) !important;
  font-family: 'M PLUS Rounded 1c', sans-serif !important;
  font-weight: 700 !important;
}
.p-\[5\.5px\].max-h-\[150px\] .mx-1 { background: rgba(244, 114, 182, 0.2) !important; }
#ai-send-button {
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(249, 168, 212, 0.6) !important;
  transition: all 0.3s ease;
}
#ai-send-button:hover {
  background: rgba(244, 114, 182, 0.1) !important;
  border-color: rgba(244, 114, 182, 0.7) !important;
  box-shadow: 0 0 8px rgba(244, 114, 182, 0.2);
}
#ai-send-button svg { color: #be185d !important; transition: color 0.3s ease; }
#ai-send-button:hover svg { color: #db2777 !important; }
/* ===== 魔法少女风格: 模型消耗信息 ===== */
/* [Token消耗hover逻辑转换未启用]
.flex.w-full.items-center.justify-between.gap-2.px-2.text-purple-500.mt-1.css-1kz283j {
  background: rgba(252, 227, 238, 0.75) !important;
  border: 1px solid rgba(209, 196, 233, 0.6) !important;
  border-radius: 8px !important;
  padding: 6px 12px !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0 12px !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 10px rgba(214, 196, 233, 0.3) !important;
  margin-top: 4px !important;
}
*/
.flex.w-full.items-center.justify-between.gap-2.px-2 > p.MuiTypography-root.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground {
  color: #7e57c2 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  font-family: 'Helvetica Neue', 'Roboto', 'Segoe UI', Arial, sans-serif !important;
}
.flex.w-full.items-center.justify-between.gap-2.px-2 > p.MuiTypography-root.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground::after {
  content: '查看魔力消耗' !important;
  background: rgba(230, 224, 255, 0.5) !important;
  color: #7e57c2 !important;
  border: 1px solid rgba(209, 196, 233, 0.7) !important;
  border-radius: 4px !important;
  padding: 2px 8px !important;
  font-size: 12px !important;
  margin-left: 10px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  font-family: 'Helvetica Neue', 'Roboto', 'Segoe UI', Arial, sans-serif !important;
  font-weight: 600 !important;
  white-space: nowrap;
}
.flex.w-full.items-center.justify-between.gap-2.px-2 > p.MuiTypography-root.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground:hover::after {
  background: rgba(171, 71, 188, 0.85) !important;
  border-color: rgba(171, 71, 188, 0.5) !important;
  color: #ffffff !important;
  box-shadow: 0 0 10px rgba(171, 71, 188, 0.5) !important;
  text-shadow: 0 0 5px rgba(255, 255, 255, 0.7) 