/* ===== 第二层：作品组件层 V2 Galgame魔法少女 × 黑蔷薇立绘系统 ===== */

/* ===== §A 主容器：视觉小说舞台 ===== */
.dossier {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 16px !important;
  margin: 0 !important;
  color: hsl(270,8%,7%) !important;
  border: 1px solid rgba(155,40,88,0.30) !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 12% 6%, rgba(155,40,88,0.14), transparent 28%),
    radial-gradient(circle at 92% 2%, rgba(126,94,170,0.12), transparent 34%),
    linear-gradient(180deg, hsl(270,16%,100%), hsl(270,18%,95%)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.78),
    0 18px 42px rgba(52,36,66,0.16) !important;
}

.dossier::before {
  content: "✦" !important;
  position: absolute !important;
  right: 18px !important;
  top: 12px !important;
  color: rgba(155,40,88,0.34) !important;
  font-size: 42px !important;
  line-height: 1 !important;
  text-shadow:
    -34px 28px 0 rgba(155,40,88,0.16),
    -82px 8px 0 rgba(126,94,170,0.14),
    -118px 52px 0 rgba(155,40,88,0.10) !important;
  pointer-events: none !important;
}

.dossier::after {
  content: "" !important;
  position: absolute !important;
  inset: 8px !important;
  border: 1px dashed rgba(155,40,88,0.18) !important;
  border-radius: 18px !important;
  pointer-events: none !important;
}

/* ===== §B 标题线：魔法管理局Gal标题条 ===== */
.dossier .titleline {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 14px !important;
  margin: 0 0 12px 0 !important;
  border-radius: 18px !important;
  border: 1px solid rgba(155,40,88,0.30) !important;
  background:
    linear-gradient(90deg, rgba(155,40,88,0.16), rgba(255,255,255,0.86) 46%, rgba(126,94,170,0.12)),
    repeating-linear-gradient(135deg, rgba(155,40,88,0.06) 0 7px, transparent 7px 14px) !important;
  box-shadow: 0 10px 24px rgba(52,36,66,0.10) !important;
}

.dossier .titleline::before {
  content: "MAGICAL GIRL DOSSIER" !important;
  position: absolute !important;
  right: 14px !important;
  bottom: 3px !important;
  color: rgba(155,40,88,0.22) !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  font-weight: 900 !important;
}

.dossier .seal {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 28px !important;
  flex: 0 0 auto !important;
  border-radius: 10px !important;
  border: 1px solid rgba(155,40,88,0.55) !important;
  background:
    radial-gradient(circle, rgba(255,255,255,0.95), rgba(243,220,231,0.95)) !important;
  color: hsl(338,50%,30%) !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
  box-shadow: 0 0 0 4px rgba(155,40,88,0.08) !important;
}

.dossier .titleline b {
  color: hsl(338,50%,30%) !important;
  font-size: 1.04rem !important;
  letter-spacing: 0.08em !important;
  text-shadow: 0 1px 0 rgba(255,255,255,0.9) !important;
}

.dossier .titleline small {
  margin-left: auto !important;
  padding-right: 132px !important;
  color: hsl(270,5%,48%) !important;
  font-size: 0.76rem !important;
}

/* ===== §C 场景条：魔法扫描HUD ===== */
.dossier .topline {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  padding: 12px !important;
  margin: 0 0 14px 0 !important;
  border-radius: 18px !important;
  border: 1px solid rgba(126,94,170,0.24) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.88), rgba(246,241,249,0.92)),
    radial-gradient(circle at 0% 50%, rgba(155,40,88,0.12), transparent 45%) !important;
}

.dossier .metarow {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.dossier .metaitem {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 26px !important;
  padding: 3px 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.86) !important;
  border: 1px solid rgba(155,40,88,0.20) !important;
  color: hsl(270,6%,32%) !important;
  font-size: 0.78rem !important;
  box-shadow: inset 0 -1px 0 rgba(155,40,88,0.06) !important;
}

.dossier .metaitem::before {
  content: "✧" !important;
  margin-right: 6px !important;
  color: hsl(338,62%,42%) !important;
  font-size: 11px !important;
}

.dossier .stagehint {
  position: relative !important;
  margin-top: 9px !important;
  padding: 9px 10px 9px 28px !important;
  border-radius: 12px !important;
  background: rgba(155,40,88,0.08) !important;
  color: hsl(338,50%,30%) !important;
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
}

.dossier .stagehint::before {
  content: "🥀" !important;
  position: absolute !important;
  left: 8px !important;
  top: 8px !important;
  opacity: 0.78 !important;
}

/* ===== §D 正文叙事区：Galgame文本框 ===== */
.dossier text.text,
.dossier .text {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  margin: 14px 0 !important;
  padding: 18px 18px 18px 20px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(155,40,88,0.26) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.92), rgba(250,246,252,0.96)),
    radial-gradient(circle at 0% 100%, rgba(155,40,88,0.10), transparent 42%) !important;
  color: hsl(270,8%,7%) !important;
  line-height: 1.9 !important;
  font-size: 0.98rem !important;
  letter-spacing: 0.02em !important;
  text-align: left !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.82),
    0 14px 30px rgba(52,36,66,0.10) !important;
}

.dossier text.text::before,
.dossier .text::before {
  content: "SCENE" !important;
  position: absolute !important;
  left: 14px !important;
  top: -10px !important;
  padding: 2px 9px !important;
  border-radius: 999px !important;
  background: hsl(338,62%,42%) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: 0.14em !important;
}

.dossier text.text::first-letter,
.dossier .text::first-letter {
  color: hsl(338,50%,30%) !important;
  font-size: 1.32em !important;
  font-weight: 900 !important;
}

/* ===== §E 表情立绘：Gal CG cut-in ===== */
.dossier .sprite-emote {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 96px minmax(0,1fr) !important;
  gap: 12px !important;
  align-items: center !important;
  margin: 14px 0 !important;
  padding: 10px 12px 10px 10px !important;
  min-height: 108px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(155,40,88,0.30) !important;
  background:
    linear-gradient(90deg, rgba(155,40,88,0.13), rgba(255,255,255,0.92)),
    repeating-linear-gradient(135deg, rgba(155,40,88,0.05) 0 7px, transparent 7px 14px) !important;
  box-shadow: 0 12px 26px rgba(52,36,66,0.12) !important;
  overflow: hidden !important;
}

.dossier .sprite-emote::before {
  content: "" !important;
  display: block !important;
  width: 92px !important;
  height: 92px !important;
  border-radius: 18px !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  border: 2px solid rgba(155,40,88,0.58) !important;
  box-shadow:
    0 0 0 4px rgba(155,40,88,0.08),
    0 10px 20px rgba(52,36,66,0.14) !important;
}

.dossier .sprite-emote::after {
  content: "YOMI RIO" !important;
  position: absolute !important;
  left: 16px !important;
  bottom: 4px !important;
  color: rgba(155,40,88,0.30) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: 0.16em !important;
}

.dossier .sprite-emote span {
  display: block !important;
  color: hsl(270,8%,7%) !important;
  font-size: 0.92rem !important;
  line-height: 1.68 !important;
}

/* 表情映射 */
.dossier .emote-calm::before { background-image: url("https://i.ibb.co/39WGYsvz/20260624180532-2-2.png") !important; }
.dossier .emote-confused::before { background-image: url("https://i.ibb.co/k624RjX4/image.png") !important; }
.dossier .emote-displeased::before { background-image: url("https://i.ibb.co/BHzTDYy9/image.png") !important; }
.dossier .emote-anger::before { background-image: url("https://i.ibb.co/dwbCK3m7/image.png") !important; }
.dossier .emote-blush::before { background-image: url("https://i.ibb.co/nqCQXHzV/image.png") !important; }
.dossier .emote-surprise::before { background-image: url("https://i.ibb.co/RTWQbNdx/image.png") !important; }
.dossier .emote-cute::before { background-image: url("https://i.ibb.co/KxqTrrwp/image.png") !important; }
.dossier .emote-contempt::before { background-image: url("https://i.ibb.co/DDBcn7mZ/image.png") !important; }
.dossier .emote-tease::before { background-image: url("https://i.ibb.co/r2xjqcXs/image.png") !important; }
.dossier .emote-pain::before { background-image: url("https://i.ibb.co/5WBfyQ7Q/image.png") !important; }
.dossier .emote-smile::before { background-image: url("https://i.ibb.co/d4dm38Dz/image.png") !important; }
.dossier .emote-soft::before { background-image: url("https://i.ibb.co/5hBWLzKZ/image.png") !important; }
.dossier .emote-battle::before { background-image: url("https://i.ibb.co/qLwX81px/image.png") !important; }

/* ===== §F 内联道具 ===== */
.dossier .prop {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  margin: 12px 0 !important;
  padding: 11px 14px 11px 38px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(155,40,88,0.24) !important;
  background: rgba(255,255,255,0.86) !important;
  color: hsl(270,6%,35%) !important;
  box-shadow: 0 9px 22px rgba(52,36,66,0.08) !important;
}

.dossier .prop::before {
  content: "✦" !important;
  position: absolute !important;
  left: 13px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: hsl(338,62%,42%) !important;
}

.dossier .prop b {
  color: hsl(338,50%,30%) !important;
  margin-right: 8px !important;
}

.dossier .prop span {
  color: hsl(270,8%,7%) !important;
}

.dossier .prop-mark {
  background:
    linear-gradient(90deg, rgba(155,40,88,0.13), rgba(255,255,255,0.90)) !important;
  animation: markBreath 3.8s ease-in-out infinite !important;
}

.dossier .prop-mark::after {
  content: "BLACK ROSE SEAL" !important;
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: rgba(155,40,88,0.24) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: 0.14em !important;
}

.dossier .prop-letter {
  border-color: rgba(126,94,170,0.28) !important;
}

@keyframes markBreath {
  0% { box-shadow: 0 0 0 rgba(155,40,88,0); }
  50% { box-shadow: 0 0 18px rgba(155,40,88,0.22); }
  100% { box-shadow: 0 0 0 rgba(155,40,88,0); }
}

/* ===== §G 通用状态面板：VN系统窗口 ===== */
.dossier .playerbar,
.dossier .villainbar,
.dossier .routebar,
.dossier .markbar,
.dossier .choices,
.dossier .star-memory {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  margin: 12px 0 !important;
  border-radius: 18px !important;
  border: 1px solid rgba(155,40,88,0.24) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,244,250,0.96)) !important;
  overflow: hidden !important;
  box-shadow: 0 12px 28px rgba(52,36,66,0.10) !important;
}

.dossier .playerbar > summary,
.dossier .villainbar > summary,
.dossier .routebar > summary,
.dossier .markbar > summary,
.dossier .choices > summary,
.dossier .star-memory > summary {
  min-height: 46px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  background:
    linear-gradient(90deg, rgba(155,40,88,0.16), rgba(255,255,255,0.86), rgba(126,94,170,0.12)) !important;
  color: hsl(338,50%,30%) !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em !important;
}

/* ===== §H 夜见头像 ===== */
.dossier .npc-av {
  display: inline-block !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 auto !important;
  border-radius: 50% !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  border: 2px solid rgba(155,40,88,0.72) !important;
  box-shadow:
    0 0 0 4px rgba(155,40,88,0.10),
    0 6px 14px rgba(52,36,66,0.16) !important;
  vertical-align: middle !important;
}

.dossier .npc-av-rose {
  background-image: url("https://i.ibb.co/39WGYsvz/20260624180532-2-2.png") !important;
}

/* ===== §I 夜见服装立绘：状态栏主视觉 ===== */
.dossier .outfit-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 152px minmax(0,1fr) !important;
  gap: 14px !important;
  align-items: stretch !important;
  margin: 14px !important;
  padding: 12px !important;
  min-height: 226px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(155,40,88,0.26) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(155,40,88,0.16), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(247,241,250,0.96)) !important;
  overflow: hidden !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.78) !important;
}

.dossier .outfit-card::before {
  content: "TRANSFORMATION CARD" !important;
  position: absolute !important;
  right: 12px !important;
  top: 8px !important;
  color: rgba(155,40,88,0.20) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: 0.16em !important;
}

.dossier .outfit-card::after {
  content: "✦ ✧ ✦" !important;
  position: absolute !important;
  right: 14px !important;
  bottom: 8px !important;
  color: rgba(155,40,88,0.28) !important;
  font-size: 13px !important;
  letter-spacing: 0.16em !important;
}

.dossier .outfit-img {
  position: relative !important;
  width: 152px !important;
  height: 212px !important;
  border-radius: 18px !important;
  border: 2px solid rgba(155,40,88,0.62) !important;
  background-size: cover !important;
  background-position: top center !important;
  background-repeat: no-repeat !important;
  background-color: rgba(243,220,231,0.9) !important;
  box-shadow:
    0 0 0 5px rgba(155,40,88,0.08),
    0 16px 30px rgba(52,36,66,0.18) !important;
  overflow: hidden !important;
}

.dossier .outfit-img::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    linear-gradient(180deg, transparent 64%, rgba(58,22,44,0.24)) !important;
  pointer-events: none !important;
}

.dossier .outfit-info {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 14px 10px !important;
  color: hsl(270,8%,7%) !important;
}

.dossier .outfit-info b {
  display: block !important;
  color: hsl(338,50%,30%) !important;
  font-size: 1.02rem !important;
  letter-spacing: 0.05em !important;
}

.dossier .outfit-info b::before {
  content: "✦ " !important;
  color: hsl(338,62%,42%) !important;
}

.dossier .outfit-info span {
  display: block !important;
  color: hsl(270,6%,35%) !important;
  line-height: 1.7 !important;
  font-size: 0.9rem !important;
}

/* 服装映射：默认 / 校园 / 现实伪装 */
.dossier .outfit-school-honor .outfit-img { background-image: url("https://i.ibb.co/5XwGNr0z/image.png") !important; }
.dossier .outfit-school-council .outfit-img { background-image: url("https://i.ibb.co/cS4St5PY/image.png") !important; }
.dossier .outfit-school-raincoat .outfit-img { background-image: url("https://i.ibb.co/r2vCHQRg/image.png") !important; }
.dossier .outfit-school-nightwatch .outfit-img { background-image: url("https://i.ibb.co/MDnT59gK/image.png") !important; }
.dossier .outfit-school-library .outfit-img { background-image: url("https://i.ibb.co/zTrQZbBp/image.png") !important; }
.dossier .outfit-school-labcoat .outfit-img { background-image: url("https://i.ibb.co/hxLH0Sfm/image.png") !important; }
.dossier .outfit-school-training .outfit-img { background-image: url("https://i.ibb.co/ymH251nn/image.png") !important; }

/* 服装映射：黑蔷薇 / 战斗 / 结界 */
.dossier .outfit-battle-rose .outfit-img { background-image: url("https://i.ibb.co/5DCvw11/image.png") !important; }
.dossier .outfit-battle-darkred .outfit-img { background-image: url("https://i.ibb.co/5XPy88xP/image.png") !important; }
.dossier .outfit-battle-witch .outfit-img { background-image: url("https://i.ibb.co/svrZc7sk/image.png") !important; }
.dossier .outfit-battle-redmoon .outfit-img { background-image: url("https://i.ibb.co/RTWRfcSg/image.png") !important; }
.dossier .outfit-battle-thornknight .outfit-img { background-image: url("https://i.ibb.co/7NgdYKm0/image.png") !important; }
.dossier .outfit-battle-assassin .outfit-img { background-image: url("https://i.ibb.co/zWjtT4Vj/image.png") !important; }
.dossier .outfit-battle-judgement .outfit-img { background-image: url("https://i.ibb.co/3yyRdpM3/image.png") !important; }
.dossier .outfit-battle-raven .outfit-img { background-image: url("https://i.ibb.co/DHcmTYYF/image.png") !important; }

/* 服装映射：高危 / 觉醒 / 战损 */
.dossier .outfit-risk-awakened .outfit-img { background-image: url("https://i.ibb.co/jP31dDYb/image.png") !important; }
.dossier .outfit-risk-thornbacklash .outfit-img { background-image: url("https://i.ibb.co/39fJbLL4/image.png") !important; }
.dossier .outfit-risk-oldwound .outfit-img { background-image: url("https://i.ibb.co/Q3kKZppY/image.png") !important; }
.dossier .outfit-risk-overload .outfit-img { background-image: url("https://i.ibb.co/nM3qL6Wd/image.png") !important; }
.dossier .outfit-risk-bloodmoon .outfit-img { background-image: url("https://i.ibb.co/ycCTmt7W/image.png") !important; }
.dossier .outfit-risk-collapse .outfit-img { background-image: url("https://i.ibb.co/kgFX3XQW/image.png") !important; }
.dossier .outfit-risk-rainlost .outfit-img { background-image: url("https://i.ibb.co/F4SsjTYJ/image.png") !important; }

/* 服装映射：女王 / 礼服 / 压迫感 */
.dossier .outfit-queen-throne .outfit-img { background-image: url("https://i.ibb.co/VWLh3TND/image.png") !important; }
.dossier .outfit-queen-military .outfit-img { background-image: url("https://i.ibb.co/Ps51JFdJ/image.png") !important; }
.dossier .outfit-queen-command .outfit-img { background-image: url("https://i.ibb.co/r27gn0sm/image.png") !important; }
.dossier .outfit-queen-blackgold .outfit-img { background-image: url("https://i.ibb.co/dwC0c3HV/image.png") !important; }
.dossier .outfit-formal-banquet .outfit-img { background-image: url("https://i.ibb.co/sJs15Hd8/image.png") !important; }
.dossier .outfit-formal-moon .outfit-img { background-image: url("https://i.ibb.co/MkSW0gFn/image.png") !important; }
.dossier .outfit-formal-council .outfit-img { background-image: url("https://i.ibb.co/CsPFcz78/image.png") !important; }
.dossier .outfit-formal-funeral .outfit-img { background-image: url("https://i.ibb.co/p6pLkd7P/image.png") !important; }

/* 服装映射：私服 / 约会 / 城市支线 */
.dossier .outfit-date-cafe .outfit-img { background-image: url("https://i.ibb.co/DHbcd5qb/image.png") !important; }
.dossier .outfit-date-bookstore .outfit-img { background-image: url("https://i.ibb.co/JWf5wkB6/image.png") !important; }
.dossier .outfit-date-flower .outfit-img { background-image: url("https://i.ibb.co/VcWmR7WN/image.png") !important; }
.dossier .outfit-date-aquarium .outfit-img { background-image: url("https://i.ibb.co/hSzFbwV/image.png") !important; }
.dossier .outfit-date-rainafter .outfit-img { background-image: url("https://i.ibb.co/RTRrChJb/image.png") !important; }
.dossier .outfit-casual-blackwhite .outfit-img { background-image: url("https://i.ibb.co/KxyXHXq8/image.png") !important; }
.dossier .outfit-casual-rooftop .outfit-img { background-image: url("https://i.ibb.co/bjjqMJpv/image.png") !important; }
.dossier .outfit-casual-coat .outfit-img { background-image: url("https://i.ibb.co/7d0WWvC1/image.png") !important; }

/* 服装映射：梦境 / 休息 / 私密 */
.dossier .outfit-dream-rose-robe .outfit-img { background-image: url("https://i.ibb.co/spj6DP0J/image.png") !important; }
.dossier .outfit-dream-moon-robe .outfit-img { background-image: url("https://i.ibb.co/chqnrX0r/image.png") !important; }
.dossier .outfit-dream-stars .outfit-img { background-image: url("https://i.ibb.co/8D9k7BzX/image.png") !important; }
.dossier .outfit-rest-sick .outfit-img { background-image: url("https://i.ibb.co/PZ5d9ynn/image.png") !important; }
.dossier .outfit-rest-shirt .outfit-img { background-image: url("https://i.ibb.co/4ZdqRpDq/image.png") !important; }
.dossier .outfit-rest-darkgray .outfit-img { background-image: url("https://i.ibb.co/GfWJJMFL/image.png") !important; }

/* 服装映射：特殊 / 伪装 / 事件 */
.dossier .outfit-special-butler .outfit-img { background-image: url("https://i.ibb.co/gFM6HP93/image.png") !important; }
.dossier .outfit-special-maid .outfit-img { background-image: url("https://i.ibb.co/tp0jQ46R/image.png") !important; }
.dossier .outfit-special-thief .outfit-img { background-image: url("https://i.ibb.co/RGXcFgGq/image.png") !important; }
.dossier .outfit-special-miko .outfit-img { background-image: url("https://i.ibb.co/N2Fqs1N2/image.png") !important; }
.dossier .outfit-special-nun .outfit-img { background-image: url("https://i.ibb.co/0yBrVhv6/image.png") !important; }
.dossier .outfit-special-nurse .outfit-img { background-image: url("https://i.ibb.co/RGDPHMKB/image.png") !important; }
.dossier .outfit-special-teacher .outfit-img { background-image: url("https://i.ibb.co/s9NYBqXX/image.png") !important; }
.dossier .outfit-special-yukata .outfit-img { background-image: url("https://i.ibb.co/tMvkFdYd/image.png") !important; }

/* 服装映射：谨慎使用 / 私密高张力 */
.dossier .outfit-caution-laceblack .outfit-img { background-image: url("https://i.ibb.co/wNgnyJQS/image.png") !important; }
.dossier .outfit-caution-moonsilk .outfit-img { background-image: url("https://i.ibb.co/S4Yxzny9/image.png") !important; }
.dossier .outfit-caution-pearl .outfit-img { background-image: url("https://i.ibb.co/1Y76RgbG/image.png") !important; }
.dossier .outfit-caution-redsilk .outfit-img { background-image: url("https://i.ibb.co/mrFT9F99/image.png") !important; }
.dossier .outfit-caution-swim .outfit-img { background-image: url("https://i.ibb.co/Wvtrmcw1/image.png") !important; }

/* ===== §J 关系条 ===== */
.dossier .npc-rel {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 14px 14px 14px !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(155,40,88,0.22) !important;
  background:
    linear-gradient(90deg, rgba(155,40,88,0.12), rgba(255,255,255,0.92)) !important;
  color: hsl(270,6%,35%) !important;
  font-size: 0.86rem !important;
}

.dossier .npc-rel b {
  color: hsl(338,50%,30%) !important;
}

.dossier .npc-fav {
  display: inline-block !important;
  height: 9px !important;
  width: 0 !important;
  min-width: 14px !important;
  max-width: 128px !important;
  border-radius: 999px !important;
  background:
    repeating-linear-gradient(45deg, hsl(338,62%,42%) 0 7px, hsl(338,50%,30%) 7px 14px) !important;
  box-shadow: 0 0 12px rgba(155,40,88,0.32) !important;
}

.dossier .npc-fav.p0 { width: 0 !important; }
.dossier .npc-fav.p10 { width: 13px !important; }
.dossier .npc-fav.p20 { width: 26px !important; }
.dossier .npc-fav.p30 { width: 38px !important; }
.dossier .npc-fav.p40 { width: 51px !important; }
.dossier .npc-fav.p50 { width: 64px !important; }
.dossier .npc-fav.p60 { width: 77px !important; }
.dossier .npc-fav.p70 { width: 90px !important; }
.dossier .npc-fav.p80 { width: 102px !important; }
.dossier .npc-fav.p90 { width: 115px !important; }
.dossier .npc-fav.p100 { width: 128px !important; }

/* ===== §K 状态栅格：Gal系统菜单 ===== */
.dossier .stategrid,
.dossier .signalgrid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit,minmax(145px,1fr)) !important;
  gap: 9px !important;
  padding: 14px !important;
}

.dossier .state {
  position: relative !important;
  min-height: 48px !important;
  padding: 9px 10px 9px 13px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(126,94,170,0.20) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.88), rgba(246,241,249,0.94)) !important;
  color: hsl(270,8%,7%) !important;
  overflow: hidden !important;
}

.dossier .state::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 9px !important;
  bottom: 9px !important;
  width: 4px !important;
  border-radius: 0 4px 4px 0 !important;
  background: linear-gradient(180deg, hsl(338,62%,42%), hsl(270,32%,58%)) !important;
}

.dossier .state span {
  display: block !important;
  margin-bottom: 4px !important;
  color: hsl(270,5%,50%) !important;
  font-size: 0.72rem !important;
  line-height: 1.2 !important;
  letter-spacing: 0.05em !important;
}

.dossier .state b {
  display: block !important;
  color: hsl(270,8%,7%) !important;
  font-size: 0.88rem !important;
  line-height: 1.38 !important;
}

.dossier .routebar .state:first-child b,
.dossier .markbar .state:first-child b {
  color: hsl(338,50%,30%) !important;
}

/* ===== §L 推荐行动：Galgame选项按钮 ===== */
.dossier .choices {
  counter-reset: choiceNum !important;
}

.dossier .choicegrid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  padding: 14px !important;
}

.dossier .choice {
  counter-increment: choiceNum !important;
  position: relative !important;
  padding: 12px 14px 12px 46px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(155,40,88,0.26) !important;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.96), rgba(243,220,231,0.72)) !important;
  color: hsl(270,8%,7%) !important;
  line-height: 1.5 !important;
  box-shadow: 0 8px 18px rgba(52,36,66,0.08) !important;
  transition: transform 0.14s ease, border-color 0.18s ease, background 0.18s ease !important;
}

.dossier .choice::before {
  content: counter(choiceNum) !important;
  position: absolute !important;
  left: 13px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: hsl(338,62%,42%) !important;
  color: #fff !important;
  font-size: 0.74rem !important;
  font-weight: 900 !important;
  box-shadow: 0 0 0 4px rgba(155,40,88,0.10) !important;
}

.dossier .choice:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(155,40,88,0.58) !important;
  background:
    linear-gradient(90deg, rgba(243,220,231,0.92), rgba(255,255,255,0.96)) !important;
}

/* ===== §M 警报 ===== */
.dossier .warning {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  margin: 12px 0 !important;
  padding: 12px 14px 12px 42px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(155,40,88,0.48) !important;
  background:
    linear-gradient(90deg, rgba(155,40,88,0.16), rgba(255,255,255,0.90)) !important;
  color: hsl(338,50%,30%) !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 24px rgba(155,40,88,0.12) !important;
}

.dossier .warning::before {
  content: "⚠" !important;
  position: absolute !important;
  left: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: hsl(338,62%,42%) !important;
  font-size: 18px !important;
}

/* ===== §N 叙事锚点回廊 ===== */
.dossier .star-memory table {
  font-size: 0.82rem !important;
}

.dossier .star-memory summary {
  color: hsl(338,50%,30%) !important;
}

/* ===== §Z 响应式与降速 ===== */
@media (max-width: 520px) {
  .dossier {
    padding: 10px !important;
    border-radius: 18px !important;
  }

  .dossier .titleline {
    flex-wrap: wrap !important;
  }

  .dossier .titleline small {
    width: 100% !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
  }

  .dossier .metaitem {
    width: 100% !important;
  }

  .dossier text.text,
  .dossier .text {
    padding: 16px 12px !important;
    font-size: 0.93rem !important;
    line-height: 1.78 !important;
  }

  .dossier .sprite-emote {
    grid-template-columns: 76px minmax(0,1fr) !important;
    min-height: 92px !important;
  }

  .dossier .sprite-emote::before {
    width: 72px !important;
    height: 72px !important;
    border-radius: 15px !important;
  }

  .dossier .outfit-card {
    grid-template-columns: 112px minmax(0,1fr) !important;
    min-height: 176px !important;
    margin: 10px !important;
    gap: 10px !important;
  }

  .dossier .outfit-img {
    width: 112px !important;
    height: 158px !important;
    border-radius: 15px !important;
  }

  .dossier .outfit-info {
    padding: 8px 4px !important;
  }

  .dossier .outfit-info b {
    font-size: 0.92rem !important;
  }

  .dossier .outfit-info span {
    font-size: 0.82rem !important;
    line-height: 1.55 !important;
  }

  .dossier .stategrid,
  .dossier .signalgrid {
    grid-template-columns: 1fr !important;
    padding: 10px !important;
  }

  .dossier .choice {
    border-radius: 16px !important;
    padding-left: 42px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dossier .prop-mark {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .dossier .choice,
  .dossier .sprite-emote {
    transition-duration: 0.01ms !important;
  }
}