/* ═══════════════════════════════════════════════════════
   蜜月地狱 · Rilichat 主题 UI（深色案卷血档版）
   色彩体系：深棕红夜底 × 米黄字 × 血印章红 × 草莓粉 × 紫色内心
   ═══════════════════════════════════════════════════════ */

:root {
    --night:         #0a0608;
    --ink:           #0e0608;
    --ink-deep:      #050203;
    --ink-card:      #1a0a0c;
    --ink-content:   #200e10;
    --ink-hover:     #281418;
    --ink-border:    #2a1416;

    --paper:         #f0e6d2;
    --paper-bright:  #fff5dc;
    --paper-soft:    #d8c8a8;
    --paper-mid:     #b8a888;
    --paper-deep:    #7a6848;

    --gold:          #d4a04a;
    --gold-bright:   #f0c060;
    --gold-soft:     #b88c3a;
    --gold-deep:     #6b4f1c;
    --gold-line:     rgba(212, 160, 74, 0.4);

    --blood:         #c82830;
    --blood-bright:  #e83840;
    --blood-deep:    #6e1820;
    --blood-shadow:  rgba(200, 40, 48, 0.45);

    --strawberry:    #f098a0;
    --strawberry-soft: rgba(240, 152, 160, 0.45);
    --violet-soft:   #c4a8d8;

    --text-primary:  #f0e6d2;
    --text-soft:     #d8c8a8;
    --text-label:    #b88c3a;
    --text-muted:    #8a7048;

    --dialogue-bg:   rgba(26, 10, 12, 0.94);
    --dialogue-border: rgba(110, 24, 32, 0.7);
    --dialogue-shadow: 0 8px 26px rgba(0, 0, 0, 0.85);

    --radius-main:   2px;
    --radius-inner:  2px;
    --radius-small:  1px;
}

/* ——————————————————————————————————
   § 1  全局 Markdown 正文（Rili）
   —————————————————————————————————— */
.rili-markdown-renderer {
    color: var(--text-primary) !important;
    font-family: "Noto Serif SC", "Source Han Serif SC", Georgia, serif !important;
}

.rili-markdown-renderer p,
.rili-markdown-renderer li,
.rili-markdown-renderer span,
.rili-markdown-renderer blockquote {
    font-size: 16px !important;
    line-height: 1.95 !important;
    font-family: "Noto Serif SC", "Source Han Serif SC", Georgia, serif !important;
    letter-spacing: 0.3px !important;
    color: var(--text-primary) !important;
}

.rili-markdown-renderer pre,
.rili-markdown-renderer code,
.rili-markdown-renderer details pre code {
    font-size: 14px !important;
    font-family: 'Courier New', 'Consolas', 'Monaco', monospace !important;
    letter-spacing: normal !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 {
    color: var(--paper-bright) !important;
    letter-spacing: 1.5px !important;
    border-bottom: 1px dashed var(--gold-line) !important;
    padding-bottom: 8px !important;
}

.rili-markdown-renderer a {
    color: var(--gold-bright) !important;
    text-decoration: none !important;
    border-bottom: 1px solid var(--gold) !important;
}

.rili-markdown-renderer code {
    color: var(--strawberry) !important;
    background: var(--ink-card) !important;
    padding: 2px 6px !important;
    border-radius: 0 !important;
    font-size: 13.5px !important;
}

.rili-markdown-renderer blockquote {
    color: var(--paper-bright) !important;
    border-left: 3px solid var(--blood) !important;
    background: linear-gradient(90deg, rgba(110, 24, 32, 0.3), transparent) !important;
    font-style: italic !important;
    padding: 10px 18px !important;
    margin: 14px 0 !important;
}

.rili-markdown-renderer strong,
.rili-markdown-renderer b {
    color: var(--blood-bright) !important;
    border-bottom: 1px solid var(--blood) !important;
    padding-bottom: 1px !important;
    font-weight: 600 !important;
}

.rili-markdown-renderer em,
.rili-markdown-renderer i {
    color: var(--gold-bright) !important;
    font-style: italic !important;
}

.rili-markdown-renderer hr {
    border: none !important;
    height: 1px !important;
    background:
        repeating-linear-gradient(90deg,
            var(--gold) 0 8px,
            transparent 8px 12px) !important;
    margin: 20px 0 !important;
}

/* ——————————————————————————————————
   § 2  对话气泡 · 深色案卷夜底
   —————————————————————————————————— */
.is-user > div,
.is-assistant > div {
    background:
        repeating-linear-gradient(0deg,
            transparent 0 28px,
            rgba(212, 160, 74, 0.03) 28px 29px),
        linear-gradient(135deg, var(--ink-card) 0%, var(--ink-content) 100%) !important;
    background-color: var(--dialogue-bg) !important;
    border: 1px solid var(--dialogue-border) !important;
    box-shadow:
        var(--dialogue-shadow),
        0 0 0 1px rgba(212, 160, 74, 0.12) inset,
        0 0 30px rgba(110, 24, 32, 0.15) !important;
    border-radius: var(--radius-main) !important;
    padding: 1em !important;
}

/* 气泡内按钮 */
.is-assistant > div button,
.is-user > div button {
    background: transparent !important;
    color: var(--gold) !important;
    border: 1px solid var(--gold) !important;
    border-radius: var(--radius-small) !important;
    box-shadow: none !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    transition: all 0.25s ease !important;
    padding: 5px 14px !important;
}

.is-assistant > div button:hover,
.is-user > div button:hover {
    background: var(--blood) !important;
    color: var(--paper-bright) !important;
    border-color: var(--blood) !important;
    box-shadow: 0 0 14px var(--blood-shadow) !important;
    transform: none !important;
}

.is-assistant > div button svg,
.is-user > div button svg {
    stroke: currentColor !important;
}

/* ——————————————————————————————————
   § 3  Details / Summary 基础层
   —————————————————————————————————— */
.rili-markdown-renderer details {
    border: 1px solid var(--blood-deep) !important;
    border-radius: var(--radius-main) !important;
    margin: 16px 0 !important;
    background: var(--ink-deep) !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.65) !important;
}

.rili-markdown-renderer details:hover {
    border-color: var(--blood) !important;
    box-shadow:
        0 0 22px rgba(200, 40, 48, 0.18),
        0 4px 14px rgba(0, 0, 0, 0.65) !important;
}

.rili-markdown-renderer summary {
    display: flex !important;
    align-items: center !important;
    padding: 12px 20px !important;
    cursor: pointer !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(200, 40, 48, 0.06) 8px 9px),
        linear-gradient(90deg, rgba(110, 24, 32, 0.4), var(--ink-card)) !important;
    color: var(--paper-bright) !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    letter-spacing: 3px !important;
    transition: all 0.3s ease !important;
    outline: none !important;
    list-style: none !important;
    border-bottom: 1px dashed var(--gold-line) !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    text-transform: uppercase !important;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.7) !important;
}

.rili-markdown-renderer summary::-webkit-details-marker { display: none !important; }

.rili-markdown-renderer summary:hover {
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(200, 40, 48, 0.10) 8px 9px),
        linear-gradient(90deg, rgba(110, 24, 32, 0.55), var(--ink-content)) !important;
    color: var(--gold-bright) !important;
}

.rili-markdown-renderer summary::before {
    content: '▌▌' !important;
    display: inline-block !important;
    margin-right: 12px !important;
    font-size: 0.85em !important;
    color: var(--blood-bright) !important;
    transition: transform 0.35s ease, color 0.3s ease !important;
    letter-spacing: -2px !important;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5)) !important;
}

.rili-markdown-renderer details[open] > summary::before {
    transform: rotate(90deg) !important;
    color: var(--gold-bright) !important;
    text-shadow: 0 0 8px var(--gold-bright) !important;
}

.rili-markdown-renderer details > pre,
.rili-markdown-renderer details > table {
    margin: 0 !important;
    border: none !important;
    border-top: 1px dashed var(--gold-line) !important;
    border-radius: 0 !important;
    background: var(--ink) !important;
    overflow-x: auto !important;
}

.rili-markdown-renderer details pre {
    padding: 16px 20px !important;
    background: transparent !important;
}

/* ——————————————————————————————————
   § 4  状态面板总容器
   —————————————————————————————————— */
.status-panel {
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-size: 13.5px !important;
    line-height: 1.75 !important;
    color: var(--text-primary) !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.sp-section {
    background: var(--ink-card) !important;
    border: 1px solid var(--blood-deep) !important;
    border-radius: var(--radius-small) !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.7),
        inset 0 0 0 1px rgba(212, 160, 74, 0.06) !important;
}

.sp-section[open] {
    border-color: var(--blood) !important;
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.8),
        0 0 14px rgba(200, 40, 48, 0.18),
        inset 0 0 0 1px rgba(200, 40, 48, 0.2) !important;
}

/* ——— 子标题栏 ——— */
.sp-header {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 13px 18px !important;
    cursor: pointer !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 3.5px !important;
    color: var(--gold-bright) !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(200, 40, 48, 0.08) 8px 9px),
        linear-gradient(90deg, rgba(110, 24, 32, 0.55), var(--ink-card)) !important;
    border-bottom: 1px dashed var(--gold-line) !important;
    user-select: none !important;
    list-style: none !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    position: relative !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important;
}

.sp-header::-webkit-details-marker { display: none !important; }

.sp-header::before,
.sp-header::after {
    display: inline-block !important;
    content: "▌" !important;
    color: var(--blood-bright) !important;
    font-size: 0.9em !important;
    transition: all 0.3s ease !important;
    letter-spacing: -2px !important;
}

.sp-section[open] > .sp-header::before,
.sp-section[open] > .sp-header::after {
    color: var(--gold-bright) !important;
    text-shadow: 0 0 8px var(--gold-bright) !important;
}

.sp-body {
    padding: 18px 22px 20px !important;
    background:
        repeating-linear-gradient(0deg,
            transparent 0 28px,
            rgba(212, 160, 74, 0.03) 28px 29px),
        var(--ink-content) !important;
}

/* ——— 数据行 ——— */
.sp-row {
    display: flex !important;
    align-items: baseline !important;
    padding: 6px 0 !important;
    gap: 12px !important;
    border-bottom: 1px dashed rgba(212, 160, 74, 0.18) !important;
}
.sp-row:last-child { border-bottom: none !important; }

.sp-label {
    flex: 0 0 auto !important;
    min-width: 90px !important;
    font-size: 11px !important;
    color: var(--text-label) !important;
    letter-spacing: 2px !important;
    white-space: nowrap !important;
    text-transform: uppercase !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-weight: 700 !important;
}
.sp-label::after {
    content: " ─" !important;
    color: var(--text-muted) !important;
    letter-spacing: 1px !important;
}

.sp-val {
    flex: 1 !important;
    font-size: 13.5px !important;
    color: var(--paper) !important;
    word-break: break-all !important;
    line-height: 1.75 !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
}

/* ——— 强调色 ——— */
.accent-gold {
    color: var(--gold-bright) !important;
    border-bottom: 1px solid var(--gold) !important;
    padding-bottom: 1px !important;
    font-weight: 700 !important;
}
.accent-rose {
    color: var(--strawberry) !important;
    font-weight: 700 !important;
    text-shadow: 0 0 4px var(--strawberry-soft) !important;
}
.accent-violet {
    color: var(--violet-soft) !important;
    font-style: italic !important;
    font-weight: 600 !important;
}

/* ——— 分组标题 ——— */
.sp-group {
    font-size: 11.5px !important;
    font-weight: 700 !important;
    color: var(--blood-bright) !important;
    letter-spacing: 3px !important;
    margin: 16px 0 10px !important;
    padding: 5px 8px 7px !important;
    border-bottom: 1px solid var(--blood) !important;
    text-transform: uppercase !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    background:
        linear-gradient(90deg, rgba(200, 40, 48, 0.18), transparent) !important;
    text-shadow: 0 0 6px var(--blood-shadow) !important;
}
.sp-group::before {
    content: "◼ " !important;
    color: var(--blood-bright) !important;
}
.sp-group:first-child { margin-top: 0 !important; }

.sp-group-true {
    color: var(--blood-bright) !important;
    border-bottom-color: var(--blood-bright) !important;
    border-bottom-width: 2px !important;
    background:
        linear-gradient(90deg, rgba(232, 56, 64, 0.25), rgba(200, 40, 48, 0.06)) !important;
    text-shadow: 0 0 8px rgba(232, 56, 64, 0.5) !important;
}
.sp-group-true::before {
    content: "▌" !important;
    color: var(--blood-bright) !important;
}

/* ——— 分隔线 ——— */
.sp-divider {
    height: 1px !important;
    margin: 16px 0 !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 6px,
            var(--gold-line) 6px 8px,
            transparent 8px 12px) !important;
    border: none !important;
    position: relative !important;
}
.sp-divider::before {
    content: "✦" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: var(--blood-bright) !important;
    font-size: 11px !important;
    background: var(--ink-content) !important;
    padding: 0 10px !important;
    text-shadow: 0 0 6px var(--blood-shadow) !important;
}

/* ——————————————————————————————————
   § 5  各区块专属强调
   —————————————————————————————————— */
.sec-player[open] { border-color: var(--gold) !important; }
.sec-player > .sp-header { color: var(--gold-bright) !important; }

/* 妻子区 · 粉血双调呼吸光晕 */
.sec-wife[open] {
    border-color: var(--strawberry) !important;
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.8),
        0 0 22px rgba(240, 152, 160, 0.18),
        inset 0 0 0 1px rgba(240, 152, 160, 0.25),
        inset 0 0 80px rgba(110, 24, 32, 0.18) !important;
    animation: wife-bleed 7s ease-in-out infinite !important;
}
@keyframes wife-bleed {
    0%, 100% {
        box-shadow:
            0 6px 18px rgba(0, 0, 0, 0.8),
            0 0 22px rgba(240, 152, 160, 0.18),
            inset 0 0 0 1px rgba(240, 152, 160, 0.25),
            inset 0 0 80px rgba(110, 24, 32, 0.18) !important;
    }
    50% {
        box-shadow:
            0 6px 18px rgba(0, 0, 0, 0.8),
            0 0 32px rgba(200, 40, 48, 0.3),
            inset 0 0 0 1px rgba(232, 56, 64, 0.4),
            inset 0 0 100px rgba(110, 24, 32, 0.28) !important;
    }
}
.sec-wife > .sp-header {
    color: var(--strawberry) !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(240, 152, 160, 0.10) 8px 9px),
        linear-gradient(90deg, rgba(240, 152, 160, 0.25), rgba(110, 24, 32, 0.4)) !important;
}

/* 绑匪团区 */
.sec-criminals > .sp-header {
    color: var(--blood-bright) !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(200, 40, 48, 0.12) 8px 9px),
        linear-gradient(90deg, rgba(200, 40, 48, 0.35), rgba(110, 24, 32, 0.4)) !important;
}

/* 屈辱时刻区 · 加深血档 */
.sec-shame[open] {
    border-color: var(--blood-bright) !important;
    background: #1a0608 !important;
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.85),
        0 0 26px rgba(200, 40, 48, 0.25),
        inset 0 0 0 1px var(--blood) !important;
}
.sec-shame > .sp-header {
    color: var(--blood-bright) !important;
    background:
        repeating-linear-gradient(135deg,
            transparent 0 6px,
            rgba(200, 40, 48, 0.18) 6px 7px),
        linear-gradient(90deg, rgba(200, 40, 48, 0.45), rgba(70, 12, 20, 0.5)) !important;
    font-style: italic !important;
    text-shadow: 0 0 10px var(--blood-shadow) !important;
}
.sec-shame > .sp-body {
    background:
        repeating-linear-gradient(0deg,
            transparent 0 26px,
            rgba(200, 40, 48, 0.06) 26px 27px),
        #1a0608 !important;
}

/* 屈辱时刻 · 单条记录 · 带 EVIDENCE 红印章 */
.shame-entry {
    margin: 12px 0 !important;
    padding: 16px 18px !important;
    background:
        linear-gradient(135deg, var(--ink-card), var(--ink-content)) !important;
    border: 1px solid var(--blood) !important;
    border-left: 4px solid var(--blood-bright) !important;
    border-radius: var(--radius-small) !important;
    position: relative !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5) !important;
    transform: rotate(-0.3deg) !important;
}
.shame-entry:nth-child(2n) { transform: rotate(0.4deg) !important; }
.shame-entry:nth-child(3n) { transform: rotate(-0.5deg) !important; }
.shame-entry::after {
    content: "EVIDENCE" !important;
    position: absolute !important;
    top: -8px !important; right: -6px !important;
    font-family: 'Courier New', monospace !important;
    font-size: 9px !important;
    color: var(--blood-bright) !important;
    border: 1.5px solid var(--blood-bright) !important;
    padding: 2px 6px !important;
    letter-spacing: 1.5px !important;
    transform: rotate(8deg) !important;
    background: var(--ink-deep) !important;
    font-weight: 700 !important;
    text-shadow: 0 0 4px var(--blood-shadow) !important;
}
.shame-title {
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-size: 12px !important;
    color: var(--gold-bright) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    margin-bottom: 10px !important;
    padding-bottom: 7px !important;
    border-bottom: 1px dashed var(--blood) !important;
    text-transform: uppercase !important;
}
.shame-title::before {
    content: "◼ " !important;
    color: var(--blood-bright) !important;
}
.shame-body {
    font-family: "Noto Serif SC", Georgia, serif !important;
    font-size: 13px !important;
    line-height: 1.85 !important;
    color: var(--paper) !important;
    font-style: italic !important;
    letter-spacing: 0.3px !important;
}

.sec-memory > .sp-header { color: var(--text-soft) !important; }
.sec-options > .sp-header {
    color: var(--gold-bright) !important;
    background:
        repeating-linear-gradient(90deg,
            transparent 0 8px,
            rgba(212, 160, 74, 0.12) 8px 9px),
        linear-gradient(90deg, rgba(212, 160, 74, 0.3), rgba(110, 24, 32, 0.25)) !important;
}

/* ——————————————————————————————————
   § 6  双轨进度条
   —————————————————————————————————— */
.bar-row { flex-wrap: wrap !important; }
.sp-bar-wrap {
    flex: 1 !important;
    position: relative !important;
    height: 16px !important;
    background:
        repeating-linear-gradient(45deg,
            rgba(0, 0, 0, 0.6) 0 4px,
            rgba(0, 0, 0, 0.8) 4px 5px) !important;
    border-radius: 0 !important;
    border: 1px solid var(--ink-border) !important;
    overflow: hidden !important;
    min-width: 130px !important;
    box-shadow:
        inset 0 1px 4px rgba(0, 0, 0, 0.8),
        0 0 0 1px rgba(200, 40, 48, 0.15) !important;
}
.sp-bar {
    height: 100% !important;
    border-radius: 0 !important;
    transition: width 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
    position: relative !important;
}
.sp-bar::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.3) 50%,
        transparent 100%) !important;
    animation: bar-shimmer 3.5s ease-in-out infinite !important;
}
@keyframes bar-shimmer {
    0%, 100% { transform: translateX(-100%); opacity: 0; }
    50% { transform: translateX(100%); opacity: 1; }
}
.bar-endure {
    background: linear-gradient(90deg, var(--blood-deep), var(--blood), var(--blood-bright)) !important;
    box-shadow: 0 0 12px var(--blood-shadow) !important;
}
.bar-love {
    background: linear-gradient(90deg, #a85070, var(--strawberry), #ffb8c0) !important;
    box-shadow: 0 0 12px rgba(240, 152, 160, 0.55) !important;
}
.sp-bar-text {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 10.5px !important;
    font-weight: 900 !important;
    color: var(--paper-bright) !important;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 1),
        0 0 6px rgba(0, 0, 0, 0.9),
        1px 0 0 rgba(0, 0, 0, 0.7),
        -1px 0 0 rgba(0, 0, 0, 0.7) !important;
    letter-spacing: 1.5px !important;
    z-index: 2 !important;
    font-family: 'Courier New', monospace !important;
}

/* ——————————————————————————————————
   § 7  绑匪 NPC 卡片
   —————————————————————————————————— */
.npc-card {
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
    background:
        linear-gradient(135deg, rgba(200, 40, 48, 0.15), transparent),
        var(--ink-card) !important;
    border-left: 3px solid var(--blood) !important;
    border-right: 1px solid var(--blood-deep) !important;
    border-top: 1px solid var(--blood-deep) !important;
    border-bottom: 1px solid var(--blood-deep) !important;
    border-radius: 0 var(--radius-small) var(--radius-small) 0 !important;
    position: relative !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5) !important;
}
.npc-card:last-child { margin-bottom: 0 !important; }

.npc-name {
    font-size: 13.5px !important;
    font-weight: 700 !important;
    color: var(--blood-bright) !important;
    letter-spacing: 2px !important;
    margin-bottom: 8px !important;
    padding-bottom: 6px !important;
    border-bottom: 1px dashed var(--blood) !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    text-transform: uppercase !important;
    text-shadow: 0 0 6px var(--blood-shadow) !important;
}
.npc-name::before {
    content: "◼ " !important;
    color: var(--gold-bright) !important;
}

/* NPC 卡内行紧凑 */
.npc-card .sp-row {
    padding: 5px 0 !important;
    border-bottom: 1px dashed rgba(212, 160, 74, 0.12) !important;
}
.npc-card .sp-row:last-child {
    border-bottom: none !important;
}

/* NPC · 肉棒状态行特化 */
.npc-card .sp-row .accent-rose {
    color: var(--strawberry) !important;
    font-weight: 600 !important;
    background: linear-gradient(90deg, rgba(240, 152, 160, 0.08), transparent) !important;
    padding: 3px 8px !important;
    border-left: 2px solid var(--strawberry) !important;
    margin-left: -2px !important;
    line-height: 1.65 !important;
    text-shadow: 0 0 4px rgba(240, 152, 160, 0.3) !important;
}

/* NPC · 内心想法行特化（紫色斜体「」引号） */
.npc-card .sp-row .accent-violet {
    color: var(--violet-soft) !important;
    font-style: italic !important;
    font-weight: 500 !important;
    font-family: "Noto Serif SC", Georgia, serif !important;
    letter-spacing: 0.4px !important;
    background: linear-gradient(90deg, rgba(196, 168, 216, 0.08), transparent) !important;
    padding: 4px 8px !important;
    border-left: 2px solid var(--violet-soft) !important;
    margin-left: -2px !important;
    line-height: 1.7 !important;
    text-shadow: 0 0 6px rgba(196, 168, 216, 0.18) !important;
}
.npc-card .sp-row .accent-violet::before {
    content: "「" !important;
    color: var(--violet-soft) !important;
    margin-right: 2px !important;
    font-weight: 700 !important;
}
.npc-card .sp-row .accent-violet::after {
    content: "」" !important;
    color: var(--violet-soft) !important;
    margin-left: 2px !important;
    font-weight: 700 !important;
}

/* ——————————————————————————————————
   § 8  星记忆表格
   —————————————————————————————————— */
.mem-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 12px !important;
    margin-top: 6px !important;
    background: transparent !important;
}
.mem-table th {
    padding: 8px 6px !important;
    font-weight: 700 !important;
    font-size: 10.5px !important;
    color: var(--blood-bright) !important;
    text-align: left !important;
    border-bottom: 2px solid var(--blood) !important;
    letter-spacing: 2px !important;
    white-space: nowrap !important;
    background: rgba(200, 40, 48, 0.12) !important;
    text-transform: uppercase !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
}
.mem-table td {
    padding: 7px 6px !important;
    color: var(--paper) !important;
    border-bottom: 1px dashed rgba(212, 160, 74, 0.2) !important;
    vertical-align: top !important;
    background: transparent !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
}
.mem-table th:first-child,
.mem-table td:first-child {
    width: 36px !important;
    text-align: center !important;
    color: var(--gold-bright) !important;
    font-weight: 700 !important;
}
.mem-empty td {
    text-align: center !important;
    color: var(--text-muted) !important;
    font-style: italic !important;
    padding: 14px !important;
}

/* ——————————————————————————————————
   § 9  抉择之路
   —————————————————————————————————— */
.option-hint {
    font-size: 13px !important;
    color: var(--gold-bright) !important;
    font-style: italic !important;
    margin-bottom: 14px !important;
    padding: 10px 14px !important;
    background:
        repeating-linear-gradient(0deg,
            transparent 0 22px,
            rgba(200, 40, 48, 0.06) 22px 23px),
        linear-gradient(90deg, rgba(200, 40, 48, 0.18), transparent) !important;
    border-left: 3px solid var(--blood-bright) !important;
    border-top: 1px solid var(--blood-deep) !important;
    border-bottom: 1px solid var(--blood-deep) !important;
    line-height: 1.7 !important;
    font-family: 'Noto Serif SC', Georgia, serif !important;
}
.option-hint::before {
    content: "▌ " !important;
    color: var(--blood-bright) !important;
    font-weight: 700 !important;
}
.option-item {
    display: flex !important;
    align-items: baseline !important;
    gap: 14px !important;
    padding: 11px 14px !important;
    margin: 7px 0 !important;
    border-radius: 0 !important;
    border: 1px solid var(--ink-border) !important;
    border-left: 4px solid var(--blood-deep) !important;
    transition: all 0.3s ease !important;
    background:
        linear-gradient(180deg, var(--ink-card), var(--ink-content)),
        repeating-linear-gradient(0deg, transparent 0 24px, rgba(200, 40, 48, 0.04) 24px 25px) !important;
    cursor: default !important;
    position: relative !important;
}
.option-item:hover {
    border-color: var(--blood) !important;
    border-left-color: var(--blood-bright) !important;
    border-left-width: 6px !important;
    padding-left: 16px !important;
    background:
        linear-gradient(180deg, var(--ink-content), var(--ink-hover)) !important;
    box-shadow: 0 4px 12px rgba(200, 40, 48, 0.2) !important;
    transform: translateX(4px) !important;
}
.opt-key {
    flex: 0 0 auto !important;
    font-weight: 900 !important;
    font-size: 16px !important;
    color: var(--blood-bright) !important;
    min-width: 28px !important;
    font-family: 'Courier New', monospace !important;
    text-shadow: 0 0 6px var(--blood-shadow) !important;
}
.opt-text {
    flex: 1 !important;
    font-size: 13.5px !important;
    color: var(--paper) !important;
    line-height: 1.75 !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
}

/* ——————————————————————————————————
   § 10  区块左侧色带
   —————————————————————————————————— */
.sec-player    { border-left: 3px solid var(--gold) !important; }
.sec-wife      { border-left: 3px solid var(--strawberry) !important; }
.sec-criminals { border-left: 3px solid var(--blood) !important; }
.sec-shame     { border-left: 3px solid var(--blood-bright) !important; }
.sec-memory    { border-left: 3px solid var(--text-muted) !important; }
.sec-options   { border-left: 3px solid var(--gold-bright) !important; }

/* ——————————————————————————————————
   § 11  Markdown 通用表格
   —————————————————————————————————— */
.rili-markdown-renderer table {
    border-collapse: collapse !important;
    background: var(--ink-card) !important;
    border: 1px solid var(--blood-deep) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6) !important;
}
.rili-markdown-renderer table th {
    background:
        repeating-linear-gradient(45deg,
            rgba(200, 40, 48, 0.18) 0 4px,
            rgba(200, 40, 48, 0.10) 4px 5px) !important;
    color: var(--gold-bright) !important;
    border: 1px solid var(--blood-deep) !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7) !important;
}
.rili-markdown-renderer table td {
    background: var(--ink-content) !important;
    color: var(--paper) !important;
    border: 1px solid var(--blood-deep) !important;
    padding: 7px 12px !important;
    font-size: 13px !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
}
.rili-markdown-renderer table tr:hover td {
    background: var(--ink-hover) !important;
}

/* ——————————————————————————————————
   § 12  输入框及周边控件 (Rili)
   —————————————————————————————————— */

form#prompt-input {
    background-color: transparent !important;
    box-shadow: none !important;
}

div[data-slot="input-group"] {
    background: var(--ink-deep) !important;
    border: 1px solid var(--blood-deep) !important;
    border-bottom: 2px solid var(--blood) !important;
    border-radius: var(--radius-main) !important;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.85),
        inset 0 2px 5px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(212, 160, 74, 0.08) !important;
    transition: all 0.3s ease !important;
}

div[data-slot="input-group"]:focus-within {
    border-color: var(--blood) !important;
    border-bottom-color: var(--blood-bright) !important;
    box-shadow:
        0 0 18px rgba(232, 56, 64, 0.35),
        0 4px 20px rgba(0, 0, 0, 0.9),
        inset 0 2px 5px rgba(0, 0, 0, 0.5) !important;
}

#prompt-input textarea {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--paper-bright) !important;
    padding: 12px 16px !important;
    font-size: 15.5px !important;
    line-height: 1.7 !important;
    font-family: "Noto Serif SC", Georgia, serif !important;
    letter-spacing: 0.3px !important;
}
#prompt-input textarea:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}
#prompt-input textarea::placeholder {
    color: var(--text-muted) !important;
    font-style: italic !important;
}

/* 上下功能按钮 */
#prompt-input-header button,
#prompt-input-footer button {
    background: transparent !important;
    border: 1px solid var(--gold) !important;
    color: var(--gold-bright) !important;
    border-radius: var(--radius-small) !important;
    box-shadow: none !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    transition: all 0.25s ease !important;
}

#prompt-input-header button:hover,
#prompt-input-footer button:hover {
    background: var(--ink-hover) !important;
    border-color: var(--gold-bright) !important;
    color: var(--paper-bright) !important;
    box-shadow: 0 0 14px rgba(212, 160, 74, 0.4) !important;
}

#prompt-input-header button svg,
#prompt-input-footer button svg {
    stroke: var(--gold) !important;
}
#prompt-input-header button:hover svg,
#prompt-input-footer button:hover svg {
    stroke: var(--gold-bright) !important;
}

/* 模型选择按钮文字与logo */
#prompt-input-footer .truncate {
    color: var(--gold) !important;
}
#prompt-input-footer button:hover .truncate {
    color: var(--gold-bright) !important;
}
#prompt-input-footer button img {
    filter: sepia(0.8) hue-rotate(-20deg) saturate(1.5) brightness(0.85) !important;
}

/* 发送按钮特化 · 血色印章 */
#prompt-input-footer button[type="submit"] {
    background: linear-gradient(180deg, var(--blood-bright), var(--blood) 50%, var(--blood-deep)) !important;
    color: var(--paper-bright) !important;
    border: 2px solid var(--paper) !important;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.7),
        0 0 18px var(--blood-shadow),
        inset 0 0 0 1px rgba(0, 0, 0, 0.4) !important;
    border-radius: var(--radius-small) !important;
    transition: all 0.3s ease !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6) !important;
}

#prompt-input-footer button[type="submit"]:hover {
    background: linear-gradient(180deg, #ff5050, var(--blood-bright) 50%, var(--blood)) !important;
    box-shadow:
        0 4px 14px rgba(0, 0, 0, 0.85),
        0 0 28px rgba(232, 56, 64, 0.7),
        inset 0 0 0 1px rgba(0, 0, 0, 0.5) !important;
    transform: none !important;
    letter-spacing: 1.5px !important;
}

#prompt-input-footer button[type="submit"] svg {
    stroke: var(--paper-bright) !important;
}

/* ——————————————————————————————————
   § 13  加载动画 · 相机快门闪光
   —————————————————————————————————— */
@keyframes shutter-blink {
    0%, 100% {
        background: linear-gradient(180deg, var(--blood-bright), var(--blood-deep));
        box-shadow: 0 0 8px var(--blood-shadow);
    }
    50% {
        background: linear-gradient(180deg, var(--paper-bright), var(--paper));
        box-shadow: 0 0 22px var(--paper-bright), 0 0 32px rgba(232, 56, 64, 0.55);
    }
}
@keyframes shutter-rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

div:has(> .style_dot-flashing__8L91Q),
.sonner-loading-wrapper {
    justify-content: flex-start !important;
    width: auto !important;
    height: auto !important;
}

div:has(> .style_dot-flashing__8L91Q)::after,
.sonner-loading-wrapper::after {
    content: '▌ 黄毛正在调整镜头…' !important;
    font-size: 13px !important;
    color: var(--blood-bright) !important;
    margin-left: 14px !important;
    font-family: 'Courier New', "Noto Serif SC", monospace !important;
    letter-spacing: 2.5px !important;
    text-shadow: 0 0 10px var(--blood-shadow) !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

.style_dot-flashing__8L91Q::before,
.style_dot-flashing__8L91Q::after,
.sonner-spinner {
    content: none !important;
    display: none !important;
}

.style_dot-flashing__8L91Q,
.sonner-loading-wrapper::before {
    content: '' !important;
    display: inline-block !important;
    position: relative !important;
    width: 18px !important;
    height: 18px !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
    border-radius: 50% !important;
    border: 2px solid var(--blood-deep) !important;
    background: linear-gradient(180deg, var(--blood-bright), var(--blood-deep)) !important;
    animation:
        shutter-blink 1.8s ease-in-out infinite,
        shutter-rotate 2.5s linear infinite !important;
}

/* ——————————————————————————————————
   § 14  响应式 · 移动端
   —————————————————————————————————— */
@media (max-width: 480px) {
    .status-panel {
        font-size: 12.5px !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
    .sp-label { min-width: 76px !important; font-size: 10.5px !important; letter-spacing: 1.5px !important; }
    .sp-val { font-size: 12.5px !important; }
    .sp-header { padding: 11px 14px !important; font-size: 11.5px !important; letter-spacing: 2.5px !important; }
    .sp-body { padding: 14px 16px 16px !important; }
    .sp-bar-wrap { min-width: 100px !important; }
    .option-item { padding: 9px 12px !important; }
    .rili-markdown-renderer summary { padding: 11px 16px !important; font-size: 12.5px !important; }
    .rili-markdown-renderer p { font-size: 15px !important; }
    .mem-table { font-size: 11px !important; }
    .mem-table th, .mem-table td { padding: 5px 5px !important; }
    .shame-entry { padding: 12px 14px !important; }
    .shame-body { font-size: 12.5px !important; }
}

@media (max-width: 360px) {
    .sp-row { flex-direction: column !important; gap: 3px !important; }
    .sp-label { min-width: unset !important; }
    .bar-row .sp-bar-wrap { width: 100% !important; }
}