/* =================================================================
 builtInCss · 被买下的贵族双姝 · 庄园烛火（E 暗红黑墨 + 贵族金）· 欲望型状态栏版
 -----------------------------------------------------------------
 组件：欲望型人物状态栏-通用模块 v1.1（E 暗红黑墨 + 贵族金）
 基准：builtInCss_四平台参考模板（四平台容器钩子 · 2026-08-09 实测版）
 适用：通用无容器版（无固定回答容器的平台；选择器直接作用于运行时输出标签）
 派生自：人妻公寓-builtInCss-通用无容器.css（同组件家族 · 2026-08-16 复制派生）
 用途：平台运行时输出区样式（创作手记 / 分隔线 / 正文 / 欲望状态栏面板 / 行动建议）
 面板结构：details.panel.npc.desire-status(.desire-focus/.desire-compact) / roster.desire-roster / memory.desire-memory
 配色：暗黑底 #1c1010 / 酒红 #c42d3a / 贵族金 #c8a060 / 珍珠米 #f4e6e6
 副文暖灰 #b49393 / 面板底 #2a1818
 字体：Noto Serif SC（正文）+ 等宽小字（裁决/标签）
 约束：无 JS / 无 is 与 has 复合选择器 / 伪元素仅装饰 / 变量逐处带 fallback / 引擎术语零泄漏
 ================================================================= */

:root{
 --bg: #1c1010;
 --bg-2: #120a0a;
 --gold: #c8a060;
 --gold-deep: #ead89b;
 --wine: #c42d3a;
 --wine-soft: #a04556;
 --line: rgba(200,160,96,.16);
 --line-hi: rgba(200,160,96,.42);
 --text: #e8d4d4;
 --muted: #b49393;
 --dim: #70695f;
 --card: #2a1818;
 --shadow: 0 14px 40px rgba(0,0,0,.55);
}/* body 大背景不再强制（透明，透出平台底色；面板/内容层自带暗红墨主题） */

/* 通用过渡 */
.story, details, details summary, .panel, .panel summary, .suggestions, suggested_questions, .suggested-questions, .suggested_questions{
 transition: border-color .22s, background-color .22s, box-shadow .22s;
}/* ---------- 1. 正文 .story —— 夜间档案叙事 ---------- */
.story{
 padding: 26px 24px;
 font-size: 16px;
 line-height: 1.92;
 color: var(--text);
 letter-spacing: .3px;
 border-left: 1px solid rgba(200,160,96,.14);
 margin-left: 8px;
}
@keyframes fadeInStory {from{ opacity: 0; transform: translateY(8px); }to{ opacity: 1; transform: none; } }.story p{ margin: 0 0 15px; text-indent: 2em; }.story p:last-child{ margin-bottom: 0; }.story strong{ color: var(--gold-deep); font-weight: 700; }.story em{ color: var(--wine-soft); font-style: italic; text-shadow: 0 0 10px rgba(160,69,86,.18); }.story blockquote{
 margin: 18px 0; padding: 14px 18px; background: rgba(200,160,96,.05);
 border-left: 3px solid rgba(200,160,96,.35); border-radius: 0 6px 6px 0;
 color: var(--muted); font-size: 15px; line-height: 1.75; font-style: italic;
}.story q{ color: var(--gold-deep); font-style: italic; }/* ---------- 2. 分隔线 —— 暗红交接 ---------- */
hr, .separator{
 border: none; height: auto; margin: 32px 0; text-align: center;
 position: relative; overflow: visible;
}hr::before, .separator::before{
 content: ""; position: absolute; left: 5%; right: 5%; top: 50%; height: 1px;
 background: linear-gradient(90deg, transparent 0%, rgba(200,160,96,.18) 15%, rgba(200,160,96,.5) 50%, rgba(200,160,96,.18) 85%, transparent 100%);
 transform: translateY(-50%);
}hr::after, .separator::after{
 content: "被买下的贵族双姝 · 验收之夜";
 position: relative; display: inline-block; padding: 0 18px; background: rgba(11, 9, 11, .78);
 font-size: 11px; letter-spacing: .3em; color: rgba(200,160,96,.55);
}
@keyframes fadeInLine {from{ opacity: 0; letter-spacing: .46em; }to{ opacity: 1; letter-spacing: .3em; } }/* ---------- 3. 创作手记 judge —— 暗红登记簿 ---------- */
details{ margin: 8px 0; }
@keyframes fadeInDetails {from{ opacity: 0; transform: translateY(4px); }to{ opacity: 1; transform: none; } }details summary{
 font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .2em;
 color: rgba(200,160,96,.65); cursor: pointer; padding: 8px 12px; position: relative;
 list-style: none; user-select: none; border-radius: 4px;
}details summary::-webkit-details-marker{ display: none; }details summary::before{
 content: "◆"; display: inline-block; margin-right: 8px; font-size: 9px;
 color: rgba(200,160,96,.6); vertical-align: middle;
 animation: pulseIndicator 2.6s ease-in-out infinite;
}
@keyframes pulseIndicator {0%, 100%{ opacity: .35; }50%{ opacity: .9; } }details[open] summary{ color: var(--gold-deep); }details[open] summary::before{ content: "▼"; font-size: 8px; animation: none; }details.judge{ background: rgba(21,18,26,.72); border: 1px solid rgba(200,160,96,.14); border-radius: 8px; padding: 10px 12px; }details.judge summary{ color: rgba(200,160,96,.7); }details.judge summary::before{ color: var(--gold); }details.judge[open]{ border-color: rgba(200,160,96,.3); box-shadow: 0 0 18px rgba(107,27,44,.18); }.judge-body{ padding: 6px 2px 2px; font-size: 12.5px; line-height: 1.8; color: var(--muted); }.judge-meta{ font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .06em; color: rgba(200,160,96,.8); margin: 4px 0; }.judge-line{ padding: 3px 0; border-bottom: 1px dashed rgba(200,160,96,.1); }.judge-line:last-child{ border-bottom: none; }/* ---------- 4. 欲望型人物状态栏（组件：欲望型人物状态栏-通用模块 v1.1） ---------- */
/* =====================================================================
 BUILTINCSS 组件 · 欲望型人物状态栏家族 · 通用模块 v1.1
 接入锚点：
 - details.panel.npc.desire-status.desire-focus 完整人物 / 主焦点
 - details.panel.npc.desire-status.desire-compact 其他已登场 NPC
 - details.panel.roster.desire-roster 已登场索引
 - details.panel.memory.desire-memory 记忆档案
 Runtime：关系叙事型欲望型单角色卡与多 NPC 合并变体 · 作家 v1.0。
 纪律：无 JS / 外链 / is 与 has 复合选择器；伪元素只作装饰；
 必要标题、标签与状态均由 Runtime 输出真实元素；变量逐处带 fallback。
 ===================================================================== */

/* ---------- 家族令牌 ---------- */
details.panel.npc.desire-status, /* ---------- 4. 欲望型人物状态栏（组件：欲望型人物状态栏-通用模块 v1.1） ---------- */
/* =====================================================================
 BUILTINCSS 组件 · 欲望型人物状态栏家族 · 通用模块 v1.1
 接入锚点：
 - details.panel.data-npc.data-desire-status.desire-focus 完整人物 / 主焦点
 - details.panel.data-npc.data-desire-status.desire-compact 其他已登场 NPC
 - details.panel.data-roster.desire-roster 已登场索引
 - details.panel.data-memory.desire-memory 记忆档案
 Runtime：关系叙事型欲望型单角色卡与多 NPC 合并变体 · 作家 v1.0。
 纪律：无 JS / 外链 / is 与 has 复合选择器；伪元素只作装饰；
 必要标题、标签与状态均由 Runtime 输出真实元素；变量逐处带 fallback。
 ===================================================================== */

/* ---------- 家族令牌 ---------- */
details.panel.data-npc.data-desire-status, details.panel.roster.desire-roster, details.panel.data-roster.desire-roster, details.panel.memory.desire-memory, details.panel.data-memory.desire-memory{
 --desire-ink: #171116;
 --desire-surface: #211820;
 --desire-surface-soft: #2b2029;
 --desire-line: #6c4d5b;
 --desire-line-soft: rgba(211, 163, 181, .2);
 --desire-text: #fff5f8;
 --desire-muted: #c8b7be;
 --desire-rose: #e29ab4;
 --desire-rose-soft: #b96886;
 --desire-wine: #7b304b;
 --desire-gold: #d6b675;
 --desire-thought: #d7a0ae;
 --desire-danger: #e47886;
 --desire-panel-bg: linear-gradient(180deg, #211820, #171116);
 --desire-panel-glow: rgba(123, 48, 75, .12);
 --desire-header-bg: linear-gradient(90deg, rgba(123, 48, 75, .34), rgba(43, 32, 41, .9) 46%, rgba(23, 17, 22, .96));
 --desire-card-bg: rgba(255, 255, 255, .025);
 --desire-card-bg-strong: rgba(18, 12, 17, .4);
 --desire-accent-bg: rgba(123, 48, 75, .18);
 --desire-accent-bg-soft: rgba(123, 48, 75, .07);
 --desire-accent-line: rgba(226, 154, 180, .42);
 --desire-accent-line-soft: rgba(226, 154, 180, .18);
 --desire-thought-bg: rgba(215, 160, 174, .1);
 --desire-gold-bg: rgba(214, 182, 117, .055);
 --desire-highlight: rgba(255, 255, 255, .04);
 --desire-shadow: rgba(13, 8, 12, .28);
 --desire-avatar-skin: #d3b8aa;
 --desire-avatar-from: #674658;
 --desire-avatar-to: #30222d;
 --desire-avatar: none;
 --desire-display: "Cormorant Garamond", Georgia, "Songti SC", "STSong", serif;
 --desire-body: "Noto Serif SC", "Songti SC", "STSong", "Microsoft YaHei", serif;
 --desire-hand: "Caveat", "KaiTi", "STKaiti", cursive;

 width: 100%;
 margin: 18px 0;
 padding: 0;
 box-sizing: border-box;
 overflow: hidden;
 border: 1px solid var(--desire-line, #6c4d5b);
 border-radius: 18px;
 background:
 linear-gradient(145deg, var(--desire-panel-glow, rgba(123, 48, 75, .12)), transparent 35%),
 var(--desire-panel-bg, linear-gradient(180deg, #211820, #171116));
 color: var(--desire-text, #fff5f8);
 box-shadow:
 inset 0 1px 0 var(--desire-highlight, rgba(255, 255, 255, .04)),
 0 12px 28px var(--desire-shadow, rgba(13, 8, 12, .28));
 font-family: var(--desire-body, "Noto Serif SC", "Songti SC", "STSong", "Microsoft YaHei", serif);
 font-size: 13px;
 line-height: 1.65;
}details.panel.npc.desire-status *, details.panel.data-npc.data-desire-status *, details.panel.npc.desire-status *::before, details.panel.data-npc.data-desire-status *::before, details.panel.npc.desire-status *::after, details.panel.data-npc.data-desire-status *::after, details.panel.roster.desire-roster *, details.panel.data-roster.desire-roster *, details.panel.roster.desire-roster *::before, details.panel.data-roster.desire-roster *::before, details.panel.roster.desire-roster *::after, details.panel.data-roster.desire-roster *::after, details.panel.memory.desire-memory *, details.panel.data-memory.desire-memory *, details.panel.memory.desire-memory *::before, details.panel.data-memory.desire-memory *::before, details.panel.memory.desire-memory *::after, details.panel.data-memory.desire-memory *::after{
 box-sizing: border-box;
}/* ---------- 家族栏头 ---------- */
details.panel.npc.desire-status > summary, /* ---------- 家族栏头 ---------- */
details.panel.data-npc.data-desire-status > summary, details.panel.roster.desire-roster > summary, details.panel.data-roster.desire-roster > summary, details.panel.memory.desire-memory > summary, details.panel.data-memory.desire-memory > summary{
 position: relative;
 display: grid;
 grid-template-columns: auto minmax(0, 1fr) auto;
 align-items: center;
 gap: 12px;
 min-height: 66px;
 margin: 0;
 padding: 9px 48px 9px 12px;
 border: 0;
 border-bottom: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 0;
 background:
 var(--desire-header-bg, linear-gradient(90deg, rgba(123, 48, 75, .34), rgba(43, 32, 41, .9) 46%, rgba(23, 17, 22, .96))),
 var(--desire-surface-soft, #2b2029);
 color: var(--desire-text, #fff5f8);
 cursor: pointer;
 list-style: none;
 text-align: left;
 box-shadow: inset 0 1px 0 var(--desire-highlight, rgba(255, 255, 255, .04));
}details.panel.npc.desire-status > summary::-webkit-details-marker, details.panel.data-npc.data-desire-status > summary::-webkit-details-marker, details.panel.roster.desire-roster > summary::-webkit-details-marker, details.panel.data-roster.desire-roster > summary::-webkit-details-marker, details.panel.memory.desire-memory > summary::-webkit-details-marker, details.panel.data-memory.desire-memory > summary::-webkit-details-marker{
 display: none;
}details.panel.npc.desire-status > summary::after, details.panel.data-npc.data-desire-status > summary::after, details.panel.roster.desire-roster > summary::after, details.panel.data-roster.desire-roster > summary::after, details.panel.memory.desire-memory > summary::after, details.panel.data-memory.desire-memory > summary::after{
 content: "";
 position: absolute;
 right: 20px;
 top: 50%;
 width: 9px;
 height: 9px;
 transform: translateY(-65%) rotate(45deg);
 border-right: 2px solid var(--desire-muted, #c8b7be);
 border-bottom: 2px solid var(--desire-muted, #c8b7be);
}details.panel.npc.desire-status[open] > summary::after, details.panel.data-npc.data-desire-status[open] > summary::after, details.panel.roster.desire-roster[open] > summary::after, details.panel.data-roster.desire-roster[open] > summary::after, details.panel.memory.desire-memory[open] > summary::after, details.panel.data-memory.desire-memory[open] > summary::after{
 transform: translateY(-30%) rotate(225deg);
 border-color: var(--desire-rose, #e29ab4);
}details.panel.npc.desire-status > summary:focus-visible, details.panel.data-npc.data-desire-status > summary:focus-visible, details.panel.roster.desire-roster > summary:focus-visible, details.panel.data-roster.desire-roster > summary:focus-visible, details.panel.memory.desire-memory > summary:focus-visible, details.panel.data-memory.desire-memory > summary:focus-visible{
 outline: 2px solid var(--desire-rose, #e29ab4);
 outline-offset: -4px;
}.desire-status .desire-avatar, .data-desire-status .desire-avatar{
 position: relative;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 48px;
 height: 48px;
 overflow: hidden;
 border: 1px solid var(--desire-gold, #d6b675);
 border-radius: 50%;
 background:
 var(--desire-avatar, none) center / cover no-repeat,
 radial-gradient(circle at 50% 28%, var(--desire-avatar-skin, #d3b8aa) 0 18%, transparent 19%),
 linear-gradient(135deg, var(--desire-avatar-from, #674658), var(--desire-avatar-to, #30222d));
 box-shadow: 0 0 0 3px var(--desire-gold-bg, rgba(214, 182, 117, .055)), inset 0 0 12px var(--desire-shadow, rgba(13, 8, 12, .28));
 color: var(--desire-text, #fff5f8);
 flex: 0 0 auto;
}.desire-status .desire-avatar-fallback, .data-desire-status .desire-avatar-fallback{
 position: relative;
 z-index: 1;
 display: block;
 color: var(--desire-text, #fff5f8);
 text-shadow: 0 1px 4px var(--desire-shadow, rgba(13, 8, 12, .28));
 font: 700 18px/1 var(--desire-display, "Cormorant Garamond", Georgia, "Songti SC", "STSong", serif);
}.desire-status .desire-summary-copy, .data-desire-status .desire-summary-copy, .desire-roster .desire-summary-copy, .desire-memory .desire-summary-copy{
 display: block;
 min-width: 0;
}.desire-status .desire-kicker, .data-desire-status .desire-kicker, .desire-roster .desire-kicker, .desire-memory .desire-kicker{
 display: block;
 margin-bottom: 2px;
 color: var(--desire-rose, #e29ab4);
 font-size: 9px;
 font-weight: 700;
 line-height: 1.2;
 letter-spacing: .16em;
}.desire-status .desire-summary-title, .data-desire-status .desire-summary-title, .desire-roster .desire-summary-title, .desire-memory .desire-summary-title{
 display: block;
 overflow-wrap: anywhere;
 color: var(--desire-text, #fff5f8);
 font: 600 16px/1.35 var(--desire-display, "Cormorant Garamond", Georgia, "Songti SC", "STSong", serif);
 letter-spacing: .02em;
}.desire-status .desire-summary-role, .data-desire-status .desire-summary-role{
 display: block;
 margin-top: 2px;
 color: var(--desire-muted, #c8b7be);
 font-size: 10px;
 line-height: 1.3;
}.desire-status .desire-focus-tag, .data-desire-status .desire-focus-tag, .desire-roster .desire-count-tag, .desire-memory .desire-archive-tag{
 display: block;
 padding: 5px 8px;
 border: 1px solid var(--desire-accent-line, rgba(226, 154, 180, .42));
 border-radius: 999px;
 background: var(--desire-accent-bg, rgba(123, 48, 75, .18));
 color: var(--desire-rose, #e29ab4);
 white-space: nowrap;
 font-size: 9px;
 font-weight: 700;
 line-height: 1;
 letter-spacing: .08em;
}/* ---------- 完整人物 / 主焦点 ---------- */
.desire-status.desire-focus .desire-focus-body, /* ---------- 完整人物 / 主焦点 ---------- */
.data-desire-status.desire-focus .desire-focus-body{
 padding: 14px;
 display: flex;
 flex-direction: column;
 gap: 14px;
 align-items: stretch;
}.desire-status.desire-focus .desire-focus-main, .data-desire-status.desire-focus .desire-focus-main{
 flex: 1 1 auto;
 min-width: 0;
 order: 2;
}.desire-status.desire-focus .desire-overview, .data-desire-status.desire-focus .desire-overview{
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 10px;
}/* ---------- 立绘位（3:4 · 面板顶部竖排 · --desire-portrait 变量注入） ---------- */
.desire-status .desire-portrait, .data-desire-status .desire-portrait{
 position: relative;
 flex: 0 0 auto;
 width: 168px;
 max-width: 100%;
 aspect-ratio: 3 / 4;
 overflow: hidden;
 border: 1px solid var(--desire-accent-line, rgba(226, 154, 180, .42));
 border-radius: 12px;
 background:
  var(--desire-portrait, none) center / cover no-repeat,
  linear-gradient(160deg, var(--desire-accent-bg-soft, rgba(123, 48, 75, .07)), var(--desire-card-bg-strong, rgba(18, 12, 17, .4)) 62%, var(--desire-surface, #211820));
 box-shadow:
  inset 0 1px 0 var(--desire-highlight, rgba(255, 255, 255, .04)),
  0 8px 20px var(--desire-shadow, rgba(13, 8, 12, .28));
 order: 1;
 align-self: center;
 margin-bottom: 2px;
}.desire-status .desire-portrait::after, .data-desire-status .desire-portrait::after{
 content: "";
 position: absolute;
 inset: 0;
 border-radius: inherit;
 box-shadow: inset 0 0 0 1px var(--desire-highlight, rgba(255, 255, 255, .04));
 pointer-events: none;
}.desire-status .desire-portrait > img, .data-desire-status .desire-portrait > img{
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center top;
}.desire-status .desire-portrait.desire-portrait-empty, .data-desire-status .desire-portrait.desire-portrait-empty{
 background:
  linear-gradient(160deg, var(--desire-accent-bg, rgba(123, 48, 75, .18)), var(--desire-card-bg-strong, rgba(18, 12, 17, .4)) 62%, var(--desire-surface, #211820));
}.desire-status .desire-portrait.desire-portrait-empty::before, .data-desire-status .desire-portrait.desire-portrait-empty::before{
 content: "♛";
 position: absolute;
 inset: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--desire-gold, #d6b675);
 font-size: 30px;
 opacity: .35;
}/* ---------- 立绘位 · 图链映射区（data-role + data-pose · Runtime 只输出标记，不输出 URL） ----------
  Runtime 输出：<div class="desire-portrait" data-role="椿" data-pose="01"></div>
  - [data-role] 角色默认立绘（椿/紫绪 → 01 号图）
  - [data-role][data-pose] 体位图（pose = 01—49，对应 图链映射表-98张.md）
  - 无匹配 pose 时回落角色默认；无 data-role 时显示占位框
  图链集中管理：改图床只动本区。 ---------- */
/* 角色默认立绘（无 data-pose = 非性爱情境 → 常服默认；性爱情境必须带 data-pose 01—49） */
.desire-portrait[data-role="椿"]{ --desire-portrait: url('https://miha.wiki/zLlR6P/03-椿-常服照.png'); }
.desire-portrait[data-role="紫绪"]{ --desire-portrait: url('https://miha.wiki/BKk5FP/01-紫绪-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="02"]{ --desire-portrait: url('https://miha.wiki/UPyeQg/02-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="02"]{ --desire-portrait: url('https://miha.wiki/4ON2kW/02-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="03"]{ --desire-portrait: url('https://miha.wiki/Aiwr2H/03-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="03"]{ --desire-portrait: url('https://miha.wiki/SbKQU9/03-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="04"]{ --desire-portrait: url('https://miha.wiki/9LbBD5/04-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="07"]{ --desire-portrait: url('https://miha.wiki/OVyD39/07-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="08"]{ --desire-portrait: url('https://miha.wiki/DTRHid/08-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="08"]{ --desire-portrait: url('https://miha.wiki/tYtm8F/08-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="09"]{ --desire-portrait: url('https://miha.wiki/VUzBg8/09-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="09"]{ --desire-portrait: url('https://miha.wiki/w7wUUL/09-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="04"]{ --desire-portrait: url('https://miha.wiki/UJTCvj/04-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="05"]{ --desire-portrait: url('https://miha.wiki/LBjpz0/05-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="10"]{ --desire-portrait: url('https://miha.wiki/9XUGdT/10-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="12"]{ --desire-portrait: url('https://miha.wiki/21BgKC/12-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="15"]{ --desire-portrait: url('https://miha.wiki/vBnPI7/15-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="16"]{ --desire-portrait: url('https://miha.wiki/H5lRjF/16-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="10"]{ --desire-portrait: url('https://miha.wiki/nZdPnV/10-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="11"]{ --desire-portrait: url('https://miha.wiki/LdLAqF/11-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="12"]{ --desire-portrait: url('https://miha.wiki/BJKwCT/12-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="17"]{ --desire-portrait: url('https://miha.wiki/HN1vZB/17-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="18"]{ --desire-portrait: url('https://miha.wiki/v7sVKX/18-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="19"]{ --desire-portrait: url('https://miha.wiki/UXj2aq/19-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="19"]{ --desire-portrait: url('https://miha.wiki/GorgMS/19-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="21"]{ --desire-portrait: url('https://miha.wiki/JBW8gy/21-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="22"]{ --desire-portrait: url('https://miha.wiki/LhaTB7/22-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="23"]{ --desire-portrait: url('https://miha.wiki/qhtBLe/23-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="26"]{ --desire-portrait: url('https://miha.wiki/AOJOhO/26-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="28"]{ --desire-portrait: url('https://miha.wiki/2nIuK2/28-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="33"]{ --desire-portrait: url('https://miha.wiki/BLhBaP/33-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="34"]{ --desire-portrait: url('https://miha.wiki/fjGrhh/34-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="35"]{ --desire-portrait: url('https://miha.wiki/TJLFis/35-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="44"]{ --desire-portrait: url('https://miha.wiki/ghZPX9/44-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="47"]{ --desire-portrait: url('https://miha.wiki/bPMcfh/47-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="49"]{ --desire-portrait: url('https://miha.wiki/uH9BML/49-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="11"]{ --desire-portrait: url('https://miha.wiki/CA7giJ/11-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="13"]{ --desire-portrait: url('https://miha.wiki/RlXEta/13-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="13"]{ --desire-portrait: url('https://miha.wiki/PGUFDR/13-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="14"]{ --desire-portrait: url('https://miha.wiki/M9DBsZ/14-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="14"]{ --desire-portrait: url('https://miha.wiki/ttHsKY/14-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="15"]{ --desire-portrait: url('https://miha.wiki/lxwWxM/15-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="16"]{ --desire-portrait: url('https://miha.wiki/PrNwzy/16-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="17"]{ --desire-portrait: url('https://miha.wiki/o8mCeD/17-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="18"]{ --desire-portrait: url('https://miha.wiki/snFzeb/18-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="20"]{ --desire-portrait: url('https://miha.wiki/DpH9Gg/20-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="20"]{ --desire-portrait: url('https://miha.wiki/CXr0JG/20-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="21"]{ --desire-portrait: url('https://miha.wiki/f5tqMh/21-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="22"]{ --desire-portrait: url('https://miha.wiki/F5ztJK/22-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="23"]{ --desire-portrait: url('https://miha.wiki/wxZLSA/23-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="24"]{ --desire-portrait: url('https://miha.wiki/aHljba/24-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="25"]{ --desire-portrait: url('https://miha.wiki/CYZIOj/25-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="32"]{ --desire-portrait: url('https://miha.wiki/Pr4n8m/32-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="33"]{ --desire-portrait: url('https://miha.wiki/U9GYYS/33-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="36"]{ --desire-portrait: url('https://miha.wiki/XDuKJn/36-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="39"]{ --desire-portrait: url('https://miha.wiki/ZkNfZm/39-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="40"]{ --desire-portrait: url('https://miha.wiki/szYSUC/40-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="24"]{ --desire-portrait: url('https://miha.wiki/6UCfKp/24-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="25"]{ --desire-portrait: url('https://miha.wiki/A2bNP1/25-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="26"]{ --desire-portrait: url('https://miha.wiki/Mab34F/26-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="31"]{ --desire-portrait: url('https://miha.wiki/DLpmBS/31-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="34"]{ --desire-portrait: url('https://miha.wiki/OorU6G/34-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="36"]{ --desire-portrait: url('https://miha.wiki/oktaTe/36-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="38"]{ --desire-portrait: url('https://miha.wiki/febJ4x/38-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="39"]{ --desire-portrait: url('https://miha.wiki/f7DH42/39-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="45"]{ --desire-portrait: url('https://miha.wiki/N5a0Xi/45-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="05"]{ --desire-portrait: url('https://miha.wiki/hTBIjz/05-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="27"]{ --desire-portrait: url('https://miha.wiki/Km3j84/27-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="27"]{ --desire-portrait: url('https://miha.wiki/toazgM/27-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="28"]{ --desire-portrait: url('https://miha.wiki/2aWf58/28-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="29"]{ --desire-portrait: url('https://miha.wiki/SnjuNf/29-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="29"]{ --desire-portrait: url('https://miha.wiki/KL99N8/29-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="30"]{ --desire-portrait: url('https://miha.wiki/1EowB3/30-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="30"]{ --desire-portrait: url('https://miha.wiki/jSZjBW/30-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="31"]{ --desire-portrait: url('https://miha.wiki/OBl5Zn/31-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="32"]{ --desire-portrait: url('https://miha.wiki/wJ7Rxp/32-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="35"]{ --desire-portrait: url('https://miha.wiki/L0q0dK/35-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="37"]{ --desire-portrait: url('https://miha.wiki/Ba2yhz/37-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="37"]{ --desire-portrait: url('https://miha.wiki/h9vZLm/37-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="38"]{ --desire-portrait: url('https://miha.wiki/5kLLLB/38-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="40"]{ --desire-portrait: url('https://miha.wiki/TYxKLq/40-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="41"]{ --desire-portrait: url('https://miha.wiki/zW6uc6/41-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="42"]{ --desire-portrait: url('https://miha.wiki/lfaiir/42-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="43"]{ --desire-portrait: url('https://miha.wiki/9XPVkZ/43-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="44"]{ --desire-portrait: url('https://miha.wiki/UcCsfj/44-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="41"]{ --desire-portrait: url('https://miha.wiki/ALVUyt/41-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="42"]{ --desire-portrait: url('https://miha.wiki/3XJZHv/42-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="45"]{ --desire-portrait: url('https://miha.wiki/7KeDI6/45-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="46"]{ --desire-portrait: url('https://miha.wiki/P2jVY0/46-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="48"]{ --desire-portrait: url('https://miha.wiki/VhIaQf/48-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="48"]{ --desire-portrait: url('https://miha.wiki/wJUfeZ/48-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="49"]{ --desire-portrait: url('https://miha.wiki/wmq4Tv/49-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="46"]{ --desire-portrait: url('https://miha.wiki/p8Twc3/46-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="43"]{ --desire-portrait: url('https://miha.wiki/bgMapD/43-紫绪-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="47"]{ --desire-portrait: url('https://miha.wiki/RXXIf2/47-紫绪-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="06"]{ --desire-portrait: url('https://miha.wiki/D9ijpq/06-椿-体位照.png'); }
.desire-portrait[data-role="椿"][data-pose="07"]{ --desire-portrait: url('https://miha.wiki/qIADeU/07-椿-体位照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="06"]{ --desire-portrait: url('https://miha.wiki/T02gaR/06-紫绪-体位照.png'); }
/* 旧类兼容（desire-portrait-chun/zixu，等价 data-role） ---------- */
.desire-status .desire-portrait.desire-portrait-chun, .data-desire-status .desire-portrait.desire-portrait-chun{ --desire-portrait: url('https://miha.wiki/h4laJI/01-椿-体位照.png'); }
.desire-status .desire-portrait.desire-portrait-zixu, .data-desire-status .desire-portrait.desire-portrait-zixu{ --desire-portrait: url('https://miha.wiki/mT2oG0/01-紫绪-体位照.png'); }
/* ---------- 立绘位 · 常服图链区（data-pose 101—112 · 非 NSFW 情境） ----------
  Runtime 用法：非性爱场景输出 data-role + data-pose(101—112)，性爱场景输出 data-pose(01—49)。
  101—112 对应 图片提示词-常服12张-NAI4.5.md 的 01—12 号常服。 ---------- */
.desire-portrait[data-role="紫绪"][data-pose="101"]{ --desire-portrait: url('https://miha.wiki/BKk5FP/01-紫绪-常服照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="102"]{ --desire-portrait: url('https://miha.wiki/TKz9IQ/02-紫绪-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="103"]{ --desire-portrait: url('https://miha.wiki/zLlR6P/03-椿-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="104"]{ --desire-portrait: url('https://miha.wiki/miW3a4/04-椿-常服照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="105"]{ --desire-portrait: url('https://miha.wiki/4KNr80/05-紫绪-常服照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="106"]{ --desire-portrait: url('https://miha.wiki/sEiB4U/06-紫绪-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="107"]{ --desire-portrait: url('https://miha.wiki/O69oy4/07-椿-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="108"]{ --desire-portrait: url('https://miha.wiki/KW58sb/08-椿-常服照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="109"]{ --desire-portrait: url('https://miha.wiki/0s54o7/09-紫绪-常服照.png'); }
.desire-portrait[data-role="紫绪"][data-pose="110"]{ --desire-portrait: url('https://miha.wiki/EOc3WN/10-紫绪-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="111"]{ --desire-portrait: url('https://miha.wiki/diG2hI/11-椿-常服照.png'); }
.desire-portrait[data-role="椿"][data-pose="112"]{ --desire-portrait: url('https://miha.wiki/Rqg6Od/12-椿-常服照.png'); }
/* ---------- 立绘位 · 窄屏：顶部收窄 ---------- */
@media (max-width: 480px){
 .desire-status .desire-portrait, .data-desire-status .desire-portrait{
  flex-basis: auto;
  width: 128px;
  max-width: 100%;
 }
}.desire-status .desire-section, .data-desire-status .desire-section{
 min-width: 0;
 padding: 11px;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 12px;
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
 box-shadow: inset 0 1px 0 var(--desire-highlight, rgba(255, 255, 255, .04));
}.desire-status .desire-section-label, .data-desire-status .desire-section-label{
 display: flex;
 align-items: center;
 gap: 7px;
 margin-bottom: 8px;
 color: var(--desire-gold, #d6b675);
 font-size: 9px;
 font-weight: 800;
 line-height: 1.2;
 letter-spacing: .15em;
}.desire-status .desire-section-label::before, .data-desire-status .desire-section-label::before{
 content: "";
 width: 16px;
 height: 1px;
 background: var(--desire-gold, #d6b675);
 box-shadow: 5px 3px 0 var(--desire-gold-bg, rgba(214, 182, 117, .055));
}.desire-status .desire-field, .data-desire-status .desire-field, .desire-status .desire-body-field, .data-desire-status .desire-body-field, .desire-status .desire-current-field, .data-desire-status .desire-current-field, .desire-status .desire-memory-field, .data-desire-status .desire-memory-field, .desire-status .desire-extra-field, .data-desire-status .desire-extra-field{
 min-width: 0;
 margin: 0;
 overflow-wrap: anywhere;
 color: var(--desire-text, #fff5f8);
}.desire-status .desire-field + .desire-field, .data-desire-status .desire-field + .desire-field{
 margin-top: 7px;
 padding-top: 7px;
 border-top: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
}.desire-status .desire-field > b:first-child, .data-desire-status .desire-field > b:first-child, .desire-status .desire-body-field > b:first-child, .data-desire-status .desire-body-field > b:first-child, .desire-status .desire-current-field > b:first-child, .data-desire-status .desire-current-field > b:first-child, .desire-status .desire-memory-field > b:first-child, .data-desire-status .desire-memory-field > b:first-child, .desire-status .desire-extra-field > b:first-child, .data-desire-status .desire-extra-field > b:first-child{
 display: block;
 margin-bottom: 2px;
 color: var(--desire-muted, #c8b7be);
 font-size: 10px;
 font-weight: 700;
 line-height: 1.3;
 letter-spacing: .06em;
}.desire-status .desire-body-profile, .data-desire-status .desire-body-profile{
 margin-top: 10px;
}.desire-status .desire-body-grid, .data-desire-status .desire-body-grid{
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 7px;
}.desire-status .desire-body-field, .data-desire-status .desire-body-field{
 position: relative;
 min-height: 64px;
 padding: 9px 10px 9px 13px;
 border: 1px solid var(--desire-accent-line-soft, rgba(226, 154, 180, .18));
 border-radius: 10px;
 background:
 linear-gradient(135deg, var(--desire-accent-bg-soft, rgba(123, 48, 75, .07)), transparent 48%),
 var(--desire-card-bg-strong, rgba(18, 12, 17, .4));
}.desire-status .desire-body-field::before, .data-desire-status .desire-body-field::before{
 content: "";
 position: absolute;
 top: 10px;
 bottom: 10px;
 left: 5px;
 width: 2px;
 border-radius: 2px;
 background: var(--desire-rose-soft, #b96886);
}.desire-status .desire-body-field > b:first-child, .data-desire-status .desire-body-field > b:first-child{
 color: var(--desire-rose, #e29ab4);
}.desire-status .desire-current-grid, .data-desire-status .desire-current-grid{
 display: grid;
 grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
 gap: 8px;
 margin-top: 10px;
}.desire-status .desire-current-field, .data-desire-status .desire-current-field{
 min-height: 72px;
 padding: 10px 11px;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 11px;
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
}.desire-status .desire-thought, .data-desire-status .desire-thought{
 background:
 linear-gradient(135deg, var(--desire-thought-bg, rgba(215, 160, 174, .1)), transparent 60%),
 var(--desire-card-bg, rgba(255, 255, 255, .025));
}.desire-status .desire-thought > b:first-child, .data-desire-status .desire-thought > b:first-child{
 color: var(--desire-thought, #d7a0ae);
}.desire-status .desire-memory-field, .data-desire-status .desire-memory-field{
 margin-top: 8px;
 padding: 10px 12px;
 border-left: 3px solid var(--desire-gold, #d6b675);
 border-radius: 0 10px 10px 0;
 background: var(--desire-gold-bg, rgba(214, 182, 117, .055));
}.desire-status .desire-memory-field > b:first-child, .data-desire-status .desire-memory-field > b:first-child{
 color: var(--desire-gold, #d6b675);
}.desire-status .desire-extra, .data-desire-status .desire-extra{
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 7px;
 margin-top: 8px;
}.desire-status .desire-extra-field, .data-desire-status .desire-extra-field{
 padding: 8px 10px;
 border: 1px dashed var(--desire-accent-line-soft, rgba(226, 154, 180, .18));
 border-radius: 10px;
 background: var(--desire-accent-bg-soft, rgba(123, 48, 75, .07));
}/* ---------- 其他已登场 NPC：同语言紧凑版 ---------- */
.desire-status.desire-compact > summary, /* ---------- 其他已登场 NPC：同语言紧凑版 ---------- */
.data-desire-status.desire-compact > summary{
 min-height: 58px;
}.desire-status.desire-compact .desire-avatar, .data-desire-status.desire-compact .desire-avatar{
 width: 40px;
 height: 40px;
}.desire-status.desire-compact .desire-avatar-fallback, .data-desire-status.desire-compact .desire-avatar-fallback{
 font-size: 15px;
}.desire-status.desire-compact .desire-focus-tag, .data-desire-status.desire-compact .desire-focus-tag{
 border-color: var(--desire-line-soft, rgba(211, 163, 181, .2));
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
 color: var(--desire-muted, #c8b7be);
}.desire-status .desire-compact-body, .data-desire-status .desire-compact-body{
 padding: 11px 12px 13px;
}.desire-status .desire-compact-grid, .data-desire-status .desire-compact-grid{
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 7px;
}.desire-status .desire-compact-grid > .desire-field, .data-desire-status .desire-compact-grid > .desire-field{
 min-height: 58px;
 padding: 8px 9px;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 9px;
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
}.desire-status .desire-compact-grid > .desire-field + .desire-field, .data-desire-status .desire-compact-grid > .desire-field + .desire-field{
 margin-top: 0;
 padding-top: 8px;
}.desire-status .desire-compact-grid > .desire-field.desire-wide, .data-desire-status .desire-compact-grid > .desire-field.desire-wide{
 grid-column: 1 / -1;
}.desire-status .desire-attitude > b:first-child, .data-desire-status .desire-attitude > b:first-child{
 color: var(--desire-rose, #e29ab4);
}.desire-status .desire-emotion > b:first-child, .data-desire-status .desire-emotion > b:first-child{
 color: var(--desire-gold, #d6b675);
}/* ---------- 已登场索引 ---------- */
.desire-roster .desire-roster-seal, .desire-memory .desire-memory-seal{
 display: flex;
 align-items: center;
 justify-content: center;
 width: 42px;
 height: 42px;
 border: 1px solid var(--desire-line, #6c4d5b);
 border-radius: 12px;
 background: var(--desire-accent-bg, rgba(123, 48, 75, .18));
 color: var(--desire-gold, #d6b675);
 font: 700 15px/1 var(--desire-display, "Cormorant Garamond", Georgia, "Songti SC", "STSong", serif);
}.desire-roster .desire-roster-list{
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 7px;
 padding: 12px;
}.desire-roster .desire-roster-entry{
 display: grid;
 grid-template-columns: auto minmax(0, 1fr);
 align-items: center;
 gap: 8px;
 min-width: 0;
 min-height: 46px;
 margin: 0;
 padding: 8px 10px;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 10px;
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
}.desire-roster .desire-roster-entry > b:first-child{
 color: var(--desire-text, #fff5f8);
 white-space: nowrap;
 font-family: var(--desire-display, "Cormorant Garamond", Georgia, "Songti SC", "STSong", serif);
}.desire-roster .desire-roster-entry > span{
 min-width: 0;
 overflow-wrap: anywhere;
 color: var(--desire-muted, #c8b7be);
 font-size: 11px;
 text-align: right;
}.desire-roster .desire-roster-entry.desire-roster-current{
 border-color: var(--desire-accent-line, rgba(226, 154, 180, .42));
 background: var(--desire-accent-bg-soft, rgba(123, 48, 75, .07));
}.desire-roster .desire-roster-entry.desire-roster-current > span{
 color: var(--desire-rose, #e29ab4);
}/* ---------- 记忆档案 ---------- */
.desire-memory .desire-memory-body{
 display: grid;
 gap: 10px;
 padding: 12px;
}.desire-memory .desire-memory-section{
 min-width: 0;
 padding: 10px;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 border-radius: 11px;
 background: var(--desire-card-bg, rgba(255, 255, 255, .025));
}.desire-memory .desire-memory-label{
 display: block;
 margin-bottom: 7px;
 color: var(--desire-gold, #d6b675);
 font-size: 10px;
 font-weight: 800;
 line-height: 1.2;
 letter-spacing: .1em;
}.desire-memory .desire-memory-section table{
 width: 100%;
 margin: 0;
 border-collapse: collapse;
 table-layout: fixed;
 color: var(--desire-text, #fff5f8);
 font-size: 11px;
 line-height: 1.5;
}.desire-memory .desire-memory-section th, .desire-memory .desire-memory-section td{
 padding: 7px 8px;
 overflow-wrap: anywhere;
 border: 1px solid var(--desire-line-soft, rgba(211, 163, 181, .2));
 text-align: left;
 vertical-align: top;
}.desire-memory .desire-memory-section th{
 background: var(--desire-accent-bg-soft, rgba(123, 48, 75, .07));
 color: var(--desire-rose, #e29ab4);
 font-size: 9px;
 font-weight: 800;
 letter-spacing: .06em;
}.desire-memory .desire-memory-section td:first-child, .desire-memory .desire-memory-section th:first-child{
 width: 72px;
 color: var(--desire-gold, #d6b675);
 font-variant-numeric: tabular-nums;
}

/* ---------- 窄屏 ---------- */
@media (max-width: 480px) {details.panel.npc.desire-status, details.panel.data-npc.data-desire-status, details.panel.roster.desire-roster, details.panel.data-roster.desire-roster, details.panel.memory.desire-memory, details.panel.data-memory.desire-memory{
 border-radius: 14px;
 font-size: 12px;
 }details.panel.npc.desire-status > summary, details.panel.data-npc.data-desire-status > summary, details.panel.roster.desire-roster > summary, details.panel.data-roster.desire-roster > summary, details.panel.memory.desire-memory > summary, details.panel.data-memory.desire-memory > summary{
 grid-template-columns: auto minmax(0, 1fr);
 gap: 9px;
 min-height: 60px;
 padding: 8px 38px 8px 9px;
 }.desire-status .desire-avatar, .data-desire-status .desire-avatar{
 width: 42px;
 height: 42px;
 }.desire-status .desire-focus-tag, .data-desire-status .desire-focus-tag, .desire-roster .desire-count-tag, .desire-memory .desire-archive-tag{
 grid-column: 2;
 justify-self: start;
 margin-top: 2px;
 padding: 4px 7px;
 }.desire-status.desire-focus .desire-focus-body, .data-desire-status.desire-focus .desire-focus-body{
 padding: 9px;
 }.desire-status.desire-focus .desire-overview, .data-desire-status.desire-focus .desire-overview, .desire-status .desire-current-grid, .data-desire-status .desire-current-grid{
 grid-template-columns: 1fr;
 gap: 7px;
 }.desire-status .desire-section, .data-desire-status .desire-section{
 padding: 9px;
 }.desire-status .desire-body-grid, .data-desire-status .desire-body-grid{
 gap: 5px;
 }.desire-status .desire-body-field, .data-desire-status .desire-body-field{
 min-height: 72px;
 padding: 7px 8px 7px 11px;
 font-size: 11px;
 }.desire-status .desire-current-field, .data-desire-status .desire-current-field{
 min-height: 0;
 padding: 8px 9px;
 }.desire-status .desire-extra, .data-desire-status .desire-extra{
 grid-template-columns: 1fr;
 }.desire-status .desire-compact-body, .data-desire-status .desire-compact-body{
 padding: 8px 9px 10px;
 }.desire-status .desire-compact-grid, .data-desire-status .desire-compact-grid{
 grid-template-columns: 1fr;
 gap: 5px;
 }.desire-status .desire-compact-grid > .desire-field.desire-wide, .data-desire-status .desire-compact-grid > .desire-field.desire-wide{
 grid-column: auto;
 }.desire-status .desire-compact-grid > .desire-field, .data-desire-status .desire-compact-grid > .desire-field{
 min-height: 0;
 padding: 7px 8px;
 }.desire-status .desire-compact-grid > .desire-field > b:first-child, .data-desire-status .desire-compact-grid > .desire-field > b:first-child{
 display: inline;
 margin-right: 5px;
 }.desire-roster .desire-roster-list{
 grid-template-columns: 1fr;
 gap: 5px;
 padding: 9px;
 }.desire-memory .desire-memory-body{
 gap: 7px;
 padding: 9px;
 }.desire-memory .desire-memory-section{
 padding: 7px;
 }.desire-memory .desire-memory-section table{
 font-size: 9px;
 }.desire-memory .desire-memory-section th, .desire-memory .desire-memory-section td{
 padding: 5px 4px;
 }.desire-memory .desire-memory-section td:first-child, .desire-memory .desire-memory-section th:first-child{
 width: 52px;
 }
}/* ---------- 4b. 欲望型状态栏 · 卡主题覆盖（E 暗红黑墨 + 贵族金） ---------- */
details.panel.npc.desire-status, /* ---------- 4b. 欲望型状态栏 · 卡主题覆盖（E 暗红黑墨 + 贵族金） ---------- */
details.panel.data-npc.data-desire-status, details.panel.roster.desire-roster, details.panel.data-roster.desire-roster, details.panel.memory.desire-memory, details.panel.data-memory.desire-memory{
 --desire-ink: #1c1010;
 --desire-surface: #2a1818;
 --desire-surface-soft: #1a0c0c;
 --desire-line: #5a4242;
 --desire-line-soft: rgba(232, 212, 212, .17);
 --desire-text: #e8d4d4;
 --desire-muted: #b49393;
 --desire-rose: #e45a64;
 --desire-rose-soft: #c42d3a;
 --desire-wine: #8a1a24;
 --desire-gold: #c8a060;
 --desire-thought: #d98b78;
 --desire-danger: #ff6670;
 --desire-panel-bg: linear-gradient(180deg, #2a1818, #1c1010);
 --desire-panel-glow: rgba(196, 45, 58, .14);
 --desire-header-bg: linear-gradient(90deg, #48181d, #2a1818 50%, #1a0c0c);
 --desire-card-bg: rgba(232, 212, 212, .035);
 --desire-card-bg-strong: rgba(17, 5, 6, .4);
 --desire-accent-bg: rgba(196, 45, 58, .14);
 --desire-accent-bg-soft: rgba(196, 45, 58, .08);
 --desire-accent-line: rgba(228, 90, 100, .4);
 --desire-accent-line-soft: rgba(228, 90, 100, .2);
 --desire-thought-bg: rgba(217, 139, 120, .1);
 --desire-gold-bg: rgba(201, 169, 97, .09);
 --desire-highlight: rgba(255, 235, 235, .045);
 --desire-shadow: rgba(8, 2, 3, .34);
 --desire-avatar-skin: #c58d80;
 --desire-avatar-from: #8a2831;
 --desire-avatar-to: #3e1317;
}/* 抵消通用 details summary::before 的 ◆，避免出现在欲望面板栏头 */
details.panel.npc.desire-status > summary::before, /* 抵消通用 details summary::before 的 ◆，避免出现在欲望面板栏头 */
details.panel.data-npc.data-desire-status > summary::before, details.panel.roster.desire-roster > summary::before, details.panel.data-roster.desire-roster > summary::before, details.panel.memory.desire-memory > summary::before, details.panel.data-memory.desire-memory > summary::before{
 content: none;
}/* ---------- 7. 行动建议 ---------- */
suggested_questions, .suggested-questions, .suggested_questions, .suggestions{
 display: block; margin: 20px 0 8px; padding: 0; background: transparent; border: none;
 animation: slideUpPanel .5s ease .1s both; counter-reset: sug;
}suggested_questions::before, .suggested-questions::before, .suggested_questions::before, .suggestions::before{
 content: "下一步"; display: block; font-size: 10px; letter-spacing: .3em;
 color: rgba(169,159,142,.7); margin-bottom: 10px; padding-left: 4px;
}suggested_questions p, suggested_questions button, .suggested-questions p, .suggested-questions button, .suggested_questions p, .suggested_questions button, .suggestions p, .suggestions button{
 position: relative; padding: 13px 16px 13px 46px; margin: 8px 0;
 background: rgba(21,18,26,.9); border: 1px solid rgba(200,160,96,.28); border-radius: 10px;
 color: var(--text); font-size: 14px; line-height: 1.7; width: 100%;
 appearance: none; -webkit-appearance: none; font-family: inherit; text-align: left; cursor: pointer;
 counter-increment: sug;
}suggested_questions p::before, suggested_questions button::before, .suggested-questions p::before, .suggested-questions button::before, .suggested_questions p::before, .suggested_questions button::before, .suggestions p::before, .suggestions button::before{
 content: "[" counter(sug, decimal-leading-zero) "]"; position: absolute; left: 14px; top: 50%;
 transform: translateY(-50%); font-size: 12px; font-weight: 700; color: rgba(200,160,96,.6); letter-spacing: .08em;
}suggested_questions p:hover, suggested_questions button:hover, .suggested-questions p:hover, .suggested-questions button:hover, .suggested_questions p:hover, .suggested_questions button:hover, .suggestions p:hover, .suggestions button:hover{
 background: linear-gradient(135deg, var(--wine), #3a1220); border-color: var(--gold);
 color: var(--pearl, #f5f0e6); transform: translateY(-1px); box-shadow: 0 10px 22px rgba(0,0,0,.4);
}suggested_questions p:hover::before, suggested_questions button:hover::before, .suggested-questions p:hover::before, .suggested-questions button:hover::before, .suggested_questions p:hover::before, .suggested_questions button:hover::before, .suggestions p:hover::before, .suggestions button:hover::before{
 color: rgba(245,240,230,.75);
}/* ---------- 8. 通用元素 ---------- */
p{ margin: 0 0 12px; }ul, ol{ padding-left: 20px; margin: 10px 0; }li{ margin: 5px 0; color: var(--text); }code, pre{ font-family: "JetBrains Mono", monospace; font-size: 12px; background: rgba(21,18,26,.9); border: 1px solid rgba(200,160,96,.18); border-radius: 4px; color: rgba(234,216,155,.9); }code{ padding: 2px 6px; }pre{ padding: 12px 16px; overflow-x: auto; margin: 12px 0; }a{ color: var(--wine-soft); text-decoration: none; border-bottom: 1px solid rgba(160,69,86,.3); }a:hover{ color: var(--gold-deep); border-bottom-color: var(--gold-deep); }

/* ---------- 9. 响应式 ---------- */
@media (max-width: 480px) {.story{ padding: 16px 14px; font-size: 15px; line-height: 1.85; margin-left: 0; border-left: none; }.story p{ text-indent: 1.5em; }suggested_questions p, suggested_questions button, .suggested-questions p, .suggested-questions button, .suggested_questions p, .suggested_questions button, .suggestions p, .suggestions button{
 padding: 12px 14px 12px 42px; font-size: 13px;
 }details summary{ font-size: 10px; letter-spacing: .14em; }hr::after, .separator::after{ font-size: 10px; letter-spacing: .26em; padding: 0 12px; }
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {.story, .story *, details, details *, .panel, .panel *, .suggestions, .suggestions *, suggested_questions, suggested_questions *, .suggested-questions, .suggested-questions *, .suggested_questions, .suggested_questions *{
 animation: none !important; transition: none !important;
 }
}/* ---------- 10. 平台容器钩子（四平台基准 · 2026-08-09 实测版）
 用法：可单文件四平台共存（各平台只命中自己的段），也可按部署平台启用。
 原则：主体样式写运行时标签（跨平台通用）；本层只写平台外壳/气泡/输入区。
 Rili 段必须裸写选择器（平台自动加 前缀）。 */

/* 8.1 春水 Live（新版实测 2026-08-09）
 旧钩子 bd-chat-input / bd-send-btn / bd-loading-dots 已失效，勿再使用 */
.bd-content-area{
 background: transparent;
}.bd-ai-msg{
 /* AI 气泡：平台自带 rounded-2xl rounded-tl-sm overflow-hidden break-words */
 border-radius: 14px 14px 14px 4px;
}.bd-user-msg{
 /* 用户气泡：平台自带 rounded-2xl rounded-br-sm，最大宽 90%/75% */
 border-radius: 14px 14px 4px 14px;
}.bd-ai-msg .chat-prose, .bd-user-msg .chat-prose{
 color: var(--text, #b9b0a0);
 font-size: var(--chat-font-size, 14px);
}/* 输入区（新版）：group/composer + textarea + aria-label=发送 */
.group\/composer textarea{
 background: #1c1010;
 border: 1px solid var(--line, rgba(200,160,96,.2));
 border-radius: 8px;
 color: var(--text, #b9b0a0);
 padding: 10px 12px;
}button[aria-label="发送"]{
 border-radius: 8px;
}/* 8.1b 春水对比度守卫适配（裸选择器，春水自动加 .bd-content-area 前缀）
 浅色模式下平台给文本注入内联深色 data-contrast-fixed，深色面板必须强制恢复组件配色 */
details.panel.data-npc.data-desire-status, details.panel.data-npc.data-desire-status .desire-field, details.panel.data-npc.data-desire-status .desire-body-field, details.panel.data-npc.data-desire-status .desire-current-field, details.panel.data-npc.data-desire-status .desire-memory-field, details.panel.data-npc.data-desire-status .desire-extra-field, details.panel.data-npc.data-desire-status .desire-summary-role, details.panel.data-roster.desire-roster, details.panel.data-roster.desire-roster .desire-roster-entry > span, details.panel.data-memory.desire-memory, details.panel.data-memory.desire-memory td, details.panel.data-memory.desire-memory th{
 color: var(--desire-text, #e8d4d4) !important;
}details.panel.data-npc.data-desire-status .desire-kicker, details.panel.data-npc.data-desire-status .desire-section-label, details.panel.data-npc.data-desire-status .desire-focus-tag, details.panel.data-npc.data-desire-status .desire-summary-title, details.panel.data-roster.desire-roster .desire-kicker, details.panel.data-roster.desire-roster .desire-count-tag, details.panel.data-memory.desire-memory .desire-kicker, details.panel.data-memory.desire-memory .desire-memory-label, details.panel.data-memory.desire-memory .desire-archive-tag{
 color: var(--desire-gold, #c8a060) !important;
}details.panel.data-npc.data-desire-status .desire-thought{
 color: var(--desire-thought, #d98b78) !important;
}details.panel.data-npc.data-desire-status .desire-current-field > b, details.panel.data-npc.data-desire-status .desire-body-field > b, details.panel.data-npc.data-desire-status .desire-field > b, details.panel.data-npc.data-desire-status .desire-memory-field > b, details.panel.data-npc.data-desire-status .desire-extra-field > b, details.panel.data-roster.desire-roster .desire-roster-entry > b:first-child, details.panel.data-memory.desire-memory td:first-child, details.panel.data-memory.desire-memory th:first-child{
 color: var(--desire-rose, #e45a64) !important;
}

/* 8.2 MissAI：内容容器 .content-renderer-v3-container + .theme-light/.theme-dark
 平台 @layer content-base 提供 crv2-* 变量（字号/行高/文字色/链接色等） */
.content-renderer-v3-container.theme-light{
 background: transparent;
 color: var(--text, #b9b0a0);
}.content-renderer-v3-container.theme-dark{
 background: transparent;
 color: var(--text, #b9b0a0);
}/* details 会被平台追加 group my-2，间距冲突时用 !important */
.content-renderer-v3-container details{
 margin: 8px 0 16px !important;
}/* 8.3 夜语：注入作用域 #installedBuiltInCss + 气泡 bubble-message-body */
#installedBuiltInCss{
 /* --accent 等变量如需覆盖写这里；勿用 :root。背景透明，透出平台底色 */
 background: transparent;
}#installedBuiltInCss .bubble-message-body{
 color: var(--text, #b9b0a0);
}/* 聊天壳（按需启用）：.chat-answer-container / .chat-message /
 .user-message / .safe-html-content / .html-message-content */

/* 8.4 Rili：平台自动给每条规则加 前缀 → 本段裸写
 根容器自带 data-theme=light data-theme-mode=system */
.rili-markdown-renderer table{
 /* 平台已有表格兜底；需要覆盖时写这里 */
 border-color: var(--line, rgba(200,160,96,.2));
}
/* 气泡语义：is-assistant / is-user（Tailwind group）；气泡壳为平台
 Tailwind 工具类，覆盖需加 !important，具体选择器以实际 DOM 为准 */
