/* =======================================================
   1. 全局与底层 UI 隐藏 (中欧西幻·复古樱花粉透明基调)
======================================================= */
[class*="bg-[#F1CBCB]"], 
[class*="bg-[#c9e1e9]"] {
    display: none !important;
}

header, .sticky.top-0, [class*="sticky"][class*="top-0"], .bg-gradient-to-t, #ai-chat-bottom-input { 
    background: transparent !important; background-color: transparent !important; border: none !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; 
}

.is-user > .border.border-muted, .is-assistant > .border.border-muted {
    background: rgba(245, 225, 230, 0.65) !important; /* 保留樱花粉透明底色，降低白度 */
    backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important;
    border: 2px solid rgba(216, 175, 175, 0.7) !important; /* 古董玫瑰金 */
    box-shadow: 0 8px 25px rgba(180, 130, 140, 0.15), inset 0 0 20px rgba(245, 225, 230, 0.4) !important;
    border-radius: 8px 24px 8px 24px !important;
    position: relative !important; overflow: visible !important;
}

.is-user > .border.border-muted::before, .is-assistant > .border.border-muted::before { content: '' !important; position: absolute !important; top: -2px !important; left: 24px !important; width: 36px !important; height: 4px !important; background: #D4A3A3 !important; box-shadow: 0 0 8px #D4A3A3 !important; border-radius: 4px !important; z-index: 10 !important; }
.is-user > .border.border-muted::after, .is-assistant > .border.border-muted::after { content: '' !important; position: absolute !important; bottom: -2px !important; right: 24px !important; width: 36px !important; height: 4px !important; background: #C2B8A3 !important; box-shadow: 0 0 8px #C2B8A3 !important; border-radius: 4px !important; z-index: 10 !important; }

.markdown-body, .rili-markdown-renderer {
    font-size: 1.15rem !important; line-height: 1.7 !important; color: #6B4E4A !important; /* 深玫瑰褐，代替黑色 */
    font-family: "Nunito", "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-weight: 500 !important; text-shadow: none !important; position: relative !important; z-index: 1 !important;
}
.markdown-body strong, .rili-markdown-renderer strong { color: #9E5B64 !important; font-weight: 800 !important; background: rgba(158, 91, 100, 0.1) !important; padding: 0 4px !important; border-radius: 4px !important; } 

/* =========================================
   2. 顶部栏、底部输入栏与按钮栏
========================================= */
#ai-model-selector .group.flex.items-center { background: rgba(238, 224, 224, 0.8) !important; backdrop-filter: blur(8px) !important; border: 1px solid rgba(216, 175, 175, 0.8) !important; border-radius: 12px !important; box-shadow: 0 2px 10px rgba(180, 130, 140, 0.1) !important; transition: all 0.3s ease !important; }
#ai-model-selector .group.flex.items-center:hover { background: rgba(245, 233, 233, 0.95) !important; box-shadow: 0 4px 15px rgba(180, 130, 140, 0.25) !important; border-color: #D4A3A3 !important; }
#ai-model-selector .truncate.text-\[13px\] { color: #8A6065 !important; font-weight: 800 !important; letter-spacing: 0.5px !important; }

#ai-model-selector .shrink-0.flex.items-center svg, .sticky.top-0 svg, [class*="sticky"][class*="top-0"] svg { color: #8A6065 !important; transition: transform 0.2s !important; filter: none !important; }
.sticky.top-0 svg:hover, [class*="sticky"][class*="top-0"] svg:hover { transform: scale(1.1) !important; color: #9E5B64 !important; }

textarea, input[type="text"] { 
    background: rgba(238, 228, 225, 0.85) !important; border: 2px solid #D8BDBA !important; border-radius: 16px !important; color: #6B4E4A !important; font-weight: bold !important; box-shadow: 0 4px 15px rgba(180, 130, 140, 0.08) !important; transition: all 0.3s ease !important; 
}
textarea:focus, input[type="text"]:focus { box-shadow: 0 4px 20px rgba(158, 91, 100, 0.15), inset 0 0 10px rgba(245, 233, 233, 0.6) !important; border-color: #D4A3A3 !important; outline: none !important; }
textarea::placeholder, input[type="text"]::placeholder { color: rgba(160, 145, 145, 0.6) !important; }
textarea::selection, input[type="text"]::selection { background: #D4A3A3 !important; color: #6B4E4A !important; }

button, .menu_button { 
    display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; overflow-y: hidden !important; gap: 12px !important; align-items: center !important; padding: 10px 15px !important; scrollbar-width: thin !important; scrollbar-color: #D4A3A3 transparent !important; flex-shrink: 0 !important; min-height: 40px !important; 
    background: linear-gradient(135deg, #F3E6E3, #EAD7D5) !important; border: 1px solid #D8BDBA !important; border-radius: 12px !important; color: #8B6A68 !important; font-weight: 900 !important; letter-spacing: 1px !important; box-shadow: 0 2px 8px rgba(180, 170, 175, 0.1) !important; transition: all 0.2s ease-in-out !important; clip-path: none !important;
}
button:hover, .menu_button:hover { 
    background: linear-gradient(135deg, #D4A3A3, #F3E6E3) !important; border-color: #9E5B64 !important; color: #664245 !important; box-shadow: 0 4px 12px rgba(158, 91, 100, 0.2) !important; transform: scale(1.02) translateY(-2px) !important; text-shadow: none !important;
}
button svg, .menu_button svg { color: inherit !important; filter: drop-shadow(0 0 2px currentColor) !important; }

/* =======================================================
   3. 虚数终端面板 UI (魔法羊皮卷系统)
======================================================= */
.markdown-body .panel-grid > p, .rili-markdown-renderer .panel-grid > p,
.markdown-body .scene-status-card > p, .rili-markdown-renderer .scene-status-card > p { display: contents !important; }

.markdown-body .scene-status-card, .rili-markdown-renderer .scene-status-card {
    background: linear-gradient(135deg, #EBE1D9, #E2D4CD) !important; 
    border: 1px solid #C8B8AD !important; border-left: 6px solid #B89C8E !important; border-radius: 8px !important;
    padding: 12px 16px !important; margin-bottom: 20px !important;
    box-shadow: 0 4px 15px rgba(184, 156, 142, 0.12), inset 0 0 10px rgba(245, 238, 233, 0.6) !important;
}
.markdown-body .scene-status-card .info-grid, .rili-markdown-renderer .scene-status-card .info-grid { display: flex !important; justify-content: space-between !important; flex-wrap: wrap !important; gap: 10px !important; margin: 0 !important; }
.markdown-body .scene-status-card span, .rili-markdown-renderer .scene-status-card span {
    background: rgba(238, 228, 222, 0.7) !important; padding: 8px 16px !important; border-radius: 6px !important;
    color: #6B5750 !important; font-size: 1rem !important; font-weight: bold !important;
    border: 1px solid rgba(184, 156, 142, 0.3) !important; flex: 1 1 auto !important; text-align: center !important;
    box-shadow: 0 2px 5px rgba(184, 156, 142, 0.05) !important; letter-spacing: 1px !important;
}
.markdown-body .scene-status-card span b, .rili-markdown-renderer .scene-status-card span b { color: #8A6E63 !important; }

.markdown-body .panel-grid, .rili-markdown-renderer .panel-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important; 
    gap: 12px !important; width: 100% !important; max-width: 100% !important;
    box-sizing: border-box !important; margin-bottom: 20px !important; align-items: start !important;
}

.markdown-body .grid-item, .rili-markdown-renderer .grid-item {
    margin: 0 !important; box-sizing: border-box !important; min-width: 0 !important; 
    background: #F3E8E6 !important; border: 1px solid #D8C3C0 !important; border-radius: 8px !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 2px 10px rgba(180, 170, 170, 0.06) !important; clip-path: none !important;
}

.markdown-body .grid-item[open], .rili-markdown-renderer .grid-item[open] {
    grid-column: 1 / -1 !important; 
    box-shadow: 0 6px 25px rgba(158, 91, 100, 0.15), 0 0 15px rgba(245, 233, 233, 0.8) !important;
    border-color: #D4A3A3 !important;
    animation: expandPanel 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1) forwards !important;
}
@keyframes expandPanel {
    0% { transform: scale(0.98) translateY(-5px); opacity: 0.8; }
    100% { transform: scale(1) translateY(0); opacity: 1; }
}

.markdown-body .grid-item:not([open]) .fold-header, .rili-markdown-renderer .grid-item:not([open]) .fold-header { 
    background: linear-gradient(90deg, #EAD8D5 0%, #F3E8E6 100%) !important; 
    font-weight: 800 !important; color: #8A6B68 !important; 
    border-left: 5px solid #C8A2A0 !important; border-radius: 6px !important;
    cursor: pointer !important; transition: all 0.2s ease !important; 
    display: block !important; width: 100% !important; height: 46px !important; line-height: 46px !important;
    padding: 0 12px !important; box-sizing: border-box !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; text-shadow: none !important;
}
.markdown-body .grid-item:not([open]) .fold-header:hover, .rili-markdown-renderer .grid-item:not([open]) .fold-header:hover { 
    background: linear-gradient(90deg, #D4A3A3 0%, #F3E8E6 100%) !important; 
    border-left-color: #9E5B64 !important; border-left-width: 5px !important; color: #664245 !important; transform: translateY(-1px) !important; box-shadow: none !important;
}
.markdown-body .grid-item[open] .fold-header, .rili-markdown-renderer .grid-item[open] .fold-header {
    display: block !important; height: auto !important; line-height: 1.5 !important; padding: 12px 15px !important;
    white-space: normal !important; overflow: visible !important;
    border-bottom: 1px solid #D8C3C0 !important; background: linear-gradient(90deg, #E6DCD8 0%, #F3E8E6 100%) !important; 
    color: #78605E !important; border-left: 5px solid #A3A8B8 !important; border-radius: 8px 8px 0 0 !important; font-weight: 800 !important; text-shadow: none !important;
}

.markdown-body .fold-content, .rili-markdown-renderer .fold-content { 
    padding: 15px !important; font-size: 13.5px !important; line-height: 1.6 !important; 
    background: #EBE0DC !important; border-radius: 0 0 8px 8px !important; overflow: visible !important; 
}

/* =======================================================
   🌸 幕后茶话会 / 剧情分支 (游吟诗人手札)
======================================================= */
.markdown-body .main-story-box, .rili-markdown-renderer .main-story-box,
.markdown-body .omake-isolation-box, .rili-markdown-renderer .omake-isolation-box, 
.markdown-body .purple-isolation-box, .rili-markdown-renderer .purple-isolation-box {
    grid-column: 1 / -1 !important; width: 100% !important; display: block !important; clear: both !important; 
    margin-top: 28px !important; margin-bottom: 20px !important;
    background: #F2E6E3 !important; border: 2px dashed #CFA8A4 !important; border-radius: 16px !important;
    padding: 16px !important; position: relative !important;
    box-shadow: 5px 5px 0px rgba(207, 168, 164, 0.45) !important; transition: all 0.3s ease !important;
}
.markdown-body .main-story-box:hover, .rili-markdown-renderer .main-story-box:hover,
.markdown-body .omake-isolation-box:hover, .rili-markdown-renderer .omake-isolation-box:hover {
    transform: translateY(-2px) !important; box-shadow: 6px 6px 0px rgba(207, 168, 164, 0.6) !important;
}

.markdown-body .main-story-box::before, .rili-markdown-renderer .main-story-box::before,
.markdown-body .omake-isolation-box::before, .rili-markdown-renderer .omake-isolation-box::before,
.markdown-body .purple-isolation-box::before, .rili-markdown-renderer .purple-isolation-box::before {
    content: '' !important; position: absolute !important; top: -14px !important; left: 50% !important;
    transform: translateX(-50%) rotate(-3deg) !important; width: 110px !important; height: 26px !important;
    background: linear-gradient(90deg, rgba(238,224,220,0.4), rgba(238,224,220,0.85), rgba(238,224,220,0.4)) !important;
    border: 1px solid rgba(207, 168, 164, 0.6) !important; box-shadow: 0 2px 5px rgba(0,0,0,0.04) !important;
    backdrop-filter: blur(6px) !important; z-index: 5 !important;
}

.markdown-body .main-story-box .fold-header, .rili-markdown-renderer .main-story-box .fold-header,
.markdown-body .omake-isolation-box .fold-header, .rili-markdown-renderer .omake-isolation-box .fold-header,
.markdown-body .purple-isolation-box .fold-header, .rili-markdown-renderer .purple-isolation-box .fold-header {
    background: transparent !important; border: none !important; text-align: center !important;
    font-size: 1.15em !important; color: #A66B6D !important; letter-spacing: 2px !important;
    padding: 8px 0 12px 0 !important; white-space: normal !important; height: auto !important; text-shadow: none !important; box-shadow: none !important;
}
.markdown-body .main-story-box .fold-header::before, .rili-markdown-renderer .main-story-box .fold-header::before,
.markdown-body .omake-isolation-box .fold-header::before, .rili-markdown-renderer .omake-isolation-box .fold-header::before { content: '✧ ' !important; color: #CFA8A4 !important; }
.markdown-body .main-story-box .fold-header::after, .rili-markdown-renderer .main-story-box .fold-header::after,
.markdown-body .omake-isolation-box .fold-header::after, .rili-markdown-renderer .omake-isolation-box .fold-header::after { content: ' ✧' !important; color: #CFA8A4 !important; }

.markdown-body .main-story-box .fold-content, .rili-markdown-renderer .main-story-box .fold-content,
.markdown-body .omake-isolation-box .fold-content, .rili-markdown-renderer .omake-isolation-box .fold-content {
    background: #EBE0DC !important; border-radius: 12px !important; padding: 12px 10px !important; color: #7A6366 !important; margin-top: 8px !important; 
}
.markdown-body .main-story-box b, .rili-markdown-renderer .main-story-box b { color: #A8865C !important; font-weight: 800 !important; text-shadow: none !important; }
.markdown-body .main-story-box b:hover, .rili-markdown-renderer .main-story-box b:hover { color: #A8865C !important; text-shadow: none !important; }

/* 羁绊卡片与 NPC 卡片 */
.markdown-body .bond-card, .rili-markdown-renderer .bond-card { background: linear-gradient(90deg, #E8DFE2, #F2E6E3) !important; border: 1px solid #D1C5C8 !important; border-left: 4px solid #B3A1A8 !important; padding: 12px !important; margin-bottom: 12px !important; box-shadow: 0 2px 8px rgba(180, 170, 175, 0.08) !important; transition: all 0.3s ease !important; border-radius: 8px !important;}
.markdown-body .bond-card:hover, .rili-markdown-renderer .bond-card:hover { transform: translateY(-2px) !important; border-color: #B3A1A8 !important; box-shadow: 0 6px 15px rgba(180, 170, 175, 0.15) !important; }

.markdown-body .npc-card, .rili-markdown-renderer .npc-card { background: linear-gradient(90deg, #E0DADB, #F2E6E3) !important; border: 1px solid #C7C0C2 !important; border-left: 4px solid #A3A8B8 !important; padding: 12px !important; margin-bottom: 12px !important; box-shadow: 0 2px 8px rgba(170, 170, 175, 0.08) !important; transition: all 0.3s ease !important; border-radius: 8px !important;}
.markdown-body .npc-card:hover, .rili-markdown-renderer .npc-card:hover { transform: translateY(-2px) !important; border-color: #A3A8B8 !important; box-shadow: 0 6px 15px rgba(170, 170, 175, 0.15) !important; }

.markdown-body b, .rili-markdown-renderer b { color: #7A6366 !important; text-shadow: none !important; }
.markdown-body .info-grid, .rili-markdown-renderer .info-grid { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-bottom: 10px !important; }
.markdown-body .info-grid span, .rili-markdown-renderer .info-grid span { background: #E8DCD9 !important; padding: 4px 10px !important; border: 1px solid #D8C3C0 !important; border-radius: 12px !important; font-size: 12px !important; color: #7A6366 !important; transition: all 0.3s ease !important; cursor: default !important; }
.markdown-body .info-grid span:hover, .rili-markdown-renderer .info-grid span:hover { background: #D4A3A3 !important; border-color: #9E5B64 !important; color: #664245 !important; transform: scale(1.02) !important; box-shadow: none !important; }
.markdown-body .system-message, .rili-markdown-renderer .system-message { background: rgba(207, 168, 164, 0.25) !important; border: 1px dashed #CFA8A4 !important; padding: 8px 12px !important; margin-bottom: 12px !important; border-radius: 6px !important; color: #8C666A !important; }
.markdown-body hr, .rili-markdown-renderer hr { border: 0 !important; height: 1px !important; background: linear-gradient(90deg, transparent, #D8C3C0, transparent) !important; margin: 15px 0 !important; }

/* =======================================================
   4. 玩家头像防挤压 & 悬浮信息 (复古羊皮卷风格)
======================================================= */
.markdown-body .player-header-wrap, .rili-markdown-renderer .player-header-wrap { display: flex !important; gap: 16px !important; align-items: center !important; margin-bottom: 12px !important; }
.markdown-body .player-avatar, .rili-markdown-renderer .player-avatar { flex-shrink: 0 !important; width: 100px !important; height: 100px !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.markdown-body .profile-player-img, .rili-markdown-renderer .profile-player-img { display: block !important; width: 100px !important; height: 100px !important; min-width: 100px !important; min-height: 100px !important; border-radius: 50% !important; object-fit: cover !important; object-position: top center !important; border: 3px solid #D4B8A3 !important; box-shadow: 0 4px 12px rgba(180, 160, 140, 0.2) !important; background: #EADBD8 !important; flex-shrink: 0 !important; transition: all 0.4s ease !important; }
.markdown-body .profile-player-img:hover, .rili-markdown-renderer .profile-player-img:hover { transform: scale(1.05) !important; box-shadow: 0 6px 18px rgba(180, 160, 140, 0.35) !important; border-color: #C4A38A !important; }

.markdown-body .npc-banner, .rili-markdown-renderer .npc-banner { width: 100% !important; position: relative !important; border-bottom: 3px solid #CFA8A4 !important; overflow: hidden !important; border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; z-index: 1 !important;}
.markdown-body .npc-banner::before, .rili-markdown-renderer .npc-banner::before { display: none !important; }
.markdown-body .npc-name-bar, .rili-markdown-renderer .npc-name-bar { position: absolute !important; bottom: 0 !important; left: 0 !important; width: 100% !important; padding: 30px 15px 12px !important; background: linear-gradient(to top, rgba(238, 226, 224, 0.95) 0%, rgba(238, 226, 224, 0.6) 50%, transparent 100%) !important; display: flex !important; justify-content: space-between !important; align-items: flex-end !important; pointer-events: none !important; z-index: 10 !important; }
.markdown-body .npc-name-bar span, .rili-markdown-renderer .npc-name-bar span { color: #6B4E4A !important; font-size: 1.3em !important; font-weight: 900 !important; text-shadow: 0 2px 5px rgba(238, 226, 224, 0.9) !important; }
.markdown-body .npc-name-bar span:last-child, .rili-markdown-renderer .npc-name-bar span:last-child { font-size: 1em !important; color: #8A6B68 !important; }

/* 🌟 找回的悬浮词条代码 */
.markdown-body .hover-item, .rili-markdown-renderer .hover-item { position: relative !important; display: inline-block !important; color: #78605E !important; border-bottom: 2px dotted #A3A8B8 !important; cursor: help !important; font-weight: 800 !important; margin: 0 4px !important; transition: all 0.2s ease !important; }
.markdown-body .hover-item:hover, .rili-markdown-renderer .hover-item:hover { color: #564C4A !important; background: rgba(163, 168, 184, 0.15) !important; border-radius: 2px !important; text-shadow: none !important; }
.markdown-body .item-desc, .rili-markdown-renderer .item-desc { visibility: hidden !important; opacity: 0 !important; width: max-content !important; max-width: 280px !important; background: rgba(235, 225, 222, 0.98) !important; color: #6B4E4A !important; text-align: left !important; border-radius: 8px !important; padding: 12px 16px !important; position: absolute !important; z-index: 999999 !important; bottom: 130% !important; left: 50% !important; transform: translateX(-50%) translateY(10px) !important; transition: all 0.3s ease !important; border: 1px solid #D1C0BA !important; box-shadow: 0 8px 25px rgba(160, 150, 155, 0.15) !important; font-size: 0.95rem !important; font-weight: normal !important; line-height: 1.6 !important; white-space: normal !important; pointer-events: none !important; backdrop-filter: none !important;}
.markdown-body .hover-item:hover .item-desc, .markdown-body .hover-item:focus .item-desc, .rili-markdown-renderer .hover-item:hover .item-desc, .rili-markdown-renderer .hover-item:focus .item-desc { visibility: visible !important; opacity: 1 !important; transform: translateX(-50%) translateY(0) !important; }

/* ============================================
   5. 沉浸式对话气泡系统 (已修复防溢出 + 找回左右对齐)
============================================ */
.mt-chat > p, .mt-content > p, .npc-chat-row > p, .npc-chat-row > div:last-child > p { display: contents !important; margin: 0 !important; padding: 0 !important; }

.mt-chat, .npc-chat-row { 
    display: flex !important; 
    align-items: flex-start !important; 
    gap: 14px !important; 
    width: 100% !important; 
    max-width: 100% !important; /* 防止溢出 */
    margin: 18px auto !important; 
    font-family: "Nunito", sans-serif !important; 
    background-color: transparent !important; 
    border: none !important; 
    padding: 10px 0 !important; 
    box-sizing: border-box !important; 
    overflow: hidden !important; /* 彻底杜绝宽度溢出 */
}

.mt-content, .npc-chat-row > div:last-child { 
    display: flex !important; 
    flex-direction: column !important; 
    flex: 1 1 0% !important; /* 关键修复：0% 防止子元素撑爆 Flex 容器 */
    min-width: 0 !important; 
    max-width: 100% !important;
}

.mt-name, .npc-chat-name { 
    font-size: 1.05rem !important; 
    font-weight: 800 !important; 
    margin-bottom: 6px !important; 
    transition: color 0.3s ease !important; 
    text-shadow: none !important;
}

/* 气泡本体 */
.mt-bubble, .npc-chat-bubble { 
    position: relative !important; 
    padding: 12px 18px !important; 
    font-size: 1.05rem !important; 
    line-height: 1.6 !important; 
    box-shadow: 0 4px 12px rgba(180, 170, 175, 0.1) !important; 
    border-radius: 12px !important; 
    transition: all 0.3s ease !important; 
    background: #F3E8E6 !important; 
    border: 1px solid #D8C3C0 !important; 
    color: #6B4E4A !important;
    z-index: 1 !important;
    
    /* 强制防溢出换行机制 */
    max-width: 100% !important; 
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    white-space: pre-wrap !important; 
}
.npc-chat-bubble::before, .npc-chat-bubble::after, .mt-bubble::after { display: none !important; content: none !important; }
.mt-bubble p, .mt-bubble span, .npc-chat-bubble p, .npc-chat-bubble span { color: inherit !important; margin: 0 !important; padding: 0 !important; max-width: 100% !important; }
.mt-bubble:hover, .npc-chat-bubble:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 16px rgba(180, 170, 175, 0.18) !important; }

/* 🌟 找回的左右对齐逻辑 (玩家在右，NPC在左) */
.mt-chat[data-align="left"], .npc-chat-row.npc-left { flex-direction: row !important; }
.mt-chat[data-align="left"] .mt-content, .npc-chat-row.npc-left > div:last-child { align-items: flex-start !important; }
.mt-chat[data-align="left"] .mt-bubble, .npc-chat-row.npc-left .npc-chat-bubble { text-align: left !important; border-top-left-radius: 2px !important; }

.mt-chat[data-align="right"], .npc-chat-row.npc-right { flex-direction: row-reverse !important; }
.mt-chat[data-align="right"] .mt-content, .npc-chat-row.npc-right > div:last-child { align-items: flex-end !important; }
.mt-chat[data-align="right"] .mt-bubble, .npc-chat-row.npc-right .npc-chat-bubble { text-align: left !important; border-top-right-radius: 2px !important; }

/* =======================================================
   🖼️ 6. 核心图库映射系统
======================================================= */
.mt-avatar, .npc-chat-avatar, .npc-player-img { 
    display: block !important; width: 92px !important; min-width: 92px !important; height: 92px !important; border-radius: 50% !important; object-fit: cover !important; object-position: top center !important; background-color: #EADBD8 !important; flex-shrink: 0 !important; box-shadow: 0 4px 12px rgba(180,170,175,0.15) !important; margin: 0 !important; padding: 0 !important; transition: all 0.3s ease !important; border: none !important;
}

pic {
    display: inline-block !important; background-size: cover !important; background-position: center 20% !important; background-repeat: no-repeat !important; flex-shrink: 0 !important;
    --avatar: url('https://images.unsplash.com/photo-1544502062-f82887f03d1c?q=80&w=200&auto=format&fit=crop');
    --banner: url('https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?q=80&w=1000&auto=format&fit=crop');
}

pic.p1 {
    display: block !important; width: 92px !important; height: 92px !important; min-width: 92px !important; border-radius: 50% !important;
    background-image: var(--avatar) !important; background-color: #EADBD8 !important;
    box-shadow: 0 4px 12px rgba(180,170,175,0.15) !important; transition: all 0.3s ease !important; margin: 0 !important; padding: 0 !important;
}
pic.p1:hover { transform: scale(1.05) !important; box-shadow: 0 6px 16px rgba(180,170,175,0.25) !important; }

pic.p2 {
    display: block !important; width: 48px !important; height: 48px !important; min-width: 48px !important; border-radius: 50% !important;
    background-image: var(--avatar) !important; border: 2px solid #CFA8A4 !important; box-shadow: 0 2px 6px rgba(180,170,175,0.15) !important;
}

pic.p3 {
    display: block !important; width: 100% !important; aspect-ratio: 3 / 2 !important; min-height: 240px !important;
    background-image: var(--banner) !important; background-position: center center !important; transition: transform 0.6s ease !important;
}
.markdown-body .npc-banner:hover pic.p3, .rili-markdown-renderer .npc-banner:hover pic.p3 { transform: scale(1.02) !important; }

img.p1-custom {
    display: block !important; width: 92px !important; height: 92px !important; min-width: 92px !important; border-radius: 50% !important;
    object-fit: cover !important; background-color: #EADBD8 !important;
    box-shadow: 0 4px 12px rgba(180,170,175,0.15) !important; border: 3px solid #D4B8A3 !important; transition: all 0.3s ease !important; margin: 0 !important; padding: 0 !important; flex-shrink: 0 !important;
}
img.p1-custom:hover { transform: scale(1.05) !important; box-shadow: 0 6px 16px rgba(180,170,175,0.25) !important; }

img.p2-custom {
    display: block !important; width: 48px !important; height: 48px !important; min-width: 48px !important; border-radius: 50% !important;
    object-fit: cover !important; border: 2px solid #CFA8A4 !important; box-shadow: 0 2px 6px rgba(180,170,175,0.15) !important;
}

img.p3-custom {
    display: block !important; width: 100% !important; aspect-ratio: 3 / 2 !important; min-height: 240px !important;
    object-fit: cover !important; border-radius: 8px !important; box-shadow: 0 4px 12px rgba(180,170,175,0.15) !important; margin: 0 !important;
}

/* 阵营/性别配色及头像边框 */
.mt-chat[data-gender="m"] .mt-bubble, .npc-chat-row.npc-male .npc-chat-bubble { background: #E4DFDC !important; border: 1px solid #BDB0AC !important; color: #564C4A !important; border-left: 4px solid #8A7B78 !important; }
.mt-chat[data-gender="m"] .mt-bubble strong, .mt-chat[data-gender="m"] .mt-bubble em, .npc-chat-row.npc-male .npc-chat-bubble strong, .npc-chat-row.npc-male .npc-chat-bubble em { color: #685A57 !important; }
.mt-chat[data-gender="m"] .mt-name, .npc-chat-row.npc-male .npc-chat-name { color: #685A57 !important; }
.mt-chat[data-gender="m"] .mt-avatar, .npc-chat-row.npc-male .npc-chat-avatar, .npc-chat-row.npc-male .npc-player-img, .mt-chat[data-gender="m"] pic.p1, .mt-chat[data-gender="m"] img.p1-custom { border: 3px solid #BDB0AC !important; box-shadow: 0 4px 10px rgba(138,123,120,0.2) !important;}

.mt-chat[data-gender="f"] .mt-bubble, .npc-chat-row.npc-female .npc-chat-bubble { background: #EADCDA !important; border: 1px solid #CFA8A6 !important; color: #754A4D !important; border-left: 4px solid #AD7B7D !important; }
.mt-chat[data-gender="f"] .mt-bubble strong, .mt-chat[data-gender="f"] .mt-bubble em, .npc-chat-row.npc-female .npc-chat-bubble strong, .npc-chat-row.npc-female .npc-chat-bubble em { color: #9E5B64 !important; }
.mt-chat[data-gender="f"] .mt-name, .npc-chat-row.npc-female .npc-chat-name { color: #9E5B64 !important; }
.mt-chat[data-gender="f"] .mt-avatar, .npc-chat-row.npc-female .npc-chat-avatar, .npc-chat-row.npc-female .npc-player-img, .mt-chat[data-gender="f"] pic.p1, .mt-chat[data-gender="f"] img.p1-custom { border: 3px solid #CFA8A6 !important; box-shadow: 0 4px 10px rgba(173,123,125,0.25) !important;}

/* 角色变量表 */
pic[c="1"] { --banner: url('https://s3.bmp.ovh/2026/07/23/24drvMTD.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/PGDPFlad.png'); }
pic[c="2"] { --banner: url('https://s3.bmp.ovh/2026/07/23/K3cdCJUv.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/30LrxEte.png'); }
pic[c="3"] { --banner: url('https://s3.bmp.ovh/2026/07/23/URA8BNPb.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/StHja1XR.png'); }
pic[c="4"] { --banner: url('https://s3.bmp.ovh/2026/07/23/LcoGppb1.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/fhlSOY2K.png'); }
pic[c="5"] { --banner: url('https://s3.bmp.ovh/2026/07/22/6nvo5zBy.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/6nvo5zBy.png'); }
pic[c="6"] { --banner: url('https://s3.bmp.ovh/2026/07/23/by8VgWg0.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/7nb0ios9.png'); }
pic[c="7"] { --banner: url('https://s3.bmp.ovh/2026/07/22/fpMF6elN.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/fpMF6elN.png'); }
pic[c="8"] { --banner: url('https://s3.bmp.ovh/2026/07/23/Cw4HotpL.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/5dR20Te1.png'); }
pic[c="9"] { --banner: url('https://s3.bmp.ovh/2026/07/23/TANHinEx.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/kbH0KQPo.png'); }
pic[c="10"] { --banner: url('https://s3.bmp.ovh/2026/07/23/SjssBZvm.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/CjpGTA4V.png'); }
pic[c="11"] { --banner: url('https://s3.bmp.ovh/2026/07/22/UI9W1vRa.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/UI9W1vRa.png'); }
pic[c="12"] { --banner: url('https://s3.bmp.ovh/2026/07/23/N221eUAK.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/yGc2oPPy.png'); }
pic[c="13"] { --banner: url('https://s3.bmp.ovh/2026/07/23/0BUkpDYg.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/8hcXwvm3.png'); }
pic[c="14"] { --banner: url('https://s3.bmp.ovh/2026/07/23/Zmfvp2FV.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/6B0ooGr2.png'); }
pic[c="15"] { --banner: url('https://s3.bmp.ovh/2026/07/23/QexIW2l2.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/QNHPxaHY.png'); }
pic[c="16"] { --banner: url('https://s3.bmp.ovh/2026/07/23/ROnxET1q.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/IB87GEBt.png'); }
pic[c="17"] { --banner: url('https://s3.bmp.ovh/2026/07/23/V6HQRRBe.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/2nQOAaDJ.png'); }
pic[c="18"] { --banner: url('https://s3.bmp.ovh/2026/07/23/UZezXmNy.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/TyyyjQkX.png'); }
pic[c="19"] { --banner: url('https://s3.bmp.ovh/2026/07/23/1m2TgavX.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/tdg5yBjk.png'); }
pic[c="20"] { --banner: url('https://s3.bmp.ovh/2026/07/23/wlB6BZem.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/GXqBF6mA.png'); }
pic[c="21"] { --banner: url('https://s3.bmp.ovh/2026/07/23/D0Rkuut2.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/AHZpcqHZ.png'); }
pic[c="22"] { --banner: url('https://s3.bmp.ovh/2026/07/23/jQIGABh4.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/S86N88ox.png'); }
pic[c="23"] { --banner: url('https://s3.bmp.ovh/2026/07/23/oKvm7r0N.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/2QGXiEko.png'); }
pic[c="24"] { --banner: url('https://s3.bmp.ovh/2026/07/23/SKDb7cs7.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/LF24GKWl.png'); }
pic[c="25"] { --banner: url('https://s3.bmp.ovh/2026/07/23/ZPI4kmf7.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/XkCeOzLU.png'); }
pic[c="26"] { --banner: url('https://s3.bmp.ovh/2026/07/23/X812MK30.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/RPlTeQNw.png'); }
pic[c="27"] { --banner: url('https://s3.bmp.ovh/2026/07/23/Il2YheAY.png'); --avatar: url('https://s3.bmp.ovh/2026/07/23/wtFXuY2i.png'); }
pic[c="28"] { --banner: url('https://s3.bmp.ovh/2026/07/23/vRQIkkos.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/Uf7jJnvd.png'); }
pic[c="29"] { --banner: url('https://s3.bmp.ovh/2026/07/23/6SvEBgqO.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/0db8w2tU.png'); }
pic[c="30"] { --banner: url('https://s3.bmp.ovh/2026/07/23/mn6yCID8.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/ZAiNWiPF.png'); }
pic[c="31"] { --banner: url('https://s3.bmp.ovh/2026/07/23/lEa3x5D8.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/Kv4cPcLk.png'); }
pic[c="32"] { --banner: url('https://s3.bmp.ovh/2026/07/22/1bmCaMUa.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/1bmCaMUa.png'); }
pic[c="33"] { --banner: url('https://s3.bmp.ovh/2026/07/23/x1hmxkoZ.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/Z4g0eVgv.png'); }
pic[c="34"] { --banner: url('https://s3.bmp.ovh/2026/07/23/RSmNnDGC.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/JrTgqXWw.png'); }
pic[c="35"] { --banner: url('https://s3.bmp.ovh/2026/07/23/qHNXI8mQ.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/Cv3zv6rw.png'); }
pic[c="36"] { --banner: url('https://s3.bmp.ovh/2026/07/23/OT8jxDrT.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/B8rczgzT.png'); }
pic[c="37"] { --banner: url('https://s3.bmp.ovh/2026/07/23/W9A8FL8B.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/YmbqXQrM.png'); }
pic[c="38"] { --banner: url('https://s3.bmp.ovh/2026/07/23/cKOmEcLi.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/IfZWeqam.png'); }
pic[c="39"] { --banner: url('https://s3.bmp.ovh/2026/07/23/PNKrdxfM.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/J2JXCEcs.png'); }
pic[c="40"] { --banner: url('https://s3.bmp.ovh/2026/07/23/j2Xn2hdq.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/hBCcKkIs.png'); }
pic[c="41"] { --banner: url('https://p.uuu.ovh/2026/08/10/D1pxVLbz.png'); --avatar: url('https://p.uuu.ovh/2026/08/10/tlZ2CkX3.png'); }
pic[c="42"] { --banner: url('https://s3.bmp.ovh/2026/07/23/ye20VxD5.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/tzpTdfux.png'); }
pic[c="43"] { --banner: url('https://s3.bmp.ovh/2026/07/23/HZ8XbaDn.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/XVSaVQwt.png'); }
pic[c="44"] { --banner: url('https://s3.bmp.ovh/2026/07/23/yVzExSlf.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/4iAXhuIo.png'); }
pic[c="45"] { --banner: url('https://s3.bmp.ovh/2026/07/23/dboqTJCL.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/asfboez1.png'); }
pic[c="46"] { --banner: url('https://s3.bmp.ovh/2026/07/23/j9gUpj3x.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/S7JBCu8e.png'); }
pic[c="47"] { --banner: url('https://s3.bmp.ovh/2026/07/23/hTonRpAP.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/GrOTdTzB.png'); }
pic[c="48"] { --banner: url('https://s3.bmp.ovh/2026/07/23/wYtrLMlh.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/tSAVj4yO.png'); }
pic[c="49"] { --banner: url('https://s3.bmp.ovh/2026/07/23/OtpW9P1W.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/bw0lTmsG.png'); }
pic[c="50"] { --banner: url('https://s3.bmp.ovh/2026/07/23/uX3Nfrlk.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/emmuLKEd.png'); }
pic[c="51"] { --banner: url('https://s3.bmp.ovh/2026/07/23/JgjCJZ3K.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/ITcwAMKa.png'); }
pic[c="52"] { --banner: url('https://s3.bmp.ovh/2026/07/23/uaduAUBn.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/dK4Ns7JT.png'); }
pic[c="53"] { --banner: url('https://s3.bmp.ovh/2026/07/23/uxYF7UVo.png'); --avatar: url('https://s3.bmp.ovh/2026/07/22/EAoWpXaT.png'); }
pic[c="999"] { --banner: url('https://p.uuu.ovh/2026/08/10/PPmt0Cj1.jpg'); --avatar: url('https://p.uuu.ovh/2026/08/10/PPmt0Cj1.jpg'); }

/* =======================================================
   📱 7. 终极移动端等比例适配 (强化了对话框的响应式缩放)
======================================================= */
@media screen and (max-width: 768px) {
  .markdown-body .panel-grid, .rili-markdown-renderer .panel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px !important; }
  .markdown-body .grid-item:not([open]) .fold-header, .rili-markdown-renderer .grid-item:not([open]) .fold-header { font-size: 13px !important; padding: 0 6px !important; height: 40px !important; line-height: 40px !important; }

  .markdown-body .scene-status-card .info-grid, .rili-markdown-renderer .scene-status-card .info-grid { flex-direction: column !important; }
  .markdown-body .scene-status-card span, .rili-markdown-renderer .scene-status-card span { width: 100% !important; box-sizing: border-box !important;}
  
  .markdown-body .player-header-wrap, .rili-markdown-renderer .player-header-wrap { flex-direction: column !important; align-items: flex-start !important; text-align: left !important; gap: 12px !important; }
  .markdown-body .player-avatar, .rili-markdown-renderer .player-avatar { margin: 0 auto !important; width: 85px !important; height: 85px !important; }
  .markdown-body .profile-player-img, .rili-markdown-renderer .profile-player-img { width: 85px !important; height: 85px !important; min-width: 85px !important; min-height: 85px !important; border-radius: 50% !important; }
  
  .markdown-body .info-grid, .rili-markdown-renderer .info-grid { justify-content: center !important; }
  .markdown-body .info-grid span, .rili-markdown-renderer .info-grid span { flex: 1 1 auto !important; text-align: center !important; }
  .markdown-body .item-desc, .rili-markdown-renderer .item-desc { max-width: 220px !important; left: 50% !important; transform: translateX(-50%) translateY(10px) !important; font-size: 0.85rem !important; padding: 8px 12px !important; }
  
  /* 移动端气泡完美适配 */
  .mt-chat, .npc-chat-row { gap: 10px !important; margin: 12px auto !important; width: 100% !important; padding: 5px !important; }
  .mt-avatar, .npc-chat-avatar, .npc-player-img, pic.p1, img.p1-custom { width: 56px !important; min-width: 56px !important; height: 56px !important; border-width: 2px !important; }
  .mt-bubble, .npc-chat-bubble { padding: 10px 12px !important; font-size: 0.95rem !important; line-height: 1.5 !important; border-radius: 8px !important; }
  .mt-name, .npc-chat-name { font-size: 0.95rem !important; margin-bottom: 4px !important; }
}

@media screen and (max-width: 480px) {
  .markdown-body .npc-name-bar span, .rili-markdown-renderer .npc-name-bar span { font-size: 1.1em !important; }
  .markdown-body .npc-name-bar span:last-child, .rili-markdown-renderer .npc-name-bar span:last-child { font-size: 0.85em !important; }
  .mt-chat, .npc-chat-row { gap: 8px !important; }
  pic.p1, img.p1-custom { width: 48px !important; min-width: 48px !important; height: 48px !important; }
}

/* =======================================================
   🔥 8. 战斗系统数据条渲染 (复古魔法色彩)
======================================================= */
.markdown-body .bar-wrap, .rili-markdown-renderer .bar-wrap { width: 100% !important; background: #E3D8D5 !important; border: 1px solid #CDBBB8 !important; height: 18px !important; border-radius: 10px !important; position: relative !important; margin: 6px 0 12px !important; overflow: hidden !important; box-shadow: inset 0 2px 5px rgba(180, 160, 155, 0.15) !important; }
.markdown-body .bar-fill, .rili-markdown-renderer .bar-fill { height: 100% !important; transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) !important; border-radius: 10px !important; }
.markdown-body .hp-bar, .rili-markdown-renderer .hp-bar { background: linear-gradient(90deg, #D49A9E, #B8767B) !important; } 
.markdown-body .mp-bar, .rili-markdown-renderer .mp-bar { background: linear-gradient(90deg, #A3B5C4, #7D92A3) !important; } 
.markdown-body .exp-bar, .rili-markdown-renderer .exp-bar { background: linear-gradient(90deg, #DEC7A6, #C4A77D) !important; } 
.markdown-body .bar-text, .rili-markdown-renderer .bar-text { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 11.5px !important; font-weight: 800 !important; color: #5C4340 !important; text-shadow: 0 0 3px rgba(235, 225, 222, 0.9) !important; z-index: 2 !important; font-family: "Nunito", sans-serif !important; pointer-events: none !important; }

/* =======================================================
   🔥 9. 全局 Webkit 滚动条 (羊皮卷复古调)
======================================================= */
::-webkit-scrollbar { width: 8px !important; height: 8px !important; }
::-webkit-scrollbar-track { background: rgba(238, 228, 224, 0.5) !important; border-radius: 4px !important; border-left: 1px solid #D8C3C0 !important; }
::-webkit-scrollbar-thumb { background: #D8C3C0 !important; border-radius: 4px !important; border: 1px solid #F3E8E6 !important; }
::-webkit-scrollbar-thumb:hover { background: #CFA8A4 !important; }

/* =======================================================
   10. 【防吞补丁】按钮组底层保护
======================================================= */
.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, .rili-bottom-actions 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; color: #7A6366 !important; font-weight: 600 !important; transition: all 0.3s ease !important; background: transparent !important; border: none !important; box-shadow: none !important; min-height: auto !important; padding: 4px !important; }
.w-full.h-full.flex.group .bg-muted.rounded.flex.p-0\.5 > button:hover, .is-user .bg-muted.rounded.flex.p-0\.5 > button:hover, .is-assistant .bg-muted.rounded.flex.p-0\.5 > button:hover, .rili-bottom-actions button:hover { color: #9E5B64 !important; background: rgba(207, 168, 164, 0.25) !important; border-radius: 4px !important; box-shadow: none !important; transform: none !important; }
.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; }