/* =========================================================
   星穹观测终端 · 当前平台适配完整替换版
   第 1 / 4 部分

   本部分包含：
   01. 平台主题变量
   02. 基础动画
   03. 用户与助手聊天气泡
   04. Markdown 基础排版
   05. 引用、链接、代码与表格基础样式
   06. 平台底部信息与操作按钮
   07. 当前平台加载动画

   注意：
   1. 请按顺序拼接全部四部分。
   2. 不要与旧版 CSS 混用。
   3. 不修改正式输出格式中的任何 ts-* 容器结构。
   ========================================================= */


/* =========================================================
   01. 平台主题变量
   不使用 :root，避免越权影响平台其他页面
   ========================================================= */

.group.is-user > div:first-child,
.group.is-assistant > div:first-child {
    --ts-bg-0: #050817;
    --ts-bg-1: #091126;
    --ts-bg-2: #101936;
    --ts-bg-3: #17234a;

    --ts-blue: #78b9ff;
    --ts-cyan: #67f0ef;
    --ts-purple: #b68cff;
    --ts-pink: #ff83ce;
    --ts-gold: #ffd27a;
    --ts-green: #68e2ad;

    --ts-text: #f4f7ff;
    --ts-text-soft: #d7e1f5;
    --ts-text-muted: #9aaaca;

    --ts-border: rgba(151, 179, 242, 0.25);
    --ts-border-strong: rgba(145, 196, 255, 0.4);
    --ts-panel: rgba(15, 23, 45, 0.92);
    --ts-shadow: rgba(1, 4, 15, 0.48);

    --ts-radius-xl: 20px;
    --ts-radius-lg: 16px;
    --ts-radius-md: 12px;
    --ts-radius-sm: 8px;
}


/* =========================================================
   02. 基础动画
   ========================================================= */

@keyframes ts-space-drift {
    0% {
        background-position:
            0 0,
            0 0,
            0 0,
            center,
            center;
    }

    50% {
        background-position:
            90px 44px,
            -65px 75px,
            45px -35px,
            center,
            center;
    }

    100% {
        background-position:
            180px 88px,
            -130px 150px,
            90px -70px,
            center,
            center;
    }
}

@keyframes ts-aurora-flow {
    0% {
        background-position: 0% 50%;
        filter: hue-rotate(0deg) saturate(1.05);
    }

    50% {
        background-position: 100% 50%;
        filter: hue-rotate(18deg) saturate(1.24);
    }

    100% {
        background-position: 0% 50%;
        filter: hue-rotate(0deg) saturate(1.05);
    }
}

@keyframes ts-nebula-breathe {
    0%,
    100% {
        opacity: 0.42;
        transform: scale(1) translate3d(0, 0, 0);
    }

    50% {
        opacity: 0.69;
        transform: scale(1.07) translate3d(-1.5%, 1%, 0);
    }
}

@keyframes ts-border-spectrum {
    0%,
    100% {
        border-color: rgba(112, 186, 255, 0.3);
        box-shadow:
            0 18px 48px rgba(3, 7, 20, 0.42),
            0 0 18px rgba(79, 150, 255, 0.09),
            inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    33% {
        border-color: rgba(184, 125, 255, 0.36);
        box-shadow:
            0 18px 52px rgba(3, 7, 20, 0.45),
            0 0 24px rgba(169, 102, 255, 0.13),
            inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }

    66% {
        border-color: rgba(81, 232, 222, 0.33);
        box-shadow:
            0 18px 50px rgba(3, 7, 20, 0.44),
            0 0 22px rgba(65, 219, 218, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.09);
    }
}

@keyframes ts-user-border-spectrum {
    0%,
    100% {
        border-color: rgba(91, 226, 225, 0.31);
        box-shadow:
            0 14px 38px rgba(2, 8, 18, 0.36),
            0 0 16px rgba(63, 219, 219, 0.08),
            inset 0 1px 0 rgba(255, 255, 255, 0.07);
    }

    50% {
        border-color: rgba(117, 170, 255, 0.4);
        box-shadow:
            0 16px 42px rgba(2, 8, 18, 0.4),
            0 0 21px rgba(91, 161, 255, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }
}

@keyframes ts-shimmer {
    0% {
        transform: translateX(-160%) skewX(-22deg);
        opacity: 0;
    }

    14% {
        opacity: 0.6;
    }

    44%,
    100% {
        transform: translateX(270%) skewX(-22deg);
        opacity: 0;
    }
}

@keyframes ts-scanline {
    0% {
        transform: translateY(-130%);
        opacity: 0;
    }

    14% {
        opacity: 0.24;
    }

    82% {
        opacity: 0.13;
    }

    100% {
        transform: translateY(720%);
        opacity: 0;
    }
}

@keyframes ts-icon-pulse {
    0%,
    100% {
        transform: scale(1);
        filter: brightness(1);
        box-shadow:
            0 0 0 0 rgba(116, 207, 255, 0),
            inset 0 0 12px rgba(112, 176, 255, 0.08);
    }

    50% {
        transform: scale(1.055);
        filter: brightness(1.16);
        box-shadow:
            0 0 0 5px rgba(116, 207, 255, 0.045),
            0 0 18px rgba(126, 194, 255, 0.15),
            inset 0 0 16px rgba(154, 118, 255, 0.12);
    }
}

@keyframes ts-title-glow {
    0%,
    100% {
        text-shadow:
            0 0 8px rgba(118, 189, 255, 0.18),
            0 0 18px rgba(155, 111, 255, 0.06);
    }

    50% {
        text-shadow:
            0 0 10px rgba(105, 231, 239, 0.3),
            0 0 24px rgba(203, 115, 255, 0.17);
    }
}

@keyframes ts-gradient-line {
    0% {
        background-position: 0% 50%;
    }

    100% {
        background-position: 200% 50%;
    }
}

@keyframes ts-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes ts-spin-reverse {
    to {
        transform: rotate(-360deg);
    }
}

@keyframes ts-loader-shell {
    0%,
    100% {
        transform: translateY(0) scale(1);
        border-color: rgba(101, 192, 255, 0.34);
        box-shadow:
            0 12px 32px rgba(2, 6, 22, 0.4),
            0 0 16px rgba(68, 174, 255, 0.11),
            inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    50% {
        transform: translateY(-2px) scale(1.012);
        border-color: rgba(191, 120, 255, 0.49);
        box-shadow:
            0 16px 38px rgba(2, 6, 22, 0.46),
            0 0 27px rgba(163, 94, 255, 0.18),
            0 0 14px rgba(68, 232, 229, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.12);
    }
}

@keyframes ts-loader-progress {
    0% {
        left: -38%;
        width: 22%;
        opacity: 0;
    }

    12% {
        opacity: 1;
    }

    54% {
        width: 43%;
    }

    88% {
        opacity: 1;
    }

    100% {
        left: 108%;
        width: 18%;
        opacity: 0;
    }
}

@keyframes ts-loader-text {
    0%,
    100% {
        opacity: 0.72;
        letter-spacing: 0.06em;
    }

    50% {
        opacity: 1;
        letter-spacing: 0.085em;
    }
}

@keyframes ts-loader-orbit {
    0% {
        transform: rotate(0deg) scale(1);
    }

    50% {
        transform: rotate(180deg) scale(1.07);
    }

    100% {
        transform: rotate(360deg) scale(1);
    }
}

@keyframes ts-loader-satellite {
    0%,
    100% {
        box-shadow:
            0 -18px 0 -1px #77eaff,
            16px 9px 0 -1px #c28dff,
            -16px 9px 0 -1px #ff86c9;
        opacity: 0.72;
    }

    50% {
        box-shadow:
            0 -18px 0 1px #b9f8ff,
            16px 9px 0 0 #e2c8ff,
            -16px 9px 0 0 #ffc5e4;
        opacity: 1;
    }
}

@keyframes ts-loader-dots {
    0%,
    20% {
        content: "";
    }

    40% {
        content: "·";
    }

    60% {
        content: "··";
    }

    80%,
    100% {
        content: "···";
    }
}

@keyframes ts-panel-open {
    from {
        opacity: 0;
        transform: translateY(-5px) scale(0.99);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ts-page-enter {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.985);
        filter: blur(3px);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes ts-memory-glow {
    0%,
    100% {
        box-shadow: inset 3px 0 0 rgba(151, 116, 255, 0.25);
    }

    50% {
        box-shadow:
            inset 3px 0 0 rgba(97, 226, 242, 0.42),
            inset 12px 0 24px rgba(92, 139, 235, 0.04);
    }
}


/* =========================================================
   03. 用户与助手聊天气泡
   使用当前平台提供的精确 DOM 选择器
   ========================================================= */

.group.is-user > div:first-child,
.group.is-assistant > div:first-child {
    position: relative !important;
    isolation: isolate !important;

    min-width: 0 !important;
    max-width: 100% !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: var(--ts-text) !important;

    border: 1px solid rgba(133, 177, 255, 0.3) !important;
    border-radius: var(--ts-radius-xl) !important;

    background:
        radial-gradient(
            circle at 10% 0%,
            rgba(81, 121, 255, 0.28),
            transparent 34%
        ),
        radial-gradient(
            circle at 96% 13%,
            rgba(70, 233, 226, 0.18),
            transparent 32%
        ),
        radial-gradient(
            circle at 58% 100%,
            rgba(203, 93, 255, 0.13),
            transparent 42%
        ),
        linear-gradient(
            145deg,
            #11182e 0%,
            #080d20 46%,
            #111b35 100%
        ) !important;

    box-shadow:
        0 18px 48px rgba(3, 7, 20, 0.42),
        0 0 18px rgba(79, 150, 255, 0.09),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    animation: ts-border-spectrum 9s ease-in-out infinite !important;
}


/* 用户气泡采用偏青蓝的独立主题 */

.group.is-user > div:first-child {
    background:
        radial-gradient(
            circle at 8% 0%,
            rgba(52, 216, 223, 0.25),
            transparent 38%
        ),
        radial-gradient(
            circle at 100% 100%,
            rgba(104, 118, 255, 0.18),
            transparent 39%
        ),
        linear-gradient(
            145deg,
            #132842 0%,
            #0d162d 100%
        ) !important;

    border-color: rgba(91, 226, 225, 0.31) !important;

    animation: ts-user-border-spectrum 8s ease-in-out infinite !important;
}


/* 助手气泡采用蓝紫星云主题 */

.group.is-assistant > div:first-child {
    background:
        radial-gradient(
            circle at 9% 0%,
            rgba(79, 121, 255, 0.28),
            transparent 35%
        ),
        radial-gradient(
            circle at 98% 14%,
            rgba(70, 233, 226, 0.17),
            transparent 31%
        ),
        radial-gradient(
            circle at 60% 100%,
            rgba(203, 93, 255, 0.14),
            transparent 43%
        ),
        linear-gradient(
            145deg,
            #11182e 0%,
            #080d20 46%,
            #111b35 100%
        ) !important;
}


/* 多层动态星点与星云 */

.group.is-user > div:first-child::before,
.group.is-assistant > div:first-child::before {
    content: "" !important;

    position: absolute !important;
    inset: -12% !important;
    z-index: -2 !important;

    display: block !important;

    pointer-events: none !important;

    background-image:
        radial-gradient(
            circle,
            rgba(255, 255, 255, 0.94) 0 1px,
            transparent 1.4px
        ),
        radial-gradient(
            circle,
            rgba(114, 224, 255, 0.72) 0 1.2px,
            transparent 1.7px
        ),
        radial-gradient(
            circle,
            rgba(218, 160, 255, 0.66) 0 1px,
            transparent 1.6px
        ),
        radial-gradient(
            ellipse at 30% 35%,
            rgba(73, 121, 255, 0.14),
            transparent 44%
        ),
        radial-gradient(
            ellipse at 76% 64%,
            rgba(206, 77, 255, 0.11),
            transparent 42%
        ) !important;

    background-size:
        63px 63px,
        107px 107px,
        151px 151px,
        100% 100%,
        100% 100% !important;

    background-position:
        0 0,
        21px 31px,
        56px 16px,
        center,
        center !important;

    background-repeat:
        repeat,
        repeat,
        repeat,
        no-repeat,
        no-repeat !important;

    opacity: 0.56 !important;

    transform: translateZ(0) !important;

    animation:
        ts-space-drift 42s linear infinite,
        ts-nebula-breathe 11s ease-in-out infinite !important;
}


/* 顶部流动极光 */

.group.is-user > div:first-child::after,
.group.is-assistant > div:first-child::after {
    content: "" !important;

    position: absolute !important;
    left: -35% !important;
    right: -35% !important;
    top: -82px !important;
    z-index: -1 !important;

    display: block !important;

    height: 174px !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(77, 190, 255, 0.22),
            rgba(177, 102, 255, 0.2),
            rgba(255, 104, 196, 0.14),
            rgba(70, 231, 222, 0.2),
            transparent
        ) !important;

    background-size: 220% 100% !important;
    background-repeat: no-repeat !important;

    filter: blur(24px) !important;
    opacity: 0.6 !important;

    transform: rotate(-4deg) !important;

    animation: ts-aurora-flow 13s ease-in-out infinite !important;
}


/* 用户气泡的极光降低紫色比例 */

.group.is-user > div:first-child::after {
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(72, 239, 225, 0.22),
            rgba(73, 184, 255, 0.2),
            rgba(113, 126, 255, 0.15),
            rgba(72, 239, 225, 0.2),
            transparent
        ) !important;

    opacity: 0.54 !important;
}


/* 气泡内部直接子级需要位于背景层上方 */

.group.is-user > div:first-child > *,
.group.is-assistant > div:first-child > * {
    position: relative !important;
    z-index: 1 !important;
}


/* 气泡悬停反馈 */

@media (hover: hover) {
    .group.is-user > div:first-child,
    .group.is-assistant > div:first-child {
        transition:
            transform 0.25s ease,
            filter 0.25s ease !important;
    }

    .group.is-user > div:first-child:hover,
    .group.is-assistant > div:first-child:hover {
        transform: translateY(-1px) !important;
        filter: brightness(1.035) !important;
    }
}


/* =========================================================
   04. Markdown 基础排版
   同时兼容当前平台 rili 渲染器和既有 markdown-body
   ========================================================= */

.rili-markdown-renderer,
.markdown-body {
    position: relative !important;
    z-index: 1 !important;

    min-width: 0 !important;
    max-width: 100% !important;

    box-sizing: border-box !important;

    color: var(--ts-text, #f4f7ff) !important;
    background: transparent !important;

    font-family:
        Inter,
        "SF Pro Display",
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif !important;

    font-size: 15px !important;
    line-height: 1.84 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    word-break: normal !important;
}


/* 强制覆盖平台内联 color，确保深色背景上的可读性 */

.rili-markdown-renderer,
.rili-markdown-renderer *,
.markdown-body,
.markdown-body * {
    color: var(--ts-text, #f4f7ff) !important;
}


/* 保留功能元素自己的背景，但避免 Markdown 根节点变成白底 */

.rili-markdown-renderer,
.markdown-body {
    background-color: transparent !important;
}


/* 正文段落 */

.rili-markdown-renderer p,
.rili-markdown-renderer li,
.rili-markdown-renderer div,
.rili-markdown-renderer span,
.markdown-body p,
.markdown-body li,
.markdown-body div,
.markdown-body span {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
}

.rili-markdown-renderer p,
.markdown-body p {
    margin-top: 0.72em !important;
    margin-bottom: 0.72em !important;

    color: inherit !important;
}

.rili-markdown-renderer li,
.markdown-body li {
    color: inherit !important;
}

.rili-markdown-renderer ul,
.rili-markdown-renderer ol,
.markdown-body ul,
.markdown-body ol {
    padding-left: 1.55em !important;
}

.rili-markdown-renderer li::marker,
.markdown-body li::marker {
    color: #83dff4 !important;
}


/* 标题层级 */

.rili-markdown-renderer h1,
.rili-markdown-renderer h2,
.rili-markdown-renderer h3,
.rili-markdown-renderer h4,
.rili-markdown-renderer h5,
.rili-markdown-renderer h6,
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    max-width: 100% !important;

    color: #ffffff !important;

    letter-spacing: 0 !important;
    overflow-wrap: anywhere !important;
}

.rili-markdown-renderer h1,
.markdown-body h1 {
    font-size: 1.65em !important;
    line-height: 1.32 !important;
}

.rili-markdown-renderer h2,
.markdown-body h2 {
    font-size: 1.4em !important;
    line-height: 1.36 !important;
}

.rili-markdown-renderer h3,
.markdown-body h3 {
    font-size: 1.2em !important;
    line-height: 1.42 !important;
}

.rili-markdown-renderer h4,
.rili-markdown-renderer h5,
.rili-markdown-renderer h6,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    font-size: 1.05em !important;
    line-height: 1.48 !important;
}


/* 粗体与斜体 */

.rili-markdown-renderer strong,
.rili-markdown-renderer b,
.markdown-body strong,
.markdown-body b {
    color: #ffffff !important;
    font-weight: 760 !important;
}

.rili-markdown-renderer em,
.rili-markdown-renderer i,
.markdown-body em,
.markdown-body i {
    color: #dce6fa !important;
}


/* 分隔线 */

.rili-markdown-renderer hr,
.markdown-body hr {
    height: 1px !important;

    margin: 20px 0 !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(110, 186, 255, 0.58),
            rgba(187, 125, 255, 0.48),
            rgba(88, 228, 222, 0.5),
            transparent
        ) !important;

    border: 0 !important;
    opacity: 0.8 !important;
}


/* 图片基础约束 */

.rili-markdown-renderer img,
.markdown-body img {
    display: block !important;

    max-width: 100% !important;
    height: auto !important;

    box-sizing: border-box !important;

    border: 1px solid rgba(145, 186, 240, 0.24) !important;
    border-radius: 10px !important;

    box-shadow:
        0 10px 28px rgba(1, 5, 18, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}


/* =========================================================
   05. 链接、引用、代码和普通表格
   ========================================================= */

.rili-markdown-renderer a,
.markdown-body a {
    color: #83e8ff !important;

    font-weight: 720 !important;
    text-decoration-color: rgba(131, 232, 255, 0.5) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;

    transition:
        color 0.25s ease,
        text-shadow 0.25s ease !important;
}

.rili-markdown-renderer a:hover,
.markdown-body a:hover {
    color: #e1fbff !important;

    text-decoration-color: rgba(225, 251, 255, 0.82) !important;

    text-shadow:
        0 0 12px rgba(91, 226, 255, 0.58) !important;
}


/* 行内代码 */

.rili-markdown-renderer :not(pre) > code,
.markdown-body :not(pre) > code {
    padding: 2px 7px !important;

    color: #d8eaff !important;

    background:
        linear-gradient(
            135deg,
            rgba(76, 151, 225, 0.18),
            rgba(157, 91, 222, 0.12)
        ) !important;

    border: 1px solid rgba(126, 177, 235, 0.22) !important;
    border-radius: 6px !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        "Liberation Mono",
        monospace !important;

    font-size: 0.92em !important;
    overflow-wrap: anywhere !important;
}


/* 代码块 */

.rili-markdown-renderer pre,
.markdown-body pre {
    position: relative !important;

    max-width: 100% !important;

    padding: 15px 16px !important;

    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    color: #e7efff !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(119, 94, 229, 0.1),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(8, 15, 31, 0.98),
            rgba(12, 20, 39, 0.98)
        ) !important;

    border: 1px solid rgba(130, 166, 224, 0.23) !important;
    border-radius: 10px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 8px 24px rgba(1, 5, 17, 0.24) !important;

    scrollbar-width: thin !important;
    scrollbar-color:
        rgba(129, 181, 240, 0.72)
        rgba(7, 13, 27, 0.52) !important;
}

.rili-markdown-renderer pre code,
.markdown-body pre code {
    color: #e7efff !important;
    background: transparent !important;

    border: 0 !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        "Liberation Mono",
        monospace !important;

    font-size: 12.5px !important;
    line-height: 1.7 !important;

    white-space: pre !important;
}

.rili-markdown-renderer pre::-webkit-scrollbar,
.markdown-body pre::-webkit-scrollbar {
    height: 8px !important;
}

.rili-markdown-renderer pre::-webkit-scrollbar-track,
.markdown-body pre::-webkit-scrollbar-track {
    background: rgba(6, 12, 26, 0.55) !important;
}

.rili-markdown-renderer pre::-webkit-scrollbar-thumb,
.markdown-body pre::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            90deg,
            #69c7ff,
            #9f87ff,
            #e37dca
        ) !important;

    border: 2px solid rgba(7, 13, 27, 0.72) !important;
    border-radius: 999px !important;
}


/* 引用 */

.rili-markdown-renderer blockquote,
.markdown-body blockquote {
    position: relative !important;

    margin: 13px 0 !important;
    padding: 12px 16px !important;

    color: #dce6f8 !important;

    background:
        linear-gradient(
            90deg,
            rgba(73, 147, 216, 0.14),
            rgba(162, 91, 225, 0.06)
        ) !important;

    border: 0 !important;
    border-left: 3px solid #71c8ff !important;
    border-radius: 3px 10px 10px 3px !important;

    box-shadow:
        inset 12px 0 28px rgba(72, 148, 224, 0.05) !important;
}

.rili-markdown-renderer blockquote *,
.markdown-body blockquote * {
    color: #dce6f8 !important;
}


/* Markdown 普通表格基础保险
   星记忆专用表格会在后续部分覆盖 */

.rili-markdown-renderer table,
.markdown-body table {
    max-width: 100% !important;

    color: #e9eef9 !important;
    background: rgba(10, 17, 34, 0.76) !important;

    border-color: rgba(137, 165, 218, 0.2) !important;
    border-collapse: collapse !important;
}

.rili-markdown-renderer th,
.markdown-body th {
    color: #f0f4ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(79, 130, 199, 0.22),
            rgba(135, 76, 183, 0.15)
        ) !important;

    border-color: rgba(137, 165, 218, 0.22) !important;
}

.rili-markdown-renderer td,
.markdown-body td {
    color: #dfe6f4 !important;
    background: rgba(255, 255, 255, 0.014) !important;

    border-color: rgba(137, 165, 218, 0.14) !important;
}


/* =========================================================
   06. 平台底部信息和操作按钮
   ========================================================= */

/* Token、模型和消耗信息 */

.text-xs.font-mono.text-muted-foreground {
    position: relative !important;
    z-index: 2 !important;

    color: rgba(216, 228, 249, 0.82) !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 10.5px !important;
    letter-spacing: 0 !important;
    opacity: 1 !important;
}

.text-xs.font-mono.text-muted-foreground * {
    color: rgba(216, 228, 249, 0.82) !important;
    opacity: 1 !important;
}


/* 底部操作按钮容器 */

.bg-muted.rounded.flex {
    position: relative !important;
    z-index: 3 !important;

    display: flex !important;
    align-items: center !important;
    gap: 3px !important;

    padding: 3px !important;

    color: #eef4ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(20, 35, 62, 0.92),
            rgba(30, 23, 57, 0.9)
        ) !important;

    border: 1px solid rgba(145, 181, 231, 0.2) !important;
    border-radius: 8px !important;

    box-shadow:
        0 7px 18px rgba(1, 5, 17, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.055) !important;

    opacity: 1 !important;
}


/* 单个操作按钮 */

.bg-muted.rounded.flex button {
    display: inline-grid !important;
    place-items: center !important;

    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;

    padding: 0 !important;

    color: rgba(226, 237, 255, 0.88) !important;
    background: transparent !important;

    border: 1px solid transparent !important;
    border-radius: 6px !important;

    opacity: 1 !important;

    transition:
        color 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease !important;
}

.bg-muted.rounded.flex button:hover {
    color: #ffffff !important;

    background:
        linear-gradient(
            135deg,
            rgba(82, 174, 234, 0.22),
            rgba(173, 91, 224, 0.16)
        ) !important;

    border-color: rgba(139, 215, 246, 0.36) !important;

    box-shadow:
        0 5px 13px rgba(2, 7, 18, 0.2),
        0 0 12px rgba(86, 190, 239, 0.11) !important;

    transform: translateY(-2px) !important;
}

.bg-muted.rounded.flex button:active {
    transform: translateY(0) scale(0.96) !important;
}


/* Lucide 图标强制浅色 */

.bg-muted.rounded.flex button svg.lucide {
    width: 16px !important;
    height: 16px !important;

    color: rgba(229, 239, 255, 0.9) !important;
    stroke: rgba(229, 239, 255, 0.9) !important;
    fill: none !important;

    opacity: 1 !important;
}

.bg-muted.rounded.flex button:hover svg.lucide {
    color: #ffffff !important;
    stroke: #ffffff !important;
}


/* 平台默认会在桌面端隐藏按钮，这里强制常驻 */

.group .md\:opacity-0 {
    opacity: 1 !important;
}


/* 常见禁用状态 */

.bg-muted.rounded.flex button:disabled {
    color: rgba(168, 180, 204, 0.42) !important;
    background: transparent !important;

    border-color: transparent !important;

    opacity: 0.5 !important;
    filter: saturate(0.55) !important;
    transform: none !important;
}


/* =========================================================
   07. 当前平台加载动画
   平台结构：
   .flex.gap-2.w-full.h-full.items-center.justify-center

   按平台要求隐藏原生加载点，再由伪元素重建动画。
   ========================================================= */

/* 加载容器 */

.flex.gap-2.w-full.h-full.items-center.justify-center {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: min(340px, 90vw) !important;
    min-width: min(340px, 90vw) !important;
    max-width: 100% !important;

    height: 78px !important;
    min-height: 78px !important;

    margin: 12px auto !important;
    padding: 0 68px 0 76px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: transparent !important;

    background:
        radial-gradient(
            circle at 12% 50%,
            rgba(91, 218, 255, 0.18),
            transparent 25%
        ),
        radial-gradient(
            circle at 89% 24%,
            rgba(201, 101, 255, 0.15),
            transparent 28%
        ),
        linear-gradient(
            115deg,
            rgba(17, 32, 62, 0.985),
            rgba(30, 21, 61, 0.985),
            rgba(11, 39, 49, 0.985),
            rgba(17, 32, 62, 0.985)
        ) !important;

    background-size:
        100% 100%,
        100% 100%,
        240% 100% !important;

    background-position:
        center,
        center,
        0% 50% !important;

    background-repeat: no-repeat !important;

    border: 1px solid rgba(108, 191, 255, 0.35) !important;
    border-radius: 16px !important;

    box-shadow:
        0 12px 32px rgba(2, 6, 22, 0.4),
        0 0 16px rgba(68, 174, 255, 0.11),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    opacity: 1 !important;

    animation:
        ts-loader-shell 2.8s ease-in-out infinite,
        ts-aurora-flow 7s ease-in-out infinite !important;
}


/* 隐藏平台原生三个加载点 */

.flex.gap-2.w-full.h-full.items-center.justify-center > span {
    display: none !important;
    opacity: 0 !important;
}


/* 左侧星环核心 */

.flex.gap-2.w-full.h-full.items-center.justify-center::before {
    content: "" !important;

    position: absolute !important;
    left: 20px !important;
    top: 50% !important;
    z-index: 3 !important;

    display: block !important;

    width: 42px !important;
    height: 42px !important;

    margin-top: -21px !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle at center,
            #f2fcff 0 2px,
            rgba(113, 225, 255, 0.78) 2.5px,
            rgba(104, 187, 255, 0.2) 4px,
            transparent 5px
        ),
        radial-gradient(
            circle at center,
            transparent 0 10px,
            rgba(114, 225, 255, 0.42) 10.5px 11px,
            transparent 11.5px 15px,
            rgba(196, 137, 255, 0.34) 15.5px 16px,
            transparent 16.5px
        ),
        conic-gradient(
            from 0deg,
            transparent 0 8%,
            #75eaff 11% 21%,
            transparent 24% 39%,
            #bc8cff 43% 54%,
            transparent 58% 72%,
            #ff83ca 76% 84%,
            transparent 88% 100%
        ) !important;

    border: 1px solid rgba(147, 203, 255, 0.22) !important;
    border-radius: 50% !important;

    box-shadow:
        0 0 9px rgba(89, 214, 255, 0.36),
        0 0 19px rgba(166, 104, 255, 0.21),
        inset 0 0 11px rgba(91, 207, 255, 0.11) !important;

    opacity: 1 !important;

    animation:
        ts-loader-orbit 1.7s linear infinite,
        ts-icon-pulse 2.5s ease-in-out infinite !important;
}


/* 加载文字和右侧状态 */

.flex.gap-2.w-full.h-full.items-center.justify-center::after {
    content: "AI 正在思考  ·  星轨演算中" !important;

    position: absolute !important;
    left: 76px !important;
    right: 17px !important;
    top: 50% !important;
    z-index: 3 !important;

    display: block !important;

    min-width: 0 !important;

    color: #f2f8ff !important;
    background: transparent !important;

    font-family:
        Inter,
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif !important;

    font-size: 12.5px !important;
    font-weight: 760 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.06em !important;
    white-space: nowrap !important;

    text-align: left !important;

    text-shadow:
        0 0 9px rgba(102, 215, 255, 0.24),
        0 0 16px rgba(193, 113, 255, 0.14) !important;

    opacity: 1 !important;

    transform: translateY(-50%) !important;

    animation: ts-loader-text 2s ease-in-out infinite !important;
}


/* 进度光束
   使用加载容器的内部盒阴影构造，避免占用额外 DOM */

.flex.gap-2.w-full.h-full.items-center.justify-center {
    background-image:
        radial-gradient(
            circle at 12% 50%,
            rgba(91, 218, 255, 0.18),
            transparent 25%
        ),
        radial-gradient(
            circle at 89% 24%,
            rgba(201, 101, 255, 0.15),
            transparent 28%
        ),
        linear-gradient(
            115deg,
            rgba(17, 32, 62, 0.985),
            rgba(30, 21, 61, 0.985),
            rgba(11, 39, 49, 0.985),
            rgba(17, 32, 62, 0.985)
        ),
        linear-gradient(
            90deg,
            transparent,
            rgba(105, 239, 244, 0.96),
            rgba(138, 186, 255, 0.96),
            rgba(201, 133, 255, 0.96),
            rgba(255, 135, 201, 0.92),
            transparent
        ) !important;

    background-size:
        100% 100%,
        100% 100%,
        240% 100%,
        34% 3px !important;

    background-position:
        center,
        center,
        0% 50%,
        -45% 100% !important;

    background-repeat:
        no-repeat,
        no-repeat,
        no-repeat,
        no-repeat !important;
}


/* 加载状态内的其他潜在平台子元素一律隐藏，
   避免哈希类名变化后原生点重新出现 */

.flex.gap-2.w-full.h-full.items-center.justify-center
[class*="dot"],
.flex.gap-2.w-full.h-full.items-center.justify-center
[class*="loading"],
.flex.gap-2.w-full.h-full.items-center.justify-center
[class*="pulse"] {
    display: none !important;
    opacity: 0 !important;
}


/* =========================================================
   08. 移动端基础适配
   ========================================================= */

@media (max-width: 600px) {
    .group.is-user > div:first-child,
    .group.is-assistant > div:first-child {
        max-width: 100% !important;

        border-radius: 15px !important;
    }

    .group.is-user > div:first-child::before,
    .group.is-assistant > div:first-child::before {
        opacity: 0.44 !important;
    }

    .rili-markdown-renderer,
    .markdown-body {
        max-width: 100% !important;

        font-size: 14px !important;
        line-height: 1.77 !important;
    }

    .rili-markdown-renderer pre,
    .markdown-body pre {
        padding: 12px !important;

        border-radius: 8px !important;
    }

    .rili-markdown-renderer pre code,
    .markdown-body pre code {
        font-size: 11.5px !important;
    }

    .bg-muted.rounded.flex {
        max-width: 100% !important;
        gap: 2px !important;
    }

    .bg-muted.rounded.flex button {
        width: 29px !important;
        min-width: 29px !important;
        height: 29px !important;
        min-height: 29px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center {
        width: min(304px, 90vw) !important;
        min-width: min(304px, 90vw) !important;

        height: 72px !important;
        min-height: 72px !important;

        padding-right: 12px !important;
        padding-left: 67px !important;

        border-radius: 14px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::before {
        left: 17px !important;

        width: 38px !important;
        height: 38px !important;

        margin-top: -19px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::after {
        content: "AI 正在思考  ·  演算中" !important;

        left: 67px !important;
        right: 10px !important;

        font-size: 11.5px !important;
        letter-spacing: 0.035em !important;
    }
}


/* =========================================================
   09. 极窄屏兼容
   ========================================================= */

@media (max-width: 360px) {
    .rili-markdown-renderer,
    .markdown-body {
        font-size: 13.5px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center {
        width: min(276px, 88vw) !important;
        min-width: min(276px, 88vw) !important;

        padding-left: 61px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::before {
        left: 15px !important;

        width: 35px !important;
        height: 35px !important;

        margin-top: -17.5px !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::after {
        content: "AI 正在思考" !important;

        left: 61px !important;

        font-size: 11px !important;
    }

    .text-xs.font-mono.text-muted-foreground {
        font-size: 9.5px !important;
    }
}


/* =========================================================
   10. 低动态偏好
   保留视觉状态，但降低动画强度与速度
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .group.is-user > div:first-child,
    .group.is-assistant > div:first-child {
        animation-duration: 18s !important;
    }

    .group.is-user > div:first-child::before,
    .group.is-assistant > div:first-child::before {
        opacity: 0.31 !important;

        animation-duration:
            90s,
            24s !important;
    }

    .group.is-user > div:first-child::after,
    .group.is-assistant > div:first-child::after {
        opacity: 0.34 !important;

        animation-duration: 28s !important;
    }

    .group.is-user > div:first-child:hover,
    .group.is-assistant > div:first-child:hover {
        transform: none !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center {
        animation-duration:
            5.5s,
            14s !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::before {
        animation-duration:
            3.4s,
            5s !important;
    }

    .flex.gap-2.w-full.h-full.items-center.justify-center::after {
        animation-duration: 4s !important;
    }

    .bg-muted.rounded.flex button:hover {
        transform: none !important;
    }
}


/* =========================================================
   第 1 / 4 部分结束
   下一部分从：
   11. ts-panel 通用折叠面板
   12. 思维区
   13. 系统栏
   14. 正文阅读区
   开始
   ========================================================= */
   /* =========================================================
   星穹观测终端 · 当前平台适配完整替换版
   第 2 / 4 部分

   本部分包含：
   11. 通用折叠面板
   12. 思维区
   13. 系统栏
   14. 正文阅读区
   15. 本部分移动端适配
   16. 本部分低动态适配

   请直接拼接在第 1 / 4 部分之后。
   ========================================================= */


/* =========================================================
   11. 通用折叠面板
   保持正式输出中的 details.ts-panel 结构不变
   ========================================================= */

.rili-markdown-renderer details.ts-panel,
.markdown-body details.ts-panel {
    position: relative !important;
    z-index: 2 !important;
    isolation: isolate !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 16px 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #edf3ff !important;

    background:
        radial-gradient(
            circle at 95% 0%,
            rgba(117, 95, 255, 0.1),
            transparent 36%
        ),
        linear-gradient(
            145deg,
            rgba(25, 34, 62, 0.96),
            rgba(10, 17, 35, 0.98)
        ) !important;

    border: 1px solid var(--ts-border, rgba(151, 179, 242, 0.25)) !important;
    border-radius: var(--ts-radius-lg, 16px) !important;

    box-shadow:
        0 10px 30px rgba(1, 5, 18, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.055) !important;

    opacity: 1 !important;

    transition:
        border-color 0.28s ease,
        box-shadow 0.28s ease,
        transform 0.28s ease !important;
}

.rili-markdown-renderer details.ts-panel:hover,
.markdown-body details.ts-panel:hover {
    border-color: rgba(147, 197, 255, 0.36) !important;

    box-shadow:
        0 14px 36px rgba(1, 5, 18, 0.38),
        0 0 22px rgba(86, 137, 234, 0.07),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

.rili-markdown-renderer details.ts-panel[open],
.markdown-body details.ts-panel[open] {
    animation: ts-panel-open 0.34s ease-out both !important;
}


/* 面板标题栏 */

.rili-markdown-renderer details.ts-panel > summary,
.markdown-body details.ts-panel > summary {
    position: relative !important;
    z-index: 3 !important;

    display: flex !important;
    align-items: center !important;
    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;

    margin: 0 !important;
    padding: 11px 49px 11px 17px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    cursor: pointer !important;
    user-select: none !important;
    list-style: none !important;

    color: #ffffff !important;

    background:
        linear-gradient(
            90deg,
            rgba(94, 125, 207, 0.12),
            rgba(172, 87, 220, 0.055),
            transparent
        ) !important;

    border: 0 !important;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;

    opacity: 1 !important;

    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        filter 0.25s ease !important;
}

.rili-markdown-renderer details.ts-panel > summary:hover,
.markdown-body details.ts-panel > summary:hover {
    background:
        linear-gradient(
            90deg,
            rgba(101, 142, 224, 0.17),
            rgba(177, 92, 225, 0.08),
            transparent
        ) !important;

    filter: brightness(1.08) !important;
}

.rili-markdown-renderer details.ts-panel[open] > summary,
.markdown-body details.ts-panel[open] > summary {
    border-bottom-color: rgba(139, 170, 230, 0.15) !important;
}


/* 清除浏览器原生 details 标记 */

.rili-markdown-renderer details.ts-panel > summary::-webkit-details-marker,
.rili-markdown-renderer details.ts-app-page > summary::-webkit-details-marker,
.markdown-body details.ts-panel > summary::-webkit-details-marker,
.markdown-body details.ts-app-page > summary::-webkit-details-marker {
    display: none !important;
    opacity: 0 !important;
}

.rili-markdown-renderer details.ts-panel > summary::marker,
.rili-markdown-renderer details.ts-app-page > summary::marker,
.markdown-body details.ts-panel > summary::marker,
.markdown-body details.ts-app-page > summary::marker {
    content: "" !important;
    display: none !important;
}


/* 通用展开箭头 */

.rili-markdown-renderer details.ts-panel > summary::after,
.markdown-body details.ts-panel > summary::after {
    content: "⌄" !important;

    position: absolute !important;
    right: 17px !important;
    top: 50% !important;
    z-index: 4 !important;

    display: grid !important;
    place-items: center !important;

    width: 25px !important;
    min-width: 25px !important;
    height: 25px !important;
    min-height: 25px !important;

    color: #c8d7fa !important;
    background: rgba(112, 151, 218, 0.09) !important;

    border: 1px solid rgba(140, 175, 232, 0.13) !important;
    border-radius: 7px !important;

    font-family:
        "Segoe UI Symbol",
        "Arial Unicode MS",
        sans-serif !important;

    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    transform: translateY(-50%) rotate(-90deg) !important;

    transition:
        transform 0.32s ease,
        color 0.32s ease,
        background 0.32s ease,
        box-shadow 0.32s ease !important;
}

.rili-markdown-renderer details.ts-panel[open] > summary::after,
.markdown-body details.ts-panel[open] > summary::after {
    color: #85eff6 !important;
    background: rgba(87, 197, 216, 0.11) !important;

    box-shadow:
        0 0 14px rgba(93, 220, 238, 0.18) !important;

    transform: translateY(-50%) rotate(0deg) !important;
}


/* 标题栏通用图标 */

.rili-markdown-renderer .ts-summary-icon,
.markdown-body .ts-summary-icon {
    position: relative !important;
    z-index: 2 !important;

    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;

    color: #e9f1ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(99, 178, 240, 0.18),
            rgba(176, 102, 235, 0.15)
        ) !important;

    border: 1px solid rgba(161, 193, 246, 0.22) !important;
    border-radius: 8px !important;

    font-size: 14px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.2s ease-in-out infinite !important;
}


/* 标题文字 */

.rili-markdown-renderer .ts-summary-title,
.markdown-body .ts-summary-title {
    position: relative !important;
    z-index: 2 !important;

    display: inline-block !important;

    min-width: 0 !important;

    color: #f9fbff !important;
    background: transparent !important;

    font-size: 15px !important;
    font-weight: 780 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-title-glow 4.5s ease-in-out infinite !important;
}


/* 右侧英文副标题 */

.rili-markdown-renderer .ts-summary-subtitle,
.markdown-body .ts-summary-subtitle {
    position: relative !important;
    z-index: 2 !important;

    display: inline-block !important;
    flex: 0 1 auto !important;

    min-width: 0 !important;
    margin-left: auto !important;

    color: #91a3c9 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;

    opacity: 1 !important;
}


/* 面板内部颜色保险 */

.rili-markdown-renderer details.ts-panel > *,
.rili-markdown-renderer details.ts-panel > * *,
.markdown-body details.ts-panel > *,
.markdown-body details.ts-panel > * * {
    box-sizing: border-box !important;
}


/* =========================================================
   12. 思维区
   对应：
   details.ts-panel.ts-thought
   .ts-thought-content
   .ts-thinking-indicator
   .ts-thought-step
   .ts-check-grid
   .ts-memory-config
   ========================================================= */

.rili-markdown-renderer details.ts-thought,
.markdown-body details.ts-thought {
    background:
        radial-gradient(
            circle at 88% 8%,
            rgba(224, 89, 255, 0.16),
            transparent 34%
        ),
        radial-gradient(
            circle at 5% 100%,
            rgba(69, 176, 255, 0.11),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(37, 25, 67, 0.97),
            rgba(13, 17, 38, 0.99)
        ) !important;

    border-color: rgba(189, 132, 255, 0.34) !important;
}

.rili-markdown-renderer details.ts-thought:hover,
.markdown-body details.ts-thought:hover {
    border-color: rgba(205, 151, 255, 0.46) !important;

    box-shadow:
        0 14px 38px rgba(1, 5, 18, 0.4),
        0 0 25px rgba(181, 101, 255, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}


/* 思维区标题栏为自身图标预留空间 */

.rili-markdown-renderer details.ts-thought > summary,
.markdown-body details.ts-thought > summary {
    padding-left: 59px !important;

    background:
        linear-gradient(
            90deg,
            rgba(170, 90, 231, 0.19),
            rgba(59, 156, 218, 0.08),
            transparent 72%
        ) !important;
}


/* 思维区圆形认知图标 */

.rili-markdown-renderer details.ts-thought > summary::before,
.markdown-body details.ts-thought > summary::before {
    content: "◉" !important;

    position: absolute !important;
    left: 17px !important;
    top: 50% !important;
    z-index: 4 !important;

    display: grid !important;
    place-items: center !important;

    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;

    color: #f0d6ff !important;

    background:
        conic-gradient(
            from 0deg,
            rgba(197, 122, 255, 0.35),
            rgba(87, 218, 246, 0.24),
            rgba(255, 117, 208, 0.27),
            rgba(197, 122, 255, 0.35)
        ) !important;

    border: 1px solid rgba(218, 169, 255, 0.46) !important;
    border-radius: 50% !important;

    box-shadow:
        0 0 0 4px rgba(185, 112, 239, 0.055),
        0 0 15px rgba(187, 111, 255, 0.16) !important;

    font-size: 13px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    transform: translateY(-50%) !important;

    animation: ts-icon-pulse 3.2s ease-in-out infinite !important;
}

.rili-markdown-renderer details.ts-thought .ts-summary-title,
.markdown-body details.ts-thought .ts-summary-title {
    color: #f0deff !important;
}


/* 思维区主体 */

.rili-markdown-renderer .ts-thought-content,
.markdown-body .ts-thought-content {
    position: relative !important;
    z-index: 2 !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 17px 18px 22px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #e4def0 !important;

    background:
        repeating-linear-gradient(
            0deg,
            transparent 0 31px,
            rgba(163, 177, 226, 0.035) 32px
        ),
        linear-gradient(
            135deg,
            rgba(128, 74, 184, 0.035),
            rgba(46, 133, 179, 0.025)
        ) !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        "Microsoft YaHei",
        monospace !important;

    font-size: 13px !important;
    line-height: 1.8 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-thought-content *,
.markdown-body .ts-thought-content * {
    color: inherit !important;
}


/* 思维区内部状态条 */

.rili-markdown-renderer .ts-thinking-indicator,
.markdown-body .ts-thinking-indicator {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;

    margin: 0 0 15px !important;
    padding: 8px 15px 8px 61px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #f0ddff !important;

    background:
        linear-gradient(
            110deg,
            rgba(177, 89, 236, 0.18),
            rgba(54, 191, 217, 0.11),
            rgba(255, 100, 196, 0.09),
            rgba(177, 89, 236, 0.18)
        ) !important;

    background-size: 240% 100% !important;
    background-position: 0% 50% !important;

    border: 1px solid rgba(203, 151, 255, 0.25) !important;
    border-radius: 11px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.055),
        0 7px 18px rgba(4, 3, 15, 0.18) !important;

    opacity: 1 !important;

    animation: ts-aurora-flow 7s ease-in-out infinite !important;
}


/* 状态条左侧旋转核心 */

.rili-markdown-renderer .ts-thinking-indicator::before,
.markdown-body .ts-thinking-indicator::before {
    content: "" !important;

    position: absolute !important;
    left: 16px !important;
    top: 50% !important;
    z-index: 2 !important;

    display: block !important;

    width: 30px !important;
    height: 30px !important;

    margin-top: -15px !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle,
            #e8d2ff 0 2px,
            transparent 3px
        ),
        conic-gradient(
            from 0deg,
            transparent 0 18%,
            #d69cff 22% 35%,
            transparent 39% 55%,
            #77e9f3 60% 73%,
            transparent 78%
        ) !important;

    border: 1px solid rgba(201, 145, 255, 0.24) !important;
    border-radius: 50% !important;

    box-shadow:
        0 0 13px rgba(199, 132, 255, 0.33),
        inset 0 0 10px rgba(113, 222, 242, 0.08) !important;

    opacity: 1 !important;

    animation: ts-spin 1.7s linear infinite !important;
}


/* 状态条底部进度光束 */

.rili-markdown-renderer .ts-thinking-indicator::after,
.markdown-body .ts-thinking-indicator::after {
    content: "" !important;

    position: absolute !important;
    left: -45% !important;
    bottom: 0 !important;
    z-index: 3 !important;

    display: block !important;

    width: 38% !important;
    height: 2px !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            #74eaf2,
            #d79bff,
            #ff8dcc,
            transparent
        ) !important;

    border-radius: 999px !important;

    box-shadow:
        0 0 9px rgba(139, 226, 255, 0.62) !important;

    opacity: 1 !important;

    animation: ts-loader-progress 2.5s ease-in-out infinite !important;
}


/* 状态条文字 */

.rili-markdown-renderer .ts-thinking-text,
.markdown-body .ts-thinking-text {
    position: relative !important;
    z-index: 2 !important;

    display: inline-block !important;

    min-width: 0 !important;

    color: #f0ddff !important;
    background: transparent !important;

    font-family:
        Inter,
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif !important;

    font-size: 12px !important;
    font-weight: 780 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-loader-text 2.1s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-thinking-text::after,
.markdown-body .ts-thinking-text::after {
    content: " · COGNITION ACTIVE" !important;

    display: inline !important;

    color: #b7a4d2 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;

    opacity: 1 !important;
}


/* 单个思维步骤 */

.rili-markdown-renderer .ts-thought-step,
.markdown-body .ts-thought-step {
    position: relative !important;

    display: grid !important;
    grid-template-columns: 35px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 11px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 9px 0 !important;
    padding: 11px 12px !important;

    box-sizing: border-box !important;

    color: #e6dff0 !important;

    background:
        linear-gradient(
            100deg,
            rgba(154, 89, 218, 0.075),
            rgba(63, 153, 201, 0.035)
        ) !important;

    border: 1px solid rgba(193, 142, 239, 0.13) !important;
    border-radius: 9px !important;

    opacity: 1 !important;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        background 0.25s ease,
        box-shadow 0.25s ease !important;
}

.rili-markdown-renderer .ts-thought-step:hover,
.markdown-body .ts-thought-step:hover {
    background:
        linear-gradient(
            100deg,
            rgba(170, 91, 231, 0.13),
            rgba(56, 181, 209, 0.06)
        ) !important;

    border-color: rgba(205, 151, 255, 0.25) !important;

    box-shadow:
        0 7px 18px rgba(3, 2, 13, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;

    transform: translateX(3px) !important;
}


/* 思维步骤编号 */

.rili-markdown-renderer .ts-thought-index,
.markdown-body .ts-thought-index {
    display: grid !important;
    place-items: center !important;

    width: 31px !important;
    min-width: 31px !important;
    height: 31px !important;
    min-height: 31px !important;

    color: #e0c1ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(177, 94, 224, 0.2),
            rgba(66, 180, 220, 0.12)
        ) !important;

    border: 1px solid rgba(207, 157, 248, 0.25) !important;
    border-radius: 7px !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;
}


/* 思维步骤正文 */

.rili-markdown-renderer .ts-thought-text,
.markdown-body .ts-thought-text {
    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    color: #e4ddec !important;
    background: transparent !important;

    font-size: 12.5px !important;
    line-height: 1.78 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-thought-text strong,
.rili-markdown-renderer .ts-thought-text b,
.markdown-body .ts-thought-text strong,
.markdown-body .ts-thought-text b {
    color: #ffffff !important;
    font-weight: 780 !important;
}


/* 校验网格 */

.rili-markdown-renderer .ts-check-grid,
.markdown-body .ts-check-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 10px 0 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
}

.rili-markdown-renderer .ts-check-grid > span,
.markdown-body .ts-check-grid > span {
    position: relative !important;

    display: block !important;

    min-width: 0 !important;
    padding: 8px 10px !important;

    box-sizing: border-box !important;

    color: #ded9e9 !important;

    background:
        linear-gradient(
            90deg,
            rgba(139, 86, 190, 0.11),
            rgba(62, 150, 187, 0.035)
        ) !important;

    border: 0 !important;
    border-left: 2px solid rgba(201, 143, 250, 0.42) !important;
    border-radius: 2px 7px 7px 2px !important;

    font-size: 11.5px !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 星记忆配置区 */

.rili-markdown-renderer .ts-memory-config,
.markdown-body .ts-memory-config {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 12px 0 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    color: #e7e1ef !important;
    background: rgba(8, 12, 29, 0.48) !important;

    border: 1px solid rgba(179, 142, 226, 0.16) !important;
    border-radius: 10px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.03) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-config > div,
.markdown-body .ts-memory-config > div {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;

    min-width: 0 !important;
    padding: 7px 9px !important;

    box-sizing: border-box !important;

    color: #e7e1ef !important;
    background: rgba(255, 255, 255, 0.025) !important;

    border: 1px solid rgba(190, 161, 227, 0.055) !important;
    border-radius: 6px !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-config span,
.markdown-body .ts-memory-config span {
    display: block !important;
    flex: 1 1 auto !important;

    min-width: 0 !important;

    color: #b8b1c8 !important;
    background: transparent !important;

    font-size: 11px !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-config b,
.markdown-body .ts-memory-config b {
    display: block !important;
    flex: 0 1 55% !important;

    min-width: 0 !important;

    color: #f0e9fb !important;
    background: transparent !important;

    font-size: 11px !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    text-align: right !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* =========================================================
   13. 系统栏
   对应：
   details.ts-panel.ts-system
   .ts-system-content
   .ts-system-row
   ========================================================= */

.rili-markdown-renderer details.ts-system,
.markdown-body details.ts-system {
    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(54, 237, 220, 0.14),
            transparent 38%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(75, 135, 255, 0.1),
            transparent 36%
        ),
        linear-gradient(
            145deg,
            rgba(13, 43, 57, 0.98),
            rgba(10, 21, 40, 0.99)
        ) !important;

    border-color: rgba(79, 215, 216, 0.31) !important;
}

.rili-markdown-renderer details.ts-system:hover,
.markdown-body details.ts-system:hover {
    border-color: rgba(104, 237, 231, 0.42) !important;

    box-shadow:
        0 14px 38px rgba(1, 6, 17, 0.38),
        0 0 24px rgba(61, 221, 213, 0.09),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}


/* 系统栏标题 */

.rili-markdown-renderer details.ts-system > summary,
.markdown-body details.ts-system > summary {
    padding-left: 58px !important;

    background:
        linear-gradient(
            90deg,
            rgba(46, 191, 194, 0.17),
            rgba(64, 121, 218, 0.07),
            transparent 70%
        ) !important;
}


/* 系统栏图标 */

.rili-markdown-renderer details.ts-system > summary::before,
.markdown-body details.ts-system > summary::before {
    content: "⌖" !important;

    position: absolute !important;
    left: 17px !important;
    top: 50% !important;
    z-index: 4 !important;

    display: grid !important;
    place-items: center !important;

    width: 29px !important;
    min-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;

    color: #a9ffff !important;

    background:
        conic-gradient(
            rgba(76, 224, 218, 0.25),
            rgba(86, 137, 238, 0.14),
            rgba(76, 224, 218, 0.25)
        ) !important;

    border: 1px solid rgba(104, 232, 228, 0.32) !important;
    border-radius: 50% !important;

    box-shadow:
        0 0 15px rgba(76, 226, 220, 0.13) !important;

    font-size: 15px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    transform: translateY(-50%) !important;

    animation: ts-icon-pulse 3.6s ease-in-out infinite !important;
}

.rili-markdown-renderer details.ts-system .ts-summary-title,
.markdown-body details.ts-system .ts-summary-title {
    color: #cefffb !important;
}


/* 系统栏内容 */

.rili-markdown-renderer .ts-system-content,
.markdown-body .ts-system-content {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 10px 17px 14px !important;

    box-sizing: border-box !important;

    color: #e8f6f7 !important;
    background: transparent !important;

    opacity: 1 !important;
}


/* 系统栏数据行 */

.rili-markdown-renderer .ts-system-row,
.markdown-body .ts-system-row {
    display: grid !important;
    grid-template-columns: minmax(104px, 0.25fr) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 13px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 10px 3px !important;

    box-sizing: border-box !important;

    color: #e8f6f7 !important;
    background: transparent !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(106, 209, 207, 0.11) !important;

    opacity: 1 !important;

    transition:
        padding-left 0.22s ease,
        background 0.22s ease !important;
}

.rili-markdown-renderer .ts-system-row:hover,
.markdown-body .ts-system-row:hover {
    padding-left: 8px !important;

    background:
        linear-gradient(
            90deg,
            rgba(62, 206, 204, 0.055),
            transparent
        ) !important;
}

.rili-markdown-renderer .ts-system-row:last-child,
.markdown-body .ts-system-row:last-child {
    border-bottom: 0 !important;
}


/* 系统栏字段名称 */

.rili-markdown-renderer .ts-system-label,
.markdown-body .ts-system-label {
    display: block !important;

    min-width: 0 !important;

    color: #91e7e3 !important;
    background: transparent !important;

    font-size: 12px !important;
    font-weight: 760 !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-system-label::before,
.markdown-body .ts-system-label::before {
    content: "◆" !important;

    display: inline !important;

    margin-right: 7px !important;

    color: rgba(97, 235, 227, 0.8) !important;
    background: transparent !important;

    font-size: 7px !important;
    line-height: 1 !important;
    vertical-align: 2px !important;

    opacity: 1 !important;
}


/* 系统栏字段内容 */

.rili-markdown-renderer .ts-system-value,
.markdown-body .ts-system-value {
    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    color: #e9f4f6 !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 450 !important;
    line-height: 1.72 !important;
    letter-spacing: 0 !important;
    white-space: pre-wrap !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 大陆新闻强调行 */

.rili-markdown-renderer .ts-system-news .ts-system-value,
.markdown-body .ts-system-news .ts-system-value {
    padding: 8px 10px !important;

    color: #e8f8f8 !important;

    background:
        linear-gradient(
            90deg,
            rgba(46, 183, 185, 0.11),
            rgba(83, 121, 213, 0.04)
        ) !important;

    border: 0 !important;
    border-left: 2px solid rgba(92, 232, 225, 0.52) !important;
    border-radius: 2px 7px 7px 2px !important;

    box-shadow:
        inset 10px 0 22px rgba(55, 192, 194, 0.025) !important;
}


/* =========================================================
   14. 正文阅读区
   对应：
   section.ts-story
   .ts-section-heading
   .ts-story-content
   ========================================================= */

.rili-markdown-renderer .ts-story,
.markdown-body .ts-story {
    position: relative !important;
    z-index: 2 !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 20px 1px !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    color: #f2f5fc !important;
    background: transparent !important;

    opacity: 1 !important;
}


/* 正文模块标题行 */

.rili-markdown-renderer .ts-section-heading,
.markdown-body .ts-section-heading {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 12px !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    color: #f6f8ff !important;
    background: transparent !important;

    opacity: 1 !important;
}


/* 正文模块标题图标 */

.rili-markdown-renderer .ts-heading-mark,
.markdown-body .ts-heading-mark {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 29px !important;
    min-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;

    color: #e3edff !important;

    background:
        conic-gradient(
            from 45deg,
            rgba(91, 172, 249, 0.32),
            rgba(185, 95, 236, 0.25),
            rgba(70, 222, 213, 0.24),
            rgba(91, 172, 249, 0.32)
        ) !important;

    border: 1px solid rgba(159, 193, 247, 0.3) !important;
    border-radius: 50% !important;

    box-shadow:
        0 0 16px rgba(102, 176, 243, 0.12) !important;

    font-size: 12px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4s ease-in-out infinite !important;
}


/* 正文模块标题 */

.rili-markdown-renderer .ts-heading-text,
.markdown-body .ts-heading-text {
    display: inline-block !important;
    flex: 0 1 auto !important;

    min-width: 0 !important;

    color: #f6f8ff !important;
    background: transparent !important;

    font-size: 16px !important;
    font-weight: 780 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;

    opacity: 1 !important;

    animation: ts-title-glow 5s ease-in-out infinite !important;
}


/* 正文模块流动装饰线 */

.rili-markdown-renderer .ts-heading-line,
.markdown-body .ts-heading-line {
    display: block !important;
    flex: 1 1 auto !important;

    min-width: 22px !important;
    height: 2px !important;

    color: transparent !important;

    background:
        linear-gradient(
            90deg,
            #6ebaff,
            #bf89ff,
            #58e4de,
            transparent,
            #6ebaff
        ) !important;

    background-size: 200% 100% !important;
    background-position: 0% 50% !important;

    border: 0 !important;
    border-radius: 999px !important;

    opacity: 0.55 !important;

    animation: ts-gradient-line 5s linear infinite !important;
}


/* 正文阅读容器 */

.rili-markdown-renderer .ts-story-content,
.markdown-body .ts-story-content {
    position: relative !important;
    isolation: isolate !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 22px 23px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #f2f5fc !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(110, 89, 227, 0.08),
            transparent 34%
        ),
        linear-gradient(
            155deg,
            rgba(30, 40, 68, 0.81),
            rgba(12, 19, 36, 0.77)
        ) !important;

    border: 1px solid rgba(137, 167, 224, 0.2) !important;
    border-left: 3px solid #72b8ff !important;
    border-radius: 4px 14px 14px 4px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.045),
        inset 13px 0 35px rgba(65, 134, 219, 0.035) !important;

    font-family:
        Inter,
        "SF Pro Display",
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif !important;

    font-size: 15px !important;
    font-weight: 430 !important;
    line-height: 1.96 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-memory-glow 7s ease-in-out infinite !important;
}


/* 正文容器内部微弱扫描线 */

.rili-markdown-renderer .ts-story-content::before,
.markdown-body .ts-story-content::before {
    content: "" !important;

    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -22% !important;
    z-index: -1 !important;

    display: block !important;

    height: 18% !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(109, 211, 255, 0.035),
            transparent
        ) !important;

    opacity: 0.2 !important;

    animation: ts-scanline 13s linear infinite !important;
}


/* 正文容器右上方微光 */

.rili-markdown-renderer .ts-story-content::after,
.markdown-body .ts-story-content::after {
    content: "" !important;

    position: absolute !important;
    right: -65px !important;
    top: -82px !important;
    z-index: -1 !important;

    display: block !important;

    width: 180px !important;
    height: 180px !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle,
            rgba(110, 122, 255, 0.11),
            rgba(88, 225, 220, 0.035) 40%,
            transparent 70%
        ) !important;

    border-radius: 50% !important;

    filter: blur(8px) !important;
    opacity: 0.7 !important;
}


/* 正文中的段落 */

.rili-markdown-renderer .ts-story-content p,
.markdown-body .ts-story-content p {
    margin: 0 0 1em !important;

    color: #f2f5fc !important;
    background: transparent !important;

    font-size: inherit !important;
    line-height: inherit !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-story-content p:last-child,
.markdown-body .ts-story-content p:last-child {
    margin-bottom: 0 !important;
}


/* 正文中的强调文本 */

.rili-markdown-renderer .ts-story-content strong,
.rili-markdown-renderer .ts-story-content b,
.markdown-body .ts-story-content strong,
.markdown-body .ts-story-content b {
    color: #ffffff !important;
    background: transparent !important;

    font-weight: 780 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-story-content em,
.rili-markdown-renderer .ts-story-content i,
.markdown-body .ts-story-content em,
.markdown-body .ts-story-content i {
    color: #e2e9f8 !important;
    background: transparent !important;

    opacity: 1 !important;
}


/* 正文内列表 */

.rili-markdown-renderer .ts-story-content ul,
.rili-markdown-renderer .ts-story-content ol,
.markdown-body .ts-story-content ul,
.markdown-body .ts-story-content ol {
    margin: 0.8em 0 !important;
    padding-left: 1.55em !important;
}

.rili-markdown-renderer .ts-story-content li,
.markdown-body .ts-story-content li {
    margin: 0.28em 0 !important;

    color: #eef3fc !important;
    background: transparent !important;

    line-height: 1.85 !important;
    opacity: 1 !important;
}


/* 正文内引用 */

.rili-markdown-renderer .ts-story-content blockquote,
.markdown-body .ts-story-content blockquote {
    margin: 1em 0 !important;
    padding: 11px 14px !important;

    color: #e1e9f8 !important;

    background:
        linear-gradient(
            90deg,
            rgba(73, 147, 216, 0.12),
            rgba(162, 91, 225, 0.045)
        ) !important;

    border: 0 !important;
    border-left: 3px solid #75caff !important;
    border-radius: 3px 9px 9px 3px !important;

    box-shadow:
        inset 10px 0 25px rgba(72, 148, 224, 0.035) !important;
}

.rili-markdown-renderer .ts-story-content blockquote *,
.markdown-body .ts-story-content blockquote * {
    color: #e1e9f8 !important;
}


/* =========================================================
   15. 本部分移动端适配
   ========================================================= */

@media (max-width: 600px) {
    .rili-markdown-renderer details.ts-panel,
    .markdown-body details.ts-panel {
        margin: 12px 0 !important;

        border-radius: 13px !important;
    }

    .rili-markdown-renderer details.ts-panel > summary,
    .markdown-body details.ts-panel > summary {
        gap: 7px !important;

        min-height: 50px !important;
        padding: 9px 41px 9px 12px !important;
    }

    .rili-markdown-renderer details.ts-panel > summary::after,
    .markdown-body details.ts-panel > summary::after {
        right: 11px !important;

        width: 23px !important;
        min-width: 23px !important;
        height: 23px !important;
        min-height: 23px !important;

        font-size: 17px !important;
    }

    .rili-markdown-renderer details.ts-thought > summary,
    .rili-markdown-renderer details.ts-system > summary,
    .markdown-body details.ts-thought > summary,
    .markdown-body details.ts-system > summary {
        padding-left: 52px !important;
    }

    .rili-markdown-renderer details.ts-thought > summary::before,
    .rili-markdown-renderer details.ts-system > summary::before,
    .markdown-body details.ts-thought > summary::before,
    .markdown-body details.ts-system > summary::before {
        left: 12px !important;
    }

    .rili-markdown-renderer .ts-summary-title,
    .markdown-body .ts-summary-title {
        font-size: 13px !important;
        line-height: 1.4 !important;
        letter-spacing: 0 !important;
    }

    .rili-markdown-renderer .ts-summary-subtitle,
    .markdown-body .ts-summary-subtitle {
        display: none !important;
        opacity: 0 !important;
    }

    .rili-markdown-renderer .ts-thought-content,
    .markdown-body .ts-thought-content {
        padding: 13px !important;

        font-size: 12px !important;
        line-height: 1.75 !important;
    }

    .rili-markdown-renderer .ts-thinking-indicator,
    .markdown-body .ts-thinking-indicator {
        min-height: 48px !important;

        margin-bottom: 12px !important;
        padding: 7px 10px 7px 54px !important;

        border-radius: 9px !important;
    }

    .rili-markdown-renderer .ts-thinking-indicator::before,
    .markdown-body .ts-thinking-indicator::before {
        left: 13px !important;

        width: 27px !important;
        height: 27px !important;

        margin-top: -13.5px !important;
    }

    .rili-markdown-renderer .ts-thinking-text,
    .markdown-body .ts-thinking-text {
        font-size: 11.5px !important;
    }

    .rili-markdown-renderer .ts-thinking-text::after,
    .markdown-body .ts-thinking-text::after {
        display: none !important;
        opacity: 0 !important;
    }

    .rili-markdown-renderer .ts-thought-step,
    .markdown-body .ts-thought-step {
        grid-template-columns: 30px minmax(0, 1fr) !important;
        gap: 8px !important;

        margin: 7px 0 !important;
        padding: 9px !important;

        border-radius: 8px !important;
    }

    .rili-markdown-renderer .ts-thought-step:hover,
    .markdown-body .ts-thought-step:hover {
        transform: none !important;
    }

    .rili-markdown-renderer .ts-thought-index,
    .markdown-body .ts-thought-index {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;

        font-size: 9px !important;
    }

    .rili-markdown-renderer .ts-thought-text,
    .markdown-body .ts-thought-text {
        font-size: 11.5px !important;
        line-height: 1.72 !important;
    }

    .rili-markdown-renderer .ts-check-grid,
    .rili-markdown-renderer .ts-memory-config,
    .markdown-body .ts-check-grid,
    .markdown-body .ts-memory-config {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rili-markdown-renderer .ts-check-grid > span,
    .markdown-body .ts-check-grid > span {
        padding: 7px 9px !important;

        font-size: 11px !important;
    }

    .rili-markdown-renderer .ts-memory-config,
    .markdown-body .ts-memory-config {
        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-memory-config > div,
    .markdown-body .ts-memory-config > div {
        gap: 8px !important;

        padding: 7px 8px !important;
    }

    .rili-markdown-renderer .ts-memory-config span,
    .rili-markdown-renderer .ts-memory-config b,
    .markdown-body .ts-memory-config span,
    .markdown-body .ts-memory-config b {
        font-size: 10.5px !important;
    }

    .rili-markdown-renderer .ts-system-content,
    .markdown-body .ts-system-content {
        padding: 8px 12px 12px !important;
    }

    .rili-markdown-renderer .ts-system-row,
    .markdown-body .ts-system-row {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 5px !important;

        padding: 9px 2px !important;
    }

    .rili-markdown-renderer .ts-system-row:hover,
    .markdown-body .ts-system-row:hover {
        padding-left: 5px !important;
    }

    .rili-markdown-renderer .ts-system-label,
    .markdown-body .ts-system-label {
        font-size: 11.5px !important;
    }

    .rili-markdown-renderer .ts-system-value,
    .markdown-body .ts-system-value {
        padding-left: 14px !important;

        font-size: 12px !important;
        line-height: 1.68 !important;
    }

    .rili-markdown-renderer .ts-system-news .ts-system-value,
    .markdown-body .ts-system-news .ts-system-value {
        padding: 8px 9px !important;
    }

    .rili-markdown-renderer .ts-story,
    .markdown-body .ts-story {
        margin: 16px 0 !important;
    }

    .rili-markdown-renderer .ts-section-heading,
    .markdown-body .ts-section-heading {
        gap: 8px !important;

        margin-bottom: 10px !important;
    }

    .rili-markdown-renderer .ts-heading-mark,
    .markdown-body .ts-heading-mark {
        width: 27px !important;
        min-width: 27px !important;
        height: 27px !important;
        min-height: 27px !important;
    }

    .rili-markdown-renderer .ts-heading-text,
    .markdown-body .ts-heading-text {
        font-size: 14px !important;
        letter-spacing: 0.05em !important;
    }

    .rili-markdown-renderer .ts-story-content,
    .markdown-body .ts-story-content {
        padding: 17px 15px !important;

        border-radius: 3px 12px 12px 3px !important;

        font-size: 14px !important;
        line-height: 1.9 !important;
    }
}


/* =========================================================
   16. 极窄屏兼容
   ========================================================= */

@media (max-width: 360px) {
    .rili-markdown-renderer details.ts-panel > summary,
    .markdown-body details.ts-panel > summary {
        min-height: 48px !important;
        padding-right: 38px !important;
    }

    .rili-markdown-renderer .ts-summary-title,
    .markdown-body .ts-summary-title {
        font-size: 12.5px !important;
    }

    .rili-markdown-renderer .ts-thought-content,
    .markdown-body .ts-thought-content {
        padding: 10px !important;
    }

    .rili-markdown-renderer .ts-thought-step,
    .markdown-body .ts-thought-step {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rili-markdown-renderer .ts-thought-index,
    .markdown-body .ts-thought-index {
        width: 30px !important;
    }

    .rili-markdown-renderer .ts-memory-config > div,
    .markdown-body .ts-memory-config > div {
        flex-direction: column !important;
        gap: 3px !important;
    }

    .rili-markdown-renderer .ts-memory-config b,
    .markdown-body .ts-memory-config b {
        flex-basis: auto !important;

        width: 100% !important;

        text-align: left !important;
    }

    .rili-markdown-renderer .ts-story-content,
    .markdown-body .ts-story-content {
        padding: 14px 12px !important;

        font-size: 13.5px !important;
    }
}


/* =========================================================
   17. 本部分低动态适配
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .rili-markdown-renderer details.ts-panel[open],
    .markdown-body details.ts-panel[open] {
        animation-duration: 0.01ms !important;
    }

    .rili-markdown-renderer .ts-summary-icon,
    .rili-markdown-renderer details.ts-thought > summary::before,
    .rili-markdown-renderer details.ts-system > summary::before,
    .rili-markdown-renderer .ts-heading-mark,
    .markdown-body .ts-summary-icon,
    .markdown-body details.ts-thought > summary::before,
    .markdown-body details.ts-system > summary::before,
    .markdown-body .ts-heading-mark {
        animation-duration: 9s !important;
    }

    .rili-markdown-renderer .ts-thinking-indicator,
    .markdown-body .ts-thinking-indicator {
        animation-duration: 15s !important;
    }

    .rili-markdown-renderer .ts-thinking-indicator::before,
    .markdown-body .ts-thinking-indicator::before {
        animation-duration: 4.5s !important;
    }

    .rili-markdown-renderer .ts-thinking-indicator::after,
    .markdown-body .ts-thinking-indicator::after {
        animation-duration: 5s !important;
    }

    .rili-markdown-renderer .ts-thinking-text,
    .markdown-body .ts-thinking-text {
        animation-duration: 5s !important;
    }

    .rili-markdown-renderer .ts-thought-step:hover,
    .rili-markdown-renderer .ts-system-row:hover,
    .markdown-body .ts-thought-step:hover,
    .markdown-body .ts-system-row:hover {
        transform: none !important;
    }

    .rili-markdown-renderer .ts-heading-line,
    .markdown-body .ts-heading-line {
        animation-duration: 12s !important;
    }

    .rili-markdown-renderer .ts-story-content,
    .markdown-body .ts-story-content {
        animation-duration: 15s !important;
    }

    .rili-markdown-renderer .ts-story-content::before,
    .markdown-body .ts-story-content::before {
        display: none !important;
        opacity: 0 !important;
    }
}


/* =========================================================
   第 2 / 4 部分结束

   第 3 / 4 部分将包含：
   18. 观测终端外壳
   19. 五个模块入口
   20. 模块打开状态
   21. 独立滚动区
   22. 固定返回栏
   23. 页面标题与主角资料卡
   24. 通用数据模块
   25. 装备、持有物与货币
   ========================================================= */
   /* =========================================================
   星穹观测终端 · 当前平台适配完整替换版
   第 3 / 4 部分

   本部分包含：
   18. 观测终端外壳
   19. 模块入口按钮
   20. 模块打开状态
   21. 模块独立滚动区
   22. 固定返回栏
   23. 页面标题与主角资料卡
   24. 通用数据模块
   25. 装备、货币与持有物
   26. 本部分响应式适配

   请直接拼接在第 2 / 4 部分之后。
   ========================================================= */


/* =========================================================
   18. 观测终端外壳
   ========================================================= */

.rili-markdown-renderer .ts-app-shell,
.markdown-body .ts-app-shell {
    position: relative !important;
    z-index: 4 !important;
    isolation: isolate !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 170px !important;
    max-width: 100% !important;

    margin: 20px 0 !important;
    padding: 15px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
    overflow-anchor: none !important;

    color: #eef3ff !important;
    background:
        radial-gradient(
            circle at 6% 0%,
            rgba(83, 155, 242, 0.16),
            transparent 33%
        ),
        radial-gradient(
            circle at 94% 100%,
            rgba(187, 86, 232, 0.12),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(17, 26, 50, 0.97),
            rgba(7, 13, 29, 0.99)
        ) !important;

    border: 1px solid rgba(141, 174, 235, 0.25) !important;
    border-radius: 17px !important;

    box-shadow:
        0 15px 36px rgba(2, 6, 19, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-app-shell::before,
.markdown-body .ts-app-shell::before {
    content: "" !important;

    position: absolute !important;
    left: -30% !important;
    top: -110px !important;
    z-index: -1 !important;

    display: block !important;

    width: 160% !important;
    height: 170px !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(74, 181, 255, 0.17),
            rgba(194, 94, 255, 0.16),
            rgba(66, 227, 215, 0.14),
            transparent
        ) !important;

    background-size: 220% 100% !important;
    background-position: 0% 50% !important;

    filter: blur(23px) !important;
    opacity: 0.72 !important;

    animation: ts-aurora-flow 10s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-app-shell::after,
.markdown-body .ts-app-shell::after {
    content: "" !important;

    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle at 15% 30%,
            rgba(105, 210, 255, 0.05) 0 1px,
            transparent 1.5px
        ),
        radial-gradient(
            circle at 80% 70%,
            rgba(222, 149, 255, 0.05) 0 1px,
            transparent 1.5px
        ) !important;

    background-size: 71px 71px, 113px 113px !important;
    opacity: 0.72 !important;

    animation: ts-space-drift 48s linear infinite !important;
}


/* 终端标题 */

.rili-markdown-renderer .ts-app-title,
.markdown-body .ts-app-title {
    position: relative !important;
    z-index: 2 !important;

    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 13px !important;
    padding: 0 2px 11px !important;

    box-sizing: border-box !important;

    color: #f6f8ff !important;
    background: transparent !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(145, 174, 229, 0.14) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-app-title-mark,
.markdown-body .ts-app-title-mark {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 31px !important;
    min-width: 31px !important;
    height: 31px !important;
    min-height: 31px !important;

    color: #dbe7ff !important;
    background:
        linear-gradient(
            135deg,
            rgba(92, 178, 246, 0.2),
            rgba(183, 95, 233, 0.18)
        ) !important;

    border: 1px solid rgba(159, 191, 244, 0.25) !important;
    border-radius: 8px !important;

    font-size: 15px !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 3.8s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-app-title > div,
.markdown-body .ts-app-title > div {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-app-title strong,
.markdown-body .ts-app-title strong {
    display: block !important;

    min-width: 0 !important;

    color: #f6f8ff !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 780 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.08em !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-title-glow 4.6s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-app-title small,
.markdown-body .ts-app-title small {
    display: block !important;

    color: #8194bb !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 8px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.13em !important;

    opacity: 1 !important;
}


/* 模块入口网格 */

.rili-markdown-renderer .ts-app-grid,
.markdown-body .ts-app-grid {
    position: relative !important;
    z-index: 2 !important;

    display: grid !important;
    grid-template-columns: repeat(5, minmax(90px, 1fr)) !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    opacity: 1 !important;
}


/* 确保未打开的 details 入口可见 */

.rili-markdown-renderer details.ts-app-page:not([open]),
.markdown-body details.ts-app-page:not([open]) {
    position: relative !important;

    display: block !important;

    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    color: #eef3ff !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;
}


/* =========================================================
   19. 模块入口按钮
   ========================================================= */

.rili-markdown-renderer details.ts-app-page:not([open]) > summary,
.markdown-body details.ts-app-page:not([open]) > summary {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 108px !important;

    margin: 0 !important;
    padding: 12px 8px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    cursor: pointer !important;
    user-select: none !important;
    list-style: none !important;

    color: #eef3ff !important;
    background:
        radial-gradient(
            circle at 50% -10%,
            rgba(115, 171, 255, 0.15),
            transparent 44%
        ),
        linear-gradient(
            145deg,
            rgba(44, 59, 94, 0.72),
            rgba(16, 25, 48, 0.88)
        ) !important;

    border: 1px solid rgba(141, 175, 232, 0.2) !important;
    border-radius: 12px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 6px 15px rgba(2, 6, 17, 0.19) !important;

    opacity: 1 !important;

    transition:
        transform 0.28s cubic-bezier(.2, .8, .2, 1),
        border-color 0.28s ease,
        box-shadow 0.28s ease,
        filter 0.28s ease !important;
}

.rili-markdown-renderer details.ts-app-page:not([open]) > summary::after,
.markdown-body details.ts-app-page:not([open]) > summary::after {
    content: "" !important;

    position: absolute !important;
    left: -52% !important;
    top: -20% !important;
    z-index: 3 !important;

    display: block !important;

    width: 32% !important;
    height: 140% !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.16),
            transparent
        ) !important;

    transform: skewX(-22deg) !important;
    opacity: 1 !important;

    animation: ts-shimmer 6.5s ease-in-out infinite !important;
}

.rili-markdown-renderer details.ts-app-page:nth-child(2) > summary::after,
.markdown-body details.ts-app-page:nth-child(2) > summary::after {
    animation-delay: 0.7s !important;
}

.rili-markdown-renderer details.ts-app-page:nth-child(3) > summary::after,
.markdown-body details.ts-app-page:nth-child(3) > summary::after {
    animation-delay: 1.4s !important;
}

.rili-markdown-renderer details.ts-app-page:nth-child(4) > summary::after,
.markdown-body details.ts-app-page:nth-child(4) > summary::after {
    animation-delay: 2.1s !important;
}

.rili-markdown-renderer details.ts-app-page:nth-child(5) > summary::after,
.markdown-body details.ts-app-page:nth-child(5) > summary::after {
    animation-delay: 2.8s !important;
}

.rili-markdown-renderer details.ts-app-page:not([open]) > summary:hover,
.markdown-body details.ts-app-page:not([open]) > summary:hover {
    transform: translateY(-5px) scale(1.025) !important;
    filter: brightness(1.12) !important;

    border-color: rgba(147, 220, 255, 0.48) !important;

    box-shadow:
        0 12px 25px rgba(2, 6, 19, 0.31),
        0 0 22px rgba(91, 183, 255, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}


/* 模块图标 */

.rili-markdown-renderer .ts-app-icon,
.markdown-body .ts-app-icon {
    position: relative !important;
    z-index: 2 !important;

    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;

    color: #eef4ff !important;
    background:
        conic-gradient(
            from 30deg,
            rgba(93, 177, 244, 0.2),
            rgba(183, 96, 237, 0.18),
            rgba(75, 226, 214, 0.16),
            rgba(93, 177, 244, 0.2)
        ) !important;

    border: 1px solid rgba(160, 193, 242, 0.24) !important;
    border-radius: 11px !important;

    box-shadow:
        inset 0 0 16px rgba(120, 159, 236, 0.08) !important;

    font-size: 20px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.6s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-app-name,
.markdown-body .ts-app-name {
    position: relative !important;
    z-index: 2 !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    color: #f1f5ff !important;
    background: transparent !important;

    font-size: 12px !important;
    font-weight: 760 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    text-align: center !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-app-subtitle,
.markdown-body .ts-app-subtitle {
    position: relative !important;
    z-index: 2 !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    color: #8295bc !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 7px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.1em !important;
    text-align: center !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 返回元素默认不显示，打开页面后单独显示 */

.rili-markdown-renderer .ts-page-back,
.markdown-body .ts-page-back {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}


/* =========================================================
   20. 模块打开状态
   依赖当前浏览器支持 :has()
   ========================================================= */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open]) {
    position: relative !important;
    z-index: 5 !important;

    display: block !important;

    width: 100% !important;
    height: clamp(440px, 72dvh, 760px) !important;
    min-width: 0 !important;
    min-height: 440px !important;
    max-width: 100% !important;
    max-height: 760px !important;

    margin: 20px 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
    overflow-anchor: none !important;
    overscroll-behavior: contain !important;

    background:
        radial-gradient(
            circle at 95% 0%,
            rgba(96, 126, 255, 0.17),
            transparent 38%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(196, 82, 242, 0.11),
            transparent 40%
        ),
        linear-gradient(
            145deg,
            rgba(14, 22, 43, 0.995),
            rgba(6, 11, 25, 0.998)
        ) !important;

    border: 1px solid rgba(153, 192, 247, 0.35) !important;
    border-radius: 17px !important;

    box-shadow:
        0 20px 48px rgba(1, 4, 15, 0.48),
        0 0 28px rgba(77, 144, 245, 0.09),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-title,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-title {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page:not([open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page:not([open]) {
    display: none !important;

    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:not(:has(details.ts-app-page[open])),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:not(:has(details.ts-app-page[open])) {
    display: none !important;

    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:has(details.ts-app-page[open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:has(details.ts-app-page[open]) {
    position: static !important;

    display: block !important;

    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;

    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 0 !important;

    opacity: 1 !important;
}


/* 兼容可能存在的包裹层 */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
:where(
    .ts-app-pages,
    .ts-app-list,
    .ts-page-list,
    .ts-page-wrapper,
    .ts-pages-wrapper
):has(details.ts-app-page[open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
:where(
    .ts-app-pages,
    .ts-app-list,
    .ts-page-list,
    .ts-page-wrapper,
    .ts-pages-wrapper
):has(details.ts-app-page[open]) {
    position: static !important;

    display: block !important;

    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
    opacity: 1 !important;
}


/* 当前打开页面 */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open],
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open] {
    position: absolute !important;
    inset: 0 !important;
    z-index: 10 !important;

    display: block !important;

    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
    overflow-anchor: none !important;

    color: #eef3ff !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: inherit !important;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    animation: ts-page-enter 0.42s ease-out both !important;
}


/* =========================================================
   21. 模块独立滚动区
   ========================================================= */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content {
    position: absolute !important;

    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 62px !important;
    z-index: 11 !important;

    display: block !important;

    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 16px 16px 30px !important;

    box-sizing: border-box !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    overscroll-behavior: contain !important;
    scroll-behavior: smooth !important;
    scrollbar-gutter: stable !important;
    overflow-anchor: none !important;

    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;

    color: #edf3ff !important;
    background: transparent !important;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    scrollbar-width: thin !important;
    scrollbar-color:
        rgba(137, 181, 241, 0.7)
        rgba(7, 13, 27, 0.5) !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
:where(
    .ts-page-wrapper,
    .ts-page-inner,
    .ts-page-body,
    .ts-content-wrapper
):has(> .ts-page-content),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
:where(
    .ts-page-wrapper,
    .ts-page-inner,
    .ts-page-body,
    .ts-content-wrapper
):has(> .ts-page-content) {
    display: contents !important;

    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::after,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::after {
    content: "" !important;

    display: block !important;

    width: 100% !important;
    height: 24px !important;
    min-height: 24px !important;

    clear: both !important;
    pointer-events: none !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar-track,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar-track {
    background: rgba(6, 12, 26, 0.55) !important;

    border-left: 1px solid rgba(129, 161, 218, 0.09) !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar-thumb,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            180deg,
            #69c7ff,
            #9f87ff,
            #e37dca
        ) !important;

    background-size: 100% 200% !important;

    border: 2px solid rgba(7, 13, 27, 0.72) !important;
    border-radius: 999px !important;

    animation: ts-gradient-line 4s linear infinite !important;
}


/* =========================================================
   22. 固定返回栏
   ========================================================= */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type {
    position: absolute !important;

    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 50 !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;

    width: 100% !important;
    height: 62px !important;
    min-height: 62px !important;

    margin: 0 !important;
    padding: 9px 16px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    cursor: pointer !important;
    user-select: none !important;
    list-style: none !important;

    color: #ffffff !important;

    background:
        linear-gradient(
            110deg,
            rgba(20, 39, 70, 0.998),
            rgba(28, 25, 64, 0.998),
            rgba(12, 39, 50, 0.998),
            rgba(20, 39, 70, 0.998)
        ) !important;

    background-size: 240% 100% !important;
    background-position: 0% 50% !important;

    border: 0 !important;
    border-top: 1px solid rgba(151, 193, 247, 0.3) !important;
    border-radius: 0 0 16px 16px !important;

    box-shadow:
        0 -13px 30px rgba(1, 4, 15, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    animation: ts-aurora-flow 8s ease-in-out infinite !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type::before,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type::before {
    content: "↩" !important;

    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 33px !important;
    min-width: 33px !important;
    height: 33px !important;
    min-height: 33px !important;

    color: #e3f4ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(91, 180, 246, 0.22),
            rgba(178, 101, 236, 0.2)
        ) !important;

    border: 1px solid rgba(150, 200, 247, 0.3) !important;
    border-radius: 8px !important;

    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    animation: ts-icon-pulse 2.8s ease-in-out infinite !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:hover,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:hover {
    filter: brightness(1.18) !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
:where(.ts-app-icon, .ts-app-name, .ts-app-subtitle),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
:where(.ts-app-icon, .ts-app-name, .ts-app-subtitle) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
.ts-page-back,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
.ts-page-back {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 0 !important;
    min-height: 32px !important;

    color: #ffffff !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.06em !important;
    white-space: nowrap !important;

    visibility: visible !important;
    opacity: 1 !important;

    animation: ts-title-glow 4s ease-in-out infinite !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
.ts-page-back::after,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type
.ts-page-back::after {
    content: " · 返回正文底部" !important;

    display: inline !important;

    margin-left: 5px !important;

    color: #9eb3d6 !important;
    background: transparent !important;

    font-size: 10px !important;
    font-weight: 650 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.02em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:not(:has(.ts-page-back))::after,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:not(:has(.ts-page-back))::after {
    content: "返回正文底部" !important;

    color: #ffffff !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.06em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:has(.ts-page-back)::after,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type:has(.ts-page-back)::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
}


.rili-markdown-renderer .ts-page-heading,
.markdown-body .ts-page-heading {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    align-items: center !important;
    gap: 12px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 14px !important;
    padding: 14px 15px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #f2f7ff !important;

    background:
        linear-gradient(
            120deg,
            rgba(49, 72, 119, 0.7),
            rgba(76, 46, 111, 0.42),
            rgba(26, 85, 95, 0.37)
        ) !important;

    border: 1px solid rgba(148, 185, 239, 0.21) !important;
    border-radius: 12px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.045) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-page-heading::after,
.markdown-body .ts-page-heading::after {
    content: "" !important;

    position: absolute !important;
    left: -45% !important;
    top: 0 !important;
    z-index: -1 !important;

    display: block !important;

    width: 30% !important;
    height: 100% !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.12),
            transparent
        ) !important;

    transform: skewX(-22deg) !important;
    opacity: 1 !important;

    animation: ts-shimmer 5.2s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-page-heading-icon,
.markdown-body .ts-page-heading-icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;

    color: #f2f7ff !important;

    background:
        conic-gradient(
            rgba(87, 183, 247, 0.23),
            rgba(184, 95, 238, 0.21),
            rgba(69, 223, 212, 0.2),
            rgba(87, 183, 247, 0.23)
        ) !important;

    border: 1px solid rgba(164, 199, 246, 0.28) !important;
    border-radius: 11px !important;

    font-size: 21px !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 3.8s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-page-heading > div,
.markdown-body .ts-page-heading > div {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-page-heading h2,
.markdown-body .ts-page-heading h2 {
    display: block !important;

    min-width: 0 !important;

    margin: 0 !important;

    color: #ffffff !important;
    background: transparent !important;

    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.07em !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-title-glow 4.4s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-page-heading p,
.markdown-body .ts-page-heading p {
    display: block !important;

    margin: 2px 0 0 !important;

    color: #9caccc !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 8px !important;
    line-height: 1.45 !important;
    letter-spacing: 0.14em !important;

    opacity: 1 !important;
}


.rili-markdown-renderer .ts-profile-card,
.markdown-body .ts-profile-card {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    align-items: center !important;
    gap: 14px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 12px !important;
    padding: 16px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #eef3ff !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(76, 209, 220, 0.12),
            transparent 40%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(188, 91, 232, 0.09),
            transparent 40%
        ),
        linear-gradient(
            145deg,
            rgba(27, 42, 71, 0.94),
            rgba(13, 22, 43, 0.97)
        ) !important;

    border: 1px solid rgba(141, 178, 235, 0.23) !important;
    border-radius: 13px !important;

    opacity: 1 !important;

    transition:
        transform 0.27s ease,
        border-color 0.27s ease,
        box-shadow 0.27s ease !important;
}

.rili-markdown-renderer .ts-profile-card::before,
.markdown-body .ts-profile-card::before {
    content: "" !important;

    position: absolute !important;
    right: -70px !important;
    top: -100px !important;
    z-index: -1 !important;

    width: 210px !important;
    height: 210px !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle,
            rgba(82, 206, 225, 0.1),
            rgba(170, 96, 231, 0.04) 44%,
            transparent 72%
        ) !important;

    border-radius: 50% !important;
    filter: blur(5px) !important;
    opacity: 0.8 !important;
}

.rili-markdown-renderer .ts-profile-card:hover,
.markdown-body .ts-profile-card:hover {
    transform: translateY(-2px) !important;

    border-color: rgba(117, 222, 241, 0.34) !important;

    box-shadow:
        0 10px 24px rgba(2, 6, 20, 0.25),
        0 0 20px rgba(77, 193, 225, 0.07) !important;
}

.rili-markdown-renderer .ts-profile-avatar,
.markdown-body .ts-profile-avatar {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 59px !important;
    min-width: 59px !important;
    height: 59px !important;
    min-height: 59px !important;

    color: #edf5ff !important;

    background:
        conic-gradient(
            from 0deg,
            rgba(76, 178, 239, 0.27),
            rgba(181, 97, 235, 0.23),
            rgba(64, 223, 209, 0.22),
            rgba(76, 178, 239, 0.27)
        ) !important;

    border: 1px solid rgba(157, 201, 242, 0.36) !important;
    border-radius: 16px !important;

    box-shadow:
        0 0 20px rgba(88, 169, 232, 0.1),
        inset 0 0 20px rgba(115, 164, 226, 0.1) !important;

    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.3s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-profile-main,
.markdown-body .ts-profile-main {
    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    color: #eef3ff !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-profile-kicker,
.markdown-body .ts-profile-kicker {
    display: block !important;

    color: #97abd0 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 8px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.14em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-profile-main h3,
.markdown-body .ts-profile-main h3 {
    min-width: 0 !important;

    margin: 3px 0 7px !important;

    color: #ffffff !important;
    background: transparent !important;

    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    animation: ts-title-glow 5s ease-in-out infinite !important;
}


.rili-markdown-renderer .ts-profile-tags,
.rili-markdown-renderer .ts-chip-list,
.markdown-body .ts-profile-tags,
.markdown-body .ts-chip-list {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;

    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #e0ebff !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-profile-tags span,
.rili-markdown-renderer .ts-chip-list span,
.markdown-body .ts-profile-tags span,
.markdown-body .ts-chip-list span {
    display: inline-flex !important;
    align-items: center !important;

    min-width: 0 !important;
    max-width: 100% !important;

    padding: 4px 8px !important;

    box-sizing: border-box !important;

    color: #e0ebff !important;
    background:
        linear-gradient(
            135deg,
            rgba(75, 150, 218, 0.15),
            rgba(155, 85, 210, 0.11)
        ) !important;

    border: 1px solid rgba(137, 177, 228, 0.2) !important;
    border-radius: 999px !important;

    font-size: 10px !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        filter 0.2s ease !important;
}

.rili-markdown-renderer .ts-profile-tags span:hover,
.rili-markdown-renderer .ts-chip-list span:hover,
.markdown-body .ts-profile-tags span:hover,
.markdown-body .ts-chip-list span:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.2) !important;

    border-color: rgba(125, 221, 243, 0.38) !important;
}


.rili-markdown-renderer .ts-module-grid,
.markdown-body .ts-module-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 11px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    color: #eaf0fc !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-data-module,
.markdown-body .ts-data-module {
    position: relative !important;
    isolation: isolate !important;

    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #eaf0fc !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(112, 98, 231, 0.08),
            transparent 36%
        ),
        linear-gradient(
            145deg,
            rgba(23, 35, 62, 0.93),
            rgba(10, 17, 34, 0.96)
        ) !important;

    border: 1px solid rgba(136, 167, 221, 0.19) !important;
    border-radius: 12px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;

    opacity: 1 !important;

    transition:
        transform 0.27s ease,
        border-color 0.27s ease,
        box-shadow 0.27s ease !important;
}

.rili-markdown-renderer .ts-data-module:hover,
.markdown-body .ts-data-module:hover {
    transform: translateY(-3px) !important;

    border-color: rgba(132, 211, 246, 0.31) !important;

    box-shadow:
        0 10px 24px rgba(1, 5, 17, 0.25),
        0 0 18px rgba(82, 176, 233, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.rili-markdown-renderer .ts-data-module.ts-wide,
.markdown-body .ts-data-module.ts-wide {
    grid-column: 1 / -1 !important;
}


/* 数据模块标题 */

.rili-markdown-renderer .ts-data-module > header,
.markdown-body .ts-data-module > header {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;

    margin: 0 !important;
    padding: 9px 12px !important;

    box-sizing: border-box !important;

    color: #f4f7ff !important;
    background:
        linear-gradient(
            90deg,
            rgba(76, 153, 226, 0.17),
            rgba(165, 86, 218, 0.08),
            transparent
        ) !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(139, 170, 224, 0.14) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-module-icon,
.markdown-body .ts-module-icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 29px !important;
    min-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;

    color: #dce9ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(91, 173, 237, 0.18),
            rgba(175, 97, 229, 0.15)
        ) !important;

    border: 1px solid rgba(151, 190, 237, 0.22) !important;
    border-radius: 7px !important;

    font-size: 13px !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.5s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-data-module > header > div,
.markdown-body .ts-data-module > header > div {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-data-module > header b,
.markdown-body .ts-data-module > header b {
    display: block !important;

    color: #f4f7ff !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 780 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.05em !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-data-module > header small,
.markdown-body .ts-data-module > header small {
    display: block !important;

    color: #91a1c0 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 7px !important;
    line-height: 1.45 !important;
    letter-spacing: 0.12em !important;

    opacity: 1 !important;
}


/* 数据列表 */

.rili-markdown-renderer .ts-data-list,
.markdown-body .ts-data-list {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 7px 12px 11px !important;

    box-sizing: border-box !important;

    color: #e9eef9 !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-data-list > div,
.markdown-body .ts-data-list > div {
    display: grid !important;
    grid-template-columns: minmax(76px, 0.25fr) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 8px 2px !important;

    box-sizing: border-box !important;

    color: #e9eef9 !important;
    background: transparent !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(137, 164, 215, 0.09) !important;

    opacity: 1 !important;

    transition:
        padding-left 0.2s ease,
        background 0.2s ease !important;
}

.rili-markdown-renderer .ts-data-list > div:hover,
.markdown-body .ts-data-list > div:hover {
    padding-left: 6px !important;

    background:
        linear-gradient(
            90deg,
            rgba(81, 161, 224, 0.045),
            transparent
        ) !important;
}

.rili-markdown-renderer .ts-data-list > div:last-child,
.markdown-body .ts-data-list > div:last-child {
    border-bottom: 0 !important;
}

.rili-markdown-renderer .ts-data-list span,
.markdown-body .ts-data-list span {
    display: block !important;

    min-width: 0 !important;

    color: #9eb1d2 !important;
    background: transparent !important;

    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-data-list b,
.markdown-body .ts-data-list b {
    display: block !important;

    min-width: 0 !important;

    color: #e9eef9 !important;
    background: transparent !important;

    font-size: 12px !important;
    font-weight: 520 !important;
    line-height: 1.68 !important;
    letter-spacing: 0 !important;
    white-space: pre-wrap !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* =========================================================
   25
   ========================================================= */

.rili-markdown-renderer .ts-equipment-grid,
.markdown-body .ts-equipment-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    color: #f8eace !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-equipment-grid > div,
.markdown-body .ts-equipment-grid > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;

    min-width: 0 !important;
    min-height: 0 !important;

    padding: 11px !important;

    box-sizing: border-box !important;

    color: #f8eace !important;

    background:
        linear-gradient(
            145deg,
            rgba(172, 117, 43, 0.08),
            rgba(117, 72, 151, 0.035)
        ) !important;

    border: 1px solid rgba(226, 175, 91, 0.16) !important;
    border-radius: 9px !important;

    opacity: 1 !important;

    transition:
        transform 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease !important;
}

.rili-markdown-renderer .ts-equipment-grid > div:hover,
.markdown-body .ts-equipment-grid > div:hover {
    transform: translateY(-3px) !important;

    border-color: rgba(255, 205, 116, 0.35) !important;

    box-shadow:
        0 7px 18px rgba(5, 4, 11, 0.22),
        0 0 14px rgba(244, 186, 85, 0.07) !important;
}

.rili-markdown-renderer .ts-slot-icon,
.markdown-body .ts-slot-icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 29px !important;
    min-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;

    margin-bottom: 8px !important;

    color: #ffe7b7 !important;

    background:
        linear-gradient(
            135deg,
            rgba(201, 143, 59, 0.19),
            rgba(170, 87, 175, 0.1)
        ) !important;

    border: 1px solid rgba(231, 184, 105, 0.25) !important;
    border-radius: 7px !important;

    font-size: 11px !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.8s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-equipment-grid small,
.markdown-body .ts-equipment-grid small {
    display: block !important;

    min-width: 0 !important;

    color: #ceb083 !important;
    background: transparent !important;

    font-size: 9px !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-equipment-grid b,
.markdown-body .ts-equipment-grid b {
    display: block !important;

    min-width: 0 !important;

    margin: 2px 0 4px !important;

    color: #f8eace !important;
    background: transparent !important;

    font-size: 12px !important;
    font-weight: 750 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-equipment-grid p,
.markdown-body .ts-equipment-grid p {
    display: block !important;

    min-width: 0 !important;

    margin: 0 !important;

    color: #beb4a4 !important;
    background: transparent !important;

    font-size: 10px !important;
    line-height: 1.6 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 货币网格 */

.rili-markdown-renderer .ts-currency-grid,
.markdown-body .ts-currency-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    color: #ffe6b4 !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-currency-grid > div,
.markdown-body .ts-currency-grid > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;

    min-width: 0 !important;
    padding: 11px !important;

    box-sizing: border-box !important;

    color: #ffe6b4 !important;

    background:
        linear-gradient(
            135deg,
            rgba(190, 128, 46, 0.1),
            rgba(120, 79, 174, 0.045)
        ) !important;

    border: 1px solid rgba(224, 174, 92, 0.18) !important;
    border-radius: 8px !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-currency-grid span,
.markdown-body .ts-currency-grid span {
    min-width: 0 !important;

    color: #d4bd95 !important;
    background: transparent !important;

    font-size: 11px !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-currency-grid b,
.markdown-body .ts-currency-grid b {
    min-width: 0 !important;

    color: #ffe6b4 !important;
    background: transparent !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;

    text-shadow:
        0 0 12px rgba(255, 196, 91, 0.15) !important;

    opacity: 1 !important;
}


/* 物品列表 */

.rili-markdown-renderer .ts-item-list,
.rili-markdown-renderer .ts-ability-list,
.markdown-body .ts-item-list,
.markdown-body .ts-ability-list {
    display: grid !important;
    gap: 8px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 11px !important;

    box-sizing: border-box !important;

    color: #eaf0fc !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-item-list > div,
.rili-markdown-renderer .ts-ability-list > div,
.markdown-body .ts-item-list > div,
.markdown-body .ts-ability-list > div {
    display: flex !important;
    align-items: flex-start !important;
    gap: 9px !important;

    min-width: 0 !important;

    padding: 9px !important;

    box-sizing: border-box !important;

    color: #eaf0fc !important;

    background:
        linear-gradient(
            110deg,
            rgba(71, 132, 205, 0.055),
            rgba(151, 80, 201, 0.025)
        ) !important;

    border: 1px solid rgba(139, 170, 221, 0.12) !important;
    border-radius: 8px !important;

    opacity: 1 !important;

    transition:
        transform 0.22s ease,
        background 0.22s ease,
        border-color 0.22s ease !important;
}

.rili-markdown-renderer .ts-item-list > div:hover,
.rili-markdown-renderer .ts-ability-list > div:hover,
.markdown-body .ts-item-list > div:hover,
.markdown-body .ts-ability-list > div:hover {
    transform: translateX(3px) !important;

    background:
        linear-gradient(
            110deg,
            rgba(71, 156, 224, 0.1),
            rgba(169, 81, 214, 0.05)
        ) !important;

    border-color: rgba(126, 208, 240, 0.24) !important;
}

.rili-markdown-renderer .ts-item-count,
.rili-markdown-renderer .ts-grade,
.markdown-body .ts-item-count,
.markdown-body .ts-grade {
    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    min-width: 42px !important;
    min-height: 24px !important;

    padding: 2px 6px !important;

    box-sizing: border-box !important;

    color: #d2e6ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(70, 148, 211, 0.2),
            rgba(162, 91, 219, 0.13)
        ) !important;

    border: 1px solid rgba(129, 178, 229, 0.23) !important;
    border-radius: 6px !important;

    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-item-list p,
.rili-markdown-renderer .ts-ability-list p,
.markdown-body .ts-item-list p,
.markdown-body .ts-ability-list p {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;

    margin: 0 !important;

    color: #edf3ff !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-item-list b,
.rili-markdown-renderer .ts-ability-list b,
.markdown-body .ts-item-list b,
.markdown-body .ts-ability-list b {
    display: block !important;

    min-width: 0 !important;

    color: #edf3ff !important;
    background: transparent !important;

    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-item-list em,
.rili-markdown-renderer .ts-ability-list em,
.markdown-body .ts-item-list em,
.markdown-body .ts-ability-list em {
    display: block !important;

    min-width: 0 !important;

    color: #adb9d0 !important;
    background: transparent !important;

    font-size: 11px !important;
    font-style: normal !important;
    line-height: 1.6 !important;
    overflow-wrap: anywhere !important;

    opacity: 1 !important;
}


/* 目标与普通文本卡 */

.rili-markdown-renderer .ts-objective,
.rili-markdown-renderer .ts-text-card,
.markdown-body .ts-objective,
.markdown-body .ts-text-card {
    min-width: 0 !important;

    margin: 0 !important;
    padding: 13px !important;

    box-sizing: border-box !important;

    color: #e7edf8 !important;

    background:
        linear-gradient(
            110deg,
            rgba(52, 173, 152, 0.075),
            rgba(65, 118, 197, 0.035)
        ) !important;

    border: 0 !important;

    font-size: 12px !important;
    line-height: 1.75 !important;
    overflow-wrap: anywhere !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-objective > span,
.markdown-body .ts-objective > span {
    display: inline-flex !important;

    margin: 0 0 7px !important;
    padding: 3px 7px !important;

    color: #a9f5df !important;
    background: rgba(48, 176, 146, 0.14) !important;

    border: 1px solid rgba(83, 215, 183, 0.22) !important;
    border-radius: 5px !important;

    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.11em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-objective p,
.rili-markdown-renderer .ts-text-card p,
.markdown-body .ts-objective p,
.markdown-body .ts-text-card p {
    margin: 0 !important;

    color: inherit !important;
    background: transparent !important;

    font-size: inherit !important;
    line-height: inherit !important;

    opacity: 1 !important;
}


/* =========================================================
   26. 
   ========================================================= */

@media (max-width: 760px) {
    .rili-markdown-renderer .ts-app-grid,
    .markdown-body .ts-app-grid {
        grid-template-columns: repeat(3, minmax(82px, 1fr)) !important;
        gap: 8px !important;
    }

    .rili-markdown-renderer .ts-equipment-grid,
    .markdown-body .ts-equipment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .rili-markdown-renderer .ts-currency-grid,
    .markdown-body .ts-currency-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    .rili-markdown-renderer .ts-app-shell,
    .markdown-body .ts-app-shell {
        margin: 16px 0 !important;
        padding: 11px !important;

        border-radius: 14px !important;
    }

    .rili-markdown-renderer .ts-app-grid,
    .markdown-body .ts-app-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .rili-markdown-renderer details.ts-app-page:not([open]) > summary,
    .markdown-body details.ts-app-page:not([open]) > summary {
        min-height: 96px !important;
        padding: 10px 7px !important;
    }

    .rili-markdown-renderer .ts-app-icon,
    .markdown-body .ts-app-icon {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;

        font-size: 18px !important;
    }

    .rili-markdown-renderer .ts-app-name,
    .markdown-body .ts-app-name {
        font-size: 11px !important;
    }

    .rili-markdown-renderer .ts-app-subtitle,
    .markdown-body .ts-app-subtitle {
        font-size: 6.5px !important;
        letter-spacing: 0.06em !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open]),
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open]) {
        height: min(68dvh, 610px) !important;
        min-height: 390px !important;
        max-height: 610px !important;

        margin: 16px 0 !important;
        padding: 0 !important;

        border-radius: 14px !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content {
        bottom: 58px !important;

        padding: 11px 10px 26px !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type {
        height: 58px !important;
        min-height: 58px !important;

        padding: 8px 12px !important;

        border-radius: 0 0 13px 13px !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type
    .ts-page-back::after,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type
    .ts-page-back::after {
        content: " · 返回正文" !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type:not(:has(.ts-page-back))::after,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type:not(:has(.ts-page-back))::after {
        content: "返回正文" !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content::-webkit-scrollbar,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content::-webkit-scrollbar {
        width: 6px !important;
    }

    .rili-markdown-renderer .ts-module-grid,
    .markdown-body .ts-module-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rili-markdown-renderer .ts-data-module.ts-wide,
    .markdown-body .ts-data-module.ts-wide {
        grid-column: auto !important;
    }

    .rili-markdown-renderer .ts-profile-card,
    .markdown-body .ts-profile-card {
        align-items: flex-start !important;
        padding: 13px !important;
    }

    .rili-markdown-renderer .ts-profile-avatar,
    .markdown-body .ts-profile-avatar {
        width: 49px !important;
        min-width: 49px !important;
        height: 49px !important;
        min-height: 49px !important;

        border-radius: 13px !important;

        font-size: 18px !important;
    }

    .rili-markdown-renderer .ts-profile-main h3,
    .markdown-body .ts-profile-main h3 {
        font-size: 18px !important;
    }

    .rili-markdown-renderer .ts-page-heading,
    .markdown-body .ts-page-heading {
        padding: 12px !important;
    }

    .rili-markdown-renderer .ts-page-heading-icon,
    .markdown-body .ts-page-heading-icon {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;

        font-size: 18px !important;
    }

    .rili-markdown-renderer .ts-page-heading h2,
    .markdown-body .ts-page-heading h2 {
        font-size: 15px !important;
    }

    .rili-markdown-renderer .ts-data-list > div,
    .markdown-body .ts-data-list > div {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 3px !important;
    }

    .rili-markdown-renderer .ts-data-list b,
    .markdown-body .ts-data-list b {
        padding-left: 13px !important;
    }

    .rili-markdown-renderer .ts-equipment-grid,
    .markdown-body .ts-equipment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;

        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-equipment-grid > div,
    .markdown-body .ts-equipment-grid > div {
        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-currency-grid,
    .markdown-body .ts-currency-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 7px !important;

        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-currency-grid > div,
    .markdown-body .ts-currency-grid > div {
        padding: 9px !important;
    }
}

@media (max-width: 360px) {
    .rili-markdown-renderer .ts-app-shell,
    .markdown-body .ts-app-shell {
        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-app-grid,
    .markdown-body .ts-app-grid {
        gap: 6px !important;
    }

    .rili-markdown-renderer details.ts-app-page:not([open]) > summary,
    .markdown-body details.ts-app-page:not([open]) > summary {
        min-height: 89px !important;
        padding: 8px 5px !important;
    }

    .rili-markdown-renderer .ts-app-icon,
    .markdown-body .ts-app-icon {
        width: 34px !important;
        min-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;

        font-size: 16px !important;
    }

    .rili-markdown-renderer .ts-app-name,
    .markdown-body .ts-app-name {
        font-size: 10px !important;
    }

    .rili-markdown-renderer .ts-app-subtitle,
    .markdown-body .ts-app-subtitle {
        display: none !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open]),
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open]) {
        min-height: 370px !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content {
        padding-right: 8px !important;
        padding-left: 8px !important;
    }

    .rili-markdown-renderer .ts-equipment-grid,
    .markdown-body .ts-equipment-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* =========================================================
   27. 主要 NPC 记录
   ========================================================= */

.rili-markdown-renderer .ts-npc-record,
.markdown-body .ts-npc-record {
    position: relative !important;
    isolation: isolate !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 0 15px !important;
    padding: 12px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #f1eaf4 !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(235, 81, 182, 0.1),
            transparent 36%
        ),
        linear-gradient(
            145deg,
            rgba(81, 31, 71, 0.15),
            rgba(21, 23, 43, 0.45)
        ) !important;

    border: 1px solid rgba(220, 120, 184, 0.17) !important;
    border-radius: 14px !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-npc-record:last-child,
.markdown-body .ts-npc-record:last-child {
    margin-bottom: 0 !important;
}


/* NPC 卡片中的资料卡需要为立绘释放完整宽度 */

.rili-markdown-renderer .ts-npc-record > .ts-profile-card,
.markdown-body .ts-npc-record > .ts-profile-card {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    padding: 12px !important;
}

.rili-markdown-renderer
.ts-npc-record
> .ts-profile-card
> .ts-profile-main,
.markdown-body
.ts-npc-record
> .ts-profile-card
> .ts-profile-main {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
}


/* NPC 内心独白 */

.rili-markdown-renderer .ts-inner-voice,
.markdown-body .ts-inner-voice {
    display: block !important;

    min-width: 0 !important;

    margin: 0 11px 11px !important;
    padding: 10px 11px !important;

    box-sizing: border-box !important;

    color: #f0e1eb !important;

    background:
        linear-gradient(
            90deg,
            rgba(193, 73, 153, 0.11),
            rgba(118, 74, 183, 0.045)
        ) !important;

    border: 0 !important;
    border-left: 2px solid rgba(236, 116, 185, 0.48) !important;
    border-radius: 2px 7px 7px 2px !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-inner-voice span,
.markdown-body .ts-inner-voice span {
    display: block !important;

    color: #efa8d2 !important;
    background: transparent !important;

    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.08em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-inner-voice p,
.markdown-body .ts-inner-voice p {
    display: block !important;

    min-width: 0 !important;

    margin: 4px 0 0 !important;

    color: #f0e1eb !important;
    background: transparent !important;

    font-size: 12px !important;
    line-height: 1.68 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* =========================================================

   ========================================================= */


/* ---------------------------------------------------------
   28.1 立绘变量与整体布局
   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name[data-npc],
.markdown-body h3.npc-name[data-npc] {
    --npc-portrait: none;
    --npc-placeholder: "该NPC暂无立绘";
    --npc-accent: #78d9ff;
    --npc-name-bg-start: rgba(28, 95, 145, 0.68);
    --npc-name-bg-middle: rgba(70, 42, 116, 0.5);

    position: relative !important;
    isolation: isolate !important;

    display: grid !important;
    grid-template-columns:
        clamp(120px, 28%, 210px)
        minmax(0, 1fr) !important;
    grid-template-areas: "portrait name" !important;
    align-items: end !important;
    gap: clamp(14px, 2.5vw, 26px) !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: clamp(180px, 30vw, 280px) !important;
    max-width: 100% !important;

    margin: 16px 0 18px !important;
    padding: 18px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: transparent !important;

    background:
        radial-gradient(
            circle at 12% 20%,
            rgba(72, 161, 255, 0.19),
            transparent 35%
        ),
        radial-gradient(
            circle at 88% 76%,
            rgba(195, 92, 255, 0.16),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(18, 28, 50, 0.97),
            rgba(31, 22, 54, 0.96)
        ) !important;

    border: 1px solid rgba(155, 195, 255, 0.34) !important;
    border-top-color: rgba(124, 203, 255, 0.62) !important;
    border-radius: 17px !important;

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    font-size: 0 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    animation: none !important;

    transition:
        transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease !important;
}


/* 顶部光谱装饰线 */

.rili-markdown-renderer h3.npc-name[data-npc] {
    background-image:
        linear-gradient(
            90deg,
            transparent,
            rgba(104, 219, 255, 0.7),
            rgba(194, 126, 255, 0.65),
            rgba(255, 127, 193, 0.48),
            transparent
        ),
        radial-gradient(
            circle at 12% 20%,
            rgba(72, 161, 255, 0.19),
            transparent 35%
        ),
        radial-gradient(
            circle at 88% 76%,
            rgba(195, 92, 255, 0.16),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(18, 28, 50, 0.97),
            rgba(31, 22, 54, 0.96)
        ) !important;

    background-size:
        100% 2px,
        100% 100%,
        100% 100%,
        100% 100% !important;

    background-position:
        center top,
        center,
        center,
        center !important;

    background-repeat: no-repeat !important;
}

.markdown-body h3.npc-name[data-npc] {
    background-image:
        linear-gradient(
            90deg,
            transparent,
            rgba(104, 219, 255, 0.7),
            rgba(194, 126, 255, 0.65),
            rgba(255, 127, 193, 0.48),
            transparent
        ),
        radial-gradient(
            circle at 12% 20%,
            rgba(72, 161, 255, 0.19),
            transparent 35%
        ),
        radial-gradient(
            circle at 88% 76%,
            rgba(195, 92, 255, 0.16),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(18, 28, 50, 0.97),
            rgba(31, 22, 54, 0.96)
        ) !important;

    background-size:
        100% 2px,
        100% 100%,
        100% 100%,
        100% 100% !important;

    background-position:
        center top,
        center,
        center,
        center !important;

    background-repeat: no-repeat !important;
}


/* ---------------------------------------------------------

   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name[data-npc]::before,
.markdown-body h3.npc-name[data-npc]::before {
    content: var(--npc-placeholder) !important;

    position: relative !important;
    z-index: 2 !important;

    grid-area: portrait !important;
    align-self: center !important;
    justify-self: center !important;

    display: grid !important;
    place-items: center !important;

    width: 100% !important;
    max-width: 190px !important;
    aspect-ratio: 3 / 4 !important;

    padding: 14px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: rgba(230, 238, 255, 0.82) !important;

    background-color: rgba(8, 14, 29, 0.82) !important;
    background-image:
        var(--npc-portrait),
        linear-gradient(
            145deg,
            rgba(53, 89, 139, 0.28),
            rgba(84, 46, 113, 0.25)
        ) !important;

    background-repeat:
        no-repeat,
        no-repeat !important;

    background-position:
        center top,
        center !important;

    background-size:
        cover,
        cover !important;

    border: 1px solid rgba(158, 195, 255, 0.38) !important;
    border-radius: 13px !important;

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.34),
        inset 0 0 24px rgba(100, 160, 255, 0.07) !important;

    font-family:
        "Microsoft YaHei",
        "PingFang SC",
        system-ui,
        sans-serif !important;

    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.65 !important;
    letter-spacing: 0.05em !important;
    text-align: center !important;

    text-shadow:
        0 2px 5px rgba(0, 0, 0, 0.8) !important;

    opacity: 1 !important;

    transition:
        transform 220ms ease,
        filter 220ms ease,
        box-shadow 220ms ease !important;
}


/* ---------------------------------------------------------

   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name[data-npc]::after,
.markdown-body h3.npc-name[data-npc]::after {
    content: attr(data-npc) !important;

    position: relative !important;
    z-index: 3 !important;

    grid-area: name !important;
    align-self: end !important;

    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    padding: 14px 17px !important;

    box-sizing: border-box !important;

    color: #f7fbff !important;

    background:
        linear-gradient(
            90deg,
            var(--npc-name-bg-start),
            var(--npc-name-bg-middle),
            rgba(20, 28, 52, 0.18)
        ) !important;

    border: 0 !important;
    border-left: 4px solid var(--npc-accent) !important;
    border-radius: 6px 13px 13px 6px !important;

    box-shadow:
        0 8px 22px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    font-family:
        "Microsoft YaHei",
        "PingFang SC",
        system-ui,
        sans-serif !important;

    font-size: clamp(22px, 3.5vw, 34px) !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.08em !important;

    overflow-wrap: anywhere !important;

    text-shadow:
        0 2px 5px rgba(0, 0, 0, 0.9),
        0 0 14px rgba(97, 196, 255, 0.4) !important;

    opacity: 1 !important;

    animation: ts-title-glow 5s ease-in-out infinite !important;
}


/* ---------------------------------------------------------
   28.4 已配置立绘的精确名单
   仅名单内角色关闭占位文字
   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name:is(
    [data-npc="阿伊莎"],
    [data-npc="塔莉雅"],
    [data-npc="温雅"],
    [data-npc="娜米娅"],
    [data-npc="西尔瓦娜"],
    [data-npc="奈莎"],
    [data-npc="伊芙"],
    [data-npc="露西恩"],
    [data-npc="奈法利娅"],
    [data-npc="艾薇拉娜"],
    [data-npc="塔格利安"],
    [data-npc="伊格纳雅"],
    [data-npc="凯瑞克娜"],
    [data-npc="奥尔瑟雅"]
),
.markdown-body h3.npc-name:is(
    [data-npc="阿伊莎"],
    [data-npc="塔莉雅"],
    [data-npc="温雅"],
    [data-npc="娜米娅"],
    [data-npc="西尔瓦娜"],
    [data-npc="奈莎"],
    [data-npc="伊芙"],
    [data-npc="露西恩"],
    [data-npc="奈法利娅"],
    [data-npc="艾薇拉娜"],
    [data-npc="塔格利安"],
    [data-npc="伊格纳雅"],
    [data-npc="凯瑞克娜"],
    [data-npc="奥尔瑟雅"]
) {
    --npc-placeholder: "" !important;
}


/* ---------------------------------------------------------
   28.5 NPC 与立绘链接精确映射
   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name[data-npc="阿伊莎"],
.markdown-body h3.npc-name[data-npc="阿伊莎"] {
    --npc-portrait:
        url("https://miha.wiki/DvNT1Z/0-8c242369-4266-4707-a955-be88a306cb2d.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="塔莉雅"],
.markdown-body h3.npc-name[data-npc="塔莉雅"] {
    --npc-portrait:
        url("https://miha.wiki/XjCE9l/0-73671249-0702-4e8a-9197-0c3d2000d0cc.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="温雅"],
.markdown-body h3.npc-name[data-npc="温雅"] {
    --npc-portrait:
        url("https://miha.wiki/NxFN65/0-ad478fb9-f4db-409b-835b-0b3d392ccca5.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="娜米娅"],
.markdown-body h3.npc-name[data-npc="娜米娅"] {
    --npc-portrait:
        url("https://miha.wiki/1zQR2d/0-94b1d577-c809-40ff-8f07-4b5c2a981094.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="西尔瓦娜"],
.markdown-body h3.npc-name[data-npc="西尔瓦娜"] {
    --npc-portrait:
        url("https://miha.wiki/r8e1af/0-5b4f423b-00be-4610-ab36-ca09de5bd9e2(1).png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="奈莎"],
.markdown-body h3.npc-name[data-npc="奈莎"] {
    --npc-portrait:
        url("https://miha.wiki/3iogSe/0-db7ffb27-f940-4e8a-a5a9-72faa60dc013.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="伊芙"],
.markdown-body h3.npc-name[data-npc="伊芙"] {
    --npc-portrait:
        url("https://miha.wiki/MzrNsv/0-60a6b8ce-edda-47c1-9fb6-7ffd61ac4419.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="露西恩"],
.markdown-body h3.npc-name[data-npc="露西恩"] {
    --npc-portrait:
        url("https://miha.wiki/mgR2vY/0-8da3592c-692c-4fd6-b871-50aef1020fe1.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="奈法利娅"],
.markdown-body h3.npc-name[data-npc="奈法利娅"] {
    --npc-portrait:
        url("https://miha.wiki/Dj56Pq/0-95615b59-9b12-4834-9ae0-1f246f963a51.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="艾薇拉娜"],
.markdown-body h3.npc-name[data-npc="艾薇拉娜"] {
    --npc-portrait:
        url("https://miha.wiki/LETAnG/0-bfed630b-bd15-47ec-b771-037cf8e2e602.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="塔格利安"],
.markdown-body h3.npc-name[data-npc="塔格利安"] {
    --npc-portrait:
        url("https://miha.wiki/AoDiy6/0-153b56c0-7e7b-4516-bf03-a08b2848d762.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="伊格纳雅"],
.markdown-body h3.npc-name[data-npc="伊格纳雅"] {
    --npc-portrait:
        url("https://miha.wiki/j0OQM6/0-73cfd5e8-dfb4-4222-957c-7f3e5cda581f.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="凯瑞克娜"],
.markdown-body h3.npc-name[data-npc="凯瑞克娜"] {
    --npc-portrait:
        url("https://miha.wiki/hvDGEL/0-06417c0d-55fb-46dc-bacf-1ece7d8b375c.png") !important;
}

.rili-markdown-renderer h3.npc-name[data-npc="奥尔瑟雅"],
.markdown-body h3.npc-name[data-npc="奥尔瑟雅"] {
    --npc-portrait:
        url("https://miha.wiki/tUiL2L/IMG_20260725_095936.png") !important;
}


/* ---------------------------------------------------------
   28.6 NPC 个性化强调色
   --------------------------------------------------------- */

.rili-markdown-renderer h3.npc-name:is(
    [data-npc="阿伊莎"],
    [data-npc="塔莉雅"],
    [data-npc="温雅"],
    [data-npc="娜米娅"]
),
.markdown-body h3.npc-name:is(
    [data-npc="阿伊莎"],
    [data-npc="塔莉雅"],
    [data-npc="温雅"],
    [data-npc="娜米娅"]
) {
    --npc-accent: #63ddff !important;
    --npc-name-bg-start: rgba(25, 118, 165, 0.7) !important;
    --npc-name-bg-middle: rgba(36, 75, 133, 0.42) !important;
}

.rili-markdown-renderer h3.npc-name:is(
    [data-npc="西尔瓦娜"],
    [data-npc="奈莎"],
    [data-npc="奈法利娅"],
    [data-npc="凯瑞克娜"]
),
.markdown-body h3.npc-name:is(
    [data-npc="西尔瓦娜"],
    [data-npc="奈莎"],
    [data-npc="奈法利娅"],
    [data-npc="凯瑞克娜"]
) {
    --npc-accent: #ca82ff !important;
    --npc-name-bg-start: rgba(105, 48, 148, 0.72) !important;
    --npc-name-bg-middle: rgba(71, 43, 119, 0.46) !important;
}

.rili-markdown-renderer h3.npc-name:is(
    [data-npc="伊芙"],
    [data-npc="露西恩"],
    [data-npc="艾薇拉娜"]
),
.markdown-body h3.npc-name:is(
    [data-npc="伊芙"],
    [data-npc="露西恩"],
    [data-npc="艾薇拉娜"]
) {
    --npc-accent: #ff82be !important;
    --npc-name-bg-start: rgba(148, 47, 104, 0.69) !important;
    --npc-name-bg-middle: rgba(94, 43, 105, 0.43) !important;
}

.rili-markdown-renderer h3.npc-name:is(
    [data-npc="塔格利安"],
    [data-npc="伊格纳雅"],
    [data-npc="奥尔瑟雅"]
),
.markdown-body h3.npc-name:is(
    [data-npc="塔格利安"],
    [data-npc="伊格纳雅"],
    [data-npc="奥尔瑟雅"]
) {
    --npc-accent: #ffd46b !important;
    --npc-name-bg-start: rgba(139, 91, 27, 0.72) !important;
    --npc-name-bg-middle: rgba(101, 58, 75, 0.43) !important;
}


/* 立绘悬停反馈 */

@media (hover: hover) {
    .rili-markdown-renderer h3.npc-name[data-npc]:hover,
    .markdown-body h3.npc-name[data-npc]:hover {
        transform: translateY(-2px) !important;

        border-color: rgba(135, 210, 255, 0.62) !important;

        box-shadow:
            0 18px 42px rgba(0, 0, 0, 0.38),
            0 0 26px rgba(87, 150, 255, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]:hover::before,
    .markdown-body h3.npc-name[data-npc]:hover::before {
        transform: translateY(-3px) scale(1.015) !important;
        filter: saturate(1.08) brightness(1.04) !important;

        box-shadow:
            0 15px 32px rgba(0, 0, 0, 0.42),
            0 0 24px rgba(110, 177, 255, 0.16) !important;
    }
}


/* =========================================================
   ========================================================= */

.rili-markdown-renderer .ts-contact-grid,
.markdown-body .ts-contact-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 11px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    color: #e7fcf5 !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-contact-card,
.markdown-body .ts-contact-card {
    position: relative !important;
    isolation: isolate !important;

    display: block !important;

    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #e7fcf5 !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(57, 222, 177, 0.1),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(17, 55, 53, 0.72),
            rgba(10, 21, 37, 0.95)
        ) !important;

    border: 1px solid rgba(75, 205, 168, 0.21) !important;
    border-radius: 12px !important;

    opacity: 1 !important;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease !important;
}

.rili-markdown-renderer .ts-contact-card:hover,
.markdown-body .ts-contact-card:hover {
    transform: translateY(-3px) !important;

    border-color: rgba(102, 238, 198, 0.38) !important;

    box-shadow:
        0 9px 21px rgba(2, 9, 16, 0.26),
        0 0 17px rgba(71, 218, 177, 0.07) !important;
}

.rili-markdown-renderer .ts-contact-head,
.markdown-body .ts-contact-head {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    color: #e7fcf5 !important;

    background:
        linear-gradient(
            90deg,
            rgba(52, 185, 151, 0.11),
            rgba(64, 121, 190, 0.035)
        ) !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(74, 197, 165, 0.14) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-contact-avatar,
.markdown-body .ts-contact-avatar {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 39px !important;
    min-width: 39px !important;
    height: 39px !important;
    min-height: 39px !important;

    color: #d1faef !important;

    background:
        linear-gradient(
            135deg,
            rgba(48, 180, 146, 0.2),
            rgba(66, 137, 204, 0.12)
        ) !important;

    border: 1px solid rgba(95, 223, 187, 0.26) !important;
    border-radius: 10px !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4.4s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-contact-head > div,
.markdown-body .ts-contact-head > div {
    display: block !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-contact-head h3,
.markdown-body .ts-contact-head h3 {
    min-width: 0 !important;

    margin: 0 !important;

    color: #e7fcf5 !important;
    background: transparent !important;

    font-size: 14px !important;
    font-weight: 760 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-contact-head p,
.markdown-body .ts-contact-head p {
    min-width: 0 !important;

    margin: 1px 0 0 !important;

    color: #9bcfc1 !important;
    background: transparent !important;

    font-size: 10px !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 空状态模块 */

.rili-markdown-renderer .ts-empty-module,
.markdown-body .ts-empty-module {
    grid-column: 1 / -1 !important;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 16px !important;

    box-sizing: border-box !important;

    color: #bfc9dd !important;
    background: rgba(255, 255, 255, 0.022) !important;

    border: 1px dashed rgba(146, 175, 222, 0.23) !important;
    border-radius: 10px !important;

    font-size: 11px !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;
    text-align: center !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* =========================================================
   ========================================================= */

.rili-markdown-renderer .ts-memory-stats,
.markdown-body .ts-memory-stats {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 12px !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    color: #f4efff !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-stats > div,
.markdown-body .ts-memory-stats > div {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    gap: 2px 10px !important;

    min-width: 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    color: #f4efff !important;

    background:
        linear-gradient(
            145deg,
            rgba(106, 75, 190, 0.23),
            rgba(33, 47, 79, 0.76)
        ) !important;

    border: 1px solid rgba(164, 139, 235, 0.22) !important;
    border-radius: 10px !important;

    opacity: 1 !important;

    transition:
        transform 0.23s ease,
        border-color 0.23s ease !important;
}

.rili-markdown-renderer .ts-memory-stats > div:hover,
.markdown-body .ts-memory-stats > div:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(198, 162, 255, 0.4) !important;
}

.rili-markdown-renderer .ts-memory-stats span,
.markdown-body .ts-memory-stats span {
    grid-row: 1 / 3 !important;
    align-self: center !important;

    color: #cdbdff !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-stats b,
.markdown-body .ts-memory-stats b {
    min-width: 0 !important;

    color: #f4efff !important;
    background: transparent !important;

    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;

    overflow-wrap: anywhere !important;

    text-shadow:
        0 0 12px rgba(178, 126, 255, 0.2) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-stats small,
.markdown-body .ts-memory-stats small {
    color: #aaa5c3 !important;
    background: transparent !important;

    font-size: 9px !important;
    line-height: 1.4 !important;

    opacity: 1 !important;
}


/* 记忆分区 */

.rili-markdown-renderer .ts-memory-section,
.markdown-body .ts-memory-section {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 11px 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    color: #e9ecf7 !important;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(130, 81, 219, 0.09),
            transparent 38%
        ),
        rgba(8, 14, 29, 0.9) !important;

    border: 1px solid rgba(149, 142, 222, 0.2) !important;
    border-radius: 12px !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-section > header,
.markdown-body .ts-memory-section > header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 12px 14px !important;

    box-sizing: border-box !important;

    color: #f2edff !important;

    background:
        linear-gradient(
            90deg,
            rgba(127, 92, 210, 0.17),
            rgba(61, 151, 197, 0.05),
            transparent
        ) !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(151, 142, 214, 0.15) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-symbol,
.markdown-body .ts-memory-symbol {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;

    color: #e4d9ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(133, 91, 210, 0.2),
            rgba(65, 174, 208, 0.12)
        ) !important;

    border: 1px solid rgba(175, 150, 232, 0.25) !important;
    border-radius: 8px !important;

    font-size: 14px !important;
    line-height: 1 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-memory-section > header > div,
.markdown-body .ts-memory-section > header > div {
    display: block !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-memory-section h3,
.markdown-body .ts-memory-section h3 {
    min-width: 0 !important;

    margin: 0 !important;

    color: #f2edff !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 760 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-memory-section header p,
.markdown-body .ts-memory-section header p {
    min-width: 0 !important;

    margin: 2px 0 0 !important;

    color: #aea8c9 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 8px !important;
    line-height: 1.45 !important;
    letter-spacing: 0.08em !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* 记忆表格横向滚动容器 */

.rili-markdown-renderer .ts-table-wrap,
.markdown-body .ts-table-wrap {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 11px !important;

    box-sizing: border-box !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important;

    color: #e9ecf7 !important;
    background: transparent !important;

    scrollbar-width: thin !important;
    scrollbar-color:
        rgba(156, 137, 229, 0.6)
        rgba(8, 14, 28, 0.5) !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-table-wrap::-webkit-scrollbar,
.markdown-body .ts-table-wrap::-webkit-scrollbar {
    height: 9px !important;
}

.rili-markdown-renderer .ts-table-wrap::-webkit-scrollbar-track,
.markdown-body .ts-table-wrap::-webkit-scrollbar-track {
    background: rgba(8, 14, 28, 0.5) !important;
    border-radius: 999px !important;
}

.rili-markdown-renderer .ts-table-wrap::-webkit-scrollbar-thumb,
.markdown-body .ts-table-wrap::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            90deg,
            #748fe3,
            #9d7ddd,
            #69cdd4
        ) !important;

    border: 2px solid rgba(8, 14, 28, 0.6) !important;
    border-radius: 999px !important;
}


/* 专用表格覆盖普通 Markdown 表格 */

.rili-markdown-renderer .ts-table-wrap table,
.markdown-body .ts-table-wrap table {
    width: 100% !important;
    min-width: 720px !important;
    max-width: none !important;

    margin: 0 !important;

    color: #e9ecf7 !important;
    background: rgba(11, 18, 34, 0.9) !important;

    border: 1px solid rgba(137, 155, 209, 0.2) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 9px !important;

    font-size: 11px !important;
    line-height: 1.6 !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-table-wrap thead th,
.markdown-body .ts-table-wrap thead th {
    padding: 10px !important;

    color: #e4e9ff !important;

    background:
        linear-gradient(
            135deg,
            rgba(103, 111, 194, 0.22),
            rgba(119, 74, 171, 0.15)
        ) !important;

    border: 0 !important;
    border-right: 1px solid rgba(136, 151, 204, 0.16) !important;
    border-bottom: 1px solid rgba(136, 151, 204, 0.21) !important;

    font-size: 11px !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    vertical-align: middle !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-table-wrap tbody td,
.markdown-body .ts-table-wrap tbody td {
    min-width: 0 !important;
    padding: 10px !important;

    color: #dfe4f1 !important;
    background: rgba(255, 255, 255, 0.013) !important;

    border: 0 !important;
    border-right: 1px solid rgba(132, 146, 197, 0.1) !important;
    border-bottom: 1px solid rgba(132, 146, 197, 0.1) !important;

    font-size: 11px !important;
    line-height: 1.62 !important;
    letter-spacing: 0 !important;
    vertical-align: top !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;

    transition: background 0.2s ease !important;
}

.rili-markdown-renderer .ts-table-wrap tbody tr:hover td,
.markdown-body .ts-table-wrap tbody tr:hover td {
    background: rgba(115, 104, 196, 0.085) !important;
}

.rili-markdown-renderer .ts-table-wrap th:last-child,
.rili-markdown-renderer .ts-table-wrap td:last-child,
.markdown-body .ts-table-wrap th:last-child,
.markdown-body .ts-table-wrap td:last-child {
    border-right: 0 !important;
}

.rili-markdown-renderer .ts-table-wrap tbody tr:last-child td,
.markdown-body .ts-table-wrap tbody tr:last-child td {
    border-bottom: 0 !important;
}


/* 三类记忆的独立强调色 */

.rili-markdown-renderer .ts-memory-section.ts-ultm,
.markdown-body .ts-memory-section.ts-ultm {
    border-color: rgba(188, 139, 255, 0.25) !important;
}

.rili-markdown-renderer .ts-memory-section.ts-ltm,
.markdown-body .ts-memory-section.ts-ltm {
    border-color: rgba(105, 180, 246, 0.23) !important;
}

.rili-markdown-renderer .ts-memory-section.ts-stm,
.markdown-body .ts-memory-section.ts-stm {
    border-color: rgba(83, 213, 201, 0.22) !important;
}


/* =========================================================
   ========================================================= */

.rili-markdown-renderer details.ts-choices,
.markdown-body details.ts-choices {
    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(55, 220, 218, 0.12),
            transparent 36%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(164, 92, 230, 0.09),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(17, 42, 60, 0.98),
            rgba(10, 18, 37, 0.99)
        ) !important;

    border-color: rgba(88, 204, 219, 0.3) !important;
}

.rili-markdown-renderer details.ts-choices > summary,
.markdown-body details.ts-choices > summary {
    background:
        linear-gradient(
            90deg,
            rgba(49, 179, 201, 0.17),
            rgba(149, 77, 204, 0.06),
            transparent
        ) !important;
}

.rili-markdown-renderer details.ts-choices .ts-summary-title,
.markdown-body details.ts-choices .ts-summary-title {
    color: #dcfbff !important;
}

.rili-markdown-renderer .ts-choice-content,
.markdown-body .ts-choice-content {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 14px !important;

    box-sizing: border-box !important;

    color: #eaf5f7 !important;
    background: transparent !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-intro,
.markdown-body .ts-choice-intro {
    display: block !important;

    min-width: 0 !important;

    margin: 0 0 10px !important;
    padding: 11px 13px !important;

    box-sizing: border-box !important;

    color: #dfedf2 !important;

    background:
        linear-gradient(
            90deg,
            rgba(52, 173, 190, 0.1),
            rgba(137, 82, 195, 0.035)
        ) !important;

    border: 0 !important;
    border-left: 2px solid rgba(90, 225, 225, 0.48) !important;
    border-radius: 2px 8px 8px 2px !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-intro span,
.markdown-body .ts-choice-intro span {
    display: block !important;

    color: #94e8f0 !important;
    background: transparent !important;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace !important;

    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.13em !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-intro p,
.markdown-body .ts-choice-intro p {
    min-width: 0 !important;

    margin: 4px 0 0 !important;

    color: #d1e0e5 !important;
    background: transparent !important;

    font-size: 11px !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-list,
.markdown-body .ts-choice-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-card,
.markdown-body .ts-choice-card {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 11px !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 11px !important;

    box-sizing: border-box !important;

    color: #eaf5f7 !important;

    background:
        linear-gradient(
            120deg,
            rgba(39, 88, 108, 0.5),
            rgba(58, 43, 91, 0.38),
            rgba(17, 37, 54, 0.68)
        ) !important;

    border: 1px solid rgba(100, 196, 210, 0.18) !important;
    border-radius: 10px !important;

    opacity: 1 !important;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        filter 0.25s ease !important;
}

.rili-markdown-renderer .ts-choice-card:hover,
.markdown-body .ts-choice-card:hover {
    transform: translateX(5px) scale(1.006) !important;
    filter: brightness(1.12) !important;

    border-color: rgba(111, 231, 232, 0.4) !important;

    box-shadow:
        0 8px 19px rgba(1, 7, 16, 0.24),
        0 0 18px rgba(67, 220, 222, 0.08) !important;
}

.rili-markdown-renderer .ts-choice-letter,
.markdown-body .ts-choice-letter {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;

    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;

    color: #d5ffff !important;

    background:
        conic-gradient(
            rgba(59, 195, 201, 0.22),
            rgba(113, 102, 222, 0.17),
            rgba(59, 195, 201, 0.22)
        ) !important;

    border: 1px solid rgba(89, 228, 229, 0.27) !important;
    border-radius: 10px !important;

    font-size: 15px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;

    opacity: 1 !important;

    animation: ts-icon-pulse 4s ease-in-out infinite !important;
}

.rili-markdown-renderer .ts-choice-card > div,
.markdown-body .ts-choice-card > div {
    display: block !important;

    min-width: 0 !important;
}

.rili-markdown-renderer .ts-choice-card b,
.markdown-body .ts-choice-card b {
    display: block !important;

    min-width: 0 !important;

    color: #f0fcfd !important;
    background: transparent !important;

    font-size: 13px !important;
    font-weight: 760 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}

.rili-markdown-renderer .ts-choice-card p,
.markdown-body .ts-choice-card p {
    display: block !important;

    min-width: 0 !important;

    margin: 3px 0 0 !important;

    color: #bacdd2 !important;
    background: transparent !important;

    font-size: 11px !important;
    line-height: 1.65 !important;
    letter-spacing: 0 !important;

    overflow-wrap: anywhere !important;
    opacity: 1 !important;
}


/* =========================================================
   32. 最终响应式适配
   ========================================================= */

@media (max-width: 760px) {
    .rili-markdown-renderer .ts-contact-grid,
    .markdown-body .ts-contact-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rili-markdown-renderer .ts-memory-stats,
    .markdown-body .ts-memory-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }
}

@media (max-width: 600px) {
    .rili-markdown-renderer .ts-npc-record,
    .markdown-body .ts-npc-record {
        padding: 9px !important;

        border-radius: 12px !important;
    }

    .rili-markdown-renderer .ts-npc-record > .ts-profile-card,
    .markdown-body .ts-npc-record > .ts-profile-card {
        padding: 9px !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc],
    .markdown-body h3.npc-name[data-npc] {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "portrait"
            "name" !important;
        justify-items: center !important;
        gap: 14px !important;

        min-height: 0 !important;

        margin: 13px 0 15px !important;
        padding: 15px !important;

        border-radius: 14px !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]::before,
    .markdown-body h3.npc-name[data-npc]::before {
        width: min(68vw, 210px) !important;
        max-width: 210px !important;

        padding: 12px !important;

        border-radius: 12px !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]::after,
    .markdown-body h3.npc-name[data-npc]::after {
        width: 100% !important;

        padding: 12px 14px !important;

        border-left: 0 !important;
        border-bottom: 3px solid var(--npc-accent) !important;
        border-radius: 11px !important;

        font-size: clamp(21px, 7vw, 30px) !important;
        letter-spacing: 0.05em !important;
        text-align: center !important;
    }

    .rili-markdown-renderer .ts-inner-voice,
    .markdown-body .ts-inner-voice {
        margin-right: 8px !important;
        margin-left: 8px !important;
    }

    .rili-markdown-renderer .ts-memory-stats,
    .markdown-body .ts-memory-stats {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rili-markdown-renderer .ts-memory-stats > div,
    .markdown-body .ts-memory-stats > div {
        padding: 10px !important;
    }

    .rili-markdown-renderer .ts-memory-section > header,
    .markdown-body .ts-memory-section > header {
        padding: 10px 11px !important;
    }

    .rili-markdown-renderer .ts-table-wrap,
    .markdown-body .ts-table-wrap {
        padding: 8px !important;
    }

    .rili-markdown-renderer .ts-table-wrap table,
    .markdown-body .ts-table-wrap table {
        min-width: 650px !important;

        font-size: 10.5px !important;
    }

    .rili-markdown-renderer .ts-table-wrap thead th,
    .rili-markdown-renderer .ts-table-wrap tbody td,
    .markdown-body .ts-table-wrap thead th,
    .markdown-body .ts-table-wrap tbody td {
        padding: 8px !important;

        font-size: 10.5px !important;
    }

    .rili-markdown-renderer .ts-choice-content,
    .markdown-body .ts-choice-content {
        padding: 11px !important;
    }

    .rili-markdown-renderer .ts-choice-card,
    .markdown-body .ts-choice-card {
        grid-template-columns: 37px minmax(0, 1fr) !important;
        gap: 9px !important;

        padding: 9px !important;
    }

    .rili-markdown-renderer .ts-choice-letter,
    .markdown-body .ts-choice-letter {
        width: 35px !important;
        min-width: 35px !important;
        height: 35px !important;
        min-height: 35px !important;

        font-size: 13px !important;
    }

    .rili-markdown-renderer .ts-choice-card:hover,
    .markdown-body .ts-choice-card:hover {
        transform: translateX(2px) !important;
    }
}

@media (max-width: 360px) {
    .rili-markdown-renderer h3.npc-name[data-npc],
    .markdown-body h3.npc-name[data-npc] {
        padding: 11px !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]::before,
    .markdown-body h3.npc-name[data-npc]::before {
        width: min(72vw, 190px) !important;

        font-size: 11.5px !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]::after,
    .markdown-body h3.npc-name[data-npc]::after {
        padding: 10px !important;

        font-size: 20px !important;
    }

    .rili-markdown-renderer .ts-choice-card,
    .markdown-body .ts-choice-card {
        grid-template-columns: 32px minmax(0, 1fr) !important;
        gap: 7px !important;
    }

    .rili-markdown-renderer .ts-choice-letter,
    .markdown-body .ts-choice-letter {
        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;
        min-height: 30px !important;

        font-size: 12px !important;
    }
}


/* 矮屏终端适配 */

@media (max-height: 560px) {
    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open]),
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open]) {
        height: 380px !important;
        min-height: 380px !important;
        max-height: 380px !important;

        padding: 0 !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    .ts-page-content {
        bottom: 54px !important;
    }

    .rili-markdown-renderer
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type,
    .markdown-body
    .ts-app-shell:has(details.ts-app-page[open])
    details.ts-app-page[open]
    > summary:first-of-type {
        height: 54px !important;
        min-height: 54px !important;
    }
}


/* =========================================================
   33. 低动态适配
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .rili-markdown-renderer .ts-app-shell::before,
    .markdown-body .ts-app-shell::before {
        opacity: 0.42 !important;
        animation-duration: 24s !important;
    }

    .rili-markdown-renderer .ts-app-shell::after,
    .markdown-body .ts-app-shell::after {
        opacity: 0.4 !important;
        animation-duration: 90s !important;
    }

    .rili-markdown-renderer .ts-app-icon,
    .rili-markdown-renderer .ts-app-title-mark,
    .rili-markdown-renderer .ts-page-heading-icon,
    .rili-markdown-renderer .ts-profile-avatar,
    .rili-markdown-renderer .ts-module-icon,
    .rili-markdown-renderer .ts-slot-icon,
    .rili-markdown-renderer .ts-contact-avatar,
    .rili-markdown-renderer .ts-memory-symbol,
    .rili-markdown-renderer .ts-choice-letter,
    .markdown-body .ts-app-icon,
    .markdown-body .ts-app-title-mark,
    .markdown-body .ts-page-heading-icon,
    .markdown-body .ts-profile-avatar,
    .markdown-body .ts-module-icon,
    .markdown-body .ts-slot-icon,
    .markdown-body .ts-contact-avatar,
    .markdown-body .ts-memory-symbol,
    .markdown-body .ts-choice-letter {
        animation-duration: 9s !important;
    }

    .rili-markdown-renderer
    details.ts-app-page:not([open])
    > summary::after,
    .rili-markdown-renderer .ts-page-heading::after,
    .markdown-body
    details.ts-app-page:not([open])
    > summary::after,
    .markdown-body .ts-page-heading::after {
        display: none !important;
        opacity: 0 !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc],
    .rili-markdown-renderer h3.npc-name[data-npc]::before,
    .markdown-body h3.npc-name[data-npc],
    .markdown-body h3.npc-name[data-npc]::before {
        transition: none !important;
    }

    .rili-markdown-renderer h3.npc-name[data-npc]::after,
    .markdown-body h3.npc-name[data-npc]::after {
        animation: none !important;
    }

    .rili-markdown-renderer .ts-contact-card:hover,
    .rili-markdown-renderer .ts-memory-stats > div:hover,
    .rili-markdown-renderer .ts-choice-card:hover,
    .markdown-body .ts-contact-card:hover,
    .markdown-body .ts-memory-stats > div:hover,
    .markdown-body .ts-choice-card:hover {
        transform: none !important;
    }
}


/* =========================================================
   34. 最终兼容保险
   ========================================================= */


/* 所有正式输出模块始终保持在聊天气泡背景之上 */

.rili-markdown-renderer :where(
    .ts-panel,
    .ts-story,
    .ts-app-shell,
    .ts-choice-content,
    .ts-npc-record
),
.markdown-body :where(
    .ts-panel,
    .ts-story,
    .ts-app-shell,
    .ts-choice-content,
    .ts-npc-record
) {
    position: relative !important;
    z-index: 2 !important;

    max-width: 100% !important;

    box-sizing: border-box !important;
}


/* 当前打开的终端页面最终保险 */

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open],
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open] {
    display: block !important;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page:not([open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page:not([open]) {
    display: none !important;

    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
.ts-page-content {
    overflow-x: hidden !important;
    overflow-y: auto !important;

    touch-action: pan-y !important;
    pointer-events: auto !important;

    -webkit-overflow-scrolling: touch !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type,
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
details.ts-app-page[open]
> summary:first-of-type {
    position: absolute !important;

    top: auto !important;
    bottom: 0 !important;
    z-index: 50 !important;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:not(:has(details.ts-app-page[open])),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:not(:has(details.ts-app-page[open])) {
    display: none !important;

    height: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
}

.rili-markdown-renderer
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:has(details.ts-app-page[open]),
.markdown-body
.ts-app-shell:has(details.ts-app-page[open])
.ts-app-grid:has(details.ts-app-page[open]) {
    position: static !important;

    display: block !important;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
}


/* 防止平台内联浅色文字覆盖深色终端 */

.group.is-user > div:first-child
.rili-markdown-renderer,
.group.is-user > div:first-child
.rili-markdown-renderer *,
.group.is-assistant > div:first-child
.rili-markdown-renderer,
.group.is-assistant > div:first-child
.rili-markdown-renderer * {
    color: var(--ts-text, #f4f7ff) !important;
}


/* 重新声明需要独立颜色的关键组件，
   避免上一条统一颜色保险抹去视觉层级 */

.group .rili-markdown-renderer .ts-summary-subtitle {
    color: #91a3c9 !important;
}

.group .rili-markdown-renderer .ts-system-label {
    color: #91e7e3 !important;
}

.group .rili-markdown-renderer .ts-profile-kicker,
.group .rili-markdown-renderer .ts-app-title small,
.group .rili-markdown-renderer .ts-page-heading p,
.group .rili-markdown-renderer .ts-data-module > header small {
    color: #97abd0 !important;
}

.group .rili-markdown-renderer .ts-data-list span {
    color: #9eb1d2 !important;
}

.group .rili-markdown-renderer .ts-item-list em,
.group .rili-markdown-renderer .ts-ability-list em {
    color: #adb9d0 !important;
}

.group .rili-markdown-renderer .ts-choice-card p {
    color: #bacdd2 !important;
}

.group .rili-markdown-renderer .ts-contact-head p {
    color: #9bcfc1 !important;
}

.group .rili-markdown-renderer .ts-memory-section header p {
    color: #aea8c9 !important;
}


/* NPC 立绘最终优先级保险 */

.group .rili-markdown-renderer h3.npc-name[data-npc] {
    color: transparent !important;
    font-size: 0 !important;
}

.group .rili-markdown-renderer h3.npc-name[data-npc]::before {
    color: rgba(230, 238, 255, 0.82) !important;

    background-image:
        var(--npc-portrait),
        linear-gradient(
            145deg,
            rgba(53, 89, 139, 0.28),
            rgba(84, 46, 113, 0.25)
        ) !important;

    background-repeat:
        no-repeat,
        no-repeat !important;

    background-position:
        center top,
        center !important;

    background-size:
        cover,
        cover !important;

    opacity: 1 !important;
}

.group .rili-markdown-renderer h3.npc-name[data-npc]::after {
    content: attr(data-npc) !important;

    color: #f7fbff !important;
    opacity: 1 !important;
}


/* 加载动画最终保险 */

.flex.gap-2.w-full.h-full.items-center.justify-center {
    display: flex !important;

    visibility: visible !important;
    opacity: 1 !important;
}

.flex.gap-2.w-full.h-full.items-center.justify-center > span {
    display: none !important;

    visibility: hidden !important;
    opacity: 0 !important;
}

.flex.gap-2.w-full.h-full.items-center.justify-center::before,
.flex.gap-2.w-full.h-full.items-center.justify-center::after {
    display: block !important;

    visibility: visible !important;
    opacity: 1 !important;
}


/* 平台操作按钮最终可见性 */

.group .md\:opacity-0 {
    opacity: 1 !important;
}

.bg-muted.rounded.flex,
.bg-muted.rounded.flex button,
.bg-muted.rounded.flex button svg.lucide {
    visibility: visible !important;
    opacity: 1 !important;
}


/* =========================================================
  
   ========================================================= */
