/* ═══════════════════════════════════════════════════════════
   CSS Custom Properties — 一次性定义重复值
   ═══════════════════════════════════════════════════════════ */
:root {
  --zn-pri:    #C44569;   /* 主题色/强调 */
  --zn-pri-lt: #E8A0BF;   /* 主题色浅 */
  --zn-pri-xl: #F5C6D0;   /* 主题色极浅/边框 */
  --zn-gold:   #FDCB6E;   /* 金色点缀 */
  --zn-text:   #3D3028;   /* 正文色 */
  --zn-bg-1:   #FFFAF5;   /* 底色最浅 */
  --zn-bg-2:   #FFF5F0;   /* 底色中 */
  --zn-bg-3:   #FFF0F5;   /* 底色深 */
  --zn-blue:   #5DADE2;   /* 蓝色系 */
  --zn-green:  #A0D9B4;   /* 绿色系 */
  --zn-font:   'Noto Serif SC','Georgia','Songti SC','SimSun',serif;
}

/* ═══ B平台加载动画适配（自动注入）═══ */
.flex.items-center.justify-center.size-6 { opacity: 1 !important; }
.flex.items-center.justify-center.size-6 > .flex.gap-2 { display: none !important; }
.is-assistant.w-fit { width: 100% !important; }
.is-assistant > .border.border-muted:has(.flex.items-center.justify-center.size-6) {
  width: 100% !important; background: transparent !important;
  border: none !important; padding: 0 !important;
}
.is-assistant .space-y-3:has(.flex.items-center.justify-center.size-6) {
  display: flex; justify-content: center; width: 100%;
}

/* ═══ B平台表格修正（自动注入）═══ */
.rili-markdown-renderer table     { display:table!important;          table-layout:auto!important; width:100%!important; border-collapse:collapse!important; }
.rili-markdown-renderer table caption { display:table-caption!important; caption-side:top!important; text-align:center!important; padding:8px!important; }
.rili-markdown-renderer thead     { display:table-header-group!important; }
.rili-markdown-renderer tbody     { display:table-row-group!important; }
.rili-markdown-renderer tr        { display:table-row!important; }
.rili-markdown-renderer th,
.rili-markdown-renderer td        { display:table-cell!important; }

/* ═══ B平台按钮组保护（自动注入）═══ */
.w-full.h-full.flex.group .bg-muted.rounded.flex.p-0\.5,
.is-user .bg-muted.rounded.flex.p-0\.5,
.is-assistant .bg-muted.rounded.flex.p-0\.5 {
  display: flex !important; visibility: visible !important; opacity: 1 !important;
  overflow: visible !important; position: relative !important;
  width: auto !important; height: auto !important; max-height: none !important;
  pointer-events: auto !important; clip: auto !important; clip-path: none !important;
}
.w-full.h-full.flex.group .bg-muted.rounded.flex.p-0\.5 > button,
.is-user .bg-muted.rounded.flex.p-0\.5 > button,
.is-assistant .bg-muted.rounded.flex.p-0\.5 > button {
  display: inline-flex !important; visibility: visible !important; opacity: 1 !important;
  pointer-events: auto !important; position: relative !important;
  clip: auto !important; clip-path: none !important;
}
.flex.items-center.gap-1.ml-auto.md\:opacity-0.group-hover\:opacity-100 {
  visibility: visible !important; display: flex !important;
  pointer-events: auto !important; overflow: visible !important;
}
.flex.w-full.items-center.justify-between.gap-2.px-2 {
  display: flex !important; visibility: visible !important; overflow: visible !important;
}

/* ═══ B平台顶部栏适配说明（自动注入）═══ */
header.flex.justify-between { position: relative; overflow: visible; }

/* ═══════════════════════════════════════════════════════════
   PART A: 动画 + 叙事卡片系统
   ═══════════════════════════════════════════════════════════ */

/* A-0: 动画定义 */
@keyframes zn-fade-in    { 0%{opacity:0;transform:translateY(8px)} 100%{opacity:1;transform:translateY(0)} }
@keyframes zn-breath     { 0%,100%{opacity:.85;filter:brightness(1)} 50%{opacity:1;filter:brightness(1.08)} }
@keyframes zn-flow       { 0%{background-position:0 0} 100%{background-position:200% 0} }
@keyframes zn-pulse      { 0%,100%{transform:scale(1)} 50%{transform:scale(1.05)} }
@keyframes zn-shimmer    { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes zn-float      { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes zn-spin       { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} }
@keyframes zn-scan       { 0%{left:-30%} 100%{left:130%} }
@keyframes zn-glow-pulse { 0%,100%{box-shadow:0 0 4px rgba(196,69,105,.2)} 50%{box-shadow:0 0 12px rgba(196,69,105,.4)} }
@keyframes zn-ring-load  { from{stroke-dasharray:0,100} }
@keyframes zn-bar-grow   { from{width:0} }
@keyframes zn-petal-fall { 0%{transform:translateY(-20px) rotate(0deg);opacity:0} 10%{opacity:.7} 100%{transform:translateY(100vh) rotate(720deg);opacity:0} }
@keyframes zn-silk-wave  { 0%{background-position:0 0} 100%{background-position:100px 50px} }
@keyframes zn-heart-beat { 0%,100%{transform:scale(1)} 14%{transform:scale(1.1)} 28%{transform:scale(1)} 42%{transform:scale(1.1)} 70%{transform:scale(1)} }
@keyframes zn-chain-sway { 0%,100%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} }
@keyframes zn-alert-blink{ 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes zn-typing     { from{width:0} to{width:100%} }
@keyframes zn-caret-blink{ 50%{border-color:transparent} }
@keyframes zn-expand     { from{max-height:0;opacity:0} to{max-height:2000px;opacity:1} }
@keyframes zn-dot-load   { 0%,80%,100%{transform:scale(0)} 40%{transform:scale(1)} }

/* A-1: 顶层容器 */
.zn-wrap {
  background: linear-gradient(180deg,var(--zn-bg-1) 0%,var(--zn-bg-2) 30%,var(--zn-bg-3) 70%,var(--zn-bg-1) 100%) !important;
  padding:10px !important; font-family:var(--zn-font) !important;
  color:var(--zn-text) !important; font-size:14px !important; line-height:1.7 !important;
  position:relative !important; overflow:hidden !important; border-radius:8px !important;
}
.zn-wrap::before {
  content:""; position:absolute; top:0; left:0; width:100%; height:100%;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 5C25 15 15 25 5 30C15 35 25 45 30 55C35 45 45 35 55 30C45 25 35 15 30 5Z' fill='none' stroke='%23E8A0BF' stroke-width='.3' opacity='.15'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='1' fill='%23FDCB6E' opacity='.12'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10 40Q20 20 40 10Q60 20 70 40Q60 60 40 70Q20 60 10 40Z' fill='none' stroke='%23F5C6D0' stroke-width='.2' opacity='.1'/%3E%3C/svg%3E");
  background-size:60px 60px,40px 40px,80px 80px;
  animation:zn-silk-wave 30s linear infinite; pointer-events:none; z-index:0;
}
.zn-wrap>* { position:relative; z-index:1 }

/* A-2: 通用模块卡片 */
.zn-mod {
  background:#FFF !important; border:1.5px solid var(--zn-pri-xl) !important;
  border-radius:8px !important; margin-bottom:10px !important;
  box-shadow:3px 3px 0 var(--zn-pri-xl),0 2px 8px rgba(196,69,105,.06) !important;
  animation:zn-fade-in .6s ease both !important; overflow:hidden !important;
  transition:box-shadow .3s ease !important;
}
.zn-mod:hover { box-shadow:4px 4px 0 var(--zn-pri-lt),0 4px 16px rgba(196,69,105,.1) !important }

/* A-3: Summary 折叠标题栏 */
.zn-sum {
  padding:10px 14px !important; font-weight:800 !important; cursor:pointer !important;
  list-style:none !important; display:flex !important; align-items:center !important;
  gap:8px !important; background:linear-gradient(90deg,var(--zn-bg-1),var(--zn-bg-2)) !important;
  border-bottom:1.5px solid transparent !important; font-size:13px !important;
  color:var(--zn-text) !important; transition:all .3s ease !important;
  position:relative !important; overflow:hidden !important;
}
.zn-sum::-webkit-details-marker { display:none !important }
.zn-sum::after {
  content:""; position:absolute; top:0; left:-30%; width:30%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(253,203,110,.15),transparent);
  animation:zn-scan 4s ease-in-out infinite;
}
.zn-mod[open]>.zn-sum { border-bottom-color:var(--zn-pri-xl) !important; color:var(--zn-pri) !important }
.zn-ttl { flex:1 !important; letter-spacing:1px !important; font-size:12px !important }
.zn-fold-arrow {
  width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent;
  border-top:6px solid var(--zn-pri); transition:transform .3s ease;
}
.zn-mod[open] .zn-fold-arrow { transform:rotate(180deg) }

/* A-4: SVG 图标系统（内联 data URI，保持原始 hex 以保证精确渲染） */
.zn-ico { display:inline-block; width:18px; height:18px; background-size:contain; background-repeat:no-repeat; flex-shrink:0 }
.zn-ico-cot      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z' fill='%23C44569'/%3E%3Cpath d='M8 12l2 2 4-4' stroke='%23C44569' stroke-width='2' fill='none'/%3E%3C/svg%3E") }
.zn-ico-env      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='5' stroke='%23FDCB6E' stroke-width='2'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.93 4.93l2.12 2.12M16.95 16.95l2.12 2.12M4.93 19.07l2.12-2.12M16.95 7.05l2.12-2.12' stroke='%23FDCB6E' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-news     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='4' width='18' height='16' rx='2' stroke='%23E8A0BF' stroke-width='2'/%3E%3Cpath d='M7 8h10M7 12h6' stroke='%23E8A0BF' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-user     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='8' r='4' stroke='%235DADE2' stroke-width='2'/%3E%3Cpath d='M4 20c0-4 3.58-7 8-7s8 3 8 7' stroke='%235DADE2' stroke-width='2'/%3E%3C/svg%3E") }
.zn-ico-char     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='9' cy='7' r='3' stroke='%23C44569' stroke-width='1.5'/%3E%3Ccircle cx='15' cy='7' r='3' stroke='%23E8A0BF' stroke-width='1.5'/%3E%3Cpath d='M2 19c0-3 2.5-5 7-5s7 2 7 5M10 19c0-3 2.5-5 7-5s5 2 5 5' stroke='%23C44569' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-npc      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='8' cy='6' r='2.5' stroke='%23A0D9B4' stroke-width='1.5'/%3E%3Ccircle cx='16' cy='6' r='2.5' stroke='%23A0D9B4' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='10' r='2.5' stroke='%23A0D9B4' stroke-width='1.5'/%3E%3Cpath d='M3 18c0-2.5 2-4 5-4M13 14c3 0 5 1.5 5 4M8 18c0-2.5 1.8-4 4-4s4 1.5 4 4' stroke='%23A0D9B4' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-rep      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3l2.5 5 5.5.8-4 3.9.9 5.3L12 15.5 7.1 18l.9-5.3-4-3.9 5.5-.8L12 3z' stroke='%23FDCB6E' stroke-width='1.5' fill='%23FDCB6E' fill-opacity='.2'/%3E%3C/svg%3E") }
.zn-ico-opinion  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M3 18V6M7 18V10M11 18V8M15 18V12M19 18V4M23 18V9' stroke='%23E8A0BF' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") }
.zn-ico-contract { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='5' y='3' width='14' height='18' rx='2' stroke='%23C44569' stroke-width='1.5'/%3E%3Cpath d='M9 8h6M9 12h4M12 16l-1 2h2l-1-2z' stroke='%23C44569' stroke-width='1.2'/%3E%3C/svg%3E") }
.zn-ico-heart    { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z' fill='%23FF6B8A' opacity='.7'/%3E%3C/svg%3E") }
.zn-ico-shield   { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 2L4 6v5c0 5.25 3.4 10.2 8 11.6 4.6-1.4 8-6.35 8-11.6V6L12 2z' stroke='%235DADE2' stroke-width='1.5'/%3E%3Cpath d='M9 12l2 2 4-4' stroke='%235DADE2' stroke-width='2'/%3E%3C/svg%3E") }
.zn-ico-flame    { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c-1 4-4 6-4 10a4 4 0 008 0c0-4-3-6-4-10z' fill='%23FF6B35' opacity='.6'/%3E%3Cpath d='M12 8c-.5 2-2 3-2 5a2 2 0 004 0c0-2-1.5-3-2-5z' fill='%23FDCB6E' opacity='.8'/%3E%3C/svg%3E") }
.zn-ico-bolt     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2L4 14h7l-2 8 9-12h-7l2-8z' fill='%23FDCB6E'/%3E%3C/svg%3E") }
.zn-ico-flower   { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='3' fill='%23FDCB6E' opacity='.5'/%3E%3Cellipse cx='12' cy='6' rx='3' ry='4' fill='%23F5C6D0' opacity='.5'/%3E%3Cellipse cx='12' cy='18' rx='3' ry='4' fill='%23F5C6D0' opacity='.5'/%3E%3Cellipse cx='6' cy='12' rx='4' ry='3' fill='%23E8A0BF' opacity='.5'/%3E%3Cellipse cx='18' cy='12' rx='4' ry='3' fill='%23E8A0BF' opacity='.5'/%3E%3C/svg%3E") }
.zn-ico-butterfly{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 4v16M8 8c-4-2-6 2-4 5s4 3 4 3M16 8c4-2 6 2 4 5s-4 3-4 3' stroke='%23C44569' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-balance  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3v18M5 7l7-4 7 4M5 7l-2 8h4L5 7zM19 7l-2 8h4l-2-8z' stroke='%239B59B6' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-star     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z' fill='%23FDCB6E' opacity='.6'/%3E%3C/svg%3E") }
.zn-ico-route    { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='5' cy='5' r='2' stroke='%23C44569' stroke-width='1.5'/%3E%3Ccircle cx='19' cy='5' r='2' stroke='%23E8A0BF' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='19' r='2' stroke='%23FDCB6E' stroke-width='1.5'/%3E%3Cpath d='M7 6l5 11M17 6l-5 11' stroke='%23F5C6D0' stroke-width='1' stroke-dasharray='3 2'/%3E%3C/svg%3E") }
.zn-ico-bag      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='8' width='18' height='13' rx='2' stroke='%23FDCB6E' stroke-width='1.5'/%3E%3Cpath d='M8 8V6a4 4 0 018 0v2' stroke='%23FDCB6E' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-alert    { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2L2 20h20L12 2z' fill='none' stroke='%23FF6B35' stroke-width='2'/%3E%3Cpath d='M12 9v4M12 16v1' stroke='%23FF6B35' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") }
.zn-ico-mem      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='4' y='3' width='16' height='18' rx='2' stroke='%23A0B4D9' stroke-width='1.5'/%3E%3Cpath d='M8 7h8M8 11h6M8 15h4' stroke='%23A0B4D9' stroke-width='1.2'/%3E%3C/svg%3E") }
.zn-ico-time     { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='8' stroke='%23C44569' stroke-width='1.5'/%3E%3Cpath d='M10 5v5l3 3' stroke='%23C44569' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") }
.zn-ico-loc      { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 2C6.5 2 4 4.5 4 7.5 4 12 10 18 10 18s6-6 6-10.5C16 4.5 13.5 2 10 2z' stroke='%23E8A0BF' stroke-width='1.5'/%3E%3Ccircle cx='10' cy='7.5' r='2' stroke='%23E8A0BF' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-weather  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 14a4 4 0 01-.5-7.97A5.5 5.5 0 0116.46 8 3.5 3.5 0 0116 14H6z' stroke='%23FDCB6E' stroke-width='1.5'/%3E%3C/svg%3E") }
.zn-ico-scene    { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Crect x='2' y='4' width='16' height='12' rx='2' stroke='%23A0D9B4' stroke-width='1.5'/%3E%3Cpath d='M2 12l4-3 3 2 4-4 5 5' stroke='%23A0D9B4' stroke-width='1'/%3E%3C/svg%3E") }

/* A-5: 思维链模块 */
.zn-cot      { border-color:#F0E0E8 !important; box-shadow:2px 2px 0 #F0E0E8 !important }
.zn-sum-cot  { background:linear-gradient(90deg,#FFF8FC,#FFF5F8) !important }
.zn-cot-body {
  padding:12px 14px !important; font-size:12px !important; color:#8B7B8B !important;
  line-height:1.6 !important; background:linear-gradient(180deg,#FDFAFE,#FBF5F9) !important;
}
.zn-cot-sec {
  font-weight:700 !important; color:var(--zn-pri) !important; margin:8px 0 4px !important;
  padding-left:8px !important; border-left:3px solid var(--zn-pri-lt) !important; font-size:12px !important;
}
.zn-cot-line { margin:2px 0 !important; padding-left:12px !important; font-size:11.5px !important }

/* A-6: 时空环境模块 */
.zn-sum-env  { background:linear-gradient(90deg,#FFFBF0,#FFF8E8) !important }
.zn-env-body {
  padding:10px 14px !important; display:grid !important; grid-template-columns:1fr 1fr !important; gap:6px !important;
}
.zn-env-row {
  display:flex !important; align-items:center !important; gap:6px !important;
  padding:4px 8px !important; background:#FFFDF8 !important; border-radius:4px !important; border:1px solid #FFF0D0 !important;
}
.zn-env-ico   { width:16px; height:16px; background-size:contain; background-repeat:no-repeat; flex-shrink:0 }
.zn-env-label { font-size:11px !important; color:#999 !important; min-width:28px !important }
.zn-env-val   { font-size:12px !important; font-weight:600 !important; color:var(--zn-text) !important }

/* A-7: 新闻模块 */
.zn-sum-news  { background:linear-gradient(90deg,#FFF5F8,var(--zn-bg-1)) !important }
.zn-news-body { padding:10px 14px !important }
.zn-news-ticker {
  display:flex !important; align-items:center !important; gap:8px !important;
  padding:6px 10px !important; margin-bottom:4px !important; border-radius:4px !important;
  background:#FFFBF8 !important; border-left:3px solid var(--zn-pri-lt) !important; font-size:12px !important;
}
.zn-news-dot {
  width:6px !important; height:6px !important; border-radius:50% !important;
  background:var(--zn-pri) !important; animation:zn-breath 2s ease-in-out infinite !important; flex-shrink:0 !important;
}
.zn-news-text { color:#5D4E60 !important }

/* A-8: 正文区（核心） */
.zn-story {
  box-shadow:4px 4px 0 var(--zn-pri-lt),0 3px 12px rgba(196,69,105,.08) !important;
  border-color:var(--zn-pri-lt) !important;
}
.zn-story-head {
  background:linear-gradient(90deg,var(--zn-pri),var(--zn-pri-lt)) !important;
  color:#FFF !important; padding:6px 14px !important; font-size:11px !important;
  display:flex !important; justify-content:space-between !important; align-items:center !important;
  letter-spacing:2px !important; font-weight:700 !important;
}
.zn-story-label { font-size:11px !important }
.zn-story-count { font-size:10px !important; opacity:.8 !important }
.zn-story-body {
  max-height:70vh !important; overflow-y:auto !important; padding:20px !important;
  font-size:15px !important; line-height:2 !important; text-align:justify !important;
  color:var(--zn-text) !important;
  scrollbar-width:thin !important; scrollbar-color:var(--zn-pri-lt) transparent !important;
}
.zn-story-body::-webkit-scrollbar       { width:5px !important }
.zn-story-body::-webkit-scrollbar-track { background:transparent !important }
.zn-story-body::-webkit-scrollbar-thumb {
  background:linear-gradient(180deg,var(--zn-pri-lt),var(--zn-pri-xl)) !important; border-radius:10px !important;
}
.zn-story-body p { text-indent:2em !important; margin:0 0 12px !important }

/* A-9: 通用字段系统 */
.zn-field {
  display:flex !important; align-items:flex-start !important; gap:8px !important;
  padding:4px 0 !important; border-bottom:1px dashed #F5E6E8 !important; font-size:13px !important;
}
.zn-field:last-child { border-bottom:none !important }
.zn-label  { color:#999 !important; font-size:11px !important; min-width:52px !important; flex-shrink:0 !important; padding-top:1px !important }
.zn-val    { color:var(--zn-text) !important; font-size:13px !important; word-break:break-word !important }
.zn-thought{ color:var(--zn-pri) !important; font-style:italic !important }
.zn-sub-title {
  font-size:12px !important; font-weight:700 !important; color:var(--zn-pri) !important;
  margin:10px 0 6px !important; padding:4px 8px !important;
  background:linear-gradient(90deg,#FFF5F8,transparent) !important;
  border-left:3px solid var(--zn-pri-lt) !important; border-radius:0 4px 4px 0 !important;
}
.zn-field-thought { background:#FFFBFC !important; border-radius:4px !important; padding:6px 8px !important; margin:4px 0 !important }

/* A-10: 性别区块 */
.zn-male-block   { border-left:3px solid var(--zn-blue) !important; padding-left:10px !important; margin:8px 0 !important; background:#F8FCFF !important; border-radius:0 6px 6px 0 !important }
.zn-female-block { border-left:3px solid #E74C7C !important;   padding-left:10px !important; margin:8px 0 !important; background:#FFF8FA !important; border-radius:0 6px 6px 0 !important }
.zn-male-title   { color:#2E86C1 !important; border-left-color:var(--zn-blue) !important }
.zn-female-title { color:#C0392B !important; border-left-color:#E74C7C !important }

/* A-11: User 状态栏 + A-12: 交互角色模块 */
.zn-sum-user  { background:linear-gradient(90deg,#F0F8FF,#F5FCFF) !important }
.zn-user-body { padding:12px 14px !important }
.zn-sum-char  { background:linear-gradient(90deg,#FFF5F8,#FFF0F2) !important }
.zn-char-body { padding:8px !important }
.zn-char-card {
  background:#FFFBFC !important; border:1px solid #F5D6E0 !important;
  border-radius:6px !important; margin-bottom:8px !important; overflow:hidden !important;
}
.zn-char-name {
  padding:8px 12px !important; font-weight:700 !important; cursor:pointer !important;
  list-style:none !important; display:flex !important; align-items:center !important;
  gap:8px !important; font-size:13px !important; color:var(--zn-pri) !important;
  background:linear-gradient(90deg,#FFF8FA,var(--zn-bg-1)) !important;
}
.zn-char-name::-webkit-details-marker{display:none !important}
.zn-char-avatar { width:24px !important; height:24px !important; border-radius:50% !important; background:linear-gradient(135deg,var(--zn-pri-lt),var(--zn-pri-xl)) !important; flex-shrink:0 !important }
.zn-char-rel { font-size:10px !important; color:#999 !important; margin-left:auto !important; background:#F5F0F2 !important; padding:2px 6px !important; border-radius:10px !important }
.zn-char-info{ padding:10px 12px !important }

/* A-13: 进度条系统 */
.zn-bar      { flex:1 !important; height:10px !important; background:#F0E8EA !important; border-radius:5px !important; overflow:hidden !important; border:1px solid #E8D8DC !important; position:relative !important }
.zn-bar-fill { height:100% !important; border-radius:5px !important; transition:width 1s ease !important; animation:zn-bar-grow 1.2s ease-out both !important; width:calc(var(--v) * 1%) !important }
.zn-bar-aff  { background:linear-gradient(90deg,#FFB3C6,#FF6B8A) !important }
.zn-bar-loy  { background:linear-gradient(90deg,#87CEEB,#4A90D9) !important }
.zn-bar-pos  { background:linear-gradient(90deg,#FFD700,#FF6B35) !important }
.zn-bar-stamina { background:linear-gradient(90deg,#90EE90,#32CD32) !important }
.zn-bar-cor  { background:linear-gradient(90deg,#DDA0DD,#8B008B) !important }
.zn-bar-sens { background:linear-gradient(90deg,#FFB6C1,#FF1493) !important }
.zn-bar-s    { background:linear-gradient(90deg,#FF7F7F,#CC0000) !important }
.zn-bar-m    { background:linear-gradient(90deg,#B19CD9,#6A0DAD) !important }
.zn-bar-num  { font-size:11px !important; color:#888 !important; min-width:50px !important; text-align:right !important; flex-shrink:0 !important }
.zn-bar-wide { height:14px !important }
.zn-var-row  { display:flex !important; align-items:center !important; gap:6px !important; padding:4px 0 !important; font-size:12px !important }
.zn-var-label{ min-width:60px !important; font-size:12px !important; flex-shrink:0 !important }
.zn-var-phase{ font-size:10px !important; color:var(--zn-pri) !important; background:#FFF0F3 !important; padding:1px 6px !important; border-radius:8px !important; white-space:nowrap !important }

/* A-14: NPC群像模块 */
.zn-sum-npc { background:linear-gradient(90deg,#F0FFF5,#F5FFF8) !important }
.zn-npc-body{ padding:8px !important; max-height:400px !important; overflow-y:auto !important }
.zn-npc-body::-webkit-scrollbar       { width:4px !important }
.zn-npc-body::-webkit-scrollbar-thumb { background:var(--zn-green) !important; border-radius:4px !important }
.zn-npc-card   { padding:10px !important; background:#FDFFFD !important; border:1px solid #D0E8D0 !important; border-radius:6px !important; margin-bottom:6px !important }
.zn-npc-header { display:flex !important; align-items:center !important; gap:8px !important; margin-bottom:6px !important }
.zn-npc-avatar { width:20px !important; height:20px !important; border-radius:50% !important; background:linear-gradient(135deg,var(--zn-green),#7BC98A) !important; flex-shrink:0 !important }
.zn-npc-name   { font-weight:700 !important; font-size:13px !important; color:#3D6B3D !important }
.zn-npc-tag    { font-size:10px !important; background:#E8F5E8 !important; color:#5A8A5A !important; padding:1px 6px !important; border-radius:8px !important; margin-left:auto !important }
.zn-npc-row    { display:flex !important; gap:6px !important; padding:2px 0 !important; font-size:12px !important; border-bottom:1px dashed #E8F0E8 !important }
.zn-npc-row:last-child { border-bottom:none !important }
.zn-npc-divider { height:1px !important; background:linear-gradient(90deg,transparent,var(--zn-green),transparent) !important; margin:4px 0 !important }

/* A-15: 环形图 */
.zn-ring-chart { width:80px !important; height:80px !important; position:relative !important; margin:0 auto 10px !important }
.zn-ring-svg   { width:100% !important; height:100% !important; transform:rotate(-90deg) !important }
.zn-ring-bg    { fill:none !important; stroke:#F0E0E8 !important; stroke-width:3 !important }
.zn-ring-fill  { fill:none !important; stroke-width:2.5 !important; stroke-linecap:round !important; animation:zn-ring-load 1.5s ease-out forwards !important }
.zn-ring-rep     { stroke:var(--zn-gold) !important }
.zn-ring-stamina { stroke:#32CD32 !important }
.zn-ring-text    { position:absolute !important; top:50% !important; left:50% !important; transform:translate(-50%,-50%) !important; font-size:13px !important; font-weight:800 !important; color:var(--zn-text) !important }
.zn-rep-body, .zn-stamina-body { padding:14px !important; display:flex !important; align-items:center !important; gap:16px !important }
.zn-rep-info, .zn-stamina-info { flex:1 !important }
.zn-stamina-gauge { flex-shrink:0 !important }

/* A-16: 舆论温度计 */
.zn-opinion-body { padding:14px !important }
.zn-thermo {
  position:relative !important; height:20px !important;
  background:linear-gradient(90deg,#CCC,#87CEEB,#90EE90,var(--zn-gold),#FF6B35) !important;
  border-radius:10px !important; overflow:hidden !important; border:1px solid #DDD !important; margin-bottom:8px !important;
}
.zn-thermo-fill {
  position:absolute !important; top:0 !important; left:0 !important; height:100% !important;
  width:calc(var(--v) * 1%) !important; background:rgba(255,255,255,.4) !important;
  border-right:3px solid var(--zn-pri) !important; transition:width 1s ease !important;
}
.zn-thermo-marks { display:flex !important; justify-content:space-between !important; font-size:9px !important; color:#888 !important; margin-top:4px !important }

/* A-17: 契约管理 */
.zn-sum-contract { background:linear-gradient(90deg,#FFF8F0,#FFF5F5) !important }
.zn-contract-body { padding:10px !important }
.zn-contract-card {
  padding:10px !important; border:1px solid #F0D8D8 !important; border-radius:6px !important;
  margin-bottom:8px !important; position:relative !important; overflow:hidden !important; background:#FFFBFB !important;
}
.zn-contract-card::before {
  content:""; position:absolute; top:0; right:0; width:40px; height:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M10 2a2 2 0 012 0l0 0a2 2 0 012 0M6 8h12M8 8v8M12 8v8M16 8v8' stroke='%23C44569' stroke-width='1' opacity='.15'/%3E%3C/svg%3E");
  background-size:contain; opacity:.3; animation:zn-chain-sway 3s ease-in-out infinite;
}
.zn-contract-header { font-weight:700 !important; color:var(--zn-pri) !important; font-size:13px !important; margin-bottom:6px !important; padding-bottom:4px !important; border-bottom:1px solid #F5D6D6 !important }
.zn-contract-type   { font-weight:700 !important }

/* A-18~21: 堕落值 / S/M倾向 / 敏感度 / 性癖图鉴 — 合并共享样式 */
.zn-corrupt-body,.zn-sm-body,.zn-sensitive-body,.zn-fetish-body { padding:14px !important }
.zn-corrupt-target,.zn-sm-target,.zn-sensitive-target,.zn-fetish-target {
  font-weight:700 !important; color:var(--zn-pri) !important; font-size:13px !important; margin-bottom:8px !important; text-align:center !important;
}
.zn-corrupt-bar-wrap { margin-bottom:8px !important }
.zn-corrupt-phases   { display:flex !important; justify-content:space-between !important; font-size:9px !important; color:#999 !important; margin-top:4px !important }
.zn-cor-phase        { text-align:center !important }
.zn-sm-dual          { display:flex !important; gap:12px !important; margin-bottom:8px !important }
.zn-sm-side          { flex:1 !important }
.zn-sm-label         { font-size:11px !important; font-weight:700 !important; margin-bottom:4px !important; display:block !important }
.zn-sm-s .zn-sm-label{ color:#CC0000 !important }
.zn-sm-m .zn-sm-label{ color:#6A0DAD !important }
.zn-sensitive-grid   { display:grid !important; grid-template-columns:1fr !important; gap:4px !important }
.zn-sens-item        { display:flex !important; align-items:center !important; gap:6px !important; font-size:12px !important }
.zn-sens-part        { min-width:60px !important; font-size:11px !important; color:#666 !important }
.zn-fetish-grid      { display:grid !important; grid-template-columns:1fr 1fr !important; gap:6px !important }
.zn-fetish-card      { padding:8px 10px !important; border-radius:6px !important; text-align:center !important; font-size:12px !important; border:1px solid #EEE !important; transition:all .3s ease !important }
.zn-fetish-unlocked  { background:#FFF8FA !important; border-color:var(--zn-pri-xl) !important }
.zn-fetish-unlocked:hover { transform:translateY(-2px) !important; box-shadow:0 4px 8px rgba(196,69,105,.1) !important }
.zn-fetish-locked    { background:#F5F5F5 !important; color:#BBB !important; border-color:#E0E0E0 !important }
.zn-fetish-name      { display:block !important; font-weight:600 !important; margin-bottom:2px !important }
.zn-fetish-stars     { font-size:10px !important; color:var(--zn-gold) !important }

/* A-22: 剧情路线 + A-23: 背包 */
.zn-route-body { padding:12px !important }
.zn-route-main,.zn-route-sub,.zn-route-rumor {
  padding:8px 10px !important; margin-bottom:6px !important; border-radius:6px !important;
  border:1px solid #F0E0E8 !important; position:relative !important; overflow:hidden !important;
}
.zn-route-main  { background:#FFF8FA !important; border-color:var(--zn-pri-lt) !important }
.zn-route-sub   { background:var(--zn-bg-1) !important; border-color:var(--zn-gold) !important }
.zn-route-rumor { background:#F8FFF8 !important; border-color:var(--zn-green) !important }
.zn-route-label{
  font-size:10px !important; font-weight:700 !important; color:var(--zn-pri) !important;
  background:#FFF0F3 !important; padding:1px 6px !important; border-radius:8px !important; margin-right:6px !important;
}
.zn-route-name  { font-weight:700 !important; font-size:13px !important; color:var(--zn-text) !important }
.zn-route-desc  { font-size:12px !important; color:#666 !important; margin:4px 0 0 !important }
.zn-route-reward{ font-size:11px !important; color:var(--zn-gold) !important; font-weight:600 !important }
.zn-inv-body    { padding:12px !important }
.zn-inv-money   { text-align:center !important; font-size:14px !important; font-weight:700 !important; margin-bottom:8px !important; padding:6px !important; background:#FFF9E6 !important; border-radius:6px !important; border:1px solid var(--zn-gold) !important }
.zn-inv-coin    { margin-right:4px !important }
.zn-inv-grid    { display:grid !important; grid-template-columns:1fr 1fr !important; gap:6px !important }
.zn-inv-slot    { padding:6px 8px !important; background:#FFFDF8 !important; border:1px solid #F0E8D8 !important; border-radius:4px !important; display:flex !important; justify-content:space-between !important; font-size:12px !important }
.zn-inv-empty   { color:#CCC !important; border-style:dashed !important }
.zn-inv-item    { font-weight:600 !important }
.zn-inv-qty     { color:#888 !important; font-size:11px !important }

/* A-24: 预警面板 + A-25: 记忆区 */
.zn-sum-alert  { background:linear-gradient(90deg,#FFF5F0,#FFF8F5) !important }
.zn-alert-body { padding:10px !important }
.zn-alert-item { display:flex !important; align-items:center !important; gap:8px !important; padding:6px 10px !important; margin-bottom:4px !important; border-radius:4px !important; font-size:12px !important }
.zn-alert-warn  { background:#FFF9E6 !important; border-left:3px solid var(--zn-gold) !important }
.zn-alert-info  { background:#F0F8FF !important; border-left:3px solid var(--zn-blue) !important }
.zn-alert-danger{ background:#FFF0F0 !important; border-left:3px solid #E74C3C !important; animation:zn-alert-blink 2s ease-in-out infinite !important }
.zn-alert-icon  { font-size:14px !important; flex-shrink:0 !important }
.zn-alert-text  { color:#555 !important }
.zn-alert-ranks,.zn-alert-todo { margin-top:8px !important; padding:8px !important; background:#FAFAFA !important; border-radius:4px !important; border:1px solid #EEE !important }
.zn-sum-mem     { background:linear-gradient(90deg,#F0F5FF,#F5F8FF) !important }
.zn-mem-body    { padding:10px !important }
.zn-mem-section { margin-bottom:10px !important }
.zn-mem-title   { font-size:12px !important; font-weight:700 !important; color:#4A6FA0 !important; margin-bottom:6px !important; padding:4px 8px !important; background:#F0F5FF !important; border-radius:4px !important; border-left:3px solid #4A6FA0 !important }
.zn-mem-table   { font-size:11px !important }
.zn-mem-row     { display:grid !important; grid-template-columns:30px 1fr 80px 2fr !important; gap:4px !important; padding:4px 6px !important; border-bottom:1px solid #F0F0F0 !important; align-items:start !important }
.zn-mem-header  { font-weight:700 !important; color:#666 !important; background:#F8FAFF !important; border-radius:3px !important }
.zn-mem-cell    { font-size:11px !important; word-break:break-word !important }

/* A-26: 行动选项 */
.zn-options {
  background:#FFF !important; border:1.5px solid var(--zn-pri-lt) !important;
  border-radius:8px !important; padding:12px !important; box-shadow:3px 3px 0 var(--zn-pri-lt) !important; margin-bottom:10px !important;
}
.zn-opt-title { font-size:12px !important; font-weight:800 !important; color:var(--zn-pri) !important; margin-bottom:8px !important; letter-spacing:1px !important; padding-bottom:6px !important; border-bottom:1px solid #F5D6E0 !important }
.zn-opt-list  { display:flex !important; flex-direction:column !important; gap:6px !important }
.zn-opt {
  padding:10px 14px !important; background:#FFFBFC !important; border:1px solid #F0D8E0 !important;
  border-radius:6px !important; font-size:13px !important; line-height:1.6 !important;
  color:#5D4060 !important; cursor:pointer !important; transition:all .3s ease !important;
  position:relative !important; overflow:hidden !important;
}
.zn-opt::before {
  content:""; position:absolute; left:0; top:0; width:3px; height:100%;
  background:var(--zn-pri); transform:scaleY(0); transform-origin:bottom; transition:transform .3s ease;
}
.zn-opt:hover {
  border-color:var(--zn-pri) !important; transform:translateX(4px) !important;
  box-shadow:-3px 0 0 var(--zn-pri) !important; background:#FFF5F8 !important;
}
.zn-opt:hover::before { transform:scaleY(1) !important; transform-origin:top !important }
.zn-opt::after {
  content:""; position:absolute; top:0; left:-100%; width:100%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(232,160,191,.08),transparent);
  transition:left .5s ease;
}
.zn-opt:hover::after { left:100% !important }

/* A-27: 移动端适配 */
@media(max-width:768px){
  .zn-wrap          { padding:6px !important; font-size:13px !important }
  .zn-story-body    { max-height:60vh !important; padding:14px !important; font-size:14px !important; line-height:1.85 !important }
  .zn-env-body      { grid-template-columns:1fr !important }
  .zn-mem-row       { grid-template-columns:24px 1fr !important }
  .zn-mem-row .zn-mem-cell:nth-child(3){ display:none !important }
  .zn-fetish-grid   { grid-template-columns:1fr !important }
  .zn-inv-grid      { grid-template-columns:1fr !important }
  .zn-sum           { padding:8px 10px !important; font-size:12px !important }
  .zn-field         { font-size:12px !important }
  .zn-sm-dual       { flex-direction:column !important }
  .zn-ring-chart    { width:65px !important; height:65px !important }
  .zn-rep-body,
  .zn-stamina-body  { flex-direction:column !important; align-items:center !important }
}

/* ═══════════════════════════════════════════════════════════
   PART B: 聊天框美化
   ═══════════════════════════════════════════════════════════ */

/* B-1: 隐藏顶部颜色装饰条 */
[class*="bg-[#F1CBCB]"],[class*="bg-[#c9e1e9]"]{ display:none !important }

/* B-2: 统一聊天框美化（用户 + AI） */
.is-user > .border.border-muted,
.is-assistant > .border.border-muted {
  background:linear-gradient(135deg,var(--zn-bg-1) 0%,#FFF8F0 50%,var(--zn-bg-2) 100%) !important;
  border:1.5px solid var(--zn-pri-xl) !important;
  border-radius:10px !important;
  box-shadow:4px 4px 0 var(--zn-pri-lt),0 3px 15px rgba(196,69,105,.06) !important;
  margin-bottom:16px !important; overflow:visible !important;
  transition:all .3s ease !important; position:relative !important;
}
/* B-2b: ↑修复 — ::before 仅作用于 .is-assistant */
.is-assistant > .border.border-muted::before {
  content:""; position:absolute; top:-1px; left:20px; right:20px; height:2px;
  background:linear-gradient(90deg,transparent,var(--zn-pri-lt),var(--zn-gold),var(--zn-pri-lt),transparent) !important;
  border-radius:2px;
}
/* B-2c: ↑修复 — :hover 独立为一组，作用于两者 */
.is-user > .border.border-muted:hover,
.is-assistant > .border.border-muted:hover {
  box-shadow:5px 5px 0 var(--zn-pri),0 6px 20px rgba(196,69,105,.1) !important;
  transform:translateY(-1px) !important;
}

/* B-3: 用户发言框单独色 */
.is-user > .border.border-muted {
  border-color:var(--zn-gold) !important;
  box-shadow:4px 4px 0 var(--zn-gold),0 3px 15px rgba(253,203,110,.08) !important;
}

/* B-4: 文本渲染 */
.rili-markdown-renderer {
  color:var(--zn-text) !important; font-family:var(--zn-font) !important; line-height:1.8 !important;
}

/* B-5: 底部按钮 — ↑修复: 第二个声明块补上 :hover */
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7 {
  color:var(--zn-pri) !important; border-radius:6px !important; transition:all .3s ease !important;
}
.bg-muted.rounded.flex.p-0\.5 > button.rounded-full.size-7:hover {
  background:rgba(196,69,105,.08) !important; transform:scale(1.05) !important;
}

/* B-6: 模型名称 */
.flex.items-center.gap-2.text-xs.font-mono.text-muted-foreground {
  color:var(--zn-pri-lt) !important; font-size:11px !important; font-weight:600 !important;
}

/* B-7: 加载动画替换 */
.flex.items-center.justify-center.size-6 > .flex.gap-2 { display:none !important }
.flex.items-center.justify-center.size-6::after {
  content:""; display:inline-block; width:20px; height:20px;
  border:2px solid var(--zn-pri-xl); border-top-color:var(--zn-pri); border-radius:50%;
  animation:zn-spin .8s linear infinite;
}

/* ═══════════════════════════════════════════════════════════
   PART C: 界面美化（顶栏 / 底栏 / 评论区）
   ═══════════════════════════════════════════════════════════ */

/* C-1: 顶部栏 */
header.flex.justify-between {
  background:linear-gradient(90deg,var(--zn-bg-1),var(--zn-bg-2),var(--zn-bg-3)) !important;
  backdrop-filter:blur(12px) !important; border-bottom:2px solid var(--zn-pri-xl) !important;
  box-shadow:0 3px 12px rgba(196,69,105,.06) !important; position:relative !important;
}
header.flex.justify-between::after {
  content:""; position:absolute; bottom:-2px; left:0; width:100%; height:2px;
  background:linear-gradient(90deg,var(--zn-pri),var(--zn-pri-lt),var(--zn-gold),var(--zn-pri-lt),var(--zn-pri));
  background-size:200% 100%; animation:zn-shimmer 4s ease infinite;
}

/* C-2: 模型选择器 */
#nav-middle .group.flex.items-center {
  background:rgba(196,69,105,.06) !important; border-radius:8px !important;
  padding:4px 8px !important; transition:all .3s ease !important;
}
#nav-middle .group.flex.items-center:hover { background:rgba(196,69,105,.12) !important }
#nav-middle button:has(> .flex-1.truncate.text-left) .flex-1.truncate.text-left {
  color:var(--zn-pri) !important; font-weight:700 !important;
}

/* C-3: 设置按钮 */
#nav-right button { color:var(--zn-pri) !important; transition:all .3s ease !important }
#nav-right button:hover { transform:rotate(30deg) !important; color:var(--zn-pri-lt) !important }

/* C-4: 按钮栏 */
#ai-mod-button2 { background:transparent !important }
#ai-mod-button2 button.MuiButton-root {
  color:var(--zn-pri) !important; border:1px solid var(--zn-pri-xl) !important;
  border-radius:16px !important; margin:2px !important; font-size:12px !important;
  background:var(--zn-bg-1) !important; transition:all .3s ease !important;
}
#ai-mod-button2 button.MuiButton-root:hover {
  background:var(--zn-bg-3) !important; border-color:var(--zn-pri) !important;
  transform:translateY(-1px) !important; box-shadow:0 2px 6px rgba(196,69,105,.15) !important;
}
#ai-mod-button2 button.MuiButton-root svg { color:var(--zn-pri-lt) !important }

/* C-5: 底部输入栏 */
.bg-gradient-to-t { background:linear-gradient(to top,var(--zn-bg-1),rgba(255,250,245,.8),transparent) !important }
#ai-chat-bottom-input {
  background:#FFF !important; border:2px solid var(--zn-pri-xl) !important;
  border-radius:12px !important; box-shadow:3px 3px 0 var(--zn-pri-lt),0 2px 8px rgba(196,69,105,.06) !important;
  transition:all .3s cubic-bezier(.175,.885,.32,1.275) !important;
}
#ai-chat-bottom-input:focus-within {
  border-color:var(--zn-pri) !important;
  box-shadow:4px 4px 0 var(--zn-pri),0 4px 16px rgba(196,69,105,.1) !important;
  transform:translateY(-2px) !important;
}
#ai-chat-input { color:var(--zn-text) !important; font-family:var(--zn-font) !important; font-size:14px !important }
#ai-chat-input::placeholder { color:#D0B0B8 !important; font-style:italic !important }
#ai-chat-input::selection  { background:var(--zn-pri-xl) !important; color:var(--zn-text) !important }

/* C-6: 分页栏 */
.MuiPaginationItem-root { color:var(--zn-pri) !important; border-color:var(--zn-pri-xl) !important; transition:all .3s ease !important }
.MuiPaginationItem-root:hover { background:var(--zn-bg-3) !important }
.MuiPaginationItem-root.Mui-selected { background:linear-gradient(135deg,var(--zn-pri),var(--zn-pri-lt)) !important; color:#FFF !important; border-color:transparent !important }
.MuiPaginationItem-root.Mui-disabled { color:#DDD !important }
.MuiPaginationItem-icon { color:var(--zn-pri) !important }
.flex.w-full.items-center.justify-between.gap-2.px-2.css-1uwir8f .MuiBox-root { color:#999 !important; font-size:12px !important }
.MuiInputBase-input { border:1px solid var(--zn-pri-xl) !important; border-radius:4px !important; color:var(--zn-pri) !important }

/* C-7: 评论区 */
div[class*="w-full"][class*="bg-white"][class*="bottom-0"] { background:linear-gradient(180deg,var(--zn-bg-1),var(--zn-bg-2)) !important }
div.text-lg.font-bold        { color:var(--zn-pri) !important }
p.MuiTypography-body1.text-grey-600 { color:#999 !important }
span.MuiRating-iconEmpty svg  { color:#F0D8DC !important }
span.MuiRating-iconFilled svg { color:var(--zn-gold) !important }
div.flex.flex-col.border-gray-200 { border-color:var(--zn-pri-xl) !important }
textarea.rc-textarea {
  background:#FFFDF8 !important; border:1px solid var(--zn-pri-xl) !important;
  border-radius:8px !important; color:var(--zn-text) !important; font-size:13px !important;
}
textarea.rc-textarea:focus { border-color:var(--zn-pri) !important; box-shadow:0 0 0 2px rgba(196,69,105,.1) !important }
div.bg-gray-100.text-gray-500 { background:#FFF5F8 !important; color:var(--zn-pri) !important }
div.cursor-pointer.group.flex.items-center.justify-center {
  color:var(--zn-pri) !important; transition:all .3s ease !important;
}
div.cursor-pointer.group.flex.items-center.justify-center:hover { transform:scale(1.1) !important }
div.style_divider__mW0YX { background:var(--zn-pri-xl) !important }
button.MuiButton-containedPrimary {
  background:linear-gradient(135deg,var(--zn-pri),var(--zn-pri-lt)) !important;
  color:#FFF !important; border:none !important; border-radius:16px !important;
}
button.MuiButton-outlinedPrimary { color:var(--zn-pri) !important; border-color:var(--zn-pri-xl) !important; border-radius:16px !important }
button.MuiButton-outlinedPrimary:hover { background:var(--zn-bg-3) !important }
div.p-3.overflow-y-auto { scrollbar-width:thin !important; scrollbar-color:var(--zn-pri-lt) transparent !important }
div.group.ml-0 { border-radius:6px !important; transition:background .2s !important }
div.group.ml-0:hover { background:var(--zn-bg-1) !important }
div.group img.rounded-full { border:2px solid var(--zn-pri-xl) !important }
div.text-sm.text-grey-600 span.font-bold { color:var(--zn-pri) !important }
span.text-\[10px\] { color:var(--zn-pri-lt) !important; background:#FFF5F8 !important; border-radius:4px !important; padding:0 3px !important }
div.break-all { color:var(--zn-text) !important; line-height:1.7 !important }
div.text-xs.text-grey-600 { color:#BBB !important }
button.text-gray-400 { color:var(--zn-pri-lt) !important; transition:color .2s !important }
button.text-gray-400:hover { color:var(--zn-pri) !important }
button.text-gray-400 svg { transition:transform .2s !important }
button.text-gray-400:hover svg { transform:scale(1.2) !important }
span.cursor-pointer { color:var(--zn-pri) !important; font-weight:600 !important }
span.cursor-pointer:hover { text-decoration:underline !important }
div.ml-8.border-l { border-color:var(--zn-pri-xl) !important }