/* ============================================
   失忆的修罗场 - 专属样式表
   版本：1.0
   ============================================ */

:root {
    --font-main: 'Noto Serif SC', 'Source Han Serif SC', serif;
    --font-ui: 'PingFang SC', 'Microsoft YaHei', sans-serif;
    
    /* 字号（清晰舒适） */
    --fs-body: 21px;
    --fs-h3: 22px;
    --fs-detail: 19px;
    --fs-small: 17px;
    --fs-table: 18px;
    
    /* 色板（医疗×情感） */
    --c-bg: #f5f7fa;
    --c-surface: #ffffff;
    --c-border: #dce1e8;
    --c-text: #2c3a4b;
    --c-text-soft: #5f6b7a;
    --c-accent: #4a6fa5;
    --c-accent-soft: #8aa4c9;
    
    /* 对话色 */
    --c-shen: #b8586a;   /* 沈氏姐妹，暖蔷薇 */
    --c-xuan: #7b4b8a;   /* 林萱，冷紫 */
    --c-npc: #5e7a8c;    /* 其他 */
}

body, .output-content {
    font-family: var(--font-main);
    font-size: var(--fs-body);
    line-height: 1.8;
    color: var(--c-text);
    background: var(--c-bg);
    padding: 16px;
}

/* --- 折叠卡片通用 --- */
details {
    margin: 20px 0;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: var(--c-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    overflow: hidden;
}
details[open] { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }

summary {
    font-family: var(--font-ui);
    font-size: var(--fs-h3);
    font-weight: 600;
    padding: 16px 20px;
    background: linear-gradient(135deg, #eef2f6, #dfe6ed);
    border-bottom: 1px solid var(--c-border);
    color: var(--c-accent);
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 10px;
}
summary::-webkit-details-marker { display: none; }
summary::before {
    content: "▸";
    font-size: 18px;
    transition: transform 0.2s;
    color: var(--c-accent-soft);
}
details[open] > summary::before { transform: rotate(90deg); }

/* 折叠内容区 */
details > *:not(summary) {
    padding: 18px 20px;
    font-size: var(--fs-detail);
}

/* --- 各类专属块 --- */
details.status-block summary { background: linear-gradient(135deg, #f2f5f8, #e1e8f0); }
details.status-block summary::before { content: "📋 "; }

details.player-status summary { background: linear-gradient(135deg, #f0f4f8, #d9e2ec); }
details.player-status summary::before { content: "🧑 "; }

details.npc-status summary { background: linear-gradient(135deg, #f8f4f7, #ece0ea); }
details.npc-status summary::before { content: "👤 "; }

details.memory-block summary { background: linear-gradient(135deg, #f4f6f9, #dde5ef); }
details.memory-block summary::before { content: "🌌 "; }

/* --- 状态栏右对齐优化 --- */
details.player-status > *:not(summary),
details.npc-status > *:not(summary) {
    text-align: right;
    direction: rtl;
}
details.player-status table,
details.npc-status table,
details.player-status code,
details.npc-status code {
    direction: ltr;
    text-align: left;
}
details.player-status td,
details.npc-status td {
    text-align: right;
}
details.player-status td:first-child,
details.npc-status td:first-child {
    text-align: left;
    font-weight: 600;
}

/* --- 表格 --- */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    font-size: var(--fs-table);
    font-family: var(--font-ui);
    background: var(--c-surface);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
thead th {
    background: #eef2f6;
    color: var(--c-text);
    font-weight: 700;
    padding: 12px 10px;
    border-bottom: 2px solid var(--c-border);
    text-align: left;
}
tbody td {
    padding: 10px 10px;
    border-bottom: 1px solid var(--c-border);
    line-height: 1.6;
}
tbody tr:nth-child(even) { background: #fafbfc; }

/* --- 对话染色 --- */
span.shen-speech { color: var(--c-shen); font-weight: 600; }
span.xuan-speech { color: var(--c-xuan); font-weight: 600; }
span.npc-speech   { color: var(--c-npc); font-weight: 600; }

p:has(span.shen-speech) {
    border-left: 4px solid var(--c-shen);
    padding-left: 14px;
    background: linear-gradient(90deg, rgba(184,88,106,0.05), transparent 60%);
}
p:has(span.xuan-speech) {
    border-left: 4px solid var(--c-xuan);
    padding-left: 14px;
    background: linear-gradient(90deg, rgba(123,75,138,0.05), transparent 60%);
}
p:has(span.npc-speech) {
    border-left: 4px solid var(--c-npc);
    padding-left: 14px;
    background: linear-gradient(90deg, rgba(94,122,140,0.05), transparent 60%);
}

/* 响应式 */
@media (max-width: 480px) {
    :root {
        --fs-body: 20px;
        --fs-h3: 21px;
        --fs-detail: 18px;
        --fs-small: 16px;
        --fs-table: 17px;
    }
    summary { padding: 14px 16px; }
    details > *:not(summary) { padding: 14px 16px; }
}