/* ============================================================
   兽人卡 · 森林契约主题 CSS（白金酒红轻量版 · 零空行约束）
   ============================================================ */
.markdown-body, .forest-card { background: #fcfbf9 !important; color: #2c3e50 !important; font-family: "Palatino Linotype", "Book Antiqua", Palatino, "Noto Serif SC", "Songti SC", serif !important; font-size: 15.5px !important; line-height: 1.8 !important; }
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: #faf9f6; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::selection { background: rgba(139,58,58,0.1); }
.top { background: #1e293b; padding: 16px 20px; border-radius: 12px; border: 1px solid #334155; border-left: 4px solid #8b3a3a; color: #f8fafc; margin-bottom: 16px; font-family: -apple-system, system-ui, sans-serif; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.top .row { display: flex; flex-wrap: wrap; gap: 12px; margin: 6px 0; }
.top .label { font-size: 12px; color: #94a3b8; }
.top .tag { background: #334155; padding: 2px 12px; border-radius: 40px; font-weight: 600; font-size: 12px; color: #f8fafc; }
.top .tag.green { background: rgba(252,165,165,0.15); color: #fca5a5; }
.top hr { border: none; border-top: 1px solid #334155; margin: 12px 0; }
.top .stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 8px 16px; background: rgba(15,23,42,0.3); border-radius: 8px; padding: 12px; }
.top .stat-grid div { color: #cbd5e1; }
.txt { background: #ffffff; padding: 24px 28px; border-radius: 8px; margin-bottom: 24px; font-family: "Palatino Linotype", "Noto Serif SC", "Songti SC", serif; color: #2c3e50; border: 1px solid #eae6df; text-align: justify; box-shadow: 0 2px 12px rgba(0,0,0,0.01); }
.txt p { text-indent: 2em; margin-bottom: 1.2em; }
.dialogue-kanata { color: #2c3e50; font-weight: bold; }
.dialogue-naya { color: #8b3a3a; font-weight: bold; }
.dialogue-raikui { color: #b91c1c; font-weight: 900; }
details:not(.monitor-panel) { width: 100%; margin-bottom: 14px; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; transition: all 0.2s; }
details:not(.monitor-panel):hover { border-color: #cbd5e1; }
details:not(.monitor-panel) summary { padding: 12px 16px; background: #f8fafc; cursor: pointer; font-weight: 700; font-size: 13.5px; color: #2c3e50; border-bottom: 1px solid #e2e8f0; display: flex; align-items: center; list-style: none; user-select: none; }
details:not(.monitor-panel) summary::-webkit-details-marker { display: none; }
details:not(.monitor-panel) summary::before { content: "▸"; margin-right: 8px; font-size: 12px; color: #94a3b8; transition: transform 0.2s; display: inline-block; }
details:not(.monitor-panel)[open] summary::before { transform: rotate(90deg); }
details:not(.monitor-panel)[open] summary { border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
details:not(.monitor-panel)[open] > :not(summary) { padding: 14px 18px; background: #ffffff; font-family: -apple-system, system-ui, sans-serif; font-size: 13px; line-height: 1.7; color: #4f5f6e; }
.monitor-panel { background: #ffffff !important; border: 1px solid #e2e8f0 !important; border-radius: 8px !important; overflow: hidden !important; box-shadow: 0 2px 8px rgba(0,0,0,0.02) !important; margin-bottom: 14px; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.monitor-panel:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(30,41,59,0.05); border-color: #cbd5e1 !important; }
.monitor-panel summary { background: linear-gradient(to right, #f8fafc, #ffffff) !important; color: #2c3e50 !important; border-bottom: 1px solid #e2e8f0 !important; font-size: 13.5px !important; font-weight: bold; padding: 12px 16px !important; cursor: pointer; list-style: none; user-select: none; }
.monitor-panel summary::-webkit-details-marker { display: none; }
.monitor-panel[open] summary { background: #f8fafc !important; }
.monitor-panel .panel-content { padding: 16px 20px !important; background: #ffffff !important; color: #4f5f6e !important; font-family: -apple-system, system-ui, sans-serif !important; font-size: 13px !important; line-height: 1.8; }
.monitor-panel .panel-content * { text-shadow: none !important; color: #4f5f6e !important; }
.monitor-panel .panel-content td, .monitor-panel .panel-content span, .monitor-panel .panel-content p, .monitor-panel .panel-content li { color: #4f5f6e !important; }
.monitor-panel .panel-content td:first-child, .monitor-panel .panel-content strong { color: #2c3e50 !important; font-weight: bold; letter-spacing: 0.2px; }
.monitor-panel .delta, .monitor-panel .delta * { color: #ef4444 !important; font-weight: bold; background: rgba(239,68,68,0.06) !important; padding: 2px 6px; border-radius: 4px; margin-left: 4px; }
@keyframes valueFlash { 0% { background: rgba(139,58,58,0.15); color: #8b3a3a; } 100% { background: transparent; color: inherit; } }
.value-flash { animation: valueFlash 0.5s ease-out; }
.monitor-panel .inner-em, .monitor-panel .inner-em * { margin-top: 10px; font-style: italic; color: #2c3e50 !important; background: #faf9f6 !important; padding: 8px 14px; border-radius: 4px; border-left: 3px solid #8b3a3a; font-size: 13px; }
.monitor-panel .memory-summary, .monitor-panel .memory-summary * { background: #faf9f6 !important; color: #2c3e50 !important; border-left: 3px solid #8b3a3a; padding: 6px 12px; border-radius: 4px; margin: 8px 0; }
.monitor-panel .memory-list { margin: 6px 0 0 20px; }
.monitor-panel .memory-list li { margin: 4px 0; }
.monitor-panel .divider-dash { border-top: 1px dashed #eae6df !important; margin: 14px 0; height: 0; }
.monitor-panel .inner-grid { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 10px 0; }
.next { border: 2px solid #2c3e50; background: #ffffff; box-shadow: 4px 4px 0 #2c3e50; margin-top: 24px; border-radius: 4px; overflow: hidden; width: 100%; transition: all 0.1s; }
.next:hover { box-shadow: 2px 2px 0 #2c3e50; transform: translate(2px, 2px); }
.next summary { background: #faf9f6; border-bottom: 1px solid #eae6df; padding: 12px 20px; font-weight: bold; font-size: 15px; color: #2c3e50; cursor: pointer; list-style: none; user-select: none; }
.next summary::-webkit-details-marker { display: none; }
.next summary::before { content: "➤"; margin-right: 8px; font-size: 12px; color: #2c3e50; transition: transform 0.2s; display: inline-block; }
.next[open] summary::before { transform: rotate(90deg); }
.next .action-items { padding: 16px 20px; display: flex; flex-direction: column; gap: 10px; background: #ffffff; }
.action-item { background: #ffffff; border-left: 3px solid #eae6df; padding: 10px 14px; border-radius: 0px; transition: all 0.1s ease; cursor: pointer; color: #4f5f6e; }
.action-item:active { transform: scale(0.99); background: #faf9f6; }
.action-item strong { color: #2c3e50; }
.action-item:hover { background: #faf9f6; border-left-color: #8b3a3a; color: #2c3e50; }
@media (max-width: 768px) { .top { padding: 12px 14px; } .top .stat-grid { grid-template-columns: 1fr; } .txt { padding: 20px; font-size: 15px; } .monitor-panel .panel-content { padding: 14px 16px !important; } .inner-grid { gap: 6px 12px; } summary { padding: 10px 16px; } .next .action-items { padding: 12px 16px; } }
@media (max-width: 480px) { .txt p { text-indent: 1.5em; } .dialogue-naya, .dialogue-raikui, .dialogue-kanata { display: inline; } }