/* ============================================================
   大梁风华录 · 内置CSS
   主题：宣纸古卷 · 朱砂墨韵
   适配主提示词回复格式中的所有组件
   规范：.markdown-body作用域 + !important + 对暗号机制
   ============================================================ */

/* ============================================================
   图库系统（os-cg架构）
   机制：AI输出 <div class="os-cg" data-npc="名" data-mood="情绪"></div>
        CSS按 data-npc + data-mood 查找URL渲染立绘
   ============================================================ */
/* —— os-cg 基础渲染样式 —— */
.markdown-body .os-cg,
.rili-markdown-renderer .os-cg {
  display: block !important;
  width: 300px !important;
  min-height: 600px !important;
  height: 600px !important;
  margin: 8px auto !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  border-radius: 4px !important;
  border: 1px solid #1c1813 !important;
  box-shadow: 0 2px 8px rgba(28,24,19,0.15) !important;
  overflow: visible !important;
}

/* —— os-cg 伪元素（强制空div渲染背景图，修复rili平台不显示问题）—— */
.markdown-body .os-cg::before,
.rili-markdown-renderer .os-cg::before {
  content: "" !important;
  display: block !important;
  width: 300px !important;
  height: 600px !important;
  min-height: 600px !important;
}

/* —— 图库URL映射表 —— */

/* 王莽 */
.os-cg[data-npc="王莽"][data-mood="常态"] { background-image: url(https://i.ibb.co/WJTQ5j4/9eec0d8a-cdd8-42aa-a350-7f89a9ddf1a2.png) !important; }
.os-cg[data-npc="王莽"][data-mood="动情"] { background-image: url(https://i.ibb.co/7T1M0ZK/7975c3ec-3751-4c69-baa9-6c233ad88626.png) !important; }
.os-cg[data-npc="王莽"][data-mood="失态"] { background-image: url(https://i.ibb.co/rKgvrJC7/bb16abca-3311-4e7d-84cc-ead735a6a15d.png) !important; }

/* 王芷瑶 */
.os-cg[data-npc="王芷瑶"][data-mood="常态"] { background-image: url(https://i.ibb.co/v4B3zFTJ/2b71d77d-cef3-41f3-bdf0-bcdd3da21969.png) !important; }
.os-cg[data-npc="王芷瑶"][data-mood="动情"] { background-image: url(https://i.ibb.co/bgwJntpf/551306d2-9853-46d4-a8c4-841cf9443654.png) !important; }
.os-cg[data-npc="王芷瑶"][data-mood="失态"] { background-image: url(https://i.ibb.co/tp81QW06/b74e63f3-3273-4cc9-89f1-bddfd6f800d3.png) !important; }

/* 苏媚娘 */
.os-cg[data-npc="苏媚娘"][data-mood="常态"] { background-image: url(https://i.ibb.co/wNMzn1HL/ce5a01e1-3062-4580-a144-7dff6e3c0557.png) !important; }
.os-cg[data-npc="苏媚娘"][data-mood="动情"] { background-image: url(https://i.ibb.co/VW1hPzSy/728df7c6-8818-4e36-84c2-1016e3664871.png) !important; }
.os-cg[data-npc="苏媚娘"][data-mood="失态"] { background-image: url(https://i.ibb.co/5hCS8CR5/5c996d29-777a-4e8a-8565-2ad2d8363b04.png) !important; }

/* 冷月 */
.os-cg[data-npc="冷月"][data-mood="常态"] { background-image: url(https://i.ibb.co/wNRZrppn/c70cbafc-3594-4f09-9d3d-8ea6ba2317eb.png) !important; }
.os-cg[data-npc="冷月"][data-mood="动情"] { background-image: url(https://i.ibb.co/mF18Bnrr/b808edb3-a10b-47d8-93a0-8bc323d7f17c.png) !important; }
.os-cg[data-npc="冷月"][data-mood="失态"] { background-image: url(https://i.ibb.co/FbVqP3hW/8637fb51-74c3-4259-aaab-24201fef0f38.png) !important; }

/* 王端华 */
.os-cg[data-npc="王端华"][data-mood="常态"] { background-image: url(https://i.ibb.co/rRXPd0gZ/e4c9cba2-106a-41f0-86ad-ed49074858f1.png) !important; }
.os-cg[data-npc="王端华"][data-mood="动情"] { background-image: url(https://i.ibb.co/C3JbBJWk/8492681a-4b07-4890-9ce0-cf32dcdfa41e.png) !important; }
.os-cg[data-npc="王端华"][data-mood="失态"] { background-image: url(https://i.ibb.co/xtHxVDzz/b14dd997-94a2-4761-a543-bb435c31bf86.png) !important; }

/* 崔珏 */
.os-cg[data-npc="崔珏"][data-mood="常态"] { background-image: url(https://i.ibb.co/pvb3b92m/1d3e452c-2e98-41cb-8f01-9349e2c5ebdc.png) !important; }
.os-cg[data-npc="崔珏"][data-mood="动情"] { background-image: url(https://i.ibb.co/DP1RfGLK/f048939a-ecba-4179-8490-103121657821.png) !important; }
.os-cg[data-npc="崔珏"][data-mood="失态"] { background-image: url(https://i.ibb.co/XZJbzyQQ/b6a9fee1-2edb-48d8-ab8d-fae6286d622f.png) !important; }

/* 王逸之 */
.os-cg[data-npc="王逸之"][data-mood="常态"] { background-image: url(https://i.ibb.co/fGyt5SF8/5f74cc44-cb40-4c9f-a427-4664e5bdff3b.png) !important; }
.os-cg[data-npc="王逸之"][data-mood="动情"] { background-image: url(https://i.ibb.co/1GnqZbZX/307d3c6d-e0a0-483c-84b6-07cd00315e73.png) !important; }
.os-cg[data-npc="王逸之"][data-mood="失态"] { background-image: url(https://i.ibb.co/BHn6Cnbm/560b13fb-d7c1-4c48-97a6-b8df00767073.png) !important; }

/* 李红袖 */
.os-cg[data-npc="李红袖"][data-mood="常态"] { background-image: url(https://i.ibb.co/5hH8dt61/95215f3c-81f7-4e98-839a-c9bd51a860a2.png) !important; }
.os-cg[data-npc="李红袖"][data-mood="动情"] { background-image: url(https://i.ibb.co/xpxYfqX/7cdc6fbe-80d5-4bfc-afbd-4ba4ee1c5b58.png) !important; }
.os-cg[data-npc="李红袖"][data-mood="失态"] { background-image: url(https://i.ibb.co/N6tvDT55/5b873d04-2b75-41b6-a0b3-e7dec27cbff5.png) !important; }

/* 唐无忧 */
.os-cg[data-npc="唐无忧"][data-mood="常态"] { background-image: url(https://i.ibb.co/Tq2RDkWj/dd6cb812-70c6-49c4-baaa-fb22312605a3.png) !important; }
.os-cg[data-npc="唐无忧"][data-mood="动情"] { background-image: url(https://i.ibb.co/1Y9Ytv27/f57edf73-a5f0-4752-b76a-3d1a1b4348fc.png) !important; }
.os-cg[data-npc="唐无忧"][data-mood="失态"] { background-image: url(https://i.ibb.co/WNdt8n23/e3b21e63-874b-428b-8ca4-c8ffb2437efc.png) !important; }

/* 苏魅儿 */
.os-cg[data-npc="苏魅儿"][data-mood="常态"] { background-image: url(https://i.ibb.co/TMh8zMvb/f5d496f1-3254-4485-9f1b-13aeaae33c1c.png) !important; }
.os-cg[data-npc="苏魅儿"][data-mood="动情"] { background-image: url(https://i.ibb.co/S70GyPKC/09798885-1264-4561-b1e5-6318c8dcb9ab.png) !important; }
.os-cg[data-npc="苏魅儿"][data-mood="失态"] { background-image: url(https://i.ibb.co/39rjwGwB/35971fd8-694f-42a4-895b-d9709ddc7b0f.png) !important; }

/* 许长生 */
.os-cg[data-npc="许长生"][data-mood="常态"] { background-image: url(https://i.ibb.co/k6sTrvDs/5c416a38-0e3a-47c4-8190-a9393cd37c1f.png) !important; }
.os-cg[data-npc="许长生"][data-mood="动情"] { background-image: url(https://i.ibb.co/DPG8zJ9K/ffb1c5e1-b596-4a45-84e9-cd434d83d2bf.png) !important; }
.os-cg[data-npc="许长生"][data-mood="失态"] { background-image: url(https://i.ibb.co/Q3WmbGCh/934e7b2d-a695-42f9-9227-0f42ec444592.png) !important; }

/* 殷夫人 */
.os-cg[data-npc="殷夫人"][data-mood="常态"] { background-image: url(https://i.ibb.co/Y4sC61s7/911d2228-0006-44ba-bfac-5dde7d154966.png) !important; }
.os-cg[data-npc="殷夫人"][data-mood="动情"] { background-image: url(https://i.ibb.co/rRQZqNf5/478206df-6b6c-404a-8659-030bd35e1515.png) !important; }
.os-cg[data-npc="殷夫人"][data-mood="失态"] { background-image: url(https://i.ibb.co/21pPT8s2/fccb451d-530b-490a-af3f-076d71faddb7.png) !important; }

/* 王束芳（江南王氏主母） */
.os-cg[data-npc="王束芳"][data-mood="常态"] { background-image: url(https://i.ibb.co/MDFQTmfk/e9309096-72ee-4555-93bc-8d5ab630bf31.png) !important; }
.os-cg[data-npc="王束芳"][data-mood="动情"] { background-image: url(https://i.ibb.co/FLgFqMcy/939d0d1e-8dbf-4698-9362-3d2e4aad3ffb.png) !important; }
.os-cg[data-npc="王束芳"][data-mood="失态"] { background-image: url(https://i.ibb.co/7d8LBnCf/8f550812-06a3-48dd-9b50-ab6fb1bf218a.png) !important; }

/* 王宁致（王氏长女） */
.os-cg[data-npc="王宁致"][data-mood="常态"] { background-image: url(https://i.ibb.co/Y7T6zHvR/c5a62225-1077-4349-9df8-1658c0f7166d.png) !important; }
.os-cg[data-npc="王宁致"][data-mood="动情"] { background-image: url(https://i.ibb.co/VcHjc3Q5/c1e5b5c3-502f-4138-887a-eb0e5db36882.png) !important; }
.os-cg[data-npc="王宁致"][data-mood="失态"] { background-image: url(https://i.ibb.co/JwTHWZgf/9d824492-2b66-43ef-a1ee-339e05ad9f9d.png) !important; }

/* 王昕乐（青龙女·次女） */
.os-cg[data-npc="王昕乐"][data-mood="常态"] { background-image: url(https://i.ibb.co/hxG5sR7Y/fcd35a95-e132-42b4-a744-b8917c7de122.png) !important; }
.os-cg[data-npc="王昕乐"][data-mood="动情"] { background-image: url(https://i.ibb.co/ds8xghwq/31de26bf-8e62-4a84-8d84-068f3cca2099.png) !important; }
.os-cg[data-npc="王昕乐"][data-mood="失态"] { background-image: url(https://i.ibb.co/CsvCDDSn/f843121f-18b7-4668-a273-f736ba1fb1af.png) !important; }

/* 王媱雅（紫眸三娘） */
.os-cg[data-npc="王媱雅"][data-mood="常态"] { background-image: url(https://i.ibb.co/hJGW4d9d/c4c1eae6-87b6-4811-8cf6-6eff4032582a.png) !important; }
.os-cg[data-npc="王媱雅"][data-mood="动情"] { background-image: url(https://i.ibb.co/5W0cVVpq/941f6d29-ba68-4aa2-a3a7-0a1efb6038a6.png) !important; }
.os-cg[data-npc="王媱雅"][data-mood="失态"] { background-image: url(https://i.ibb.co/SXQGxx5p/8fbc28ef-8b10-45c6-abbb-3e7144d1b18f.png) !important; }

/* 王觅双（赤瞳四娘） */
.os-cg[data-npc="王觅双"][data-mood="常态"] { background-image: url(https://i.ibb.co/j9byt9yn/7161eb49-1121-43ca-9739-56ead72eae00.png) !important; }
.os-cg[data-npc="王觅双"][data-mood="动情"] { background-image: url(https://i.ibb.co/nNDStCZd/2457f0d7-ec0f-49d2-9546-2b685a07990f.png) !important; }
.os-cg[data-npc="王觅双"][data-mood="失态"] { background-image: url(https://i.ibb.co/b5rPJdDM/40d9243b-9cda-4666-8d24-89e0deb53b77.png) !important; }

/* 王悦婷（书香五娘） */
.os-cg[data-npc="王悦婷"][data-mood="常态"] { background-image: url(https://i.ibb.co/Z6J5PQR7/f8dbcd24-bd63-4eef-b46c-70ea6a0f268f.png) !important; }
.os-cg[data-npc="王悦婷"][data-mood="动情"] { background-image: url(https://i.ibb.co/jvzN6SP8/a98a08e9-97fe-4735-a533-eabd4db8ec39.png) !important; }
.os-cg[data-npc="王悦婷"][data-mood="失态"] { background-image: url(https://i.ibb.co/998QHn40/4bc965f8-24a0-4543-843d-43d00fca1079.png) !important; }

/* 柳含烟（暗香楼楼主） */
.os-cg[data-npc="柳含烟"][data-mood="常态"] { background-image: url(https://i.ibb.co/b5cZ2Gtx/68525afc-6b35-49d0-aa65-893fc9285b9d.png) !important; }
.os-cg[data-npc="柳含烟"][data-mood="动情"] { background-image: url(https://i.ibb.co/WbJrn2j/de43e7e2-5358-4c61-9cf9-000aa680edf5.png) !important; }
.os-cg[data-npc="柳含烟"][data-mood="失态"] { background-image: url(https://i.ibb.co/fGSBJKnC/3931bc5e-7551-40ec-b4ce-3eec752f041b.png) !important; }

/* 赵贵妃（翊坤宫主） */
.os-cg[data-npc="赵贵妃"][data-mood="常态"] { background-image: url(https://i.ibb.co/vb7dHSY/1ea6344c-9c67-4303-a8f4-520367f8d73d.png) !important; }
.os-cg[data-npc="赵贵妃"][data-mood="动情"] { background-image: url(https://i.ibb.co/v58xvkd/7757ab23-6c1e-4956-b80c-7aefd97410b3.png) !important; }
.os-cg[data-npc="赵贵妃"][data-mood="失态"] { background-image: url(https://i.ibb.co/hFVvC7wK/b05ef56a-0c88-482a-8b97-3de5134f35be.png) !important; }

/* 锁儿 */
.os-cg[data-npc="锁儿"][data-mood="常态"] { background-image: url(https://i.ibb.co/TMgPCjSt/image.png) !important; }
.os-cg[data-npc="锁儿"][data-mood="动情"] { background-image: url(https://i.ibb.co/Ys5W3XK/Comfy-UI-00911.png) !important; }
.os-cg[data-npc="锁儿"][data-mood="失态"] { background-image: url(https://i.ibb.co/xSrSLY0F/Comfy-UI-00921.png) !important; }

/* 殷血 */
.os-cg[data-npc="殷血"][data-mood="常态"] { background-image: url(https://i.ibb.co/wFT4qgCp/image.png) !important; }
.os-cg[data-npc="殷血"][data-mood="动情"] { background-image: url(https://i.ibb.co/B2LSmqdz/Comfy-UI-00968.png) !important; }
.os-cg[data-npc="殷血"][data-mood="失态"] { background-image: url(https://i.ibb.co/hxXkcn2c/Comfy-UI-00965.png) !important; }

/* 莫愁 */
.os-cg[data-npc="莫愁"][data-mood="常态"] { background-image: url(https://i.ibb.co/jvPMjZsp/image.png) !important; }
.os-cg[data-npc="莫愁"][data-mood="动情"] { background-image: url(https://i.ibb.co/Z1BqJ781/Comfy-UI-00929.png) !important; }
.os-cg[data-npc="莫愁"][data-mood="失态"] { background-image: url(https://i.ibb.co/KpjPQx7W/Comfy-UI-00923.png) !important; }

/* 柳轻眉 */
.os-cg[data-npc="柳轻眉"][data-mood="常态"] { background-image: url(https://i.ibb.co/dJXdBDdY/image.png) !important; }
.os-cg[data-npc="柳轻眉"][data-mood="动情"] { background-image: url(https://i.ibb.co/jkTcDdyC/Comfy-UI-00954.png) !important; }
.os-cg[data-npc="柳轻眉"][data-mood="失态"] { background-image: url(https://i.ibb.co/RGdhJT5Y/Comfy-UI-00945.png) !important; }

/* 云晚吟 */
.os-cg[data-npc="云晚吟"][data-mood="常态"] { background-image: url(https://i.ibb.co/0RQpcSFd/image.png) !important; }
.os-cg[data-npc="云晚吟"][data-mood="动情"] { background-image: url(https://i.ibb.co/Tqw3gdGk/Comfy-UI-00959.png) !important; }
.os-cg[data-npc="云晚吟"][data-mood="失态"] { background-image: url(https://i.ibb.co/Z6JRqRnX/Comfy-UI-00958.png) !important; }

/* 婴宁 */
.os-cg[data-npc="婴宁"][data-mood="常态"] { background-image: url(https://i.ibb.co/5WvWcgpC/image.png) !important; }
.os-cg[data-npc="婴宁"][data-mood="动情"] { background-image: url(https://i.ibb.co/W49X8thY/Comfy-UI-00943.png) !important; }
.os-cg[data-npc="婴宁"][data-mood="失态"] { background-image: url(https://i.ibb.co/ZpDd6GrM/Comfy-UI-00941.png) !important; }

/* 胡媚 */
.os-cg[data-npc="胡媚"][data-mood="常态"] { background-image: url(https://i.ibb.co/xtv6hpfZ/image.png) !important; }
.os-cg[data-npc="胡媚"][data-mood="动情"] { background-image: url(https://i.ibb.co/xKDh9qXT/Comfy-UI-00990.png) !important; }
.os-cg[data-npc="胡媚"][data-mood="失态"] { background-image: url(https://i.ibb.co/G3JBCKGN/Comfy-UI-00983.png) !important; }

/* 吕钰妍 */
.os-cg[data-npc="吕钰妍"][data-mood="常态"] { background-image: url(https://i.ibb.co/jZb7njTM/image.png) !important; }
.os-cg[data-npc="吕钰妍"][data-mood="动情"] { background-image: url(https://i.ibb.co/LzqHKhGC/Comfy-UI-01191.png) !important; }
.os-cg[data-npc="吕钰妍"][data-mood="失态"] { background-image: url(https://i.ibb.co/Hfyq68wf/Comfy-UI-01185.png) !important; }

/* 姚仙丽 */
.os-cg[data-npc="姚仙丽"][data-mood="常态"] { background-image: url(https://i.ibb.co/kgWcCFZp/image.png) !important; }
.os-cg[data-npc="姚仙丽"][data-mood="动情"] { background-image: url(https://i.ibb.co/gLgxq1B0/Comfy-UI-01071.png) !important; }
.os-cg[data-npc="姚仙丽"][data-mood="失态"] { background-image: url(https://i.ibb.co/20LQ82dP/Comfy-UI-01096.png) !important; }

/* 梁婧霭 */
.os-cg[data-npc="梁婧霭"][data-mood="常态"] { background-image: url(https://i.ibb.co/pv0hjBJ8/image.png) !important; }
.os-cg[data-npc="梁婧霭"][data-mood="动情"] { background-image: url(https://i.ibb.co/gbhkN1ZW/Comfy-UI-01175.png) !important; }
.os-cg[data-npc="梁婧霭"][data-mood="失态"] { background-image: url(https://i.ibb.co/JW1vbzCx/Comfy-UI-01172.png) !important; }

/* 邱美熙 */
.os-cg[data-npc="邱美熙"][data-mood="常态"] { background-image: url(https://i.ibb.co/1JTkZwBc/image.png) !important; }
.os-cg[data-npc="邱美熙"][data-mood="动情"] { background-image: url(https://i.ibb.co/4ws2mZxR/Comfy-UI-01131.png) !important; }
.os-cg[data-npc="邱美熙"][data-mood="失态"] { background-image: url(https://i.ibb.co/TDH5wywZ/Comfy-UI-01125.png) !important; }

/* 白无双 */
.os-cg[data-npc="白无双"][data-mood="常态"] { background-image: url(https://i.ibb.co/PGxXRKzx/image.png) !important; }
.os-cg[data-npc="白无双"][data-mood="动情"] { background-image: url(https://i.ibb.co/h11qyPM0/Comfy-UI-01228.png) !important; }
.os-cg[data-npc="白无双"][data-mood="失态"] { background-image: url(https://i.ibb.co/jZbTCLN5/Comfy-UI-01225.png) !important; }

/* 毒娘子 */
.os-cg[data-npc="毒娘子"][data-mood="常态"] { background-image: url(https://i.ibb.co/sdNbfG4z/image.png) !important; }
.os-cg[data-npc="毒娘子"][data-mood="动情"] { background-image: url(https://i.ibb.co/LwJ20bs/Comfy-UI-01249.png) !important; }
.os-cg[data-npc="毒娘子"][data-mood="失态"] { background-image: url(https://i.ibb.co/8V173Rg/Comfy-UI-01247.png) !important; }

/* 红袖 */
.os-cg[data-npc="红袖"][data-mood="常态"] { background-image: url(https://i.ibb.co/JY8TC5P/image.png) !important; }
.os-cg[data-npc="红袖"][data-mood="动情"] { background-image: url(https://i.ibb.co/1G22jGQ7/Comfy-UI-01224.png) !important; }
.os-cg[data-npc="红袖"][data-mood="失态"] { background-image: url(https://i.ibb.co/yFD0Hy5H/Comfy-UI-01219.png) !important; }

/* 花盐娘 */
.os-cg[data-npc="花盐娘"][data-mood="常态"] { background-image: url(https://i.ibb.co/Hptq5xqP/image.png) !important; }
.os-cg[data-npc="花盐娘"][data-mood="动情"] { background-image: url(https://i.ibb.co/q3Fjcr5N/Comfy-UI-01253.png) !important; }
.os-cg[data-npc="花盐娘"][data-mood="失态"] { background-image: url(https://i.ibb.co/C5qkH884/Comfy-UI-01252.png) !important; }

/* 钱玉奴 */
.os-cg[data-npc="钱玉奴"][data-mood="常态"] { background-image: url(https://i.ibb.co/sJ96xrFJ/image.png) !important; }
.os-cg[data-npc="钱玉奴"][data-mood="动情"] { background-image: url(https://i.ibb.co/kVgmG1P7/Comfy-UI-01242.png) !important; }
.os-cg[data-npc="钱玉奴"][data-mood="失态"] { background-image: url(https://i.ibb.co/qFBKrqrp/Comfy-UI-01241.png) !important; }

/* 苏小小 */
.os-cg[data-npc="苏小小"][data-mood="常态"] { background-image: url(https://i.ibb.co/ynwgV2Q1/image.png) !important; }
.os-cg[data-npc="苏小小"][data-mood="动情"] { background-image: url(https://i.ibb.co/PZd0TKzT/Comfy-UI-01214.png) !important; }
.os-cg[data-npc="苏小小"][data-mood="失态"] { background-image: url(https://i.ibb.co/99vXK7j0/Comfy-UI-01213.png) !important; }

/* 绿珠 */
.os-cg[data-npc="绿珠"][data-mood="常态"] { background-image: url(https://i.ibb.co/nqjHYBjJ/image.png) !important; }
.os-cg[data-npc="绿珠"][data-mood="动情"] { background-image: url(https://i.ibb.co/8nFPCvD8/Comfy-UI-01233.png) !important; }
.os-cg[data-npc="绿珠"][data-mood="失态"] { background-image: url(https://i.ibb.co/8Lx1yJ3T/Comfy-UI-01231.png) !important; }

/* 阿依古丽 */
.os-cg[data-npc="阿依古丽"][data-mood="常态"] { background-image: url(https://i.ibb.co/B5mdQnWG/image.png) !important; }
.os-cg[data-npc="阿依古丽"][data-mood="动情"] { background-image: url(https://i.ibb.co/gZRG8Tfy/Comfy-UI-00727.png) !important; }
.os-cg[data-npc="阿依古丽"][data-mood="失态"] { background-image: url(https://i.ibb.co/Hf1CJqXP/Comfy-UI-00723.png) !important; }

/* 白素 */
.os-cg[data-npc="白素"][data-mood="常态"] { background-image: url(https://i.ibb.co/LzTzMDy3/image.png) !important; }
.os-cg[data-npc="白素"][data-mood="动情"] { background-image: url(https://i.ibb.co/sxGgvx7/Comfy-UI-00743.png) !important; }
.os-cg[data-npc="白素"][data-mood="失态"] { background-image: url(https://i.ibb.co/Qj8yS485/Comfy-UI-00739.png) !important; }

/* 黑寡妇 */
.os-cg[data-npc="黑寡妇"][data-mood="常态"] { background-image: url(https://i.ibb.co/vvBvpw32/image.png) !important; }
.os-cg[data-npc="黑寡妇"][data-mood="动情"] { background-image: url(https://i.ibb.co/5gxFdDXM/Comfy-UI-00707.png) !important; }
.os-cg[data-npc="黑寡妇"][data-mood="失态"] { background-image: url(https://i.ibb.co/yTGWHZ2/Comfy-UI-00706.png) !important; }

/* 林婉儿 */
.os-cg[data-npc="林婉儿"][data-mood="常态"] { background-image: url(https://i.ibb.co/HL6NX886/image.png) !important; }
.os-cg[data-npc="林婉儿"][data-mood="动情"] { background-image: url(https://i.ibb.co/6RknVCqW/Comfy-UI-00801.png) !important; }
.os-cg[data-npc="林婉儿"][data-mood="失态"] { background-image: url(https://i.ibb.co/gFVf9n51/Comfy-UI-00796.png) !important; }

/* 柳贤妃 */
.os-cg[data-npc="柳贤妃"][data-mood="常态"] { background-image: url(https://i.ibb.co/0pbfBr73/image.png) !important; }
.os-cg[data-npc="柳贤妃"][data-mood="动情"] { background-image: url(https://i.ibb.co/nMv5GSrg/Comfy-UI-00811.png) !important; }
.os-cg[data-npc="柳贤妃"][data-mood="失态"] { background-image: url(https://i.ibb.co/DPKNWHg6/Comfy-UI-00805.png) !important; }

/* 墨竹 */
.os-cg[data-npc="墨竹"][data-mood="常态"] { background-image: url(https://i.ibb.co/0VMKH1DV/image.png) !important; }
.os-cg[data-npc="墨竹"][data-mood="动情"] { background-image: url(https://i.ibb.co/HTgV57jW/Comfy-UI-00839.png) !important; }
.os-cg[data-npc="墨竹"][data-mood="失态"] { background-image: url(https://i.ibb.co/Fkg9CRXp/Comfy-UI-00825.png) !important; }

/* 秦幻娘 */
.os-cg[data-npc="秦幻娘"][data-mood="常态"] { background-image: url(https://i.ibb.co/QvnNzv2j/image.png) !important; }
.os-cg[data-npc="秦幻娘"][data-mood="动情"] { background-image: url(https://i.ibb.co/rGznnL42/Comfy-UI-00855.png) !important; }
.os-cg[data-npc="秦幻娘"][data-mood="失态"] { background-image: url(https://i.ibb.co/m5tFw9p3/Comfy-UI-00854.png) !important; }

/* 沈清河 */
.os-cg[data-npc="沈清河"][data-mood="常态"] { background-image: url(https://i.ibb.co/GvMPp6mW/image.png) !important; }
.os-cg[data-npc="沈清河"][data-mood="动情"] { background-image: url(https://i.ibb.co/20DmPHkx/Comfy-UI-00861.png) !important; }
.os-cg[data-npc="沈清河"][data-mood="失态"] { background-image: url(https://i.ibb.co/8gn7mZ4p/Comfy-UI-00859.png) !important; }

/* 沈淑妃 */
.os-cg[data-npc="沈淑妃"][data-mood="常态"] { background-image: url(https://i.ibb.co/wZfDYPxY/image.png) !important; }
.os-cg[data-npc="沈淑妃"][data-mood="动情"] { background-image: url(https://i.ibb.co/273dvrgX/Comfy-UI-00887.png) !important; }
.os-cg[data-npc="沈淑妃"][data-mood="失态"] { background-image: url(https://i.ibb.co/YBbkmsst/Comfy-UI-00878.png) !important; }

/* 沈玉楼 */
.os-cg[data-npc="沈玉楼"][data-mood="常态"] { background-image: url(https://i.ibb.co/5gC2J1hN/Comfy-UI-00899.png) !important; }
.os-cg[data-npc="沈玉楼"][data-mood="动情"] { background-image: url(https://i.ibb.co/ZzrJ1GfK/Comfy-UI-00896.png) !important; }
.os-cg[data-npc="沈玉楼"][data-mood="失态"] { background-image: url(https://i.ibb.co/8vZJjB5/Comfy-UI-00894.png) !important; }

/* 沈玉珠 */
.os-cg[data-npc="沈玉珠"][data-mood="常态"] { background-image: url(https://i.ibb.co/GbGy8gj/Comfy-UI-00905.png) !important; }
.os-cg[data-npc="沈玉珠"][data-mood="动情"] { background-image: url(https://i.ibb.co/pvcSpDbD/Comfy-UI-00904.png) !important; }
.os-cg[data-npc="沈玉珠"][data-mood="失态"] { background-image: url(https://i.ibb.co/5gQQ6X8N/Comfy-UI-00903.png) !important; }

/* 苏锦绣 */
.os-cg[data-npc="苏锦绣"][data-mood="常态"] { background-image: url(https://i.ibb.co/SXD9vpZS/Comfy-UI-00912.png) !important; }
.os-cg[data-npc="苏锦绣"][data-mood="动情"] { background-image: url(https://i.ibb.co/My4H5x5p/Comfy-UI-00910.png) !important; }
.os-cg[data-npc="苏锦绣"][data-mood="失态"] { background-image: url(https://i.ibb.co/3m1srZPv/Comfy-UI-00909.png) !important; }

/* 唐毒 */
.os-cg[data-npc="唐毒"][data-mood="常态"] { background-image: url(https://i.ibb.co/sJb2cYYC/Comfy-UI-00919.png) !important; }
.os-cg[data-npc="唐毒"][data-mood="动情"] { background-image: url(https://i.ibb.co/LdgV4MFf/Comfy-UI-00918.png) !important; }
.os-cg[data-npc="唐毒"][data-mood="失态"] { background-image: url(https://i.ibb.co/Lzh3nQyJ/Comfy-UI-00917.png) !important; }

/* 唐医 */
.os-cg[data-npc="唐医"][data-mood="常态"] { background-image: url(https://i.ibb.co/gMr7TK74/Comfy-UI-00928.png) !important; }
.os-cg[data-npc="唐医"][data-mood="动情"] { background-image: url(https://i.ibb.co/Q77qYXj8/Comfy-UI-00925.png) !important; }
.os-cg[data-npc="唐医"][data-mood="失态"] { background-image: url(https://i.ibb.co/6cjxqT6t/Comfy-UI-00924.png) !important; }

/* 唐灵 */
.os-cg[data-npc="唐灵"][data-mood="常态"] { background-image: url(https://i.ibb.co/Hf8hJBHT/Comfy-UI-00933.png) !important; }
.os-cg[data-npc="唐灵"][data-mood="动情"] { background-image: url(https://i.ibb.co/bMqydtFd/Comfy-UI-00939.png) !important; }
.os-cg[data-npc="唐灵"][data-mood="失态"] { background-image: url(https://i.ibb.co/LDLjXKcn/Comfy-UI-00943.png) !important; }

/* 萧德妃 */
.os-cg[data-npc="萧德妃"][data-mood="常态"] { background-image: url(https://i.ibb.co/WTZJMvp/Comfy-UI-00957.png) !important; }
.os-cg[data-npc="萧德妃"][data-mood="动情"] { background-image: url(https://i.ibb.co/mFRZbktn/Comfy-UI-00954.png) !important; }
.os-cg[data-npc="萧德妃"][data-mood="失态"] { background-image: url(https://i.ibb.co/C3j77gD0/Comfy-UI-00953.png) !important; }

/* 萧玉瑶 */
.os-cg[data-npc="萧玉瑶"][data-mood="常态"] { background-image: url(https://i.ibb.co/PsZRffzQ/Comfy-UI-00976.png) !important; }
.os-cg[data-npc="萧玉瑶"][data-mood="动情"] { background-image: url(https://i.ibb.co/q3v7jq1w/Comfy-UI-00971.png) !important; }
.os-cg[data-npc="萧玉瑶"][data-mood="失态"] { background-image: url(https://i.ibb.co/35qFj64F/Comfy-UI-00970.png) !important; }

/* 血玲珑 */
.os-cg[data-npc="血玲珑"][data-mood="常态"] { background-image: url(https://i.ibb.co/k6xJ2sDG/Comfy-UI-01002.png) !important; }
.os-cg[data-npc="血玲珑"][data-mood="动情"] { background-image: url(https://i.ibb.co/1YxHbqPq/Comfy-UI-00998.png) !important; }
.os-cg[data-npc="血玲珑"][data-mood="失态"] { background-image: url(https://i.ibb.co/bgcVq3nC/Comfy-UI-00997.png) !important; }

/* 血魄 */
.os-cg[data-npc="血魄"][data-mood="常态"] { background-image: url(https://i.ibb.co/1JYXTMPQ/Comfy-UI-01023.png) !important; }
.os-cg[data-npc="血魄"][data-mood="动情"] { background-image: url(https://i.ibb.co/dJg1sfzk/Comfy-UI-01022.png) !important; }
.os-cg[data-npc="血魄"][data-mood="失态"] { background-image: url(https://i.ibb.co/Y4X4K4pf/Comfy-UI-01021.png) !important; }

/* 血手 */
.os-cg[data-npc="血手"][data-mood="常态"] { background-image: url(https://i.ibb.co/YFMVR8rt/Comfy-UI-01039.png) !important; }
.os-cg[data-npc="血手"][data-mood="动情"] { background-image: url(https://i.ibb.co/X69X3fM/Comfy-UI-01035.png) !important; }
.os-cg[data-npc="血手"][data-mood="失态"] { background-image: url(https://i.ibb.co/sv5NKNLg/Comfy-UI-01033.png) !important; }

/* 玉娘 */
.os-cg[data-npc="玉娘"][data-mood="常态"] { background-image: url(https://i.ibb.co/TDntP7n2/Comfy-UI-01065.png) !important; }
.os-cg[data-npc="玉娘"][data-mood="动情"] { background-image: url(https://i.ibb.co/gMJ1VXzL/Comfy-UI-01064.png) !important; }
.os-cg[data-npc="玉娘"][data-mood="失态"] { background-image: url(https://i.ibb.co/JRBxhzFP/Comfy-UI-01055.png) !important; }

/* 云裳 */
.os-cg[data-npc="云裳"][data-mood="常态"] { background-image: url(https://i.ibb.co/70gPT4d/Comfy-UI-01082.png) !important; }
.os-cg[data-npc="云裳"][data-mood="动情"] { background-image: url(https://i.ibb.co/3yXfJHV1/Comfy-UI-01072.png) !important; }
.os-cg[data-npc="云裳"][data-mood="失态"] { background-image: url(https://i.ibb.co/HDFtd2Cf/Comfy-UI-01071.png) !important; }

/* 赵灵波 */
.os-cg[data-npc="赵灵波"][data-mood="常态"] { background-image: url(https://i.ibb.co/nq8xdmby/Comfy-UI-01101.png) !important; }
.os-cg[data-npc="赵灵波"][data-mood="动情"] { background-image: url(https://i.ibb.co/RkfHnCKX/Comfy-UI-01090.png) !important; }
.os-cg[data-npc="赵灵波"][data-mood="失态"] { background-image: url(https://i.ibb.co/gb5PKLTF/Comfy-UI-01098.png) !important; }

/* 赵灵犀 */
.os-cg[data-npc="赵灵犀"][data-mood="常态"] { background-image: url(https://i.ibb.co/b0Lz5Wq/Comfy-UI-01111.png) !important; }
.os-cg[data-npc="赵灵犀"][data-mood="动情"] { background-image: url(https://i.ibb.co/G3vzLVDM/Comfy-UI-01109.png) !important; }
.os-cg[data-npc="赵灵犀"][data-mood="失态"] { background-image: url(https://i.ibb.co/WpMrNJyk/Comfy-UI-01108.png) !important; }

/* 杨香香 */
.os-cg[data-npc="杨香香"][data-mood="常态"] { background-image: url(https://i.ibb.co/mFRcf6g4/Comfy-UI-01142.png) !important; }
.os-cg[data-npc="杨香香"][data-mood="动情"] { background-image: url(https://i.ibb.co/JjB8NWT4/Comfy-UI-01136.png) !important; }
.os-cg[data-npc="杨香香"][data-mood="失态"] { background-image: url(https://i.ibb.co/vxM4Rm6f/Comfy-UI-01123.png) !important; }

/* 杨琴月 */
.os-cg[data-npc="杨琴月"][data-mood="常态"] { background-image: url(https://i.ibb.co/HLKsWyxH/Comfy-UI-00683.png) !important; }
.os-cg[data-npc="杨琴月"][data-mood="动情"] { background-image: url(https://i.ibb.co/7JZ7vBY8/Comfy-UI-00691.png) !important; }
.os-cg[data-npc="杨琴月"][data-mood="失态"] { background-image: url(https://i.ibb.co/wZKHbkKr/Comfy-UI-00679.png) !important; }

/* 杨舒月（20标签·场景化CG） */
.os-cg[data-npc="杨舒月"][data-mood="常态"] { background-image: url(https://i.ibb.co/4RSrCc2M/Comfy-UI-00603.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="动情"] { background-image: url(https://i.ibb.co/TBY9KZ2Q/Comfy-UI-00606.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="靠床"] { background-image: url(https://i.ibb.co/qMSrJypj/Comfy-UI-00607.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="躺床"] { background-image: url(https://i.ibb.co/LXrPbycP/Comfy-UI-00611.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="赤裸"] { background-image: url(https://i.ibb.co/Z6HSJ4rd/Comfy-UI-00614.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="露阴"] { background-image: url(https://i.ibb.co/NnNJjMpj/Comfy-UI-00617.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="抓乳"] { background-image: url(https://i.ibb.co/84svF8gh/Comfy-UI-00638.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="插入抓乳"] { background-image: url(https://i.ibb.co/YFXFCXS0/Comfy-UI-00662.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="口交"] { background-image: url(https://i.ibb.co/pjvb0T1t/Comfy-UI-00656.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="乳交"] { background-image: url(https://i.ibb.co/nM8w9yfG/Comfy-UI-00653.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="女上位"] { background-image: url(https://i.ibb.co/bgdyXhHZ/Comfy-UI-00654.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="传教士"] { background-image: url(https://i.ibb.co/sv77N6nF/Comfy-UI-00650.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="正常体位"] { background-image: url(https://i.ibb.co/C3tV9dgN/Comfy-UI-00655.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="面对插入"] { background-image: url(https://i.ibb.co/8yWVTBM/Comfy-UI-00648.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="侧姿后入"] { background-image: url(https://i.ibb.co/zpKpPDF/Comfy-UI-00639.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="跪姿后入01"] { background-image: url(https://i.ibb.co/VcqJdDvw/Comfy-UI-00652.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="站立后入01"] { background-image: url(https://i.ibb.co/bMWmyBw1/Comfy-UI-00645.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="跪姿后入02"] { background-image: url(https://i.ibb.co/cXNrY2KS/Comfy-UI-00651.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="站立后入02"] { background-image: url(https://i.ibb.co/xSF4t1cw/Comfy-UI-00657.png) !important; }
.os-cg[data-npc="杨舒月"][data-mood="扯头发后入"] { background-image: url(https://i.ibb.co/Fqgrhf7p/Comfy-UI-00616.png) !important; }

/* 姚云露（20标签·场景化CG） */
.os-cg[data-npc="姚云露"][data-mood="伸展"] { background-image: url(https://i.ibb.co/wrbfGx67/Comfy-UI-01242.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="侧坐"] { background-image: url(https://i.ibb.co/DPhX4fCY/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="叉腰"] { background-image: url(https://i.ibb.co/N6dQMMGG/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="常态"] { background-image: url(https://i.ibb.co/MyQPZ9NN/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="牵手"] { background-image: url(https://i.ibb.co/YBfq8Cs7/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="捏脸"] { background-image: url(https://i.ibb.co/G3BS7Jc5/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="扯发后入"] { background-image: url(https://i.ibb.co/GfS7C03C/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="赤裸"] { background-image: url(https://i.ibb.co/gb7bzm3j/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="展示柔韧"] { background-image: url(https://i.ibb.co/kg73ZfJS/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="跪着"] { background-image: url(https://i.ibb.co/mCPsdf8n/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="跪姿后入"] { background-image: url(https://i.ibb.co/Kc9d6qN4/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="喝奶插入"] { background-image: url(https://i.ibb.co/sdPXXwF9/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="喝奶撸管"] { background-image: url(https://i.ibb.co/WWrzpH0j/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="口交"] { background-image: url(https://i.ibb.co/0RPMT3pw/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="女上位"] { background-image: url(https://i.ibb.co/WQXLcTm/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="乳交"] { background-image: url(https://i.ibb.co/cSCvrTWq/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="躺下"] { background-image: url(https://i.ibb.co/bfRBQPm/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="战斗"] { background-image: url(https://i.ibb.co/Fk5J9thQ/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="站立分裂"] { background-image: url(https://i.ibb.co/ksNYP94r/image.png) !important; }
.os-cg[data-npc="姚云露"][data-mood="抓乳素股"] { background-image: url(https://i.ibb.co/sSPw03Q/image.png) !important; }

/* 慕容御 */
.os-cg[data-npc="慕容御"][data-mood="常态"] { background-image: url(https://i.ibb.co/1fK9kjsc/image.png) !important; }
.os-cg[data-npc="慕容御"][data-mood="动情"] { background-image: url(https://i.ibb.co/39LSk8jD/Comfy-UI-01390.png) !important; }
.os-cg[data-npc="慕容御"][data-mood="失态"] { background-image: url(https://i.ibb.co/rGWxbw7g/Comfy-UI-01388.png) !important; }

/* 慕容倾 */
.os-cg[data-npc="慕容倾"][data-mood="常态"] { background-image: url(https://i.ibb.co/5XYzFbBj/image.png) !important; }
.os-cg[data-npc="慕容倾"][data-mood="动情"] { background-image: url(https://i.ibb.co/xSxqLTDW/Comfy-UI-01400.png) !important; }
.os-cg[data-npc="慕容倾"][data-mood="失态"] { background-image: url(https://i.ibb.co/7x79Bxqz/Comfy-UI-01395.png) !important; }

/* 阳夏黎 */
.os-cg[data-npc="阳夏黎"][data-mood="常态"] { background-image: url(https://i.ibb.co/hJ0z8FVv/image.png) !important; }
.os-cg[data-npc="阳夏黎"][data-mood="动情"] { background-image: url(https://i.ibb.co/kVWRYp8m/Comfy-UI-01213.png) !important; }
.os-cg[data-npc="阳夏黎"][data-mood="失态"] { background-image: url(https://i.ibb.co/3YhT1z5m/Comfy-UI-01195.png) !important; }

/* 路柔诺 */
.os-cg[data-npc="路柔诺"][data-mood="常态"] { background-image: url(https://i.ibb.co/sJkjwCk6/image.png) !important; }
.os-cg[data-npc="路柔诺"][data-mood="动情"] { background-image: url(https://i.ibb.co/xqPqgTQy/Comfy-UI-01236.png) !important; }
.os-cg[data-npc="路柔诺"][data-mood="失态"] { background-image: url(https://i.ibb.co/sdJBCgsX/Comfy-UI-01235.png) !important; }

/* 宁静文 */
.os-cg[data-npc="宁静文"][data-mood="常态"] { background-image: url(https://i.ibb.co/nqSJ0QNq/image.png) !important; }
.os-cg[data-npc="宁静文"][data-mood="动情"] { background-image: url(https://i.ibb.co/yFnPGy0D/Comfy-UI-01231.png) !important; }
.os-cg[data-npc="宁静文"][data-mood="失态"] { background-image: url(https://i.ibb.co/QFHRQR28/Comfy-UI-01228.png) !important; }

/* 楼兰嫣 */
.os-cg[data-npc="楼兰嫣"][data-mood="常态"] { background-image: url(https://i.ibb.co/JhNFjjP/image.png) !important; }
.os-cg[data-npc="楼兰嫣"][data-mood="动情"] { background-image: url(https://i.ibb.co/KzqWy6PN/Comfy-UI-01222.png) !important; }
.os-cg[data-npc="楼兰嫣"][data-mood="失态"] { background-image: url(https://i.ibb.co/bj4TNW9Q/Comfy-UI-01221.png) !important; }

/* 乔千可 */
.os-cg[data-npc="乔千可"][data-mood="常态"] { background-image: url(https://i.ibb.co/Xn8Zw5H/image.png) !important; }
.os-cg[data-npc="乔千可"][data-mood="动情"] { background-image: url(https://i.ibb.co/R4GZL54G/Comfy-UI-01239.png) !important; }
.os-cg[data-npc="乔千可"][data-mood="失态"] { background-image: url(https://i.ibb.co/LX9z81Gt/Comfy-UI-01238.png) !important; }

/* ===== 雾隐寨·赤霞庄 角色组 ===== */

/* 杨五娘 */
.os-cg[data-npc="杨五娘"][data-mood="常态"] { background-image: url(https://i.ibb.co/tpPWDggM/image.png) !important; }
.os-cg[data-npc="杨五娘"][data-mood="动情"] { background-image: url(https://i.ibb.co/tM1mjkWg/Comfy-UI-02125.png) !important; }
.os-cg[data-npc="杨五娘"][data-mood="失态"] { background-image: url(https://i.ibb.co/yBFSDp9c/Comfy-UI-02117.png) !important; }

/* 元秋 */
.os-cg[data-npc="元秋"][data-mood="常态"] { background-image: url(https://i.ibb.co/m5b587TH/image.png) !important; }
.os-cg[data-npc="元秋"][data-mood="动情"] { background-image: url(https://i.ibb.co/9mY3gv5s/Comfy-UI-02194.png) !important; }
.os-cg[data-npc="元秋"][data-mood="失态"] { background-image: url(https://i.ibb.co/JRzRnpgZ/Comfy-UI-02199.png) !important; }

/* 谭十一 */
.os-cg[data-npc="谭十一"][data-mood="常态"] { background-image: url(https://i.ibb.co/yMHvWvM/image.png) !important; }
.os-cg[data-npc="谭十一"][data-mood="动情"] { background-image: url(https://i.ibb.co/67KJDbVj/Comfy-UI-02085.png) !important; }
.os-cg[data-npc="谭十一"][data-mood="失态"] { background-image: url(https://i.ibb.co/B2nRf8rQ/Comfy-UI-02082.png) !important; }

/* 陈青松 */
.os-cg[data-npc="陈青松"][data-mood="常态"] { background-image: url(https://i.ibb.co/tMX2kPhN/image.png) !important; }
.os-cg[data-npc="陈青松"][data-mood="动情"] { background-image: url(https://i.ibb.co/yF5XFXmL/Comfy-UI-02106.png) !important; }
.os-cg[data-npc="陈青松"][data-mood="失态"] { background-image: url(https://i.ibb.co/Z11DvKvk/Comfy-UI-02104.png) !important; }

/* 洪娘子 */
.os-cg[data-npc="洪娘子"][data-mood="常态"] { background-image: url(https://i.ibb.co/7m5QWfY/image.png) !important; }
.os-cg[data-npc="洪娘子"][data-mood="动情"] { background-image: url(https://i.ibb.co/Fkpp99JK/Comfy-UI-02168.png) !important; }
.os-cg[data-npc="洪娘子"][data-mood="失态"] { background-image: url(https://i.ibb.co/HTYYLCz6/Comfy-UI-02165.png) !important; }

/* 墨弦 */
.os-cg[data-npc="墨弦"][data-mood="常态"] { background-image: url(https://i.ibb.co/4RQX9Pz1/image.png) !important; }
.os-cg[data-npc="墨弦"][data-mood="动情"] { background-image: url(https://i.ibb.co/pv8fnDR8/Comfy-UI-02186.png) !important; }
.os-cg[data-npc="墨弦"][data-mood="失态"] { background-image: url(https://i.ibb.co/ymp8NKj2/Comfy-UI-02184.png) !important; }

/* 素拨 */
.os-cg[data-npc="素拨"][data-mood="常态"] { background-image: url(https://i.ibb.co/h3X8ZXK/image.png) !important; }
.os-cg[data-npc="素拨"][data-mood="动情"] { background-image: url(https://i.ibb.co/1YTtZZCt/Comfy-UI-02229.png) !important; }
.os-cg[data-npc="素拨"][data-mood="失态"] { background-image: url(https://i.ibb.co/rfFk5kcf/Comfy-UI-02227.png) !important; }

/* 李莫愁 */
.os-cg[data-npc="李莫愁"][data-mood="常态"] { background-image: url(https://i.ibb.co/Q4g0yrV/image.png) !important; }
.os-cg[data-npc="李莫愁"][data-mood="动情"] { background-image: url(https://i.ibb.co/cS9dDqFF/Comfy-UI-02147.png) !important; }
.os-cg[data-npc="李莫愁"][data-mood="失态"] { background-image: url(https://i.ibb.co/JWykVsqs/Comfy-UI-02138.png) !important; }

/* 梁潇珑 */
.os-cg[data-npc="梁潇珑"][data-mood="常态"] { background-image: url(https://i.ibb.co/F4ps8Q4G/image.png) !important; }
.os-cg[data-npc="梁潇珑"][data-mood="动情"] { background-image: url(https://i.ibb.co/pr3D6bHg/Comfy-UI-02221.png) !important; }
.os-cg[data-npc="梁潇珑"][data-mood="失态"] { background-image: url(https://i.ibb.co/5h6TzNN7/Comfy-UI-02217.png) !important; }

/* 玉兔（多CG角色·20张） */
.os-cg[data-npc="玉兔"][data-mood="常态"] { background-image: url(https://i.ibb.co/SDkVfzxp/Comfy-UI-01543.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="失态"] { background-image: url(https://i.ibb.co/WNQB9Vp4/Comfy-UI-01540.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="张开手"] { background-image: url(https://i.ibb.co/dw0WdZZz/Comfy-UI-01539.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="打招呼"] { background-image: url(https://i.ibb.co/wrCSMGKs/Comfy-UI-01537.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="性爱邀请"] { background-image: url(https://i.ibb.co/p6b13HRn/Comfy-UI-01553.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="卖萌"] { background-image: url(https://i.ibb.co/hF3fMsPJ/Comfy-UI-01549.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="捏肚子"] { background-image: url(https://i.ibb.co/Q7KVfhXB/Comfy-UI-01547.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="撩衣服"] { background-image: url(https://i.ibb.co/TxcVc1X0/Comfy-UI-01545.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="站立后入"] { background-image: url(https://i.ibb.co/Kz5X0Wxj/Comfy-UI-01562.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="女上位"] { background-image: url(https://i.ibb.co/5xnShJjg/Comfy-UI-01560.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="小皮鞭"] { background-image: url(https://i.ibb.co/hRtc41GT/Comfy-UI-01558.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="吓唬"] { background-image: url(https://i.ibb.co/RphtbjM6/Comfy-UI-01554.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="女上位内射"] { background-image: url(https://i.ibb.co/TDC1mVYt/Comfy-UI-01575.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="口交"] { background-image: url(https://i.ibb.co/yBY7GqLG/Comfy-UI-01571.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="跪姿后入"] { background-image: url(https://i.ibb.co/s9ZxcSKy/Comfy-UI-01566.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="抓乳"] { background-image: url(https://i.ibb.co/kVvy60qq/Comfy-UI-01564.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="抱起插入"] { background-image: url(https://i.ibb.co/v4R9bwQz/Comfy-UI-01611.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="乳交"] { background-image: url(https://i.ibb.co/nNp1QTMy/Comfy-UI-01605.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="动情"] { background-image: url(https://i.ibb.co/ks4zCH1K/Comfy-UI-01584.png) !important; }
.os-cg[data-npc="玉兔"][data-mood="撸管喂奶"] { background-image: url(https://i.ibb.co/m5K35ssL/Comfy-UI-01581.png) !important; }

/* ===== 东瀛使团 角色组 ===== */

/* 梦安瑶（多CG角色·20张） */
.os-cg[data-npc="梦安瑶"][data-mood="展示腋下"] { background-image: url(https://i.ibb.co/HLhyCCnj/Comfy-UI-02410.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="深喉"] { background-image: url(https://i.ibb.co/k2JHr2WR/Comfy-UI-02395.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="抓乳"] { background-image: url(https://i.ibb.co/N6CbJpv0/Comfy-UI-02386.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="准备插入"] { background-image: url(https://i.ibb.co/xKFczjjz/Comfy-UI-02385.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="口交"] { background-image: url(https://i.ibb.co/mVy6DkkX/Comfy-UI-02381.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="乳交"] { background-image: url(https://i.ibb.co/zHXX9hbw/Comfy-UI-02364.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="女上位插入"] { background-image: url(https://i.ibb.co/ZpdS2TrK/Comfy-UI-02363.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="坐姿撸管"] { background-image: url(https://i.ibb.co/Lhqxqrtt/Comfy-UI-02352.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="传教士"] { background-image: url(https://i.ibb.co/q37HX756/Comfy-UI-02345.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="站姿撸管"] { background-image: url(https://i.ibb.co/BVtDN8NC/Comfy-UI-02340.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="按头后入"] { background-image: url(https://i.ibb.co/rRZpwv7G/Comfy-UI-02335.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="传教士揉乳"] { background-image: url(https://i.ibb.co/nsqmz1ty/Comfy-UI-02328.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="动情"] { background-image: url(https://i.ibb.co/8nLnvgRM/Comfy-UI-02306.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="挑逗"] { background-image: url(https://i.ibb.co/Lz60jm5V/Comfy-UI-02300.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="祈祷"] { background-image: url(https://i.ibb.co/SwB93k8r/Comfy-UI-02294.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="吃东西"] { background-image: url(https://i.ibb.co/jZWBpCx9/Comfy-UI-02293.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="常态"] { background-image: url(https://i.ibb.co/Kp7b3Hfq/Comfy-UI-02290.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="抱起来操"] { background-image: url(https://i.ibb.co/99ZW8gLv/a263bfb3-87d9-4b9f-8263-d53b9234c912.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="牵手"] { background-image: url(https://i.ibb.co/H9yYGJh/1d2089ff-c279-4148-a374-676f5d89f5db.png) !important; }
.os-cg[data-npc="梦安瑶"][data-mood="侧入"] { background-image: url(https://i.ibb.co/rKF9d3qb/38d0c89e-e109-4e3d-8c58-34aec820c049.png) !important; }

/* 神宫寺梨奈（多CG角色·20张） */
.os-cg[data-npc="神宫寺梨奈"][data-mood="屁股展示"] { background-image: url(https://i.ibb.co/TDkRcF4d/Comfy-UI-02636.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="口交手势"] { background-image: url(https://i.ibb.co/FkXrxYLt/Comfy-UI-02628.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="深喉"] { background-image: url(https://i.ibb.co/BkGtHzS/Comfy-UI-02625.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="常态"] { background-image: url(https://i.ibb.co/tMFFfkd6/Comfy-UI-02619.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="吓唬"] { background-image: url(https://i.ibb.co/FqqJ501h/Comfy-UI-02614.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="身后抓乳"] { background-image: url(https://i.ibb.co/3Y7g3S7v/Comfy-UI-02613.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="跪姿后入"] { background-image: url(https://i.ibb.co/7ttzVZBs/Comfy-UI-02611.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="动情"] { background-image: url(https://i.ibb.co/TM0dzDkW/Comfy-UI-02610.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="正常体位"] { background-image: url(https://i.ibb.co/m5RZVHsC/Comfy-UI-02605.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="正常体位高潮"] { background-image: url(https://i.ibb.co/KcLHWhr2/Comfy-UI-02603.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="跪姿后入高潮"] { background-image: url(https://i.ibb.co/d0PwZyd8/Comfy-UI-02602.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="乳交"] { background-image: url(https://i.ibb.co/DHg9Vjz4/Comfy-UI-02600.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="女上位"] { background-image: url(https://i.ibb.co/RGcnh6Pz/Comfy-UI-02599.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="坐姿后入"] { background-image: url(https://i.ibb.co/ns2Sq6ZW/Comfy-UI-02598.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="站姿后入"] { background-image: url(https://i.ibb.co/XZW40GKJ/Comfy-UI-02596.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="蹲姿揉胸"] { background-image: url(https://i.ibb.co/ch0zhhmq/Comfy-UI-02595.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="素股揉胸"] { background-image: url(https://i.ibb.co/hxHM3p64/Comfy-UI-02594.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="撩发"] { background-image: url(https://i.ibb.co/dssVFR6Q/Comfy-UI-02591.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="坐姿"] { background-image: url(https://i.ibb.co/N2KRM0yZ/Comfy-UI-02588.png) !important; }
.os-cg[data-npc="神宫寺梨奈"][data-mood="翘二郎腿"] { background-image: url(https://i.ibb.co/3mqyBB3s/Comfy-UI-02587.png) !important; }

/* 秋知意 */
.os-cg[data-npc="秋知意"][data-mood="常态"] { background-image: url(https://i.ibb.co/TxMQkhs6/Comfy-UI-02273.png) !important; }
.os-cg[data-npc="秋知意"][data-mood="动情"] { background-image: url(https://i.ibb.co/kgmq1dB6/Comfy-UI-02275.png) !important; }
.os-cg[data-npc="秋知意"][data-mood="失态"] { background-image: url(https://i.ibb.co/d0jf6dHs/Comfy-UI-02277.png) !important; }

/* 宫本翔内 */
.os-cg[data-npc="宫本翔内"][data-mood="常态"] { background-image: url(https://i.ibb.co/MkScbXmV/Comfy-UI-02644.png) !important; }
.os-cg[data-npc="宫本翔内"][data-mood="动情"] { background-image: url(https://i.ibb.co/jv5LpCzq/image.png) !important; }
.os-cg[data-npc="宫本翔内"][data-mood="失态"] { background-image: url(https://i.ibb.co/v557RkN/Comfy-UI-02664.png) !important; }

/* 宫本千溪 */
.os-cg[data-npc="宫本千溪"][data-mood="常态"] { background-image: url(https://i.ibb.co/x8zvyFvS/image.png) !important; }
.os-cg[data-npc="宫本千溪"][data-mood="动情"] { background-image: url(https://i.ibb.co/Tx0Sr1gn/Comfy-UI-02694.png) !important; }
.os-cg[data-npc="宫本千溪"][data-mood="失态"] { background-image: url(https://i.ibb.co/HT6CDQyJ/Comfy-UI-02691.png) !important; }

/* 宫本悠亚 */
.os-cg[data-npc="宫本悠亚"][data-mood="常态"] { background-image: url(https://i.ibb.co/hF4rxHm6/Comfy-UI-02422.png) !important; }
.os-cg[data-npc="宫本悠亚"][data-mood="动情"] { background-image: url(https://i.ibb.co/3yRdyDGs/Comfy-UI-02419.png) !important; }
.os-cg[data-npc="宫本悠亚"][data-mood="失态"] { background-image: url(https://i.ibb.co/BWDncKB/Comfy-UI-02417.png) !important; }

/* 深田咲 */
.os-cg[data-npc="深田咲"][data-mood="常态"] { background-image: url(https://i.ibb.co/cXrHnbWk/image.png) !important; }
.os-cg[data-npc="深田咲"][data-mood="动情"] { background-image: url(https://i.ibb.co/ZpDpjw9W/Comfy-UI-02527.png) !important; }
.os-cg[data-npc="深田咲"][data-mood="失态"] { background-image: url(https://i.ibb.co/MyKCp4hL/Comfy-UI-02526.png) !important; }

/* 藤原铃美 */
.os-cg[data-npc="藤原铃美"][data-mood="常态"] { background-image: url(https://i.ibb.co/3yTzFCM2/image.png) !important; }
.os-cg[data-npc="藤原铃美"][data-mood="动情"] { background-image: url(https://i.ibb.co/j9hhrTTP/Comfy-UI-02730.png) !important; }
.os-cg[data-npc="藤原铃美"][data-mood="失态"] { background-image: url(https://i.ibb.co/JwYy4PYb/Comfy-UI-02723.png) !important; }

/* 藤原铃乔 */
.os-cg[data-npc="藤原铃乔"][data-mood="常态"] { background-image: url(https://i.ibb.co/zyw2kQj/Comfy-UI-02446.png) !important; }
.os-cg[data-npc="藤原铃乔"][data-mood="动情"] { background-image: url(https://i.ibb.co/Z6BQsp8Q/Comfy-UI-02440.png) !important; }
.os-cg[data-npc="藤原铃乔"][data-mood="失态"] { background-image: url(https://i.ibb.co/93z6KWw0/Comfy-UI-02433.png) !important; }

/* 神宫寺绯鞠 */
.os-cg[data-npc="神宫寺绯鞠"][data-mood="常态"] { background-image: url(https://i.ibb.co/whMQR8Bj/Comfy-UI-02501.png) !important; }
.os-cg[data-npc="神宫寺绯鞠"][data-mood="动情"] { background-image: url(https://i.ibb.co/PGfMmQVW/Comfy-UI-02497.png) !important; }
.os-cg[data-npc="神宫寺绯鞠"][data-mood="失态"] { background-image: url(https://i.ibb.co/m5RvMfgr/Comfy-UI-02493.png) !important; }

/* 神宫寺结衣 */
.os-cg[data-npc="神宫寺结衣"][data-mood="常态"] { background-image: url(https://i.ibb.co/DHCfV7mx/Comfy-UI-02454.png) !important; }
.os-cg[data-npc="神宫寺结衣"][data-mood="动情"] { background-image: url(https://i.ibb.co/XrYw2KG0/Comfy-UI-02453.png) !important; }
.os-cg[data-npc="神宫寺结衣"][data-mood="失态"] { background-image: url(https://i.ibb.co/rf0VckDW/Comfy-UI-02452.png) !important; }


/* ============================================================
   一、设计令牌（CSS变量）
   ============================================================ */
@import url('https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/style.css');

:root,
.markdown-body {
  /* 底色层 - 宣纸质感 */
  --paper: #f5f0e8;
  --paper-dark: #ebe3d4;
  --paper-darker: #d9cfb8;
  --paper-deep: #c4b896;
  --ink-black: #1c1813;

  /* 文字色 - 墨色梯度 */
  --ink: #2c3e50;
  --ink-mid: #5a6c7d;
  --ink-light: #8a9ba8;
  --ink-faint: #b0b8c0;

  /* 强调色 - 朱砂系 */
  --vermilion: #c04040;
  --vermilion-dark: #8a2828;
  --vermilion-light: #e8b4b4;

  /* 辅助色 */
  --gold: #b8860b;
  --gold-light: #d4a843;
  --jade: #4a7c59;
  --jade-light: #7aa886;
  --amber: #d97706;
  --amber-light: #f59e0b;
  --purple: #6b5b95;
  --purple-light: #9b8cc4;

  /* 边框 */
  --border-ink: #1c1813;
  --border-light: #c4b896;
  --border-vermilion: #8a2828;

  /* 字体 */
  --font-serif: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif;
  --font-brush: "Ma Shan Zheng", "Noto Serif SC", cursive;
  --font-mono: "Courier New", monospace;
}

/* ============================================================
   二、全局基础 - 正文容器
   ============================================================ */

/* 正文article - 宣纸卷轴质感 */
.markdown-body .story-main {
  font-family: var(--font-serif) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  background: linear-gradient(180deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  padding: 20px 24px !important;
  margin: 12px 0 !important;
  border: 1px solid var(--border-light) !important;
  border-left: 4px solid var(--vermilion) !important;
  border-radius: 4px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.4px !important;
  box-shadow:
    0 2px 8px rgba(28, 24, 19, 0.1),
    inset 0 0 50px rgba(192, 64, 64, 0.03),
    0 0 0 1px rgba(192, 64, 64, 0.05) !important;
  position: relative !important;
}

/* 正文段落 */
.markdown-body .story-main p {
  margin: 10px 0 !important;
  text-indent: 2em !important;
  position: relative !important;
  z-index: 1 !important;
}

/* 正文标题 */
.markdown-body .story-main h2,
.markdown-body .story-main h3,
.markdown-body .story-main h4 {
  font-family: var(--font-serif) !important;
  color: var(--vermilion-dark) !important;
  border-bottom: 2px solid var(--vermilion-light) !important;
  padding-bottom: 6px !important;
  margin: 16px 0 10px !important;
  position: relative !important;
  z-index: 1 !important;
  text-shadow: 0 1px 2px rgba(192, 64, 64, 0.1) !important;
}

/* ============================================================
   三、对话颜色系统（span class）
   ============================================================ */

/* 主角对话 - 沉静蓝 */
.markdown-body .d-player {
  color: #2196f3 !important;
  font-weight: 600 !important;
}

/* NPC对话 - 沉稳绿 */
.markdown-body .d-npc {
  color: #4caf50 !important;
  font-weight: 500 !important;
}

/* 亲密对话 - 桃花粉 */
.markdown-body .d-erotic {
  color: #ff6b9d !important;
  font-weight: 500 !important;
  text-shadow: 0 0 1px rgba(255, 107, 157, 0.2) !important;
}

/* 内心独白 - 灰墨 */
.markdown-body .d-thought {
  color: #b0b0b0 !important;
  font-style: italic !important;
}

/* ============================================================
   四、状态面板（sys-panel）- 核心模块
   ============================================================ */

/* 系统面板容器 - 宣纸折叠卷 */
.markdown-body details.sys-panel {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.95) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  padding: 0 !important;
  box-shadow:
    0 2px 6px rgba(28, 24, 19, 0.08),
    inset 0 0 40px rgba(192, 64, 64, 0.02),
    0 1px 0 rgba(255, 255, 255, 0.5) inset !important;
  overflow: hidden !important;
  transition: box-shadow 0.3s ease !important;
}

/* 系统面板summary - 卷轴标题栏 */
.markdown-body details.sys-panel > summary {
  background: linear-gradient(180deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  color: var(--ink-black) !important;
  padding: 12px 18px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.05em !important;
  border-bottom: 1px solid var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
  position: relative !important;
  transition: all 0.2s ease !important;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5) !important;
}

/* summary前的展开三角 - 替换为古风符号 */
.markdown-body details.sys-panel > summary::-webkit-details-marker {
  display: none !important;
}

.markdown-body details.sys-panel > summary::before {
  content: "▸" !important;
  color: var(--vermilion) !important;
  margin-right: 8px !important;
  display: inline-block !important;
  transition: transform 0.2s ease !important;
}

/* 展开状态下的符号旋转 */
.markdown-body details.sys-panel[open] > summary::before {
  transform: rotate(90deg) !important;
}

/* summary内b标签 - 各模块语义化配色 */
.markdown-body details.sys-panel > summary b {
  font-family: var(--font-serif) !important;
  letter-spacing: 0.05em !important;
}

/* === 态势栏 - 朱砂反白头条（主视觉）=== */
.markdown-body details.sys-panel:has(summary b.态势) > summary,
.markdown-body details.sys-panel:has(summary b[class="态势"]) > summary {
  background: linear-gradient(180deg, var(--vermilion) 0%, var(--vermilion-dark) 100%) !important;
  color: #f5f0e8 !important;
  border-bottom: 2px solid var(--ink-black) !important;
  box-shadow: 0 2px 6px rgba(138, 40, 40, 0.25) !important;
}

.markdown-body details.sys-panel:has(summary b.态势) > summary::before,
.markdown-body details.sys-panel:has(summary b[class="态势"]) > summary::before {
  color: #f5f0e8 !important;
}

.markdown-body details.sys-panel:has(summary b.态势) > summary b,
.markdown-body details.sys-panel:has(summary b[class="态势"]) > summary b {
  color: #f5f0e8 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}

/* === 成长档案 - 金色珍贵 === */
.markdown-body details.sys-panel:has(summary b.成长) > summary,
.markdown-body details.sys-panel:has(summary b[class="成长"]) > summary {
  background: linear-gradient(180deg, #f0e0c0 0%, #e0d0a8 100%) !important;
  color: var(--gold) !important;
  border-left: 4px solid var(--gold) !important;
}

.markdown-body details.sys-panel:has(summary b.成长) > summary b,
.markdown-body details.sys-panel:has(summary b[class="成长"]) > summary b {
  color: var(--gold) !important;
}

/* === 当前互动 - 玉色生机 === */
.markdown-body details.sys-panel:has(summary b.互动) > summary,
.markdown-body details.sys-panel:has(summary b[class="互动"]) > summary {
  background: linear-gradient(180deg, #e0ecd8 0%, #d0e0c8 100%) !important;
  color: var(--jade) !important;
  border-left: 4px solid var(--jade) !important;
}

.markdown-body details.sys-panel:has(summary b.互动) > summary b,
.markdown-body details.sys-panel:has(summary b[class="互动"]) > summary b {
  color: var(--jade) !important;
}

/* === 关系网络 - 紫色人脉 === */
.markdown-body details.sys-panel:has(summary b.关系) > summary,
.markdown-body details.sys-panel:has(summary b[class="关系"]) > summary {
  background: linear-gradient(180deg, #e8e0f0 0%, #d8d0e8 100%) !important;
  color: var(--purple) !important;
  border-left: 4px solid var(--purple) !important;
}

.markdown-body details.sys-panel:has(summary b.关系) > summary b,
.markdown-body details.sys-panel:has(summary b[class="关系"]) > summary b {
  color: var(--purple) !important;
}

/* === 任务日志 - 琥珀目标 === */
.markdown-body details.sys-panel:has(summary b.任务) > summary,
.markdown-body details.sys-panel:has(summary b[class="任务"]) > summary {
  background: linear-gradient(180deg, #f5e8d0 0%, #ecd8b8 100%) !important;
  color: var(--amber) !important;
  border-left: 4px solid var(--amber) !important;
}

.markdown-body details.sys-panel:has(summary b.任务) > summary b,
.markdown-body details.sys-panel:has(summary b[class="任务"]) > summary b {
  color: var(--amber) !important;
}

/* === 记忆档案 - 深墨沉淀 === */
.markdown-body details.sys-panel:has(summary b.记忆) > summary,
.markdown-body details.sys-panel:has(summary b[class="记忆"]) > summary {
  background: linear-gradient(180deg, #e0dcd4 0%, #d0ccc4 100%) !important;
  color: var(--ink-black) !important;
  border-left: 4px solid var(--ink-black) !important;
}

.markdown-body details.sys-panel:has(summary b.记忆) > summary b,
.markdown-body details.sys-panel:has(summary b[class="记忆"]) > summary b {
  color: var(--ink-black) !important;
}

/* === 自定义记忆区 - 淡墨 === */
.markdown-body details.sys-panel:has(summary b.自定义记忆) > summary,
.markdown-body details.sys-panel:has(summary b[class="自定义记忆"]) > summary {
  background: linear-gradient(180deg, #ece8e0 0%, #ddd8d0 100%) !important;
  color: var(--ink-mid) !important;
  border-left: 4px dashed var(--ink-mid) !important;
}

.markdown-body details.sys-panel:has(summary b.自定义记忆) > summary b,
.markdown-body details.sys-panel:has(summary b[class="自定义记忆"]) > summary b {
  color: var(--ink-mid) !important;
}

/* === 记忆总结 - 隐藏态特殊样式 === */
.markdown-body details.sys-panel:has(summary b.记忆总结) > summary,
.markdown-body details.sys-panel:has(summary b[class="记忆总结"]) > summary {
  background: linear-gradient(180deg, #2c3e50 0%, #1c2838 100%) !important;
  color: #d4a843 !important;
  border-left: 4px solid #d4a843 !important;
}

.markdown-body details.sys-panel:has(summary b.记忆总结) > summary b,
.markdown-body details.sys-panel:has(summary b[class="记忆总结"]) > summary b {
  color: #d4a843 !important;
}

/* 系统面板内容区 */
.markdown-body details.sys-panel[open] > *:not(summary) {
  padding: 14px 18px !important;
}

/* 系统面板内的小标题 */
.markdown-body details.sys-panel h3 {
  font-family: var(--font-serif) !important;
  color: var(--vermilion-dark) !important;
  font-size: 1em !important;
  border-bottom: 1px dashed var(--border-light) !important;
  padding-bottom: 4px !important;
  margin: 12px 0 8px !important;
}

.markdown-body details.sys-panel h3 b {
  color: var(--vermilion-dark) !important;
}

/* 系统面板内的列表 */
.markdown-body details.sys-panel li {
  line-height: 1.7 !important;
  margin: 4px 0 !important;
}

/* 系统面板内的加粗 */
.markdown-body details.sys-panel b {
  color: var(--ink-black) !important;
  font-weight: 600 !important;
}

/* ============================================================
   五、嵌套子面板（技艺/背包/任务详情）
   ============================================================ */

.markdown-body details.sys-panel details {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  margin: 6px 0 !important;
}

.markdown-body details.sys-panel details > summary {
  background: transparent !important;
  color: var(--ink) !important;
  padding: 6px 12px !important;
  font-size: 0.95em !important;
  border-bottom: 1px dashed var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
}

.markdown-body details.sys-panel details > summary::-webkit-details-marker {
  display: none !important;
}

.markdown-body details.sys-panel details > summary::before {
  content: "·" !important;
  color: var(--vermilion) !important;
  margin-right: 6px !important;
  font-weight: bold !important;
}

.markdown-body details.sys-panel details[open] > summary::before {
  content: "·" !important;
}

/* ============================================================
   六、表格美化（属性/技艺/关系/任务）
   ============================================================ */

.markdown-body details.sys-panel table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 8px 0 !important;
  font-size: 0.92em !important;
  background: var(--paper) !important;
}

.markdown-body details.sys-panel table th {
  background: var(--paper-darker) !important;
  color: var(--ink-black) !important;
  font-weight: 700 !important;
  padding: 6px 10px !important;
  border: 1px solid var(--border-light) !important;
  text-align: center !important;
}

.markdown-body details.sys-panel table td {
  padding: 5px 10px !important;
  border: 1px solid var(--border-light) !important;
  color: var(--ink) !important;
  text-align: center !important;
}

/* 表格隔行变色 */
.markdown-body details.sys-panel table tr:nth-child(even) td {
  background: var(--paper-dark) !important;
}

/* ============================================================
   七、进度条美化（可视化填充进度条）
   ============================================================ */

/* 进度条容器 */
.markdown-body .os-bars {
  display: flex !important;
  flex-direction: row !important;
  gap: 8px !important;
  margin: 8px 0 !important;
}

/* 进度条外框 */
.markdown-body .os-bars .bar {
  position: relative !important;
  flex: 1 !important;
  height: 28px !important;
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  font-family: var(--font-serif) !important;
}

/* 进度条内填充层 —— 可视化填充 */
.markdown-body .os-bars .bar > .fill {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  height: 100% !important;
  z-index: 1 !important;
  border-radius: 4px !important;
}

/* 进度条填充颜色 */
.markdown-body .os-bars .bar.red > .fill {
  background: linear-gradient(90deg, rgba(192,64,64,0.6), rgba(138,40,40,0.4)) !important;
}
.markdown-body .os-bars .bar.blue > .fill {
  background: linear-gradient(90deg, rgba(44,95,158,0.6), rgba(30,60,120,0.4)) !important;
}
.markdown-body .os-bars .bar.gold > .fill {
  background: linear-gradient(90deg, rgba(184,134,11,0.6), rgba(140,100,8,0.4)) !important;
}

/* 进度条文字层 —— 标签 + 百分比 */
.markdown-body .os-bars .bar > .text {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  text-shadow: 0 1px 1px rgba(255,255,255,0.5) !important;
}

/* 根据data-p值设置填充宽度（0-100%） */
.markdown-body .os-bars .bar[data-p="0"] > .fill { width: 0% !important; }
.markdown-body .os-bars .bar[data-p="5"] > .fill { width: 5% !important; }
.markdown-body .os-bars .bar[data-p="10"] > .fill { width: 10% !important; }
.markdown-body .os-bars .bar[data-p="15"] > .fill { width: 15% !important; }
.markdown-body .os-bars .bar[data-p="20"] > .fill { width: 20% !important; }
.markdown-body .os-bars .bar[data-p="25"] > .fill { width: 25% !important; }
.markdown-body .os-bars .bar[data-p="30"] > .fill { width: 30% !important; }
.markdown-body .os-bars .bar[data-p="35"] > .fill { width: 35% !important; }
.markdown-body .os-bars .bar[data-p="40"] > .fill { width: 40% !important; }
.markdown-body .os-bars .bar[data-p="45"] > .fill { width: 45% !important; }
.markdown-body .os-bars .bar[data-p="50"] > .fill { width: 50% !important; }
.markdown-body .os-bars .bar[data-p="55"] > .fill { width: 55% !important; }
.markdown-body .os-bars .bar[data-p="60"] > .fill { width: 60% !important; }
.markdown-body .os-bars .bar[data-p="65"] > .fill { width: 65% !important; }
.markdown-body .os-bars .bar[data-p="70"] > .fill { width: 70% !important; }
.markdown-body .os-bars .bar[data-p="75"] > .fill { width: 75% !important; }
.markdown-body .os-bars .bar[data-p="80"] > .fill { width: 80% !important; }
.markdown-body .os-bars .bar[data-p="85"] > .fill { width: 85% !important; }
.markdown-body .os-bars .bar[data-p="90"] > .fill { width: 90% !important; }
.markdown-body .os-bars .bar[data-p="95"] > .fill { width: 95% !important; }
.markdown-body .os-bars .bar[data-p="100"] > .fill { width: 100% !important; }

/* ============================================================
   八、装备品质配色（li class）
   ============================================================ */

/* 凡品 - 灰色 */
.markdown-body details.sys-panel li.凡品,
.markdown-body details.sys-panel li[class="凡品"] {
  color: var(--ink-mid) !important;
  border-left: 3px solid var(--ink-light) !important;
  padding-left: 8px !important;
  background: rgba(176, 184, 192, 0.08) !important;
}

/* 良品 - 绿色 */
.markdown-body details.sys-panel li.良品,
.markdown-body details.sys-panel li[class="良品"] {
  color: var(--jade) !important;
  border-left: 3px solid var(--jade) !important;
  padding-left: 8px !important;
  background: rgba(74, 124, 89, 0.08) !important;
}

/* 上品 - 蓝色 */
.markdown-body details.sys-panel li.上品,
.markdown-body details.sys-panel li[class="上品"] {
  color: #2c5f9e !important;
  border-left: 3px solid #2c5f9e !important;
  padding-left: 8px !important;
  background: rgba(44, 95, 158, 0.08) !important;
}

/* 极品 - 紫色 */
.markdown-body details.sys-panel li.极品,
.markdown-body details.sys-panel li[class="极品"] {
  color: var(--purple) !important;
  border-left: 3px solid var(--purple) !important;
  padding-left: 8px !important;
  background: rgba(107, 91, 149, 0.1) !important;
  font-weight: 500 !important;
}

/* 灵品 - 金色 */
.markdown-body details.sys-panel li.灵品,
.markdown-body details.sys-panel li[class="灵品"] {
  color: var(--gold) !important;
  border-left: 3px solid var(--gold) !important;
  padding-left: 8px !important;
  background: rgba(184, 134, 11, 0.12) !important;
  font-weight: 600 !important;
  text-shadow: 0 0 1px rgba(184, 134, 11, 0.2) !important;
}

/* 仙品 - 朱砂红 */
.markdown-body details.sys-panel li.仙品,
.markdown-body details.sys-panel li[class="仙品"] {
  color: var(--vermilion) !important;
  border-left: 3px solid var(--vermilion) !important;
  padding-left: 8px !important;
  background: rgba(192, 64, 64, 0.12) !important;
  font-weight: 700 !important;
  text-shadow: 0 0 2px rgba(192, 64, 64, 0.3) !important;
}

/* 品质标签b标签 */
.markdown-body details.sys-panel b.凡品,
.markdown-body details.sys-panel b.良品,
.markdown-body details.sys-panel b.上品,
.markdown-body details.sys-panel b.极品,
.markdown-body details.sys-panel b.灵品,
.markdown-body details.sys-panel b.仙品,
.markdown-body details.sys-panel b[class="凡品"],
.markdown-body details.sys-panel b[class="良品"],
.markdown-body details.sys-panel b[class="上品"],
.markdown-body details.sys-panel b[class="极品"],
.markdown-body details.sys-panel b[class="灵品"],
.markdown-body details.sys-panel b[class="仙品"] {
  padding: 1px 6px !important;
  border-radius: 2px !important;
  font-weight: 700 !important;
}

.markdown-body details.sys-panel b.凡品,
.markdown-body details.sys-panel b[class="凡品"] {
  background: var(--ink-light) !important;
  color: #fff !important;
}

.markdown-body details.sys-panel b.良品,
.markdown-body details.sys-panel b[class="良品"] {
  background: var(--jade) !important;
  color: #fff !important;
}

.markdown-body details.sys-panel b.上品,
.markdown-body details.sys-panel b[class="上品"] {
  background: #2c5f9e !important;
  color: #fff !important;
}

.markdown-body details.sys-panel b.极品,
.markdown-body details.sys-panel b[class="极品"] {
  background: var(--purple) !important;
  color: #fff !important;
}

.markdown-body details.sys-panel b.灵品,
.markdown-body details.sys-panel b[class="灵品"] {
  background: var(--gold) !important;
  color: #fff !important;
}

.markdown-body details.sys-panel b.仙品,
.markdown-body details.sys-panel b[class="仙品"] {
  background: var(--vermilion) !important;
  color: #fff !important;
}

/* ============================================================
   九、思维链面板（think-panel）
   ============================================================ */

.markdown-body details.think-panel {
  background: linear-gradient(135deg, #f0ece4 0%, #e8e4dc 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--ink-mid) !important;
  border-radius: 6px !important;
  margin: 8px 0 !important;
  font-size: 0.92em !important;
  box-shadow: 0 2px 6px rgba(28, 24, 19, 0.06) !important;
  transition: box-shadow 0.3s ease !important;
}

.markdown-body details.think-panel > summary {
  background: transparent !important;
  color: var(--ink-mid) !important;
  padding: 8px 14px !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  list-style: none !important;
  border-bottom: 1px dashed var(--border-light) !important;
}

.markdown-body details.think-panel > summary::-webkit-details-marker {
  display: none !important;
}

.markdown-body details.think-panel > summary::before {
  content: "◈" !important;
  color: var(--ink-mid) !important;
  margin-right: 8px !important;
}

.markdown-body details.think-panel > summary b {
  color: var(--ink) !important;
}

/* 思维链内容区 —— 紧凑排版，压缩间距避免过大空白 */
.markdown-body details.think-panel[open] > *:not(summary) {
  padding: 6px 12px !important;
}
.markdown-body details.think-panel p {
  margin: 2px 0 !important;
  line-height: 1.5 !important;
}
.markdown-body details.think-panel ul {
  margin: 2px 0 4px !important;
  padding-left: 18px !important;
}

/* 思维链步骤标题（**1. xxx** 渲染为 strong） */
.markdown-body details.think-panel strong {
  display: block !important;
  color: var(--vermilion-dark) !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 0.95em !important;
  margin: 4px 0 1px !important;
  padding-bottom: 2px !important;
  border-bottom: 1px dashed var(--border-light) !important;
}

/* 思维链列表项 */
.markdown-body details.think-panel li {
  margin: 1px 0 !important;
  line-height: 1.45 !important;
  color: var(--ink) !important;
}

/* ============================================================
   十、代码块美化（Past/Summary记忆区）
   ============================================================ */

.markdown-body pre {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--vermilion) !important;
  border-radius: 3px !important;
  padding: 12px 16px !important;
  margin: 8px 0 !important;
  font-family: var(--font-mono) !important;
  font-size: 0.9em !important;
  line-height: 1.6 !important;
  color: var(--ink) !important;
  overflow-x: auto !important;
}

.markdown-body pre code {
  background: transparent !important;
  color: var(--ink) !important;
  padding: 0 !important;
  font-family: var(--font-mono) !important;
}

/* ============================================================
   十一、引用块美化
   ============================================================ */

.markdown-body blockquote {
  background: linear-gradient(135deg, rgba(192, 64, 64, 0.06) 0%, rgba(192, 64, 64, 0.03) 100%) !important;
  border-left: 4px solid var(--vermilion-light) !important;
  padding: 10px 16px !important;
  margin: 8px 0 !important;
  color: var(--ink-mid) !important;
  font-style: italic !important;
  border-radius: 0 4px 4px 0 !important;
  box-shadow: 0 1px 4px rgba(192, 64, 64, 0.08) !important;
}

/* ============================================================
   十二、行动建议区
   ============================================================ */

.markdown-body details.sys-panel + p,
.markdown-body .story-main + details.sys-panel + p {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--gold) !important;
  padding: 10px 14px !important;
  border-radius: 3px !important;
  margin: 8px 0 !important;
}

/* ============================================================
   十三、滚动条美化
   ============================================================ */

.markdown-body ::-webkit-scrollbar {
  width: 8px !important;
  height: 8px !important;
}

.markdown-body ::-webkit-scrollbar-track {
  background: var(--paper-dark) !important;
  border-radius: 4px !important;
}

.markdown-body ::-webkit-scrollbar-thumb {
  background: var(--border-light) !important;
  border-radius: 4px !important;
}

.markdown-body ::-webkit-scrollbar-thumb:hover {
  background: var(--vermilion-light) !important;
}

/* ============================================================
   十四、移动端适配
   ============================================================ */

@media (max-width: 768px) {
  .markdown-body .os-attrs {
  overflow: visible !important;
}

  .markdown-body .os-eq-box > .slot {
  position: relative !important;
  overflow: visible !important;
}

  .markdown-body .os-grid {
  overflow: visible !important;
}

  .markdown-body details.os-dr > summary,
  .markdown-body details.os-hud > summary {
    padding: 8px 10px !important;
    font-size: 0.95em !important;
  }

  .markdown-body details.os-dr > .os-body {
  padding: 12px 14px !important;
  overflow: visible !important;
}

  .markdown-body .os-tip {
  position: absolute !important;
  bottom: calc(100% + 6px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 180px !important;
  max-width: 280px !important;
  background: var(--ink-black) !important;
  color: var(--paper) !important;
  padding: 8px 12px !important;
  border-radius: 4px !important;
  border: 1px solid var(--gold) !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 9999 !important;
  pointer-events: none !important;
  white-space: normal !important;
  text-align: left !important;
}

  .rili-markdown-renderer .os-attrs {
  overflow: visible !important;
}

  .rili-markdown-renderer .os-eq-box > .slot {
  position: relative !important;
  overflow: visible !important;
}

  .rili-markdown-renderer .os-grid {
  overflow: visible !important;
}

  .rili-markdown-renderer details.os-dr > summary,
  .rili-markdown-renderer details.os-hud > summary {
    padding: 8px 10px !important;
    font-size: 0.95em !important;
  }

  .rili-markdown-renderer details.os-dr > .os-body {
  padding: 12px 14px !important;
  overflow: visible !important;
}

  .rili-markdown-renderer .os-tip {
  position: absolute !important;
  bottom: calc(100% + 6px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 180px !important;
  max-width: 280px !important;
  background: var(--ink-black) !important;
  color: var(--paper) !important;
  padding: 8px 12px !important;
  border-radius: 4px !important;
  border: 1px solid var(--gold) !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 9999 !important;
  pointer-events: none !important;
  white-space: normal !important;
  text-align: left !important;
}
}

/* ============================================================
   十五、hover微交互
   ============================================================ */

.markdown-body details.sys-panel > summary:hover {
  filter: brightness(0.97) !important;
  transform: translateY(-1px) !important;
}

.markdown-body details.sys-panel details > summary:hover {
  color: var(--vermilion) !important;
}

.markdown-body details.think-panel > summary:hover {
  color: var(--ink) !important;
}

/* ============================================================
   配色语义速查表
   ============================================================
   | 模块       | 主色          | 语义       |
   |-----------|---------------|-----------|
   | 态势栏     | 朱砂红 #c04040 | 主视觉头条 |
   | 成长档案   | 金色 #b8860b  | 成长珍贵   |
   | 当前互动   | 玉色 #4a7c59  | 人物生机   |
   | 关系网络   | 紫色 #6b5b95  | 人脉网络   |
   | 任务日志   | 琥珀 #d97706  | 目标指引   |
   | 记忆档案   | 深墨 #1c1813  | 沉淀厚重   |
   | 自定义记忆 | 淡墨 #5a6c7d  | 个人记录   |
   | 记忆总结   | 深蓝金 #d4a843 | 隐藏特殊   |
   | 装备品质   | 六色梯度       | 稀有度     |
   ============================================================ */

/* ============================================================
   十六、状态面板V2（os-dr架构）· 古卷武侠风
   适配HTML结构：os-dr / os-hud / os-tip
   设计基调：宣纸底 + 朱砂墨韵 + 品质六阶色
   ============================================================ */

/* === 16.0 品质阶级配色令牌（r-Tier1~r-Tier6）=== */
.markdown-body .r-Tier1 { --tier-c: #c04040; --tier-bg: rgba(192,64,64,0.12); --tier-glow: rgba(192,64,64,0.4); } /* 仙品·朱砂 */
.markdown-body .r-Tier2 { --tier-c: #b8860b; --tier-bg: rgba(184,134,11,0.12); --tier-glow: rgba(184,134,11,0.35); } /* 灵品·金 */
.markdown-body .r-Tier3 { --tier-c: #6b5b95; --tier-bg: rgba(107,91,149,0.1); --tier-glow: rgba(107,91,149,0.3); } /* 极品·紫 */
.markdown-body .r-Tier4 { --tier-c: #2c5f9e; --tier-bg: rgba(44,95,158,0.08); --tier-glow: rgba(44,95,158,0.25); } /* 上品·蓝 */
.markdown-body .r-Tier5 { --tier-c: #4a7c59; --tier-bg: rgba(74,124,89,0.08); --tier-glow: rgba(74,124,89,0.2); } /* 良品·玉 */
.markdown-body .r-Tier6 { --tier-c: #8a9ba8; --tier-bg: rgba(138,155,168,0.08); --tier-glow: rgba(138,155,168,0.15); } /* 凡品·灰 */

/* ============================================================
   16.1 主角卡容器（os-dr）—— 折叠卷轴
   ============================================================ */

.markdown-body details.os-dr {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  padding: 0 !important;
  font-size: 15px !important;
  box-shadow: 
    0 2px 8px rgba(28,24,19,0.1), 
    inset 0 0 50px rgba(192,64,64,0.03),
    0 1px 0 rgba(255,255,255,0.4) inset !important;
  position: relative !important;
  transition: box-shadow 0.3s ease !important;
}

/* 悬停时提升堆叠层级，防止 os-tip 被相邻卡片遮挡 */
.markdown-body details.os-dr:hover {
  z-index: 50 !important;
}

/* 主角卡summary —— 卷轴头 */
.markdown-body details.os-dr > summary {
  background: linear-gradient(180deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  color: var(--ink-black) !important;
  padding: 12px 16px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.02em !important;
  border-bottom: 1px solid var(--border-light) !important;
  border-radius: 6px 6px 0 0 !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
  text-shadow: 0 1px 1px rgba(255,255,255,0.5) !important;
}

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

.markdown-body details.os-dr > summary::-webkit-details-marker {
  display: none !important;
}

.markdown-body details.os-dr > summary::before {
  content: "▸" !important;
  color: var(--vermilion) !important;
  transition: transform 0.2s ease !important;
  flex-shrink: 0 !important;
}

.markdown-body details.os-dr[open] > summary::before {
  transform: rotate(90deg) !important;
}

/* summary内的图标+编号 */
.markdown-body details.os-dr > summary > span:first-child {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 1.05em !important;
}

.markdown-body details.os-dr > summary .ic {
  font-style: normal !important;
  font-size: 1.1em !important;
  opacity: 0.8 !important;
}

/* === 16.2 标签系统（os-tags / m-tag / tag）=== */

.markdown-body .os-tags {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: wrap !important;
  margin-left: auto !important;
}

.markdown-body .os-tags .tag {
  display: inline-block !important;
  padding: 1px 8px !important;
  font-size: 0.8em !important;
  font-family: var(--font-serif) !important;
  background: var(--paper) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 10px !important;
  color: var(--ink-mid) !important;
  white-space: nowrap !important;
}

/* 品质阶级tag —— 按r-Tier着色 */
.markdown-body .os-tags .tag[class*="r-Tier"] {
  color: var(--tier-c) !important;
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  font-weight: 600 !important;
}

/* 性别/属性标签 m-tag */
.markdown-body .m-tag {
  display: inline-block !important;
  padding: 1px 7px !important;
  font-size: 0.78em !important;
  font-family: var(--font-serif) !important;
  border-radius: 3px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.markdown-body .m-tag.男 {
  background: rgba(44,95,158,0.15) !important;
  color: #2c5f9e !important;
  border: 1px solid rgba(44,95,158,0.3) !important;
}

.markdown-body .m-tag.女 {
  background: rgba(255,107,157,0.15) !important;
  color: #c05080 !important;
  border: 1px solid rgba(255,107,157,0.3) !important;
}
/* 英文 class 兜底 */
.markdown-body .m-tag.male {
  background: rgba(44,95,158,0.15) !important;
  color: #2c5f9e !important;
  border: 1px solid rgba(44,95,158,0.3) !important;
}
.markdown-body .m-tag.female {
  background: rgba(255,107,157,0.15) !important;
  color: #c05080 !important;
  border: 1px solid rgba(255,107,157,0.3) !important;
}

/* NPC特征标签（年龄/容貌/杀气等）*/
.markdown-body .m-tag:not(.男):not(.女):not(.male):not(.female) {
  background: var(--paper-dark) !important;
  color: var(--ink-mid) !important;
  border: 1px solid var(--border-light) !important;
}

.markdown-body .m-tag.beauty { color: #c05080 !important; border-color: rgba(192,80,128,0.3) !important; }
.markdown-body .m-tag.threat { color: var(--vermilion) !important; border-color: rgba(192,64,64,0.3) !important; }
.markdown-body .m-tag.r-Tier1, .markdown-body .m-tag.r-Tier2, .markdown-body .m-tag.r-Tier3,
.markdown-body .m-tag.r-Tier4, .markdown-body .m-tag.r-Tier5, .markdown-body .m-tag.r-Tier6 {
  color: var(--tier-c) !important;
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

/* ============================================================
   16.3 卡片主体（os-body）与 英雄区（os-hero）
   ============================================================ */

.markdown-body details.os-dr > .os-body {
  padding: 12px 14px !important;
}

.markdown-body .os-hero {
  margin-bottom: 8px !important;
}

/* === 16.4 状态条（os-bars / bar）=== */
.markdown-body .os-bars {
  overflow: visible !important;
}

.markdown-body .os-bars .bar {
  position: relative !important;
  overflow: visible !important;
}



/* 金色神智条特殊高亮 */
.markdown-body .os-bars .bar.gold {
  border-color: var(--gold) !important;
  box-shadow: 0 0 4px rgba(184,134,11,0.15) !important;
}

/* === 16.5 容貌描述（os-look）—— data属性渲染 === */
.markdown-body .os-look {
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  padding: 6px 10px !important;
  background: var(--paper-dark) !important;
  border-left: 3px solid var(--border-light) !important;
  border-radius: 0 3px 3px 0 !important;
  margin: 6px 0 !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
}

.markdown-body .os-look::before {
  content: "【" attr(data-face) " · " attr(data-cloth) " · " attr(data-soul) "】" !important;
}

/* === 16.6 属性面板（os-panel / os-attrs）=== */
.markdown-body .os-panel {
  overflow: visible !important;
}

.markdown-body .os-attrs {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)) !important;
  gap: 5px !important;
  margin-bottom: 8px !important;
}

.markdown-body .os-attrs .attr {
  position: relative !important;
  overflow: visible !important;
}

.markdown-body .os-attrs .attr::before {
  content: attr(data-l) !important;
  display: block !important;
  font-size: 0.75em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 2px !important;
}

.markdown-body .os-attrs .attr::after {
  content: attr(data-v) !important;
  display: block !important;
  font-size: 1.2em !important;
  font-weight: 700 !important;
  color: var(--ink-black) !important;
  font-variant-numeric: tabular-nums !important;
}

/* 品质着色 —— 按r-Tier */
.markdown-body .os-attrs .attr[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

.markdown-body .os-attrs .attr[class*="r-Tier"]::after {
  color: var(--tier-c) !important;
}

/* 高亮属性（hl）—— 内力核心 */
.markdown-body .os-attrs .attr.hl {
  border-width: 2px !important;
  box-shadow: 0 0 6px var(--tier-glow) !important;
}

.markdown-body .os-attrs .attr.hl::after {
  text-shadow: 0 0 3px var(--tier-glow) !important;
}

/* 属性os-tip固定说明 —— CSS统一渲染，AI无需每轮重复输出 */
.markdown-body .os-attrs .attr > .os-tip > em::after {
  content: "每5点1格，满20为████" !important;
  display: block !important;
  margin-top: 4px !important;
  padding-top: 4px !important;
  border-top: 1px dashed var(--border-light) !important;
  font-size: 0.9em !important;
  color: var(--ink-mid) !important;
  font-style: normal !important;
}

/* === 16.7 装备槽（os-eq-box / slot）=== */
.markdown-body .os-eq-box {
  overflow: visible !important;
}

/* 装备区标题 —— 用data-t渲染 */
.markdown-body .os-eq-box::before {
  content: attr(data-t) !important;
  display: block !important;
  font-size: 0.8em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 4px !important;
  font-family: var(--font-serif) !important;
}

.markdown-body .os-eq-box > .slot {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: calc(25% - 4px) !important;
  min-height: 48px !important;
  margin: 2px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  background: var(--paper-dark) !important;
  font-size: 1.3em !important;
  vertical-align: top !important;
  position: relative !important;
  cursor: default !important;
  transition: filter 0.15s ease !important;
}

.markdown-body .os-eq-box > .slot:hover {
  filter: brightness(0.95) !important;
}

/* 槽位类型标签 —— 用data-s渲染 */
.markdown-body .os-eq-box > .slot::after {
  content: attr(data-s) !important;
  font-size: 0.6em !important;
  font-family: var(--font-serif) !important;
  color: var(--ink-mid) !important;
  margin-top: 2px !important;
  display: block !important;
}

/* 品质边框 */
.markdown-body .os-eq-box > .slot[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 8px var(--tier-glow) !important;
}

/* 紧凑装备格（os-eq-mini）—— grid布局4列卡片，品质色边框+悬浮上浮 */
.markdown-body .os-eq-mini {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 5px !important;
  margin-top: 5px !important;
}
.markdown-body .os-eq-mini > .slot {
  position: relative !important;
  overflow: visible !important;
  text-align: center !important;
  padding: 4px 2px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  background: var(--paper-dark) !important;
  font-size: 1.15em !important;
  line-height: 1.3 !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}
.markdown-body .os-eq-mini > .slot::before {
  content: attr(data-s) !important;
  display: block !important;
  font-size: 0.68em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 2px !important;
  letter-spacing: 1px !important;
}
.markdown-body .os-eq-mini > .slot[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 5px var(--tier-glow) !important;
}
.markdown-body .os-eq-mini > .slot:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 3px 8px rgba(28,24,19,0.18) !important;
  z-index: 5 !important;
}

/* ============================================================
   16.8 命格/底牌行（os-row + pill）
   ============================================================ */

/* 锚点行隐藏输出 —— display:none，内容仍在HTML中供世界书扫描触发，玩家不可见 */
.markdown-body .os-row.os-anchor {
  display: none !important;
  font-size: 0.78em !important;
  color: var(--ink-mid) !important;
  background: rgba(196,184,150,0.15) !important;
  border-left: 2px dashed var(--border-light) !important;
  border-bottom: none !important;
  padding: 5px 10px !important;
  margin: 4px 0 !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  word-break: break-word !important;
  border-radius: 0 3px 3px 0 !important;
  user-select: text !important;
  -webkit-user-select: text !important;
}

/* 隐藏行 —— 叙事/模式/剧情模式/防抢话，与锚点同步隐藏，内容仍在HTML中供世界书扫描 */
.markdown-body .os-row[data-t="叙事"],
.markdown-body .os-row[data-t="模式"],
.markdown-body .os-row[data-t="剧情模式"],
.markdown-body .os-row[data-t="防抢话"] {
  display: none !important;
}

.markdown-body .os-row[data-t]::before {
  content: attr(data-t) "：" !important;
  font-size: 0.82em !important;
  color: var(--ink-mid) !important;
  font-family: var(--font-serif) !important;
  margin-right: 4px !important;
}

/* os-row 基础样式 —— 信息行视觉分隔 */
.markdown-body .os-row[data-t]:not(.os-anchor) {
  padding: 4px 8px !important;
  margin: 3px 0 !important;
  border-bottom: 1px dashed rgba(196,184,150,0.4) !important;
  line-height: 1.7 !important;
}

/* 境界行 —— 金阶里程碑（武道/文道/属性上限） */
.markdown-body .os-row[data-t="境界"] {
  background: linear-gradient(90deg, rgba(184,134,11,0.14) 0%, rgba(212,168,67,0.06) 50%, transparent 100%) !important;
  border-left: 3px solid var(--gold) !important;
  border-bottom: none !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 7px 10px !important;
  margin: 6px 0 !important;
  font-weight: 600 !important;
  box-shadow: inset 0 0 14px rgba(212,168,67,0.07) !important;
}
.markdown-body .os-row[data-t="境界"]::before {
  color: var(--gold) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}
.markdown-body .os-row[data-t="境界"] .pill {
  font-size: 1.02em !important;
  font-weight: 700 !important;
  padding: 3px 9px !important;
  border-width: 1.5px !important;
}

/* 装备行 —— 冷钢兵刃（四槽位grid） */
.markdown-body .os-row[data-t="装备"] {
  background: linear-gradient(90deg, rgba(90,108,125,0.12) 0%, rgba(138,155,168,0.04) 50%, transparent 100%) !important;
  border-left: 3px solid var(--ink-mid) !important;
  border-bottom: none !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 6px 10px !important;
  margin: 6px 0 !important;
}
.markdown-body .os-row[data-t="装备"]::before {
  color: var(--ink-mid) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}

/* 命格胶囊（pill）*/
.markdown-body .pill {
  display: inline-block !important;
  position: relative !important;
  overflow: visible !important;
  padding: 2px 8px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 10px !important;
  background: var(--paper-dark) !important;
  color: var(--ink) !important;
  font-size: 0.85em !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  vertical-align: middle !important;
}

.markdown-body .pill:hover {
  filter: brightness(0.95) !important;
}

/* 命格等级 */
.markdown-body .pill .lv {
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  font-weight: 600 !important;
}

/* 可前往地点胶囊 —— data-loc/data-dist驱动渲染，免去冗余os-tip */
.markdown-body .pill[data-loc]::before {
  content: attr(data-loc) !important;
}
.markdown-body .pill[data-loc]::after {
  content: "（" attr(data-dist) "）" !important;
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
}

/* 命格颜色变体 */
.markdown-body .pill.紫 { border-color: var(--purple) !important; color: var(--purple) !important; background: rgba(107,91,149,0.08) !important; }
.markdown-body .pill.金 { border-color: var(--gold) !important; color: var(--gold) !important; background: rgba(184,134,11,0.1) !important; }
.markdown-body .pill.红 { border-color: var(--vermilion) !important; color: var(--vermilion) !important; background: rgba(192,64,64,0.08) !important; }
.markdown-body .pill.蓝 { border-color: #2c5f9e !important; color: #2c5f9e !important; background: rgba(44,95,158,0.08) !important; }
.markdown-body .pill.绿 { border-color: var(--jade) !important; color: var(--jade) !important; background: rgba(74,124,89,0.08) !important; }
/* 英文 class 兜底（防 AI 偶尔输出英文色名）*/
.markdown-body .pill.purple { border-color: var(--purple) !important; color: var(--purple) !important; background: rgba(107,91,149,0.08) !important; }
.markdown-body .pill.gold { border-color: var(--gold) !important; color: var(--gold) !important; background: rgba(184,134,11,0.1) !important; }
.markdown-body .pill.red { border-color: var(--vermilion) !important; color: var(--vermilion) !important; background: rgba(192,64,64,0.08) !important; }
.markdown-body .pill.blue { border-color: #2c5f9e !important; color: #2c5f9e !important; background: rgba(44,95,158,0.08) !important; }
.markdown-body .pill.green { border-color: var(--jade) !important; color: var(--jade) !important; background: rgba(74,124,89,0.08) !important; }

/* 招式胶囊（pill.move）*/
.markdown-body .pill.move {
  padding: 3px 8px 3px 6px !important;
  border-radius: 3px !important;
}

.markdown-body .pill.move .tag {
  font-size: 0.85em !important;
  padding: 0 3px !important;
  border: none !important;
  background: transparent !important;
  color: var(--vermilion) !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}

.markdown-body .pill.move[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

/* ============================================================
   16.9 底部信息栏（os-foot）—— 位置/银两/声望
   ============================================================ */

.markdown-body .os-foot {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  padding: 6px 10px !important;
  margin-top: 8px !important;
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  color: var(--ink-mid) !important;
}

.markdown-body .os-foot::before {
  content: "📍 " attr(data-loc) !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
}

.markdown-body .os-foot::after {
  content: "💰 " attr(data-money) "　⚔️ 声望: " attr(data-rep) !important;
  margin-left: auto !important;
  color: var(--gold) !important;
  font-weight: 600 !important;
}

/* ============================================================
   16.10 四独立卡片变体（武道/须弥/红尘/卷宗）—— 拆分自原天机盒
   ============================================================ */

/* 武道卡 —— 墨青·技艺沉静 */
.markdown-body details.os-dr.skill > summary {
  background: linear-gradient(180deg, rgba(45,90,123,0.12) 0%, rgba(74,124,159,0.08) 100%) !important;
  border-bottom: 1px solid rgba(45,90,123,0.2) !important;
}
.markdown-body details.os-dr.skill > summary::before {
  color: #2d5a7b !important;
}

/* 须弥卡 —— 琥珀·物品仓储 */
.markdown-body details.os-dr.sack > summary {
  background: linear-gradient(180deg, rgba(217,119,6,0.12) 0%, rgba(245,158,11,0.08) 100%) !important;
  border-bottom: 1px solid rgba(217,119,6,0.2) !important;
}
.markdown-body details.os-dr.sack > summary::before {
  color: var(--amber) !important;
}

/* 产业卡 —— 金辉·商贾经营 */
.markdown-body details.os-dr.gold > summary {
  background: linear-gradient(180deg, rgba(202,138,4,0.12) 0%, rgba(234,179,8,0.08) 100%) !important;
  border-bottom: 1px solid rgba(202,138,4,0.2) !important;
}
.markdown-body details.os-dr.gold > summary::before {
  color: #ca8a04 !important;
}

/* 家宅卡 —— 紫络·府邸风水 */
.markdown-body details.os-dr.purple > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.12) 0%, rgba(155,140,196,0.08) 100%) !important;
  border-bottom: 1px solid rgba(107,91,149,0.2) !important;
}
.markdown-body details.os-dr.purple > summary::before {
  color: #6b5b95 !important;
}

/* —— 嵌套子卡（os-dr.sub）—— 主角档案内可收起展开的产业/家宅/武道/须弥子区 —— */
.markdown-body details.os-dr.sub {
  margin: 8px 0 0 !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 5px !important;
  overflow: hidden !important;
  background: var(--paper) !important;
}
.markdown-body details.os-dr.sub > summary {
  font-size: 0.95em !important;
  font-weight: 700 !important;
  padding: 6px 12px !important;
  list-style: none !important;
  cursor: pointer !important;
  border-bottom: none !important;
}
.markdown-body details.os-dr.sub:not([open]) > summary {
  border-bottom: none !important;
}
.markdown-body details.os-dr.sub[open] > summary {
  border-bottom: 1px solid var(--border-light) !important;
}
.markdown-body details.os-dr.sub > summary::-webkit-details-marker {
  display: none !important;
}
.markdown-body details.os-dr.sub > summary::before {
  content: '▶' !important;
  display: inline-block !important;
  margin-right: 6px !important;
  font-size: 0.7em !important;
  transition: transform 0.2s !important;
}
.markdown-body details.os-dr.sub[open] > summary::before {
  transform: rotate(90deg) !important;
}
.markdown-body details.os-dr.sub > .os-body {
  padding: 8px 12px !important;
}

/* —— sub 状态下保留变体色边框与增强配色（展开时）——
   修复 .os-dr.sub 的 border-bottom:none / 灰色边框 覆盖变体色边框的问题
   特异性 (0,0,4,2) > .os-dr.sub[open] (0,0,3,2)，确保变体色优先 */
.markdown-body details.os-dr.gold.sub > summary {
  background: linear-gradient(180deg, rgba(202,138,4,0.20) 0%, rgba(234,179,8,0.12) 100%) !important;
}
.markdown-body details.os-dr.gold.sub[open] > summary {
  border-bottom: 1px solid rgba(202,138,4,0.30) !important;
}
.markdown-body details.os-dr.purple.sub > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.20) 0%, rgba(155,140,196,0.12) 100%) !important;
}
.markdown-body details.os-dr.purple.sub[open] > summary {
  border-bottom: 1px solid rgba(107,91,149,0.30) !important;
}
.markdown-body details.os-dr.skill.sub > summary {
  background: linear-gradient(180deg, rgba(45,90,123,0.20) 0%, rgba(74,124,159,0.12) 100%) !important;
}
.markdown-body details.os-dr.skill.sub[open] > summary {
  border-bottom: 1px solid rgba(45,90,123,0.30) !important;
}
.markdown-body details.os-dr.sack.sub > summary {
  background: linear-gradient(180deg, rgba(217,119,6,0.20) 0%, rgba(245,158,11,0.12) 100%) !important;
}
.markdown-body details.os-dr.sack.sub[open] > summary {
  border-bottom: 1px solid rgba(217,119,6,0.30) !important;
}

/* —— 青楼专属·可折叠子区块（os-fold）—— 花魁阵容/贵客网络等大区块，默认收起 —— */
.markdown-body details.os-fold {
  margin: 6px 0 !important;
  border: 1px solid rgba(202,138,4,0.22) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  background: rgba(202,138,4,0.025) !important;
}
.markdown-body details.os-fold > summary {
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  font-weight: 700 !important;
  color: var(--vermilion-dark) !important;
  padding: 6px 12px !important;
  list-style: none !important;
  cursor: pointer !important;
  border-bottom: none !important;
  background: linear-gradient(180deg, rgba(202,138,4,0.13) 0%, rgba(234,179,8,0.05) 100%) !important;
  user-select: none !important;
}
.markdown-body details.os-fold[open] > summary {
  border-bottom: 1px dashed rgba(202,138,4,0.28) !important;
}
.markdown-body details.os-fold > summary::-webkit-details-marker {
  display: none !important;
}
.markdown-body details.os-fold > summary::before {
  content: '▸' !important;
  display: inline-block !important;
  margin-right: 6px !important;
  font-size: 0.85em !important;
  color: rgba(202,138,4,0.7) !important;
  transition: transform 0.2s !important;
}
.markdown-body details.os-fold[open] > summary::before {
  content: '▾' !important;
}
.markdown-body details.os-fold > .os-body {
  padding: 8px 12px !important;
}
.markdown-body details.os-fold > summary:hover {
  background: linear-gradient(180deg, rgba(202,138,4,0.20) 0%, rgba(234,179,8,0.10) 100%) !important;
}

/* 红尘卡 —— 紫络·人脉关系 */
.markdown-body details.os-dr.bond > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.12) 0%, rgba(155,140,196,0.08) 100%) !important;
  border-bottom: 1px solid rgba(107,91,149,0.2) !important;
}
.markdown-body details.os-dr.bond > summary::before {
  color: var(--purple) !important;
}

/* 卷宗卡 —— 赭褐·任务古朴 */
.markdown-body details.os-dr.scroll > summary {
  background: linear-gradient(180deg, rgba(139,69,19,0.12) 0%, rgba(160,82,45,0.08) 100%) !important;
  border-bottom: 1px solid rgba(139,69,19,0.2) !important;
}
.markdown-body details.os-dr.scroll > summary::before {
  color: #8b4513 !important;
}

/* ============================================================
   16.11 卡片子标题与分隔线（适用所有os-body）
   ============================================================ */

.markdown-body .os-body .os-sub-h {
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  font-weight: 700 !important;
  color: var(--vermilion-dark) !important;
  margin: 10px 0 6px !important;
  padding-bottom: 3px !important;
  border-bottom: 1px dashed var(--border-light) !important;
}

.markdown-body .os-body .os-sub-h:first-child {
  margin-top: 0 !important;
}

.markdown-body .os-body .os-div {
  height: 1px !important;
  background: var(--border-light) !important;
  margin: 10px 0 !important;
}

/* —— 主角档案内武学卡片微调 —— */
.markdown-body details.os-dr:not(.scene):not(.enemy):not(.bond):not(.scroll):not(.log) .os-art {
  border-left: 3px solid #2d5a7b !important;
  background: linear-gradient(135deg, rgba(45,90,123,0.04) 0%, var(--paper-dark) 60%) !important;
}

/* —— 主角档案内背包网格微调 —— */
.markdown-body details.os-dr:not(.scene):not(.enemy):not(.bond):not(.scroll):not(.log) .os-grid {
  padding: 6px !important;
  background: rgba(217,119,6,0.03) !important;
  border-radius: 4px !important;
  border: 1px dashed rgba(217,119,6,0.15) !important;
}

/* ============================================================
   16.12 武学卡片（os-art / os-art-h / os-pills）
   ============================================================ */

.markdown-body .os-art {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--vermilion-light) !important;
  border-radius: 3px !important;
  padding: 8px 10px !important;
  margin-bottom: 6px !important;
}

/* 武学头部 */
.markdown-body .os-art-h {
  position: relative !important;
  padding-left: 28px !important;
  margin-bottom: 5px !important;
}

/* 武学图标 —— 用data-icon渲染圆形字标 */
.markdown-body .os-art-h::before {
  content: attr(data-icon) !important;
  position: absolute !important;
  left: 0; top: 0 !important;
  width: 22px; height: 22px !important;
  line-height: 22px !important;
  text-align: center !important;
  background: var(--vermilion) !important;
  color: #f5f0e8 !important;
  border-radius: 50% !important;
  font-family: var(--font-brush) !important;
  font-size: 0.85em !important;
  font-weight: 700 !important;
}

.markdown-body .os-art-h .t {
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  color: var(--ink-black) !important;
  font-size: 0.98em !important;
}

.markdown-body .os-art-h .t .tag {
  font-size: 0.8em !important;
  margin-left: 4px !important;
}

.markdown-body .os-art-h .t .tag[class*="r-Tier"] {
  color: var(--tier-c) !important;
  border: 1px solid var(--tier-c) !important;
  background: var(--tier-bg) !important;
  padding: 0 5px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
}

.markdown-body .os-art-h .m {
  font-size: 0.8em !important;
  color: var(--ink-mid) !important;
  margin-top: 1px !important;
}

.markdown-body .os-art-h .p {
  font-size: 0.82em !important;
  color: var(--vermilion-dark) !important;
  font-style: italic !important;
  margin-top: 2px !important;
  font-family: var(--font-brush) !important;
}

/* 招式列表 */
.markdown-body .os-pills {
  overflow: visible !important;
}

/* ============================================================
   16.13 背包网格（os-grid / item）
   ============================================================ */

.markdown-body .os-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(85px, 1fr)) !important;
  gap: 6px !important;
  margin: 6px 0 !important;
}

.markdown-body .os-grid .item {
  position: relative !important;
  overflow: visible !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  padding: 6px 4px !important;
  min-height: 38px !important;
  font-size: 0.85em !important;
  text-align: center !important;
  background: var(--paper) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--font-serif) !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
}

.markdown-body .os-grid .item:hover {
  filter: brightness(0.93) !important;
}

/* 物品名称 —— data-name驱动渲染 */
.markdown-body .os-grid .item[data-name]::before {
  content: attr(data-name) !important;
  display: block !important;
  font-weight: 600 !important;
}

/* 物品数量 —— 用data-n渲染角标 */
.markdown-body .os-grid .item[data-n]:not([data-n="1"])::after {
  content: "×" attr(data-n) !important;
  position: absolute !important;
  bottom: 2px; right: 3px !important;
  font-size: 0.7em !important;
  color: var(--ink) !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  background: rgba(245,240,232,0.85) !important;
  padding: 0 3px !important;
  border-radius: 2px !important;
  line-height: 1.3 !important;
}

.markdown-body .os-grid .item[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 8px var(--tier-glow) !important;
}

/* ============================================================
   16.14 任务卡片（os-q）与 江湖传闻（os-rumor）
   ============================================================ */

.markdown-body .os-q {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--amber) !important;
  border-radius: 3px !important;
  padding: 8px 10px !important;
  margin-bottom: 6px !important;
}

.markdown-body .os-q.main {
  border-left-width: 4px !important;
  box-shadow: 0 1px 3px rgba(217,119,6,0.15) !important;
}

.markdown-body .os-q .t {
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  color: var(--amber) !important;
  font-size: 0.95em !important;
  margin-bottom: 3px !important;
}

.markdown-body .os-q .t > span {
  float: right !important;
  font-size: 0.82em !important;
  color: var(--vermilion) !important;
  font-weight: 600 !important;
  background: rgba(192,64,64,0.08) !important;
  padding: 0 6px !important;
  border-radius: 8px !important;
}

.markdown-body .os-q .d {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
  margin-bottom: 3px !important;
}

.markdown-body .os-q .r {
  font-size: 0.82em !important;
  color: var(--gold) !important;
  font-weight: 600 !important;
}

/* 江湖传闻 */
.markdown-body .os-rumor {
  background: var(--paper-dark) !important;
  border: 1px dashed var(--border-light) !important;
  border-radius: 3px !important;
  padding: 6px 10px !important;
  margin-bottom: 5px !important;
}

.markdown-body .os-rumor .r-t {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 0.8em !important;
  margin-bottom: 3px !important;
}

.markdown-body .os-rumor .r-tags {
  color: var(--ink-mid) !important;
}

.markdown-body .os-rumor .r-cat {
  padding: 0 5px !important;
  border-radius: 3px !important;
  font-weight: 600 !important;
  font-size: 0.9em !important;
}

.markdown-body .os-rumor .r-cat.武林 { background: rgba(192,64,64,0.12) !important; color: var(--vermilion) !important; }
.markdown-body .os-rumor .r-cat.江湖 { background: rgba(74,124,89,0.12) !important; color: var(--jade) !important; }
.markdown-body .os-rumor .r-cat.朝堂 { background: rgba(184,134,11,0.12) !important; color: var(--gold) !important; }

.markdown-body .os-rumor .hot {
  margin-left: auto !important;
  color: var(--vermilion) !important;
  font-weight: 600 !important;
}

.markdown-body .os-rumor .r-c {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  font-style: italic !important;
  font-family: var(--font-brush) !important;
  line-height: 1.6 !important;
}

/* ============================================================
   16.14b 当前态势卡（os-dr.scene）—— 场景环境·翡翠绿
   ============================================================ */

.markdown-body details.os-dr.scene > summary {
  background: linear-gradient(180deg, rgba(74,124,89,0.12) 0%, rgba(122,168,134,0.08) 100%) !important;
  border-bottom: 1px solid rgba(74,124,89,0.2) !important;
}

.markdown-body details.os-dr.scene > summary::before {
  color: var(--jade) !important;
}

/* 场景档案 —— 方位/环境标签替代外貌/状态 */
.markdown-body details.os-dr.scene .os-dossier {
  border-left-color: var(--jade-light) !important;
}

.markdown-body details.os-dr.scene .os-dossier::before {
  content: "【方位】" attr(data-look) !important;
}

.markdown-body details.os-dr.scene .os-dossier::after {
  content: "【环境】" attr(data-state) !important;
  color: var(--jade) !important;
}

/* ============================================================
   16.15 敌人/NPC卡（os-dr.enemy）
   ============================================================ */

.markdown-body details.os-dr.enemy > summary {
  background: linear-gradient(180deg, rgba(138,40,40,0.12) 0%, rgba(192,64,64,0.08) 100%) !important;
  border-bottom: 1px solid rgba(138,40,40,0.2) !important;
}

.markdown-body details.os-dr.enemy > summary::before {
  color: var(--vermilion) !important;
}

/* NPC元信息行 */
.markdown-body .os-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  margin-bottom: 6px !important;
}

/* NPC档案描述 —— data属性渲染 */
.markdown-body .os-dossier {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  line-height: 1.7 !important;
  padding: 8px 10px !important;
  background: var(--paper-dark) !important;
  border-left: 3px solid var(--vermilion-light) !important;
  border-radius: 0 3px 3px 0 !important;
  margin: 6px 0 !important;
  font-family: var(--font-serif) !important;
}

.markdown-body .os-dossier::before {
  content: "【外貌】" attr(data-look) !important;
  display: block !important;
  margin-bottom: 4px !important;
}

.markdown-body .os-dossier::after {
  content: "【状态】" attr(data-state) !important;
  display: block !important;
  color: var(--vermilion-dark) !important;
}

/* 私密档案折叠项（os-private）—— NPC卡内嵌6部位，默认收起 */
.markdown-body .os-private {
  margin: 3px 0 !important;
  border-left: 2px solid rgba(138,40,40,0.25) !important;
  border-radius: 0 4px 4px 0 !important;
  background: rgba(138,40,40,0.04) !important;
  overflow: hidden !important;
}
.markdown-body .os-private > summary {
  padding: 5px 10px !important;
  font-size: 0.85em !important;
  font-weight: 600 !important;
  color: var(--vermilion-dark) !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
}
.markdown-body .os-private > summary::-webkit-details-marker {
  display: none !important;
}
.markdown-body .os-private > summary::before {
  content: "▸ " !important;
  color: var(--vermilion) !important;
  font-size: 0.9em !important;
}
.markdown-body .os-private[open] > summary {
  background: rgba(138,40,40,0.08) !important;
  border-bottom: 1px dashed rgba(138,40,40,0.15) !important;
}
.markdown-body .os-private[open] > summary::before {
  content: "▾ " !important;
}
.markdown-body .os-private > .os-row {
  padding: 6px 10px !important;
  font-size: 0.85em !important;
  line-height: 1.6 !important;
  color: var(--ink) !important;
}

/* 势力状态栏折叠区块（os-faction-sub）—— 势力子卡内嵌4区块，默认收起 */
.markdown-body .os-faction-sub {
  margin: 4px 0 !important;
  border-left: 2px solid rgba(202,138,4,0.3) !important;
  border-radius: 0 4px 4px 0 !important;
  background: rgba(202,138,4,0.04) !important;
  overflow: hidden !important;
}
.markdown-body .os-faction-sub > summary {
  padding: 5px 10px !important;
  font-size: 0.85em !important;
  font-weight: 600 !important;
  color: #8a5a04 !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
}
.markdown-body .os-faction-sub > summary::-webkit-details-marker {
  display: none !important;
}
.markdown-body .os-faction-sub > summary::before {
  content: "▸ " !important;
  color: rgba(202,138,4,0.8) !important;
  font-size: 0.9em !important;
}
.markdown-body .os-faction-sub[open] > summary {
  background: rgba(202,138,4,0.08) !important;
  border-bottom: 1px dashed rgba(202,138,4,0.15) !important;
}
.markdown-body .os-faction-sub[open] > summary::before {
  content: "▾ " !important;
}
.markdown-body .os-faction-sub > *:not(summary) {
  padding: 6px 10px !important;
  font-size: 0.85em !important;
  line-height: 1.6 !important;
}

/* ============================================================
   16.16 记忆卷宗（os-dr.log）
   ============================================================ */

.markdown-body details.os-dr.log > summary {
  background: linear-gradient(180deg, #2c3e50 0%, #1c2838 100%) !important;
  color: #d4a843 !important;
  border-bottom: 2px solid #d4a843 !important;
}

.markdown-body details.os-dr.log > summary::before {
  color: #d4a843 !important;
}

.markdown-body details.os-dr.log > summary .tag {
  background: rgba(212,168,67,0.15) !important;
  color: #d4a843 !important;
  border-color: #d4a843 !important;
}

.markdown-body details.os-dr.log > .os-body {
  background: var(--paper) !important;
}

.markdown-body details.os-dr.log table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 6px 0 !important;
  font-size: 0.85em !important;
}

.markdown-body details.os-dr.log table th {
  background: var(--paper-darker) !important;
  color: var(--ink-black) !important;
  font-weight: 700 !important;
  padding: 5px 8px !important;
  border: 1px solid var(--border-light) !important;
  text-align: center !important;
  font-family: var(--font-serif) !important;
}

.markdown-body details.os-dr.log table td {
  padding: 5px 8px !important;
  border: 1px solid var(--border-light) !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
}

.markdown-body details.os-dr.log table tr:nth-child(even) td {
  background: var(--paper-dark) !important;
}

/* 表格横向滚动容器（手机端可左右拖动查看完整内容） */
.markdown-body .os-tbl-scroll {
  overflow-x: auto !important;
  max-width: 100% !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 6px 0 !important;
}
.markdown-body .os-tbl-scroll table {
  min-width: 100% !important;
  width: max-content !important;
}

/* ============================================================
   16.17 决断区（os-hud）—— 命令选项
   ============================================================ */

.markdown-body details.os-hud {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 4px solid var(--gold) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  box-shadow: 
    0 2px 8px rgba(184,134,11,0.15),
    0 1px 0 rgba(255,255,255,0.4) inset !important;
  overflow: hidden !important;
  transition: box-shadow 0.3s ease !important;
}

.markdown-body details.os-hud > summary {
  background: linear-gradient(180deg, rgba(184,134,11,0.12) 0%, rgba(212,168,67,0.08) 100%) !important;
  color: var(--gold) !important;
  padding: 10px 14px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.02em !important;
  border-bottom: 1px solid var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.markdown-body details.os-hud > summary::-webkit-details-marker {
  display: none !important;
}

.markdown-body details.os-hud > summary::before {
  content: "▸" !important;
  color: var(--gold) !important;
  transition: transform 0.2s ease !important;
}

.markdown-body details.os-hud[open] > summary::before {
  transform: rotate(90deg) !important;
}

/* CMD标签 —— 闪烁动画 */
.markdown-body details.os-hud > summary .tag.blink {
  margin-left: auto !important;
  background: var(--vermilion) !important;
  color: #f5f0e8 !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 1px 8px !important;
  font-size: 0.78em !important;
  font-weight: 700 !important;
  animation: osBlink 1.5s ease-in-out infinite !important;
}

/* 命令代码块 */
.markdown-body details.os-hud > pre,
.markdown-body details.os-hud > .os-body pre {
  display: none !important;
}

.markdown-body details.os-hud > pre:hover,
.markdown-body details.os-hud > .os-body pre:hover {
  background: var(--paper-darker) !important;
  border-left-color: var(--vermilion) !important;
  transform: translateX(2px) !important;
}

.markdown-body details.os-hud > pre code,
.markdown-body details.os-hud > .os-body pre code {
  color: var(--ink) !important;
  background: transparent !important;
}

/* ============================================================
   16.18 悬浮提示（os-tip）—— tooltip
   ============================================================ */

.markdown-body .os-tip {
  position: absolute !important;
  bottom: calc(100% + 6px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 180px !important;
  max-width: 280px !important;
  background: var(--ink-black) !important;
  color: var(--paper) !important;
  padding: 8px 12px !important;
  border-radius: 4px !important;
  border: 1px solid var(--gold) !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 100 !important;
  pointer-events: none !important;
  white-space: normal !important;
  text-align: left !important;
}

/* 小箭头 */
.markdown-body .os-tip::after {
  content: "" !important;
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  border: 5px solid transparent !important;
  border-top-color: var(--gold) !important;
}

.markdown-body .os-tip b {
  display: block !important;
  color: var(--gold-light) !important;
  font-weight: 700 !important;
  margin-bottom: 3px !important;
  font-size: 1.05em !important;
}

.markdown-body .os-tip b[class*="r-Tier"] {
  color: var(--tier-c) !important;
}

.markdown-body .os-tip em {
  font-style: normal !important;
  color: var(--paper-darker) !important;
  font-size: 0.95em !important;
}

/* hover/focus 触发提示 */
.markdown-body [tabindex]:hover > .os-tip,
.markdown-body [tabindex]:focus > .os-tip,
.markdown-body .pill:hover > .os-tip,
.markdown-body .slot:hover > .os-tip,
.markdown-body .item:hover > .os-tip,
.markdown-body .attr:hover > .os-tip,
.markdown-body .bar:hover > .os-tip {
  opacity: 1 !important;
  visibility: visible !important;
}

/* ============================================================
   16.19 图标系统（ic）与 动画
   ============================================================ */

.markdown-body .ic {
  font-style: normal !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

@keyframes osBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

@keyframes osFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   16.20 关系/势力面板（panel-social）空态
   ============================================================ */

.markdown-body .panel-social .os-rel-g {
  margin: 6px 0 !important;
}

.markdown-body .panel-social .os-rel-g::before {
  content: attr(data-t) !important;
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  font-family: var(--font-serif) !important;
}

.markdown-body .panel-social .os-rel-g:empty::after {
  content: "暂无" !important;
  font-size: 0.85em !important;
  color: var(--ink-faint) !important;
  font-style: italic !important;
}

/* ============================================================
   16.21 响应式适配
   ============================================================ */

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

  .markdown-body .os-eq-box > .slot {
    width: calc(33.3% - 4px) !important;
  }

  .markdown-body .os-grid {
    grid-template-columns: repeat(auto-fill, minmax(42px, 1fr)) !important;
  }

  .markdown-body details.os-dr > summary,
  .markdown-body details.os-hud > summary {
    padding: 8px 10px !important;
    font-size: 0.95em !important;
  }

  .markdown-body details.os-dr > .os-body {
    padding: 8px 10px !important;
  }

  .markdown-body .os-tip {
    min-width: 150px !important;
    max-width: 220px !important;
  }
}

/* ============================================================
   配色语义速查表（V2扩展）
   ============================================================
   | 模块         | 主色          | 语义         |
   |-------------|---------------|-------------|
   | os-dr主角卡  | 朱砂 #c04040  | 卷轴头       |
   | os-dr.scene  | 玉 #4a7c59    | 场景环境     |
   | os-dr.skill  | 墨青 #2d5a7b  | 武道修为     |
   | os-dr.sack   | 琥珀 #d97706  | 物品仓储     |
   | os-dr.gold   | 金辉 #ca8a04  | 产业经营     |
   | os-dr.purple | 紫络 #6b5b95  | 家宅府邸     |
   | os-dr.enemy  | 暗朱 #8a2828  | 敌对威胁     |
   | os-dr.bond   | 紫 #6b5b95    | 人脉关系     |
   | os-dr.scroll | 赭褐 #8b4513  | 任务卷宗     |
   | os-dr.log    | 深蓝金 #d4a843 | 记忆沉淀     |
   | os-hud决断   | 金 #b8860b    | 行动指引     |
   | bar.red 体   | 朱砂 #c04040  | 气血         |
   | bar.blue 气  | 蓝 #2c5f9e    | 真气         |
   | bar.gold 神  | 金 #b8860b    | 神智         |
   | r-Tier1      | 朱砂 #c04040  | 仙品         |
   | r-Tier2      | 金 #b8860b    | 灵品         |
   | r-Tier3      | 紫 #6b5b95    | 极品         |
   | r-Tier4      | 蓝 #2c5f9e    | 上品         |
   | r-Tier5      | 玉 #4a7c59    | 良品         |
   | r-Tier6      | 灰 #8a9ba8    | 凡品         |
   ============================================================ */

.markdown-body .story-main::before {
  content: "" !important;
  position: absolute !important;
  top: 0; left: 0; right: 0; bottom: 0 !important;
  background: 
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 1.85em,
      rgba(196, 184, 150, 0.15) 1.85em,
      rgba(196, 184, 150, 0.15) calc(1.85em + 1px)
    ) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.markdown-body details.sys-panel:hover {
  box-shadow:
    0 4px 12px rgba(28, 24, 19, 0.12),
    inset 0 0 50px rgba(192, 64, 64, 0.03) !important;
}

.markdown-body details.think-panel:hover {
  box-shadow: 0 4px 10px rgba(28, 24, 19, 0.1) !important;
}

.markdown-body details.os-dr:hover {
  box-shadow: 
    0 4px 14px rgba(28,24,19,0.15), 
    inset 0 0 60px rgba(192,64,64,0.04) !important;
}

.markdown-body details.os-dr > summary:hover {
  filter: brightness(0.97) !important;
  transform: translateY(-1px) !important;
}

.markdown-body details.os-hud:hover {
  box-shadow: 
    0 4px 14px rgba(184,134,11,0.2) !important;
}

#prompt-input [data-slot="input-group"] {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-top: 3px solid var(--vermilion) !important;
  border-radius: 8px !important;
  box-shadow: 
    0 -4px 16px rgba(28,24,19,0.12),
    inset 0 0 60px rgba(192,64,64,0.04),
    0 -1px 0 rgba(255,255,255,0.5) inset !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.3s ease !important;
}

#prompt-input [data-slot="input-group"]::before {
  content: "" !important;
  position: absolute !important;
  top: -3px; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, 
    transparent 0%,
    var(--vermilion) 10%,
    var(--gold) 30%,
    var(--vermilion) 50%,
    var(--gold) 70%,
    var(--vermilion) 90%,
    transparent 100%
  ) !important;
  background-size: 200% 100% !important;
  animation: inputBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
}

#prompt-input [data-slot="input-group"]:hover {
  box-shadow: 
    0 -6px 24px rgba(28,24,19,0.18),
    inset 0 0 80px rgba(192,64,64,0.06),
    0 -1px 0 rgba(255,255,255,0.6) inset !important;
  transform: translateY(-2px) !important;
}

#prompt-input [data-slot="input-group"]:focus-within {
  border-color: var(--vermilion-light) !important;
  box-shadow: 
    0 -6px 28px rgba(192,64,64,0.25),
    inset 0 0 100px rgba(192,64,64,0.08),
    0 0 0 2px rgba(192,64,64,0.2) !important;
}

#prompt-input textarea {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: none !important;
  font-family: var(--font-serif) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  padding: 12px 16px !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
  box-shadow: inset 0 1px 3px rgba(28,24,19,0.08) !important;
}

#prompt-input textarea:focus {
  background: #fff !important;
  outline: none !important;
  box-shadow: 
    inset 0 1px 4px rgba(192,64,64,0.12),
    0 0 0 1px var(--vermilion-light) inset !important;
}

#prompt-input textarea::placeholder {
  color: var(--ink-faint) !important;
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  opacity: 0.6 !important;
}

#prompt-input-footer button {
  background: linear-gradient(135deg, var(--vermilion) 0%, var(--vermilion-dark) 100%) !important;
  color: var(--paper) !important;
  border: 1px solid var(--border-vermilion) !important;
  border-radius: 6px !important;
  padding: 8px 16px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  box-shadow: 
    0 2px 8px rgba(138,40,40,0.3),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  overflow: hidden !important;
}

#prompt-input-footer button::before {
  content: "" !important;
  position: absolute !important;
  top: -50%; left: -50% !important;
  width: 200%; height: 200% !important;
  background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}

#prompt-input-footer button:hover {
  background: linear-gradient(135deg, var(--vermilion-dark) 0%, #6a1f1f 100%) !important;
  box-shadow: 
    0 4px 14px rgba(138,40,40,0.45),
    inset 0 1px 0 rgba(255,255,255,0.2) !important;
  transform: translateY(-1px) scale(1.02) !important;
}

#prompt-input-footer button:hover::before {
  opacity: 1 !important;
  animation: buttonRipple 1.2s ease-out infinite !important;
}

#prompt-input-footer button:active {
  transform: translateY(0) scale(0.98) !important;
  box-shadow: 
    0 1px 4px rgba(138,40,40,0.4),
    inset 0 2px 4px rgba(0,0,0,0.2) !important;
}

#prompt-input-footer button svg {
  transition: transform 0.3s ease !important;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)) !important;
}

#prompt-input-footer button:hover svg {
  transform: translateX(2px) !important;
}

#prompt-input-header button {
  background: var(--paper-dark) !important;
  color: var(--ink-mid) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  padding: 6px 10px !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(28,24,19,0.08) !important;
}

#prompt-input-header button:hover {
  background: var(--paper-darker) !important;
  color: var(--vermilion) !important;
  border-color: var(--vermilion-light) !important;
  box-shadow: 
    0 2px 6px rgba(192,64,64,0.15),
    inset 0 0 0 1px rgba(192,64,64,0.1) !important;
  transform: translateY(-1px) !important;
}

#prompt-input-header button svg {
  transition: all 0.3s ease !important;
}

#prompt-input-header button:hover svg {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 0 3px rgba(192,64,64,0.4)) !important;
}

@keyframes inputBorderFlow {
  0% { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

@keyframes buttonRipple {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) scale(1.5);
    opacity: 0;
  }
}

.is-user > div {
  font-family: "LXGW WenKai", var(--font-serif);
  position: relative !important;
  background: 
    linear-gradient(135deg, 
      rgba(139,69,19,0.06) 0%, 
      rgba(205,175,125,0.08) 25%,
      rgba(245,235,220,0.12) 50%,
      rgba(205,175,125,0.08) 75%,
      rgba(139,69,19,0.06) 100%
    ),
    linear-gradient(180deg,
      rgba(255,250,240,0.9) 0%,
      rgba(252,245,230,0.85) 50%,
      rgba(248,238,218,0.9) 100%
    ) !important;
  border: 1px solid rgba(192,64,64,0.25) !important;
  border-right: 2px solid rgba(192,64,64,0.35) !important;
  box-shadow: 
    0 2px 12px rgba(28,24,19,0.1),
    inset 0 0 60px rgba(192,64,64,0.04),
    0 1px 0 rgba(255,255,255,0.5) inset !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.is-user > div::before {
  content: "" !important;
  position: absolute !important;
  top: 0; left: -3px; bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, 
    transparent 0%,
    var(--vermilion) 10%,
    var(--gold) 30%,
    var(--vermilion) 50%,
    var(--gold) 70%,
    var(--vermilion) 90%,
    transparent 100%
  ) !important;
  background-size: 100% 200% !important;
  animation: userBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
}

.is-user > div:hover {
  transform: none !important;
  box-shadow: 
    0 6px 24px rgba(28,24,19,0.18),
    inset 0 0 80px rgba(192,64,64,0.06),
    0 1px 0 rgba(255,255,255,0.6) inset !important;
}

.is-assistant > div {
  font-family: "LXGW WenKai", var(--font-serif);
  position: relative !important;
  background: 
    linear-gradient(135deg, 
      rgba(120,100,60,0.06) 0%, 
      rgba(180,160,110,0.08) 25%,
      rgba(240,232,215,0.12) 50%,
      rgba(180,160,110,0.08) 75%,
      rgba(120,100,60,0.06) 100%
    ),
    linear-gradient(180deg,
      rgba(255,252,245,0.9) 0%,
      rgba(250,245,232,0.85) 50%,
      rgba(245,238,222,0.9) 100%
    ) !important;
  border: 1px solid rgba(180,140,80,0.25) !important;
  border-left: 2px solid rgba(180,140,80,0.35) !important;
  box-shadow: 
    0 2px 12px rgba(28,24,19,0.1),
    inset 0 0 60px rgba(180,140,80,0.04),
    0 1px 0 rgba(255,255,255,0.5) inset !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.is-assistant > div::before {
  content: "" !important;
  position: absolute !important;
  top: 0; left: -3px; bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, 
    transparent 0%,
    var(--gold) 10%,
    var(--vermilion) 30%,
    var(--gold) 50%,
    var(--vermilion) 70%,
    var(--gold) 90%,
    transparent 100%
  ) !important;
  background-size: 100% 200% !important;
  animation: assistantBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
}

.is-assistant > div:hover {
  transform: none !important;
  box-shadow: 
    0 6px 24px rgba(28,24,19,0.18),
    inset 0 0 80px rgba(180,140,80,0.06),
    0 1px 0 rgba(255,255,255,0.6) inset !important;
}

nav header {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border-bottom: 3px solid transparent !important;
  border-image: linear-gradient(90deg, 
    transparent 0%,
    var(--vermilion) 20%,
    var(--gold) 40%,
    var(--vermilion) 60%,
    var(--gold) 80%,
    transparent 100%
  ) 1 !important;
  box-shadow: 
    0 4px 16px rgba(28,24,19,0.12),
    inset 0 0 60px rgba(192,64,64,0.03),
    0 1px 0 rgba(255,255,255,0.5) inset !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.3s ease !important;
}

nav header::before {
  content: "" !important;
  position: absolute !important;
  bottom: -3px; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, 
    transparent 0%,
    var(--vermilion) 20%,
    var(--gold) 40%,
    var(--vermilion) 60%,
    var(--gold) 80%,
    transparent 100%
  ) !important;
  background-size: 200% 100% !important;
  animation: headerBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
}

nav header:hover {
  box-shadow: 
    0 6px 24px rgba(28,24,19,0.18),
    inset 0 0 80px rgba(192,64,64,0.05),
    0 1px 0 rgba(255,255,255,0.6) inset !important;
}

@keyframes userBorderFlow {
  0% { background-position: 0% 0%; }
  100% { background-position: 0% 200%; }
}

@keyframes assistantBorderFlow {
  0% { background-position: 0% 0%; }
  100% { background-position: 0% 200%; }
}

@keyframes headerBorderFlow {
  0% { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

.is-assistant button.rounded-full {
  background: var(--paper-dark) !important;
  color: var(--ink-mid) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 50% !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(28,24,19,0.08) !important;
  position: relative !important;
  overflow: hidden !important;
}

.is-assistant button.rounded-full::before {
  content: "" !important;
  position: absolute !important;
  top: -50%; left: -50% !important;
  width: 200%; height: 200% !important;
  background: radial-gradient(circle, rgba(192,64,64,0.15) 0%, transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}

.is-assistant button.rounded-full:hover {
  background: var(--paper-darker) !important;
  color: var(--vermilion) !important;
  border-color: var(--vermilion-light) !important;
  box-shadow: 
    0 2px 6px rgba(192,64,64,0.15),
    inset 0 0 0 1px rgba(192,64,64,0.1) !important;
  transform: translateY(-1px) scale(1.05) !important;
}

.is-assistant button.rounded-full:hover::before {
  opacity: 1 !important;
  animation: buttonRipple 1.2s ease-out infinite !important;
}

.is-assistant button.rounded-full:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 
    0 1px 3px rgba(192,64,64,0.2),
    inset 0 2px 4px rgba(0,0,0,0.15) !important;
}

.is-assistant button.rounded-full svg {
  transition: all 0.3s ease !important;
}

.is-assistant button.rounded-full:hover svg {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 0 3px rgba(192,64,64,0.4)) !important;
}

.is-user button.rounded-full {
  background: var(--paper-dark) !important;
  color: var(--ink-mid) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 50% !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(28,24,19,0.08) !important;
  position: relative !important;
  overflow: hidden !important;
}

.is-user button.rounded-full::before {
  content: "" !important;
  position: absolute !important;
  top: -50%; left: -50% !important;
  width: 200%; height: 200% !important;
  background: radial-gradient(circle, rgba(192,64,64,0.15) 0%, transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}

.is-user button.rounded-full:hover {
  background: var(--paper-darker) !important;
  color: var(--vermilion) !important;
  border-color: var(--vermilion-light) !important;
  box-shadow: 
    0 2px 6px rgba(192,64,64,0.15),
    inset 0 0 0 1px rgba(192,64,64,0.1) !important;
  transform: translateY(-1px) scale(1.05) !important;
}

.is-user button.rounded-full:hover::before {
  opacity: 1 !important;
  animation: buttonRipple 1.2s ease-out infinite !important;
}

.is-user button.rounded-full:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 
    0 1px 3px rgba(192,64,64,0.2),
    inset 0 2px 4px rgba(0,0,0,0.15) !important;
}

.is-user button.rounded-full svg {
  transition: all 0.3s ease !important;
}

.is-user button.rounded-full:hover svg {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 0 3px rgba(192,64,64,0.4)) !important;
}

div.bg-muted.rounded.flex.p-0\.5 {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-top: 3px solid var(--vermilion) !important;
  border-radius: 8px !important;
  box-shadow: 
    0 -4px 16px rgba(28,24,19,0.12),
    inset 0 0 60px rgba(192,64,64,0.04),
    0 -1px 0 rgba(255,255,255,0.5) inset !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.3s ease !important;
}

div.bg-muted.rounded.flex.p-0\.5::before {
  content: "" !important;
  position: absolute !important;
  top: -3px; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, 
    transparent 0%,
    var(--vermilion) 10%,
    var(--gold) 30%,
    var(--vermilion) 50%,
    var(--gold) 70%,
    var(--vermilion) 90%,
    transparent 100%
  ) !important;
  background-size: 200% 100% !important;
  animation: inputBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
}

div.bg-muted.rounded.flex.p-0\.5:hover {
  box-shadow: 
    0 -6px 24px rgba(28,24,19,0.18),
    inset 0 0 80px rgba(192,64,64,0.06),
    0 -1px 0 rgba(255,255,255,0.6) inset !important;
  transform: translateY(-2px) !important;
}

:root,
.markdown-body,
.rili-markdown-renderer {
  /* 底色层 - 宣纸质感 */
  --paper: #f5f0e8;
  --paper-dark: #ebe3d4;
  --paper-darker: #d9cfb8;
  --paper-deep: #c4b896;
  --ink-black: #1c1813;

  /* 文字色 - 墨色梯度 */
  --ink: #2c3e50;
  --ink-mid: #5a6c7d;
  --ink-light: #8a9ba8;
  --ink-faint: #b0b8c0;

  /* 强调色 - 朱砂系 */
  --vermilion: #c04040;
  --vermilion-dark: #8a2828;
  --vermilion-light: #e8b4b4;

  /* 辅助色 */
  --gold: #b8860b;
  --gold-light: #d4a843;
  --jade: #4a7c59;
  --jade-light: #7aa886;
  --amber: #d97706;
  --amber-light: #f59e0b;
  --purple: #6b5b95;
  --purple-light: #9b8cc4;

  /* 边框 */
  --border-ink: #1c1813;
  --border-light: #c4b896;
  --border-vermilion: #8a2828;

  /* 字体 */
  --font-serif: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif;
  --font-brush: "Ma Shan Zheng", "Noto Serif SC", cursive;
  --font-mono: "Courier New", monospace;
}

.rili-markdown-renderer .story-main {
  font-family: var(--font-serif) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  background: linear-gradient(180deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  padding: 20px 24px !important;
  margin: 12px 0 !important;
  border: 1px solid var(--border-light) !important;
  border-left: 4px solid var(--vermilion) !important;
  border-radius: 4px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.4px !important;
  box-shadow:
    0 2px 8px rgba(28, 24, 19, 0.1),
    inset 0 0 50px rgba(192, 64, 64, 0.03),
    0 0 0 1px rgba(192, 64, 64, 0.05) !important;
  position: relative !important;
}

.rili-markdown-renderer .story-main p {
  margin: 10px 0 !important;
  text-indent: 2em !important;
  position: relative !important;
  z-index: 1 !important;
}

.rili-markdown-renderer .story-main h2,
.rili-markdown-renderer .story-main h3,
.rili-markdown-renderer .story-main h4 {
  font-family: var(--font-serif) !important;
  color: var(--vermilion-dark) !important;
  border-bottom: 2px solid var(--vermilion-light) !important;
  padding-bottom: 6px !important;
  margin: 16px 0 10px !important;
  position: relative !important;
  z-index: 1 !important;
  text-shadow: 0 1px 2px rgba(192, 64, 64, 0.1) !important;
}

.rili-markdown-renderer .d-player {
  color: #2196f3 !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .d-npc {
  color: #4caf50 !important;
  font-weight: 500 !important;
}

.rili-markdown-renderer .d-erotic {
  color: #ff6b9d !important;
  font-weight: 500 !important;
  text-shadow: 0 0 1px rgba(255, 107, 157, 0.2) !important;
}

.rili-markdown-renderer .d-thought {
  color: #b0b0b0 !important;
  font-style: italic !important;
}

/* 思维链面板（think-panel）—— 紧凑排版 */
.rili-markdown-renderer details.think-panel {
  background: linear-gradient(135deg, #f0ece4 0%, #e8e4dc 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--ink-mid) !important;
  border-radius: 6px !important;
  margin: 8px 0 !important;
  font-size: 0.92em !important;
  box-shadow: 0 2px 6px rgba(28, 24, 19, 0.06) !important;
}
.rili-markdown-renderer details.think-panel > summary {
  background: transparent !important;
  color: var(--ink-mid) !important;
  padding: 8px 14px !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  list-style: none !important;
  border-bottom: 1px dashed var(--border-light) !important;
}
.rili-markdown-renderer details.think-panel > summary::-webkit-details-marker {
  display: none !important;
}
.rili-markdown-renderer details.think-panel > summary::before {
  content: "◈" !important;
  color: var(--ink-mid) !important;
  margin-right: 8px !important;
}
.rili-markdown-renderer details.think-panel > summary b {
  color: var(--ink) !important;
}
.rili-markdown-renderer details.think-panel[open] > *:not(summary) {
  padding: 6px 12px !important;
}
.rili-markdown-renderer details.think-panel p {
  margin: 2px 0 !important;
  line-height: 1.5 !important;
}
.rili-markdown-renderer details.think-panel ul {
  margin: 2px 0 4px !important;
  padding-left: 18px !important;
}
.rili-markdown-renderer details.think-panel strong {
  display: block !important;
  color: var(--vermilion-dark) !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 0.95em !important;
  margin: 4px 0 1px !important;
  padding-bottom: 2px !important;
  border-bottom: 1px dashed var(--border-light) !important;
}
.rili-markdown-renderer details.think-panel li {
  margin: 1px 0 !important;
  line-height: 1.45 !important;
  color: var(--ink) !important;
}

.rili-markdown-renderer details.sys-panel {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.95) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  padding: 0 !important;
  box-shadow:
    0 2px 6px rgba(28, 24, 19, 0.08),
    inset 0 0 40px rgba(192, 64, 64, 0.02),
    0 1px 0 rgba(255, 255, 255, 0.5) inset !important;
  overflow: hidden !important;
  transition: box-shadow 0.3s ease !important;
}

.rili-markdown-renderer details.sys-panel > summary {
  background: linear-gradient(180deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  color: var(--ink-black) !important;
  padding: 12px 18px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.05em !important;
  border-bottom: 1px solid var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
  position: relative !important;
  transition: all 0.2s ease !important;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5) !important;
}

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

.rili-markdown-renderer details.sys-panel > summary::before {
  content: "▸" !important;
  color: var(--vermilion) !important;
  margin-right: 8px !important;
  display: inline-block !important;
  transition: transform 0.2s ease !important;
}

.rili-markdown-renderer details.sys-panel[open] > summary::before {
  transform: rotate(90deg) !important;
}

.rili-markdown-renderer details.sys-panel > summary b {
  font-family: var(--font-serif) !important;
  letter-spacing: 0.05em !important;
}

.rili-markdown-renderer details.sys-panel[open] > *:not(summary) {
  padding: 14px 18px !important;
}

.rili-markdown-renderer details.sys-panel h3 {
  font-family: var(--font-serif) !important;
  color: var(--vermilion-dark) !important;
  font-size: 1em !important;
  border-bottom: 1px dashed var(--border-light) !important;
  padding-bottom: 4px !important;
  margin: 12px 0 8px !important;
}

.rili-markdown-renderer details.sys-panel h3 b {
  color: var(--vermilion-dark) !important;
}

.rili-markdown-renderer details.sys-panel li {
  line-height: 1.7 !important;
  margin: 4px 0 !important;
}

.rili-markdown-renderer details.sys-panel b {
  color: var(--ink-black) !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer details.sys-panel details {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  margin: 6px 0 !important;
}

.rili-markdown-renderer details.sys-panel details > summary {
  background: transparent !important;
  color: var(--ink) !important;
  padding: 6px 12px !important;
  font-size: 0.95em !important;
  border-bottom: 1px dashed var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
}

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

.rili-markdown-renderer details.sys-panel details > summary::before {
  content: "·" !important;
  color: var(--vermilion) !important;
  margin-right: 6px !important;
  font-weight: bold !important;
}

.rili-markdown-renderer details.sys-panel details[open] > summary::before {
  content: "·" !important;
}

.rili-markdown-renderer details.sys-panel table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 8px 0 !important;
  font-size: 0.92em !important;
  background: var(--paper) !important;
}

.rili-markdown-renderer details.sys-panel table th {
  background: var(--paper-darker) !important;
  color: var(--ink-black) !important;
  font-weight: 700 !important;
  padding: 6px 10px !important;
  border: 1px solid var(--border-light) !important;
  text-align: center !important;
}

.rili-markdown-renderer details.sys-panel table td {
  padding: 5px 10px !important;
  border: 1px solid var(--border-light) !important;
  color: var(--ink) !important;
  text-align: center !important;
}

.rili-markdown-renderer details.sys-panel table tr:nth-child(even) td {
  background: var(--paper-dark) !important;
}

.rili-markdown-renderer details.sys-panel code,
.rili-markdown-renderer details.sys-panel tt {
  font-family: var(--font-mono) !important;
  color: var(--vermilion) !important;
  background: rgba(192, 64, 64, 0.08) !important;
  padding: 1px 4px !important;
  border-radius: 2px !important;
  font-size: 0.9em !important;
  letter-spacing: 0.05em !important;
}

.rili-markdown-renderer details.sys-panel code {
  font-variant-numeric: tabular-nums !important;
}

div.flex.w-full.items-center.justify-between.gap-2.px-2 {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  height: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

div.flex.w-full.items-center.justify-between.gap-2.px-2:hover {
  opacity: 1 !important;
  visibility: visible !important;
}

.is-user:hover > div.flex.w-full.items-center.justify-between.gap-2.px-2 {
  opacity: 1 !important;
  visibility: visible !important;
}

.is-assistant:hover > div.flex.w-full.items-center.justify-between.gap-2.px-2 {
  opacity: 1 !important;
  visibility: visible !important;
}

.rili-markdown-renderer .r-Tier1 { --tier-c: #c04040; --tier-bg: rgba(192,64,64,0.12); --tier-glow: rgba(192,64,64,0.4); }

.rili-markdown-renderer .r-Tier2 { --tier-c: #b8860b; --tier-bg: rgba(184,134,11,0.12); --tier-glow: rgba(184,134,11,0.35); }

.rili-markdown-renderer .r-Tier3 { --tier-c: #6b5b95; --tier-bg: rgba(107,91,149,0.1); --tier-glow: rgba(107,91,149,0.3); }

.rili-markdown-renderer .r-Tier4 { --tier-c: #2c5f9e; --tier-bg: rgba(44,95,158,0.08); --tier-glow: rgba(44,95,158,0.25); }

.rili-markdown-renderer .r-Tier5 { --tier-c: #4a7c59; --tier-bg: rgba(74,124,89,0.08); --tier-glow: rgba(74,124,89,0.2); }

.rili-markdown-renderer .r-Tier6 { --tier-c: #8a9ba8; --tier-bg: rgba(138,155,168,0.08); --tier-glow: rgba(138,155,168,0.15); }

.rili-markdown-renderer details.os-dr {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  padding: 0 !important;
  font-size: 15px !important;
  box-shadow: 
    0 2px 8px rgba(28,24,19,0.1), 
    inset 0 0 50px rgba(192,64,64,0.03),
    0 1px 0 rgba(255,255,255,0.4) inset !important;
  position: relative !important;
  transition: box-shadow 0.3s ease !important;
}

/* 悬停时提升堆叠层级，防止 os-tip 被相邻卡片遮挡 */
.rili-markdown-renderer details.os-dr:hover {
  z-index: 50 !important;
}

.rili-markdown-renderer details.os-dr > summary {
  background: linear-gradient(180deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  color: var(--ink-black) !important;
  padding: 12px 16px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.02em !important;
  border-bottom: 1px solid var(--border-light) !important;
  border-radius: 6px 6px 0 0 !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
  text-shadow: 0 1px 1px rgba(255,255,255,0.5) !important;
}

.rili-markdown-renderer details.os-dr:not([open]) > summary {
  border-radius: 4px !important;
  border-bottom: none !important;
}

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

.rili-markdown-renderer details.os-dr > summary::before {
  content: "▸" !important;
  color: var(--vermilion) !important;
  transition: transform 0.2s ease !important;
  flex-shrink: 0 !important;
}

.rili-markdown-renderer details.os-dr[open] > summary::before {
  transform: rotate(90deg) !important;
}

.rili-markdown-renderer details.os-dr > summary > span:first-child {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 1.05em !important;
}

.rili-markdown-renderer details.os-dr > summary .ic {
  font-style: normal !important;
  font-size: 1.1em !important;
  opacity: 0.8 !important;
}

.rili-markdown-renderer .os-tags {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: wrap !important;
  margin-left: auto !important;
}

.rili-markdown-renderer .os-tags .tag {
  display: inline-block !important;
  padding: 1px 8px !important;
  font-size: 0.8em !important;
  font-family: var(--font-serif) !important;
  background: var(--paper) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 10px !important;
  color: var(--ink-mid) !important;
  white-space: nowrap !important;
}

.rili-markdown-renderer .os-tags .tag[class*="r-Tier"] {
  color: var(--tier-c) !important;
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .m-tag {
  display: inline-block !important;
  padding: 1px 7px !important;
  font-size: 0.78em !important;
  font-family: var(--font-serif) !important;
  border-radius: 3px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.rili-markdown-renderer .m-tag.beauty { color: #c05080 !important; border-color: rgba(192,80,128,0.3) !important; }

.rili-markdown-renderer .m-tag.threat { color: var(--vermilion) !important; border-color: rgba(192,64,64,0.3) !important; }

.rili-markdown-renderer .m-tag.r-Tier1, .rili-markdown-renderer .m-tag.r-Tier2, .rili-markdown-renderer .m-tag.r-Tier3,
.rili-markdown-renderer .m-tag.r-Tier4, .rili-markdown-renderer .m-tag.r-Tier5, .rili-markdown-renderer .m-tag.r-Tier6 {
  color: var(--tier-c) !important;
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

.rili-markdown-renderer details.os-dr > .os-body {
  padding: 12px 14px !important;
}

.rili-markdown-renderer .os-hero {
  margin-bottom: 8px !important;
}

/* 进度条容器 */
.rili-markdown-renderer .os-bars {
  display: flex !important;
  flex-direction: row !important;
  gap: 8px !important;
  margin: 8px 0 !important;
  overflow: visible !important;
}

/* 进度条外框 */
.rili-markdown-renderer .os-bars .bar {
  position: relative !important;
  flex: 1 !important;
  height: 28px !important;
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  font-family: var(--font-serif) !important;
}

/* 进度条内填充层 —— 可视化填充 */
.rili-markdown-renderer .os-bars .bar > .fill {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  height: 100% !important;
  z-index: 1 !important;
  border-radius: 4px !important;
}

/* 进度条填充颜色 */
.rili-markdown-renderer .os-bars .bar.red > .fill {
  background: linear-gradient(90deg, rgba(192,64,64,0.6), rgba(138,40,40,0.4)) !important;
}
.rili-markdown-renderer .os-bars .bar.blue > .fill {
  background: linear-gradient(90deg, rgba(44,95,158,0.6), rgba(30,60,120,0.4)) !important;
}
.rili-markdown-renderer .os-bars .bar.gold > .fill {
  background: linear-gradient(90deg, rgba(184,134,11,0.6), rgba(140,100,8,0.4)) !important;
}

/* 进度条文字层 —— 标签 + 百分比 */
.rili-markdown-renderer .os-bars .bar > .text {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  text-shadow: 0 1px 1px rgba(255,255,255,0.5) !important;
}

/* 根据data-p值设置填充宽度（0-100%） */
.rili-markdown-renderer .os-bars .bar[data-p="0"] > .fill { width: 0% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="5"] > .fill { width: 5% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="10"] > .fill { width: 10% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="15"] > .fill { width: 15% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="20"] > .fill { width: 20% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="25"] > .fill { width: 25% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="30"] > .fill { width: 30% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="35"] > .fill { width: 35% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="40"] > .fill { width: 40% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="45"] > .fill { width: 45% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="50"] > .fill { width: 50% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="55"] > .fill { width: 55% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="60"] > .fill { width: 60% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="65"] > .fill { width: 65% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="70"] > .fill { width: 70% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="75"] > .fill { width: 75% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="80"] > .fill { width: 80% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="85"] > .fill { width: 85% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="90"] > .fill { width: 90% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="95"] > .fill { width: 95% !important; }
.rili-markdown-renderer .os-bars .bar[data-p="100"] > .fill { width: 100% !important; }

.rili-markdown-renderer .os-bars .bar.gold {
  border-color: var(--gold) !important;
  box-shadow: 0 0 4px rgba(184,134,11,0.15) !important;
}

.rili-markdown-renderer .os-look {
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  padding: 6px 10px !important;
  background: var(--paper-dark) !important;
  border-left: 3px solid var(--border-light) !important;
  border-radius: 0 3px 3px 0 !important;
  margin: 6px 0 !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
}

.rili-markdown-renderer .os-look::before {
  content: "【" attr(data-face) " · " attr(data-cloth) " · " attr(data-soul) "】" !important;
}

.rili-markdown-renderer .os-panel {
  overflow: visible !important;
}

.rili-markdown-renderer .os-attrs {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)) !important;
  gap: 5px !important;
  margin-bottom: 8px !important;
}

.rili-markdown-renderer .os-attrs .attr {
  position: relative !important;
  overflow: visible !important;
}

.rili-markdown-renderer .os-attrs .attr::before {
  content: attr(data-l) !important;
  display: block !important;
  font-size: 0.75em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 2px !important;
}

.rili-markdown-renderer .os-attrs .attr::after {
  content: attr(data-v) !important;
  display: block !important;
  font-size: 1.2em !important;
  font-weight: 700 !important;
  color: var(--ink-black) !important;
  font-variant-numeric: tabular-nums !important;
}

.rili-markdown-renderer .os-attrs .attr[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

.rili-markdown-renderer .os-attrs .attr[class*="r-Tier"]::after {
  color: var(--tier-c) !important;
}

.rili-markdown-renderer .os-attrs .attr.hl {
  border-width: 2px !important;
  box-shadow: 0 0 6px var(--tier-glow) !important;
}

.rili-markdown-renderer .os-attrs .attr.hl::after {
  text-shadow: 0 0 3px var(--tier-glow) !important;
}

.rili-markdown-renderer .os-attrs .attr > .os-tip > em::after {
  content: "每5点1格，满20为████" !important;
  display: block !important;
  margin-top: 4px !important;
  padding-top: 4px !important;
  border-top: 1px dashed var(--border-light) !important;
  font-size: 0.9em !important;
  color: var(--ink-mid) !important;
  font-style: normal !important;
}

.rili-markdown-renderer .os-eq-box {
  overflow: visible !important;
}

.rili-markdown-renderer .os-eq-box::before {
  content: attr(data-t) !important;
  display: block !important;
  font-size: 0.8em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 4px !important;
  font-family: var(--font-serif) !important;
}

.rili-markdown-renderer .os-eq-box > .slot {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: calc(25% - 4px) !important;
  min-height: 48px !important;
  margin: 2px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  background: var(--paper-dark) !important;
  font-size: 1.3em !important;
  vertical-align: top !important;
  position: relative !important;
  cursor: default !important;
  transition: filter 0.15s ease !important;
}

.rili-markdown-renderer .os-eq-box > .slot:hover {
  filter: brightness(0.95) !important;
}

.rili-markdown-renderer .os-eq-box > .slot::after {
  content: attr(data-s) !important;
  font-size: 0.6em !important;
  font-family: var(--font-serif) !important;
  color: var(--ink-mid) !important;
  margin-top: 2px !important;
  display: block !important;
}

.rili-markdown-renderer .os-eq-box > .slot[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 8px var(--tier-glow) !important;
}

/* 紧凑装备格（os-eq-mini）—— grid布局4列卡片，品质色边框+悬浮上浮 */
.rili-markdown-renderer .os-eq-mini {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 5px !important;
  margin-top: 5px !important;
}
.rili-markdown-renderer .os-eq-mini > .slot {
  position: relative !important;
  overflow: visible !important;
  text-align: center !important;
  padding: 4px 2px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 4px !important;
  background: var(--paper-dark) !important;
  font-size: 1.15em !important;
  line-height: 1.3 !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}
.rili-markdown-renderer .os-eq-mini > .slot::before {
  content: attr(data-s) !important;
  display: block !important;
  font-size: 0.68em !important;
  color: var(--ink-mid) !important;
  margin-bottom: 2px !important;
  letter-spacing: 1px !important;
}
.rili-markdown-renderer .os-eq-mini > .slot[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 5px var(--tier-glow) !important;
}
.rili-markdown-renderer .os-eq-mini > .slot:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 3px 8px rgba(28,24,19,0.18) !important;
  z-index: 5 !important;
}

.rili-markdown-renderer .os-row.os-anchor {
  display: none !important;
  font-size: 0.78em !important;
  color: var(--ink-mid) !important;
  background: rgba(196,184,150,0.15) !important;
  border-left: 2px dashed var(--border-light) !important;
  border-bottom: none !important;
  padding: 5px 10px !important;
  margin: 4px 0 !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  word-break: break-word !important;
  border-radius: 0 3px 3px 0 !important;
  user-select: text !important;
  -webkit-user-select: text !important;
}

/* 隐藏行 —— 叙事/模式/剧情模式/防抢话，与锚点同步隐藏（rili端） */
.rili-markdown-renderer .os-row[data-t="叙事"],
.rili-markdown-renderer .os-row[data-t="模式"],
.rili-markdown-renderer .os-row[data-t="剧情模式"],
.rili-markdown-renderer .os-row[data-t="防抢话"] {
  display: none !important;
}

.rili-markdown-renderer .os-row[data-t]::before {
  content: attr(data-t) "：" !important;
  font-size: 0.82em !important;
  color: var(--ink-mid) !important;
  font-family: var(--font-serif) !important;
  margin-right: 4px !important;
}

/* os-row 基础样式 —— 信息行视觉分隔 */
.rili-markdown-renderer .os-row[data-t]:not(.os-anchor) {
  padding: 4px 8px !important;
  margin: 3px 0 !important;
  border-bottom: 1px dashed rgba(196,184,150,0.4) !important;
  line-height: 1.7 !important;
}

/* 境界行 —— 金阶里程碑（武道/文道/属性上限） */
.rili-markdown-renderer .os-row[data-t="境界"] {
  background: linear-gradient(90deg, rgba(184,134,11,0.14) 0%, rgba(212,168,67,0.06) 50%, transparent 100%) !important;
  border-left: 3px solid var(--gold) !important;
  border-bottom: none !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 7px 10px !important;
  margin: 6px 0 !important;
  font-weight: 600 !important;
  box-shadow: inset 0 0 14px rgba(212,168,67,0.07) !important;
}
.rili-markdown-renderer .os-row[data-t="境界"]::before {
  color: var(--gold) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}
.rili-markdown-renderer .os-row[data-t="境界"] .pill {
  font-size: 1.02em !important;
  font-weight: 700 !important;
  padding: 3px 9px !important;
  border-width: 1.5px !important;
}

/* 装备行 —— 冷钢兵刃（四槽位grid） */
.rili-markdown-renderer .os-row[data-t="装备"] {
  background: linear-gradient(90deg, rgba(90,108,125,0.12) 0%, rgba(138,155,168,0.04) 50%, transparent 100%) !important;
  border-left: 3px solid var(--ink-mid) !important;
  border-bottom: none !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 6px 10px !important;
  margin: 6px 0 !important;
}
.rili-markdown-renderer .os-row[data-t="装备"]::before {
  color: var(--ink-mid) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}

.rili-markdown-renderer .pill {
  display: inline-block !important;
  position: relative !important;
  overflow: visible !important;
  padding: 2px 8px !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 10px !important;
  background: var(--paper-dark) !important;
  color: var(--ink) !important;
  font-size: 0.85em !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  vertical-align: middle !important;
}

.rili-markdown-renderer .pill:hover {
  filter: brightness(0.95) !important;
}

.rili-markdown-renderer .pill .lv {
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .pill[data-loc]::before {
  content: attr(data-loc) !important;
}

.rili-markdown-renderer .pill[data-loc]::after {
  content: "（" attr(data-dist) "）" !important;
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
}

.rili-markdown-renderer .pill.move {
  padding: 3px 8px 3px 6px !important;
  border-radius: 3px !important;
}

.rili-markdown-renderer .pill.move .tag {
  font-size: 0.85em !important;
  padding: 0 3px !important;
  border: none !important;
  background: transparent !important;
  color: var(--vermilion) !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}

.rili-markdown-renderer .pill.move[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
}

.rili-markdown-renderer .os-foot {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  padding: 6px 10px !important;
  margin-top: 8px !important;
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  color: var(--ink-mid) !important;
}

.rili-markdown-renderer .os-foot::before {
  content: "📍 " attr(data-loc) !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
}

.rili-markdown-renderer .os-foot::after {
  content: "💰 " attr(data-money) "　⚔️ 声望: " attr(data-rep) !important;
  margin-left: auto !important;
  color: var(--gold) !important;
  font-weight: 600 !important;
}

/* 武道卡 —— 墨青·技艺沉静 */
.rili-markdown-renderer details.os-dr.skill > summary {
  background: linear-gradient(180deg, rgba(45,90,123,0.12) 0%, rgba(74,124,159,0.08) 100%) !important;
  border-bottom: 1px solid rgba(45,90,123,0.2) !important;
}
.rili-markdown-renderer details.os-dr.skill > summary::before {
  color: #2d5a7b !important;
}

/* 须弥卡 —— 琥珀·物品仓储 */
.rili-markdown-renderer details.os-dr.sack > summary {
  background: linear-gradient(180deg, rgba(217,119,6,0.12) 0%, rgba(245,158,11,0.08) 100%) !important;
  border-bottom: 1px solid rgba(217,119,6,0.2) !important;
}
.rili-markdown-renderer details.os-dr.sack > summary::before {
  color: var(--amber) !important;
}

/* 产业卡 —— 金辉·商贾经营 */
.rili-markdown-renderer details.os-dr.gold > summary {
  background: linear-gradient(180deg, rgba(202,138,4,0.12) 0%, rgba(234,179,8,0.08) 100%) !important;
  border-bottom: 1px solid rgba(202,138,4,0.2) !important;
}
.rili-markdown-renderer details.os-dr.gold > summary::before {
  color: #ca8a04 !important;
}

/* 家宅卡 —— 紫络·府邸风水 */
.rili-markdown-renderer details.os-dr.purple > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.12) 0%, rgba(155,140,196,0.08) 100%) !important;
  border-bottom: 1px solid rgba(107,91,149,0.2) !important;
}
.rili-markdown-renderer details.os-dr.purple > summary::before {
  color: #6b5b95 !important;
}

/* —— 嵌套子卡（os-dr.sub）—— 主角档案内可收起展开的产业/家宅/武道/须弥子区 —— */
.rili-markdown-renderer details.os-dr.sub {
  margin: 8px 0 0 !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 5px !important;
  overflow: hidden !important;
  background: var(--paper) !important;
}
.rili-markdown-renderer details.os-dr.sub > summary {
  font-size: 0.95em !important;
  font-weight: 700 !important;
  padding: 6px 12px !important;
  list-style: none !important;
  cursor: pointer !important;
  border-bottom: none !important;
}
.rili-markdown-renderer details.os-dr.sub:not([open]) > summary {
  border-bottom: none !important;
}
.rili-markdown-renderer details.os-dr.sub[open] > summary {
  border-bottom: 1px solid var(--border-light) !important;
}
.rili-markdown-renderer details.os-dr.sub > summary::-webkit-details-marker {
  display: none !important;
}
.rili-markdown-renderer details.os-dr.sub > summary::before {
  content: '▶' !important;
  display: inline-block !important;
  margin-right: 6px !important;
  font-size: 0.7em !important;
  transition: transform 0.2s !important;
}
.rili-markdown-renderer details.os-dr.sub[open] > summary::before {
  transform: rotate(90deg) !important;
}
.rili-markdown-renderer details.os-dr.sub > .os-body {
  padding: 8px 12px !important;
}

/* —— sub 状态下保留变体色边框与增强配色（展开时）——
   修复 .os-dr.sub 覆盖变体色背景的问题
   特异性 (0,0,4,1) > .os-dr.sub (0,0,3,1)，确保变体色优先 */
.rili-markdown-renderer details.os-dr.gold.sub > summary {
  background: linear-gradient(180deg, rgba(202,138,4,0.20) 0%, rgba(234,179,8,0.12) 100%) !important;
}
.rili-markdown-renderer details.os-dr.gold.sub[open] > summary {
  border-bottom: 1px solid rgba(202,138,4,0.30) !important;
}
.rili-markdown-renderer details.os-dr.purple.sub > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.20) 0%, rgba(155,140,196,0.12) 100%) !important;
}
.rili-markdown-renderer details.os-dr.purple.sub[open] > summary {
  border-bottom: 1px solid rgba(107,91,149,0.30) !important;
}
.rili-markdown-renderer details.os-dr.skill.sub > summary {
  background: linear-gradient(180deg, rgba(45,90,123,0.20) 0%, rgba(74,124,159,0.12) 100%) !important;
}
.rili-markdown-renderer details.os-dr.skill.sub[open] > summary {
  border-bottom: 1px solid rgba(45,90,123,0.30) !important;
}
.rili-markdown-renderer details.os-dr.sack.sub > summary {
  background: linear-gradient(180deg, rgba(217,119,6,0.20) 0%, rgba(245,158,11,0.12) 100%) !important;
}
.rili-markdown-renderer details.os-dr.sack.sub[open] > summary {
  border-bottom: 1px solid rgba(217,119,6,0.30) !important;
}

/* —— 青楼专属·可折叠子区块（os-fold）—— 花魁阵容/贵客网络等大区块，默认收起 —— */
.rili-markdown-renderer details.os-fold {
  margin: 6px 0 !important;
  border: 1px solid rgba(202,138,4,0.22) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  background: rgba(202,138,4,0.025) !important;
}
.rili-markdown-renderer details.os-fold > summary {
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  font-weight: 700 !important;
  color: var(--vermilion-dark) !important;
  padding: 6px 12px !important;
  list-style: none !important;
  cursor: pointer !important;
  border-bottom: none !important;
  background: linear-gradient(180deg, rgba(202,138,4,0.13) 0%, rgba(234,179,8,0.05) 100%) !important;
  user-select: none !important;
}
.rili-markdown-renderer details.os-fold[open] > summary {
  border-bottom: 1px dashed rgba(202,138,4,0.28) !important;
}
.rili-markdown-renderer details.os-fold > summary::-webkit-details-marker {
  display: none !important;
}
.rili-markdown-renderer details.os-fold > summary::before {
  content: '▸' !important;
  display: inline-block !important;
  margin-right: 6px !important;
  font-size: 0.85em !important;
  color: rgba(202,138,4,0.7) !important;
  transition: transform 0.2s !important;
}
.rili-markdown-renderer details.os-fold[open] > summary::before {
  content: '▾' !important;
}
.rili-markdown-renderer details.os-fold > .os-body {
  padding: 8px 12px !important;
}
.rili-markdown-renderer details.os-fold > summary:hover {
  background: linear-gradient(180deg, rgba(202,138,4,0.20) 0%, rgba(234,179,8,0.10) 100%) !important;
}

/* 红尘卡 —— 紫络·人脉关系 */
.rili-markdown-renderer details.os-dr.bond > summary {
  background: linear-gradient(180deg, rgba(107,91,149,0.12) 0%, rgba(155,140,196,0.08) 100%) !important;
  border-bottom: 1px solid rgba(107,91,149,0.2) !important;
}
.rili-markdown-renderer details.os-dr.bond > summary::before {
  color: var(--purple) !important;
}

/* 卷宗卡 —— 赭褐·任务古朴 */
.rili-markdown-renderer details.os-dr.scroll > summary {
  background: linear-gradient(180deg, rgba(139,69,19,0.12) 0%, rgba(160,82,45,0.08) 100%) !important;
  border-bottom: 1px solid rgba(139,69,19,0.2) !important;
}
.rili-markdown-renderer details.os-dr.scroll > summary::before {
  color: #8b4513 !important;
}

.rili-markdown-renderer .os-body .os-sub-h {
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  font-weight: 700 !important;
  color: var(--vermilion-dark) !important;
  margin: 10px 0 6px !important;
  padding-bottom: 3px !important;
  border-bottom: 1px dashed var(--border-light) !important;
}

.rili-markdown-renderer .os-body .os-sub-h:first-child {
  margin-top: 0 !important;
}

.rili-markdown-renderer .os-body .os-div {
  height: 1px !important;
  background: var(--border-light) !important;
  margin: 10px 0 !important;
}

.rili-markdown-renderer .os-art {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--vermilion-light) !important;
  border-radius: 3px !important;
  padding: 8px 10px !important;
  margin-bottom: 6px !important;
}

.rili-markdown-renderer .os-art-h {
  position: relative !important;
  padding-left: 28px !important;
  margin-bottom: 5px !important;
}

.rili-markdown-renderer .os-art-h::before {
  content: attr(data-icon) !important;
  position: absolute !important;
  left: 0; top: 0 !important;
  width: 22px; height: 22px !important;
  line-height: 22px !important;
  text-align: center !important;
  background: var(--vermilion) !important;
  color: #f5f0e8 !important;
  border-radius: 50% !important;
  font-family: var(--font-brush) !important;
  font-size: 0.85em !important;
  font-weight: 700 !important;
}

.rili-markdown-renderer .os-art-h .t {
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  color: var(--ink-black) !important;
  font-size: 0.98em !important;
}

.rili-markdown-renderer .os-art-h .t .tag {
  font-size: 0.8em !important;
  margin-left: 4px !important;
}

.rili-markdown-renderer .os-art-h .t .tag[class*="r-Tier"] {
  color: var(--tier-c) !important;
  border: 1px solid var(--tier-c) !important;
  background: var(--tier-bg) !important;
  padding: 0 5px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .os-art-h .m {
  font-size: 0.8em !important;
  color: var(--ink-mid) !important;
  margin-top: 1px !important;
}

.rili-markdown-renderer .os-art-h .p {
  font-size: 0.82em !important;
  color: var(--vermilion-dark) !important;
  font-style: italic !important;
  margin-top: 2px !important;
  font-family: var(--font-brush) !important;
}

.rili-markdown-renderer .os-pills {
  overflow: visible !important;
}

.rili-markdown-renderer .os-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(85px, 1fr)) !important;
  gap: 6px !important;
  margin: 6px 0 !important;
}

.rili-markdown-renderer .os-grid .item {
  position: relative !important;
  overflow: visible !important;
  border: 1px solid var(--border-light) !important;
  border-radius: 3px !important;
  padding: 6px 4px !important;
  min-height: 38px !important;
  font-size: 0.85em !important;
  text-align: center !important;
  background: var(--paper) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--font-serif) !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
}

.rili-markdown-renderer .os-grid .item:hover {
  filter: brightness(0.93) !important;
}

/* 物品名称 —— data-name驱动渲染 */
.rili-markdown-renderer .os-grid .item[data-name]::before {
  content: attr(data-name) !important;
  display: block !important;
  font-weight: 600 !important;
}

/* 物品数量 —— 用data-n渲染角标 */
.rili-markdown-renderer .os-grid .item[data-n]:not([data-n="1"])::after {
  content: "×" attr(data-n) !important;
  position: absolute !important;
  bottom: 2px; right: 3px !important;
  font-size: 0.7em !important;
  color: var(--ink) !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  background: rgba(245,240,232,0.85) !important;
  padding: 0 3px !important;
  border-radius: 2px !important;
  line-height: 1.3 !important;
}

.rili-markdown-renderer .os-grid .item[class*="r-Tier"] {
  border-color: var(--tier-c) !important;
  background: var(--tier-bg) !important;
  box-shadow: inset 0 0 8px var(--tier-glow) !important;
}

.rili-markdown-renderer .os-q {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--amber) !important;
  border-radius: 3px !important;
  padding: 8px 10px !important;
  margin-bottom: 6px !important;
}

.rili-markdown-renderer .os-q.main {
  border-left-width: 4px !important;
  box-shadow: 0 1px 3px rgba(217,119,6,0.15) !important;
}

.rili-markdown-renderer .os-q .t {
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  color: var(--amber) !important;
  font-size: 0.95em !important;
  margin-bottom: 3px !important;
}

.rili-markdown-renderer .os-q .t > span {
  float: right !important;
  font-size: 0.82em !important;
  color: var(--vermilion) !important;
  font-weight: 600 !important;
  background: rgba(192,64,64,0.08) !important;
  padding: 0 6px !important;
  border-radius: 8px !important;
}

.rili-markdown-renderer .os-q .d {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
  margin-bottom: 3px !important;
}

.rili-markdown-renderer .os-q .r {
  font-size: 0.82em !important;
  color: var(--gold) !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .os-rumor {
  background: var(--paper-dark) !important;
  border: 1px dashed var(--border-light) !important;
  border-radius: 3px !important;
  padding: 6px 10px !important;
  margin-bottom: 5px !important;
}

.rili-markdown-renderer .os-rumor .r-t {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 0.8em !important;
  margin-bottom: 3px !important;
}

.rili-markdown-renderer .os-rumor .r-tags {
  color: var(--ink-mid) !important;
}

.rili-markdown-renderer .os-rumor .r-cat {
  padding: 0 5px !important;
  border-radius: 3px !important;
  font-weight: 600 !important;
  font-size: 0.9em !important;
}

.rili-markdown-renderer .os-rumor .hot {
  margin-left: auto !important;
  color: var(--vermilion) !important;
  font-weight: 600 !important;
}

.rili-markdown-renderer .os-rumor .r-c {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  font-style: italic !important;
  font-family: var(--font-brush) !important;
  line-height: 1.6 !important;
}

/* 当前态势卡（os-dr.scene）—— 翡翠绿 */
.rili-markdown-renderer details.os-dr.scene > summary {
  background: linear-gradient(180deg, rgba(74,124,89,0.12) 0%, rgba(122,168,134,0.08) 100%) !important;
  border-bottom: 1px solid rgba(74,124,89,0.2) !important;
}
.rili-markdown-renderer details.os-dr.scene > summary::before {
  color: var(--jade) !important;
}
.rili-markdown-renderer details.os-dr.scene .os-dossier {
  border-left-color: var(--jade-light) !important;
}
.rili-markdown-renderer details.os-dr.scene .os-dossier::before {
  content: "【方位】" attr(data-look) !important;
}
.rili-markdown-renderer details.os-dr.scene .os-dossier::after {
  content: "【环境】" attr(data-state) !important;
  color: var(--jade) !important;
}

.rili-markdown-renderer details.os-dr.enemy > summary {
  background: linear-gradient(180deg, rgba(138,40,40,0.12) 0%, rgba(192,64,64,0.08) 100%) !important;
  border-bottom: 1px solid rgba(138,40,40,0.2) !important;
}

.rili-markdown-renderer details.os-dr.enemy > summary::before {
  color: var(--vermilion) !important;
}

.rili-markdown-renderer .os-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  margin-bottom: 6px !important;
}

.rili-markdown-renderer .os-dossier {
  font-size: 0.85em !important;
  color: var(--ink) !important;
  line-height: 1.7 !important;
  padding: 8px 10px !important;
  background: var(--paper-dark) !important;
  border-left: 3px solid var(--vermilion-light) !important;
  border-radius: 0 3px 3px 0 !important;
  margin: 6px 0 !important;
  font-family: var(--font-serif) !important;
}

.rili-markdown-renderer .os-dossier::before {
  content: "【外貌】" attr(data-look) !important;
  display: block !important;
  margin-bottom: 4px !important;
}

.rili-markdown-renderer .os-dossier::after {
  content: "【状态】" attr(data-state) !important;
  display: block !important;
  color: var(--vermilion-dark) !important;
}

/* 私密档案折叠项（os-private）—— NPC卡内嵌6部位，默认收起 */
.rili-markdown-renderer .os-private {
  margin: 3px 0 !important;
  border-left: 2px solid rgba(138,40,40,0.25) !important;
  border-radius: 0 4px 4px 0 !important;
  background: rgba(138,40,40,0.04) !important;
  overflow: hidden !important;
}
.rili-markdown-renderer .os-private > summary {
  padding: 5px 10px !important;
  font-size: 0.85em !important;
  font-weight: 600 !important;
  color: var(--vermilion-dark) !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
}
.rili-markdown-renderer .os-private > summary::-webkit-details-marker {
  display: none !important;
}
.rili-markdown-renderer .os-private > summary::before {
  content: "▸ " !important;
  color: var(--vermilion) !important;
  font-size: 0.9em !important;
}
.rili-markdown-renderer .os-private[open] > summary {
  background: rgba(138,40,40,0.08) !important;
  border-bottom: 1px dashed rgba(138,40,40,0.15) !important;
}
.rili-markdown-renderer .os-private[open] > summary::before {
  content: "▾ " !important;
}
.rili-markdown-renderer .os-private > .os-row {
  padding: 6px 10px !important;
  font-size: 0.85em !important;
  line-height: 1.6 !important;
  color: var(--ink) !important;
}

/* 势力状态栏折叠区块（os-faction-sub）—— 势力子卡内嵌4区块，默认收起 */
.rili-markdown-renderer .os-faction-sub {
  margin: 4px 0 !important;
  border-left: 2px solid rgba(202,138,4,0.3) !important;
  border-radius: 0 4px 4px 0 !important;
  background: rgba(202,138,4,0.04) !important;
  overflow: hidden !important;
}
.rili-markdown-renderer .os-faction-sub > summary {
  padding: 5px 10px !important;
  font-size: 0.85em !important;
  font-weight: 600 !important;
  color: #8a5a04 !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
}
.rili-markdown-renderer .os-faction-sub > summary::-webkit-details-marker {
  display: none !important;
}
.rili-markdown-renderer .os-faction-sub > summary::before {
  content: "▸ " !important;
  color: rgba(202,138,4,0.8) !important;
  font-size: 0.9em !important;
}
.rili-markdown-renderer .os-faction-sub[open] > summary {
  background: rgba(202,138,4,0.08) !important;
  border-bottom: 1px dashed rgba(202,138,4,0.15) !important;
}
.rili-markdown-renderer .os-faction-sub[open] > summary::before {
  content: "▾ " !important;
}
.rili-markdown-renderer .os-faction-sub > *:not(summary) {
  padding: 6px 10px !important;
  font-size: 0.85em !important;
  line-height: 1.6 !important;
}

.rili-markdown-renderer details.os-dr.log > summary {
  background: linear-gradient(180deg, #2c3e50 0%, #1c2838 100%) !important;
  color: #d4a843 !important;
  border-bottom: 2px solid #d4a843 !important;
}

.rili-markdown-renderer details.os-dr.log > summary::before {
  color: #d4a843 !important;
}

.rili-markdown-renderer details.os-dr.log > summary .tag {
  background: rgba(212,168,67,0.15) !important;
  color: #d4a843 !important;
  border-color: #d4a843 !important;
}

.rili-markdown-renderer details.os-dr.log > .os-body {
  background: var(--paper) !important;
}

.rili-markdown-renderer details.os-dr.log table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 6px 0 !important;
  font-size: 0.85em !important;
}

.rili-markdown-renderer details.os-dr.log table th {
  background: var(--paper-darker) !important;
  color: var(--ink-black) !important;
  font-weight: 700 !important;
  padding: 5px 8px !important;
  border: 1px solid var(--border-light) !important;
  text-align: center !important;
  font-family: var(--font-serif) !important;
}

.rili-markdown-renderer details.os-dr.log table td {
  padding: 5px 8px !important;
  border: 1px solid var(--border-light) !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
}

.rili-markdown-renderer details.os-dr.log table tr:nth-child(even) td {
  background: var(--paper-dark) !important;
}

/* 表格横向滚动容器（手机端可左右拖动查看完整内容） */
.rili-markdown-renderer .os-tbl-scroll {
  overflow-x: auto !important;
  max-width: 100% !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 6px 0 !important;
}
.rili-markdown-renderer .os-tbl-scroll table {
  min-width: 100% !important;
  width: max-content !important;
}

.rili-markdown-renderer details.os-hud {
  background: linear-gradient(135deg, var(--paper) 0%, rgba(245,240,232,0.97) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 4px solid var(--gold) !important;
  border-radius: 6px !important;
  margin: 10px 0 !important;
  box-shadow: 
    0 2px 8px rgba(184,134,11,0.15),
    0 1px 0 rgba(255,255,255,0.4) inset !important;
  overflow: hidden !important;
  transition: box-shadow 0.3s ease !important;
}

.rili-markdown-renderer details.os-hud > summary {
  background: linear-gradient(180deg, rgba(184,134,11,0.12) 0%, rgba(212,168,67,0.08) 100%) !important;
  color: var(--gold) !important;
  padding: 10px 14px !important;
  font-family: var(--font-serif) !important;
  font-weight: 700 !important;
  font-size: 1.02em !important;
  border-bottom: 1px solid var(--border-light) !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

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

.rili-markdown-renderer details.os-hud > summary::before {
  content: "▸" !important;
  color: var(--gold) !important;
  transition: transform 0.2s ease !important;
}

.rili-markdown-renderer details.os-hud[open] > summary::before {
  transform: rotate(90deg) !important;
}

.rili-markdown-renderer details.os-hud > summary .tag.blink {
  margin-left: auto !important;
  background: var(--vermilion) !important;
  color: #f5f0e8 !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 1px 8px !important;
  font-size: 0.78em !important;
  font-weight: 700 !important;
  animation: osBlink 1.5s ease-in-out infinite !important;
}

.rili-markdown-renderer details.os-hud > pre,
.rili-markdown-renderer details.os-hud > .os-body pre {
  display: none !important;
}

.rili-markdown-renderer details.os-hud > pre:hover,
.rili-markdown-renderer details.os-hud > .os-body pre:hover {
  background: var(--paper-darker) !important;
  border-left-color: var(--vermilion) !important;
  transform: translateX(2px) !important;
}

.rili-markdown-renderer details.os-hud > pre code,
.rili-markdown-renderer details.os-hud > .os-body pre code {
  color: var(--ink) !important;
  background: transparent !important;
}

.rili-markdown-renderer .os-tip {
  position: absolute !important;
  bottom: calc(100% + 6px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 180px !important;
  max-width: 280px !important;
  background: var(--ink-black) !important;
  color: var(--paper) !important;
  padding: 8px 12px !important;
  border-radius: 4px !important;
  border: 1px solid var(--gold) !important;
  font-size: 0.82em !important;
  font-family: var(--font-serif) !important;
  line-height: 1.6 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 100 !important;
  pointer-events: none !important;
  white-space: normal !important;
  text-align: left !important;
}

.rili-markdown-renderer .os-tip::after {
  content: "" !important;
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  border: 5px solid transparent !important;
  border-top-color: var(--gold) !important;
}

.rili-markdown-renderer .os-tip b {
  display: block !important;
  color: var(--gold-light) !important;
  font-weight: 700 !important;
  margin-bottom: 3px !important;
  font-size: 1.05em !important;
}

.rili-markdown-renderer .os-tip b[class*="r-Tier"] {
  color: var(--tier-c) !important;
}

.rili-markdown-renderer .os-tip em {
  font-style: normal !important;
  color: var(--paper-darker) !important;
  font-size: 0.95em !important;
}

.rili-markdown-renderer [tabindex]:hover > .os-tip,
.rili-markdown-renderer [tabindex]:focus > .os-tip,
.rili-markdown-renderer .pill:hover > .os-tip,
.rili-markdown-renderer .slot:hover > .os-tip,
.rili-markdown-renderer .item:hover > .os-tip,
.rili-markdown-renderer .attr:hover > .os-tip,
.rili-markdown-renderer .bar:hover > .os-tip {
  opacity: 1 !important;
  visibility: visible !important;
}

.rili-markdown-renderer .ic {
  font-style: normal !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

.rili-markdown-renderer .panel-social .os-rel-g {
  margin: 6px 0 !important;
}

.rili-markdown-renderer .panel-social .os-rel-g::before {
  content: attr(data-t) !important;
  font-size: 0.85em !important;
  color: var(--ink-mid) !important;
  font-family: var(--font-serif) !important;
}

.rili-markdown-renderer .panel-social .os-rel-g:empty::after {
  content: "暂无" !important;
  font-size: 0.85em !important;
  color: var(--ink-faint) !important;
  font-style: italic !important;
}

.max-w-2xl {
  max-width: 920px !important;
}

.is-user {
  position: relative !important;
}

.is-assistant {
  position: relative !important;
}

.is-user .rili-markdown-renderer {
  font-size: 14.5px !important;
  line-height: 1.85 !important;
  font-family: var(--font-serif) !important;
}

.is-assistant .rili-markdown-renderer {
  font-size: 14.5px !important;
  line-height: 1.85 !important;
  font-family: var(--font-serif) !important;
}

.markdown-body details.os-hud [data-action="append-textinput"] {
  background: linear-gradient(135deg, var(--paper) 0%, var(--paper-dark) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--gold-light) !important;
  border-radius: 4px !important;
  margin: 5px 10px !important;
  padding: 9px 14px !important;
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: block !important;
}

.markdown-body details.os-hud [data-action="append-textinput"]:hover {
  background: linear-gradient(135deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  border-left-color: var(--vermilion) !important;
  transform: translateX(3px) !important;
  box-shadow: 0 2px 8px rgba(184,134,11,0.18) !important;
  color: var(--vermilion-dark) !important;
}

.markdown-body details.os-hud [data-action="append-textinput"]:active {
  transform: translateX(1px) !important;
  background: var(--paper-darker) !important;
}

.rili-markdown-renderer details.os-hud [data-action="append-textinput"] {
  background: linear-gradient(135deg, var(--paper) 0%, var(--paper-dark) 100%) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--gold-light) !important;
  border-radius: 4px !important;
  margin: 5px 10px !important;
  padding: 9px 14px !important;
  font-family: var(--font-serif) !important;
  font-size: 0.92em !important;
  color: var(--ink) !important;
  line-height: 1.6 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: block !important;
}

.rili-markdown-renderer details.os-hud [data-action="append-textinput"]:hover {
  background: linear-gradient(135deg, var(--paper-dark) 0%, var(--paper-darker) 100%) !important;
  border-left-color: var(--vermilion) !important;
  transform: translateX(3px) !important;
  box-shadow: 0 2px 8px rgba(184,134,11,0.18) !important;
  color: var(--vermilion-dark) !important;
}

.rili-markdown-renderer details.os-hud [data-action="append-textinput"]:active {
  transform: translateX(1px) !important;
  background: var(--paper-darker) !important;
}

/* ============================================================ */
/* rili 作用域补齐规则 —— 镜像 markdown-body 缺失样式 */
/* ============================================================ */

/* ---- 1. sys-panel :has() 品类规则（8 类，17 条）---- */

/* === 态势栏 - 朱砂反白头条（主视觉）=== */
.rili-markdown-renderer details.sys-panel:has(summary b.态势) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="态势"]) > summary {
  background: linear-gradient(180deg, var(--vermilion) 0%, var(--vermilion-dark) 100%) !important;
  color: #f5f0e8 !important;
  border-bottom: 2px solid var(--ink-black) !important;
  box-shadow: 0 2px 6px rgba(138, 40, 40, 0.25) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.态势) > summary::before,
.rili-markdown-renderer details.sys-panel:has(summary b[class="态势"]) > summary::before {
  color: #f5f0e8 !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.态势) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="态势"]) > summary b {
  color: #f5f0e8 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}

/* === 成长档案 - 金色珍贵 === */
.rili-markdown-renderer details.sys-panel:has(summary b.成长) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="成长"]) > summary {
  background: linear-gradient(180deg, #f0e0c0 0%, #e0d0a8 100%) !important;
  color: var(--gold) !important;
  border-left: 4px solid var(--gold) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.成长) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="成长"]) > summary b {
  color: var(--gold) !important;
}

/* === 当前互动 - 玉色生机 === */
.rili-markdown-renderer details.sys-panel:has(summary b.互动) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="互动"]) > summary {
  background: linear-gradient(180deg, #e0ecd8 0%, #d0e0c8 100%) !important;
  color: var(--jade) !important;
  border-left: 4px solid var(--jade) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.互动) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="互动"]) > summary b {
  color: var(--jade) !important;
}

/* === 关系网络 - 紫色人脉 === */
.rili-markdown-renderer details.sys-panel:has(summary b.关系) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="关系"]) > summary {
  background: linear-gradient(180deg, #e8e0f0 0%, #d8d0e8 100%) !important;
  color: var(--purple) !important;
  border-left: 4px solid var(--purple) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.关系) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="关系"]) > summary b {
  color: var(--purple) !important;
}

/* === 任务日志 - 琥珀目标 === */
.rili-markdown-renderer details.sys-panel:has(summary b.任务) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="任务"]) > summary {
  background: linear-gradient(180deg, #f5e8d0 0%, #ecd8b8 100%) !important;
  color: var(--amber) !important;
  border-left: 4px solid var(--amber) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.任务) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="任务"]) > summary b {
  color: var(--amber) !important;
}

/* === 记忆档案 - 深墨沉淀 === */
.rili-markdown-renderer details.sys-panel:has(summary b.记忆) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="记忆"]) > summary {
  background: linear-gradient(180deg, #e0dcd4 0%, #d0ccc4 100%) !important;
  color: var(--ink-black) !important;
  border-left: 4px solid var(--ink-black) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.记忆) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="记忆"]) > summary b {
  color: var(--ink-black) !important;
}

/* === 自定义记忆区 - 淡墨 === */
.rili-markdown-renderer details.sys-panel:has(summary b.自定义记忆) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="自定义记忆"]) > summary {
  background: linear-gradient(180deg, #ece8e0 0%, #ddd8d0 100%) !important;
  color: var(--ink-mid) !important;
  border-left: 4px dashed var(--ink-mid) !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.自定义记忆) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="自定义记忆"]) > summary b {
  color: var(--ink-mid) !important;
}

/* === 记忆总结 - 隐藏态特殊样式 === */
.rili-markdown-renderer details.sys-panel:has(summary b.记忆总结) > summary,
.rili-markdown-renderer details.sys-panel:has(summary b[class="记忆总结"]) > summary {
  background: linear-gradient(180deg, #2c3e50 0%, #1c2838 100%) !important;
  color: #d4a843 !important;
  border-left: 4px solid #d4a843 !important;
}

.rili-markdown-renderer details.sys-panel:has(summary b.记忆总结) > summary b,
.rili-markdown-renderer details.sys-panel:has(summary b[class="记忆总结"]) > summary b {
  color: #d4a843 !important;
}

/* ---- 2. sys-panel 品阶 li 规则（6 阶）---- */

/* 凡品 - 灰色 */
.rili-markdown-renderer details.sys-panel li.凡品,
.rili-markdown-renderer details.sys-panel li[class="凡品"] {
  color: var(--ink-mid) !important;
  border-left: 3px solid var(--ink-light) !important;
  padding-left: 8px !important;
  background: rgba(176, 184, 192, 0.08) !important;
}

/* 良品 - 绿色 */
.rili-markdown-renderer details.sys-panel li.良品,
.rili-markdown-renderer details.sys-panel li[class="良品"] {
  color: var(--jade) !important;
  border-left: 3px solid var(--jade) !important;
  padding-left: 8px !important;
  background: rgba(74, 124, 89, 0.08) !important;
}

/* 上品 - 蓝色 */
.rili-markdown-renderer details.sys-panel li.上品,
.rili-markdown-renderer details.sys-panel li[class="上品"] {
  color: #2c5f9e !important;
  border-left: 3px solid #2c5f9e !important;
  padding-left: 8px !important;
  background: rgba(44, 95, 158, 0.08) !important;
}

/* 极品 - 紫色 */
.rili-markdown-renderer details.sys-panel li.极品,
.rili-markdown-renderer details.sys-panel li[class="极品"] {
  color: var(--purple) !important;
  border-left: 3px solid var(--purple) !important;
  padding-left: 8px !important;
  background: rgba(107, 91, 149, 0.1) !important;
  font-weight: 500 !important;
}

/* 灵品 - 金色 */
.rili-markdown-renderer details.sys-panel li.灵品,
.rili-markdown-renderer details.sys-panel li[class="灵品"] {
  color: var(--gold) !important;
  border-left: 3px solid var(--gold) !important;
  padding-left: 8px !important;
  background: rgba(184, 134, 11, 0.12) !important;
  font-weight: 600 !important;
  text-shadow: 0 0 1px rgba(184, 134, 11, 0.2) !important;
}

/* 仙品 - 朱砂红 */
.rili-markdown-renderer details.sys-panel li.仙品,
.rili-markdown-renderer details.sys-panel li[class="仙品"] {
  color: var(--vermilion) !important;
  border-left: 3px solid var(--vermilion) !important;
  padding-left: 8px !important;
  background: rgba(192, 64, 64, 0.12) !important;
  font-weight: 700 !important;
  text-shadow: 0 0 2px rgba(192, 64, 64, 0.3) !important;
}

/* ---- 3. sys-panel 品阶 b 规则（聚合 + 6 阶）---- */

/* 品质标签b标签 */
.rili-markdown-renderer details.sys-panel b.凡品,
.rili-markdown-renderer details.sys-panel b.良品,
.rili-markdown-renderer details.sys-panel b.上品,
.rili-markdown-renderer details.sys-panel b.极品,
.rili-markdown-renderer details.sys-panel b.灵品,
.rili-markdown-renderer details.sys-panel b.仙品,
.rili-markdown-renderer details.sys-panel b[class="凡品"],
.rili-markdown-renderer details.sys-panel b[class="良品"],
.rili-markdown-renderer details.sys-panel b[class="上品"],
.rili-markdown-renderer details.sys-panel b[class="极品"],
.rili-markdown-renderer details.sys-panel b[class="灵品"],
.rili-markdown-renderer details.sys-panel b[class="仙品"] {
  padding: 1px 6px !important;
  border-radius: 2px !important;
  font-weight: 700 !important;
}

.rili-markdown-renderer details.sys-panel b.凡品,
.rili-markdown-renderer details.sys-panel b[class="凡品"] {
  background: var(--ink-light) !important;
  color: #fff !important;
}

.rili-markdown-renderer details.sys-panel b.良品,
.rili-markdown-renderer details.sys-panel b[class="良品"] {
  background: var(--jade) !important;
  color: #fff !important;
}

.rili-markdown-renderer details.sys-panel b.上品,
.rili-markdown-renderer details.sys-panel b[class="上品"] {
  background: #2c5f9e !important;
  color: #fff !important;
}

.rili-markdown-renderer details.sys-panel b.极品,
.rili-markdown-renderer details.sys-panel b[class="极品"] {
  background: var(--purple) !important;
  color: #fff !important;
}

.rili-markdown-renderer details.sys-panel b.灵品,
.rili-markdown-renderer details.sys-panel b[class="灵品"] {
  background: var(--gold) !important;
  color: #fff !important;
}

.rili-markdown-renderer details.sys-panel b.仙品,
.rili-markdown-renderer details.sys-panel b[class="仙品"] {
  background: var(--vermilion) !important;
  color: #fff !important;
}

/* ---- 4. 基础排版（pre / pre code / blockquote / 相邻 p）---- */

.rili-markdown-renderer pre {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--vermilion) !important;
  border-radius: 3px !important;
  padding: 12px 16px !important;
  margin: 8px 0 !important;
  font-family: var(--font-mono) !important;
  font-size: 0.9em !important;
  line-height: 1.6 !important;
  color: var(--ink) !important;
  overflow-x: auto !important;
}

.rili-markdown-renderer pre code {
  background: transparent !important;
  color: var(--ink) !important;
  padding: 0 !important;
  font-family: var(--font-mono) !important;
}

.rili-markdown-renderer blockquote {
  background: linear-gradient(135deg, rgba(192, 64, 64, 0.06) 0%, rgba(192, 64, 64, 0.03) 100%) !important;
  border-left: 4px solid var(--vermilion-light) !important;
  padding: 10px 16px !important;
  margin: 8px 0 !important;
  color: var(--ink-mid) !important;
  font-style: italic !important;
  border-radius: 0 4px 4px 0 !important;
  box-shadow: 0 1px 4px rgba(192, 64, 64, 0.08) !important;
}

.rili-markdown-renderer details.sys-panel + p,
.rili-markdown-renderer .story-main + details.sys-panel + p {
  background: var(--paper-dark) !important;
  border: 1px solid var(--border-light) !important;
  border-left: 3px solid var(--gold) !important;
  padding: 10px 14px !important;
  border-radius: 3px !important;
  margin: 8px 0 !important;
}

/* ---- 5. webkit 滚动条（4 规则）---- */

.rili-markdown-renderer ::-webkit-scrollbar {
  width: 8px !important;
  height: 8px !important;
}

.rili-markdown-renderer ::-webkit-scrollbar-track {
  background: var(--paper-dark) !important;
  border-radius: 4px !important;
}

.rili-markdown-renderer ::-webkit-scrollbar-thumb {
  background: var(--border-light) !important;
  border-radius: 4px !important;
}

.rili-markdown-renderer ::-webkit-scrollbar-thumb:hover {
  background: var(--vermilion-light) !important;
}

/* ---- 6. 面板 hover 悬停态（8 规则）---- */

.rili-markdown-renderer details.sys-panel > summary:hover {
  filter: brightness(0.97) !important;
  transform: translateY(-1px) !important;
}

.rili-markdown-renderer details.sys-panel details > summary:hover {
  color: var(--vermilion) !important;
}

.rili-markdown-renderer details.think-panel > summary:hover {
  color: var(--ink) !important;
}

.rili-markdown-renderer details.sys-panel:hover {
  box-shadow:
    0 4px 12px rgba(28, 24, 19, 0.12),
    inset 0 0 50px rgba(192, 64, 64, 0.03) !important;
}

.rili-markdown-renderer details.think-panel:hover {
  box-shadow: 0 4px 10px rgba(28, 24, 19, 0.1) !important;
}

.rili-markdown-renderer details.os-dr:hover {
  box-shadow:
    0 4px 14px rgba(28,24,19,0.15),
    inset 0 0 60px rgba(192,64,64,0.04) !important;
}

.rili-markdown-renderer details.os-dr > summary:hover {
  filter: brightness(0.97) !important;
  transform: translateY(-1px) !important;
}

.rili-markdown-renderer details.os-hud:hover {
  box-shadow:
    0 4px 14px rgba(184,134,11,0.2) !important;
}

/* ---- 7. story-main::before 装饰 ---- */

.rili-markdown-renderer .story-main::before {
  content: "" !important;
  position: absolute !important;
  top: 0; left: 0; right: 0; bottom: 0 !important;
  background:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 1.85em,
      rgba(196, 184, 150, 0.15) 1.85em,
      rgba(196, 184, 150, 0.15) calc(1.85em + 1px)
    ) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

/* ---- 8. m-tag 性别规则（男/女/中性兜底）---- */

.rili-markdown-renderer .m-tag.男 {
  background: rgba(44,95,158,0.15) !important;
  color: #2c5f9e !important;
  border: 1px solid rgba(44,95,158,0.3) !important;
}
 
.rili-markdown-renderer .m-tag.女 {
  background: rgba(255,107,157,0.15) !important;
  color: #c05080 !important;
  border: 1px solid rgba(255,107,157,0.3) !important;
}
/* 英文 class 兜底 */
.rili-markdown-renderer .m-tag.male {
  background: rgba(44,95,158,0.15) !important;
  color: #2c5f9e !important;
  border: 1px solid rgba(44,95,158,0.3) !important;
}
.rili-markdown-renderer .m-tag.female {
  background: rgba(255,107,157,0.15) !important;
  color: #c05080 !important;
  border: 1px solid rgba(255,107,157,0.3) !important;
}

/* NPC特征标签（年龄/容貌/杀气等）*/
.rili-markdown-renderer .m-tag:not(.男):not(.女):not(.male):not(.female) {
  background: var(--paper-dark) !important;
  color: var(--ink-mid) !important;
  border: 1px solid var(--border-light) !important;
}

/* ---- 9. pill 颜色规则（紫/金/红/蓝/绿）---- */

.rili-markdown-renderer .pill.紫 { border-color: var(--purple) !important; color: var(--purple) !important; background: rgba(107,91,149,0.08) !important; }
.rili-markdown-renderer .pill.金 { border-color: var(--gold) !important; color: var(--gold) !important; background: rgba(184,134,11,0.1) !important; }
.rili-markdown-renderer .pill.红 { border-color: var(--vermilion) !important; color: var(--vermilion) !important; background: rgba(192,64,64,0.08) !important; }
.rili-markdown-renderer .pill.蓝 { border-color: #2c5f9e !important; color: #2c5f9e !important; background: rgba(44,95,158,0.08) !important; }
.rili-markdown-renderer .pill.绿 { border-color: var(--jade) !important; color: var(--jade) !important; background: rgba(74,124,89,0.08) !important; }
/* 英文 class 兜底（防 AI 偶尔输出英文色名）*/
.rili-markdown-renderer .pill.purple { border-color: var(--purple) !important; color: var(--purple) !important; background: rgba(107,91,149,0.08) !important; }
.rili-markdown-renderer .pill.gold { border-color: var(--gold) !important; color: var(--gold) !important; background: rgba(184,134,11,0.1) !important; }
.rili-markdown-renderer .pill.red { border-color: var(--vermilion) !important; color: var(--vermilion) !important; background: rgba(192,64,64,0.08) !important; }
.rili-markdown-renderer .pill.blue { border-color: #2c5f9e !important; color: #2c5f9e !important; background: rgba(44,95,158,0.08) !important; }
.rili-markdown-renderer .pill.green { border-color: var(--jade) !important; color: var(--jade) !important; background: rgba(74,124,89,0.08) !important; }

/* ---- 10. rumor 门派类别（武林/江湖/朝堂）---- */

.rili-markdown-renderer .os-rumor .r-cat.武林 { background: rgba(192,64,64,0.12) !important; color: var(--vermilion) !important; }
.rili-markdown-renderer .os-rumor .r-cat.江湖 { background: rgba(74,124,89,0.12) !important; color: var(--jade) !important; }
.rili-markdown-renderer .os-rumor .r-cat.朝堂 { background: rgba(184,134,11,0.12) !important; color: var(--gold) !important; }













div.w-full.max-w-2xl.mx-auto.my-3.px-4.pb-4.last\:pb-0 {
  position: relative !important;
  background: 
    linear-gradient(180deg,
      rgba(245,238,220,0.03) 0%,
      rgba(235,225,200,0.06) 50%,
      rgba(245,238,220,0.03) 100%
    ) !important;
  border-radius: 16px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  margin-top: 12px !important;
  margin-bottom: 12px !important;
}

div.relative.flex-1.overflow-y-auto {
  background:
    url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 50% 0%, rgba(196,184,150,0.15) 0%, transparent 70%),
    radial-gradient(ellipse at 50% 100%, rgba(196,184,150,0.1) 0%, transparent 70%),
    linear-gradient(180deg,
      var(--paper) 0%,
      var(--paper-dark) 50%,
      var(--paper) 100%
    ) !important;
}
