/* ═══════════════════════════════════════
   路人女主的养成方法 · 内置CSS
   冴えない彼女の育てかた · IF Another World
   樱花粉主题 · 对话带头像 · 拟真地图
   ═══════════════════════════════════════ */

/* ═══════════════════════════════════════
   折叠面板（覆盖平台默认样式）
   ═══════════════════════════════════════ */

.markdown-body details {
  background: #fff !important;
  border: 1px solid rgba(255,183,197,0.35) !important;
  border-radius: 12px !important;
  margin: 12px 0 !important;
  box-shadow: 0 2px 8px rgba(255,183,197,0.1) !important;
  overflow: visible !important;
  color: #37474F !important;
}

.markdown-body details > summary {
  list-style: none !important;
  cursor: pointer !important;
  padding: 11px 16px !important;
  background: linear-gradient(135deg, #FFF5F7, #FFF0F5) !important;
  color: #37474F !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  border-bottom: 1px solid rgba(255,183,197,0.3) !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  border-radius: 12px 12px 0 0 !important;
  letter-spacing: 0.5px !important;
}

.markdown-body details:not([open]) > summary {
  border-radius: 12px !important;
  border-bottom: none !important;
}

.markdown-body details > summary::before { content: none !important; }
.markdown-body details > summary::marker { display: none !important; }

.markdown-body details > *:not(summary) {
  padding: 14px 16px !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
  color: #37474F !important;
  overflow: visible !important;
  background: #fff !important;
}

/* ═══════════════════════════════════════
   表格统一
   ═══════════════════════════════════════ */

.markdown-body table {
  border-collapse: collapse !important;
  width: 100% !important;
  font-size: 14px !important;
  margin: 8px 0 !important;
  background: #fff !important;
}

.markdown-body th {
  background: linear-gradient(135deg, #D81B60, #E91E63) !important;
  color: #fff !important;
  padding: 7px 12px !important;
  text-align: left !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  border: 1px solid #C2185B !important;
}

.markdown-body td {
  padding: 6px 12px !important;
  border: 1px solid rgba(255,183,197,0.3) !important;
  color: #37474F !important;
  vertical-align: top !important;
  font-size: 14px !important;
  background: #fff !important;
}

.markdown-body tr:nth-child(even) td {
  background: #FFF8F9 !important;
}

/* ═══════════════════════════════════════
   对话气泡 · 带圆形头像 · 角色色系
   ═══════════════════════════════════════ */

.markdown-body .talk {
  position: relative;
  margin: 14px 0;
  padding: 12px 16px 12px 54px;
  border-radius: 2px 14px 14px 14px;
  border-left: 4px solid #ccc;
  background: #fff;
  font-size: 15px;
  line-height: 1.85;
  color: #37474F;
  box-shadow: 0 1px 6px rgba(0,0,0,0.05);
  border-top: 1px solid #f0f0f0;
  border-right: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
  min-height: 52px;
}

.markdown-body .talk::before {
  font-size: 13px;
  font-weight: 700;
  display: block;
  margin-bottom: 4px;
  letter-spacing: 0.5px;
}

.markdown-body .talk::after {
  content: '';
  position: absolute;
  left: 10px;
  top: 10px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eee center/cover no-repeat;
  border: 2px solid #ccc;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

/* 安艺伦也 */
.markdown-body .talk-tomoya { border-left-color: #455A64; }
.markdown-body .talk-tomoya::before { content: '🎮 安艺伦也'; color: #37474F; }
.markdown-body .talk-tomoya::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f06bf1d75.webp');
  background-size: cover;
  border-color: #455A64;
}

/* 加藤惠 */
.markdown-body .talk-megumi { border-left-color: #A1887F; }
.markdown-body .talk-megumi::before { content: '🤍 加藤惠'; color: #5D4037; }
.markdown-body .talk-megumi::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f08236250.webp');
  background-size: cover;
  border-color: #A1887F;
}

/* 霞之丘诗羽 */
.markdown-body .talk-utaha { border-left-color: #7B1FA2; }
.markdown-body .talk-utaha::before { content: '📖 霞之丘诗羽'; color: #4A148C; }
.markdown-body .talk-utaha::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f0a58294e.webp');
  background-size: cover;
  border-color: #7B1FA2;
}

/* 泽村英梨梨 */
.markdown-body .talk-eriri { border-left-color: #EF6C00; }
.markdown-body .talk-eriri::before { content: '🎨 泽村英梨梨'; color: #E65100; }
.markdown-body .talk-eriri::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f0c7a5b45.webp');
  background-size: cover;
  border-color: #EF6C00;
}

/* 冰堂美智留 */
.markdown-body .talk-michiru { border-left-color: #C62828; }
.markdown-body .talk-michiru::before { content: '🎸 冰堂美智留'; color: #B71C1C; }
.markdown-body .talk-michiru::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f0e9cbae0.webp');
  background-size: cover;
  border-color: #C62828;
}

/* 波岛出海 */
.markdown-body .talk-izumi { border-left-color: #1565C0; }
.markdown-body .talk-izumi::before { content: '🖋️ 波岛出海'; color: #0D47A1; }
.markdown-body .talk-izumi::after {
  background-image: url('https://picui.ogmua.cn/s1/2026/03/26/69c4f117f05ec.webp');
  background-size: cover;
  border-color: #1565C0;
}

/* 玩家（通用标识，AI不应输出此class） */
.markdown-body .talk-player {
  border-left-color: #D81B60;
  background: #FFF8F9;
}
.markdown-body .talk-player::before {
  content: '🎭 你';
  color: #D81B60;
}
.markdown-body .talk-player::after {
  background: linear-gradient(135deg, #FFB7C5, #D81B60);
  border-color: #D81B60;
  background-image: none;
}

/* ═══════════════════════════════════════
   内心独白 · 薄樱便签风
   ═══════════════════════════════════════ */

.markdown-body .thought {
  display: inline-block;
  background: #FFF8F0;
  color: #8D6E63;
  font-style: italic;
  font-size: 14px;
  padding: 5px 14px;
  margin: 6px 2px;
  border-bottom: 2px solid #FFCCBC;
  border-right: 1px solid #FFE0B2;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.05);
  transform: rotate(-0.3deg);
  letter-spacing: 0.3px;
  line-height: 1.55;
  position: relative;
  border-radius: 2px;
}

.markdown-body .thought::before {
  content: '💭';
  font-size: 0.7em;
  position: absolute;
  top: -5px;
  left: 5px;
  font-style: normal;
}

/* ═══════════════════════════════════════
   拟声词 · 轻小说风
   ═══════════════════════════════════════ */

.markdown-body .sfx {
  display: inline-block;
  font-weight: 800;
  font-size: 16px;
  color: #D81B60;
  padding: 2px 10px;
  margin: 0 3px;
  position: relative;
  letter-spacing: 2px;
}

.markdown-body .sfx::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: repeating-linear-gradient(90deg, #FFB7C5 0 3px, transparent 3px 5px);
  opacity: 0.5;
  border-radius: 1px;
}

/* ═══════════════════════════════════════
   场景切割线
   ═══════════════════════════════════════ */

.markdown-body .scene-cut {
  text-align: center;
  color: #F06292;
  font-size: 14px;
  margin: 26px 0;
  position: relative;
  letter-spacing: 3px;
}

.markdown-body .scene-cut::before,
.markdown-body .scene-cut::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 24%;
  height: 1px;
  background: linear-gradient(90deg, transparent, #FFB7C5, transparent);
}
.markdown-body .scene-cut::before { left: 0; }
.markdown-body .scene-cut::after { right: 0; }

/* ═══════════════════════════════════════
   CoT 思维链
   ═══════════════════════════════════════ */

.cot-inner {
  font-size: 14px;
  color: #78909C;
  line-height: 1.75;
}

.cot-inner strong {
  color: #D81B60;
  display: block;
  margin-top: 10px;
  padding: 3px 0;
  border-bottom: 1px dotted rgba(255,183,197,0.5);
  font-size: 14px;
}

/* ═══════════════════════════════════════
   世界信息面板
   ═══════════════════════════════════════ */

.world-panel {
  font-size: 15px;
  line-height: 2;
  padding: 12px 16px;
  background: #fff;
  border-left: 3px solid #D81B60;
  color: #37474F;
}

/* ═══════════════════════════════════════
   🗺️ 场景地图（深色底 · 白字 · 强制覆盖）
   ═══════════════════════════════════════ */

.markdown-body .map-wrap {
  padding: 10px !important;
  background: linear-gradient(170deg, #1a1520, #2a1f35) !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255,183,197,0.25) !important;
  color: #fff !important;
}

.markdown-body .map-zone {
  margin-bottom: 8px !important;
}

.markdown-body .map-zone-title {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #FFB7C5 !important;
  padding: 4px 10px !important;
  margin-bottom: 6px !important;
  letter-spacing: 1px !important;
  border-bottom: 1px solid rgba(255,183,197,0.2) !important;
}

.markdown-body .map-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 6px !important;
  padding: 4px !important;
}

@media (max-width: 420px) {
  .markdown-body .map-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

.markdown-body .map-node {
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  border-radius: 8px !important;
  padding: 10px 6px !important;
  text-align: center !important;
  transition: all 0.3s !important;
  position: relative !important;
}

.markdown-body .map-node:hover {
  background: rgba(255,183,197,0.12) !important;
  border-color: rgba(255,183,197,0.35) !important;
}

/* 当前所在位置高亮 */
.markdown-body .mn-here {
  background: rgba(216,27,96,0.2) !important;
  border-color: rgba(216,27,96,0.6) !important;
  box-shadow: 0 0 14px rgba(216,27,96,0.25), inset 0 0 10px rgba(216,27,96,0.08) !important;
}

.markdown-body .mn-here::before {
  content: '📍' !important;
  position: absolute !important;
  top: -8px !important;
  right: -4px !important;
  font-size: 13px !important;
}

.markdown-body .mn-icon {
  font-size: 1.4em !important;
  margin-bottom: 3px !important;
  display: block !important;
}

.markdown-body .mn-label {
  font-size: 12px !important;
  color: #fff !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5) !important;
}

.markdown-body .mn-who {
  font-size: 11px !important;
  color: #FFD54F !important;
  margin-top: 4px !important;
  min-height: 16px !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.5) !important;
}

.markdown-body .map-divider {
  text-align: center !important;
  font-size: 11px !important;
  color: rgba(255,183,197,0.5) !important;
  margin: 8px 0 !important;
  letter-spacing: 3px !important;
}

/* 工作室节点特殊高亮 */
.markdown-body .mn-studio {
  border-color: rgba(216,27,96,0.35) !important;
  background: rgba(216,27,96,0.1) !important;
}

/* 手机端适配 */
@media (max-width: 600px) {
  .markdown-body .map-grid { gap: 4px !important; }
  .markdown-body .map-node { padding: 8px 4px !important; }
  .markdown-body .mn-icon { font-size: 1.2em !important; }
  .markdown-body .mn-label { font-size: 11px !important; }
  .markdown-body .mn-who { font-size: 10px !important; }
}

/* ═══════════════════════════════════════
   📱 LINE 浮窗
   ═══════════════════════════════════════ */

.phone-frame {
  background: #0B0E11;
  border-radius: 20px;
  overflow: hidden;
  border: 2.5px solid #1a1f25;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  max-width: 340px;
  margin: 10px auto;
  font-size: 14px;
}

.phone-status {
  display: flex;
  justify-content: space-between;
  padding: 6px 14px;
  font-size: 12px;
  color: #666;
  background: #0F1318;
  border-bottom: 1px solid #1a1f25;
}

.phone-time {
  font-weight: 700;
  color: #ddd;
  font-size: 13px;
}

.phone-body {
  padding: 10px 14px 14px;
  color: #ccc;
  line-height: 1.8;
  background: #0B0E11;
}

.app-section {
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #1a1f25;
}

.app-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.app-head {
  font-weight: 700;
  font-size: 14px;
  color: #06C755; /* LINE绿色 */
  margin-bottom: 4px;
}

.app-msg {
  font-size: 13px;
  color: #999;
  padding-left: 10px;
  border-left: 2px solid #1a2a1f;
  margin: 3px 0;
  line-height: 1.55;
}

/* ═══════════════════════════════════════
   💕 关系面板
   ═══════════════════════════════════════ */

.rel-panel {
  font-size: 14px;
  line-height: 1.8;
  color: #37474F;
}

/* ═══════════════════════════════════════
   创作记忆面板
   ═══════════════════════════════════════ */

.memory-panel {
  font-size: 14px;
  line-height: 1.7;
  color: #37474F;
}

.memory-config {
  background: #FFF5F7;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  color: #78909C;
  font-family: 'Consolas', 'Monaco', monospace;
  line-height: 1.9;
  border: 1px solid rgba(255,183,197,0.3);
}

/* ═══════════════════════════════════════
   行动选项 · 樱花便签
   ═══════════════════════════════════════ */

.markdown-body .action-box {
  background: #FFF8F9;
  border: 1px solid rgba(255,183,197,0.4);
  border-radius: 12px;
  padding: 16px 18px;
  margin: 14px 0;
  position: relative;
  box-shadow: 0 2px 8px rgba(255,183,197,0.1);
  line-height: 2;
  font-size: 15px;
  color: #37474F;
}

.markdown-body .action-box::before {
  content: '🌸 你的选择';
  display: block;
  font-weight: 700;
  color: #D81B60;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255,183,197,0.3);
  font-size: 15px;
  letter-spacing: 1px;
}

/* ═══════════════════════════════════════
   手机适配
   ═══════════════════════════════════════ */

@media (max-width: 600px) {
  .phone-frame { max-width: 100%; border-radius: 16px; }
  .markdown-body .talk { padding: 10px 14px 10px 48px; font-size: 14px; }
  .markdown-body .talk::after { width: 28px; height: 28px; left: 8px; top: 10px; }
  .markdown-body .sfx { font-size: 15px; }
  .markdown-body .action-box { padding: 12px 14px; font-size: 14px; }
  .markdown-body details > summary { font-size: 14px !important; padding: 10px 14px !important; }
  .markdown-body details > *:not(summary) { font-size: 14px !important; padding: 12px 14px !important; }
  .map-grid { gap: 4px; }
  .map-node { padding: 6px 4px; }
  .mn-icon { font-size: 1.1em; }
  .mn-label { font-size: 10px; }
}
