@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=ZCOOL+XiaoWei&display=swap');

body {
  background: linear-gradient(135deg, #0d0d1a 0%, #1a0a1f 50%, #0f0a14 100%) !important;
  background-attachment: fixed !important;
  color: #e8e4df !important;
  font-family: 'Noto Serif SC', 'ZCOOL XiaoWei', serif !important;
  line-height: 1.9 !important;
  letter-spacing: 0.03em !important;
}

.rev-main {
  background: linear-gradient(180deg, rgba(26,15,35,0.92) 0%, rgba(18,10,25,0.95) 100%) !important;
  border-left: 3px solid #8b5cf6 !important;
  border-right: 1px solid rgba(139,92,246,0.3) !important;
  padding: 28px 32px !important;
  margin: 20px 0 !important;
  border-radius: 0 12px 12px 0 !important;
  box-shadow: 0 4px 30px rgba(139,92,246,0.15), inset 0 1px 0 rgba(255,255,255,0.05) !important;
  color: #f0ebe6 !important;
  font-size: 16px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.5) !important;
}

.char-dialogue {
  color: #e879f9 !important;
  font-weight: 600 !important;
  text-shadow: 0 0 8px rgba(232,121,249,0.4) !important;
}

.inner-thought {
  color: #a5b4fc !important;
  font-style: italic !important;
  opacity: 0.92 !important;
  border-left: 2px solid rgba(165,180,252,0.5) !important;
  padding-left: 12px !important;
  margin: 8px 0 !important;
  display: block !important;
}

.scene-info {
  background: linear-gradient(90deg, rgba(88,28,135,0.25) 0%, rgba(30,20,40,0.4) 100%) !important;
  border: 1px solid rgba(168,85,247,0.4) !important;
  border-radius: 8px !important;
  padding: 16px 20px !important;
  margin: 16px 0 !important;
  color: #d8b4fe !important;
  font-size: 14px !important;
}

.system-alert {
  background: linear-gradient(90deg, rgba(127,29,29,0.35) 0%, rgba(40,15,20,0.5) 100%) !important;
  border: 1px solid rgba(239,68,68,0.5) !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  margin: 14px 0 !important;
  color: #fca5a5 !important;
  font-weight: 600 !important;
  box-shadow: 0 0 20px rgba(239,68,68,0.2) !important;
}

.choice-panel {
  background: linear-gradient(135deg, rgba(49,10,60,0.9) 0%, rgba(25,5,35,0.95) 100%) !important;
  border: 2px solid #a855f7 !important;
  border-radius: 12px !important;
  padding: 22px 26px !important;
  margin: 24px 0 !important;
  box-shadow: 0 0 25px rgba(168,85,247,0.3), inset 0 0 40px rgba(168,85,247,0.1) !important;
}

.choice-panel pre {
  background: transparent !important;
  color: #f3e8ff !important;
  font-family: 'Noto Serif SC', serif !important;
  font-size: 15px !important;
  line-height: 2.2 !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: pre-wrap !important;
}

.coser-panel {
  background: linear-gradient(180deg, rgba(30,15,40,0.88) 0%, rgba(20,10,30,0.92) 100%) !important;
  border: 1px solid rgba(139,92,246,0.45) !important;
  border-radius: 10px !important;
  margin: 12px 0 !important;
  overflow: hidden !important;
  backdrop-filter: blur(10px) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4) !important;
}

.coser-panel summary {
  background: linear-gradient(90deg, rgba(88,28,135,0.5) 0%, rgba(50,20,70,0.6) 50%, rgba(88,28,135,0.5) 100%) !important;
  color: #e9d5ff !important;
  padding: 14px 20px !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 0.08em !important;
  border-bottom: 1px solid rgba(168,85,247,0.3) !important;
  transition: all 0.3s ease !important;
  list-style: none !important;
}

.coser-panel summary::-webkit-details-marker {
  display: none !important;
}

.coser-panel summary::before {
  content: '◆ ' !important;
  color: #c084fc !important;
}

.coser-panel[open] summary {
  background: linear-gradient(90deg, rgba(126,34,206,0.6) 0%, rgba(70,30,90,0.7) 50%, rgba(126,34,206,0.6) 100%) !important;
  box-shadow: 0 2px 15px rgba(192,132,252,0.3) !important;
}

.coser-panel pre {
  background: rgba(15,8,25,0.6) !important;
  color: #ddd6fe !important;
  padding: 18px 22px !important;
  margin: 12px !important;
  border-radius: 8px !important;
  font-family: 'Noto Serif SC', serif !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  border: 1px solid rgba(139,92,246,0.2) !important;
  white-space: pre-wrap !important;
}

.coser-panel table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 12px !important;
  font-size: 13px !important;
}

.coser-panel th {
  background: rgba(88,28,135,0.5) !important;
  color: #f3e8ff !important;
  padding: 10px 14px !important;
  text-align: left !important;
  font-weight: 700 !important;
  border-bottom: 2px solid #a855f7 !important;
}

.coser-panel td {
  padding: 10px 14px !important;
  border-bottom: 1px solid rgba(139,92,246,0.25) !important;
  color: #d8b4fe !important;
}

.coser-panel tr:hover td {
  background: rgba(139,92,246,0.1) !important;
}

.thinking-panel {
  border-color: rgba(99,102,241,0.4) !important;
}

.thinking-panel summary {
  background: linear-gradient(90deg, rgba(49,46,129,0.5) 0%, rgba(30,27,75,0.6) 100%) !important;
  color: #a5b4fc !important;
}

.memo-panel {
  border-color: rgba(20,184,166,0.4) !important;
}

.memo-panel summary {
  background: linear-gradient(90deg, rgba(17,94,89,0.5) 0%, rgba(10,60,55,0.6) 100%) !important;
  color: #5eead4 !important;
}

.memo-panel summary::before {
  color: #2dd4bf !important;
}

.memory-panel {
  border-color: rgba(251,191,36,0.4) !important;
}

.memory-panel summary {
  background: linear-gradient(90deg, rgba(120,80,20,0.5) 0%, rgba(70,50,15,0.6) 100%) !important;
  color: #fde68a !important;
}

.memory-panel summary::before {
  color: #fbbf24 !important;
}

.registry-panel {
  border-color: rgba(244,114,182,0.4) !important;
}

.registry-panel summary {
  background: linear-gradient(90deg, rgba(131,24,67,0.5) 0%, rgba(80,20,50,0.6) 100%) !important;
  color: #fbcfe8 !important;
}

.registry-panel summary::before {
  color: #f472b6 !important;
}

.clue-panel {
  border-color: rgba(34,211,238,0.4) !important;
}

.clue-panel summary {
  background: linear-gradient(90deg, rgba(14,116,144,0.5) 0%, rgba(10,70,90,0.6) 100%) !important;
  color: #a5f3fc !important;
}

.clue-panel summary::before {
  color: #22d3ee !important;
}

.npc-panel {
  border-color: rgba(251,113,133,0.5) !important;
  box-shadow: 0 4px 25px rgba(251,113,133,0.2) !important;
}

.npc-panel summary {
  background: linear-gradient(90deg, rgba(136,19,55,0.6) 0%, rgba(80,15,40,0.7) 50%, rgba(136,19,55,0.6) 100%) !important;
  color: #fecdd3 !important;
}

.npc-panel summary::before {
  color: #fb7185 !important;
}

hr {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent 0%, #a855f7 20%, #c084fc 50%, #a855f7 80%, transparent 100%) !important;
  margin: 28px 0 !important;
  opacity: 0.7 !important;
}

::-webkit-scrollbar {
  width: 10px !important;
  height: 10px !important;
}

::-webkit-scrollbar-track {
  background: rgba(15,10,25,0.8) !important;
  border-radius: 5px !important;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #7c3aed 0%, #581c87 100%) !important;
  border-radius: 5px !important;
  border: 2px solid rgba(15,10,25,0.8) !important;
}

::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #8b5cf6 0%, #6b21a8 100%) !important;
}

::selection {
  background: rgba(168,85,247,0.4) !important;
  color: #faf5ff !important;
}