/* ============================================================
   斗气大陆 · 全端统一主题（异火焚天·重构版）v2.0
   适配：桌面端 .classUI-chat-container / APP端 .viewer-built-in-content
   特色：深渊赤焰配色、高辨识度高亮、双层光影、暖白文本
   ============================================================ */

/* ===== 0. CSS变量定义（重构色值） ===== */
:root {
    --bg: #0a0705;
    --bg-card: #1a1410;
    --bg-card-hover: #241e18;
    --border: #5c3a1a;
    --fire: #d94f14;
    --fire-glow: #d94f1460;
    --soul: #7e57c2;
    --gold: #f9a825;
    --text: #f5e6d3;
    --text-dim: #a09280;
    --font: 'Georgia', 'Times New Roman', 'Noto Serif SC', 'KaiTi', serif;
    --radius: 14px;
    --shadow: 0 8px 32px rgba(0, 0, 0, 0.7);
    --fire-glow-intense: #d94f1480;
    --soul-glow: #7e57c260;
}

/* ===== 1. 桌面端容器 ===== */
.classUI-chat-container {
    max-width: 1152px;
    width: 100%;
    margin: 0 auto;
    padding: 2.6rem;
    box-sizing: border-box;
    overflow-x: hidden;
    background: radial-gradient(ellipse at 20% 20%, #1a100c 0%, #0d0906 70%, #050302 100%);
    border: 2px solid #d94f14;
    border-radius: 18px;
    box-shadow: 0 0 40px rgba(217, 79, 20, 0.3), 0 0 80px rgba(126, 87, 194, 0.15), 0 15px 40px rgba(0, 0, 0, 0.7);
    position: relative;
    isolation: isolate;
}
.classUI-chat-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 2rem;
    right: 2rem;
    height: 2px;
    background: linear-gradient(90deg, transparent, #d94f14, #f9a825, #d94f14, transparent);
    z-index: 2;
}
.classUI-chat-container::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 15%;
    right: 15%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(217, 79, 20, 0.8), transparent);
    z-index: 2;
}

/* ===== 2. APP端容器 ===== */
.viewer-built-in-content {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 14px !important;
    box-sizing: border-box !important;
    background: #fcf8f0 !important;
    color: #2a1e14 !important;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", "KaiTi", serif !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
}
.viewer-built-in-content * {
    background: transparent !important;
    color: #2a1e14 !important;
    border-color: #d4c0b0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-family: inherit !important;
}
.viewer-built-in-content details {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
    overflow: hidden !important;
}
.viewer-built-in-content details[open] {
    background: #ffffff !important;
    border-color: #c0a890 !important;
}
.viewer-built-in-content summary {
    font-weight: 700 !important;
    font-size: 1.05em !important;
    color: #3a281a !important;
    cursor: pointer !important;
    list-style: none !important;
    padding: 10px 0 !important;
    outline: none !important;
}
.viewer-built-in-content summary::-webkit-details-marker {
    display: none !important;
}
.viewer-built-in-content summary::before {
    content: '▸ ' !important;
    color: #d94f14 !important;
    margin-right: 10px !important;
    display: inline-block !important;
    transition: transform 0.2s !important;
}
.viewer-built-in-content details[open] summary::before {
    transform: rotate(90deg) !important;
}
.viewer-built-in-content .details-content {
    border-top: 1px solid #d4c0b0 !important;
    margin-top: 10px !important;
    padding: 12px 0 0 0 !important;
    font-size: 1em !important;
}
.viewer-built-in-content .narrative-body {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 20px 18px !important;
    margin-bottom: 12px !important;
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    color: #2a1e14 !important;
    text-align: justify !important;
}
.viewer-built-in-content .narrative-body p {
    text-indent: 2em !important;
    margin: 0 0 0.6em 0 !important;
}
.viewer-built-in-content .narrative-body p:first-child {
    text-indent: 0 !important;
}
.viewer-built-in-content .time-location-bar {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    margin-bottom: 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: center !important;
    font-size: 0.95rem !important;
    color: #5a4a3a !important;
}
.viewer-built-in-content .time-date {
    font-weight: 700 !important;
    color: #d94f14 !important;
}
.viewer-built-in-content .location-name {
    font-weight: 600 !important;
    color: #7e57c2 !important;
}
.viewer-built-in-content .hl-npc {
    color: #ffd54f !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-skill {
    color: #ff6e40 !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-location {
    color: #40c4ff !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-dialogue {
    color: #ce93d8 !important;
    font-style: italic !important;
}
.viewer-built-in-content .hl-item {
    color: #66bb6a !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-danger {
    color: #f44336 !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-good {
    color: #8bc34a !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-beast {
    color: #ec407a !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-time {
    color: #666666 !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .data-table,
.viewer-built-in-content .memory-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 10px 0 !important;
    font-size: 0.9rem !important;
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    table-layout: fixed !important;
}
.viewer-built-in-content .data-table th,
.viewer-built-in-content .memory-table th {
    background: #f5ede5 !important;
    color: #3a281a !important;
    padding: 10px 12px !important;
    text-align: left !important;
    border-bottom: 2px solid #d4c0b0 !important;
    font-weight: 700 !important;
    word-break: break-word !important;
}
.viewer-built-in-content .data-table td,
.viewer-built-in-content .memory-table td {
    background: #ffffff !important;
    color: #2a1e14 !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid #f0e8e0 !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}
.viewer-built-in-content .status-brief {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    font-size: 0.95rem !important;
    color: #4a3a2a !important;
}
.viewer-built-in-content .options-area {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 18px 14px !important;
    margin-bottom: 12px !important;
}
.viewer-built-in-content .option-btn {
    display: block !important;
    width: 100% !important;
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    color: #2a1e14 !important;
    padding: 12px 14px !important;
    margin: 6px 0 !important;
    border-radius: 8px !important;
    font-size: 1rem !important;
    text-align: left !important;
}
.viewer-built-in-content .option-number {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: #d94f14 !important;
    color: #ffffff !important;
    margin-right: 12px !important;
    font-weight: 700 !important;
    flex-shrink: 0 !important;
}
.viewer-built-in-content .option-main {
    border-left: 4px solid #d94f14 !important;
    background: #fdf5ed !important;
}
.viewer-built-in-content .forum-panel,
.viewer-built-in-content .memory-panel,
.viewer-built-in-content .faction-archive {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
}
.viewer-built-in-content .thought-chain {
    border-left: 3px solid #7e57c2 !important;
}
.viewer-built-in-content .current-goal {
    border-left: 3px solid #f9a825 !important;
}
.viewer-built-in-content .combat-assessment {
    border-left: 3px solid #f44336 !important;
}
.viewer-built-in-content .ninja-profile {
    border-left: 3px solid #d94f14 !important;
}
.viewer-built-in-content .asset-overview {
    border-left: 3px solid #7e57c2 !important;
}
.viewer-built-in-content .npc-archive {
    border-left: 3px solid #66bb6a !important;
}
.viewer-built-in-content .faction-archive {
    border-left: 3px solid #7e57c2 !important;
}
.viewer-built-in-content .memory-panel {
    border-left: 3px solid #7e57c2 !important;
}
.viewer-built-in-content .options-area {
    border-left: 3px solid #d94f14 !important;
}
.viewer-built-in-content .forum-panel {
    border-left: 3px solid #f9a825 !important;
}
.viewer-built-in-content .intro-guide {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 14px !important;
    margin-bottom: 12px !important;
}
.viewer-built-in-content ::-webkit-scrollbar {
    width: 4px !important;
}
.viewer-built-in-content ::-webkit-scrollbar-track {
    background: #f0e8e0 !important;
}
.viewer-built-in-content ::-webkit-scrollbar-thumb {
    background: #c0a890 !important;
    border-radius: 2px !important;
}
.viewer-built-in-content input,
.viewer-built-in-content textarea,
.viewer-built-in-content select {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    color: #2a1e14 !important;
    border-radius: 6px !important;
    padding: 10px 12px !important;
    font-size: 1rem !important;
    outline: none !important;
    caret-color: #d94f14 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.viewer-built-in-content input:focus,
.viewer-built-in-content textarea:focus,
.viewer-built-in-content select:focus {
    border-color: #d94f14 !important;
}

/* ===== 3. 桌面端全局 ===== */
.classUI-chat-container,
.classUI-chat-container *,
.viewer-built-in-content,
.viewer-built-in-content * {
    font-family: 'Georgia', 'Times New Roman', 'Noto Serif SC', 'KaiTi', serif;
}
.classUI-chat-container {
    font-size: 17px !important;
}

/* ===== 4. 时间地点行 ===== */
.time-location-bar {
    text-align: center;
    padding: 0.7rem 1rem;
    margin-bottom: 1.5rem;
    border-top: 2px solid #d94f14;
    border-bottom: 2px solid #7e57c2;
    background: #140e0a;
    border-radius: 8px;
    color: #d4c0b0;
    font-style: italic;
    font-size: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: center;
}
.time-date {
    font-weight: 700;
    color: #f9a825;
}
.location-name {
    color: #7e57c2;
}
.weather-note {
    color: #a09080;
}
.last-turn {
    color: #807060;
    font-size: 0.85em;
    font-style: italic;
    width: 100%;
    text-align: center;
}

/* ===== 5. 开局引导 ===== */
.intro-guide {
    background: #1a1210;
    border: 2px solid #d94f14;
    border-radius: 14px;
    padding: 1.5rem;
    margin-bottom: 1.3rem;
}
.intro-title {
    font-weight: 700;
    color: #f9a825;
    font-size: 1.2em;
}
.intro-item {
    padding: 6px 0;
    color: #e8ddd0;
    font-size: 0.95em;
}

/* ===== 6. 正文叙事 ===== */
.narrative-body {
    background: rgba(10, 8, 6, 0.75);
    border: 1px solid rgba(217, 79, 20, 0.35);
    border-radius: 14px;
    padding: 26px 24px;
    margin-bottom: 1.3rem;
    color: #f5e6d3;
    line-height: 1.75;
    font-size: 1.2em;
    text-align: justify;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
}
.narrative-body p {
    text-indent: 2em;
    margin: 0 0 0.5em 0;
}
.narrative-body p:first-child {
    text-indent: 0;
}

/* ===== 7. 高亮标记（全新配色） ===== */
.hl-npc {
    color: #ffd54f !important;
    font-weight: 700 !important;
    border-bottom: 1px solid rgba(255, 213, 79, 0.3);
    padding-bottom: 1px;
}
.hl-skill {
    color: #ff6e40 !important;
    font-weight: 700 !important;
    border-bottom: 1px dashed rgba(255, 110, 64, 0.5);
}
.hl-location {
    color: #40c4ff !important;
    font-weight: 600 !important;
}
.hl-dialogue {
    color: #ce93d8 !important;
    font-style: italic !important;
}
.hl-item {
    color: #66bb6a !important;
    font-weight: 600 !important;
}
.hl-danger {
    color: #f44336 !important;
    font-weight: 700 !important;
    background: rgba(244, 67, 54, 0.08);
    padding: 1px 5px;
    border-radius: 2px;
}
.hl-good {
    color: #8bc34a !important;
    font-weight: 600 !important;
}
.hl-beast {
    color: #ec407a !important;
    font-weight: 700 !important;
}
.hl-time {
    color: #f5e6d3 !important;
    font-weight: 600 !important;
}

/* ===== 8. 折叠面板通用 ===== */
details {
    background: #1a1410;
    border: 1px solid #d94f14;
    border-radius: 12px;
    padding: 12px 20px;
    margin-bottom: 0.9rem;
    color: #f5e6d3;
    overflow: hidden;
}
details[open] {
    background: #241e18;
    border-color: #d94f14;
}
summary {
    font-weight: 700;
    font-size: 1.05em;
    color: #f9a825;
    cursor: pointer;
    list-style: none;
    padding: 12px 0;
}
summary::-webkit-details-marker {
    display: none;
}
summary::before {
    content: '▸ ';
    color: #d94f14;
    margin-right: 10px;
    display: inline-block;
    transition: transform 0.2s;
}
details[open] summary::before {
    transform: rotate(90deg);
    color: #f9a825;
}
.details-content {
    border-top: 1px solid rgba(217, 79, 20, 0.3);
    margin-top: 12px;
    padding: 10px 0;
    font-size: 1em;
    overflow-x: auto;
}

/* ===== 9. 左侧彩色标识 ===== */
.thought-chain {
    border-left: 4px solid #7e57c2;
}
.current-goal {
    border-left: 4px solid #f9a825;
}
.combat-assessment {
    border-left: 4px solid #f44336;
}
.ninja-profile {
    border-left: 4px solid #d94f14;
}
.asset-overview {
    border-left: 4px solid #7e57c2;
}
.npc-archive {
    border-left: 4px solid #66bb6a;
}
.faction-archive {
    border-left: 4px solid #7e57c2;
}
.memory-panel {
    border-left: 4px solid #7e57c2;
}
.options-area {
    border-left: 4px solid #d94f14;
}
.forum-panel {
    border-left: 4px solid #f9a825;
}

/* ===== 10. 状态简报 ===== */
.status-brief {
    background: #1a1410;
    border: 1px solid #d94f14;
    border-radius: 12px;
    padding: 12px 20px;
    margin-bottom: 0.9rem;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 0.95em;
    color: #f5e6d3 !important;
}
.status-brief span {
    color: #f5e6d3 !important;
}

/* ===== 11. 当前目标 ===== */
.obj-item {
    padding: 10px 14px;
    margin: 7px 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.02);
}
.obj-urgent {
    color: #f9a825;
    border-left: 4px solid #f44336;
}
.obj-optional {
    color: #a0b0c0;
    border-left: 4px solid #7e57c2;
}

/* ===== 12. 表格通用 ===== */
.data-table,
.memory-table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    font-size: 0.95em;
    background: rgba(0, 0, 0, 0.2);
    table-layout: fixed;
}
.data-table th,
.memory-table th {
    background: rgba(40, 30, 20, 0.5);
    color: #f9a825;
    padding: 12px 16px;
    text-align: left;
    border-bottom: 2px solid #d94f14;
    word-break: break-word;
}
.data-table td,
.memory-table td {
    padding: 12px 16px;
    border-bottom: 1px solid rgba(217, 79, 20, 0.2);
    color: #f5e6d3;
    word-break: break-word;
    overflow-wrap: break-word;
}

/* ===== 13. 选项区 ===== */
.options-area {
    background: #1a1410;
    border: 2px solid #d94f14;
    border-radius: 16px;
    padding: 26px;
    margin-top: 1.5rem;
}
.option-btn {
    display: block;
    width: 100%;
    background: #241e18;
    border: 2px solid #d94f14;
    color: #f5e6d3;
    padding: 1rem 1.5rem;
    margin: 9px 0;
    border-radius: 12px;
    font-size: 1.1em;
    cursor: pointer;
    transition: all 0.3s;
    text-align: left;
}
.option-btn:hover {
    background: #302820;
    border-color: #f9a825;
    color: #fff;
}
.option-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #d94f14;
    color: #fff;
    margin-right: 14px;
    font-weight: 700;
    flex-shrink: 0;
}
.option-hint {
    display: block;
    font-size: 0.82em;
    color: #a09280;
    margin-top: 5px;
    padding-left: 46px;
    font-style: italic;
}
.option-main {
    border-left: 4px solid #f9a825 !important;
    background: rgba(40, 35, 20, 0.4) !important;
}
.option-main:hover {
    background: rgba(60, 50, 30, 0.6) !important;
    border-color: #f9a825 !important;
}
.option-main .option-number {
    background: linear-gradient(135deg, #d94f14, #f9a825) !important;
}

/* ===== 14. 思维链 ===== */
.thought-chain .details-content {
    font-family: 'Courier New', monospace;
    font-size: 0.9em;
    color: #b0a090;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 8px;
    padding: 14px;
}

/* ===== 15. 记忆区 ===== */
.memory-subheading {
    font-weight: 700;
    color: #f9a825;
    margin: 16px 0 10px;
    border-left: 4px solid #d94f14;
    padding-left: 12px;
}
.engraved-entry {
    background: rgba(40, 30, 20, 0.5);
    border: 1px solid rgba(249, 168, 37, 0.4);
    border-left: 4px solid #f9a825;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 12px;
}
.engraved-table td {
    color: #e8ddd0;
    border-bottom: 1px dashed rgba(249, 168, 37, 0.2);
    padding: 8px 0;
    font-size: 0.95em;
    word-break: break-word;
}
.engraved-label {
    color: #d4a84b;
    font-weight: 700;
    width: 30%;
    white-space: nowrap;
}

/* ===== 16. 论坛 ===== */
.forum-panel {
    background: #1a1410 !important;
}
.forum-panel summary {
    color: #f9a825;
}
.forum-post-title {
    font-weight: 700;
    color: #f9a825;
    font-size: 1.25em;
    margin-bottom: 6px;
}
.forum-post-author {
    color: #7e57c2;
    font-size: 0.9em;
    margin-bottom: 10px;
}
.forum-post-body {
    color: #e8ddd0;
    font-size: 1.15em;
    line-height: 1.65;
    margin-bottom: 12px;
}
.forum-reply {
    padding: 6px 0;
    border-top: 1px dashed rgba(217, 79, 20, 0.2);
    font-size: 1.1em;
    color: #d4c0b0;
}
.forum-reply-author {
    color: #d94f14;
    font-weight: 600;
}

/* ===== 17. 滚动条 ===== */
::-webkit-scrollbar {
    width: 6px;
}
::-webkit-scrollbar-track {
    background: rgba(10, 8, 6, 0.5);
    border-radius: 3px;
}
::-webkit-scrollbar-thumb {
    background: #d94f14;
    border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
    background: #f9a825;
}

/* ===== 18. 输入框 ===== */
.classUI-chat-container input,
.classUI-chat-container textarea,
.classUI-chat-container select {
    background: #ffffff !important;
    border: 2px solid rgba(217, 79, 20, 0.7) !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    color: #1a0a14 !important;
    font-family: 'Georgia', 'KaiTi', serif !important;
    font-size: 0.95em !important;
    outline: none !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
    box-sizing: border-box !important;
    caret-color: #d94f14 !important;
}
.classUI-chat-container input:focus,
.classUI-chat-container textarea:focus,
.classUI-chat-container select:focus {
    border-color: #7e57c2 !important;
    box-shadow: 0 0 20px rgba(217, 79, 20, 0.5), 0 0 40px rgba(126, 87, 194, 0.2) !important;
}
.classUI-chat-container input::placeholder,
.classUI-chat-container textarea::placeholder {
    color: rgba(100, 80, 60, 0.6) !important;
    font-style: italic !important;
}

/* ===== 19. NPC档案 ===== */
.npc-archive {
    background: #11161c;
    border-left: 4px solid #66bb6a;
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.3);
}
.npc-archive table {
    table-layout: auto;
    background: transparent;
    margin-top: 4px;
}
.npc-archive th {
    background: rgba(30, 40, 30, 0.6);
    color: #a0d8a0;
    font-size: 0.9em;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #66bb6a;
    padding: 10px 14px;
}
.npc-archive td {
    padding: 10px 14px;
    font-size: 0.92em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    color: #f5e6d3;
}
.npc-archive td:first-child {
    font-weight: 600;
    color: #f0d8b0;
}
.npc-archive .details-content p {
    color: #7a8a7a !important;
}

/* ===== 20. 势力档案 ===== */
.faction-archive {
    background: #11161c;
    border-left: 4px solid #7e57c2;
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.3);
}
.faction-archive table {
    table-layout: auto;
    background: transparent;
    margin-top: 4px;
}
.faction-archive th {
    background: rgba(40, 30, 50, 0.6);
    color: #c0a0e0;
    font-size: 0.9em;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #7e57c2;
    padding: 10px 14px;
}
.faction-archive td {
    padding: 10px 14px;
    font-size: 0.92em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    color: #f5e6d3;
}
.faction-archive td:first-child {
    font-weight: 600;
    color: #e0c8f0;
}
.faction-archive .details-content p {
    color: #7a8a7a !important;
}

/* ===== 21. 修炼者档案文字强制 ===== */
.classUI-chat-container .ninja-profile,
.classUI-chat-container .ninja-profile * {
    color: #f5e6d3 !important;
}
.classUI-chat-container .ninja-profile b {
    color: #f9a825 !important;
}

/* ===== 22. 气泡宽度与段间距 ===== */
.classUI-chat-container .el-bubble-content {
    max-width: 75% !important;
    width: auto !important;
}
.classUI-chat-container .el-bubble-start .el-bubble-content {
    margin-right: auto !important;
    margin-left: 0 !important;
}
.classUI-chat-container .el-bubble-end .el-bubble-content {
    margin-left: auto !important;
    margin-right: 0 !important;
}
.classUI-chat-container .narrative-body p {
    margin-bottom: 0.5em !important;
    text-indent: 2em !important;
}
.classUI-chat-container .narrative-body p:first-child {
    text-indent: 0 !important;
}

/* ===== 23. 全局字号 ===== */
.classUI-chat-container .narrative-body {
    font-size: 1.2em !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.75 !important;
}
.classUI-chat-container .details-content {
    font-size: 1.05em !important;
}
.classUI-chat-container .option-btn {
    font-size: 1.15em !important;
    font-weight: 600 !important;
}

/* ===== 24. 移动端适配 ===== */
@media (max-width: 640px) {
    .classUI-chat-container {
        padding: 0.8rem;
        font-size: 16px !important;
    }
    .classUI-chat-container .narrative-body {
        font-size: 1.2rem !important;
        padding: 14px 12px !important;
    }
    .classUI-chat-container .option-btn {
        font-size: 1.0rem !important;
    }
    .classUI-chat-container details {
        padding: 6px 10px;
        margin-bottom: 0.5rem;
        border-radius: 8px;
    }
    .classUI-chat-container summary {
        padding: 6px 0;
        font-size: 0.9em;
    }
    .classUI-chat-container .details-content {
        margin-top: 6px;
        padding: 8px 2px;
        font-size: 0.85em;
    }
    .classUI-chat-container .time-location-bar {
        padding: 0.4rem 0.6rem;
        margin-bottom: 0.8rem;
        gap: 10px;
        font-size: 0.78rem;
    }
    .classUI-chat-container .status-brief {
        font-size: 0.85em;
        padding: 10px;
        flex-direction: column;
        gap: 4px;
    }
    .classUI-chat-container .option-btn {
        font-size: 0.85rem;
        padding: 0.6rem 1rem;
        margin: 5px 0;
    }
    .classUI-chat-container table {
        font-size: 0.75em;
    }
    .classUI-chat-container th,
    .classUI-chat-container td {
        padding: 6px 8px;
        font-size: 0.78em;
        word-break: break-word;
    }
}

/* ===== 25. 超小屏适配 ===== */
@media (max-width: 380px) {
    .classUI-chat-container {
        padding: 0.4rem;
    }
    .classUI-chat-container .narrative-body {
        font-size: 1.0rem !important;
        padding: 10px 8px !important;
    }
    .classUI-chat-container .option-btn {
        font-size: 0.8rem !important;
        padding: 0.4rem 0.6rem !important;
    }
}

/* ===== 26. 输入框强制覆盖补丁 ===== */
.ai-chat-container input,
.ai-chat-container textarea {
    background: #ffffff !important;
    border: 2px solid rgba(217, 79, 20, 0.7) !important;
    color: #1a0a14 !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    caret-color: #d94f14 !important;
}
.ai-chat-container input:focus,
.ai-chat-container textarea:focus {
    border-color: #7e57c2 !important;
    box-shadow: 0 0 20px rgba(217, 79, 20, 0.5), 0 0 40px rgba(126, 87, 194, 0.2) !important;
}
#viewer.built-in-css-active input,
#viewer.built-in-css-active textarea {
    background: #ffffff !important;
    border: 2px solid rgba(217, 79, 20, 0.7) !important;
    color: #1a0a14 !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    caret-color: #d94f14 !important;
}
#viewer.built-in-css-active input:focus,
#viewer.built-in-css-active textarea:focus {
    border-color: #7e57c2 !important;
    box-shadow: 0 0 20px rgba(217, 79, 20, 0.5), 0 0 40px rgba(126, 87, 194, 0.2) !important;
}

/* ===== 27. 态度颜色 ===== */
.attitude-friendly {
    color: #66bb6a;
}
.attitude-neutral {
    color: #b0a090;
}
.attitude-hostile {
    color: #f44336;
}
.attitude-unknown {
    color: #8a8f98;
}

/* ===== 28. 势力关系颜色 ===== */
.faction-friendly {
    color: #66bb6a;
}
.faction-neutral {
    color: #b0a090;
}
.faction-hostile {
    color: #f44336;
}
.faction-unknown {
    color: #8a8f98;
}
/* ============================================================
   APP端 · 浅色背景可读性修正补丁 v2.4
   仅作用于 .viewer-built-in-content，桌面端不受影响
   ============================================================ */

/* ===== 1. APP端状态简报：白底深字 ===== */
.viewer-built-in-content .status-brief {
    background: #ffffff !important;
    border: 1px solid #d4c0b0 !important;
    border-radius: 8px !important;
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    font-size: 0.95rem !important;
    color: #2a1e14 !important;
}
.viewer-built-in-content .status-brief span {
    color: #2a1e14 !important;
}

/* ===== 2. APP端修炼者档案：白底深字 ===== */
.viewer-built-in-content .ninja-profile,
.viewer-built-in-content .ninja-profile * {
    color: #2a1e14 !important;
}
.viewer-built-in-content .ninja-profile b {
    color: #d94f14 !important;
}

/* ===== 3. APP端高亮标签：浅色背景深色版本 ===== */
.viewer-built-in-content .hl-npc {
    color: #b8860b !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-skill {
    color: #d94f14 !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-location {
    color: #3a7bd5 !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-dialogue {
    color: #7e57c2 !important;
    font-style: italic !important;
}
.viewer-built-in-content .hl-item {
    color: #2e7d32 !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-danger {
    color: #c62828 !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-good {
    color: #2e7d32 !important;
    font-weight: 600 !important;
}
.viewer-built-in-content .hl-beast {
    color: #ad1457 !important;
    font-weight: 700 !important;
}
.viewer-built-in-content .hl-time {
    color: #666666 !important;
    font-weight: 600 !important;
}

/* ===== 4. APP端正文：确保深色清晰 ===== */
.viewer-built-in-content .narrative-body {
    color: #2a1e14 !important;
}
.viewer-built-in-content .narrative-body p {
    color: #2a1e14 !important;
}

/* ===== 5. APP端时间地点行 ===== */
.viewer-built-in-content .time-location-bar {
    color: #4a3a2a !important;
}
.viewer-built-in-content .time-date {
    color: #d94f14 !important;
}
.viewer-built-in-content .location-name {
    color: #7e57c2 !important;
}

/* ===== 6. APP端选项区 ===== */
.viewer-built-in-content .option-btn {
    color: #2a1e14 !important;
}
.viewer-built-in-content .option-main {
    background: #fdf5ed !important;
}
.viewer-built-in-content .option-hint {
    color: #6a5a4a !important;
}

/* ===== 7. APP端表格 ===== */
.viewer-built-in-content .data-table td,
.viewer-built-in-content .memory-table td {
    color: #2a1e14 !important;
}
.viewer-built-in-content .data-table th,
.viewer-built-in-content .memory-table th {
    color: #2a1e14 !important;
}

/* ===== 8. APP端折叠面板内容 ===== */
.viewer-built-in-content .details-content {
    color: #2a1e14 !important;
}
.viewer-built-in-content .details-content * {
    color: #2a1e14 !important;
}

/* ===== 9. APP端NPC档案 ===== */
.viewer-built-in-content .npc-archive td {
    color: #2a1e14 !important;
}
.viewer-built-in-content .npc-archive td:first-child {
    color: #b8860b !important;
}
.viewer-built-in-content .npc-archive th {
    color: #2a1e14 !important;
}

/* ===== 10. APP端势力档案 ===== */
.viewer-built-in-content .faction-archive td {
    color: #2a1e14 !important;
}
.viewer-built-in-content .faction-archive td:first-child {
    color: #7e57c2 !important;
}
.viewer-built-in-content .faction-archive th {
    color: #2a1e14 !important;
}

/* ===== 11. APP端记忆区 ===== */
.viewer-built-in-content .memory-subheading {
    color: #b8860b !important;
}
.viewer-built-in-content .engraved-table td {
    color: #2a1e14 !important;
}
.viewer-built-in-content .engraved-label {
    color: #b8860b !important;
}

/* ===== 12. APP端论坛 ===== */
.viewer-built-in-content .forum-post-body {
    color: #2a1e14 !important;
}
.viewer-built-in-content .forum-reply {
    color: #2a1e14 !important;
}
.viewer-built-in-content .forum-reply-author {
    color: #d94f14 !important;
}

/* ===== 13. APP端思维链 ===== */
.viewer-built-in-content .thought-chain .details-content {
    color: #2a1e14 !important;
}

/* ===== 14. APP端态度颜色（浅色背景版） ===== */
.viewer-built-in-content .attitude-friendly {
    color: #2e7d32 !important;
}
.viewer-built-in-content .attitude-neutral {
    color: #6a5a4a !important;
}
.viewer-built-in-content .attitude-hostile {
    color: #c62828 !important;
}
.viewer-built-in-content .attitude-unknown {
    color: #8a8f98 !important;
}

/* ===== 15. APP端势力关系颜色（浅色背景版） ===== */
.viewer-built-in-content .faction-friendly {
    color: #2e7d32 !important;
}
.viewer-built-in-content .faction-neutral {
    color: #6a5a4a !important;
}
.viewer-built-in-content .faction-hostile {
    color: #c62828 !important;
}
.viewer-built-in-content .faction-unknown {
    color: #8a8f98 !important;
}
/* ============================================================
   APP端 · 仅修正状态栏与适格者档案字体颜色 v1.0
   仅作用于 .viewer-built-in-content，桌面端不受影响
   ============================================================ */

/* 1. 状态简报 · 文字强制深色 */
.viewer-built-in-content .status-brief {
    color: #2a1e14 !important;
}
.viewer-built-in-content .status-brief span {
    color: #2a1e14 !important;
}

/* 2. 适格者档案 · 文字强制深色 */
.viewer-built-in-content .ninja-profile,
.viewer-built-in-content .ninja-profile * {
    color: #2a1e14 !important;
}
/* 保留属性名（b标签）的强调色，仍用异火橙 */
.viewer-built-in-content .ninja-profile b {
    color: #d94f14 !important;
}