/* ==========================================================================
   1. 聊天气泡 (强制暗色底板 + 亮色防瞎眼文字)
   ========================================================================== */
/* 气泡主容器：暗色装甲底板，取消外边框，改为内凹阴影 */
.is-assistant > div {min-width: 670px;}
think {display: none !important;}
@media (max-width: 768px) {
  .is-assistant > div {min-width: 360px; max-width: 94vw;}
}

.is-user > div, .is-assistant > div {
    background-color: #121417 !important;
    border: none !important;
    border-radius: 4px !important;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 2px 2px 6px rgba(0,0,0,0.5) !important;
    position: relative !important;
    padding: 1em !important;
}

.is-user > div {
    min-width: 190px !important;
}

/* 顶部黄铜装饰线 */
.is-user > div::before, .is-assistant > div::before {
    content: '' !important;
    position: absolute !important;
    top: 0; left: 0; right: 0; height: 2px !important;
    background: linear-gradient(90deg, transparent, #8b7355, #c5a059, #8b7355, transparent) !important;
    opacity: 0.8 !important; pointer-events: none !important; z-index: 10 !important;
}

/* ★ 核心文本修复：强制亮色，防止白天模式字变黑 */
.rili-markdown-renderer, 
.rili-markdown-renderer p, 
.rili-markdown-renderer li, 
.rili-markdown-renderer span {
    color: #d3cbb8 !important;
    font-family: 'Georgia', serif, 'Microsoft YaHei', sans-serif !important;
    text-shadow: 0 1px 1px rgba(0,0,0,0.8) !important;
}

/* Markdown 特殊元素着色 */
.rili-markdown-renderer strong { color: #c5a059 !important; }
.rili-markdown-renderer em { color: #8b7355 !important; }
.rili-markdown-renderer blockquote {
    border-left: 3px solid #5a4b31 !important;
    background: rgba(139, 115, 85, 0.1) !important;
    padding: 0.5em 1em !important;
    margin: 1em 0 !important;
    border-radius: 0 4px 4px 0 !important;
    color: #a89f91 !important;
}
.rili-markdown-renderer hr {
    border: none !important; height: 1px !important;
    background: linear-gradient(90deg, transparent, #5a4b31, #8b7355, transparent) !important;
    margin: 1.5em 0 !important;
}

/* 气泡内操作按钮 */
.is-user > div button, .is-assistant > div button {
    background: linear-gradient(135deg, #2b2317, #15110a) !important;
    color: #8b7355 !important;
    border: 1px solid #4a3c27 !important;
    border-radius: 2px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.6) !important;
    transition: all 0.2s !important;
}
.is-user > div button:hover, .is-assistant > div button:hover {
    background: linear-gradient(135deg, #4a3c27, #2a2215) !important;
    color: #c5a059 !important;
    border-color: #8b7355 !important;
    transform: translateY(-1px) !important;
}
.is-user > div button svg, .is-assistant > div button svg { stroke: currentcolor !important; }

/* ==========================================================================
   2. 顶栏美化 (暗黑黄铜化)
   ========================================================================== */
header:has(#nav-right) {
    background: linear-gradient(180deg, #1a1c20, #121417) !important;
    border-bottom: 2px solid #5a4b31 !important;
    position: relative !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.8) !important;
}
/* 顶栏图标交互 */
header:has(#nav-right) button { color: #8b7355 !important; border-radius: 2px !important; transition: all 0.25s !important; }
header:has(#nav-right) button:hover { background: rgba(0,0,0,0.4) !important; color: #c5a059 !important; transform: translateY(-1px) !important; }
header:has(#nav-right) button svg { stroke: #8b7355 !important; transition: all 0.25s !important; }
header:has(#nav-right) button:hover svg { stroke: #c5a059 !important; filter: drop-shadow(0 0 4px rgba(197, 160, 89, 0.5)) !important; }
header:has(#nav-right) [data-sidebar="trigger"] svg { stroke: #c5a059 !important; }

/* ==========================================================================
   3. 底部输入框与控制台按钮
   ========================================================================== */
form#prompt-input { background-color: transparent !important; box-shadow: none !important; }
div[data-slot="input-group"] {
    background-color: #121417 !important;
    border: 1px solid #5a4b31 !important;
    border-radius: 4px !important;
    box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 4px 16px rgba(0,0,0,0.6) !important;
    transition: all 0.3s !important;
}
/* 聚焦时黄铜边框发光 */
div[data-slot="input-group"]:focus-within {
    border-color: #c5a059 !important;
    box-shadow: inset 0 0 10px rgba(197, 160, 89, 0.15), 0 0 12px rgba(197, 160, 89, 0.25) !important;
}

/* 输入框本体 */
#prompt-input textarea {
    background-color: transparent !important;
    border: none !important;
    color: #e8dcc5 !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
}
#prompt-input textarea:focus { outline: none !important; }
#prompt-input textarea::placeholder { color: #5a4b31 !important; font-style: italic; }

/* 输入区附加功能按钮 */
#prompt-input-header button, #prompt-input-footer button {
    background: linear-gradient(135deg, #2b2317, #15110a) !important;
    color: #8b7355 !important;
    border: 1px solid #4a3c27 !important;
    border-radius: 2px !important;
    transition: all 0.2s !important;
}
#prompt-input-header button:hover, #prompt-input-footer button:hover {
    background: linear-gradient(135deg, #4a3c27, #2a2215) !important;
    color: #c5a059 !important;
    border-color: #8b7355 !important;
    transform: translateY(-2px) !important;
}
#prompt-input-header button svg, #prompt-input-footer button svg { stroke: currentcolor !important; }

/* 发送按钮特化 */
#prompt-input-footer button[type="submit"] {
    background: linear-gradient(135deg, #5a4b31, #3a3022) !important;
    color: #e8dcc5 !important;
    border-color: #8b7355 !important;
    box-shadow: 0 0 8px rgba(0,0,0,0.8) !important;
}
#prompt-input-footer button[type="submit"]:hover {
    background: linear-gradient(135deg, #8b7355, #5a4b31) !important;
    border-color: #c5a059 !important;
    box-shadow: 0 0 10px rgba(197, 160, 89, 0.4) !important;
}

/* 弹出菜单/列表颜色同步覆盖 */
[role="dialog"], [role="listbox"], [role="menu"], [data-radix-popper-content-wrapper] > div {
    background: #1a1c20 !important;
    border: 1px solid #5a4b31 !important;
    border-radius: 4px !important;
    color: #d3cbb8 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.8) !important;
}
[role="option"], [role="menuitem"] { color: #a89f91 !important; transition: all 0.2s !important; }
[role="option"]:hover, [role="menuitem"]:hover, [role="option"][data-highlighted], [role="menuitem"][data-highlighted] {
    background: rgba(197, 160, 89, 0.15) !important;
    color: #c5a059 !important;
}

/* 全局黄铜滚动条 */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #121417; border-radius: 2px; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #5a4b31, #3a3022); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #8b7355, #5a4b31); }

/* ==========================================================================
   4. 载入动画重制：黄铜雷达扫描仪 (去背景 / 居中 / 放大版)
   ========================================================================== */
@keyframes radar-spin { 100% { transform: rotate(360deg); } }

/* ★ 核心修正 1：气泡隐身术。当检测到助手气泡内有加载动画时，强行扒掉外部的装甲底板 */
.is-assistant > div:has(.items-center.justify-center.size-6) {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 3em 0 !important; /* 给雷达上下留出充足的呼吸空间 */
    display: flex !important;
    justify-content: center !important; /* 强制雷达水平居中 */
    align-items: center !important;
}
/* 同步隐藏掉那个加载中气泡顶部的黄铜线 */
.is-assistant > div:has(.items-center.justify-center.size-6)::before {
    display: none !important;
}

/* 清理内部可能限制宽度的包装层 */
div:has(> .flex.items-center.justify-center.size-6 > .flex.gap-2) {
    display: flex !important; justify-content: center !important; align-items: center !important;
    width: 100% !important; padding: 0 !important;
}

.flex.items-center.justify-center.size-6:has(> .flex.gap-2) {
    width: 108px !important; height: 108px !important; 
    opacity: 1 !important; overflow: visible !important;
}

/* 把核心容器变成圆形雷达底盘 */
.flex.items-center.justify-center.size-6 > .flex.gap-2 {
    position: relative !important;
    display: block !important;
    width: 100% !important; height: 100% !important;
    border-radius: 50% !important;
    background: #121417 !important;
    border: 3px solid #5a4b31 !important; /* 边框稍微加粗以适应大尺寸 */
    overflow: hidden !important;
    animation: none !important;
}

/* 杀掉原生那三个跳动的小球 */
.flex.items-center.justify-center.size-6 > .flex.gap-2 > * { display: none !important; }

/* 雷达底层：旋转扫描扇叶 */
.flex.items-center.justify-center.size-6 > .flex.gap-2::before {
    content: '' !important;
    position: absolute !important;
    top: -50% !important; left: -50% !important;
    width: 200% !important; height: 200% !important;
    background: conic-gradient(from 0deg, transparent 75%, rgba(197, 160, 89, 0.8) 100%) !important;
    animation: radar-spin 1.5s linear infinite !important; /* 速度微调，更显沉稳质感 */
    pointer-events: none !important;
}

/* 雷达表层：渐变网格线 + 中心发光点 */
.flex.items-center.justify-center.size-6 > .flex.gap-2::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    /* 配合放大的尺寸，调整中心点大小与网格密度 */
    background-image: 
        radial-gradient(circle at center, #c5a059 3px, transparent 4px),
        linear-gradient(rgba(197, 160, 89, 0.3) 1px, transparent 1px),
        linear-gradient(90deg, rgba(197, 160, 89, 0.3) 1px, transparent 1px) !important;
    background-size: 100% 100%, 12px 12px, 12px 12px !important;
    background-position: center !important;
    border-radius: 50% !important;
    pointer-events: none !important;
}

/* ==========================================================================
   9. 新增：气泡控制台 (刷新/修改/复制 操作按键)
   ========================================================================== */
div.group button:not(.MuiButton-root):not(#header-setting-button) {
    background: #121417 !important; /* 暗色底板 */
    border: 1px solid #5a4b31 !important; /* 铜色边框 */
    border-radius: 2px !important;
    padding: 2px 6px !important;
    margin: 0 2px !important;
    transition: all 0.2s ease !important;
    box-shadow: 1px 1px 3px rgba(0,0,0,0.5) !important;
}
div.group button:not(.MuiButton-root):not(#header-setting-button) svg {
    color: #8b7355 !important; /* 默认暗铜色 */
    transition: all 0.2s ease !important;
}

/* 悬停高亮特效，强制高亮以防瞎眼 */
div.group button:not(.MuiButton-root):not(#header-setting-button):hover {
    background: #202428 !important;
    border-color: #c5a059 !important; /* 点亮黄铜边框 */
    box-shadow: 0 0 6px rgba(197, 160, 89, 0.4) !important;
}
div.group button:not(.MuiButton-root):not(#header-setting-button):hover svg {
    color: #fff !important; /* 悬停时图标变为亮白 */
    filter: drop-shadow(0 0 2px #c5a059) !important;
}
/* =========================================================
   补丁 1：修复羊皮纸 .mb 内部字体被全局提亮的问题 
   ========================================================= */
.gst .mb, .gst .mb * {
    color: #3e2723 !important;      /* 强制改回深色以适配羊皮纸底色 */
    text-shadow: none !important;   /* 去除暗影防止文字发糊 */
}
/* 重新激活高亮专属标签的颜色，避免被上面的 * 误伤 */
.gst .mb pt, .gst .mb pt * { color: #8b0000 !important; font-weight: bold !important; }
.gst .mb ot, .gst .mb ot * { color: #8C5001 !important; font-weight: bold !important; }
.gst .mb gt, .gst .mb gt * { color: #004d40 !important; font-weight: bold !important; }
.gst .mb t, .gst .mb t * { color: #1a237e !important; font-weight: bold !important; }
/* =========================================================
   补丁 2：修复气泡底部操作栏 (消耗显示与操作按钮) 
   ========================================================= */
/* 1. 将独立的底部操作栏由纯黑死板改为轻量的半透明质感 */
.is-user > div:last-child:not(:first-child), 
.is-assistant > div:last-child:not(:first-child) {
    background: rgba(18, 20, 23, 0.5) !important; /* 半透明暗底 */
    box-shadow: none !important;                  /* 去除厚重的装甲内外阴影 */
    border: 1px solid rgba(90, 75, 49, 0.3) !important; /* 极微弱的暗铜色边框 */
    padding: 6px 12px !important;                 /* 收缩一点尺寸显得精致 */
    margin-top: 8px !important;                   /* 与上面的羊皮纸正文拉开间隙 */
}
/* 隐藏误伤附加在这个小气泡上的“顶部高亮黄铜线” */
.is-user > div:last-child:not(:first-child)::before, 
.is-assistant > div:last-child:not(:first-child)::before {
    display: none !important;
}
/* 2. 剥除操作按钮外围突兀的白色/灰白色底板 */
.is-user > div:last-child:not(:first-child) div:has(> button), 
.is-assistant > div:last-child:not(:first-child) div:has(> button) {
    background: transparent !important; 
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
/* =========================================================
   补丁 3：修复白天模式编辑状态“白底亮字”及突兀灰色底板
   ========================================================= */
/* 1. 强制暗化编辑文本框，赋予内凹装甲质感 */
.is-user > div textarea,
.is-assistant > div textarea {
    background-color: #121417 !important; /* 纯暗底板 */
    color: #e8dcc5 !important;           /* 强制亮色字体，确保可读性 */
    border: 1px solid #5a4b31 !important; /* 黄铜边框 */
    border-radius: 2px !important;
    padding: 12px !important;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.9) !important; /* 深邃内凹阴影 */
    font-family: 'Georgia', serif, 'Microsoft YaHei', sans-serif !important;
    outline: none !important;
    transition: all 0.3s ease !important;
    line-height: 1.7 !important;
}

/* 2. 编辑框处于聚焦输入状态时，点亮黄铜边框边缘 */
.is-user > div textarea:focus,
.is-assistant > div textarea:focus {
    border-color: #c5a059 !important;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.9), 0 0 8px rgba(197, 160, 89, 0.2) !important;
}

/* 3. 为这个文本框右侧加上适配整体风格的蒸汽朋克滚动条 */
.is-user > div textarea::-webkit-scrollbar,
.is-assistant > div textarea::-webkit-scrollbar {
    width: 6px;
}
.is-user > div textarea::-webkit-scrollbar-track,
.is-assistant > div textarea::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.4) !important;
    border-radius: 2px;
}
.is-user > div textarea::-webkit-scrollbar-thumb,
.is-assistant > div textarea::-webkit-scrollbar-thumb {
    background: #5a4b31 !important;
    border-radius: 2px;
}
.is-user > div textarea::-webkit-scrollbar-thumb:hover,
.is-assistant > div textarea::-webkit-scrollbar-thumb:hover {
    background: #8b7355 !important;
}

/* 4. 暴力拆除外围残余：将包裹 textarea 以及下方取消/保存按钮的灰色原生地板彻底透明化 */
.is-user > div div:has(> textarea),
.is-assistant > div div:has(> textarea) {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.is-user > div div:has(> button:not(.MuiButton-root)),
.is-assistant > div div:has(> button:not(.MuiButton-root)) {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
/* =========================================================
   补丁 3.1：根除编辑状态下的“白光闪烁”与抖动
   ========================================================= */
/* 1. 精准修复 textarea：剥夺全局过渡动画，仅保留聚焦时的边框发光 */
.is-user > div textarea,
.is-assistant > div textarea {
    background-color: #121417 !important;
    color: #e8dcc5 !important;
    /* 【核心修复】：取消 transition: all，改为仅针对聚焦状态的过渡，同时彻底关闭原生动画 */
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important; 
    animation: none !important; 
}

/* 2. 强杀文本框外部包裹层的任何渐变与动画，防止其在 DOM 插入时来回跳动 */
.is-user > div div:has(> textarea),
.is-assistant > div div:has(> textarea),
.is-user > div div:has(> button:not(.MuiButton-root)),
.is-assistant > div div:has(> button:not(.MuiButton-root)) {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transition: none !important; /* 强制禁止底板发生任何渐变 */
    animation: none !important;  /* 强杀平台的弹入/淡入动画 */
}


/* ==========================================================================
   【一】 全局核心骨架 (Core Layout) - 负责结构、定位、动画、排版
   ========================================================================== */
/* --- 1. 纸娃娃基础结构 --- */
pc { display: block; width: 120px; height: 180px; position: relative; overflow: hidden; }
pc > bdy, bh, fh, eye, upper, lower, shoe, acc, emo { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: 100% 100%; background-position: top left; }
hair { display: contents; }
bh, fh, eye { -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: top left; mask-position: top left; background-size: 100% 100%; background-position: top left; }
bh { z-index: 1; } bdy { z-index: 2; } lower { z-index: 3; } upper { z-index: 4; } eye { z-index: 5; } fh { z-index: 6; } acc { z-index: 10; } shoe { z-index: 4; } emo { z-index: 3; }

/* --- 2. 剧本主容器与基础UI排版 --- */
[class^="s0"] { padding: 15px; position: relative; } /* 兼容所有 s01, s02 容器 */
uc { display: flex; gap: 15px; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dashed transparent; }
ucl { flex-shrink: 0; }
ucr { flex-grow: 1; display: flex; flex-direction: column; position: relative; padding: 12px; border: 1px solid transparent; }
nn { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid transparent; font-size: 1.4em; font-weight: bold; letter-spacing: 1px; }
lv { font-size: 0.8em; font-weight: bold; font-style: italic; }
fd { position: absolute; bottom: 10px; right: 12px; font-size: 0.85em; }
pp { position: absolute; bottom: 10px; left: 12px; font-size: 0.85em; font-weight: bold; }

/* --- 3. 状态条与网格面板 --- */
ni { display: flex; flex-direction: column; gap: 10px; }
si { display: flex; align-items: center; gap: 8px; font-weight: bold; }
lb { white-space: nowrap; flex-shrink: 0; width: 90px; text-align: right; }
pb { flex: 1; height: 14px; position: relative; overflow: hidden; border: 1px solid transparent; }
pf { display: block; height: 100%; transition: width 0.5s ease; position: relative; }
sv { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 10px; font-weight: bold; z-index: 2; padding: 1px 6px; opacity: 0; transition: opacity 0.25s ease; pointer-events: none; }
pb:hover sv { opacity: 1; }

.ig { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; padding: 12px; border: 1px solid transparent; }
.ig > * { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 8px 4px; font-size: 12px; text-align: center; border: 2px solid transparent; position: relative; transition: all 0.3s ease; line-height: 1.2; }
.ig > *:hover { transform: translateY(-2px); }
.ig > *::before { content: ''; display: block; width: 32px; height: 32px; margin-bottom: 6px; background-size: cover; background-position: center; border: 1px solid transparent; }
.ig > *::after { content: '待装配'; position: absolute; top: 18px; left: 50%; transform: translateX(-50%); font-size: 9px; font-weight: bold; pointer-events: none; }

.inv { padding: 10px; margin-top: 15px; max-height: 100px; overflow-y: auto; border: 1px solid transparent; }
itm { display: block; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px dashed transparent; font-size: 0.85em; }
itm:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
lt { font-weight: bold; }
pn { display: block; margin-top: 15px; padding: 12px; border: 1px solid transparent; font-size: 0.9em; }
ti { display: block; font-weight: bold; margin-bottom: 8px; font-size: 1.1em; }
tx { display: block; margin-bottom: 5px; line-height: 1.4; }
d { font-weight: bold; padding: 0 4px; }
n { display: block; padding: 10px; }

/* --- 4. 悬浮窗与地图网格骨架 --- */
tb { display: flex; justify-content: space-between; margin-bottom: 18px; padding: 0 5px; }
tb label { padding: 6px 15px; font-size: 13px; font-weight: bold; cursor: pointer; transition: 0.2s; }
.cb-m, .cb-p { display: none; }
.pmp, .ppp { display: none; position: absolute; top: 0; left: 0; right: 0; z-index: 100; padding: 20px 15px 45px 15px; }
.cb-m:checked ~ .pmp, .cb-p:checked ~ .ppp { display: block; animation: panFadeIn 0.2s ease-out; }
@keyframes panFadeIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.cls { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); font-size: 14px; font-weight: bold; padding: 6px 30px; cursor: pointer; transition: 0.2s; letter-spacing: 2px; }

.pmp > bd { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 8px !important; padding: 15px !important; position: relative !important; width: auto !important; height: auto !important; }
.pmp > bd > * { aspect-ratio: 1 / 1; background-size: 100% 100%; background-position: center; background-repeat: no-repeat; position: relative; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: all 0.3s ease; }
.pmp > bd > *::before { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); font-size: 18px; line-height: 1; }
.pmp > bd a1::before { content: "A1"; } .pmp > bd a2::before { content: "A2"; } .pmp > bd a3::before { content: "A3"; } .pmp > bd a4::before { content: "A4"; }
.pmp > bd b1::before { content: "B1"; } .pmp > bd b2::before { content: "B2"; } .pmp > bd b3::before { content: "B3"; } .pmp > bd b4::before { content: "B4"; }
.pmp > bd c1::before { content: "C1"; } .pmp > bd c2::before { content: "C2"; } .pmp > bd c3::before { content: "C3"; } .pmp > bd c4::before { content: "C4"; }
.pmp > bd d1::before { content: "D1"; } .pmp > bd d2::before { content: "D2"; } .pmp > bd d3::before { content: "D3"; } .pmp > bd d4::before { content: "D4"; }
.pmp > bd > [u]::after { content: "?"; position: absolute; font-weight: bold; font-size: 16px; }
.pmp > bd > [u] > v { display: none !important; }
.pmp > bd > [c]::after { content: "📍"; position: absolute; font-size: 18px; }
.pmp > bd > [m]::after { content: "💀"; position: absolute; font-size: 16px; }
.pmp > bd > [t]::after { content: "📦"; position: absolute; font-size: 16px; }
.pmp > bd > [s]::after { content: "⚖️"; position: absolute; font-size: 16px; }
.pmp > bd > [r]::after { content: "⛺"; position: absolute; font-size: 16px; }
.pmp > bd > [tr]::after { content: "⚠️"; position: absolute; font-size: 16px; }
.pmp > bd > [ev]::after { content: "✋"; position: absolute; font-size: 16px; }
.pmp > bd > [b]::after { content: "👹"; position: absolute; font-size: 16px; }
.pmp > bd > [x]::after { content: "🚪"; position: absolute; font-size: 16px; }

/* 地图悬浮面板骨架 */
.pmp > bd > * > v { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translate(-50%, 10px); width: 200px; padding: 10px; z-index: 150; opacity: 0; visibility: hidden; pointer-events: none; transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); text-align: left; cursor: default; }
.pmp > bd > :nth-child(4n+1) > v { left: 0; transform: translate(0, 10px); }
.pmp > bd > :nth-child(4n) > v { left: auto; right: 0; transform: translate(0, 10px); }
.pmp > bd > *:hover > v { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.pmp > bd > :nth-child(4n+1):hover > v { transform: translate(0, 0); }
.pmp > bd > :nth-child(4n):hover > v { transform: translate(0, 0); }
.pmp > bd > * > v ti { display: block; font-size: 13px; font-weight: bold; padding-bottom: 4px; margin-bottom: 6px; }
.pmp > bd > * > v tx { display: block; font-size: 11px; line-height: 1.5; margin-bottom: 6px; }
.pmp > bd > * > v tn { display: block; font-size: 11px; line-height: 1.4; padding: 6px; }

/* --- 5. 房间视觉中心与实体互动骨架 --- */
room { display: block; position: relative; width: 100%; max-width: 512px; aspect-ratio: 1 / 1; margin: 0 auto 15px auto; background-size: cover; background-position: center; }
room lt { position: absolute; top: 0; left: 50%; transform: translateX(-50%); font-size: 12px; padding: 4px 15px; z-index: 20; white-space: nowrap; }
room dn, room ds, room dw, room de { position: absolute; font-size: 11px; padding: 2px 6px; z-index: 10; cursor: pointer; transition: 0.2s; }
room dn { top: 35px; left: 50%; transform: translateX(-50%); } room ds { bottom: 10px; left: 50%; transform: translateX(-50%); }
room dw { left: 10px; top: 50%; transform: translateY(-50%); } room de { right: 10px; top: 50%; transform: translateY(-50%); }

room i1, room i2, room i3, room i4 { position: absolute; display: flex; flex-direction: column; align-items: center; z-index: 15; }
room i1 { top: 40px; left: 20px; } room i2 { top: 40px; right: 20px; }
room i3 { bottom: 35px; left: 20px; } room i4 { bottom: 35px; right: 20px; }
room i1::before, room i2::before, room i3::before, room i4::before { content: attr(n); font-size: 11px; margin-bottom: 2px; order: -1; }
room a[n=""]::before, room b[n=""]::before, room c[n=""]::before, room d[n=""]::before { display: none; }
room i1::after, room i2::after, room i3::after, room i4::after { content: ''; display: block; width: 65px; height: 65px; background-size: contain; background-position: bottom center; background-repeat: no-repeat; order: -2; margin-bottom: 4px; transition: transform 0.2s ease, filter 0.2s ease; }
room i1:hover::after, room i2:hover::after, room i3:hover::after, room i4:hover::after { transform: scale(1.1); }
room [n=""]::after, room [n="无"]::after { display: none !important; }

op { padding: 2px 8px; font-size: 11px; cursor: pointer; margin-top: 2px; }
room cha { position: absolute; top: 50%; right: 25%; transform: translate(50%, -40%); z-index: 5; }
room cha::after { content: attr(data-tip); position: absolute; bottom: -25px; top: auto; left: 50%; transform: translateX(-50%); font-size: 10px; padding: 2px 6px; white-space: nowrap; opacity: 0; pointer-events: none; transition: 0.2s; }
room cha:hover::after { opacity: 1; bottom: -30px; top: auto; }
room npc { position: absolute; top: 50%; left: 25%; transform: translate(-50%, -40%); z-index: 4; font-weight: bold; }
room npc:hover, room cha:hover { z-index: 99 !important; }
room cha::before, room npc::before { content: ''; position: absolute; inset: 0; background-size: 100% 100%; background-position: center; background-repeat: no-repeat; z-index: -1; opacity: 0.8; pointer-events: none; }
room avt { display: block; position: relative; width: 160px; aspect-ratio: 1 / 1; background-size: contain; background-position: bottom center; background-repeat: no-repeat; }
room avt[large] { width: 280px; margin-top: -60px; }
@keyframes entityBreathe { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.025); } }
room pc { animation: entityBreathe 3.5s ease-in-out infinite; transform-origin: center 90%; }
room avt { animation: entityBreathe 3.5s ease-in-out infinite; transform-origin: bottom center; }
room say { display: block; position: absolute; z-index: 14; max-width: 220px; padding: 6px 10px; font-size: 12px; text-align: center; word-wrap: break-word; pointer-events: none; opacity: 0; animation: bubbleFadeIn 0.3s ease forwards; }
@keyframes bubbleFadeIn { from { opacity: 0; margin-top: 5px; } to { opacity: 1; margin-top: 0; } }
room say[pc] { bottom: calc(50% + 80px); right: 90px; transform: none; }
room say[npc] { top: calc(50% + 80px); left: 90px; transform: none; }
room say::after { content: ''; position: absolute; border: 6px solid transparent; }
room say[pc]::after { top: 100%; left: auto; right: 32px; transform: none; }
room say[npc]::after { bottom: 100%; left: 32px; right: auto; transform: none; }

/* 独立区域标题板与悬浮情报 */
tt { display: flex; justify-content: center; align-items: center; position: absolute; top: 15px; left: 50%; transform: translateX(-50%); width: max-content; max-width: 50%; font-size: 14px; font-weight: bold; padding: 6px 20px; z-index: 16; white-space: nowrap; }
tt::after { content: " ▼"; font-size: 14px; margin-left: 8px; }
tt v { position: absolute; top: calc(100% + 10px); left: 50%; width: 512px; max-width: 90vw; padding: 15px; opacity: 0; visibility: hidden; transform: translate(-50%, -10px); transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); text-align: left; font-weight: normal; font-size: 13px; white-space: normal; }
tt:hover v { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
tt v ti { display: block; font-size: 16px; font-weight: bold; margin-bottom: 8px; padding-bottom: 6px; }
tt v tx { display: block; margin-bottom: 6px; line-height: 1.6; }
tt v tx:first-of-type { font-weight: bold; } tt v tx:last-child { margin-bottom: 0; }
tt v qt { 
    display: block; 
    margin: 12px -11px; 
    padding: 10px 12px; 
    border: 1px solid transparent; 
    border-radius: 4px; 
    font-size: 12px; 
    line-height: 1.6; 
    position: relative; 
}
/* 自动生成任务栏标题 */
tt v qt::before { 
    content: "📜 任务目标"; 
    display: block; 
    font-weight: bold; 
    font-size: 13px; 
    margin-bottom: 6px; 
    padding-bottom: 4px; 
    border-bottom: 1px dashed transparent; 
}
/* 核心修复：接管所有文本子节点的换行职责 */
tt v qt > * { 
    display: block;  /* 让内部的文字节点也变成块级，确保换行生效 */
    line-height: 1.6;
    margin-bottom: 4px;
}
tt v qt > *:last-child { 
    margin-bottom: 0; /* 最后一个任务项不需要下边距 */
}

/* 悬浮交互面板 (dt) */
room dt { position: absolute; width: 180px; padding: 10px; z-index: 50; opacity: 0; visibility: hidden; pointer-events: none; transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; cursor: default; }
room i1 dt, room i3 dt { left: -10px; } room i2 dt, room i4 dt { right: -10px; }
room i1 dt, room i2 dt { top: calc(100% + 5px); transform: translateY(-10px); }
room i3 dt, room i4 dt { bottom: calc(100% + 5px); transform: translateY(10px); }
room i1:hover dt, room i2:hover dt, room i3:hover dt, room i4:hover dt { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
room dt tx { width: 100%; font-size: 12px; line-height: 1.4; text-align: left; }
room dt tx:nth-of-type(2) { font-size: 11px; font-weight: bold; padding-bottom: 6px; margin-bottom: 2px; }
room dt op { width: calc(50% - 3px); margin: 0; text-align: center; box-sizing: border-box; padding: 4px 0; }

room npc dt { position: absolute; bottom: calc(100% + 5px); left: 50%; transform: translate(-50%, 10px); width: 190px; padding: 10px; z-index: 50; opacity: 0; visibility: hidden; pointer-events: none; transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; cursor: default; }
room npc:hover dt { opacity: 1; visibility: visible; transform: translate(-50%, 0); pointer-events: auto; }
room npc dt tx { width: 100%; font-size: 12px; line-height: 1.4; text-align: left; }
room npc dt tx:nth-of-type(2) { font-weight: bold; padding: 6px 0; margin: 2px 0; }
room npc dt op { width: calc(50% - 3px); margin: 0; text-align: center; box-sizing: border-box; padding: 5px 0; }

/* --- 6. 状态栏骨架 --- */
.sl { margin-top: 15px; padding: 10px; max-height: 80px; overflow-y: auto; }
.sl:empty { display: none; }
.sl p { display: flex; align-items: baseline; margin: 0 0 6px 0; padding-bottom: 6px; font-size: 0.85em; line-height: 1.4; }
.sl p:last-child { margin-bottom: 0; padding-bottom: 0; }
.sl lb { width: auto; text-align: left; font-weight: bold; margin-right: 4px; flex-shrink: 0; }
.ig > v1::after, .ig > v2::after, .ig > v3::after, .ig > v4::after, .ig > v5::after, .ig > v6::after, .ig > v7::after { display: none; }

room npc ite {position: absolute; top: 50%; right: calc(100% - 15px); transform: translate(10px, -50%); width: 240px;
    max-height: 135px;
    overflow-y: auto;
    padding: 10px;
    z-index: 50;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: flex;
    flex-direction: column;
    cursor: default;
    text-align: left;
    font-size: 11px;
    line-height: 1.5;
}
room npc:hover ite { opacity: 1; visibility: visible; transform: translate(0, -50%); pointer-events: auto; }
room npc ite ti { display: block; font-size: 12px; font-weight: bold; padding-bottom: 6px; margin-bottom: 4px; }
/* 修复 NPC 物品栏中 itm 和 lt 的排版，解除 room lt 的绝对定位污染 */
room ite itm { 
    display: block; 
    margin-bottom: 6px; 
    padding-bottom: 6px; 
    border-bottom: 1px dashed transparent; 
    line-height: 1.4; 
    font-size: 11px; 
}
room ite itm:last-child { 
    border-bottom: none; 
    margin-bottom: 0; 
    padding-bottom: 0; 
}
room ite lt { 
    position: static !important; 
    transform: none !important; 
    display: inline !important; 
    padding: 0 !important; 
    background: transparent !important; 
    border: none !important; 
    box-shadow: none !important; 
    white-space: normal !important; 
    font-weight: bold;
}

/* --- 7. AVG 沉浸式故事模式 UI 骨架 (已修复定位穿透) --- */
story { display: block; width: 100%; margin-top: 15px; } /* 删除了 position: relative; 释放绝对定位 */
story input.cb-s, story input.lc { display: none; }
/* “查看故事”触发按钮：宽度对齐 room (512px)，强制居中 */
story input.cb-s + label {
    display: block; margin: 0 auto; width: 100%; max-width: 512px;
    padding: 10px 20px; text-align: center; cursor: pointer;
    border-radius: 2px; font-weight: bold; transition: all 0.2s; box-sizing: border-box;
}
story label.cls {position: absolute; display: none; bottom: calc(100% - 40px); left: calc(100% - 30px); font-size: 18px; cursor: pointer; z-index: 101; transition: 0.2s; padding: 0 0; width: 26px; text-align: center}

/* 状态机逻辑 */
story:has(input.cb-s:checked) win { display: flex; }
story:has(input.cb-s:checked) label.cls { display: block; }
story:has(input.cb-s:checked) input.cb-s + label { display: none; }
/* 故事窗口：基于整个气泡(.s01/.home)定位，完美覆盖当前区域 */
story win {
display: none; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
width: 100%; max-width: 750px; height: 100%; min-height: 350px;
z-index: 50; padding: 30px; box-sizing: border-box;
flex-direction: column; overflow-y: auto; border-radius: 8px;
}
/* --- 标题演出骨架 --- */
win tl {
    display: block; text-align: center; font-size: 22px; letter-spacing: 2px;
    margin-top: 120px; transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
win:has(label[ln] input:checked) tl {
    margin-top: 0; font-size: 14px; text-align: left; letter-spacing: 0; 
    margin-bottom: 20px; padding-bottom: 5px;
}
/* --- 核心状态机逻辑骨架 --- */
win label[ln] { display: none; margin-bottom: 15px; }
win label[ln]:first-of-type, win label[ln]:has(input:checked), win label[ln]:has(input:checked) + label[ln] { display: block; }
win label[ln]:has(input:checked) { pointer-events: none; }
win label[ln]:not(:has(input:checked)) l { display: none; }
/* --- 核心状态机逻辑骨架 --- */
win label[ln] { display: none; margin-bottom: 15px; }
win label[ln]:first-of-type, win label[ln]:has(input:checked), win label[ln]:has(input:checked) + label[ln] { display: block; }
win label[ln]:has(input:checked) { pointer-events: none; }
/* 隐形点击层 (终极修复版：完美兼容滚动与全屏点击) */
/* 1. 让当前激活的剧情块相对定位，并利用 flex-grow 填满下方所有剩余空间 */
win label[ln]:not(:has(input:checked)) {
    position: relative;
    flex-grow: 1; 
    cursor: pointer;
}
/* 2. 点击层向上无限拉伸覆盖历史记录，向右避开滚动条 */
win label[ln]:not(:has(input:checked))::before { 
    content: ''; 
    position: absolute; 
    top: -10000px;  /* 向上延伸一万像素，覆盖所有历史记录，且在 CSS 中不会产生向上的滚动条 */
    bottom: 0;      /* 向下和当前标签底部对齐（因为它已经 flex-grow 填满底部了） */
    left: -30px;    /* 向左覆盖掉 win 的 padding 空白 */
    right: 0;       /* 【关键】右侧设为 0，留出右侧 padding 区域，确保玩家可以正常用鼠标拖拽滚动条！ */
    z-index: 100; 
}
/* --- 打字机动画骨架 --- */
win l { display: block; font-size: 15px; line-height: 1.8; clip-path: inset(0 100% 0 0); }
win label[ln]:has(input:checked) l { animation: typeWriter 2s steps(40, end) forwards; }
win label[ln]:has(~ label[ln] input:checked) l { animation: none; clip-path: inset(0 0 0 0); }
@keyframes typeWriter { 0% { clip-path: inset(0 100% 0 0); } 100% { clip-path: inset(0 0 0 0); } }

/* --- 8. AVG 演出扩展与动态提示系统 (骨架) --- */
win cg { display: block; width: 100%; height: 256px; border-radius: 6px; margin: 15px 0; opacity: 0; overflow: hidden; }
win cg avt, win cg obj, win cg spe { display: block; width: 100% !important; height: 100% !important; background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important; }
win cg avt::after, win cg obj::after, win cg spe::after { content: ''; display: block; width: 100% !important; height: 100% !important; background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important; }
win label[ln]:has(input:checked) cg { animation: cgFadeIn 1s ease forwards; }
win label[ln]:has(~ label[ln] input:checked) cg { opacity: 0.4; filter: grayscale(60%); transform: scale(0.98); transition: all 0.5s; }
@keyframes cgFadeIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }

/* 动态头像视窗系统 (骨架) */
story win { padding-bottom: 140px !important; }
story avl, story avr { display: none; pointer-events: none; }
story:has(input.cb-s:checked) avl, story:has(input.cb-s:checked) avr { display: flex; position: absolute; bottom: 30px; width: 100px; height: 100px; border-radius: 50%; border: 3px solid transparent; overflow: hidden; z-index: 110; justify-content: center; align-items: center; transition: all 0.3s ease; }
story avl { left: 30px; }
story avr { right: 30px; }
story avl avt, story avr avt { display: block; width: 100%; height: 100%; background-size: cover; background-position: center 15%; background-repeat: no-repeat; flex-shrink: 0; transform: scale(1.7) translateY(-4%); transform-origin: top center; }
story avl pc, story avr pc { flex-shrink: 0; transform: scale(1.2) translateY(8%); transform-origin: top center; }

/* 动态剧情提示系统 (骨架) */
story input.cb-s + label { position: relative; }
story input.cb-s:not(:checked) + label::before { content: ''; position: absolute; bottom: calc(100% - 45px); left: -80px; width: 80px; height: 80px; background-size: contain; background-repeat: no-repeat; background-position: bottom center; pointer-events: none; z-index: 20; transform-origin: bottom center; animation: miaoPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards, miaoFloat 2s ease-in-out infinite alternate 0.5s; }
story input.cb-s:not(:checked) + label::after { content: '有新剧情喵！'; position: absolute; bottom: calc(100% + 45px); left: -119px; border: 2px solid transparent; padding: 6px 12px; border-radius: 12px 12px 0 12px; font-size: 13px; font-weight: bold; pointer-events: none; white-space: nowrap; z-index: 21; opacity: 0; transform-origin: bottom left; animation: bubblePop 0.4s 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; }
@keyframes miaoPop { 0% { transform: scale(0) translateY(20px); opacity: 0; } 100% { transform: scale(1) translateY(0); opacity: 1; } }
@keyframes miaoFloat { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }
@keyframes bubblePop { 0% { transform: scale(0); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
story input.cb-s:not(:checked) + label::before { background-image: url('https://i.postimg.cc/4xQYtz2x/miao-wang-ti-shi.png'); }

/* ==========================================================================
   【移动端特化装甲 V3】 - 修正排版逻辑与交互面板尺寸
   ========================================================================== */
@media (max-width: 768px) {
    /* 1. 顶部按钮重排：两个按钮刚好占满顶部 */
    tb { 
        display: flex !important; 
        width: 100% !important; 
        gap: 10px !important; 
        margin-bottom: 12px !important; 
        padding: 0 !important; 
        box-sizing: border-box !important; 
    }
    tb label { 
        flex: 1 !important; 
        text-align: center !important; 
        margin: 0 !important; 
        padding: 10px 0 !important; 
    }

    /* 2. 当前区域 (tt)：解除绝对定位，排在按钮下方 */
    tt { 
        position: relative !important; 
        top: auto !important; 
        left: auto !important; 
        transform: none !important; 
        width: 100% !important; 
        max-width: 100% !important; 
        margin: 0 0 15px 0 !important; 
        white-space: normal !important; 
        text-align: center !important; 
        box-sizing: border-box !important; 
    }
    tt v { width: 100% !important; left: 0 !important; transform: translateY(10px) !important; }
    tt:hover v { transform: translateY(0) !important; }

    /* 3. 玩家状态面板排版 (上立绘，下信息) */
    uc { flex-direction: column !important; align-items: center !important; gap: 10px !important; border-bottom: none !important; }
    ucl { transform: scale(0.95) !important; transform-origin: top center !important; margin: 0 !important; }
    /* 信息面板：预留底部空间给绝对定位的金币和属性点 */
    ucr { width: 100% !important; padding: 12px !important; padding-bottom: 35px !important; box-sizing: border-box !important; }
    /* 姓名和等级横向两端对齐 */
    nn { flex-direction: row !important; justify-content: space-between !important; align-items: flex-end !important; margin-bottom: 10px !important; width: 100% !important; }
    /* 属性点和金币横向排布在底部两端 */
    pp { position: absolute !important; bottom: 12px !important; left: 12px !important; font-size: 12px !important; margin: 0 !important; }
    fd { position: absolute !important; bottom: 12px !important; right: 12px !important; font-size: 12px !important; margin: 0 !important; }
    
    /* 属性值由一行7个改为一行4个 */
    .ig { grid-template-columns: repeat(4, 1fr) !important; gap: 6px !important; padding: 10px !important; }
    .ig > * { padding: 6px 2px !important; font-size: 11px !important; }

    /* 4. Room 本体放大，向外挤出贴平屏幕边缘 */
    room { 
        width: 97vw !important; 
        max-width: 97vw !important; 
        margin-left: -48.5vw !important; 
        left: 50% !important; 
        position: relative !important; 
        border-left: none !important; 
        border-right: none !important; 
        border-radius: 0 !important; 
        margin-bottom: 10px !important;
        margin-top: 5px !important;
    }

    /* 5. Room 内元素微调 */
    room cha { transform: translate(50%, -35%) !important; }
    room npc { transform: translate(-50%, -35%) !important; }
    room cha pc, room npc pc, room npc avt, room pc avt { transform: scale(0.75) !important; transform-origin: center bottom !important; }
    
    room i1 { top: 10px !important; left: 10px !important; }
    room i2 { top: 10px !important; right: 10px !important; }
    room i3 { bottom: 20px !important; left: 10px !important; }
    room i4 { bottom: 20px !important; right: 10px !important; }
    room i1::after, room i2::after, room i3::after, room i4::after { width: 45px !important; height: 45px !important; margin-bottom: 2px !important; }
    
    room say { max-width: 140px !important; font-size: 11px !important; padding: 6px 8px !important; }
    room say[pc] { bottom: calc(50% + 45px) !important; right: 55px !important; }
    room say[npc] { top: calc(50% + 85px) !important; left: 55px !important; }

    /* 6. NPC与交互面板 (dt & ite) 尺寸与位置修正 */
    /* 放宽 dt 菜单，恢复正常字号 */
    room dt { width: 175px !important; }
    room dt tx, room npc dt tx { font-size: 12px !important; line-height: 1.5 !important; }
    room i1 dt, room i3 dt { left: 0 !important; }
    room i2 dt, room i4 dt { right: 0 !important; left: auto !important; }
    room npc dt { 
        width: 220px !important; 
        right: auto !important; 
        left: calc(50% + 15px) !important; 
   }
    /* NPC 物品栏 (ite) 移至下方并放宽 */
    room npc ite { 
        width: 220px !important; 
        right: auto !important; 
        left: calc(50% + 15px) !important; 
        top: calc(100% + 5px) !important; 
        transform: translate(-50%, 10px) !important; 
    }
    room npc:hover ite { transform: translate(-50%, 0) !important; }

    /* 7. 地图面板防溢出 */
    .pmp > bd > * > v { width: 160px; z-index: 200; } 
    .pmp > bd > :nth-child(4n+1):hover > v, .pmp > bd > :nth-child(4n+2):hover > v { left: 0; transform: translate(0, 0); }
    .pmp > bd > :nth-child(4n+3):hover > v, .pmp > bd > :nth-child(4n):hover > v { left: auto; right: 0; transform: translate(0, 0); }

    /* 8. 🐱 喵望提示小人 (右下角 + 水平翻转) */
    story input.cb-s:not(:checked) + label::before { 
        left: -30px !important; /* 靠右侧排布 */
        bottom: calc(100% - 45px) !important; 
        width: 60px !important; 
        height: 60px !important; 
    }
    story input.cb-s:not(:checked) + label::after { display: none; }
    .pmp > bd > *::before { bottom: 5px; font-size: 13px; }

    /* ==========================================================================
       9. 玩家状态面板 (.ppp) 终极横向画卷重排 (完美悬浮防穿透版)
       ========================================================================== */
    /* 1. 外层相框：恢复绝对定位，完美覆盖按钮且不挤压下方内容 */
    .ppp { 
        position: absolute !important; /* 核心修复：恢复悬浮脱离文档流 */
        top: 0 !important;             /* 核心修复：强制置顶，完美盖住标签按钮 */
        z-index: 150 !important;       /* 确保层级最高 */
        width: 100vw !important; 
        max-width: 100vw !important; 
        left: 50% !important; 
        margin-left: -50vw !important; 
        overflow-x: hidden !important; /* 外层禁止横向滚动 */
        overflow-y: auto !important;   
        padding: 20px 15px 55px 15px !important; /* 顶部留点呼吸空间，底部留给关闭按钮 */
        box-sizing: border-box !important;
    }
    
    /* 关闭按钮：相对于外层相框定位，永远居中，且位于滚动轴下方 */
    .ppp .cls {
        position: absolute !important;
        bottom: 10px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        z-index: 1000 !important;
    }

    /* 2. 内层画卷：建立横向网格，接管横向滚动 */
    .ppp player {
        display: grid !important;
        /* 定义两列：左侧立绘区 130px，右侧信息区 310px。总宽约 450px */
        grid-template-columns: 130px 310px !important; 
        grid-template-rows: auto auto 1fr auto !important;
        gap: 10px !important;
        width: 100% !important; /* 占据外层视口宽度 */
        overflow-x: auto !important; /* 核心：让 player 自己产生横向滚动条 */
        -webkit-overflow-scrolling: touch; /* iOS 丝滑滚动 */
        padding-bottom: 10px !important; /* 给横向滚动条留出空间 */
    }

    /* 解除 uc 的包裹限制，让子元素直接参与外层 Grid 排版 */
    .ppp uc { display: contents !important; }

    /* 3. 立绘单占一列，跨越 3 行 */
    .ppp ucl {
        grid-column: 1 !important;
        grid-row: 1 / 4 !important;
        transform: scale(1.25) !important; 
        transform-origin: top center !important;
        margin: 0 auto !important;
    }
    .ppp ucl pc { top: 5% !important; bottom: auto !important; }

    /* 4. 角色信息 (ucr) 放在右上角 */
    .ppp ucr {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        padding: 12px !important;
        padding-bottom: 35px !important;
        box-sizing: border-box !important;
    }

    /* 5. 状态与背包依次排在 ucr 下方 */
    .ppp .sl {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        max-height: 90px !important; 
    }
    .ppp .inv {
        grid-column: 2 !important;
        grid-row: 3 !important;
        margin: 0 !important;
        max-height: 110px !important;
    }

    /* 6. 属性值 (ig) 铺满底部，恢复 7 个一行并支持自动换行 */
    .ppp .ig {
        grid-column: 1 / 3 !important; 
        grid-row: 4 !important;
        display: grid !important; 
        grid-template-columns: repeat(7, 1fr) !important; 
        gap: 6px !important; 
        padding: 10px !important;
        margin-top: 5px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .ppp .ig > * {
        width: auto !important; 
        padding: 6px 2px !important;
    }

    story avl { left: -20px; }
    story avr { right: -20px; }
}

/* --- 移动端专属喵望翻转动画 (需放在媒体查询内外皆可，建议紧跟其后) --- */
@keyframes miaoPopMobile {
    0% { transform: scaleX(-1) scaleY(0) translateY(20px); opacity: 0; }
    100% { transform: scaleX(-1) scaleY(1) translateY(0); opacity: 1; }
}
@keyframes miaoFloatMobile {
    0% { transform: scaleX(-1) translateY(0); }
    100% { transform: scaleX(-1) translateY(-5px); }
}


/* ==========================================================================
   【二】 全局贴图字典 (Asset Dictionary) - 存放所有图鉴和立绘URL
   ========================================================================== */
/* 纸娃娃字典 */
bh { background-color: currentColor; background-blend-mode: multiply; }
fh { background-color: currentColor; background-blend-mode: multiply; }
eye { background-color: currentColor; background-blend-mode: multiply; }
pc > bdy { background-image: url('https://i.postimg.cc/B6wyPzrY/su-ti.png'); } 
/* 表情 */
emo[kx] { background-image: url('https://i.postimg.cc/BZVByGgq/kai-xin.png'); }
emo[qy] { background-image: url('https://i.postimg.cc/tRMNfH5y/qie-yi.png'); }
emo[yh] { background-image: url('https://i.postimg.cc/HWh9KC2d/yi-huo.png'); }
emo[lh] { background-image: url('https://i.postimg.cc/Nf2kvPNW/lian-hong.png'); }
/* 前发 */
fh[F01] { background-image: url('https://i.postimg.cc/8CNx2Mdb/qian-fa1.png'); -webkit-mask-image: url('https://i.postimg.cc/8CNx2Mdb/qian-fa1.png'); mask-image: url('https://i.postimg.cc/8CNx2Mdb/qian-fa1.png'); }
fh[F02] { background-image: url('https://i.postimg.cc/Yqg2VHk2/qian-fa2.png'); -webkit-mask-image: url('https://i.postimg.cc/Yqg2VHk2/qian-fa2.png'); mask-image: url('https://i.postimg.cc/Yqg2VHk2/qian-fa2.png'); } /* 前发2 */
fh[F03] { background-image: url('https://i.postimg.cc/KvLcV2Fv/qian-fa3.png'); -webkit-mask-image: url('https://i.postimg.cc/KvLcV2Fv/qian-fa3.png'); mask-image: url('https://i.postimg.cc/KvLcV2Fv/qian-fa3.png'); } /* 前发3 */
/* 后发 */
bh[B01] { background-image: url('https://i.postimg.cc/fR4Gv6JG/hou-fa1.png'); -webkit-mask-image: url('https://i.postimg.cc/fR4Gv6JG/hou-fa1.png'); mask-image: url('https://i.postimg.cc/fR4Gv6JG/hou-fa1.png'); }
bh[B02] { background-image: url('https://i.postimg.cc/qMnBYT0J/dan-ma-wei1.png'); -webkit-mask-image: url('https://i.postimg.cc/qMnBYT0J/dan-ma-wei1.png'); mask-image: url('https://i.postimg.cc/qMnBYT0J/dan-ma-wei1.png'); } /* 单马尾1 */
bh[B03] { background-image: url('https://i.postimg.cc/WpxbX3Rj/shuang-ma-wei1.png'); -webkit-mask-image: url('https://i.postimg.cc/WpxbX3Rj/shuang-ma-wei1.png'); mask-image: url('https://i.postimg.cc/WpxbX3Rj/shuang-ma-wei1.png'); } /* 双马尾1 */
bh[B04] { background-image: url('https://i.postimg.cc/xjBTtCrQ/shuang-ma-wei2.png'); -webkit-mask-image: url('https://i.postimg.cc/xjBTtCrQ/shuang-ma-wei2.png'); mask-image: url('https://i.postimg.cc/xjBTtCrQ/shuang-ma-wei2.png'); } /* 双马尾2 */
bh[B05] { background-image: url('https://i.postimg.cc/RVfC8B9M/duan-sui-fa1.png'); -webkit-mask-image: url('https://i.postimg.cc/RVfC8B9M/duan-sui-fa1.png'); mask-image: url('https://i.postimg.cc/RVfC8B9M/duan-sui-fa1.png'); } /* 短碎发1 */
bh[B06] { background-image: url('https://i.postimg.cc/Qx5NP3Dv/zhang-zhi-fa1.png'); -webkit-mask-image: url('https://i.postimg.cc/Qx5NP3Dv/zhang-zhi-fa1.png'); mask-image: url('https://i.postimg.cc/Qx5NP3Dv/zhang-zhi-fa1.png'); } /* 长直发1 */
bh[B07] { background-image: url('https://i.postimg.cc/8PWk3SG9/zhang-sui-fa1.png'); -webkit-mask-image: url('https://i.postimg.cc/8PWk3SG9/zhang-sui-fa1.png'); mask-image: url('https://i.postimg.cc/8PWk3SG9/zhang-sui-fa1.png'); } /* 长碎发1 */

/* 眼睛 */
eye[E01] { background-image: url('你的眼睛透明图.png'); -webkit-mask-image: url('你的眼睛透明图.png'); mask-image: url('你的眼睛透明图.png'); }
/* 上装 */
upper[wy1] { background-image: url('https://i.postimg.cc/TPvRzwQm/wei-yi1.png'); } 
upper[lyq1] { background-image: url('https://i.postimg.cc/NjjCNZKb/lian-yi-qun1.png'); } 
upper[tq1] { background-image: url('https://i.postimg.cc/9FJ2xbqV/fen-bai-tao-qun.png'); }
upper[hls1] { background-image: url('https://i.postimg.cc/CMGzJxnC/hei-se-lei-si-lian-yi-qun.png'); }
upper[ssq1] { background-image: url('https://i.postimg.cc/Bvt6g1XW/shui-shou-lian-yi-qun.png'); } /* 水手连衣裙 */
upper[zzq1] { background-image: url('https://i.postimg.cc/zD7sJ2xB/zhen-zhi-lian-yi-qun.png'); } /* 针织连衣裙 */
upper[tq2] { background-image: url('https://i.postimg.cc/fWCGwq8y/huang-bai-tao-qun.png'); } /* 黄白套裙 */
upper[tnl1] { background-image: url('https://i.postimg.cc/KYtHwJnL/tu-nu-lang-lian-ti-yi.png'); } 
/* 下装 */
lower[dbw1] { background-image: url('https://i.postimg.cc/NjHsCT8Y/dan-bian-bai-wa.png'); }
lower[jw1] { background-image: url('https://i.postimg.cc/65YKHcGB/jiao-wa1.png'); }
lower[wzw1] { background-image: url('https://i.postimg.cc/v8rcXZx5/bu-dui-cheng-diao-dai-wang-wa.png'); }
lower[dw1] { background-image: url('https://i.postimg.cc/XYsqdgNk/duan-wa.png'); } /* 短袜 */
lower[hs1] { background-image: url('https://i.postimg.cc/9fynKJGG/hei-si-guo-xi-wa.png'); }
/* 鞋子 */
shoe[xbx1] { background-image: url('https://i.postimg.cc/9Xdr1Qww/xiao-bai-xie.png'); }
shoe[xpx1] { background-image: url('https://i.postimg.cc/c1RrTLtY/xiao-pi-xie.png'); }
shoe[mlz1] { background-image: url('https://i.postimg.cc/25JMf7q1/bang-dai-ma-li-zhen.png'); }
/* 配饰 */
acc[xfj1] { background-image: url('https://i.postimg.cc/Gp92Qs9J/X-fa-jia.png'); } /* X发夹 */
acc[ww1] { background-image: url('https://i.postimg.cc/Mp9HVYZy/wa-wa-gua-shi.png'); } /* 娃娃挂饰 */
acc[sq1] { background-image: url('https://i.postimg.cc/Jzp0ZQ7j/shou-qiang-gua-shi.png'); } /* 手枪挂饰 */
acc[axj1] { background-image: url('https://i.postimg.cc/W4t3nJt5/ai-xin-fa-jia.png'); } /* 爱心发夹 */
acc[yz1] { background-image: url('https://i.postimg.cc/bwmrkRYb/ai-xin-yan-zhao.png'); z-index: 5; } /* 爱心眼罩 */
acc[th1] { background-image: url('https://i.postimg.cc/d0D1BTDg/pi-zhi-tui-huan.png'); } /* 皮质腿环 */
acc[th2] { background-image: url('https://i.postimg.cc/xdqCRbqx/lei-si-tui-huan.png'); } /* 蕾丝腿环 */
acc[hdj1] { background-image: url('https://i.postimg.cc/MGXTDjXY/hu-die-jie-fa-shi.png'); } /* 蝴蝶结发饰1 */
acc[hdj2] { background-image: url('https://i.postimg.cc/kgTGKyMh/hu-die-jie-fa-shi2.png'); } /* 蝴蝶结发饰2 */
acc[med1] { background-image: url('https://i.postimg.cc/1z4tHN40/mao-er-duo.png'); z-index: 5; }/* 猫耳朵（降低图层至前发之下） */
acc[ckt1] { background-image: url('https://i.postimg.cc/c1ksSTq0/chuang-ke-tie1.png'); z-index: 5; } 
acc[xgb1] { background-image: url('https://i.postimg.cc/Dfp2T5Vf/xiao-gua-bao.png'); } 
acc[mz1] { background-image: url('https://i.postimg.cc/7YCqY7DS/mao-zi1.png'); } 
acc[axmj1] { background-image: url('https://i.postimg.cc/VsZY84yd/ai-xin-mo-jing.png'); } 
acc[lsyz1] { background-image: url('https://i.postimg.cc/BZ7q0NWx/lei-si-yan-zhao.png'); z-index: 5; } 
acc[zzm1] { background-image: url('https://i.postimg.cc/VLSzLM1b/zhen-zhi-mao.png'); } 
acc[ysm1] { background-image: url('https://i.postimg.cc/DyW7ysFm/ya-she-mao1.png'); } 
acc[hskz1] { background-image: url('https://i.postimg.cc/WpY2vSR3/hei-se-kou-zhao.png'); z-index: 5; } 
acc[ted1] { background-image: url('https://i.postimg.cc/g03TQNv8/tu-er-duo.png'); z-index: 5; } 
acc[lj1] { background-image: url('https://i.postimg.cc/jjyFmZzy/tu-nu-lang-ling-jie.png'); z-index: 5; } 

/* 场景物品字典 */
[n="大宝箱"]::after { background-image: url('https://i.postimg.cc/SNRYkkzd/da-bao-xiang.png'); }
[n="大骨堆"]::after { background-image: url('https://i.postimg.cc/zXvH88Rp/da-gu-dui.png'); }
[n="头骨蜡烛"]::after { background-image: url('https://i.postimg.cc/pXShd4fL/tou-gu-la-zhu.png'); }
[n="封死的陶罐"]::after { background-image: url('https://i.postimg.cc/PrJvTT84/feng-si-de-tao-guan.png'); }
[n="小宝箱"]::after { background-image: url('https://i.postimg.cc/bw2GSggh/xiao-bao-xiang.png'); }
[n="小骨堆"]::after { background-image: url('https://i.postimg.cc/XYyZBLL3/xiao-gu-dui.png'); }
[n="废料箱"]::after { background-image: url('https://i.postimg.cc/Hsn8dd7S/fei-liao-xiang.png'); }
[n="沾血的桌子"]::after { background-image: url('https://i.postimg.cc/T3Wy500R/zhan-xue-de-zhuo-zi.png'); }
[n="熄灭的火把"]::after { background-image: url('https://i.postimg.cc/XYyZBLLS/xi-mie-de-huo-ba.png'); }
[n="熄灭的陶罐灯"]::after { background-image: url('https://i.postimg.cc/9f2TF17N/xi-mie-de-tao-guan-deng.png'); }
[n="燃烧的火把"]::after { background-image: url('https://i.postimg.cc/zfKZMRdX/ran-shao-de-huo-ba.png'); }
[n="破损的陶罐"]::after { background-image: url('https://i.postimg.cc/Pr7pq9Ws/po-sun-de-tao-guan.png'); }
[n="破旧的木架"]::after { background-image: url('https://i.postimg.cc/tCcZgwhK/po-jiu-de-mu-jia.png'); }
[n="碎石堆"]::after { background-image: url('https://i.postimg.cc/xTZJdhvf/sui-shi-dui.png'); }
[n="神秘的宝箱"]::after { background-image: url('https://i.postimg.cc/ncWjLg4V/shen-mi-de-bao-xiang.png'); }
[n="神秘的石板"]::after { background-image: url('https://i.postimg.cc/kXH65zQq/shen-mi-de-shi-ban.png'); }
[n="空笼子"]::after { background-image: url('https://i.postimg.cc/sDLQ2qpN/kong-long-zi.png'); }
[n="符文石碑"]::after { background-image: url('https://i.postimg.cc/ZKnv44yg/fu-wen-shi-bei.png'); }
[n="诡异的墓碑"]::after { background-image: url('https://i.postimg.cc/3Jq4wVgb/gui-yi-de-mu-bei.png'); }
[n="诡异的旗帜"]::after { background-image: url('https://i.postimg.cc/HsNcLRQv/gui-yi-de-qi-zhi.png'); }
[n="高挑的陶罐"]::after { background-image: url('https://i.postimg.cc/YqPGSZ1n/gao-tiao-de-tao-guan.png'); }
[n="发光的传送法阵"]::after { background-image: url('https://i.postimg.cc/RCTF1MPg/fa-guang-de-chuan-song-fa-zhen.png'); }
[n="地窗"]::after { background-image: url('https://i.postimg.cc/3rZRjKL9/de-chuang.png'); } 
[n="奇怪的工作台"]::after { background-image: url('https://i.postimg.cc/sfJXPVnB/qi-guai-de-gong-zuo-tai.png'); }
[n="女巫汤锅"]::after { background-image: url('https://i.postimg.cc/gcKJyYMH/nu-wu-tang-guo.png'); }
[n="拉闸开关"]::after { background-image: url('https://i.postimg.cc/ry9mG8hW/la-zha-kai-guan.png'); }
[n="散落的碎石砖"]::after { background-image: url('https://i.postimg.cc/05CQG8tt/san-luo-de-sui-shi-zhuan.png'); }
[n="木桶"]::after { background-image: url('https://i.postimg.cc/CM41CFv8/mu-tong.png'); }
[n="染血的小石桌"]::after { background-image: url('https://i.postimg.cc/QxxM0RPm/ran-xue-de-xiao-shi-zhuo.png'); }
[n="污浊的水台"]::after { background-image: url('https://i.postimg.cc/tRzTdXrh/wu-zhuo-de-shui-tai.png'); }
[n="燃烧的篝火盆"]::after { background-image: url('https://i.postimg.cc/RFrQbkjH/ran-shao-de-gou-huo-pen.png'); }
[n="破损的石柱"]::after { background-image: url('https://i.postimg.cc/Nff0pWVb/po-sun-de-shi-zhu.png'); }
[n="破旧的鸟笼"]::after { background-image: url('https://i.postimg.cc/hvMtKrzR/po-jiu-de-niao-long.png'); }
[n="神秘的石拱门"]::after { background-image: url('https://i.postimg.cc/RVV0Xj8X/shen-mi-de-shi-gong-men.png'); }
[n="立着的棺材"]::after { background-image: url('https://i.postimg.cc/RCTF1MPV/li-zhe-de-guan-cai.png'); }
[n="精致的书架"]::after { background-image: url('https://i.postimg.cc/Kc5z7Z9c/jing-zhi-de-shu-jia.png'); }
[n="紧闭的小门"]::after { background-image: url('https://i.postimg.cc/G3j2PcMq/jin-bi-de-xiao-men.png'); }
[n="紧闭的木门"]::after { background-image: url('https://i.postimg.cc/gcKJyYM6/jin-bi-de-mu-men.png'); }
[n="迷你宝箱"]::after { background-image: url('https://i.postimg.cc/1XM3yHgk/mi-ni-bao-xiang.png'); }
[n="隧道入口"]::after { background-image: url('https://i.postimg.cc/nV1zKHdB/sui-dao-ru-kou.png'); }
[n="会所"]::after { background-image: url('https://i.postimg.cc/gj6SVgWj/hui-suo.png'); }
[n="公会"]::after { background-image: url('https://i.postimg.cc/5jdPn84R/gong-hui.png'); }
[n="咖啡店"]::after { background-image: url('https://i.postimg.cc/pyb0qKWS/ka-fei-dian.png'); }
[n="学院"]::after { background-image: url('https://i.postimg.cc/Bb1YTm06/xue-yuan.png'); }
[n="旅店"]::after { background-image: url('https://i.postimg.cc/yxSQmLH9/lu-dian.png'); }
[n="道具店"]::after { background-image: url('https://i.postimg.cc/pyb0qKWJ/dao-ju-dian.png'); }
[n="酒馆"]::after { background-image: url('https://i.postimg.cc/23RH2nkG/jiu-guan.png'); }
[n="铁匠铺"]::after { background-image: url('https://i.postimg.cc/QVG60c8Q/tie-jiang-pu.png'); }
[n="餐厅"]::after { background-image: url('https://i.postimg.cc/vT6qr0s1/can-ting.png'); }
[n="黑市"]::after { background-image: url('https://i.postimg.cc/jC08Zyxz/hei-shi.png'); }
[n="燃烧的陶罐灯"]::after { background-image: url('https://i.postimg.cc/5tJvNpCR/ran-shao-de-tao-guan-deng.png'); }
[n="熄灭的篝火盆"]::after { background-image: url('https://i.postimg.cc/PqHZrKw6/xi-mie-de-gou-huo-pen.png'); }
[n="破旧木床"]::after { background-image: url('https://i.postimg.cc/FsQJxDPR/po-jiu-mu-chuang.png'); }
[n="书桌"]::after { background-image: url('https://i.postimg.cc/X7CzMbBy/shu-zhuo.png'); }
[n="公告板"]::after { background-image: url('https://i.postimg.cc/L8F02bjX/gong-gao-ban.png'); }
[n="咖啡桌"]::after { background-image: url('https://i.postimg.cc/RVHDrBJ6/ka-fei-zhuo.png'); }
[n="商铺摊位"]::after { background-image: url('https://i.postimg.cc/9F7n3hwT/shang-pu-tan-wei.png'); }
[n="药剂架"]::after { background-image: url('https://i.postimg.cc/Bnfw4V2v/yao-ji-jia.png'); }
[n="铁砧"]::after { background-image: url('https://i.postimg.cc/fT9r4NSS/tie-zhen.png'); }
[n="门"]::after { background-image: url('https://i.postimg.cc/bwfFpB1r/men.png'); }
[n="餐桌"]::after { background-image: url('https://i.postimg.cc/ncDP8J9D/can-zhuo.png'); }
[n="保险箱"]::after { background-image: url('https://i.postimg.cc/9fjxC1NG/bao-xian-xiang.png'); }
[n="奢华小桌"]::after { background-image: url('https://i.postimg.cc/rpLhMgYg/she-hua-xiao-zhuo.png'); }
[n="房间门"]::after { background-image: url('https://i.postimg.cc/0NqtPZHf/fang-jian-men.png'); }
[n="旅店前台"]::after { background-image: url('https://i.postimg.cc/N07dMTWp/lu-dian-qian-tai.png'); }
[n="板凳"]::after { background-image: url('https://i.postimg.cc/g0PMm4B3/ban-deng.png'); }
[n="淋浴间"]::after { background-image: url('https://i.postimg.cc/XvcsJFT8/lin-yu-jian.png'); }
[n="私人舞台"]::after { background-image: url('https://i.postimg.cc/d0KWwnS9/si-ren-wu-tai.png'); }
[n="私人隔间"]::after { background-image: url('https://i.postimg.cc/Xv024xDs/si-ren-ge-jian.png'); }
[n="货架"]::after { background-image: url('https://i.postimg.cc/s2RnsK07/huo-jia.png'); }
[n="道具架"]::after { background-image: url('https://i.postimg.cc/zfSxBW9x/dao-ju-jia.png'); }
[n="铁笼子"]::after { background-image: url('https://i.postimg.cc/vmdPbXSr/tie-long-zi.png'); }

/* 实体阴影与怪物字典 */
cha::before, npc::before { background-image: url('https://i.postimg.cc/yNwxSmRd/yin-ying.png'); }
avt[n="克苏鲁学者"] { background-image: url('https://i.postimg.cc/JzzSjS3P/ke-su-lu-xue-zhe.png'); }
avt[n="克苏鲁眼球"] { background-image: url('https://i.postimg.cc/8zzxLxd4/ke-su-lu-yan-qiu.png'); }
avt[n="哥布林弓箭手"] { background-image: url('https://i.postimg.cc/KvNdkmTk/ge-bu-lin-gong-jian-shou.png'); }
avt[n="哥布林战士"] { background-image: url('https://i.postimg.cc/dVVgGgRZ/ge-bu-lin-zhan-shi.png'); }
avt[n="哥布林游侠"] { background-image: url('https://i.postimg.cc/Nf4W9QX7/ge-bu-lin-you-xia.png'); }
avt[n="哥布林祭司"] { background-image: url('https://i.postimg.cc/7YVpGqzT/ge-bu-lin-ji-si.png'); }
avt[n="哥布林窃贼"] { background-image: url('https://i.postimg.cc/KvNdkmT7/ge-bu-lin-qie-zei.png'); }
avt[n="巨大克苏鲁"] { background-image: url('https://i.postimg.cc/xC9tvzML/ju-da-ke-su-lu.png'); }
avt[n="恐惧史莱姆"] { background-image: url('https://i.postimg.cc/K88CtC7N/kong-ju-shi-lai-mu.png'); }
avt[n="毒液史莱姆"] { background-image: url('https://i.postimg.cc/VLR3rztN/du-ye-shi-lai-mu.png'); }
avt[n="毒液蜗牛"] { background-image: url('https://i.postimg.cc/WbnQFsZq/du-ye-wo-niu.png'); }
avt[n="牛头人战士"] { background-image: url('https://i.postimg.cc/Gmm6v6PW/niu-tou-ren-zhan-shi.png'); }
avt[n="牛头人首领"] { background-image: url('https://i.postimg.cc/Y9tb6WYY/niu-tou-ren-shou-ling.png'); }
avt[n="紫色恐惧史莱姆"] { background-image: url('https://i.postimg.cc/mgpJjVVd/zi-se-kong-ju-shi-lai-mu.png'); }
avt[n="结晶蜗牛"] { background-image: url('https://i.postimg.cc/sggb5bP9/jie-jing-wo-niu.png'); }
avt[n="蓝色恐惧史莱姆"] { background-image: url('https://i.postimg.cc/jSSByB6B/lan-se-kong-ju-shi-lai-mu.png'); }
avt[n="诡异的触手"] { background-image: url('https://i.postimg.cc/K88CtC7L/gui-yi-de-chu-shou.png'); }
avt[n="食人触手"] { background-image: url('https://i.postimg.cc/bww414Hc/shi-ren-chu-shou.png'); }
avt[n="骷髅战士"] { background-image: url('https://i.postimg.cc/mggK7K3p/ku-lou-zhan-shi.png'); }
avt[n="骷髅掘墓者"] { background-image: url('https://i.postimg.cc/2SSgngdH/ku-lou-jue-mu-zhe.png'); }
avt[n="骷髅探矿者"] { background-image: url('https://i.postimg.cc/RZZ2w21b/ku-lou-tan-kuang-zhe.png'); }
avt[n="骷髅流浪者"] { background-image: url('https://i.postimg.cc/BnnR2R5Y/ku-lou-liu-lang-zhe.png'); }
avt[n="骷髅长老"] { background-image: url('https://i.postimg.cc/XYYt9tKm/ku-lou-zhang-lao.png'); }
avt[n="鱼人"] { background-image: url('https://i.postimg.cc/kgYzswwT/yu-ren.png'); }
avt[n="黄金恐惧史莱姆"] { background-image: url('https://i.postimg.cc/rww757G5/huang-jin-kong-ju-shi-lai-mu.png'); }
avt[n="喵望"] { background-image: url('https://i.postimg.cc/WznJ7zLj/miao-wang.png'); }
avt[n="桃子"] { background-image: url('https://i.postimg.cc/Yq34MgZC/tao-zi.png'); }
avt[n="红钻石"] { background-image: url('https://i.postimg.cc/mr0k8SzN/hong-zuan-shi.png'); }
avt[n="斗篷神秘人"] { background-image: url('https://i.postimg.cc/DypV0k0B/dou-peng-shen-mi-ren.png'); }
avt[n="女盗贼"] { background-image: url('https://i.postimg.cc/jdc8dz8M/nu-dao-zei.png'); }
avt[n="塔拉塔拉"] { background-image: url('https://i.postimg.cc/wMmXfjT2/ta-la-ta-la.png'); }
avt[n="青金湖"] { background-image: url('https://i.postimg.cc/7h0rDjWB/qing-jin-hu.png'); }
avt[n="接待员小兔"] { background-image: url('https://i.postimg.cc/KcR9LMbD/jie-dai-yuan-xiao-tu.png'); }
avt[n="粉色人形史莱姆"] { background-image: url('https://i.postimg.cc/V6rKyJY8/fen-se-ren-xing-shi-lai-mu.png'); }
avt[n="蓝色人形史莱姆"] { background-image: url('https://i.postimg.cc/mDzmxPb4/lan-se-ren-xing-shi-lai-mu.png'); }

/* 【特殊角色特化】 - 高帽子/超高比例角色 (小教皇) */
avt[n="教皇"] { background-image: url('https://i.postimg.cc/sxCW2KWw/jiao-huang.png'); }
room avt[n="教皇"] { background-image: none !important; }
room avt[n="教皇"]::after { 
    content: ''; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    width: 100%; 
    height: 120%; /* 高度放大到180%，让帽子自然伸出容器顶部 */
    background-image: url('https://i.postimg.cc/sxCW2KWw/jiao-huang.png'); 
    background-size: contain; 
    background-position: bottom center; /* 锚点在底部，保证脚和其他角色在同一水平线 */
    background-repeat: no-repeat; 
    pointer-events: none; /* 关键：防止溢出的透明区域遮挡上方其他元素的点击 */
}
story avt[n="教皇"] { 
    background-size: 100% auto !important; 
    background-position: center 60% !important; /* 默认是15%，数值越大镜头越往下。如果觉得脸偏了可以微调这个 25% */
}

/* 特殊CG区 */
spe[n="正面前穴2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面前穴2.png'); }
spe[n="正面肛交1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面肛交1.png'); }
spe[n="事后流精"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/事后流精.png'); }
spe[n="正面前穴1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面前穴1.png'); }
spe[n="正面前穴小腹鼓胀"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面前穴小腹鼓胀.png'); }
spe[n="后位肛交2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后位肛交2.png'); }
spe[n="正面肛交2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面肛交2.png'); }
spe[n="事后后穴流精1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/事后后穴流精1.png'); }
spe[n="事后后穴流精2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/事后后穴流精2.png'); }
spe[n="后背前穴3"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后背前穴3.png'); }
spe[n="后背前穴1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后背前穴1.png'); }
spe[n="后位肛交1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后位肛交1.png'); }
spe[n="后背前穴2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后背前穴2.png'); }
spe[n="正面肛交3"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面肛交3.png'); }
spe[n="后位肛交3"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后位肛交3.png'); }
spe[n="后位肛交4"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/后位肛交4.png'); }
spe[n="正面舔柱身"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面舔柱身.png'); }
spe[n="正面深喉"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/正面深喉.png'); }
spe[n="侧面深喉2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/侧面深喉2.png'); }
spe[n="侧面含龟头"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/侧面含龟头.png'); }
spe[n="侧面舔龟头1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/侧面舔龟头1.png'); }
spe[n="侧面深喉1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/侧面深喉1.png'); }
spe[n="侧面舔龟头2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/侧面舔龟头2.png'); }
spe[n="乳首自慰2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/乳首自慰2.png'); }
spe[n="阴蒂按压"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/阴蒂按压.png'); }
spe[n="前穴自慰1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/前穴自慰1.png'); }
spe[n="掰穴"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/掰穴.png'); }
spe[n="乳首自慰1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/乳首自慰1.png'); }
spe[n="反面前穴自慰"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/反面前穴自慰.png'); }
spe[n="双穴自慰1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/双穴自慰1.png'); }
spe[n="前穴自慰2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/前穴自慰2.png'); }
spe[n="双穴自慰2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/双穴自慰2.png'); }
spe[n="极限巨触手双插1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/极限巨触手双插1.png'); }
spe[n="触手前穴小腹鼓胀"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手前穴小腹鼓胀.png'); }
spe[n="巨触手双穴1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手双穴插入1.png'); }
spe[n="触手双穴2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手双穴插入2.png'); }
spe[n="巨触手双穴2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手双穴插入2.png'); }
spe[n="巨触手前穴妊娠鼓胀1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手插入妊娠鼓胀1.png'); }
spe[n="巨触手前穴妊娠鼓胀2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手插入妊娠鼓胀2.png'); }
spe[n="触手前穴2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手前穴插入2.png'); }
spe[n="极限巨触手双插2"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/极限巨触手双插2.png'); }
spe[n="触手前穴1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手前穴插入1.png'); }
spe[n="触手双穴1"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手双穴插入1.png'); }
spe[n="巨触手双穴3"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手双穴插入3.png'); }
spe[n="触手双穴小腹鼓胀"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手双穴小腹鼓胀.png'); }
spe[n="巨触手双穴妊娠鼓胀"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手双穴妊娠鼓胀.png'); }
spe[n="触手一阴两肛三插"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/触手一阴两肛三重插入.png'); }
spe[n="触手后穴双插"] { background-image: url('https://file.garden/al8osHw2E2LRZo89/image/hcg/巨触手后穴双插.png'); }

/* 属性面板图标字典 */
[class^="s"] .ig > v1::before { background-image: url('https://i.postimg.cc/D0BrFHqV/zhan-li.png'); } 
[class^="s"] .ig > v2::before { background-image: url('https://i.postimg.cc/rFZ1H6VC/xing-dong.png'); } 
[class^="s"] .ig > v3::before { background-image: url('https://i.postimg.cc/wBLD37hc/jiao-she.png'); } 
[class^="s"] .ig > v4::before { background-image: url('https://i.postimg.cc/k5KWDBxs/mei-li.png'); } 
[class^="s"] .ig > v5::before { background-image: url('https://i.postimg.cc/3wm2Wdg9/ti-li.png'); } 
[class^="s"] .ig > v6::before { background-image: url('https://i.postimg.cc/85ddXjcC/zhi-li.png'); } 
[class^="s"] .ig > v7::before { background-image: url('https://i.postimg.cc/157Gdxmv/xing-yun.png'); }
[class^="s"] .ig > v1a::before { background-image: url('https://i.postimg.cc/3NZzVbr8/she-ji.png'); }
[class^="s"] .ig > v1a::after { display: none; }
[class^="s"] .ig > v1b::before { background-image: url('https://i.postimg.cc/nrx6dtxz/jin-zhan.png'); }
[class^="s"] .ig > v1b::after { display: none; }
[class^="s"] .ig > v1c::before { background-image: url('https://i.postimg.cc/D0cRHYfn/tou-zhi.png'); }
[class^="s"] .ig > v1c::after { display: none; }
[class^="s"] .ig > v1d::before { background-image: url('https://i.postimg.cc/Bb3dhG0z/an-sha.png'); }
[class^="s"] .ig > v1d::after { display: none; }
[class^="s"] .ig > v2a::before { background-image: url('https://i.postimg.cc/W3Cq5Qhb/qian-xing.png'); }
[class^="s"] .ig > v2a::after { display: none; }
[class^="s"] .ig > v2b::before { background-image: url('https://i.postimg.cc/bJWSmKsY/tou-qie.png'); }
[class^="s"] .ig > v2b::after { display: none; }
[class^="s"] .ig > v2c::before { background-image: url('https://i.postimg.cc/vBc6LQHV/sou-gua.png'); }
[class^="s"] .ig > v2c::after { display: none; }
[class^="s"] .ig > v2d::before { background-image: url('https://i.postimg.cc/k4BtFnXt/po-jie.png'); }
[class^="s"] .ig > v2d::after { display: none; }

/* ==========================================================================
   【三】 皮肤包：s01 暗黑地牢主题 (Theme s01) - 仅限颜色、背景、边框、阴影、字体
   ========================================================================== */
/* 纸娃娃特殊修饰 */
.s01 pc { border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.5); }

/* 基础UI颜色 */
.s01 { background-color: #120e0a; color: #d3cbb8; font-family: 'Georgia', serif; border: solid 2px #3a3022; box-shadow: inset 0 0 40px rgba(0,0,0,0.9); }
.s01 uc { border-bottom-color: #3a3022; }
.s01 ucr { background: rgba(0,0,0,0.4); border-color: #2a2015; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); border-radius: 4px; }
.s01 nn { border-bottom-color: #3a3022; color: #c5a059; text-shadow: 2px 2px 4px rgba(0,0,0,0.8); }
.s01 lv { color: #874B2F; text-shadow: 1px 1px 2px #000; }
.s01 fd { color: #a89f91; font-family: monospace; }
.s01 pp { color: #61D687; font-family: monospace; }

/* 状态条颜色 */
.s01 si { color: #a89f91; }
.s01 pb { background: #0a0a0a; border-color: #3a3022; box-shadow: inset 0 3px 6px rgba(0,0,0,0.9); border-radius: 2px; }
.s01 pf { border-radius: 0; }
.s01 pf[hp] { background: linear-gradient(180deg, #632D1E 0%, #874B2F 20%, #874B2F 80%, #632D1E 100%); }
.s01 pf[xp] { background: linear-gradient(180deg, #695221 0%, #917028 20%, #917028 80%, #695221 100%); }
.s01 sv { color: #fff; font-family: monospace; text-shadow: 1px 1px 2px #000; background: rgba(0, 0, 0, 0.55); border-radius: 2px; }

/* 网格属性颜色 */
.s01 .ig { background: rgba(0,0,0,0.4); border-color: #3a3022; border-radius: 2px; }
.s01 .ig > * { font-family: 'Georgia', serif; border-color: #4a3c27; background: rgba(20, 24, 28, 0.8); box-shadow: inset 0 0 5px rgba(0,0,0,0.8), 2px 2px 4px rgba(0,0,0,0.4); border-radius: 2px; }
.s01 .ig > *:hover { box-shadow: inset 0 0 10px rgba(0,0,0,0.9), 0 4px 8px rgba(0,0,0,0.6); }
.s01 .ig > *::before { background-color: #121417; border-color: #4a3c27; box-shadow: inset 0 0 4px rgba(0,0,0,0.8); background-image: repeating-linear-gradient(45deg, #1a1c20 0, #1a1c20 2px, #22252a 2px, #22252a 4px); border-radius: 2px; }
.s01 .ig > *::after { color: #5a4b31; font-family: monospace; text-shadow: 1px 1px 2px #000; }
/* v1-v3 属性配色 (金棕色调) */
.s01 .ig > v1, .s01 .ig > v2, .s01 .ig > v3 { background: linear-gradient(180deg, #382715, #2B1B0E); color: #d3cbb8; }
.s01 .ig > v1::before, .s01 .ig > v2::before, .s01 .ig > v3::before { border-color: #c5a059; }
/* v4-v7 属性配色 (灰黑色调) */
.s01 .ig > v4, .s01 .ig > v5, .s01 .ig > v6, .s01 .ig > v7 { background: linear-gradient(180deg, #303438, #1C2228); color: #a89f91; }
.s01 .ig > v4::before, .s01 .ig > v5::before, .s01 .ig > v6::before, .s01 .ig > v7::before { border-color: #8b7355; }

/* 物品清单颜色 */
.s01 .inv { background: rgba(0,0,0,0.6); border-color: #3a3022; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); border-radius: 2px; }
.s01 itm { border-bottom-color: #2a2015; color: #a89f91; }
.s01 lt { color: #8b7355; text-shadow: 1px 1px 1px #000; }
.s01 pn { background: #080605; border-color: #632D1E; font-family: monospace; color: #8a8174; box-shadow: 2px 2px 5px rgba(0,0,0,0.5); }
.s01 ti { color: #c5a059; }
.s01 d { color: #874B2F; background: rgba(135, 75, 47, 0.15); border-radius: 2px; }

/* 悬浮窗与地图外观 */
.s01 tb label { background: linear-gradient(180deg, #2a2d32, #1a1c20); border: 1px solid #5a4b31; color: #c5a059; border-radius: 2px; box-shadow: 2px 2px 5px rgba(0,0,0,0.6); }
.s01 tb label:hover { background: linear-gradient(180deg, #32363c, #22252a); color: #fff; border-color: #c5a059; }
.s01 .pmp, .s01 .ppp { background: #0b0d10; border: 2px solid #5a4b31; border-radius: 4px; box-shadow: 0 10px 40px rgba(0,0,0,0.95), inset 0 0 20px rgba(0,0,0,0.8); }
.s01 .cls { background: #2a2015; color: #c5a059; border: 1px solid #5a4b31; border-bottom: none; border-radius: 4px 4px 0 0; text-shadow: 1px 1px 2px #000; }
.s01 .cls:hover { background: #5a4b31; color: #fff; }

.s01 .pmp > bd { background: #080605 !important; border: none !important; box-shadow: inset 0 0 15px rgba(0,0,0,0.9) !important; }
.s01 .pmp > bd > * { background-image: url('https://i.postimg.cc/cJ3Q5Mfb/s01ge-zi.png'); border: 1px solid #3a3022; border-radius: 4px; font-family: monospace; color: rgba(201, 169, 130, 0.6); text-shadow: 1px 1px 2px #000; }
.s01 .pmp > bd > [u] { background-image: url('https://i.postimg.cc/nLK6f7J3/s01mi-wu.png'); border-color: #1a1c20; color: #586a8d; }
.s01 .pmp > bd > [u]::after { color: #4a3c27; }
.s01 .pmp > bd > [c] { border: 2px solid #c5a059; box-shadow: 0 0 10px rgba(197, 160, 89, 0.6) inset, 0 0 8px rgba(197, 160, 89, 0.4); }
.s01 .pmp > bd > [c]::after { filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8)); }

.s01 .pmp > bd > * > v { background: rgba(15, 10, 10, 0.95); border: 1px solid #5a4b31; border-radius: 4px; box-shadow: 0 10px 25px rgba(0,0,0,0.95), inset 0 0 15px rgba(135, 75, 47, 0.1); color: #a89f91; font-family: 'Georgia', serif; }
.s01 .pmp > bd > * > v ti { color: #c5a059; border-bottom: 1px dashed #3a3022; }
.s01 .pmp > bd > * > v tn { color: #c5a059; font-family: monospace; background: rgba(197, 160, 89, 0.08); border-radius: 2px; border: 1px solid rgba(197, 160, 89, 0.2); }
.s01 .pmp > bd > * > v tn[e] { color: #ff4444; background: rgba(255, 68, 68, 0.08); border-color: rgba(255, 68, 68, 0.2); }

/* 房间视觉中心外观 */
.s01 room { background-color: #111; background-image: url('https://file.garden/al8osHw2E2LRZo89/image/背景s01.png'); border: 2px solid #3a3022; border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,0.95); }
.s01 room lt { background: rgba(10, 12, 15, 0.85); color: #c5a059; border-bottom: 1px solid #5a4b31; border-radius: 0 0 4px 4px; }
.s01 room dn, .s01 room ds, .s01 room dw, .s01 room de { background: rgba(0, 0, 0, 0.7); color: #8b7355; font-family: monospace; border: 1px solid #3a3022; }
.s01 room dn:hover, .s01 room ds:hover, .s01 room dw:hover, .s01 room de:hover { color: #c5a059; border-color: #c5a059; background: rgba(0,0,0,0.9); }
.s01 room i1::before, .s01 room i2::before, .s01 room i3::before, .s01 room i4::before { color: #a89f91; text-shadow: 1px 1px 2px #000; }
.s01 room i1::after, .s01 room i2::after, .s01 room i3::after, .s01 room i4::after { filter: drop-shadow(0 5px 6px rgba(0,0,0,0.8)); }
.s01 room i1:hover::after, .s01 room i2:hover::after, .s01 room i3:hover::after, .s01 room i4:hover::after { filter: drop-shadow(0 8px 10px rgba(0,0,0,0.9)) brightness(1.2); }

.s01 op { background: rgba(20, 24, 28, 0.9); border: 1px solid #5a4b31; color: #c5a059; border-radius: 2px; }
.s01 op:hover { background: #c5a059; color: #000; }
.s01 room cha::after { background: rgba(0, 0, 0, 0.8); color: #61D687; font-family: monospace; border: 1px solid #3a3022; border-radius: 2px; }
.s01 room npc { color: transparent; text-shadow: none; }
.s01 room avt { filter: drop-shadow(0 5px 10px rgba(0,0,0,0.7)); }

/* 独立区域标题板与悬浮情报外观 */
.s01 tt { background: linear-gradient(180deg, #1a1c20, #0b0d10); border: 2px solid #5a4b31; border-radius: 4px; color: #c5a059; box-shadow: 0 4px 10px rgba(0,0,0,0.8), inset 0 1px 1px rgba(255,255,255,0.1); text-shadow: 1px 1px 2px #000; }
.s01 tt::after { color: #8b7355; }
.s01 tt v { background: rgba(11, 13, 16, 0.95); border: 1px solid #5a4b31; border-radius: 4px; box-shadow: 0 15px 30px rgba(0,0,0,0.95); color: #a89f91; text-shadow: none; }
.s01 tt v ti { color: #c5a059; border-bottom: 1px dashed #3a3022; text-shadow: 1px 1px 2px #000; }
.s01 tt v tx:first-of-type { color: #874B2F; font-family: monospace; }
/* s01 任务面板涂装 (暗黑血红色调) */
.s01 tt v qt { 
    background: rgba(25, 15, 15, 0.8); /* 微微泛红的底色，暗示危险 */
    border-color: #4a2c27; 
    color: #d3cbb8; 
    box-shadow: inset 0 0 10px rgba(0,0,0,0.6); 
}
.s01 tt v qt::before { 
    content: "⚔️ 探索目标"; /* 暗黑风替换图标与文案 */
    color: #d47d4c; 
    border-bottom-color: #3a3022; 
    text-shadow: 1px 1px 1px #000; 
}

/* 悬浮交互面板 (dt) 外观 */
.s01 room dt { background: rgba(11, 13, 16, 0.95); border: 1px solid #5a4b31; border-radius: 4px; box-shadow: 0 10px 25px rgba(0,0,0,0.95); }
.s01 room dt tx { color: #a89f91; text-shadow: none; }
.s01 room dt tx:nth-of-type(2) { color: #874B2F; font-family: monospace; border-bottom: 1px dashed #3a3022; }
/* --- 新增：气泡暗黑风涂装 --- */
.s01 room say { background: rgba(20, 24, 28, 0.95); border: 1px solid #c5a059; border-radius: 6px; color: #d3cbb8; box-shadow: 0 4px 10px rgba(0,0,0,0.8); text-shadow: 1px 1px 2px #000; }
.s01 room say[pc]::after { border-top-color: #c5a059; }
.s01 room say[npc]::after { border-bottom-color: #c5a059; }
/* --- 更新：NPC情报悬浮窗 (阵营区分) --- */
/* 1. 中立/友善 (默认 <dt>) - 采用暗金色调 */
.s01 room npc dt { background: rgba(15, 10, 10, 0.95); border: 1px solid #5a4b31; border-radius: 4px; box-shadow: 0 10px 25px rgba(0,0,0,0.95), inset 0 0 15px rgba(197, 160, 89, 0.1); }
.s01 room npc dt tx { color: #d3cbb8; text-shadow: none; }
.s01 room npc dt tx:nth-of-type(2) { color: #c5a059; font-family: monospace; border-top: 1px dashed #3a3022; border-bottom: 1px dashed #3a3022; padding: 6px 0; margin: 2px 0; }
.s01 room npc dt op { border-color: #5a4b31; color: #d3cbb8; background: rgba(20, 15, 10, 0.8); }
.s01 room npc dt op:hover { background: #c5a059; color: #000; border-color: #c5a059; }
/* 2. 敌对/警戒 (<dt e>) - 采用血红色调 */
.s01 room npc dt[e] { border-color: #874B2F; box-shadow: 0 10px 25px rgba(0,0,0,0.95), inset 0 0 15px rgba(135, 75, 47, 0.2); }
.s01 room npc dt[e] tx:nth-of-type(2) { color: #ff4444; border-top-color: #5a4b31; border-bottom-color: #5a4b31; }
.s01 room npc dt[e] op { border-color: #874B2F; background: rgba(30, 15, 15, 0.8); }
.s01 room npc dt[e] op:hover { background: #874B2F; color: #fff; border-color: #ff4444; }

/* 状态栏 (.sl) 外观 */
.s01 .sl { background: rgba(25, 15, 15, 0.6); border: 1px solid #4a2c27; border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); }
.s01 .sl p { border-bottom: 1px dashed #3a3022; color: #a89f91; }
.s01 .sl lb { color: #d47d4c; text-shadow: 1px 1px 1px #000; }
.s01 n { background: rgba(0,0,0,0.4); border: 1px solid #3a3022; }

.s01 room npc ite { background: rgba(15, 10, 10, 0.95); border: 1px solid #5a4b31; border-radius: 4px; box-shadow: 0 10px 25px rgba(0,0,0,0.95), inset 0 0 15px rgba(197, 160, 89, 0.1); color: #d3cbb8; }
.s01 room npc ite ti { color: #c5a059; border-bottom: 1px dashed #3a3022; text-shadow: 1px 1px 2px #000; }
/* 如果未来有敌对NPC(红名)，可以用 <ite e> 触发警告色 */
.s01 room npc ite[e] { border-color: #874B2F; box-shadow: 0 10px 25px rgba(0,0,0,0.95), inset 0 0 15px rgba(135, 75, 47, 0.2); }
.s01 room npc ite[e] ti { color: #ff4444; border-bottom-color: #5a4b31; }

/* --- AVG 故事模式涂装 (s01 暗黑地牢) --- */
.s01 story input.cb-s + label { background: linear-gradient(180deg, #1a1c20, #0b0d10); border: 2px solid #5a4b31; color: #c5a059; box-shadow: 0 4px 10px rgba(0,0,0,0.8); text-shadow: 1px 1px 2px #000; }
.s01 story input.cb-s + label:hover { background: linear-gradient(180deg, #2a2d32, #1a1c20); color: #fff; border-color: #c5a059; }
.s01 story label.cls { color: #888; text-shadow: 1px 1px 2px #000; border-radius: 0; border-bottom: 1px solid #5a4b31; }
.s01 story label.cls:hover { color: #ff4757; }
.s01 story win { background: rgba(11, 13, 16, 0.98); border: 2px solid #5a4b31; box-shadow: 0 10px 40px rgba(0,0,0,0.95), inset 0 0 20px rgba(0,0,0,0.8); }
.s01 win tl { color: #fff; text-shadow: 2px 2px 4px rgba(0,0,0,0.9); }
.s01 win:has(label[ln] input:checked) tl { color: #c5a059; border-bottom: 1px solid #3a3022; text-shadow: 1px 1px 2px #000; }
.s01 win l { color: #d3cbb8; text-shadow: 1px 1px 2px #000; }
.s01 win label[ln]:has(~ label[ln] input:checked) l { color: #6a5d4d; } /* 历史记录变暗 (暗金灰) */

/* --- AVG 演出扩展与提示系统涂装 (s01 暗黑地牢) --- */
.s01 win cg { box-shadow: 0 4px 15px rgba(0,0,0,0.6); }
.s01 story:has(input.cb-s:checked) avl, .s01 story:has(input.cb-s:checked) avr { border-color: #3a3022; background-color: #1a1c20; }
.s01 story:has(label[ln="l"]:has(input:checked):not(:has(~ label[ln] input:checked))) avl,
.s01 story:has(label[ln="r"]:has(input:checked):not(:has(~ label[ln] input:checked))) avr { border-color: #e8c37d; box-shadow: 0 0 20px 8px rgba(232, 195, 125, 0.5); }
.s01 story input.cb-s:not(:checked) + label::after { background: rgba(20, 24, 28, 0.95); color: #c5a059; border-color: #5a4b31; box-shadow: 0 4px 10px rgba(0,0,0,0.8); }


/* ==========================================================================
   【四】 皮肤包：home 城镇主题 (Theme home) - 温暖、安全的避风港
   ========================================================================== */
/* 纸娃娃特殊修饰 - 城镇里光线更柔和，加一点暖色光晕 */
.home pc { border-radius: 8px; box-shadow: 0 0 15px rgba(212, 184, 114, 0.15); }

/* 基础UI颜色 - 偏向温暖的深色木质和羊皮纸色调 */
.home { background-color: #1e1814; color: #e8dcc7; font-family: 'Georgia', serif; border: solid 2px #5c4a3d; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.home uc { border-bottom-color: #5c4a3d; }
.home ucr { background: rgba(25, 20, 15, 0.6); border-color: #4a3a2a; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); border-radius: 4px; }
.home nn { border-bottom-color: #5c4a3d; color: #d4b872; text-shadow: 1px 1px 2px rgba(0,0,0,0.8); }
.home lv { color: #a67c52; text-shadow: 1px 1px 2px #000; }
.home fd { color: #c4b7a6; font-family: monospace; font-weight: bold; }
.home pp { color: #73e699; font-family: monospace; font-weight: bold; }

.home si { color: #c4b7a6; }
.home pf[hp] { background: linear-gradient(180deg, #a34931 0%, #c96649 20%, #c96649 80%, #a34931 100%); border-radius: 2px; }
.home pf[xp] { background: linear-gradient(180deg, #2d5a40 0%, #3e825a 20%, #3e825a 80%, #2d5a40 100%); border-radius: 2px; }
.home pb { background: #14100c; border-color: #5c4a3d; box-shadow: inset 0 2px 5px rgba(0,0,0,0.8); border-radius: 4px; }
.home sv { color: #fff; font-family: monospace; text-shadow: 1px 1px 2px #000; background: rgba(0, 0, 0, 0.4); border-radius: 4px; }

/* 网格属性颜色 */
.home .ig { background: rgba(25, 20, 15, 0.6); border-color: #5c4a3d; border-radius: 4px; }
.home .ig > * { font-family: 'Georgia', serif; border-color: #6e5846; background: rgba(35, 28, 22, 0.8); box-shadow: inset 0 0 5px rgba(0,0,0,0.5), 2px 2px 4px rgba(0,0,0,0.3); border-radius: 4px; }
.home .ig > *:hover { box-shadow: inset 0 0 10px rgba(212, 184, 114, 0.25), 0 4px 8px rgba(0,0,0,0.5); border-color: #d4b872; transform: translateY(-2px); }
.home .ig > *::before { background-color: #1f1915; border-color: #6e5846; box-shadow: inset 0 0 4px rgba(0,0,0,0.6); background-image: none; border-radius: 2px; }
.home .ig > *::after { color: #a68a68; font-family: monospace; }
/* 属性配色适配城镇 */
.home .ig > v1, .home .ig > v2, .home .ig > v3 { background: linear-gradient(180deg, #4a3624, #362618); color: #e8dcc7; }
.home .ig > v4, .home .ig > v5, .home .ig > v6, .home .ig > v7 { background: linear-gradient(180deg, #3d4248, #2a2d32); color: #c4b7a6; }
/* 为 home 容器单独挂载图标字典 */
.home .ig > v1::before { background-image: url('https://i.postimg.cc/D0BrFHqV/zhan-li.png'); } 
.home .ig > v2::before { background-image: url('https://i.postimg.cc/rFZ1H6VC/xing-dong.png'); } 
.home .ig > v3::before { background-image: url('https://i.postimg.cc/wBLD37hc/jiao-she.png'); } 
.home .ig > v4::before { background-image: url('https://i.postimg.cc/k5KWDBxs/mei-li.png'); } 
.home .ig > v5::before { background-image: url('https://i.postimg.cc/3wm2Wdg9/ti-li.png'); } 
.home .ig > v6::before { background-image: url('https://i.postimg.cc/85ddXjcC/zhi-li.png'); } 
.home .ig > v7::before { background-image: url('https://i.postimg.cc/157Gdxmv/xing-yun.png'); }
.home .ig > v1a::before { background-image: url('https://i.postimg.cc/3NZzVbr8/she-ji.png'); }
.home .ig > v1b::before { background-image: url('https://i.postimg.cc/nrx6dtxz/jin-zhan.png'); }
.home .ig > v1c::before { background-image: url('https://i.postimg.cc/D0cRHYfn/tou-zhi.png'); }
.home .ig > v1d::before { background-image: url('https://i.postimg.cc/Bb3dhG0z/an-sha.png'); }
.home .ig > v2a::before { background-image: url('https://i.postimg.cc/W3Cq5Qhb/qian-xing.png'); }
.home .ig > v2b::before { background-image: url('https://i.postimg.cc/bJWSmKsY/tou-qie.png'); }
.home .ig > v2c::before { background-image: url('https://i.postimg.cc/vBc6LQHV/sou-gua.png'); }
.home .ig > v2d::before { background-image: url('https://i.postimg.cc/k4BtFnXt/po-jie.png'); }
/* 隐藏衍生属性的“待装配”文字 */
.home .ig > v1a::after, .home .ig > v1b::after, .home .ig > v1c::after, .home .ig > v1d::after, 
.home .ig > v2a::after, .home .ig > v2b::after, .home .ig > v2c::after, .home .ig > v2d::after { display: none; }

/* 物品清单颜色 */
.home .inv { background: rgba(25, 20, 15, 0.8); border-color: #5c4a3d; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); border-radius: 4px; }
.home itm { border-bottom-color: #4a3a2a; color: #c4b7a6; }
.home lt { color: #a68a68; text-shadow: 1px 1px 1px #000; }
.home pn { background: #1a1511; border-color: #d4b872; font-family: 'Georgia', serif; color: #e8dcc7; box-shadow: 2px 2px 8px rgba(0,0,0,0.4); border-radius: 4px; }
.home ti { color: #d4b872; border-bottom: 1px dashed #5c4a3d; padding-bottom: 4px; }
.home d { color: #d4b872; background: rgba(212, 184, 114, 0.15); border-radius: 4px; border: 1px solid #7a634d; }

/* 悬浮窗与地图外观 (核心修改：强制横向排列) */
.home tb label { background: linear-gradient(180deg, #3d3126, #2a221a); border: 1px solid #7a634d; color: #d4b872; border-radius: 4px; box-shadow: 2px 2px 5px rgba(0,0,0,0.4); }
.home tb label:hover { background: linear-gradient(180deg, #4a3c2e, #362b22); color: #fff; border-color: #d4b872; }
.home .pmp, .home .ppp { background: #1a1511; border: 2px solid #7a634d; border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,0.8), inset 0 0 20px rgba(0,0,0,0.6); }
.home .cls { background: #362b22; color: #d4b872; border: 1px solid #7a634d; border-radius: 0; }
.home .cls:hover { background: #7a634d; color: #fff; }

/* 城镇导航栏排版 - 覆盖原有的 Grid，改为居中的 Flex 横向排列 */
.home .pmp > bd { background: #14100c !important; border: none !important; box-shadow: inset 0 0 15px rgba(0,0,0,0.8) !important; display: flex !important; justify-content: center; flex-wrap: wrap; gap: 15px !important; }
/* 植入你提供的城镇格子背景 */
.home .pmp > bd > * { width: 75px !important; height: 75px !important; background-image: url('https://i.postimg.cc/HLzW4xkR/home-ge-zi.png'); border: 1px solid #5c4a3d; border-radius: 8px; font-family: 'Georgia', serif; color: rgba(232, 220, 199, 0.8); text-shadow: 1px 1px 2px #000; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); }
.home .pmp > bd > [c] { border: 2px solid #73e699; box-shadow: 0 0 12px rgba(115, 230, 153, 0.4) inset, 0 0 8px rgba(115, 230, 153, 0.3); color: #fff; }
.home .pmp > bd > [c]::after { content: "📍"; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.6)); font-size: 20px; }

.home .pmp > bd > * > v { background: rgba(25, 20, 15, 0.95); border: 1px solid #7a634d; border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,0.8), inset 0 0 15px rgba(212, 184, 114, 0.05); color: #c4b7a6; }
.home .pmp > bd > * > v ti { color: #d4b872; border-bottom: 1px dashed #5c4a3d; }
.home .pmp > bd > * > v tx { color: #e8dcc7; }

/* 房间视觉中心外观 - 植入你提供的城镇背景 */
.home room { background-color: #1a1511; background-image: url('https://i.postimg.cc/cJh1MHLF/bei-jinghome.png'); border: 2px solid #5c4a3d; border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
.home room[wood] { background-image: url('https://i.postimg.cc/GtkgyPCL/bei-jing-xiao-zhen-mu-ban-shi-nei.png') !important; }
.home room[rock] { background-image: url('https://i.postimg.cc/RhcpH1BC/bei-jing-xiao-zhen-shi-zhuan-shi-nei.png') !important; }
.home room lt { background: rgba(42, 34, 26, 0.9); color: #d4b872; border-bottom: 1px solid #7a634d; border-radius: 0 0 6px 6px; box-shadow: 0 2px 5px rgba(0,0,0,0.5); padding: 6px 20px; font-weight: bold; }
.home room dn, .home room ds, .home room dw, .home room de { background: rgba(42, 34, 26, 0.95); color: #d4b872; border: 1px solid #7a634d; font-family: 'Georgia', serif; }
.home room dn:hover, .home room ds:hover, .home room dw:hover, .home room de:hover { 
    color: #1a1511; 
    background: #d4b872; 
    border-color: #e8dcc7; 
    box-shadow: 0 4px 10px rgba(212, 184, 114, 0.4);
}

.home room i1::before, .home room i2::before, .home room i3::before, .home room i4::before { color: #000; text-shadow: none; }
.home room i1::after, .home room i2::after, .home room i3::after, .home room i4::after { filter: drop-shadow(0 4px 5px rgba(0,0,0,0.5)); }
.home room i1:hover::after, .home room i2:hover::after, .home room i3:hover::after, .home room i4:hover::after { filter: drop-shadow(0 6px 8px rgba(0,0,0,0.6)) brightness(1.1); }

.home op { background: rgba(42, 34, 26, 0.9); border: 1px solid #7a634d; color: #d4b872; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); font-weight: bold; }
.home op:hover { background: #d4b872; color: #1a1511; border-color: #e8dcc7; }
.home room cha::after { background: rgba(30, 24, 18, 0.9); color: #73e699; border: 1px solid #5c4a3d; border-radius: 4px; box-shadow: 0 2px 5px rgba(0,0,0,0.5); }

/* 独立区域标题板与悬浮情报外观 */
.home tt { background: linear-gradient(180deg, #362b22, #1a1511); border: 2px solid #7a634d; border-radius: 6px; color: #d4b872; box-shadow: 0 4px 10px rgba(0,0,0,0.6), inset 0 1px 1px rgba(255,255,255,0.05); }
.home tt::after { color: #a68a68; }
.home tt v { background: rgba(30, 24, 18, 0.95); border: 1px solid #7a634d; border-radius: 6px; box-shadow: 0 15px 30px rgba(0,0,0,0.8); color: #c4b7a6; }
.home tt v ti { color: #d4b872; border-bottom: 1px dashed #5c4a3d; }
.home tt v tx:first-of-type { color: #d4b872; font-family: 'Georgia', serif; font-weight: bold; }
/* home 任务面板涂装 (温暖羊皮纸色调) */
.home tt v qt { 
    background: rgba(42, 34, 26, 0.6); /* 温暖的深色木质底色 */
    border-color: #5c4a3d; 
    color: #e8dcc7; 
    box-shadow: inset 0 0 8px rgba(0,0,0,0.4); 
}
.home tt v qt::before { 
    content: "📝 委托任务"; /* 城镇公会风替换图标与文案 */
    color: #d4b872; 
    border-bottom-color: #4a3a2a; 
}

/* 悬浮交互面板 (dt) 外观 */
.home room dt { background: rgba(30, 24, 18, 0.95); border: 1px solid #7a634d; border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,0.8); }
.home room dt tx { color: #c4b7a6; }
.home room dt tx:nth-of-type(2) { color: #d4b872; border-bottom: 1px dashed #5c4a3d; }

/* 气泡涂装 - 城镇里的对话气泡换成明亮的羊皮纸质感 */
.home room say { background: rgba(240, 232, 215, 0.95); border: 2px solid #a68a68; border-radius: 8px; color: #362b22; box-shadow: 0 4px 10px rgba(0,0,0,0.4); text-shadow: none; font-weight: bold; font-family: 'Georgia', serif; }
.home room say[pc]::after { border-top-color: #a68a68; }
.home room say[npc]::after { border-bottom-color: #a68a68; }

/* NPC情报悬浮窗 */
.home room npc dt { background: rgba(30, 24, 18, 0.95); border: 1px solid #7a634d; border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,0.8), inset 0 0 15px rgba(212, 184, 114, 0.05); }
.home room npc dt tx { color: #e8dcc7; }
.home room npc dt tx:nth-of-type(2) { color: #d4b872; border-top: 1px dashed #5c4a3d; border-bottom: 1px dashed #5c4a3d; }
.home room npc dt op { border-color: #7a634d; color: #e8dcc7; background: rgba(42, 34, 26, 0.8); }
.home room npc dt op:hover { background: #d4b872; color: #1a1511; border-color: #e8dcc7; }

/* 状态栏 (.sl) 外观 */
.home .sl { background: rgba(35, 28, 22, 0.6); border: 1px solid #5c4a3d; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.home .sl p { border-bottom: 1px dashed #4a3a2a; color: #c4b7a6; }
.home .sl lb { color: #d4b872; }
.home n { background: rgba(0,0,0,0.5); border: 1px solid #5c4a3d; border-radius: 4px; }

/* NPC物品悬浮窗适配 */
.home room npc ite { background: rgba(30, 24, 18, 0.95); border: 1px solid #7a634d; border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,0.8); color: #e8dcc7; }
.home room npc ite ti { color: #d4b872; border-bottom: 1px dashed #5c4a3d; }

/* --- AVG 故事模式涂装 (home 城镇) --- */
.home story input.cb-s + label { background: linear-gradient(180deg, #3d3126, #2a221a); border: 2px solid #7a634d; color: #d4b872; box-shadow: 0 4px 10px rgba(0,0,0,0.6); font-family: 'Georgia', serif; }
.home story input.cb-s + label:hover { background: linear-gradient(180deg, #4a3c2e, #362b22); color: #fff; border-color: #d4b872; }
.home story label.cls { color: #a68a68; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); }
.home story label.cls:hover { color: #ff6b6b; }
.home story win { background: rgba(26, 21, 17, 0.98); border: 2px solid #7a634d; box-shadow: 0 10px 40px rgba(0,0,0,0.8), inset 0 0 20px rgba(212, 184, 114, 0.05); }
.home win tl { color: #e8dcc7; text-shadow: 1px 1px 3px rgba(0,0,0,0.8); }
.home win:has(label[ln] input:checked) tl { color: #d4b872; border-bottom: 1px dashed #5c4a3d; }
.home win l { color: #e8dcc7; text-shadow: 1px 1px 2px rgba(0,0,0,0.8); }
.home win label[ln]:has(~ label[ln] input:checked) l { color: #8c7a6b; } /* 历史记录变暗 (褪色羊皮纸) */

/* --- AVG 演出扩展与提示系统涂装 (home 城镇) --- */
.home win cg { box-shadow: 0 4px 15px rgba(0,0,0,0.4); }
.home story:has(input.cb-s:checked) avl, .home story:has(input.cb-s:checked) avr { border-color: #5c4a3d; background-color: #2a221a; }
.home story:has(label[ln="l"]:has(input:checked):not(:has(~ label[ln] input:checked))) avl,
.home story:has(label[ln="r"]:has(input:checked):not(:has(~ label[ln] input:checked))) avr { border-color: #d4b872; box-shadow: 0 0 20px 8px rgba(212, 184, 114, 0.4); }
.home story input.cb-s:not(:checked) + label::after { background: rgba(240, 232, 215, 0.95); color: #a34931; border-color: #a68a68; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
