/* ════════════════════════════════════════════════════════════
   天命 · 文人书房 · 素雅水墨 — UI Design System v2
   三层Token架构: Primitive → Semantic → Component
   ════════════════════════════════════════════════════════════ */

/* ═══ Layer 1: Primitive Tokens ═══ */
:root{
  /* 墨色阶梯 (Ink Scale) */
  --ink-50:#f8f3e8;--ink-100:#ede5d0;--ink-200:#d4c9b0;--ink-300:#9d917d;--ink-400:#6b5d4f;--ink-500:#3a3530;--ink-600:#2a2520;--ink-700:#1c1914;--ink-800:#12100e;--ink-900:#0a0908;
  /* 金色 */
  --gold-300:#d4be7a;--gold-400:#b89a53;--gold-500:#8a6d2b;--gold-600:#6b5010;
  /* 朱砂 */
  --vermillion-300:#d4706a;--vermillion-400:#c04030;--vermillion-500:#8b2e25;
  /* 青瓷 */
  --celadon-300:#a3d4c7;--celadon-400:#7eb8a7;--celadon-500:#5a8f7f;
  /* 靛青 */
  --indigo-400:#4a6fa5;--indigo-500:#3a5580;
  /* 语义原色 */
  --green-400:#7a9e6d;--red-400:#a84535;--amber-400:#c9a84c;
  /* 间距 (4px grid) */
  --space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  /* 字号 (中文优化) */
  --text-xs:0.95rem;--text-sm:1.05rem;--text-base:1.18rem;--text-md:1.28rem;--text-lg:1.42rem;--text-xl:1.6rem;--text-2xl:1.9rem;--text-3xl:2.45rem;
  /* 行高 */
  --leading-tight:1.4;--leading-normal:1.7;--leading-relaxed:1.9;--leading-loose:2.1;
  /* 字重 */
  --weight-normal:400;--weight-medium:500;--weight-bold:700;
  /* 圆角 */
  --radius-sm:3px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--radius-full:9999px;
  /* 阴影 */
  --shadow-xs:0 1px 2px rgba(10,9,8,0.15);--shadow-sm:0 1px 4px rgba(10,9,8,0.25);--shadow-md:0 4px 12px rgba(10,9,8,0.35);--shadow-lg:0 8px 24px rgba(10,9,8,0.45);--shadow-xl:0 12px 40px rgba(10,9,8,0.55);--shadow-ink:0 0 20px rgba(10,9,8,0.5);--shadow-gold:0 0 12px rgba(184,154,83,0.1);
  /* 动画 */
  --duration-fast:150ms;--duration-normal:200ms;--duration-slow:300ms;--duration-modal:350ms;
  --ease-out:cubic-bezier(0.0,0,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  /* z-index */
  --z-base:0;--z-dropdown:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-popover:50;--z-toast:60;--z-loading:70;--z-tooltip:100;
  /* 字体 */
  --font-serif:"STKaiti","KaiTi","楷体","Noto Serif SC","Source Han Serif CN","SimSun","STSong",serif;
  --font-mono:"LXGW WenKai Mono","Noto Sans Mono",monospace;
}
/* 小薇字库外科（2026-07-03）：所携 TTF 有九个绕向损坏的实心字形（回圃圄圊崮徊愀淋蛔·内框填死成墨块·
   全游戏正文凡「回合」皆成豆腐）。unicode-range 白名单剔除九字·坏字自然回退楷体（cmap 有映射浏览器不回退·
   只能从声明侧圈走）。九字码点：56DE/5703/5704/570A/5D2E/5F8A/6100/6DCB/86D4。 */
@font-face{font-family:"TM-ZCOOL-XiaoWei";src:url("assets/fonts/ZCOOLXiaoWei-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-56DD,U+56DF-5702,U+5705-5709,U+570B-5D2D,U+5D2F-5F89,U+5F8B-60FF,U+6101-6DCA,U+6DCC-86D3,U+86D5-10FFFF;}
@font-face{font-family:"TM-ZCOOL-QingKe";src:url("assets/fonts/ZCOOLQingKeHuangYou-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"TM-MaShanZheng";src:url("assets/fonts/MaShanZheng-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"TM-LongCang";src:url("assets/fonts/LongCang-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}

/* ═══ Layer 2: Semantic Tokens ═══ */
:root{
  --color-background:var(--ink-800);--color-surface:var(--ink-700);--color-elevated:var(--ink-600);--color-sunken:var(--ink-900);
  --color-foreground:var(--ink-50);--color-foreground-secondary:var(--ink-200);--color-foreground-muted:var(--gold-300);
  --color-border:var(--ink-500);--color-border-subtle:var(--ink-600);--color-border-emphasis:var(--gold-500);
  --color-primary:var(--gold-400);--color-primary-hover:var(--gold-300);--color-primary-foreground:var(--ink-900);
  --color-accent:var(--vermillion-400);--color-accent-subtle:rgba(192,64,48,0.12);
  --color-info:var(--celadon-400);--color-info-subtle:rgba(126,184,167,0.12);
  --color-success:var(--green-400);--color-destructive:var(--red-400);--color-warning:var(--amber-400);
  --color-ring:var(--gold-500);--color-hover-overlay:rgba(184,154,83,0.04);
  /* 向后兼容旧变量名 */
  --bg-0:var(--ink-900);--bg-1:var(--ink-800);--bg-2:var(--ink-700);--bg-3:var(--ink-600);--bg-4:var(--ink-500);
  --gold:var(--gold-400);--gold-l:var(--gold-300);--gold-d:var(--gold-500);
  --red:var(--vermillion-400);--green:var(--green-400);--blue:var(--indigo-400);--purple:#8e44ad;
  --txt:var(--color-foreground);--txt-s:var(--color-foreground-secondary);--txt-d:var(--color-foreground-muted);
  --bdr:var(--color-border);--r:var(--radius-md);
  --shadow-sm:0 1px 4px rgba(10,9,8,0.25);--shadow-md:0 4px 12px rgba(10,9,8,0.35);--shadow-lg:0 8px 24px rgba(10,9,8,0.45);
  --shadow-gold:0 0 12px rgba(184,154,83,0.1);--ease:var(--ease-out);
}

/* ═══ Layer 2 续: 5套主题 (仅覆盖semantic tokens) ═══ */
/* 素宣 (Paper Light) */
[data-theme="light"],[data-theme="paper"] {
  --color-background:var(--ink-50);--color-surface:#fff;--color-elevated:var(--ink-100);--color-sunken:var(--ink-200);
  --color-foreground:var(--ink-800);--color-foreground-secondary:var(--ink-400);--color-foreground-muted:var(--ink-300);
  --color-border:var(--ink-200);--color-border-subtle:var(--ink-100);--color-border-emphasis:var(--gold-500);
  --bg-0:var(--ink-50);--bg-1:#fff;--bg-2:var(--ink-100);--bg-3:var(--ink-200);--bg-4:var(--ink-300);
  --txt:var(--ink-800);--txt-s:var(--ink-400);--txt-d:var(--ink-300);--bdr:var(--ink-200);
  --bg-0:#f8f8f8;
  --bg-1:#ffffff;
  --bg-2:#f0f0f0;
  --bg-3:#e8e8e8;
  --bg-4:#d8d8d8;
  --gold:#b8860b;
  --gold-l:#daa520;
  --gold-d:#8b6914;
  --red:#c0392b;
  --green:#27ae60;
  --blue:#2980b9;
  --purple:#8e44ad;
  --txt:#2c2c2c;
  --txt-s:#666666;
  --txt-d:#999999;
  --bdr:#cccccc;
}

/* 古卷 (Aged Scroll) */
[data-theme="sepia"],[data-theme="scroll"] {
  --color-background:#1a1510;--color-surface:#221c15;--color-elevated:#2a2318;
  --color-foreground:#e0d4be;--color-foreground-secondary:#a09480;--color-foreground-muted:#706050;
  --color-border:#3a3020;--color-border-subtle:#2a2318;
  --bg-0:#1a1510;--bg-1:#221c15;--bg-2:#2a2318;--bg-3:#3a3020;--bg-4:#4a4030;
  --txt:#e0d4be;--txt-s:#a09480;--txt-d:#706050;--bdr:#3a3020;
  --gold:#b89a53;
  --gold-l:#d4be7a;
  --gold-d:#8a6d2b;
  --red:#c04030;
  --green:#7a9e6d;
  --blue:#4a6fa5;
  --purple:#8e44ad;
}

[data-theme="blue"] {
  --bg-0:#0a0e14;
  --bg-1:#0f1419;
  --bg-2:#151a21;
  --bg-3:#1d2430;
  --bg-4:#252e3e;
  --gold:#5ccfe6;
  --gold-l:#80d9ed;
  --gold-d:#3ca8bf;
  --red:#f07178;
  --green:#c2d94c;
  --blue:#59c2ff;
  --purple:#d4bfff;
  --txt:#d9d7ce;
  --txt-s:#8a8a7a;
  --txt-d:#5a5a4a;
  --bdr:#2a3440;
}

/* 青瓷 (Celadon) */
[data-theme="green"],[data-theme="celadon"] {
  --color-background:#0e1515;--color-surface:#152020;--color-elevated:#1a2a2a;
  --color-primary:var(--celadon-400);--color-primary-hover:var(--celadon-300);
  --bg-0:#0e1515;--bg-1:#152020;--bg-2:#1a2a2a;--bg-3:#253535;--bg-4:#304545;
  --gold:var(--celadon-400);--gold-l:var(--celadon-300);--gold-d:var(--celadon-500);
  --txt:#e0ece8;--txt-s:#8aaa9e;--txt-d:#5a7a6e;--bdr:#253535;
  --red:#ff7b72;--green:#7ee787;--blue:#79c0ff;--purple:#d2a8ff;
}
/* 朱门 (Vermillion Gate) */
[data-theme="vermillion"] {
  --color-background:#150e0e;--color-surface:#201515;--color-elevated:#2a1a1a;
  --color-primary:var(--vermillion-400);--color-primary-hover:var(--vermillion-300);
  --color-accent:var(--gold-400);
  --bg-0:#150e0e;--bg-1:#201515;--bg-2:#2a1a1a;--bg-3:#352020;--bg-4:#452a2a;
  --gold:var(--vermillion-400);--gold-l:var(--vermillion-300);--gold-d:var(--vermillion-500);
  --txt:#f0ddd5;--txt-s:#b0908a;--txt-d:#706058;--bdr:#352020;
}

/* 2.8: 高对比度主题 */
[data-theme="highcontrast"] {
  --color-background:#000000;--color-surface:#0a0a0a;--color-elevated:#1a1a1a;
  --color-foreground:#ffffff;--color-foreground-muted:#e0e0e0;
  --color-primary:#ffff00;--color-primary-hover:#ffff66;
  --color-accent:#00ffff;
  --color-border:#ffffff;--color-border-subtle:#888888;--color-border-emphasis:#ffffff;
  --bg-0:#000000;--bg-1:#0a0a0a;--bg-2:#1a1a1a;--bg-3:#2a2a2a;--bg-4:#3a3a3a;
  --gold:#ffff00;--gold-l:#ffff66;--gold-d:#cccc00;
  --gold-300:#ffff66;--gold-400:#ffff00;--gold-500:#cccc00;--gold-600:#999900;
  --txt:#ffffff;--txt-s:#e0e0e0;--txt-d:#bbbbbb;--bdr:#ffffff;
  --red:#ff4444;--green:#44ff44;--blue:#4444ff;--purple:#ff44ff;
  --celadon-400:#44ff44;--vermillion-400:#ff4444;--indigo-400:#8888ff;--amber-400:#ffaa00;
  --ink-300:#cccccc;--ink-400:#aaaaaa;--ink-600:#888888;--ink-800:#666666;
  --shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-gold:none;
}
[data-theme="highcontrast"] .ngui-action,[data-theme="highcontrast"] .bt,[data-theme="highcontrast"] .zz-item{border-width:2px;}
[data-theme="highcontrast"] a{color:#00ffff;text-decoration:underline;}
[data-theme="highcontrast"] :focus-visible{outline:3px solid #ffff00;outline-offset:2px;}

/* ═══ Global Reset & Base ═══ */
*{margin:0;padding:0;box-sizing:border-box;}
/* 2.8: 键盘导航焦点指示 */
:focus-visible{outline:2px solid var(--color-primary,#c9a849);outline-offset:2px;border-radius:var(--radius-sm,4px);}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--color-primary,#c9a849);outline-offset:2px;}
body{font-family:var(--font-serif);background:var(--color-background);color:var(--color-foreground);min-height:100vh;font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"tnum";}
::-webkit-scrollbar{width:5px;}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm);}::-webkit-scrollbar-thumb:hover{background:var(--color-primary);}
::selection{background:rgba(184,154,83,0.25);color:var(--gold-300);}
input,textarea,select{pointer-events:auto!important;position:relative;z-index:10;font-family:var(--font-serif);}
/* reduced-motion support */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;}}

/* ═══ 水墨装饰工具类 ═══ */
.ink-divider{border:none;height:1px;background:linear-gradient(to right,transparent 0%,var(--color-border) 15%,var(--color-border-emphasis) 50%,var(--color-border) 85%,transparent 100%);margin:var(--space-4) 0;}
.paper-texture{background-image:repeating-linear-gradient(90deg,transparent,transparent 2em,rgba(107,93,79,0.04) 2em,rgba(107,93,79,0.04) calc(2em + 1px));}
.seal-active{position:relative;}.seal-active::after{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--vermillion-400);border-radius:1px;transform:rotate(3deg);box-shadow:0 0 3px rgba(192,64,48,0.4);}
.scroll-panel{position:relative;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background-image:linear-gradient(to bottom,rgba(184,154,83,0.06) 0%,transparent 40px);}
.scroll-panel::before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);border-radius:1px;}
.stat-number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-0.02em;font-weight:var(--weight-bold);}
.narrative-text{line-height:var(--leading-loose);text-indent:2em;letter-spacing:0.02em;}
.label-text{font-size:var(--text-sm);letter-spacing:0.08em;color:var(--color-foreground-muted);}

/* 通用组件 */
.cd{background:var(--bg-2);border:1px solid var(--bdr);border-radius:var(--r);padding:1rem;margin-bottom:0.8rem;transition:all 0.25s var(--ease);box-shadow:var(--shadow-sm);}
.cd:hover{border-color:rgba(201,168,76,0.3);box-shadow:var(--shadow-md),var(--shadow-gold);transform:translateY(-1px);}
.cd h4{color:var(--gold);font-size:0.9rem;margin-bottom:0.6rem;font-weight:700;}
.rw{display:flex;gap:0.8rem;margin-bottom:0.6rem;flex-wrap:wrap;}
.fd{display:flex;flex-direction:column;flex:1;min-width:160px;}
.fd.full{min-width:100%;}.fd.q{min-width:20%;max-width:25%;}
.fd label{font-size:0.75rem;color:var(--txt-s);margin-bottom:0.2rem;}
.fd input,.fd select,.fd textarea{padding:0.45rem 0.6rem;background:var(--bg-3);border:1px solid var(--bdr);border-radius:6px;color:var(--txt);font-family:inherit;font-size:0.85rem;transition:border-color 0.2s,box-shadow 0.2s;}
.fd input:focus,.fd select:focus,.fd textarea:focus{outline:none;border-color:var(--gold-d);box-shadow:0 0 0 3px rgba(138,109,27,0.15);}
.fd input::placeholder,.fd textarea::placeholder{color:var(--txt-d);opacity:0.7;}
.fd textarea{resize:vertical;min-height:60px;line-height:1.6;}
.bt{padding:0.4rem 0.8rem;border:none;border-radius:6px;cursor:pointer;font-family:inherit;font-size:0.8rem;transition:all 0.2s var(--ease);letter-spacing:0.02em;}
.bt:active{transform:scale(0.97);}
.bp{background:linear-gradient(135deg,var(--gold-d),var(--gold));color:var(--bg-0);font-weight:700;box-shadow:0 2px 8px rgba(201,168,76,0.25);}.bp:hover{filter:brightness(1.15);box-shadow:0 4px 16px rgba(201,168,76,0.35);}
.bs{background:var(--bg-3);border:1px solid var(--bdr);color:var(--txt-s);}.bs:hover{border-color:var(--gold-d);color:var(--gold);background:var(--bg-4);}
.bd{background:rgba(192,57,43,0.12);border:1px solid rgba(192,57,43,0.25);color:var(--red);}.bd:hover{background:rgba(192,57,43,0.2);border-color:rgba(192,57,43,0.45);}
.bsm{padding:0.2rem 0.5rem;font-size:0.72rem;}
.bai{background:linear-gradient(135deg,#2980b9,#8e44ad);color:#fff;font-weight:700;border:none;padding:0.3rem 0.65rem;border-radius:6px;cursor:pointer;font-size:0.75rem;font-family:inherit;box-shadow:0 2px 8px rgba(41,128,185,0.3);}
.bai:hover{filter:brightness(1.2);box-shadow:0 4px 16px rgba(142,68,173,0.35);}
.tg{display:inline-block;padding:0.15rem 0.45rem;border-radius:10px;font-size:0.7rem;background:var(--bg-4);color:var(--txt-s);margin:0.1rem;}
.dv{border:none;border-top:1px solid var(--bdr);margin:1rem 0;}
.toast-flash,.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--bg-2);border:1px solid var(--gold-d);padding:0.55rem 1.4rem;border-radius:8px;font-size:0.85rem;color:var(--gold);z-index:9999;opacity:0;transition:all 0.35s var(--ease);pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,0.5),0 0 0 1px rgba(201,168,76,0.1);backdrop-filter:blur(12px);}
.toast-flash.show,.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* 2.6: 驻留通知 */
#notify-container{position:fixed;top:1rem;right:1rem;z-index:9998;display:flex;flex-direction:column;gap:0.5rem;pointer-events:none;max-width:360px;}
.notify-persist{pointer-events:all;opacity:0;transform:translateX(20px);transition:all 0.3s var(--ease,ease-out);}
.notify-persist.show{opacity:1;transform:translateX(0);}
.notify-persist-body{display:flex;align-items:center;gap:0.5rem;padding:0.6rem 0.8rem;background:var(--color-surface,#1a1a2e);border:1px solid var(--gold-500,#c9a849);border-radius:var(--radius-md,8px);box-shadow:0 4px 20px rgba(0,0,0,0.4);font-size:0.82rem;color:var(--color-foreground);}
.notify-icon{font-size:1.1rem;flex-shrink:0;}
.notify-text{flex:1;}
.notify-close{background:none;border:none;color:var(--color-foreground-muted);cursor:pointer;font-size:0.9rem;padding:2px 6px;border-radius:4px;flex-shrink:0;}
.notify-close:hover{color:var(--color-foreground);background:var(--color-elevated,rgba(255,255,255,0.1));}

/* 2.6: 紧急警告 */
.notify-urgent{position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;animation:urgentIn 0.4s ease-out;}
.notify-urgent.closing{animation:urgentOut 0.3s ease-in forwards;}
@keyframes urgentIn{from{opacity:0;}to{opacity:1;}}
@keyframes urgentOut{from{opacity:1;}to{opacity:0;}}
.notify-urgent-box{text-align:center;max-width:420px;padding:2rem 2.5rem;}
.notify-urgent-title{font-size:1.5rem;font-weight:700;color:var(--vermillion-400,#e74c3c);letter-spacing:0.1em;margin-bottom:0.8rem;text-shadow:0 0 20px rgba(231,76,60,0.3);}
.notify-urgent-detail{font-size:0.9rem;color:var(--color-foreground-muted);line-height:1.8;margin-bottom:1.5rem;}
.notify-urgent-btn{padding:0.6rem 2.5rem;background:var(--vermillion-400,#e74c3c);color:#fff;border:none;border-radius:var(--radius-md,8px);font-size:0.95rem;font-weight:700;cursor:pointer;letter-spacing:0.08em;transition:background 0.15s;}
.notify-urgent-btn:hover{background:#c0392b;}

/* 面板系统 */
.pnl{max-width:520px;margin:auto;padding:1.6rem 1.4rem;}
.pnl.wide{max-width:620px;}
.pnl-hd{display:flex;align-items:center;gap:0.6rem;margin-bottom:1.4rem;padding-bottom:0.8rem;border-bottom:1px solid var(--bdr);}
.pnl-t{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--gold-d),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.pnl-sub{font-size:0.82rem;color:var(--txt-d);margin-top:0.2rem;}
.pnl-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem;}
.pnl-row{display:flex;align-items:center;gap:0.6rem;background:var(--bg-2);border:1px solid var(--bdr);border-radius:var(--r);padding:0.55rem 0.85rem;transition:0.2s;}
.pnl-row:hover{border-color:rgba(201,168,76,0.25);}
.pnl-row-info{flex:1;min-width:0;}
.pnl-row-name{color:var(--txt-s);font-size:0.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pnl-row-meta{color:var(--txt-d);font-size:0.72rem;margin-top:0.15rem;}
.pnl-empty{color:var(--txt-d);font-size:0.88rem;text-align:center;padding:2rem 0;}
.pnl-ft{display:flex;gap:0.7rem;margin-top:1.2rem;padding-top:0.8rem;border-top:1px solid var(--bdr);flex-wrap:wrap;align-items:center;}
.pnl-section{font-size:0.75rem;color:var(--txt-d);letter-spacing:0.08em;margin:0.8rem 0 0.4rem;text-transform:uppercase;}

/* ═══ 启动界面 ═══ */
#launch{
  position:fixed;inset:0;z-index:1000;
  background:var(--color-background,var(--bg-0));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;
}
/* 仅标题区可拖拽窗口，不覆盖弹窗 */
.lt-title{-webkit-app-region:drag;}
/* 背景：墨渍晕染 */
#launch::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 600px 400px at 50% 35%, rgba(138,109,27,0.07) 0%, transparent 100%),
    radial-gradient(ellipse 300px 300px at 30% 60%, rgba(107,93,79,0.04) 0%, transparent 100%),
    radial-gradient(ellipse 250px 250px at 70% 55%, rgba(107,93,79,0.03) 0%, transparent 100%);
  opacity:0;animation:lt-bg-in 2s ease-out 0.2s forwards;
  pointer-events:none;
}
/* 竖线暗纹（宣纸感） */
#launch::after{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,transparent,transparent 4em,rgba(107,93,79,0.018) 4em,rgba(107,93,79,0.018) calc(4em + 1px));
  opacity:0;animation:lt-bg-in 1.5s ease-out 0.5s forwards;
  pointer-events:none;
}
@keyframes lt-bg-in{to{opacity:1;}}

/* === 标题 === */
.lt-title{
  font-size:4.2rem;font-weight:900;letter-spacing:0.25em;
  background:linear-gradient(160deg,var(--gold-600,#a08040),var(--gold-400,#c9a84c),var(--gold-300,#e0c878),var(--gold-400,#c9a84c));
  background-size:200% 100%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:none;position:relative;
  /* 入场：从虚到实，微微放大 */
  opacity:0;transform:scale(0.85);
  animation:lt-title-in 1.2s cubic-bezier(0.22,1,0.36,1) 0.5s forwards,
            lt-gold-shift 6s ease-in-out 2s infinite alternate;
}
/* 标题下方的印章装饰点 */
.lt-title::after{
  content:"";display:block;
  width:8px;height:8px;margin:0.6rem auto 0;
  background:var(--vermillion-400,#c04030);
  border-radius:1px;transform:rotate(45deg);
  opacity:0;animation:lt-seal-in 0.4s ease-out 1.4s forwards;
}
@keyframes lt-title-in{
  0%{opacity:0;transform:scale(0.85);filter:blur(8px);}
  60%{opacity:0.9;transform:scale(1.02);filter:blur(0);}
  100%{opacity:1;transform:scale(1);filter:blur(0);}
}
@keyframes lt-gold-shift{
  0%{background-position:0% 50%;}
  100%{background-position:100% 50%;}
}
@keyframes lt-seal-in{to{opacity:0.7;}}

/* === 副标题 === */
.lt-sub{
  font-size:0.9rem;color:var(--color-foreground-muted,var(--txt-d));
  letter-spacing:0.6em;margin-top:0.4rem;font-weight:400;
  opacity:0;transform:translateY(6px);
  animation:lt-fade-up 0.8s ease-out 1.1s forwards;
}
@keyframes lt-fade-up{to{opacity:1;transform:translateY(0);}}

/* === 分隔线（从中心向两端展开） === */
.lt-div{
  width:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-500,var(--gold-d)),var(--gold-400,var(--gold)),var(--gold-500,var(--gold-d)),transparent);
  margin:2.2rem 0;opacity:0;
  animation:lt-line-expand 0.8s ease-out 1.5s forwards;
}
@keyframes lt-line-expand{to{width:260px;opacity:0.8;}}

/* === 菜单容器 === */
.lt-menu{
  display:flex;flex-direction:column;gap:0.7rem;width:320px;
  /* 整体菜单淡入 */
  opacity:0;transform:translateY(15px);
  animation:lt-menu-in 0.6s ease-out 1.9s forwards;
}
@keyframes lt-menu-in{to{opacity:1;transform:translateY(0);}}

/* === 菜单按钮 === */
.lt-btn{
  padding:1rem 1.5rem;
  border:1px solid var(--color-border-subtle,var(--bdr));
  background:var(--color-surface,linear-gradient(135deg,var(--bg-2),var(--bg-1)));
  color:var(--color-foreground,var(--txt));
  border-radius:var(--radius-md,12px);
  cursor:pointer;font-family:inherit;font-size:1rem;
  transition:all 0.3s var(--ease-out,ease);
  display:flex;align-items:center;gap:0.8rem;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden;
  /* 逐个延迟出现 */
  opacity:0;transform:translateX(-10px);
  animation:lt-btn-in 0.4s ease-out forwards;
}
.lt-btn:nth-child(1){animation-delay:2.0s;}
.lt-btn:nth-child(2){animation-delay:2.15s;}
.lt-btn:nth-child(3){animation-delay:2.3s;}
.lt-btn:nth-child(4){animation-delay:2.45s;}
@keyframes lt-btn-in{to{opacity:1;transform:translateX(0);}}
/* 左侧金线指示 */
.lt-btn::before{
  content:"";position:absolute;left:0;top:20%;height:60%;width:2px;
  background:var(--gold-400,var(--gold));
  opacity:0;transition:opacity 0.3s,height 0.3s;
}
.lt-btn:hover{
  border-color:var(--gold-500,var(--gold-d));
  background:var(--color-elevated,linear-gradient(135deg,var(--bg-3),var(--bg-2)));
  transform:translateY(-2px);
  box-shadow:var(--shadow-md),0 0 30px rgba(184,154,83,0.06);
}
.lt-btn:hover::before{opacity:1;height:80%;top:10%;}
.lt-btn:active{transform:translateY(0) scale(0.98);}

/* 按钮子元素 */
.lt-btn-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--color-sunken,var(--bg-3));
  border-radius:var(--radius-sm,6px);
  border:1px solid var(--color-border-subtle,var(--bdr));
  flex-shrink:0;transition:border-color 0.3s,background 0.3s;
}
.lt-btn:hover .lt-btn-icon{border-color:var(--gold-400,var(--gold));background:rgba(184,154,83,0.08);}
.lt-btn-label{font-weight:700;font-size:1rem;letter-spacing:0.04em;}
.lt-btn-desc{font-size:0.72rem;color:var(--color-foreground-muted,var(--txt-d));margin-top:1px;}
/* 版本号 */
.lt-ver{
  position:absolute;bottom:1.5rem;
  font-size:0.7rem;color:var(--color-foreground-muted,var(--txt-d));
  letter-spacing:0.15em;opacity:0;
  animation:lt-fade-up 0.5s ease-out 2.8s forwards;
}

/* === prefers-reduced-motion === */
@media(prefers-reduced-motion:reduce){
  #launch::before,#launch::after,.lt-title,.lt-sub,.lt-div,.lt-menu,.lt-btn,.lt-ver{animation:none !important;opacity:1 !important;transform:none !important;}
  .lt-div{width:260px;}
}

/* ═══ 主页面重构 · 御案卷宗式启动界面 ═══ */
#launch{padding:0;justify-content:flex-start;overflow:hidden;background:#070604;}
#launch::before,#launch::after{display:none;}
.home-stage{position:relative;min-height:100vh;width:100%;overflow:hidden;padding:34px 22px 68px;background:#070604;color:#f3e7bd;font-family:"LXGW WenKai","STKaiti","KaiTi","Microsoft YaHei",sans-serif;box-sizing:border-box;}
.home-stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0.48),rgba(0,0,0,0.28) 32%,rgba(0,0,0,0.72)),radial-gradient(circle at 52% 46%,rgba(252,222,147,0.1),transparent 34%),url("assets/ui/home/home-menu-imperial-study-v1-ambient.gif") center/cover no-repeat;transform:scale(1.012);}
.home-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 34%,rgba(0,0,0,0.46) 88%),linear-gradient(90deg,rgba(0,0,0,0.74),transparent 17%,transparent 83%,rgba(0,0,0,0.72));mix-blend-mode:multiply;}
.home-ylian{position:absolute;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:rgba(215,185,104,0.42);letter-spacing:0.72em;line-height:2.45;text-shadow:0 0 18px rgba(0,0,0,0.82);pointer-events:none;user-select:none;z-index:2;}
/* 2026-07-04 菜单重做：clamp 防出界（1500 宽下 calc(50%-755px) 为负·笔记本上对联被裁） */
.home-ylian.l{left:max(16px,calc(50% - 755px));}
.home-ylian.r{right:max(16px,calc(50% - 755px));}
@media (max-width:1230px){.home-ylian{display:none;}}
.home-ylian .s{display:block;color:rgba(215,185,104,0.62);font-size:15px;letter-spacing:0.24em;margin-top:18px;}
.home-main{position:relative;z-index:3;display:grid;grid-template-columns:minmax(470px,650px) minmax(260px,330px);gap:24px;align-items:start;max-width:1120px;margin:clamp(10px,5vh,64px) auto 0;}
.home-axis{grid-column:1/-1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(760px,100%);margin:0 auto 14px;text-align:center;}
.home-axis::before,.home-axis::after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(215,185,104,0.55),transparent);}
.home-seal-wrap{grid-column:2;display:flex;justify-content:center;margin:0 0 8px;}
.home-seal-lbl{font-family:"STKaiti","KaiTi","楷体",serif;color:rgba(246,226,172,0.86);font-size:0.8854rem;letter-spacing:0.46em;text-indent:0.46em;}
.home-title-row{grid-column:2;display:inline-flex;align-items:center;justify-content:center;gap:22px;min-width:360px;}
.home-title{margin:0;padding:0;font-family:"STKaiti","KaiTi","楷体",serif;font-weight:900;font-size:clamp(68px,6.8vw,108px);line-height:0.92;letter-spacing:0.18em;text-indent:0.18em;color:transparent;background:linear-gradient(180deg,#ffe9a6 0%,#d8b35d 38%,#866121 77%,#f1dda1 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 18px 34px rgba(0,0,0,0.65));animation:none !important;opacity:1 !important;transform:none !important;}
.home-title::before,.home-title::after{display:none;}
.home-seal{width:58px;height:58px;display:grid;place-items:center;border-radius:8px;border:1px solid rgba(255,219,180,0.42);background:radial-gradient(circle at 36% 28%,rgba(255,190,158,0.5),transparent 24%),linear-gradient(150deg,#d5604c,#8d2f2c 72%);box-shadow:inset 0 0 16px rgba(255,255,255,0.1),0 14px 28px rgba(0,0,0,0.55);color:#fff1de;font-family:"STKaiti","KaiTi","楷体",serif;font-size:31px;font-weight:800;transform:rotate(-4deg);}
.home-sub{grid-column:2;margin-top:12px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.8333rem;color:rgba(232,211,151,0.86);letter-spacing:0.72em;text-indent:0.72em;animation:none !important;opacity:0.95 !important;transform:none !important;}
.home-menu{position:relative;display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:none;margin:0;z-index:3;animation:none !important;opacity:1 !important;transform:none !important;}
/* 2026-07-04 菜单重做：撤外层整框（双层黑箱压闷）·四签直接浮于案面 */
.home-card{--ic-c:#d7b968;position:relative;display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;min-height:82px;padding:12px 16px 12px 14px;border:1px solid rgba(215,185,104,0.30);border-radius:3px;background:linear-gradient(90deg,rgba(22,15,8,0.84),rgba(40,28,14,0.70) 46%,rgba(15,10,6,0.82));box-shadow:inset 0 1px 0 rgba(255,238,188,0.09),inset 0 0 0 1px rgba(0,0,0,0.22),0 10px 28px rgba(0,0,0,0.42);color:#f3e7bd;text-align:left;cursor:pointer;font-family:inherit;transition:transform 180ms ease,border-color 180ms ease,background 180ms ease,box-shadow 180ms ease;overflow:hidden;animation:none !important;opacity:1 !important;}
.home-card::before{content:"";position:absolute;inset:5px;border:1px solid rgba(215,185,104,0.13);border-radius:2px;pointer-events:none;}
.home-card::after{content:"";position:absolute;top:11px;bottom:11px;left:0;width:3px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,transparent,var(--ic-c),transparent);}
.home-card:hover,.home-card:focus-visible{outline:none;transform:translateX(6px);border-color:rgba(240,219,154,0.78);background:linear-gradient(90deg,rgba(26,17,8,0.94),rgba(60,42,17,0.80) 48%,rgba(17,11,6,0.90));box-shadow:inset 0 1px 0 rgba(255,238,188,0.12),inset 0 0 0 1px rgba(0,0,0,0.18),0 14px 34px rgba(0,0,0,0.5),0 0 26px color-mix(in srgb,var(--ic-c) 17%,transparent);}
.home-card.c-new{--ic-c:#d7b968;min-height:104px;grid-template-columns:92px minmax(0,1fr) auto;border-color:rgba(240,219,154,0.58);}
.home-card.c-load{--ic-c:#83bda2;}
.home-card.c-edit{--ic-c:#7790c8;}
.home-card.c-set{--ic-c:#f2ce6b;}
.home-card-icon{width:54px;height:54px;justify-self:center;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--ic-c) 80%,transparent);background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--ic-c) 16%,transparent),rgba(0,0,0,0.3));box-shadow:inset 0 0 18px rgba(0,0,0,0.34),0 0 0 3px rgba(0,0,0,0.28),0 0 0 4px color-mix(in srgb,var(--ic-c) 34%,transparent),0 0 22px color-mix(in srgb,var(--ic-c) 20%,transparent);color:var(--ic-c);font-family:"STKaiti","KaiTi","楷体",serif;font-size:25px;flex-shrink:0;}
.c-new .home-card-icon{width:66px;height:66px;font-size:31px;}
.home-card-copy{display:flex;flex-direction:column;min-width:0;}
.home-card-cn{font-family:"STKaiti","KaiTi","楷体",serif;font-size:1.3542rem;color:var(--ic-c);font-weight:800;letter-spacing:0.38em;text-indent:0.38em;line-height:1.1;margin-bottom:6px;}
.c-new .home-card-cn{font-size:1.6667rem;}
.home-card-ti{font-size:0.6771rem;color:rgba(247,230,184,0.76);letter-spacing:0.2em;text-indent:0.2em;line-height:1.3;margin-bottom:8px;}
.home-card-desc{max-width:410px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.7813rem;line-height:1.5;color:rgba(226,208,158,0.82);letter-spacing:0.06em;font-style:normal;opacity:1;}
.home-card-key{align-self:end;min-width:74px;text-align:right;color:#f0db9a;font-size:0.7292rem;letter-spacing:0.06em;}
.home-side{align-self:stretch;min-height:0;display:grid;grid-template-rows:auto auto;gap:12px;align-content:start;z-index:3;}
.home-panel{position:relative;padding:18px;border:1px solid rgba(215,185,104,0.28);background:linear-gradient(180deg,rgba(219,190,122,0.15),rgba(38,25,11,0.72) 18%,rgba(13,9,6,0.84)),repeating-linear-gradient(0deg,transparent 0 42px,rgba(215,185,104,0.035) 42px 43px);box-shadow:0 22px 70px rgba(0,0,0,0.62);}
.home-panel::before,.home-panel::after{content:"";position:absolute;width:22px;height:22px;border-color:rgba(240,219,154,0.7);pointer-events:none;}
.home-panel::before{top:7px;left:7px;border-top:1px solid;border-left:1px solid;}
.home-panel::after{right:7px;bottom:7px;border-right:1px solid;border-bottom:1px solid;}
.home-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-family:"STKaiti","KaiTi","楷体",serif;color:#f0db9a;}
.home-panel-title strong{font-size:1.0417rem;letter-spacing:0.32em;text-indent:0.32em;}
.home-panel-title span{font-size:0.625rem;color:rgba(215,185,104,0.66);}
/* 2026-07-04 菜单重做：撤 184px 高度盖（第三卷被裁半）·只渲染三卷无需滚动 */
.home-recent{display:grid;gap:9px;overflow:visible;padding:0;margin:0;border:0;background:transparent;font-family:"STKaiti","KaiTi","楷体",serif;color:rgba(245,229,180,0.9);font-size:0.7292rem;letter-spacing:0.04em;line-height:1.45;}
.home-recent::-webkit-scrollbar{width:4px;}
.home-recent::-webkit-scrollbar-thumb{background:rgba(215,185,104,0.4);}
.home-recent .r-item{position:relative;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:9px 22px 10px 9px;border:1px solid rgba(215,185,104,0.14);border-radius:2px;background:rgba(255,237,182,0.05);color:rgba(245,229,180,0.9);cursor:pointer;transition:transform 150ms ease,border-color 150ms ease,background 150ms ease;}
.home-recent .r-item::after{content:"›";position:absolute;right:9px;top:50%;transform:translateY(-50%);color:rgba(215,185,104,0.38);font-size:16px;transition:color 150ms ease,transform 150ms ease;}
.home-recent .r-item:hover{transform:translateX(3px);border-color:rgba(240,219,154,0.52);background:rgba(255,237,182,0.09);}
.home-recent .r-item:hover::after{color:#f0db9a;transform:translateY(-50%) translateX(2px);}
.home-recent .r-seal{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#cc5c46,#802c28);color:#fff2df;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;line-height:24px;text-align:center;transform:none;margin:0;}
.home-recent .r-name{display:block;font-size:0.7292rem;color:rgba(245,229,180,0.9);}
.home-recent .r-meta{display:block;margin-top:3px;font-size:0.625rem;color:#9d8860;}
.home-recent .r-empty{padding:14px 10px;border:1px dashed rgba(215,185,104,0.16);color:#9d8860;font-style:italic;letter-spacing:0.1em;text-align:center;}
/* 2026-07-04 菜单重做：假数据状态四格已撤（节令/世态硬编码·剧本源/地图零信息量）·近事让位 */
.home-tools-panel{align-self:start;}
.home-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.home-tools button{position:relative;min-height:44px;border:1px solid rgba(215,185,104,0.24);border-radius:2px;background:rgba(0,0,0,0.24);color:#f3e7bd;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.7813rem;letter-spacing:0.1em;cursor:pointer;transition:border-color 150ms ease,background 150ms ease;}
.home-tools button:hover{border-color:rgba(240,219,154,0.7);background:rgba(215,185,104,0.08);}
.home-tools .tm-cl-dot{position:absolute;top:7px;right:9px;width:8px;height:8px;background:var(--vermillion-400,#c04030);border-radius:50%;box-shadow:0 0 4px rgba(192,64,48,0.6);animation:badge-pulse 1.8s ease-in-out infinite;}
.home-foot{position:fixed;bottom:0;left:0;right:0;z-index:1001;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 24px;background:linear-gradient(0deg,rgba(10,9,8,0.95),rgba(26,21,16,0.3));border-top:1px solid rgba(184,154,83,0.12);backdrop-filter:blur(4px);font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.7813rem;color:#9d8860;letter-spacing:0.1em;}
.home-foot .f-ver{color:#b89a53;letter-spacing:0.2em;}
.home-foot .f-mid{color:rgba(245,229,180,0.76);}
.home-foot .f-mid .dot{color:var(--vermillion-400,#c04030);margin:0 6px;}
.home-foot .f-right{display:flex;gap:18px;align-items:center;white-space:nowrap;}
.home-foot kbd{background:rgba(184,154,83,0.08);border:1px solid rgba(184,154,83,0.3);padding:0 6px;border-radius:2px;font-size:0.7292rem;color:#d7b968;font-family:monospace;}
@media (max-height:860px){
  .home-stage{padding-top:18px;}
  .home-main{margin-top:0;gap:18px;}
  .home-title{font-size:76px;}
  .home-sub{margin-top:8px;}
  .home-card{min-height:72px;padding:9px 14px;grid-template-columns:68px minmax(0,1fr) auto;}
  .home-card.c-new{min-height:88px;grid-template-columns:78px minmax(0,1fr) auto;}
  .home-card-icon{width:48px;height:48px;}
  .c-new .home-card-icon{width:58px;height:58px;}
  .home-card-desc{font-size:0.7292rem;line-height:1.35;}
}
@media (min-width:981px) and (max-height:1100px){
  #launch{overflow:hidden;}
  .home-stage{height:100vh;overflow-y:auto;overflow-x:hidden;padding-top:24px;padding-bottom:86px;}
  .home-main{align-items:start;align-content:start;margin-top:0;gap:18px;}
  .home-axis{margin-bottom:6px;}
  .home-seal-wrap{margin-bottom:4px;}
  .home-seal-lbl{font-size:0.7813rem;}
  .home-title{font-size:clamp(64px,5.4vw,88px);}
  .home-title-row{gap:18px;}
  .home-seal{width:50px;height:50px;font-size:27px;}
  .home-sub{font-size:0.7292rem;margin-top:8px;}
  .home-menu{gap:8px;}
  .home-card{min-height:72px;padding:9px 14px;grid-template-columns:68px minmax(0,1fr) auto;}
  .home-card.c-new{min-height:90px;grid-template-columns:78px minmax(0,1fr) auto;}
  .home-card-icon{width:48px;height:48px;}
  .c-new .home-card-icon{width:58px;height:58px;font-size:27px;}
  .home-card-cn{font-size:1.25rem;margin-bottom:4px;}
  .c-new .home-card-cn{font-size:1.5104rem;}
  .home-card-ti{font-size:0.625rem;margin-bottom:5px;}
  .home-card-desc{font-size:0.7031rem;line-height:1.32;}
  .home-card-key{font-size:0.6771rem;}
  .home-side{align-self:start;min-height:0;gap:10px;}
  .home-panel{padding:14px;}
  .home-panel-title{margin-bottom:9px;}
  .home-panel-title strong{font-size:0.9375rem;}
  .home-recent{gap:6px;font-size:0.6771rem;line-height:1.35;}
  .home-recent .r-item{padding:7px 20px 8px 8px;}
  .home-tools{gap:7px;}
  .home-tools button{min-height:36px;font-size:0.7292rem;}
  .home-foot{padding:8px 24px;font-size:0.7292rem;}
}
@media (max-height:760px){
  .home-stage{padding-top:10px;padding-bottom:58px;}
  .home-main{gap:14px;max-width:1080px;}
  .home-axis{margin-bottom:4px;}
  .home-seal-wrap{margin-bottom:4px;}
  .home-seal-lbl{font-size:0.7292rem;}
  .home-title{font-size:60px;}
  .home-seal{width:42px;height:42px;font-size:24px;}
  .home-sub{font-size:0.6771rem;margin-top:6px;}
  .home-menu{gap:8px;}
  .home-card,.home-card.c-new{min-height:64px;grid-template-columns:62px minmax(0,1fr) 58px;padding:8px 12px;}
  .home-card-icon,.c-new .home-card-icon{width:44px;height:44px;font-size:22px;}
  .home-card-cn,.c-new .home-card-cn{font-size:1.1458rem;margin-bottom:2px;}
  .home-card-ti{display:none;}
  .home-card-desc{max-width:100%;font-size:0.6771rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .home-card-key{min-width:58px;font-size:0.625rem;}
  .home-panel{padding:14px;}
  .home-tools button{min-height:38px;}
  .home-foot{padding:8px 24px;font-size:0.7292rem;}
}
@media (max-width:980px){
  #launch{overflow:auto;}
  .home-stage{min-height:100vh;overflow:visible;padding:24px 18px 82px;}
  .home-ylian{display:none;}
  .home-main{display:grid;grid-template-columns:1fr;max-width:680px;margin:0 auto;}
  .home-axis{grid-template-columns:1fr;}
  .home-axis::before,.home-axis::after{display:none;}
  .home-seal-wrap,.home-title-row,.home-sub{grid-column:1;}
  .home-title-row{min-width:0;}
  .home-title{font-size:72px;}
  .home-card,.home-card.c-new{grid-template-columns:68px 1fr;}
  .home-card-key{grid-column:2;text-align:left;margin-top:6px;}
  .home-side{min-height:0;}
  .home-foot{position:relative;flex-direction:column;text-align:center;}
  .home-foot .f-right{justify-content:center;flex-wrap:wrap;}
}
@media (prefers-reduced-motion:reduce){
  .home-stage::before{background:linear-gradient(180deg,rgba(0,0,0,0.48),rgba(0,0,0,0.28) 32%,rgba(0,0,0,0.72)),radial-gradient(circle at 52% 46%,rgba(252,222,147,0.1),transparent 34%),url("assets/ui/home/home-menu-imperial-study-v1.png") center/cover no-repeat;}
  .home-card,.home-tools button{transition:none !important;}
}

/* 顶部栏 */
/* ═══ 顶栏（紫檀案台风） ═══ */
#bar{position:fixed;top:0;left:0;right:0;height:62px;z-index:var(--z-sticky);background:linear-gradient(180deg,var(--color-surface),rgba(18,16,14,0.95));border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;padding:0 16px;gap:12px;display:none;backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(10,9,8,0.4);-webkit-app-region:drag;}
#bar::after{content:"";position:absolute;bottom:0;left:3%;right:3%;height:1px;background:linear-gradient(to right,transparent 0,var(--gold-500) 20%,var(--gold-300) 50%,var(--gold-500) 80%,transparent 100%);}
#bar button,#bar input,#bar select,#bar a,.bar-res-item,.bar-var,.bar-vars,.bar-var-tip{-webkit-app-region:no-drag;}
.generic-modal-overlay,.scn-preview-modal,.char-detail-overlay,.scn-page,.tm-tooltip{-webkit-app-region:no-drag;}
/* 顶栏底部金线装饰 */
#bar::after{content:"";position:absolute;bottom:0;left:5%;right:5%;height:1px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);}
.logo{font-size:var(--text-lg);font-weight:var(--weight-bold);background:linear-gradient(135deg,var(--gold-500),var(--gold-400),var(--gold-300));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:0.15em;}
.mr{margin-left:auto;display:flex;gap:0.4rem;flex-wrap:wrap;}
.tb{padding:0.3rem 0.7rem;border:1px solid var(--bdr);background:transparent;color:var(--txt-s);border-radius:5px;cursor:pointer;font-size:0.78rem;font-family:inherit;}
.tb:hover{border-color:var(--gold-d);color:var(--gold);}

/* ═══════════════════════════════════════════════════════ */
/* 顶栏 · 七官方变量 + 全部变量入口                        */
/* ═══════════════════════════════════════════════════════ */
.bar-wentian{background:none;border:none;cursor:pointer;padding:2px 8px;font-family:inherit;font-size:var(--text-lg);font-weight:var(--weight-bold);background:linear-gradient(135deg,var(--gold-500),var(--gold-400),var(--gold-300));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:0.15em;}
#bar-era{font-size:0.78rem;color:var(--txt-d);margin-left:0.5rem;min-width:80px;}
.bar-sep{width:1px;height:20px;background:linear-gradient(to bottom,transparent,var(--gold-d),transparent);opacity:0.5;margin:0 4px;}

/* 七变量容器 */
.bar-vars{display:flex;gap:4px;align-items:center;flex-wrap:wrap;}

/* 单个变量格子 */
.bar-var{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 10px;border-radius:4px;cursor:pointer;min-width:78px;border:1px solid transparent;transition:border-color 0.15s, background 0.15s;position:relative;user-select:none;}
.bar-var:hover{border-color:var(--gold-d);background:rgba(184,154,83,0.06);}
.bar-var-name{font-size:0.7rem;color:var(--txt-d);letter-spacing:0.05em;line-height:1;margin-bottom:2px;}
.bar-var-value{font-size:0.85rem;font-weight:600;line-height:1;color:var(--c,var(--gold));display:flex;align-items:center;gap:2px;}
.bar-var-trend{font-size:0.62rem;opacity:0.7;}
.bar-var-trend.up{color:var(--green-400);}
.bar-var-trend.down{color:var(--vermillion-400);}
.bar-var-trend.stable{color:var(--txt-d);}

/* ═══ 顶栏 v2 · 对齐 preview-shell v7.1 ═══ */
.bar-logo{display:flex;align-items:center;gap:10px;padding-right:12px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;}
.bar-seal{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.92),rgba(140,40,30,0.82));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;font-weight:bold;line-height:1;transform:rotate(-5deg);box-shadow:0 2px 6px rgba(140,40,30,0.5),inset 0 1px 0 rgba(255,255,255,0.1);text-align:center;position:relative;cursor:pointer;-webkit-app-region:no-drag;}
.bar-seal::before{content:"";position:absolute;inset:2px;border:1px solid rgba(244,234,221,0.2);border-radius:50%;}
.bar-era-stack{display:flex;flex-direction:column;padding:0 12px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;font-family:"STKaiti","KaiTi","楷体",serif;}
.bar-era-stack .dynasty{font-size:0.6771rem;color:var(--gold-300,#c9a85f);letter-spacing:0.2em;line-height:1.2;}
.bar-era-stack .date{font-size:0.7552rem;color:#d4c9b0;letter-spacing:0.12em;font-style:italic;margin-top:1px;line-height:1.2;}
.bar-era-stack .turn-text{font-size:0.7031rem;color:var(--ink-300,#6b5d47);letter-spacing:0.15em;margin-top:1px;line-height:1.2;}
.bar-weather{display:flex;align-items:center;gap:6px;padding:0 10px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;cursor:pointer;-webkit-app-region:no-drag;}
.bar-weather-seal{width:32px;height:32px;border-radius:50%;background:radial-gradient(circle,rgba(201,160,69,0.2),rgba(26,20,16,0.6));border:1px solid var(--amber-400,#c9a045);display:flex;align-items:center;justify-content:center;color:var(--amber-400,#c9a045);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;}
.bar-weather-info{display:flex;flex-direction:column;font-family:"STKaiti","KaiTi","楷体",serif;}
.bar-weather-name{font-size:0.7813rem;color:var(--amber-400,#c9a045);letter-spacing:0.15em;line-height:1.2;}
.bar-weather-desc{font-size:13.5px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;font-style:italic;line-height:1.2;}
.bar-right-group{display:flex;gap:6px;align-items:center;padding-left:10px;border-left:1px solid var(--color-border-subtle);flex-shrink:0;-webkit-app-region:no-drag;}
.bar-save-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:rgba(106,154,127,0.06);border:1px solid var(--celadon-400,#7eb8a7);border-radius:14px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:var(--celadon-400,#7eb8a7);letter-spacing:0.1em;}
.bar-save-chip::before{content:"";width:6px;height:6px;background:var(--celadon-400,#7eb8a7);border-radius:50%;box-shadow:0 0 4px var(--celadon-400,#7eb8a7);}
.bar-icon-btn2{width:32px;height:32px;background:transparent;border:1px solid var(--color-border-subtle);border-radius:3px;color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;position:relative;-webkit-app-region:no-drag;}
.bar-icon-btn2:hover{color:var(--gold-400);border-color:var(--gold-d);background:rgba(184,154,83,0.08);}
.bar-icon-btn2.badge::after{content:attr(data-n);position:absolute;top:-4px;right:-4px;background:var(--vermillion-400);color:#f4eadd;font-size:13px;font-family:"STKaiti","KaiTi","楷体",serif;padding:1px 4px;border-radius:6px;min-width:14px;line-height:1;text-align:center;font-weight:bold;}
.bar-icon-btn2.ai-live{color:var(--celadon-400,#7eb8a7);border-color:var(--celadon-400,#7eb8a7);animation:bar-ai-pulse 2s infinite;}
@keyframes bar-ai-pulse{0%,100%{box-shadow:0 0 0 0 rgba(106,154,127,0.4);}50%{box-shadow:0 0 0 3px rgba(106,154,127,0);}}

/* ═══ 右上时间区·B 方案 LOCKED §3.1 ═══ */
.bar-time{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:4px 12px;margin-left:10px;border-left:1px solid var(--color-border-subtle);font-family:"STKaiti","KaiTi","楷体",serif;cursor:pointer;flex-shrink:0;-webkit-app-region:no-drag;transition:background 0.15s;}
.bar-time:hover{background:rgba(184,154,83,0.06);}
.bar-time-main{font-size:0.7552rem;color:var(--gold-300,#d4be7a);letter-spacing:0.12em;line-height:1.3;white-space:nowrap;}
.bar-time-sub{font-size:11.5px;color:var(--ink-300,#6b5d47);letter-spacing:0.1em;line-height:1.2;white-space:nowrap;font-style:italic;}
.bar-time-pop{position:fixed;top:60px;right:24px;min-width:220px;padding:14px 18px;background:linear-gradient(to bottom,rgba(36,30,24,0.97),rgba(26,20,16,0.98));border:1px solid var(--gold-d);border-radius:6px;backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,0.55);font-family:"STKaiti","KaiTi","楷体",serif;color:#d4c9b0;letter-spacing:0.08em;z-index:120;font-size:13.5px;line-height:1.7;}
.bar-time-pop .btp-row{display:flex;justify-content:space-between;gap:14px;}
.bar-time-pop .btp-k{color:var(--ink-300,#6b5d47);}
.bar-time-pop .btp-v{color:var(--gold-300,#d4be7a);}
.bar-time-pop .btp-divider{height:1px;background:linear-gradient(to right,transparent,var(--gold-d),transparent);margin:6px 0;opacity:0.5;}
.bar-time-pop .btp-title{font-size:14.5px;color:var(--gold-400,#c9a045);text-align:center;letter-spacing:0.18em;margin-bottom:6px;}

/* ═══ 右下角悬浮诏付有司 ═══ */
.gs-turn-float{position:fixed;bottom:56px;right:24px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;z-index:60;pointer-events:none;display:none;}
.gs-turn-float.show{display:flex;}
.gs-turn-float > *{pointer-events:auto;}
.gs-turn-fab-bar{display:flex;gap:6px;align-items:center;padding:6px 10px;background:linear-gradient(to right,rgba(36,30,24,0.92),rgba(26,20,16,0.94));border:1px solid rgba(184,154,83,0.35);border-radius:24px;backdrop-filter:blur(8px);box-shadow:0 4px 16px rgba(0,0,0,0.45);}
.gs-fab-btn{width:36px;height:36px;border:1px solid var(--gold-d);background:rgba(184,154,83,0.06);color:var(--gold-400);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;cursor:pointer;transition:all 0.2s;position:relative;}
.gs-fab-btn:hover{background:rgba(184,154,83,0.2);border-color:var(--gold-300);transform:translateY(-2px);box-shadow:0 4px 10px rgba(184,154,83,0.3);}
.gs-fab-btn[data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;letter-spacing:0.1em;padding:3px 8px;background:rgba(26,20,16,0.95);color:var(--gold-300);border:1px solid var(--gold-d);border-radius:3px;white-space:nowrap;pointer-events:none;z-index:100;}

.tm-fulltext-tooltip{position:fixed;left:0;top:0;z-index:100000;max-width:min(460px,calc(100vw - 28px));max-height:min(48vh,420px);overflow:auto;padding:9px 12px;border:1px solid rgba(214,188,116,.54);border-radius:5px;background:linear-gradient(180deg,rgba(34,28,21,.98),rgba(13,11,9,.98));color:#f0e4bf;font:13px/1.65 "STKaiti","KaiTi","STSong",serif;letter-spacing:.04em;white-space:pre-wrap;word-break:break-word;box-shadow:0 10px 26px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,238,186,.08);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .08s ease,transform .08s ease;}
.tm-fulltext-tooltip.show{opacity:1;transform:translateY(0);}
.tm-fulltext-source{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-turn-summary{padding:7px 14px;background:linear-gradient(to right,rgba(36,30,24,0.92),rgba(26,20,16,0.94));border:1px solid rgba(184,154,83,0.35);border-radius:16px;backdrop-filter:blur(6px);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:#d4c9b0;letter-spacing:0.1em;text-align:right;box-shadow:0 2px 8px rgba(0,0,0,0.35);}
.gs-turn-summary .hl{color:var(--gold-300,#c9a85f);font-weight:500;}
.gs-turn-summary .warn{color:var(--vermillion-400);}
.gs-turn-big{min-width:210px;padding:16px 24px;background:linear-gradient(135deg,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;font-family:"STKaiti","KaiTi","楷体",serif;font-size:20px;font-weight:bold;letter-spacing:0.45em;border:1px solid var(--vermillion-600,#8f3428);border-radius:6px;cursor:pointer;text-align:center;position:relative;box-shadow:0 6px 20px rgba(140,40,30,0.5),inset 0 1px 0 rgba(255,255,255,0.12);animation:gs-turn-glow 3s ease-in-out infinite;}
@keyframes gs-turn-glow{0%,100%{box-shadow:0 6px 20px rgba(140,40,30,0.5),inset 0 1px 0 rgba(255,255,255,0.12),0 0 0 0 rgba(192,64,48,0.4);}50%{box-shadow:0 6px 20px rgba(140,40,30,0.5),inset 0 1px 0 rgba(255,255,255,0.12),0 0 0 8px rgba(192,64,48,0);}}
.gs-turn-big::before,.gs-turn-big::after{content:"";position:absolute;width:22px;height:2px;background:linear-gradient(to right,transparent,#f4eadd,transparent);top:50%;transform:translateY(-50%);opacity:0.6;}
.gs-turn-big::before{left:12px;}.gs-turn-big::after{right:12px;}
.gs-turn-big:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(140,40,30,0.55);animation:none;}
.gs-turn-big .sub{display:block;font-size:14.5px;color:rgba(244,234,221,0.78);letter-spacing:0.22em;font-weight:400;margin-top:4px;font-style:italic;}
.gs-turn-big:disabled{opacity:0.55;cursor:wait;animation:none;filter:grayscale(0.3);}

/* ═══ 底部状态栏 ═══ */
.gs-status-bar{position:fixed;bottom:0;left:0;right:0;height:36px;display:none;align-items:center;justify-content:space-between;padding:0 18px;gap:14px;background:linear-gradient(180deg,rgba(18,16,14,0.95),var(--bg-paper,#241e18));border-top:1px solid var(--color-border-subtle);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:#d4c9b0;letter-spacing:0.08em;z-index:55;backdrop-filter:blur(6px);}
/* 底部状态栏 & 左右抽屉：覆盖深色 ink 变量为浅色/金色，使文字在深底可读 */
.gs-status-bar,.gs-drawer,.gs-drawer-body{--ink-700:#ede5d0;--ink-500:#d4c9b0;--ink-400:#c9a85f;--ink-300:#d4be7a;--ink-800:#f8f3e8;--ink-900:#f4eadd;}
.gs-status-bar.show{display:flex;}
.gs-status-bar::before{content:"";position:absolute;top:0;left:5%;right:5%;height:1px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);opacity:0.5;}
.gs-status-left,.gs-status-right{display:flex;align-items:center;gap:12px;}
.gs-status-item{display:flex;align-items:center;gap:4px;padding:0 6px;}
.gs-status-item .dot{width:6px;height:6px;border-radius:50%;background:var(--celadon-400,#7eb8a7);box-shadow:0 0 4px var(--celadon-400,#7eb8a7);}
.gs-status-item.busy .dot{background:var(--amber-400,#c9a045);box-shadow:0 0 4px var(--amber-400,#c9a045);animation:gs-busy-dot 1.5s infinite;}
@keyframes gs-busy-dot{0%,100%{opacity:0.4;}50%{opacity:1;}}
.gs-status-item .k{color:var(--ink-300,#6b5d47);}
.gs-status-item .v{color:#ede5d0;}
.gs-status-tip{color:var(--gold-300,#c9a85f);font-style:italic;}
.gs-status-shortcut{color:#d4c9b0;font-size:14px;}
.gs-status-shortcut kbd{background:rgba(184,154,83,0.08);border:1px solid var(--gold-d);color:var(--gold-400);padding:0 4px;border-radius:2px;font-size:13.5px;font-family:monospace;margin:0 2px;}

/* 帑廪/内帑·三账 wide chip（对齐 preview-shell v7.1）*/
.bar-var.wide{min-width:106px;padding:3px 9px;align-items:stretch;}
.bar-var.wide .bar-var-name{text-align:center;}
.bar-var-sub{display:flex;flex-direction:column;gap:1px;width:100%;margin-top:1px;}
.bar-var-sub-item{display:flex;align-items:baseline;justify-content:space-between;gap:4px;font-family:var(--font-serif,"STKaiti","KaiTi","楷体",serif);font-size:14px;line-height:1.15;}
.bar-var-sub-item .sk{color:var(--ink-300,#6b5d47);letter-spacing:0.1em;font-size:13.5px;}
.bar-var-sub-item .sv{color:var(--c,var(--gold-400));font-weight:600;font-variant-numeric:tabular-nums;}
.bar-var-sub-item .sd{font-size:10px;font-weight:400;font-variant-numeric:tabular-nums;margin-left:2px;min-width:24px;text-align:right;}
.bar-var-sub-item .sd.up{color:var(--celadon-400,#7eb8a7);}
.bar-var-sub-item .sd.down{color:var(--vermillion-400);}
.bar-var-sub-item .sd.flat{color:var(--ink-300,#6b5d47);opacity:0.7;}

/* 变量语义色 */
.bar-var[data-var="guoku"]     {--c:var(--gold-400);}
.bar-var[data-var="neitang"]   {--c:var(--gold-300);}
.bar-var[data-var="hukou"]     {--c:#6aa88a;}  /* 青玉 */
.bar-var[data-var="lizhi"]     {--c:var(--ink-200);} /* 墨色（吏治=腐败的 UI 名） */
.bar-var[data-var="minxin"]    {--c:#7fb88f;}  /* 翠绿 */
.bar-var[data-var="huangquan"] {--c:var(--gold-400);}
.bar-var[data-var="huangwei"]  {--c:var(--gold-400);}

/* ─── 危险段警示（反讽）─── */
/* 暴君段（皇威>90）：深赤警示 */
.bar-var[data-phase="tyrant"]{background:rgba(139,46,37,0.2);border-color:var(--vermillion-400);animation:bar-var-pulse 2.5s ease-in-out infinite;}
.bar-var[data-phase="tyrant"] .bar-var-value{color:var(--vermillion-400);}

/* 失威段（皇威<30）：灰色+闪烁 */
.bar-var[data-phase="lost"]{background:rgba(107,93,79,0.15);border-color:var(--ink-300);}
.bar-var[data-phase="lost"] .bar-var-value{color:var(--ink-300);}

/* 权臣段（皇权<35） */
.bar-var[data-phase="ministerDominance"]{background:rgba(107,93,79,0.2);border-color:#d4be7a;}
.bar-var[data-phase="ministerDominance"] .bar-var-value{color:var(--ink-300);}

/* 民心揭竿/窃盗段：朱红 */
.bar-var[data-phase="revolt"]{background:rgba(139,46,37,0.25);border-color:var(--vermillion-400);animation:bar-var-pulse 2s ease-in-out infinite;}
.bar-var[data-phase="revolt"] .bar-var-value{color:var(--vermillion-400);}
.bar-var[data-phase="thievery"]{background:rgba(192,112,48,0.15);border-color:#c07030;}
.bar-var[data-phase="thievery"] .bar-var-value{color:#d4906a;}

/* 腐败高位段 */
.bar-var[data-phase="corrupt-high"]{background:rgba(107,80,16,0.2);border-color:var(--gold-600);}
.bar-var[data-phase="corrupt-high"] .bar-var-value{color:#a88a3a;}

/* 帑廪破产 */
.bar-var[data-phase="bankrupt"]{background:rgba(139,46,37,0.25);border-color:var(--vermillion-400);animation:bar-var-pulse 2s ease-in-out infinite;}
.bar-var[data-phase="bankrupt"] .bar-var-value{color:var(--vermillion-400);}

/* 户口锐减 */
.bar-var[data-phase="depopulation"]{background:rgba(139,46,37,0.15);border-color:var(--vermillion-500);}
.bar-var[data-phase="depopulation"] .bar-var-value{color:var(--vermillion-400);}

@keyframes bar-var-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(192,64,48,0.4);}
  50%{box-shadow:0 0 12px 2px rgba(192,64,48,0.25);}
}

/* 全部变量入口按钮 */
.bar-more-vars{padding:5px 12px;background:transparent;border:1px solid var(--color-border-subtle);color:var(--txt-s);font-family:inherit;font-size:0.75rem;cursor:pointer;border-radius:4px;transition:0.15s;letter-spacing:0.05em;}
.bar-more-vars:hover{border-color:var(--gold-d);color:var(--gold);background:rgba(184,154,83,0.08);}

/* ─── 悬停详情 Tooltip ─── */
.bar-var-tip{position:fixed;z-index:var(--z-popover,200);background:var(--color-elevated);border:1px solid var(--gold-d);border-radius:6px;padding:0.6rem 0.8rem;min-width:220px;max-width:320px;box-shadow:0 8px 24px rgba(10,9,8,0.6);pointer-events:none;opacity:0;transition:opacity 0.15s;}
.bar-var-tip.visible{opacity:1;}
.bar-var-tip-title{font-size:0.9rem;font-weight:700;color:var(--gold);margin-bottom:0.3rem;border-bottom:1px solid var(--color-border-subtle);padding-bottom:0.25rem;letter-spacing:0.05em;}
.bar-var-tip-phase{font-size:0.72rem;color:var(--txt-d);margin-bottom:0.3rem;}
.bar-var-tip-row{display:flex;justify-content:space-between;padding:2px 0;font-size:0.76rem;}
.bar-var-tip-row .lbl{color:var(--txt-d);}
.bar-var-tip-row .val{color:var(--txt);font-weight:500;}
.bar-var-tip-note{margin-top:0.4rem;padding-top:0.3rem;border-top:1px dashed var(--color-border-subtle);font-size:0.7rem;color:var(--txt-d);line-height:1.5;font-style:italic;}

/* ═══════ .bar-var-tip 富版（帑廪/内帑 hover tip）═══════ */
.bar-var-tip.rich{padding:0;min-width:300px;max-width:340px;background:linear-gradient(180deg,var(--ink-600,#2a2520),var(--ink-700,#1c1914));border-color:var(--gold-d);overflow:hidden;}
.bar-var-tip.rich.imperial{background:linear-gradient(180deg,rgba(80,30,28,0.55),var(--ink-700,#1c1914));border-color:var(--vermillion-500);}
.bar-var-tip.rich::before,.bar-var-tip.rich::after{content:"";position:absolute;width:10px;height:10px;border:1px solid var(--gold-400);opacity:0.55;pointer-events:none;}
.bar-var-tip.rich::before{top:5px;left:5px;border-right:0;border-bottom:0;}
.bar-var-tip.rich::after{bottom:5px;right:5px;border-left:0;border-top:0;}
.bar-var-tip.rich.imperial::before,.bar-var-tip.rich.imperial::after{border-color:var(--vermillion-300);}
/* head */
.bvt-head{display:flex;align-items:center;gap:9px;padding:10px 12px 8px;border-bottom:1px solid rgba(184,154,83,0.22);position:relative;}
.bar-var-tip.rich.imperial .bvt-head{border-bottom-color:rgba(192,64,48,0.28);}
.bvt-head::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-400),transparent);opacity:0.5;}
.bvt-glyph{flex:0 0 36px;width:36px;height:36px;border:1.5px solid var(--gold-400);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:var(--gold-300);background:radial-gradient(circle at 35% 30%,rgba(212,190,122,0.2),rgba(0,0,0,0.4) 70%);font-family:var(--font-serif,"STKaiti","KaiTi","楷体",serif);text-shadow:0 0 6px rgba(184,154,83,0.4);}
.bar-var-tip.rich.imperial .bvt-glyph{border-color:var(--vermillion-300);color:var(--vermillion-300);background:radial-gradient(circle at 35% 30%,rgba(212,112,106,0.22),rgba(0,0,0,0.4) 70%);text-shadow:0 0 6px rgba(192,64,48,0.45);}
.bvt-htxt{flex:1;min-width:0;}
.bvt-title{font-size:0.92rem;color:var(--gold-300);letter-spacing:0.14em;font-weight:700;line-height:1.1;}
.bar-var-tip.rich.imperial .bvt-title{color:var(--vermillion-300);}
.bvt-sub{font-size:0.66rem;color:var(--ink-300,#9d917d);letter-spacing:0.08em;margin-top:2px;}
.bvt-pill{padding:2px 8px;border-radius:11px;font-size:0.66rem;letter-spacing:0.06em;border:1px solid;background:rgba(255,255,255,0.04);white-space:nowrap;font-weight:500;flex-shrink:0;}
.bvt-pill.ok{border-color:var(--celadon-400,#7eb8a7);color:var(--celadon-300,#a3d4c7);background:rgba(126,184,167,0.08);}
.bvt-pill.warn{border-color:var(--amber-400,#d4a838);color:var(--amber-400,#d4a838);background:rgba(212,168,56,0.08);}
.bvt-pill.bad{border-color:var(--vermillion-400);color:var(--vermillion-300);background:rgba(192,64,48,0.08);}
.bvt-pill.gold{border-color:var(--gold-400);color:var(--gold-300);background:rgba(184,154,83,0.08);}
/* stocks 三格 */
.bvt-stocks{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;padding:8px 10px 6px;}
.bvt-stock{position:relative;padding:6px 4px 4px;background:linear-gradient(165deg,rgba(255,255,255,0.04),rgba(0,0,0,0.18));border:1px solid var(--gold-d);border-left-width:2.5px;border-radius:4px;text-align:center;}
.bvt-stock.gold{border-left-color:var(--gold-400);}
.bvt-stock.celadon{border-left-color:var(--celadon-400,#7eb8a7);}
.bvt-stock.amber{border-left-color:#a88a6a;}
.bvt-stock.warn{border-color:var(--vermillion-400);background:linear-gradient(165deg,rgba(192,64,48,0.08),rgba(0,0,0,0.18));}
.bvt-s-name{font-size:0.66rem;color:var(--ink-300,#9d917d);letter-spacing:0.1em;}
.bvt-s-val{font-size:0.95rem;font-weight:700;letter-spacing:0.02em;line-height:1.05;margin-top:2px;}
.bvt-stock.gold .bvt-s-val{color:var(--gold-300);}
.bvt-stock.celadon .bvt-s-val{color:var(--celadon-300,#a3d4c7);}
.bvt-stock.amber .bvt-s-val{color:#c4a878;}
.bvt-s-unit{font-size:0.62rem;color:var(--ink-400,#6b5d4f);margin-top:1px;letter-spacing:0.05em;}
.bvt-s-warn{position:absolute;top:2px;right:4px;font-size:0.62rem;color:var(--vermillion-300);}
/* flows */
.bvt-flows{padding:4px 12px 2px;}
.bvt-flow{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;font-size:0.7rem;border-bottom:1px dotted rgba(184,154,83,0.12);}
.bvt-flow:last-child{border-bottom:0;}
.bvt-f-lbl{color:var(--ink-300,#9d917d);letter-spacing:0.05em;}
.bvt-f-val{color:var(--celadon-300,#a3d4c7);font-weight:600;}
.bvt-f-val.neg{color:var(--vermillion-300);}
.bvt-f-val .u{color:var(--ink-400,#6b5d4f);font-size:0.66rem;font-weight:400;margin-left:1px;}
.bvt-arr{margin-left:4px;font-size:0.68rem;}
.bvt-arr.up{color:var(--celadon-300,#a3d4c7);}
.bvt-arr.down{color:var(--vermillion-300);}
/* alerts */
.bvt-alerts{padding:4px 12px;display:flex;flex-wrap:wrap;gap:4px;}
.bvt-alert{padding:1px 6px;border-radius:8px;font-size:0.64rem;letter-spacing:0.04em;border:1px solid;background:rgba(255,255,255,0.03);}
.bvt-alert.warn{border-color:var(--amber-400,#d4a838);color:var(--amber-400,#d4a838);}
.bvt-alert.bad{border-color:var(--vermillion-400);color:var(--vermillion-300);}
.bvt-alert.gold{border-color:var(--gold-400);color:var(--gold-300);}
.bvt-alert.ok{border-color:var(--celadon-400,#7eb8a7);color:var(--celadon-300,#a3d4c7);}
/* note */
.bar-var-tip.rich .bvt-note{padding:6px 12px 9px;font-size:0.68rem;color:var(--gold-300);text-align:center;letter-spacing:0.08em;background:rgba(0,0,0,0.18);border-top:1px dashed rgba(184,154,83,0.18);}
.bar-var-tip.rich.imperial .bvt-note{color:var(--vermillion-300);border-top-color:rgba(192,64,48,0.2);}

/* ─── 全部变量模态弹窗 ─── */
.all-vars-overlay{position:fixed;inset:0;background:rgba(10,9,8,0.72);z-index:var(--z-modal,300);display:none;align-items:center;justify-content:center;}
.all-vars-overlay.open{display:flex;}
.all-vars-panel{background:var(--color-surface);border:1px solid var(--gold-d);border-radius:8px;width:min(720px,92vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(10,9,8,0.7);}
.all-vars-header{padding:1rem 1.4rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;}
.all-vars-title{font-size:1.1rem;font-weight:700;color:var(--gold);letter-spacing:0.15em;}
.all-vars-close{background:none;border:none;color:var(--txt-s);cursor:pointer;font-size:1.2rem;padding:4px 8px;}
.all-vars-close:hover{color:var(--gold);}
.all-vars-body{flex:1;overflow-y:auto;padding:0.8rem 1.4rem;}
.all-vars-filter{margin-bottom:0.8rem;display:flex;gap:0.6rem;align-items:center;}
.all-vars-filter input{flex:1;padding:0.5rem 0.8rem;border:1px solid var(--color-border);background:var(--bg-2);color:var(--txt);border-radius:4px;font-family:inherit;font-size:0.85rem;}
.all-vars-filter input:focus{outline:none;border-color:var(--gold);}
.all-vars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0.5rem;}
.all-vars-card{padding:0.6rem 0.8rem;background:var(--bg-2);border:1px solid var(--color-border-subtle);border-radius:5px;transition:border-color 0.15s;}
.all-vars-card:hover{border-color:var(--gold-d);}
.all-vars-card-name{font-size:0.78rem;color:var(--txt);font-weight:600;margin-bottom:2px;}
.all-vars-card-value{font-size:0.9rem;color:var(--gold);font-weight:700;}
.all-vars-card-desc{font-size:0.71rem;color:var(--txt-d);margin-top:3px;line-height:1.4;}
.all-vars-group{margin-bottom:1rem;}
.all-vars-group-title{font-size:0.82rem;color:var(--gold);margin-bottom:0.5rem;padding-bottom:0.3rem;border-bottom:1px solid var(--color-border-subtle);letter-spacing:0.1em;}
.all-vars-empty{text-align:center;color:var(--txt-d);padding:2rem;font-size:0.85rem;font-style:italic;}

/* ═══════════════════════════════════════════════════════ */
/* 变量详情面板 · 通用右侧滑抽屉（7 个变量面板共用）         */
/* ═══════════════════════════════════════════════════════ */
.var-drawer-overlay{position:fixed;inset:0;background:rgba(10,9,8,0.62);z-index:var(--z-modal,300);display:none;}
.var-drawer-overlay.open{display:block;}
.var-drawer{position:fixed;top:0;right:0;width:min(480px,92vw);height:100vh;background:var(--color-surface);border-left:1px solid var(--gold-d);box-shadow:-20px 0 60px rgba(10,9,8,0.7);transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.25,0.8,0.25,1);display:flex;flex-direction:column;}
.var-drawer-overlay.open .var-drawer{transform:translateX(0);}
.var-drawer-header{padding:1rem 1.3rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,var(--color-elevated),var(--color-surface));}
.var-drawer-title{font-size:1.05rem;font-weight:700;color:var(--gold);letter-spacing:0.12em;}
.var-drawer-subtitle{font-size:0.72rem;color:var(--txt-d);margin-top:2px;}
.var-drawer-close{background:none;border:none;color:var(--txt-s);cursor:pointer;font-size:1.3rem;padding:4px 10px;}
.var-drawer-close:hover{color:var(--gold);}
.var-drawer-body{flex:1;overflow-y:auto;padding:0.8rem 1.3rem 2rem;}

/* 分节 */
.vd-section{margin-bottom:1.2rem;}
.vd-section-title{font-size:0.78rem;color:var(--gold);letter-spacing:0.1em;margin-bottom:0.5rem;padding-bottom:0.25rem;border-bottom:1px dashed var(--color-border-subtle);display:flex;justify-content:space-between;align-items:center;}
.vd-section-title .vd-badge{font-size:0.7rem;color:var(--txt-d);font-weight:400;letter-spacing:normal;}

/* 墨点指示符（0-4 满） */
.vd-ink-dots{display:inline-flex;gap:2px;font-family:'Songti SC','SimSun',serif;letter-spacing:1px;font-size:0.9rem;}
.vd-ink-dots .dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--ink-300);}
.vd-ink-dots .dot.filled{background:var(--ink-200);border-color:var(--ink-100);}
.vd-ink-dots.severity-5 .dot.filled{background:var(--vermillion-400);border-color:var(--vermillion-500);}
.vd-ink-dots.severity-4 .dot.filled{background:#a88a3a;border-color:#8a6d2b;}
.vd-ink-dots.severity-3 .dot.filled{background:#6b5d4f;border-color:#3a3530;}
.vd-ink-dots.severity-2 .dot.filled{background:#9d917d;border-color:#6b5d4f;}
.vd-ink-dots.severity-1 .dot.filled{background:#6aa88a;border-color:#4a8a6a;}

/* 总览卡片（顶部大指标） */
.vd-overview{padding:0.9rem 1rem;background:var(--bg-2);border-radius:6px;border-left:4px solid var(--gold-d);margin-bottom:1rem;}
.vd-ov-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem;}
.vd-ov-row:last-child{margin-bottom:0;}
.vd-ov-label{font-size:0.78rem;color:var(--txt-d);}
.vd-ov-value{font-size:0.95rem;color:var(--gold);font-weight:600;display:flex;align-items:center;gap:6px;}
.vd-ov-phase{display:inline-block;padding:2px 8px;border:1px solid currentColor;border-radius:3px;font-size:0.7rem;letter-spacing:0.05em;}

/* 水平进度条（监察力度等） */
.vd-meter{height:8px;border-radius:4px;background:var(--bg-3);overflow:hidden;margin:4px 0;}
.vd-meter-fill{height:100%;background:linear-gradient(to right,var(--gold-500),var(--gold-400));transition:width 0.4s;}

/* 部门分项行 */
.vd-dept-row{display:grid;grid-template-columns:60px 1fr 70px 50px;gap:8px;align-items:center;padding:6px 8px;border-radius:4px;transition:background 0.15s;}
.vd-dept-row:hover{background:rgba(184,154,83,0.05);}
.vd-dept-name{font-size:0.82rem;color:var(--txt);}
.vd-dept-dots{display:flex;gap:2px;}
.vd-dept-phase{font-size:0.72rem;color:var(--txt-d);text-align:right;}
.vd-dept-trend{font-size:0.7rem;text-align:right;}
.vd-dept-trend.rising{color:var(--vermillion-400);}
.vd-dept-trend.falling{color:#6aa88a;}
.vd-dept-trend.stable{color:var(--txt-d);}

/* 机构列表 */
.vd-inst-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-2);border-radius:4px;margin-bottom:4px;border:1px solid var(--color-border-subtle);}
.vd-inst-name{font-size:0.82rem;color:var(--txt);font-weight:500;}
.vd-inst-meta{font-size:0.71rem;color:var(--txt-d);margin-top:2px;}
.vd-inst-stats{font-size:0.7rem;color:var(--gold-l);text-align:right;}

/* 弹章 / 事件列表 */
.vd-case-row{padding:8px 10px;background:var(--bg-2);border-left:3px solid var(--color-border);border-radius:0 4px 4px 0;margin-bottom:4px;cursor:pointer;transition:border-color 0.15s;}
.vd-case-row:hover{border-left-color:var(--gold);}
.vd-case-row[data-cred="high"]{border-left-color:#6aa88a;}
.vd-case-row[data-cred="medium"]{border-left-color:var(--gold-400);}
.vd-case-row[data-cred="low"]{border-left-color:var(--ink-300);}
.vd-case-row[data-cred="biased"]{border-left-color:#8a5cf5;}
.vd-case-title{font-size:0.8rem;color:var(--txt);margin-bottom:3px;}
.vd-case-meta{font-size:0.7rem;color:var(--txt-d);display:flex;gap:8px;}
.vd-case-cred{padding:1px 4px;border:1px solid currentColor;border-radius:2px;font-size:0.68rem;}
.vd-case-cred.high{color:#6aa88a;}
.vd-case-cred.medium{color:var(--gold-400);}
.vd-case-cred.low{color:var(--ink-300);}
.vd-case-cred.biased{color:#8a5cf5;}

/* 反制手段按钮组 */
.vd-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.vd-action-btn{padding:8px 10px;background:var(--bg-2);border:1px solid var(--color-border);color:var(--txt);font-family:inherit;font-size:0.78rem;cursor:pointer;border-radius:4px;transition:0.15s;text-align:left;}
.vd-action-btn:hover{border-color:var(--gold-d);background:rgba(184,154,83,0.08);color:var(--gold-l);}
.vd-action-btn .cost{display:block;font-size:0.7rem;color:var(--txt-d);margin-top:2px;}
.vd-action-btn:hover .cost{color:var(--gold-d);}
.vd-action-btn.disabled{opacity:0.4;cursor:not-allowed;}
.vd-action-btn.dangerous{border-color:rgba(192,64,48,0.4);}
.vd-action-btn.dangerous:hover{background:rgba(192,64,48,0.1);color:var(--vermillion-400);}

/* 空态提示 */
.vd-empty{padding:1rem;text-align:center;color:var(--txt-d);font-size:0.78rem;font-style:italic;}

/* ═══════════════════════════════════════════════════════════════
   .tr-* · 帑廪/内帑 抽屉重构 (preview-treasury.html → guoku/neitang panel)
   设计：金紫禁(国库) + 朱红(内帑) · 鎏金 corner / hero 玺 / 三账卡 / 流向带
   ═══════════════════════════════════════════════════════════════ */
/* 抽屉头部增强 (用 .var-drawer-header 已有，这里加 ::after gradient) */
.var-drawer-header{position:relative;}
.var-drawer-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-400),transparent);opacity:0.6;pointer-events:none;}
.var-drawer-body{background:linear-gradient(180deg,rgba(184,154,83,0.018) 0%,transparent 25%),repeating-linear-gradient(90deg,transparent 0,transparent 30px,rgba(107,93,79,0.02) 30px,rgba(107,93,79,0.02) 31px);}

/* === Hero === */
.tr-hero{position:relative;padding:14px 16px;background:linear-gradient(135deg,rgba(184,154,83,0.08),rgba(184,154,83,0.02) 65%,transparent);border:1px solid var(--gold-d);border-radius:8px;margin-bottom:14px;}
.tr-hero::before,.tr-hero::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--gold-400);opacity:0.55;}
.tr-hero::before{top:6px;left:6px;border-right:0;border-bottom:0;}
.tr-hero::after{bottom:6px;right:6px;border-left:0;border-top:0;}
.tr-hero.imperial{background:linear-gradient(135deg,rgba(192,64,48,0.10),rgba(184,154,83,0.04) 60%,transparent);border-color:var(--vermillion-500);}
.tr-hero.imperial::before,.tr-hero.imperial::after{border-color:var(--vermillion-300);}
.tr-hero-row{display:flex;align-items:flex-start;gap:14px;}
.tr-hero-glyph{flex:0 0 64px;width:64px;height:64px;border:2px solid var(--gold-400);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.85rem;font-weight:700;color:var(--gold-300);background:radial-gradient(circle at 35% 30%,rgba(212,190,122,0.18),rgba(0,0,0,0.4) 70%);text-shadow:0 0 8px rgba(184,154,83,0.4);font-family:var(--font-serif,"STKaiti","KaiTi","楷体",serif);}
.tr-hero-glyph.imperial{border-color:var(--vermillion-300);color:var(--vermillion-300);background:radial-gradient(circle at 35% 30%,rgba(212,112,106,0.22),rgba(0,0,0,0.4) 70%);text-shadow:0 0 8px rgba(192,64,48,0.45);}
.tr-hero-main{flex:1;min-width:0;}
.tr-hero-stock-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.tr-hero-amount{font-size:2.05rem;font-weight:700;color:var(--gold-300);letter-spacing:0.04em;line-height:1;text-shadow:0 0 8px rgba(184,154,83,0.18);}
.tr-hero-amount.warn{color:var(--amber-400);text-shadow:0 0 8px rgba(212,168,56,0.18);}
.tr-hero-amount.bad{color:var(--vermillion-300);text-shadow:0 0 8px rgba(192,64,48,0.22);}
.tr-hero-unit{font-size:0.82rem;color:var(--gold-d);letter-spacing:0.1em;}
.tr-hero-mini{display:flex;gap:14px;margin-top:8px;font-size:0.72rem;color:var(--txt-s);flex-wrap:wrap;}
.tr-hero-mini b{color:var(--celadon-300,#a3d4c7);font-weight:600;letter-spacing:0.04em;margin-right:3px;}
.tr-hero-mini .mu{color:var(--ink-400,#6b5d4f);font-size:0.68rem;margin-left:2px;}
.tr-hero-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}

/* === pill === */
.tr-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:11px;font-size:0.7rem;letter-spacing:0.06em;border:1px solid;background:rgba(255,255,255,0.03);}
.tr-pill.ok{border-color:var(--celadon-400,#7eb8a7);color:var(--celadon-300,#a3d4c7);background:rgba(126,184,167,0.07);}
.tr-pill.warn{border-color:var(--amber-400,#d4a838);color:var(--amber-400,#d4a838);background:rgba(212,168,56,0.07);}
.tr-pill.bad{border-color:var(--vermillion-400);color:var(--vermillion-300);background:rgba(192,64,48,0.07);}
.tr-pill.gold{border-color:var(--gold-400);color:var(--gold-300);background:rgba(184,154,83,0.07);}
.tr-pill.muted{border-color:var(--ink-500);color:var(--ink-300);}

/* === Section 框架 === */
.tr-section{margin-bottom:14px;}
.tr-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:5px;border-bottom:1px dashed rgba(184,154,83,0.25);}
.tr-section-name{font-size:0.78rem;color:var(--gold-300);letter-spacing:0.16em;font-weight:600;}
.tr-section-name::before{content:"〔";color:var(--gold-d);margin-right:1px;}
.tr-section-name::after{content:"〕";color:var(--gold-d);margin-left:1px;}
.tr-section-name.bad{color:var(--vermillion-300);}
.tr-section-name.bad::before,.tr-section-name.bad::after{color:var(--vermillion-400);}
.tr-section-badge{font-size:0.68rem;color:var(--ink-300,#9d917d);letter-spacing:0.08em;}
.tr-section-badge.ok{color:var(--celadon-400,#7eb8a7);}
.tr-section-badge.warn{color:var(--amber-400,#d4a838);}
.tr-section-badge.bad{color:var(--vermillion-300);}

/* === 6 格快览 === */
.tr-quickstats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.tr-qs{padding:8px 9px;background:rgba(255,255,255,0.025);border:1px solid rgba(184,154,83,0.12);border-radius:5px;transition:all 0.15s var(--ease,cubic-bezier(0,0,0.2,1));}
.tr-qs:hover{border-color:var(--gold-500);transform:translateY(-1px);background:rgba(255,255,255,0.04);}
.tr-qs-label{font-size:0.66rem;color:var(--gold-300);letter-spacing:0.1em;opacity:0.85;}
.tr-qs-val{font-size:1.02rem;font-weight:700;color:var(--gold-300);letter-spacing:0.02em;margin-top:3px;line-height:1.05;}
.tr-qs-val.up{color:var(--celadon-300,#a3d4c7);}
.tr-qs-val.down{color:var(--vermillion-300);}
.tr-qs-val.warn{color:var(--amber-400,#d4a838);}
.tr-qs-sub{font-size:0.66rem;color:var(--ink-300,#9d917d);margin-top:2px;}

/* === 三账库存 大卡 === */
.tr-3led{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.tr-led{position:relative;padding:11px;background:linear-gradient(165deg,rgba(255,255,255,0.04),rgba(0,0,0,0.18));border:1px solid var(--gold-d);border-left-width:3px;border-radius:5px;}
.tr-led.money{border-left-color:var(--gold-400);}
.tr-led.grain{border-left-color:var(--celadon-400,#7eb8a7);}
.tr-led.cloth{border-left-color:#a88a6a;}
.tr-led-name{font-size:0.7rem;color:var(--ink-300,#9d917d);letter-spacing:0.16em;}
.tr-led-stock{font-size:1.25rem;font-weight:700;letter-spacing:0.02em;line-height:1.1;margin-top:4px;}
.tr-led.money .tr-led-stock{color:var(--gold-300);}
.tr-led.grain .tr-led-stock{color:var(--celadon-300,#a3d4c7);}
.tr-led.cloth .tr-led-stock{color:#c4a878;}
.tr-led-unit{font-size:0.66rem;color:var(--ink-400,#6b5d4f);letter-spacing:0.06em;margin-top:1px;}
.tr-led-flow{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(184,154,83,0.18);font-size:0.7rem;display:flex;justify-content:space-between;color:var(--ink-300,#9d917d);}
.tr-led-flow .delta-up{color:var(--celadon-300,#a3d4c7);}
.tr-led-flow .delta-down{color:var(--vermillion-300);}
.tr-led-warn{position:absolute;top:6px;right:8px;font-size:0.64rem;color:var(--vermillion-300);}

/* === 税赋三数 === */
.tr-tax3{padding:10px 11px;background:rgba(0,0,0,0.18);border:1px solid var(--bdr);border-radius:5px;}
.tr-tax3-title{font-size:0.7rem;color:var(--gold-l);margin-bottom:6px;letter-spacing:0.06em;}
.tr-tax3-row{display:grid;grid-template-columns:80px 1fr auto;gap:10px;align-items:center;padding:3px 0;font-size:0.74rem;}
.tr-tax3-row .lbl{color:var(--ink-300,#9d917d);letter-spacing:0.06em;}
.tr-tax3-row .bar{height:6px;background:rgba(0,0,0,0.35);border-radius:3px;overflow:hidden;border:1px solid rgba(184,154,83,0.1);}
.tr-tax3-row .bar > span{display:block;height:100%;border-radius:2px;}
.tr-tax3-row.nominal .bar > span{background:linear-gradient(90deg,var(--gold-400),var(--gold-500));}
.tr-tax3-row.actual .bar > span{background:linear-gradient(90deg,var(--vermillion-400),var(--vermillion-500));}
.tr-tax3-row.peasant .bar > span{background:linear-gradient(90deg,var(--amber-400,#d4a838),var(--amber-500,#a07922));}
.tr-tax3-row .val{color:var(--txt);font-weight:600;font-size:0.74rem;}
.tr-tax3-row .delta{margin-left:5px;font-size:0.7rem;color:var(--ink-400,#6b5d4f);}
.tr-tax3-gap{margin-top:8px;padding:6px 8px;background:rgba(192,64,48,0.07);border-left:2px solid var(--vermillion-400);border-radius:0 3px 3px 0;font-size:0.7rem;}
.tr-tax3-gap-title{color:var(--vermillion-300);letter-spacing:0.05em;margin-bottom:3px;}
.tr-tax3-gap-line{display:flex;justify-content:space-between;color:var(--ink-200,#d4c9b0);padding:2px 0;}
.tr-tax3-gap-line .gap-val{color:var(--vermillion-300);}

/* === 流水分项 === */
.tr-flow-group{padding:8px 9px;background:rgba(0,0,0,0.15);border:1px solid var(--bdr);border-radius:5px;margin-bottom:7px;}
.tr-flow-group.income{border-left:3px solid var(--celadon-500,#5a8f7f);}
.tr-flow-group.expense{border-left:3px solid var(--vermillion-500);}
.tr-flow-head{display:flex;justify-content:space-between;align-items:baseline;font-size:0.7rem;color:var(--gold-l);margin-bottom:5px;letter-spacing:0.04em;}
.tr-flow-head .total{color:var(--ink-200,#d4c9b0);font-size:0.7rem;}
.tr-flow-row{display:grid;grid-template-columns:74px 1fr auto;gap:8px;align-items:center;padding:2px 0 2px 6px;font-size:0.7rem;}
.tr-flow-row .lbl{color:var(--ink-300,#9d917d);}
.tr-flow-row .bar{height:5px;background:rgba(0,0,0,0.4);border-radius:3px;overflow:hidden;}
.tr-flow-row.income .bar > span{background:linear-gradient(90deg,var(--celadon-400,#7eb8a7),var(--celadon-500,#5a8f7f));display:block;height:100%;}
.tr-flow-row.expense .bar > span{background:linear-gradient(90deg,var(--vermillion-400),var(--vermillion-500));display:block;height:100%;}
.tr-flow-row .v{color:var(--txt);font-size:0.71rem;font-weight:600;}
.tr-flow-row .v .pct{color:var(--ink-300,#9d917d);font-weight:400;font-size:0.68rem;margin-left:3px;}
.tr-flow-tops{padding:1px 0 4px 22px;font-size:0.66rem;color:var(--ink-300,#9d917d);letter-spacing:0.02em;}
.tr-flow-tops .arrow{color:var(--gold-400);margin-right:4px;}
.tr-flow-tops .top{color:var(--gold-300);cursor:pointer;text-decoration:underline dotted rgba(184,154,83,0.35);text-underline-offset:2px;margin-right:6px;}
.tr-flow-tops .top:hover{color:var(--gold-l);}

/* === 地域分账 卡片 === */
.tr-region-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.tr-region-card{padding:6px 9px;background:rgba(255,255,255,0.025);border:1px solid rgba(184,154,83,0.15);border-radius:4px;display:flex;justify-content:space-between;align-items:center;font-size:0.7rem;cursor:pointer;transition:all 0.15s;}
.tr-region-card:hover{border-color:var(--gold-400);background:rgba(184,154,83,0.06);}
.tr-region-card .nm{color:var(--txt);font-weight:600;letter-spacing:0.04em;}
.tr-region-card .meta{display:flex;gap:7px;align-items:center;font-size:0.68rem;color:var(--ink-300,#9d917d);}
.tr-region-card .meta .delta-up{color:var(--celadon-300,#a3d4c7);}
.tr-region-card .meta .delta-down{color:var(--vermillion-300);}
.tr-region-more{text-align:center;font-size:0.7rem;color:var(--ink-400,#6b5d4f);padding:4px 0;letter-spacing:0.05em;}

/* === 趋势图 === */
.tr-trend-wrap{padding:6px 8px;background:rgba(0,0,0,0.2);border:1px solid var(--bdr);border-radius:5px;}
.tr-trend-wrap svg{width:100%;height:auto;display:block;}

/* === 改革 === */
.tr-reform-row{padding:6px 9px;background:rgba(255,255,255,0.025);border-left:3px solid var(--gold-d);border-radius:0 4px 4px 0;margin-bottom:4px;font-size:0.74rem;display:flex;justify-content:space-between;align-items:center;}
.tr-reform-row.ongoing{border-left-color:var(--gold-400);background:rgba(184,154,83,0.08);}
.tr-reform-row.completed{border-left-color:var(--celadon-400,#7eb8a7);}
.tr-reform-row .name{color:var(--gold-300);}
.tr-reform-row .h-note{color:var(--ink-300,#9d917d);font-size:0.68rem;letter-spacing:0.04em;}
.tr-reform-row.completed .name{color:var(--celadon-300,#a3d4c7);}
.tr-reform-stage{font-size:0.7rem;margin:6px 0 3px;letter-spacing:0.06em;}
.tr-reform-stage.s-on{color:var(--gold-l);}
.tr-reform-stage.s-done{color:var(--celadon-400,#7eb8a7);}
.tr-reform-stage.s-avail{color:var(--ink-300,#9d917d);}
.tr-reform-tip{font-size:0.68rem;color:var(--ink-400,#6b5d4f);margin-top:5px;font-style:italic;}

/* === 警示带 === */
.tr-alert{padding:7px 10px;border-left:3px solid;border-radius:0 4px 4px 0;font-size:0.72rem;line-height:1.5;margin-bottom:6px;}
.tr-alert.bad{background:rgba(192,64,48,0.08);border-left-color:var(--vermillion-400);color:var(--ink-100,#ede5d0);}
.tr-alert.bad .ttl{color:var(--vermillion-300);font-weight:600;letter-spacing:0.06em;}
.tr-alert.warn{background:rgba(212,168,56,0.07);border-left-color:var(--amber-400,#d4a838);color:var(--ink-100,#ede5d0);}
.tr-alert.warn .ttl{color:var(--amber-400,#d4a838);font-weight:600;letter-spacing:0.06em;}
.tr-alert.ok{background:rgba(126,184,167,0.07);border-left-color:var(--celadon-400,#7eb8a7);color:var(--ink-100,#ede5d0);}
.tr-alert.ok .ttl{color:var(--celadon-300,#a3d4c7);font-weight:600;letter-spacing:0.06em;}
.tr-alert .ttl{display:block;margin-bottom:2px;font-size:0.7rem;}
.tr-alert .ds{font-size:0.7rem;color:var(--ink-200,#d4c9b0);display:block;}
.tr-alert .chain{font-size:0.68rem;color:var(--ink-300,#9d917d);margin-top:3px;font-style:italic;display:block;}

/* === 措置入口 === */
.tr-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.tr-action-btn{padding:8px 11px;background:linear-gradient(135deg,rgba(184,154,83,0.05),rgba(0,0,0,0.18));border:1px solid var(--gold-d);border-left:3px solid var(--gold-400);border-radius:4px;font-size:0.74rem;cursor:pointer;transition:all 0.15s;text-align:left;font-family:inherit;color:inherit;}
.tr-action-btn:hover{background:rgba(184,154,83,0.1);border-color:var(--gold-300);transform:translateX(1px);}
.tr-action-btn .ac-name{color:var(--gold-300);font-weight:600;display:block;margin-bottom:2px;letter-spacing:0.04em;}
.tr-action-btn .ac-hint{color:var(--ink-300,#9d917d);font-size:0.68rem;letter-spacing:0.04em;display:block;}
.tr-action-tip{font-size:0.7rem;color:var(--ink-400,#6b5d4f);font-style:italic;text-align:center;margin-top:6px;letter-spacing:0.04em;}

/* === 年度决算 === */
.tr-yearly-row{display:flex;justify-content:space-between;padding:6px 10px;background:rgba(255,255,255,0.025);border:1px solid rgba(184,154,83,0.1);border-radius:4px;margin-bottom:3px;font-size:0.74rem;cursor:pointer;}
.tr-yearly-row:hover{background:rgba(184,154,83,0.05);}
.tr-yearly-row .yr{color:var(--gold-l);letter-spacing:0.04em;}
.tr-yearly-row .meta{color:var(--ink-300,#9d917d);font-size:0.7rem;}
.tr-yearly-row .net.up{color:var(--celadon-300,#a3d4c7);}
.tr-yearly-row .net.down{color:var(--vermillion-300);}

/* === 历史预设 / 调拨阻力 共用小组件 === */
.tr-preset-note{padding:8px 11px;background:rgba(184,154,83,0.04);border-left:3px solid var(--gold-d);border-radius:0 4px 4px 0;font-size:0.74rem;}
.tr-preset-note .pn-name{color:var(--gold);font-weight:600;margin-bottom:4px;letter-spacing:0.06em;}
.tr-preset-note .pn-hist{color:var(--ink-300,#9d917d);font-style:italic;font-size:0.71rem;line-height:1.55;}
.tr-resist-row{display:grid;grid-template-columns:90px 1fr auto;gap:8px;align-items:center;padding:3px 0;font-size:0.72rem;}
.tr-resist-row + .tr-resist-row{margin-top:4px;}
.tr-resist-row .rs-lbl{color:var(--ink-300,#9d917d);}
.tr-resist-row .rs-bar{height:6px;background:rgba(0,0,0,0.4);border-radius:3px;overflow:hidden;}
.tr-resist-row .rs-bar > span{display:block;height:100%;}
.tr-resist-row .rs-bar.low > span{background:linear-gradient(90deg,var(--celadon-400,#7eb8a7),var(--celadon-500,#5a8f7f));}
.tr-resist-row .rs-bar.mid > span{background:linear-gradient(90deg,var(--amber-400,#d4a838),var(--amber-500,#a07922));}
.tr-resist-row .rs-bar.high > span{background:linear-gradient(90deg,var(--vermillion-400),var(--vermillion-500));}
.tr-resist-row .rs-val.low{color:var(--celadon-300,#a3d4c7);}
.tr-resist-row .rs-val.mid{color:var(--amber-400,#d4a838);}
.tr-resist-row .rs-val.high{color:var(--vermillion-300);}

/* === 漕运迷你表 === */
.tr-cao-grid{padding:9px 10px;background:rgba(0,0,0,0.18);border:1px solid var(--bdr);border-radius:5px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:0.74rem;}
.tr-cao-grid > span:nth-child(odd){color:var(--ink-300,#9d917d);}

/* === 非常规收入小卡 === */
.tr-incidental{padding:6px 9px;background:rgba(212,168,56,0.05);border-left:3px solid var(--amber-400,#d4a838);border-radius:0 4px 4px 0;margin-bottom:4px;font-size:0.72rem;}
.tr-incidental .in-name{color:var(--gold);font-weight:500;letter-spacing:0.04em;}
.tr-incidental .in-hist{color:var(--ink-300,#9d917d);font-size:0.68rem;margin-top:2px;letter-spacing:0.02em;}

/* 编辑器 */
#E{display:none;margin-top:62px;height:calc(100vh - 62px);}
.sb{width:180px;background:var(--bg-1);border-right:1px solid var(--bdr);padding:0.3rem 0;flex-shrink:0;overflow-y:auto;}
.sg{font-size:0.68rem;color:var(--txt-d);padding:0.6rem 0.8rem 0.2rem;letter-spacing:0.15em;}
.si{display:flex;align-items:center;gap:0.4rem;padding:0.45rem 0.8rem;cursor:pointer;color:var(--txt-s);font-size:0.82rem;transition:0.15s;border-left:3px solid transparent;}
.si:hover{background:var(--bg-3);color:var(--txt);}
.si.on{background:var(--bg-3);color:var(--gold);border-left-color:var(--gold);}
.ed-badge{font-size:0.71rem;color:var(--txt-d);margin-left:auto;}
.em{flex:1;overflow-y:auto;padding:1.2rem 1.8rem;}

/* 游戏界面 */
#G{display:none;margin-top:62px;height:calc(100vh - 62px);grid-template-columns:52px 1fr 52px;position:relative;}
.gl,.gr{background:transparent;padding:0;overflow-y:visible;border:none;}
.gc{display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-paper,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;}
.gc::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;z-index:0;}
.gc > *{position:relative;z-index:1;}

/* ═══ 侧栏 rail（始终 44px）═══ */
.gs-rail-left,.gs-rail-right{background:var(--bg-2,#1a1510);position:relative;overflow:hidden;display:flex;flex-direction:column;z-index:20;}
.gs-rail-left{border-right:1px solid var(--color-border-subtle);}
.gs-rail-right{border-left:1px solid var(--color-border-subtle);}
.gs-rail{display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 0 8px;overflow-y:auto;scrollbar-width:none;flex:1;}
.gs-rail::-webkit-scrollbar{display:none;}
.gs-rail-btn{width:38px;height:42px;background:rgba(184,154,83,0.04);border:1px solid var(--m-c,var(--gold-d));color:var(--m-c,var(--gold-400));border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:16px;font-weight:500;transition:all 0.18s;position:relative;flex-shrink:0;padding:0;}
.gs-rail-btn:hover{background:rgba(184,154,83,0.18);transform:scale(1.08);box-shadow:0 0 6px var(--m-c,var(--gold-400));}
.gs-rail-btn.c-fac{--m-c:var(--indigo-400,#5a6fa8);}
.gs-rail-btn.c-party{--m-c:var(--purple-400,#8e6aa8);}
.gs-rail-btn.c-class{--m-c:var(--celadon-400,#7eb8a7);}
.gs-rail-btn.c-army{--m-c:var(--vermillion-400);}
.gs-rail-btn.c-admin{--m-c:var(--indigo-400,#5a6fa8);}
.gs-rail-btn.c-keju{--m-c:var(--celadon-400,#7eb8a7);}
.gs-rail-btn.c-item{--m-c:var(--gold-300,#c9a85f);}
.gs-rail-btn.c-harem{--m-c:var(--vermillion-300,#d15c47);}
.gs-rail-btn.c-map{--m-c:var(--celadon-400,#7eb8a7);}
.gs-rail-btn.c-help{--m-c:var(--gold-300,#c9a85f);}
.gs-rail-btn.c-theme{--m-c:var(--purple-400,#8e6aa8);}
.gs-rail-btn.c-audio{--m-c:var(--blue-400,#5a8fb8);}
.gs-rail-btn.c-self{--m-c:var(--gold-300,#c9a85f);}
.gs-rail-btn.c-time{--m-c:var(--indigo-400,#5a6fa8);}
.gs-rail-btn.c-issue{--m-c:var(--vermillion-400);}
.gs-rail-btn.c-news{--m-c:var(--amber-400,#c9a045);}
.gs-rail-btn.c-goal{--m-c:var(--purple-400,#8e6aa8);}
.gs-rail-btn.c-rumor{--m-c:var(--purple-400,#8e6aa8);}
.gs-rail-btn.c-fin{--m-c:var(--gold-400);}
.gs-rail-btn.c-rel{--m-c:var(--celadon-400,#7eb8a7);}

/* ═══ 抽屉 overlay ═══ */
.gs-drawer{position:absolute;top:0;bottom:0;width:340px;height:100%;background:var(--bg-2,#1a1510);border-right:1px solid rgba(184,154,83,0.35);z-index:30;display:flex;flex-direction:column;transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);box-shadow:6px 0 24px rgba(0,0,0,0.5);transform:translateX(-110%);overflow:hidden;}
.gs-drawer.right{right:52px;left:auto;border-right:none;border-left:1px solid rgba(184,154,83,0.35);box-shadow:-6px 0 24px rgba(0,0,0,0.5);transform:translateX(110%);width:360px;}
.gs-drawer.left{left:52px;width:340px;}
.gs-drawer.open{transform:translateX(0);}
.gs-drawer-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:linear-gradient(to bottom,var(--bg-paper,#241e18),var(--bg-2,#1a1510));border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;}
.gs-drawer-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:var(--gold-300,#c9a85f);letter-spacing:0.25em;font-weight:500;}
.gs-drawer-title::before{content:"\25C6\u00A0";font-size:13px;color:var(--gold-d);}
.gs-drawer-close{background:transparent;border:1px solid var(--color-border-subtle);color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;width:22px;height:22px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.gs-drawer-close:hover{color:var(--vermillion-400);border-color:var(--vermillion-400);}
.gs-drawer-body{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 10px 40px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--gold-d) rgba(26,20,16,0.5);}
.gs-drawer-body::-webkit-scrollbar{width:8px;}
.gs-drawer-body::-webkit-scrollbar-track{background:rgba(26,20,16,0.5);border-radius:4px;border-left:1px solid var(--color-border-subtle);}
.gs-drawer-body::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--gold-d),rgba(107,93,71,0.6));border-radius:4px;border:1px solid var(--bg-2,#1a1510);}
.gs-drawer-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(to bottom,var(--gold-400),var(--gold-d));}
/* 让旧的 .gl/.gr 在 drawer 内部保持纵向 stack */
.gs-drawer-body .gl,.gs-drawer-body .gr{display:flex;flex-direction:column;gap:8px;}
/* 旧式 panel 容器及所有非 gs-* 元素在 drawer 内隐藏（用 gs-panel shell extras 替代） */
.gs-drawer-body #side-panels-ext{display:none;}
.gs-drawer-body .gl > *:not(.gs-panel):not(.gs-self-card):not(.gs-energy){display:none;}
.gs-drawer-body .gr > *:not(#_shell_extras_right){display:none;}

/* ═══ gs-panel（shell extras 通用面板样式）═══ */
.gs-panel{background:var(--bg-paper,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--panel-c,var(--gold-d));border-radius:3px;padding:10px 12px;position:relative;}
.gs-panel.p-dyn{--panel-c:var(--gold-400);}
.gs-panel.p-weather{--panel-c:var(--amber-400,#c9a045);}
.gs-panel.p-bian{--panel-c:var(--vermillion-400);}
.gs-panel.p-school{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-panel.p-price{--panel-c:var(--amber-400,#c9a045);}
.gs-panel.p-book{--panel-c:var(--gold-300,#c9a85f);}
.gs-panel.p-palace{--panel-c:var(--vermillion-300,#d15c47);}
.gs-panel.p-theme{--panel-c:var(--purple-400,#8e6aa8);}
.gs-panel.p-audio{--panel-c:var(--blue-400,#5a8fb8);}
.gs-panel.p-time{--panel-c:var(--indigo-400,#5a6fa8);}
.gs-panel.p-quick{--panel-c:var(--gold-400);}
.gs-panel.p-issue{--panel-c:var(--vermillion-400);}
.gs-panel.p-goal{--panel-c:var(--purple-400,#8e6aa8);}
.gs-panel.p-finance{--panel-c:var(--gold-400);}
.gs-panel.p-news{--panel-c:var(--amber-400,#c9a045);}
.gs-panel.p-rumor{--panel-c:var(--purple-400,#8e6aa8);}
.gs-panel-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding-bottom:4px;border-bottom:1px dashed var(--color-border-subtle);}
.gs-panel-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.8333rem;color:var(--panel-c,var(--gold-400));letter-spacing:0.2em;font-weight:500;}
.gs-panel-title::before{content:"\25C6\u00A0";font-size:9px;opacity:0.7;}
.gs-panel-cnt{font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;padding:1px 5px;background:rgba(184,154,83,0.06);border-radius:2px;font-style:italic;}

/* 朝代主题 */
.gs-dyn-arc{padding:6px 8px;background:rgba(201,168,95,0.04);border:1px dashed var(--gold-d);border-radius:3px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.7813rem;line-height:1.7;color:#ede5d0;}
.gs-dyn-arc .phase{display:inline-block;padding:0 6px;margin-right:4px;background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;font-size:14px;letter-spacing:0.15em;border-radius:2px;line-height:16px;}

/* 四时物候 */
.gs-weather-panel{display:flex;align-items:center;gap:10px;}
.gs-season-disc{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(201,160,69,0.2),transparent 60%),conic-gradient(from 0deg,var(--celadon-400,#7eb8a7) 0 25%,var(--amber-400,#c9a045) 25% 50%,var(--vermillion-300,#d15c47) 50% 75%,var(--indigo-400,#5a6fa8) 75% 100%);border:2px solid var(--amber-400,#c9a045);position:relative;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,0.4);}
.gs-season-disc::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--bg-paper,#241e18);}
.gs-season-disc::after{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:18px;font-weight:bold;color:var(--amber-400,#c9a045);line-height:1;}
.gs-season-info{flex:1;min-width:0;}
.gs-season-row{display:flex;align-items:baseline;gap:4px;font-size:0.8073rem;color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.08em;padding:2px 0;}
.gs-season-row .k{color:var(--ink-300,#6b5d47);min-width:32px;font-size:14px;}
.gs-season-row .v{color:#ede5d0;}

/* 边患 */
.gs-bian-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:15px;border-bottom:1px dashed rgba(107,93,71,0.12);}
.gs-bian-row:last-child{border-bottom:none;}
.gs-bian-threat{width:26px;height:20px;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:#f4eadd;border-radius:2px;font-weight:500;}
.gs-bian-threat.hi{background:var(--vermillion-400);animation:gs-bian-pulse 2s infinite;}
.gs-bian-threat.mid{background:var(--amber-400,#c9a045);color:#1a1410;}
.gs-bian-threat.lo{background:var(--celadon-400,#7eb8a7);color:#1a1410;}
@keyframes gs-bian-pulse{0%,100%{box-shadow:0 0 0 0 rgba(192,64,48,0.5);}50%{box-shadow:0 0 0 3px rgba(192,64,48,0);}}
.gs-bian-info{flex:1;min-width:0;}
.gs-bian-name{font-family:"STKaiti","KaiTi","楷体",serif;color:#ede5d0;letter-spacing:0.06em;font-size:0.8073rem;}
.gs-bian-desc{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;}
.gs-bian-force{font-size:13.5px;color:var(--vermillion-400);font-family:"STKaiti","KaiTi","楷体",serif;}

/* 学派 */
.gs-school-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:0.8073rem;}
.gs-school-icon{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--s-c,var(--celadon-400,#7eb8a7)),rgba(26,20,16,0.6));border:1px solid var(--s-c,var(--celadon-400,#7eb8a7));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;font-weight:500;flex-shrink:0;}
.gs-school-name{flex:1;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.06em;}
.gs-school-level{font-size:13.5px;font-family:"STKaiti","KaiTi","楷体",serif;padding:0 5px;border:1px solid var(--s-c,var(--celadon-400,#7eb8a7));color:var(--s-c,var(--celadon-400,#7eb8a7));border-radius:2px;line-height:14px;}
.gs-school-infl{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;min-width:22px;text-align:right;}

/* 物价 */
.gs-price-row{display:flex;align-items:center;gap:4px;padding:3px 0;font-size:0.7813rem;}
.gs-price-name{font-family:"STKaiti","KaiTi","楷体",serif;color:#ede5d0;letter-spacing:0.06em;min-width:26px;}
.gs-price-val{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#f4eadd;font-weight:500;}
.gs-price-unit{font-size:13px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-price-trend{display:inline-flex;align-items:center;gap:2px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;padding:0 5px;border-radius:2px;line-height:14px;margin-left:auto;}
.gs-price-trend.up{color:var(--vermillion-400);background:rgba(192,64,48,0.06);}
.gs-price-trend.down{color:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.06);}
.gs-price-trend.stable{color:#d4c9b0;background:rgba(107,93,71,0.08);}
.gs-price-spark{width:40px;height:16px;display:flex;align-items:flex-end;gap:1px;}
.gs-price-spark span{flex:1;background:var(--amber-400,#c9a045);opacity:0.7;border-radius:1px;}

/* 典藏 */
.gs-book-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.gs-book-card{padding:6px 8px;background:rgba(201,168,95,0.04);border:1px solid var(--color-border-subtle);border-left:3px solid var(--b-c,var(--gold-d));border-radius:2px;text-align:center;}
.gs-book-card.b-jing{--b-c:var(--gold-400);}
.gs-book-card.b-shi{--b-c:var(--celadon-400,#7eb8a7);}
.gs-book-card.b-zi{--b-c:var(--indigo-400,#5a6fa8);}
.gs-book-card.b-ji{--b-c:var(--amber-400,#c9a045);}
.gs-book-name{font-family:"STKaiti","KaiTi","楷体",serif;font-size:12px;color:var(--b-c,var(--gold-400));letter-spacing:0.1em;font-weight:500;}
.gs-book-num{font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.8333rem;color:#ede5d0;margin:2px 0;}
.gs-book-sub{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:var(--ink-300,#6b5d47);font-style:italic;letter-spacing:0.05em;}

/* 宫殿 */
.gs-palace-diag{position:relative;height:130px;background:linear-gradient(to bottom,rgba(140,40,30,0.1),rgba(26,20,16,0.5));border:1px solid var(--vermillion-600,#8f3428);border-radius:3px;padding:10px;display:flex;flex-direction:column;gap:4px;align-items:center;}
.gs-palace-row-block{display:flex;gap:4px;}
.gs-palace-block{padding:3px 6px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;color:#f4eadd;background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));border:0.5px solid var(--vermillion-300,#d15c47);border-radius:2px;letter-spacing:0.1em;box-shadow:0 1px 2px rgba(0,0,0,0.3);}
.gs-palace-block.gold{background:linear-gradient(to bottom,var(--gold-400),var(--gold-500));color:#1a1410;}
.gs-palace-block.small{padding:2px 4px;font-size:10px;}
.gs-palace-gate{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;color:var(--gold-300,#c9a85f);letter-spacing:0.15em;margin-top:auto;padding-top:4px;border-top:1px dashed var(--color-border-subtle);width:100%;text-align:center;}

/* 主题切换 */
.gs-theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;}
.gs-theme-card{padding:6px;border:1px solid var(--color-border-subtle);border-radius:3px;cursor:pointer;transition:all 0.2s;background:rgba(36,30,24,0.6);position:relative;}
.gs-theme-card:hover{border-color:var(--gold-400);transform:translateY(-1px);}
.gs-theme-card.active{border-color:var(--gold-300,#c9a85f);box-shadow:0 0 0 1px var(--gold-300,#c9a85f),0 2px 8px rgba(201,168,95,0.2);}
.gs-theme-card.active::after{content:"\2713";position:absolute;top:3px;right:4px;color:var(--gold-300,#c9a85f);font-size:15px;font-weight:bold;}
.gs-theme-swatch{display:flex;height:22px;border-radius:2px;overflow:hidden;margin-bottom:4px;}
.gs-theme-swatch .c{flex:1;}
.gs-theme-name{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#ede5d0;letter-spacing:0.12em;text-align:center;}
.gs-theme-card .desc{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.05em;text-align:center;margin-top:1px;font-style:italic;}
.gs-font-row{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:6px;border-top:1px dashed var(--color-border-subtle);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;}
.gs-font-row .lbl{color:#d4c9b0;letter-spacing:0.15em;min-width:54px;}
.gs-font-sizes{display:flex;gap:2px;flex:1;}
.gs-sz-btn{flex:1;padding:3px 0;background:transparent;border:1px solid var(--color-border-subtle);color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;cursor:pointer;border-radius:2px;letter-spacing:0.1em;}
.gs-sz-btn.xs{font-size:11.5px;}
.gs-sz-btn.sm{font-size:12.5px;}
.gs-sz-btn.md{font-size:13.5px;}
.gs-sz-btn.lg{font-size:14.5px;}
.gs-sz-btn.xl{font-size:15.5px;}
.gs-sz-btn.active{background:linear-gradient(to bottom,rgba(201,168,95,0.15),rgba(184,154,83,0.06));color:var(--gold-300,#c9a85f);border-color:var(--gold-d);}
.gs-sz-btn:hover{color:var(--gold-400);border-color:var(--gold-d);}
.gs-font-select{flex:1;padding:4px 8px;background:rgba(26,20,16,0.6);border:1px solid var(--color-border-subtle);color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;border-radius:2px;letter-spacing:0.08em;cursor:pointer;}
.tm-theme-block{margin-bottom:8px;}
.tm-theme-block-title{font-family:var(--font-serif);font-size:13px;color:var(--gold-300,#c9a85f);letter-spacing:0.18em;margin:0 0 5px;}
.tm-font-global-row{border-top:1px solid var(--color-border-subtle);}
.tm-scope-size-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:10px 0 6px;padding-top:8px;border-top:1px solid var(--color-border-subtle);font-family:var(--font-serif);}
.tm-scope-size-head span{color:var(--gold-300,#c9a85f);font-size:14px;letter-spacing:0.16em;}
.tm-scope-size-head em{font-size:12px;color:var(--ink-300,#6b5d47);font-style:italic;}
.tm-scope-size-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.tm-scope-size-card{min-width:0;padding:7px;border:1px solid var(--color-border-subtle);background:rgba(36,30,24,0.42);border-radius:3px;}
.tm-scope-size-meta{display:flex;flex-direction:column;gap:1px;margin-bottom:5px;font-family:var(--font-serif);}
.tm-scope-size-meta b{font-size:13.5px;color:#ede5d0;letter-spacing:0.08em;font-weight:500;}
.tm-scope-size-meta em{font-size:11.5px;color:var(--ink-300,#6b5d47);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tm-scope-size-buttons{gap:1px;}
.tm-scope-size-buttons .gs-sz-btn{padding:2px 0;font-size:11.5px;letter-spacing:0;}
.p-theme .tm-scope-size-grid{grid-template-columns:1fr;}
.p-theme .tm-scope-size-card{padding:6px;}
.p-theme .tm-scope-size-head{align-items:flex-start;flex-direction:column;gap:2px;}

/* 音声 */
.gs-audio-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:15px;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.04em;}
.gs-audio-name{flex:1;color:#ede5d0;}
.gs-audio-ctrl{display:flex;align-items:center;gap:4px;}
.gs-audio-slider{width:56px;height:3px;background:rgba(107,93,71,0.25);border-radius:2px;position:relative;cursor:pointer;}
.gs-audio-slider::before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,70%);background:linear-gradient(to right,var(--blue-400,#5a8fb8),var(--celadon-400,#7eb8a7));border-radius:2px;}
.gs-audio-slider::after{content:"";position:absolute;left:calc(var(--p,70%) - 4px);top:-3px;width:8px;height:8px;background:var(--gold-300,#c9a85f);border-radius:50%;box-shadow:0 0 4px rgba(201,168,95,0.5);}
.gs-audio-range{width:76px;height:16px;accent-color:var(--blue-400,#5a8fb8);background:transparent;}
.gs-audio-val{font-size:13.5px;color:var(--ink-300,#6b5d47);min-width:18px;text-align:right;}
.gs-audio-now{margin-top:5px;padding:4px 6px;background:rgba(90,143,184,0.05);border-left:2px solid var(--blue-400,#5a8fb8);border-radius:0 2px 2px 0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:#d4c9b0;font-style:italic;display:flex;align-items:center;gap:4px;}
.gs-audio-now::before{content:"\266A";color:var(--blue-400,#5a8fb8);animation:gs-note-bob 2s infinite;}
@keyframes gs-note-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-2px);}}
.gs-audio-now .h{color:var(--blue-400,#5a8fb8);}
.gs-audio-custom{margin-top:8px;padding-top:6px;border-top:1px dashed var(--color-border-subtle);}
.gs-audio-import{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:6px 10px;background:linear-gradient(to bottom,rgba(90,143,184,0.12),rgba(90,143,184,0.04));border:1px dashed var(--blue-400,#5a8fb8);color:var(--blue-400,#5a8fb8);font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;letter-spacing:0.15em;border-radius:3px;cursor:pointer;transition:all 0.15s;}
.gs-audio-import::before{content:"\2756";font-size:15px;opacity:0.8;}
.gs-audio-import:hover{background:linear-gradient(to bottom,rgba(90,143,184,0.22),rgba(90,143,184,0.08));border-style:solid;}
.gs-audio-lib{margin-top:6px;display:flex;flex-direction:column;gap:3px;max-height:100px;overflow-y:auto;}
.gs-audio-song{display:flex;align-items:center;gap:6px;padding:3px 6px;background:rgba(90,143,184,0.04);border-left:2px solid var(--blue-400,#5a8fb8);border-radius:0 2px 2px 0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:#ede5d0;letter-spacing:0.04em;}
.gs-audio-song.playing{background:rgba(90,143,184,0.12);color:var(--blue-400,#5a8fb8);}
.gs-audio-song.playing::before{content:"\25B6";font-size:13px;color:var(--blue-400,#5a8fb8);}
.gs-audio-song.paused::before{content:"";width:7px;height:7px;border-radius:50%;border:1px solid var(--ink-500,#a69470);display:inline-block;}
.gs-audio-song .title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-audio-song .meta{font-size:10px;color:var(--ink-300,#6b5d47);font-style:italic;}
.gs-audio-song .del{background:transparent;border:none;color:var(--ink-300,#6b5d47);cursor:pointer;padding:0 3px;font-size:14px;}
.gs-audio-song .del:hover{color:var(--vermillion-400);}
.gs-audio-loop{display:flex;gap:3px;margin-top:6px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;}
.gs-audio-loop-btn{flex:1;padding:2px 0;background:transparent;border:1px solid var(--color-border-subtle);color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.gs-audio-loop-btn.active{background:rgba(90,143,184,0.15);color:var(--blue-400,#5a8fb8);border-color:var(--blue-400,#5a8fb8);}

/* 朕亲卡 */
.gs-self-card{position:relative;padding:12px 14px;background:linear-gradient(to bottom right,rgba(201,168,95,0.12),var(--bg-paper,#241e18) 40%);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px));border:1px solid var(--gold-300,#c9a85f);border-radius:3px;box-shadow:0 0 0 1px rgba(201,168,95,0.15),0 2px 8px rgba(201,168,95,0.08);}
.gs-self-card::before{content:"\6715";position:absolute;top:8px;right:10px;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.92),rgba(140,40,30,0.82));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;font-weight:bold;transform:rotate(-8deg);}
.gs-self-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;}
.gs-self-portrait{width:64px;height:82px;flex-shrink:0;position:relative;background:linear-gradient(145deg,var(--gold-400) 0%,rgba(26,20,16,0.6) 100%);border:1.5px solid var(--gold-400);border-radius:2px;display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:"STKaiti","KaiTi","楷体",serif;font-size:28px;font-weight:500;}
.gs-self-portrait::before{content:"";position:absolute;inset:3px;border:0.5px solid rgba(184,154,83,0.35);border-radius:1px;}
.gs-self-portrait::after{content:"";position:absolute;top:-5px;left:-4px;right:-4px;height:6px;background:linear-gradient(to bottom,#8d7640,#6b5a30,#5a4a28);border:0.5px solid #3d2e18;border-radius:1px;}
.gs-self-info{flex:1;min-width:0;padding-right:30px;}
.gs-self-name{font-family:"STKaiti","KaiTi","楷体",serif;font-size:16px;color:var(--gold-300,#c9a85f);letter-spacing:0.14em;font-weight:500;}
.gs-self-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#d4c9b0;letter-spacing:0.1em;margin-top:2px;font-style:italic;}
.gs-self-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
.gs-self-tag{display:inline-flex;align-items:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;padding:0 5px;border:1px solid var(--t-c,var(--gold-d));color:var(--t-c,var(--gold-400));background:rgba(184,154,83,0.06);border-radius:2px;letter-spacing:0.1em;line-height:14px;}
.gs-self-tag.trait-pos{--t-c:var(--celadon-400,#7eb8a7);}
.gs-self-tag.trait-neg{--t-c:var(--vermillion-400);}
.gs-self-tag.trait-neu{--t-c:var(--gold-400);}
.gs-self-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px 8px;margin-top:4px;padding-top:6px;border-top:1px dashed var(--color-border-subtle);}
.gs-stat{display:flex;align-items:center;gap:3px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;}
.gs-stat-k{color:var(--ink-300,#6b5d47);letter-spacing:0.08em;width:16px;}
.gs-stat-bar{flex:1;height:4px;background:rgba(107,93,71,0.22);border-radius:2px;overflow:hidden;}
.gs-stat-fill{height:100%;background:var(--s-c,var(--gold-400));border-radius:2px;}
.gs-stat-v{color:#ede5d0;font-size:14.5px;min-width:18px;text-align:right;}
.gs-stat.zhi .gs-stat-fill{--s-c:var(--gold-400);}
.gs-stat.zheng .gs-stat-fill{--s-c:var(--celadon-400,#7eb8a7);}
.gs-stat.jun .gs-stat-fill{--s-c:var(--vermillion-400);}
.gs-stat.jiao .gs-stat-fill{--s-c:var(--indigo-400,#5a6fa8);}
.gs-stat.ren .gs-stat-fill{--s-c:var(--purple-400,#8e6aa8);}
.gs-stat.wei .gs-stat-fill{--s-c:var(--amber-400,#c9a045);}
.gs-self-wuchang{margin-top:5px;padding-top:4px;border-top:1px dashed var(--color-border-subtle);display:flex;align-items:center;gap:3px;}
.gs-self-wuchang .lbl{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.15em;margin-right:2px;}
.gs-wc-dot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:#1a1410;font-weight:bold;}
.gs-wc-dot.hi{background:var(--celadon-400,#7eb8a7);}
.gs-wc-dot.mid{background:var(--gold-400);}
.gs-wc-dot.lo{background:var(--vermillion-400);}
.gs-wc-dot.none{background:rgba(107,93,71,0.3);color:var(--ink-300,#6b5d47);}

/* 人物卡 v2 */
.gs-char2{position:relative;padding:10px 12px;background:var(--bg-paper,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--ch-c,var(--gold-d));border-radius:3px;cursor:pointer;transition:all 0.2s;margin-bottom:8px;}
.gs-char2:hover{border-color:var(--gold-400);box-shadow:0 2px 10px rgba(184,154,83,0.15);transform:translateX(1px);}
.gs-char2.f-dongin{--ch-c:var(--celadon-400,#7eb8a7);}
.gs-char2.f-mili{--ch-c:var(--vermillion-400);}
.gs-char2.f-eunuch{--ch-c:var(--purple-400,#8e6aa8);}
.gs-char2.f-consort{--ch-c:var(--vermillion-300,#d15c47);}
.gs-char2.f-kun{--ch-c:var(--amber-400,#c9a045);}
.gs-char2-row{display:flex;gap:10px;align-items:flex-start;}
.gs-char2-port{width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,rgba(42,35,24,0.9) 60%,rgba(26,22,18,1));border:2px solid var(--ch-c,var(--gold-400));display:flex;align-items:center;justify-content:center;color:var(--gold-300,#c9a85f);font-family:"STKaiti","KaiTi","楷体",serif;font-size:22px;font-weight:500;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.4),inset 0 1px 0 rgba(184,154,83,0.15);overflow:hidden;position:relative;}
.gs-char2-port::before{content:"";position:absolute;inset:2px;border:0.5px solid rgba(244,234,221,0.1);border-radius:50%;}
.gs-char2-body{flex:1;min-width:0;padding-top:1px;}
.gs-char2-name-row{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;margin-bottom:2px;}
.gs-char2-name{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:var(--gold-300,#c9a85f);letter-spacing:0.14em;font-weight:600;line-height:1.1;}
.gs-char2-zi{font-size:14px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;letter-spacing:0.06em;}
.gs-char2-zi::before{content:"字\u00A0";font-size:10px;color:var(--gold-d);letter-spacing:0.2em;}
.gs-char2-gender{display:inline-flex;align-items:center;padding:0 5px;font-size:13.5px;border:1px solid;border-radius:2px;letter-spacing:0.08em;line-height:14px;}
.gs-char2-gender.male{color:var(--indigo-400,#5a6fa8);border-color:rgba(90,111,168,0.5);background:rgba(90,111,168,0.06);}
.gs-char2-gender.female{color:var(--vermillion-300,#d15c47);border-color:rgba(209,92,71,0.5);background:rgba(209,92,71,0.06);}
.gs-char2-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#d4c9b0;letter-spacing:0.06em;margin:2px 0 4px;line-height:1.4;}
.gs-char2-title b{color:var(--ch-c,var(--gold-400));letter-spacing:0.1em;font-weight:500;}
.gs-char2-tags{display:flex;gap:3px;flex-wrap:wrap;margin-bottom:6px;}
.gs-char2-tag{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;padding:0 5px;border:1px solid rgba(184,154,83,0.3);border-radius:2px;color:#d4c9b0;background:rgba(184,154,83,0.04);letter-spacing:0.08em;line-height:14px;}
.gs-char2-tag.loc{color:var(--gold-300,#c9a85f);border-color:rgba(184,154,83,0.5);background:rgba(184,154,83,0.08);}
.gs-char2-tag.fac{color:var(--vermillion-300,#d15c47);border-color:rgba(209,92,71,0.3);background:rgba(192,64,48,0.05);}
.gs-char2-tag.clan{color:var(--celadon-400,#7eb8a7);border-color:rgba(106,154,127,0.3);background:rgba(106,154,127,0.05);}
.gs-char2-tag.origin{color:var(--indigo-400,#5a6fa8);border-color:rgba(90,111,168,0.3);background:rgba(90,111,168,0.05);}
.gs-char2-hearts{display:flex;flex-direction:column;gap:4px;padding-top:5px;border-top:1px dashed var(--color-border-subtle);margin-top:4px;}
.gs-char2-heart{display:flex;align-items:center;gap:6px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;}
.gs-char2-heart .lbl{color:var(--gold-400);letter-spacing:0.25em;width:26px;flex-shrink:0;}
.gs-char2-heart .bar{flex:1;height:4px;background:rgba(255,255,255,0.05);border-radius:2px;overflow:hidden;}
.gs-char2-heart .fill{height:100%;border-radius:2px;}
.gs-char2-heart.loyalty .fill.hi{background:linear-gradient(90deg,#4a7a5f,var(--celadon-400,#7eb8a7));}
.gs-char2-heart.loyalty .fill.mid{background:linear-gradient(90deg,var(--gold-500),var(--gold-300,#c9a85f));}
.gs-char2-heart.loyalty .fill.lo{background:linear-gradient(90deg,var(--vermillion-600,#8f3428),var(--vermillion-300,#d15c47));}
.gs-char2-heart.ambition .fill.hi{background:linear-gradient(90deg,var(--purple-600,#5f3a7a),var(--vermillion-400));}
.gs-char2-heart.ambition .fill.mid{background:linear-gradient(90deg,var(--gold-500),var(--gold-300,#c9a85f));}
.gs-char2-heart.ambition .fill.lo{background:linear-gradient(90deg,#4a7a5f,var(--celadon-400,#7eb8a7));}
.gs-char2-heart .val{font-size:15px;color:#f4eadd;font-weight:600;min-width:22px;text-align:right;font-variant-numeric:tabular-nums;}
.gs-char2-heart .verd{font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.1em;font-style:italic;padding-left:4px;border-left:1px solid var(--color-border-subtle);margin-left:2px;}
.gs-char2-verdict{margin-top:5px;padding:3px 8px;background:rgba(106,154,127,0.06);border:1px solid rgba(106,154,127,0.22);border-radius:2px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:var(--celadon-400,#7eb8a7);letter-spacing:0.12em;text-align:center;}
.gs-char2-verdict.warn{background:rgba(201,160,69,0.06);border-color:rgba(201,160,69,0.25);color:var(--amber-400,#c9a045);}
.gs-char2-verdict.danger{background:rgba(192,64,48,0.06);border-color:rgba(192,64,48,0.25);color:var(--vermillion-300,#d15c47);}
/* ═══ 紧要之臣 · 采用 preview-char-full.html 三·右侧栏人物卡片 样式（.gs-cd 命名空间·避免与 .cd 冲突） ═══ */
.gs-cd{background:var(--bg-3,#2a2520);border:1px solid var(--bg-4,#3a3530);border-left:3px solid var(--gold-500);border-radius:5px;padding:0.5rem 0.6rem;margin-bottom:0.35rem;cursor:pointer;transition:all 0.22s ease;}
.gs-cd:hover{border-left-color:var(--gold-300);background:linear-gradient(to right,rgba(184,154,83,0.08),var(--bg-3,#2a2520) 60%);transform:translateX(-1px);}
.gs-cd-main{display:flex;align-items:center;gap:6px;}
.gs-cd-portrait{width:34px;height:34px;border:1px solid var(--gold-500);border-radius:4px;flex-shrink:0;background:radial-gradient(circle,#2a2318,#1a1612);display:flex;align-items:center;justify-content:center;color:var(--gold-400);font-size:14px;overflow:hidden;position:relative;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-cd-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.gs-cd-body{flex:1;min-width:0;}
.gs-cd-name-row{display:flex;justify-content:space-between;align-items:center;gap:4px;}
.gs-cd-name-left{display:flex;align-items:baseline;gap:4px;font-size:0.85rem;font-weight:600;min-width:0;flex-wrap:wrap;color:var(--ink-50);}
.gs-cd-courtesy{font-size:0.64rem;color:var(--ink-400);font-style:italic;letter-spacing:0.05em;}
.gs-cd-gender-age{font-size:0.62rem;color:var(--ink-400);}
.gs-cd-gender-age.female{color:#e84393;}
.gs-cd-mood{font-size:0.66rem;}
.gs-cd-mood.worry{color:var(--amber-400,#c9a045);}
.gs-cd-mood.happy{color:var(--celadon-400);}
.gs-cd-mood.angry{color:var(--vermillion-400);}
.gs-cd-mood.peace{color:var(--ink-300);}
.gs-cd-mood.respect{color:var(--gold-400);}
.gs-cd-loc-badge{font-size:0.62rem;padding:1px 5px;border-radius:2px;background:rgba(184,154,83,0.1);color:var(--gold-400);margin-left:2px;}
.gs-cd-spouse{font-size:0.68rem;color:#e84393;}
.gs-cd-face-badge{font-size:0.62rem;padding:0 4px;border-radius:2px;border:1px solid var(--vermillion-400);color:var(--vermillion-400);margin-left:3px;}
.gs-cd-name-right{font-size:0.7rem;display:flex;align-items:center;gap:4px;flex-shrink:0;}
.gs-cd-loy{font-variant-numeric:tabular-nums;font-weight:600;}
.gs-cd-loy.hi{color:var(--celadon-400);}
.gs-cd-loy.mid{color:var(--gold-400);}
.gs-cd-loy.lo{color:var(--vermillion-400);}
.gs-cd-amb{font-size:0.64rem;color:var(--purple-400,#8e44ad);font-weight:600;}
.gs-cd-stress{font-size:0.68rem;padding:1px 5px;border-radius:3px;}
.gs-cd-stress.crit{background:rgba(192,64,48,0.2);color:var(--vermillion-400);}
.gs-cd-stress.warn{background:rgba(230,126,34,0.15);color:var(--amber-400,#e0a040);}
.gs-cd-subrow{display:flex;justify-content:space-between;align-items:center;margin-top:2px;gap:6px;}
.gs-cd-office{font-size:0.7rem;color:var(--ink-300);}
.gs-cd-faction{font-size:0.68rem;color:var(--ink-400);}
.gs-cd-tags{margin-top:3px;display:flex;flex-wrap:wrap;gap:2px;}
.gs-cd-tag{font-size:0.62rem;padding:0 3px;border-radius:2px;border:1px solid;}
.gs-cd-tag.valor{border-color:var(--vermillion-400);color:var(--vermillion-300);}
.gs-cd-tag.heart{border-color:var(--celadon-400);color:var(--celadon-300);}
.gs-cd-tag.mind{border-color:var(--indigo-400,#6e84b8);color:var(--indigo-400,#6e84b8);}
.gs-cd-tag.gold{border-color:var(--gold-400);color:var(--gold-300);}
.gs-cd-tag.reform{border-color:var(--celadon-400);color:var(--celadon-300);}
.gs-cd-tag.conserve{border-color:var(--indigo-400,#6e84b8);color:var(--indigo-400,#6e84b8);}
.gs-cd-tag.party{background:var(--bg-4,#3a3530);border:none;color:var(--ink-300);padding:0 4px;}
.gs-cd-wuchang{font-size:0.66rem;color:var(--celadon-400);margin-top:3px;letter-spacing:0.03em;}
.gs-cd-wuchang-qz{color:var(--gold-400);margin-left:4px;}
.gs-cd-resources{margin-top:4px;padding:4px 6px;background:rgba(0,0,0,0.22);border-radius:3px;border:1px solid rgba(184,154,83,0.1);font-size:0.66rem;display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.gs-cd-res-grp{display:inline-flex;align-items:center;gap:2px;}
.gs-cd-res-grp-lb{font-size:0.62rem;color:var(--gold-500);letter-spacing:0.1em;margin-right:2px;}
.gs-cd-res-it{display:inline-flex;align-items:center;gap:2px;}
.gs-cd-res-val{color:var(--ink-50);font-variant-numeric:tabular-nums;}
.gs-cd-res-val.neg{color:var(--vermillion-300,#d15c47);}
.gs-cd-res-sep{width:1px;height:10px;background:rgba(184,154,83,0.2);margin:0 2px;}
.gs-cd-stats-pills{margin-top:3px;display:flex;gap:3px;flex-wrap:wrap;}
.gs-cd-pill{font-size:0.62rem;padding:1px 5px;border-radius:6px;background:rgba(184,154,83,0.05);border:1px solid rgba(184,154,83,0.2);display:inline-flex;align-items:center;gap:2px;}
.gs-cd-pill.warn{border-color:rgba(192,64,48,0.4);background:rgba(192,64,48,0.08);}
.gs-cd-pill-lb{color:var(--ink-400);}
.gs-cd-pill-val{font-weight:500;font-variant-numeric:tabular-nums;}
.gs-cd-pill-val.neg{color:var(--vermillion-300,#d15c47);}
.gs-cd-goal{font-size:0.66rem;color:var(--ink-400);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-cd-goal-pct.hi{color:var(--celadon-400);}
.gs-cd-goal-pct.mid{color:var(--gold-400);}
.gs-cd-goal-pct.lo{color:var(--vermillion-400);}
.gs-cd-enyuan{font-size:0.62rem;color:var(--ink-400);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic;}

/* 时辰盘 */
.gs-time-dial{position:relative;width:120px;height:120px;margin:4px auto;flex-shrink:0;}
.gs-time-dial::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(184,154,83,0.04),transparent 65%);border:2px solid var(--gold-d);box-shadow:inset 0 0 8px rgba(184,154,83,0.1);}
.gs-time-dial::after{content:"";position:absolute;inset:12px;border-radius:50%;border:1px dashed rgba(184,154,83,0.2);}
.gs-time-hand{position:absolute;top:50%;left:50%;width:2px;height:44px;background:linear-gradient(to top,transparent,var(--vermillion-400),#f4eadd);transform-origin:bottom center;box-shadow:0 0 4px rgba(192,64,48,0.5);border-radius:2px;}
.gs-time-center{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,var(--gold-300,#c9a85f),var(--gold-d));transform:translate(-50%,-50%);box-shadow:0 0 4px rgba(201,168,95,0.5);}
.gs-time-mark{position:absolute;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#d4c9b0;font-weight:500;transform:translate(-50%,-50%);}
.gs-time-mark.cur{color:var(--vermillion-400);font-weight:bold;}
.gs-time-text{text-align:center;font-family:"STKaiti","KaiTi","楷体",serif;margin-top:2px;}
.gs-time-text .main{font-size:13px;color:var(--vermillion-400);letter-spacing:0.2em;font-weight:500;}
.gs-time-text .sub{font-size:14px;color:var(--ink-300,#6b5d47);letter-spacing:0.12em;font-style:italic;}

/* 议题 / 目标 / 新闻 / 风闻 / 精力 */
.gs-issue-item{display:flex;align-items:flex-start;gap:5px;padding:5px 6px;margin-bottom:4px;background:rgba(192,64,48,0.04);border-left:2px solid var(--i-c,var(--vermillion-400));border-radius:0 2px 2px 0;font-size:15px;line-height:1.5;}
.gs-issue-item.urgent{--i-c:var(--vermillion-400);}
.gs-issue-item.warn{--i-c:var(--amber-400,#c9a045);background:rgba(201,160,69,0.05);}
.gs-issue-item.info{--i-c:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.04);}
.gs-issue-num{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:var(--i-c);font-weight:700;flex-shrink:0;width:14px;text-align:right;}
.gs-issue-text{flex:1;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-issue-time{font-size:13.5px;color:var(--ink-300,#6b5d47);font-style:italic;font-family:"STKaiti","KaiTi","楷体",serif;}

.gs-goal-item{padding:5px 8px;margin-bottom:5px;background:rgba(142,106,168,0.05);border:1px dashed var(--purple-400,#8e6aa8);border-radius:3px;}
.gs-goal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px;}
.gs-goal-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:15.5px;color:var(--purple-400,#8e6aa8);letter-spacing:0.06em;font-weight:500;}
.gs-goal-prio{font-size:13px;color:var(--amber-400,#c9a045);font-family:"STKaiti","KaiTi","楷体",serif;padding:0 3px;border:1px solid var(--amber-400,#c9a045);border-radius:2px;letter-spacing:0.08em;line-height:12px;}
.gs-goal-desc{font-size:14.5px;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;line-height:1.5;}
.gs-goal-prog{height:3px;background:rgba(107,93,71,0.22);border-radius:2px;overflow:hidden;margin-top:4px;}
.gs-goal-prog-fill{height:100%;background:linear-gradient(to right,var(--purple-400,#8e6aa8),var(--gold-300,#c9a85f));border-radius:2px;}

.gs-fin-chart{position:relative;height:80px;padding:6px 4px 4px;}
.gs-fin-bars{display:flex;align-items:flex-end;justify-content:space-around;height:62px;gap:3px;}
.gs-fin-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;}
.gs-fin-bar-stack{display:flex;flex-direction:column-reverse;width:100%;height:54px;}
.gs-fin-bar{width:100%;opacity:0.85;}
.gs-fin-bar.income{background:var(--celadon-400,#7eb8a7);}
.gs-fin-bar.expense{background:var(--vermillion-400);}
.gs-fin-lbl{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:var(--ink-300,#6b5d47);}
.gs-fin-legend{display:flex;justify-content:center;gap:10px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;color:#d4c9b0;margin-top:2px;}
.gs-fin-legend span::before{content:"";display:inline-block;width:8px;height:8px;margin-right:3px;vertical-align:middle;border-radius:1px;}
.gs-fin-legend .in::before{background:var(--celadon-400,#7eb8a7);}
.gs-fin-legend .out::before{background:var(--vermillion-400);}

.gs-news-item{display:flex;align-items:flex-start;gap:5px;padding:5px 8px;background:rgba(184,154,83,0.03);border-left:2px solid var(--nw-c,var(--gold-d));margin-bottom:4px;font-size:15px;font-family:"STKaiti","KaiTi","楷体",serif;line-height:1.5;color:#ede5d0;}
.gs-news-item.edict{--nw-c:var(--indigo-400,#5a6fa8);}
.gs-news-item.memo{--nw-c:var(--vermillion-400);}
.gs-news-item.letter{--nw-c:var(--amber-400,#c9a045);}
.gs-news-item.person{--nw-c:var(--celadon-400,#7eb8a7);}
.gs-news-item.chaoyi{--nw-c:var(--purple-400,#8e6aa8);}
.gs-news-item .t{font-size:13px;color:var(--ink-300,#6b5d47);font-style:italic;flex-shrink:0;}
.gs-news-item .h{color:var(--gold-300,#c9a85f);font-weight:500;}
.gs-news-item .body{flex:1;min-width:0;}

.gs-rumor-item{padding:5px 8px;margin-bottom:4px;background:rgba(142,106,168,0.04);border-left:2px solid var(--purple-400,#8e6aa8);border-radius:0 2px 2px 0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;color:#ede5d0;line-height:1.6;font-style:italic;}
.gs-rumor-item::before{content:"\201C";color:var(--purple-400,#8e6aa8);font-size:14px;margin-right:2px;opacity:0.7;}
.gs-rumor-item .cred{float:right;font-size:13px;color:var(--ink-300,#6b5d47);font-style:normal;}

.gs-energy{padding:10px 12px;background:var(--bg-paper,#241e18);border:1px solid var(--color-border-subtle);border-left:3px solid var(--celadon-400,#7eb8a7);border-radius:3px;}
.gs-energy-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;}
.gs-energy-lbl{font-family:"STKaiti","KaiTi","楷体",serif;font-size:12px;color:var(--celadon-400,#7eb8a7);letter-spacing:0.2em;}
.gs-energy-val{font-family:"STKaiti","KaiTi","楷体",serif;font-size:12.5px;color:#ede5d0;}
.gs-energy-val .max{color:var(--ink-300,#6b5d47);font-size:14px;}
.gs-energy-bar{height:5px;background:rgba(107,93,71,0.25);border-radius:2px;overflow:hidden;}
.gs-energy-fill{height:100%;background:linear-gradient(to right,var(--celadon-400,#7eb8a7),var(--gold-300,#c9a85f));}
.gs-energy-tick{display:flex;justify-content:space-between;margin-top:4px;font-size:13px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;}

/* 人脉关系网 */
.gs-panel.p-rel{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-rel-net{position:relative;height:150px;padding:4px;overflow:hidden;}
.gs-rel-node{position:absolute;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:#f4eadd;font-weight:bold;background:var(--gold-400);border:1px solid rgba(244,234,221,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.4);cursor:pointer;transition:transform 0.2s;}
.gs-rel-node:hover{transform:scale(1.2);}
.gs-rel-node.center{width:28px;height:28px;background:var(--gold-300,#c9a85f);color:#1a1410;z-index:3;box-shadow:0 0 8px rgba(201,168,95,0.5);}
.gs-rel-node.friend{background:var(--celadon-400,#7eb8a7);}
.gs-rel-node.foe{background:var(--vermillion-400);}
.gs-rel-node.neutral{background:var(--ink-500,#a69470);}
.gs-rel-edge{position:absolute;height:1px;background:var(--e-c,var(--ink-300,#6b5d47));transform-origin:left center;opacity:0.6;}
.gs-rel-edge.friend{--e-c:var(--celadon-400,#7eb8a7);}
.gs-rel-edge.foe{--e-c:var(--vermillion-400);}
.gs-rel-edge.dashed{border-top:1px dashed var(--e-c,var(--ink-300,#6b5d47));background:transparent;}

/* 祭祀礼仪 */
.gs-panel.p-jifa{--panel-c:var(--gold-400);}
.gs-jifa-calendar{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:4px;}
.gs-jifa-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;color:#d4c9b0;background:rgba(107,93,71,0.06);border-radius:2px;position:relative;border:1px solid transparent;}
.gs-jifa-cell.jisi{background:rgba(192,64,48,0.1);color:var(--vermillion-400);border-color:var(--vermillion-400);font-weight:500;}
.gs-jifa-cell.auspicious{background:rgba(201,168,95,0.1);color:var(--gold-300,#c9a85f);border-color:var(--gold-d);}
.gs-jifa-cell.today{box-shadow:0 0 0 2px var(--gold-300,#c9a85f);animation:gs-today-pulse 2s infinite;}
@keyframes gs-today-pulse{0%,100%{box-shadow:0 0 0 2px var(--gold-300,#c9a85f);}50%{box-shadow:0 0 0 2px var(--gold-300,#c9a85f),0 0 8px rgba(201,168,95,0.5);}}
.gs-jifa-row{display:flex;align-items:center;gap:4px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;padding:2px 0;}
.gs-jifa-type{font-size:13.5px;color:var(--vermillion-400);letter-spacing:0.1em;min-width:28px;}
.gs-jifa-name{flex:1;color:#ede5d0;}
.gs-jifa-due{font-size:13px;color:var(--ink-300,#6b5d47);font-style:italic;}

/* 监察百司 */
.gs-panel.p-censor{--panel-c:var(--indigo-400,#5a6fa8);}
.gs-censor-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:15px;border-bottom:1px dashed rgba(107,93,71,0.12);}
.gs-censor-row:last-child{border-bottom:none;}
.gs-censor-icon{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--ce-c,var(--indigo-400,#5a6fa8)),rgba(26,20,16,0.6));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;font-weight:500;flex-shrink:0;}
.gs-censor-name{flex:1;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-censor-alert{font-size:13.5px;font-family:"STKaiti","KaiTi","楷体",serif;padding:0 5px;border-radius:8px;line-height:14px;}
.gs-censor-alert.hi{color:var(--vermillion-400);background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);}
.gs-censor-alert.mid{color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.06);border:1px solid var(--amber-400,#c9a045);}
.gs-censor-alert.lo{color:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.06);border:1px solid var(--celadon-400,#7eb8a7);}

/* 宫廷日程 */
.gs-panel.p-agenda{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-agenda-row{display:flex;align-items:center;gap:5px;padding:4px 6px;margin-bottom:3px;background:rgba(106,154,127,0.04);border-left:2px solid var(--ag-c,var(--celadon-400,#7eb8a7));border-radius:0 2px 2px 0;font-size:15px;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-agenda-row.chaoyi{--ag-c:var(--purple-400,#8e6aa8);background:rgba(142,106,168,0.04);}
.gs-agenda-row.zhaojian{--ag-c:var(--celadon-400,#7eb8a7);}
.gs-agenda-row.jisi{--ag-c:var(--vermillion-400);background:rgba(192,64,48,0.04);}
.gs-agenda-row.kejvi{--ag-c:var(--amber-400,#c9a045);background:rgba(201,160,69,0.05);}
.gs-agenda-time{font-size:13.5px;color:var(--ink-300,#6b5d47);min-width:32px;font-style:italic;}
.gs-agenda-name{flex:1;color:#ede5d0;}
.gs-agenda-with{font-size:13.5px;color:#d4c9b0;}

/* 帮助·典范 */
.gs-panel.p-help{--panel-c:var(--gold-300,#c9a85f);}
.gs-help-item{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:15px;cursor:pointer;transition:color 0.15s;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.06em;}
.gs-help-item:hover{color:var(--gold-300,#c9a85f);}
.gs-help-item .ic{width:18px;height:18px;border-radius:50%;background:rgba(201,168,95,0.1);border:1px solid var(--gold-d);color:var(--gold-300,#c9a85f);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.gs-help-item .t{flex:1;color:#ede5d0;}
.gs-help-item .arr{color:var(--ink-300,#6b5d47);font-size:14px;}

/* 势力 */
.gs-panel.p-fac{--panel-c:var(--indigo-400,#5a6fa8);}
.gs-fac-row{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px dashed rgba(107,93,71,0.12);font-size:12px;cursor:pointer;transition:all 0.15s;border-radius:2px;}
.gs-fac-row:hover{background:rgba(184,154,83,0.06);padding-left:4px;}
.gs-fac-row:last-child{border-bottom:none;}
.gs-fac-color{width:3px;height:22px;background:var(--f-c,var(--gold-d));border-radius:1px;flex-shrink:0;}
.gs-fac-row.f-self{--f-c:var(--gold-400);}
.gs-fac-row.f-hostile{--f-c:var(--vermillion-400);}
.gs-fac-row.f-neutral{--f-c:var(--amber-400,#c9a045);}
.gs-fac-row.f-vassal{--f-c:var(--indigo-400,#5a6fa8);}
.gs-fac-row.f-friend{--f-c:var(--celadon-400,#7eb8a7);}
.gs-fac-info{flex:1;min-width:0;}
.gs-fac-name{font-family:"STKaiti","KaiTi","楷体",serif;color:#ede5d0;letter-spacing:0.08em;font-size:12px;}
.gs-fac-leader{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;letter-spacing:0.04em;}
.gs-fac-att{font-size:13.5px;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.1em;padding:0 5px;border-radius:2px;line-height:14px;}
.gs-fac-att.friend{color:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.08);border:1px solid var(--celadon-400,#7eb8a7);}
.gs-fac-att.hostile{color:var(--vermillion-400);background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);}
.gs-fac-att.neutral{color:#d4c9b0;background:rgba(166,148,112,0.06);border:1px solid var(--ink-300,#6b5d47);}
.gs-fac-att.vassal{color:var(--indigo-400,#5a6fa8);background:rgba(90,111,168,0.08);border:1px solid var(--indigo-400,#5a6fa8);}
.gs-fac-str{font-size:14px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;min-width:28px;text-align:right;}

/* 党派 */
.gs-panel.p-party{--panel-c:var(--purple-400,#8e6aa8);}
.gs-party-row{display:flex;align-items:center;gap:5px;padding:4px 0;font-size:15.5px;cursor:pointer;transition:all 0.15s;border-radius:2px;}
.gs-party-row:hover{background:rgba(184,154,83,0.06);padding-left:4px;}
.gs-party-name{flex:1;min-width:0;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-party-infl{display:inline-flex;align-items:center;gap:3px;}
.gs-party-bar{width:42px;height:4px;background:rgba(107,93,71,0.25);border-radius:2px;overflow:hidden;}
.gs-party-fill{height:100%;}
.gs-party-val{font-size:14px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;min-width:16px;text-align:right;}

/* 阶层 */
.gs-panel.p-class{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-class-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:15.5px;cursor:pointer;transition:all 0.15s;border-radius:2px;}
.gs-class-row:hover{background:rgba(184,154,83,0.06);padding-left:4px;}
.gs-class-icon{width:20px;height:20px;border-radius:2px;background:linear-gradient(135deg,var(--c-c,var(--gold-400)),var(--ink-100,#3d342a));color:#1a1410;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14px;font-weight:bold;}
.gs-class-name{flex:1;min-width:0;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-class-pop{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-class-mood{font-size:13.5px;font-family:"STKaiti","KaiTi","楷体",serif;padding:0 5px;border-radius:2px;line-height:14px;}
.gs-class-mood.stable{color:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.06);}
.gs-class-mood.unrest{color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);}
.gs-class-mood.angry{color:var(--vermillion-400);background:rgba(192,64,48,0.08);}

/* 军事 */
.gs-panel.p-army{--panel-c:var(--vermillion-400);}
.gs-army-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:15.5px;border-bottom:1px dashed rgba(107,93,71,0.12);cursor:pointer;transition:all 0.15s;border-radius:2px;}
.gs-army-row:hover{background:rgba(184,154,83,0.06);padding-left:4px;}
.gs-army-row:last-child{border-bottom:none;}
.gs-army-icon{font-family:"STKaiti","KaiTi","楷体",serif;font-size:12px;color:var(--vermillion-400);width:14px;text-align:center;}
.gs-army-info{flex:1;min-width:0;}
.gs-army-name{display:block;min-width:0;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-army-loc{display:block;min-width:0;font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-army-size{font-size:14px;color:var(--vermillion-400);font-family:"STKaiti","KaiTi","楷体",serif;font-weight:500;min-width:36px;text-align:right;}
.gs-army-morale{width:30px;height:3px;background:rgba(107,93,71,0.25);border-radius:2px;overflow:hidden;margin-top:2px;}
.gs-army-morale-fill{height:100%;background:var(--celadon-400,#7eb8a7);}

/* 行政区划 */
.gs-panel.p-admin{--panel-c:var(--indigo-400,#5a6fa8);}
.gs-admin-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:15px;cursor:pointer;transition:all 0.15s;border-radius:2px;}
.gs-admin-row:hover{background:rgba(184,154,83,0.06);padding-left:4px;}
.gs-admin-dot{width:6px;height:6px;border-radius:50%;background:var(--indigo-400,#5a6fa8);flex-shrink:0;}
.gs-admin-row.crisis .gs-admin-dot{background:var(--vermillion-400);animation:gs-admin-pulse 1.5s infinite;}
.gs-admin-row.war .gs-admin-dot{background:var(--amber-400,#c9a045);}
.gs-admin-row.stable .gs-admin-dot{background:var(--celadon-400,#7eb8a7);}
@keyframes gs-admin-pulse{0%,100%{box-shadow:0 0 0 0 rgba(192,64,48,0.5);}50%{box-shadow:0 0 0 3px rgba(192,64,48,0);}}
.gs-admin-name{flex:1;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-admin-type{font-size:13px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;padding:0 4px;background:rgba(107,93,71,0.1);border-radius:2px;line-height:13px;}
.gs-admin-unrest{font-size:13.5px;color:#d4c9b0;font-family:"STKaiti","KaiTi","楷体",serif;min-width:20px;text-align:right;}
.gs-admin-row.crisis .gs-admin-unrest{color:var(--vermillion-400);}

/* 家族 */
.gs-panel.p-family{--panel-c:var(--amber-400,#c9a045);}
.gs-fam-row{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:15px;}
.gs-fam-name{flex:1;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-fam-tier{font-size:13px;padding:0 4px;border-radius:2px;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.1em;line-height:13px;}
.gs-fam-tier.gaomen{color:var(--gold-300,#c9a85f);background:rgba(201,168,95,0.1);border:1px solid var(--gold-d);}
.gs-fam-tier.shizu{color:var(--celadon-400,#7eb8a7);background:rgba(106,154,127,0.06);border:1px solid var(--celadon-400,#7eb8a7);}
.gs-fam-tier.hanmen{color:#d4c9b0;background:rgba(166,148,112,0.06);border:1px solid var(--ink-300,#6b5d47);}
.gs-fam-renown{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;min-width:22px;text-align:right;}

/* 制度 */
.gs-panel.p-tech{--panel-c:var(--indigo-400,#5a6fa8);}
.gs-tech-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:15px;font-family:"STKaiti","KaiTi","楷体",serif;}
.gs-tech-icon{font-size:15px;color:var(--indigo-400,#5a6fa8);width:14px;text-align:center;}
.gs-tech-name{flex:1;color:#ede5d0;letter-spacing:0.05em;}
.gs-tech-prog{width:50px;height:3px;background:rgba(107,93,71,0.22);border-radius:2px;overflow:hidden;}
.gs-tech-prog-fill{height:100%;background:linear-gradient(to right,var(--indigo-400,#5a6fa8),var(--gold-300,#c9a85f));border-radius:2px;}
.gs-tech-val{font-size:13.5px;color:var(--ink-300,#6b5d47);min-width:26px;text-align:right;}

/* 文物 */
.gs-panel.p-item{--panel-c:var(--gold-300,#c9a85f);}
.gs-item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:4px;}
.gs-item-slot{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,rgba(201,168,95,0.2),rgba(26,20,16,0.6));border:1px solid var(--i-c,var(--gold-d));border-radius:3px;color:var(--i-c,var(--gold-400));font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;position:relative;cursor:pointer;transition:all 0.2s;}
.gs-item-slot.r-jing{--i-c:var(--vermillion-400);}
.gs-item-slot.r-gui{--i-c:var(--purple-400,#8e6aa8);}
.gs-item-slot.r-bi{--i-c:var(--indigo-400,#5a6fa8);}
.gs-item-slot.r-chang{--i-c:var(--celadon-400,#7eb8a7);}
.gs-item-slot.empty{--i-c:var(--ink-300,#6b5d47);background:repeating-linear-gradient(45deg,rgba(107,93,71,0.08),rgba(107,93,71,0.08) 2px,transparent 2px,transparent 5px);border-style:dashed;opacity:0.45;}
.gs-item-slot:hover:not(.empty){transform:scale(1.08);}
.gs-item-slot .tag{position:absolute;top:-4px;right:-4px;width:10px;height:10px;border-radius:50%;background:var(--i-c);border:1px solid var(--bg-paper,#241e18);}

/* 后宫 */
.gs-panel.p-harem{--panel-c:var(--vermillion-300,#d15c47);}
.gs-harem-row{display:flex;gap:6px;overflow-x:auto;padding:2px 0;}
.gs-consort{flex-shrink:0;width:42px;display:flex;flex-direction:column;align-items:center;gap:2px;}
.gs-consort-port{width:38px;height:48px;background:linear-gradient(145deg,var(--co-c,var(--vermillion-300,#d15c47)),rgba(26,20,16,0.6));border:1px solid var(--co-c,var(--vermillion-300,#d15c47));border-radius:2px;display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:"STKaiti","KaiTi","楷体",serif;font-size:16px;font-weight:500;position:relative;}
.gs-consort-port::after{content:"";position:absolute;top:-3px;left:-2px;right:-2px;height:3px;background:linear-gradient(to bottom,#8d7640,#6b5a30);border-radius:1px;}
.gs-consort.empress{--co-c:var(--gold-300,#c9a85f);}
.gs-consort.guifei{--co-c:var(--vermillion-300,#d15c47);}
.gs-consort.fei{--co-c:var(--purple-400,#8e6aa8);}
.gs-consort.pin{--co-c:var(--celadon-400,#7eb8a7);}
.gs-consort-name{font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;color:var(--co-c,var(--ink-500,#a69470));}
.gs-consort-rank{font-family:"STKaiti","KaiTi","楷体",serif;font-size:10px;color:var(--ink-300,#6b5d47);letter-spacing:0.1em;}

/* 地图 */
.gs-panel.p-map{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-mini-map{position:relative;height:120px;background:linear-gradient(to bottom,rgba(107,93,71,0.15),rgba(26,20,16,0.6));border:1px dashed var(--color-border-subtle);border-radius:3px;margin-top:4px;overflow:hidden;}
.gs-mini-map::before{content:"\5929 \u4E0B \u4E4B \u56FE";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-size:18px;letter-spacing:0.4em;opacity:0.15;white-space:nowrap;}
.gs-map-pin{position:absolute;width:8px;height:8px;border-radius:50%;border:1px solid #f4eadd;box-shadow:0 0 6px rgba(0,0,0,0.6);}
.gs-map-pin.crisis{background:var(--vermillion-400);animation:gs-pin-pulse 1.5s infinite;}
.gs-map-pin.war{background:var(--amber-400,#c9a045);}
.gs-map-pin.stable{background:var(--celadon-400,#7eb8a7);}
.gs-map-pin.self{background:var(--gold-300,#c9a85f);width:10px;height:10px;}
@keyframes gs-pin-pulse{0%,100%{box-shadow:0 0 0 0 rgba(192,64,48,0.6);}50%{box-shadow:0 0 0 6px rgba(192,64,48,0);}}
.gs-map-label{position:absolute;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;color:#ede5d0;background:rgba(26,20,16,0.7);padding:0 3px;border-radius:2px;}

/* 科举进程 */
.gs-panel.p-keju{--panel-c:var(--celadon-400,#7eb8a7);}
.gs-keju-time{position:relative;padding:8px 0 4px;}
.gs-keju-track{position:relative;height:2px;background:rgba(107,93,71,0.22);border-radius:1px;margin:0 8px;}
.gs-keju-track-done{position:absolute;top:0;left:0;height:100%;background:linear-gradient(to right,var(--celadon-400,#7eb8a7),var(--gold-300,#c9a85f));border-radius:1px;}
.gs-keju-nodes{display:flex;justify-content:space-between;margin-top:-9px;padding:0 2px;}
.gs-keju-node{width:14px;height:14px;border-radius:50%;background:var(--bg-paper,#241e18);border:2px solid var(--ink-300,#6b5d47);}
.gs-keju-node.done{border-color:var(--celadon-400,#7eb8a7);background:var(--celadon-400,#7eb8a7);}
.gs-keju-node.current{border-color:var(--gold-300,#c9a85f);animation:gs-keju-pulse 2s infinite;}
@keyframes gs-keju-pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,168,95,0.5);}50%{box-shadow:0 0 0 5px rgba(201,168,95,0);}}
.gs-keju-labels{display:flex;justify-content:space-between;margin-top:6px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:13.5px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;}
.gs-keju-labels span.done{color:var(--celadon-400,#7eb8a7);}
.gs-keju-labels span.current{color:var(--gold-300,#c9a85f);font-weight:500;}
.gs-keju-sub{margin-top:4px;padding:4px 6px;background:rgba(106,154,127,0.04);border-left:2px solid var(--celadon-400,#7eb8a7);border-radius:0 2px 2px 0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:#d4c9b0;font-style:italic;}
.gs-keju-sub .h{color:var(--celadon-400,#7eb8a7);}

/* #G 四角祥云装饰 */
#G::before,#G::after{content:"\2756";position:absolute;font-size:14px;color:var(--gold-d);opacity:0.35;z-index:1;pointer-events:none;}
#G::before{top:6px;left:52px;}
#G::after{bottom:6px;right:52px;}

/* ═══ 面包屑 + 5 组 Tab 分栏 ═══ */
.gs-breadcrumb{display:flex;align-items:center;gap:6px;padding:5px 12px;background:linear-gradient(to right,rgba(36,30,24,0.9),var(--bg-1));border-bottom:1px solid var(--color-border-subtle);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;color:#d4c9b0;letter-spacing:0.15em;}
.gs-breadcrumb .sep{color:var(--ink-300,#6b5d47);opacity:0.6;}
.gs-breadcrumb .cur{color:var(--gold-300,#c9a85f);}
.gs-breadcrumb-right{margin-left:auto;display:flex;gap:4px;}
.gs-bc-btn{background:transparent;border:none;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-size:14.5px;letter-spacing:0.1em;cursor:pointer;padding:0 5px;}
.gs-bc-btn:hover{color:var(--gold-400);}

.gs-tab-bar{display:flex;gap:0;background:linear-gradient(180deg,var(--bg-paper,#241e18),var(--bg-1));border-bottom:1px solid var(--color-border-subtle);overflow-x:auto;padding:0 6px;align-items:stretch;flex-wrap:nowrap;flex-shrink:0;}
.gs-tab-group{display:flex;align-items:stretch;position:relative;padding-right:6px;margin-right:2px;padding-top:10px;}
.gs-tab-group:not(:last-child)::after{content:"";position:absolute;right:0;top:20%;bottom:20%;width:1px;background:linear-gradient(to bottom,transparent,rgba(184,154,83,0.35),transparent);}
.gs-tab-group::before{content:attr(data-label);position:absolute;top:0;left:8px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:10px;color:var(--gold-d,#6b5a30);letter-spacing:0.2em;opacity:0.7;pointer-events:none;}
.gs-tab-btn{padding:10px 14px;background:transparent;border:none;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-size:13px;letter-spacing:0.08em;cursor:pointer;border-bottom:2px solid transparent;position:relative;display:flex;align-items:center;gap:4px;transition:color 0.15s;white-space:nowrap;}
.gs-tab-btn:hover{color:#ede5d0;}
.gs-tab-btn.active{color:var(--gold-400);border-bottom-color:var(--gold-400);background:rgba(184,154,83,0.04);}
.gs-tab-btn.active::before{content:"";position:absolute;top:6px;right:6px;width:5px;height:5px;background:var(--vermillion-400);border-radius:1px;transform:rotate(12deg);}
.pt{font-size:var(--text-xs);color:var(--gold-400);letter-spacing:0.12em;margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border-subtle);font-weight:var(--weight-bold);position:relative;}
.pt::after{content:"";position:absolute;bottom:-1px;left:0;width:24px;height:1px;background:var(--gold-400);}
.ri2{margin-bottom:0.5rem;}.rh{display:flex;justify-content:space-between;font-size:0.78rem;margin-bottom:0.1rem;}
.rn{color:var(--txt-s);}.rv{color:var(--txt);font-weight:700;}
.rb{height:4px;background:var(--bg-0);border-radius:2px;overflow:hidden;}.rf{height:100%;border-radius:2px;transition:width 0.5s;}
.nb{margin-bottom:1rem;animation:fi 0.4s ease;}
@keyframes fi{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.nt{font-size:var(--text-sm);line-height:var(--leading-loose);padding:var(--space-3) var(--space-4);background:var(--color-sunken);border-left:3px solid var(--gold-400);border-radius:0 var(--radius-md) var(--radius-md) 0;white-space:pre-wrap;box-shadow:inset 0 0 20px rgba(0,0,0,0.1);color:var(--color-foreground-secondary);background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.015) 3em,rgba(107,93,79,0.015) calc(3em + 1px));}
.eb{text-align:center;margin:0.8rem 0;padding:0.6rem;border:1px solid var(--gold-d);border-radius:6px;background:rgba(201,168,76,0.04);}
.eb small{color:var(--gold);font-size:0.7rem;}.eb div{font-size:0.95rem;color:var(--gold-l);margin-top:0.1rem;}

/* 游戏标签 */
.g-tab-btn{padding:0.5rem 0.9rem;border:none;background:transparent;color:var(--txt-s);cursor:pointer;font-size:0.82rem;font-family:inherit;border-bottom:2px solid transparent;}
.g-tab-btn:hover{color:var(--txt);}.g-tab-btn.active{color:var(--gold);border-bottom-color:var(--gold);}
.g-tab-panel{display:none;}
.g-sub-btn{padding:0.35rem 0.7rem;border:none;background:transparent;color:var(--txt-d);cursor:pointer;font-size:0.78rem;font-family:inherit;border-bottom:2px solid transparent;}
.g-sub-active{color:var(--gold);border-bottom-color:var(--gold);}
.g-sub-panel{display:none;}
/* 诏令输入区（宣纸稿纸风格） */
.edict-input{width:100%;margin-top:0.3rem;padding:0.6rem 0.8rem;background:var(--bg-3);border:1px solid var(--bdr);border-radius:var(--radius-md);color:var(--txt);font-family:var(--font-serif);font-size:var(--text-base);line-height:var(--leading-relaxed);resize:vertical;min-height:44px;background-image:repeating-linear-gradient(90deg,transparent,transparent 2em,rgba(107,93,79,0.04) 2em,rgba(107,93,79,0.04) calc(2em + 1px));}
.edict-input:focus{outline:none;border-color:var(--gold-d);}

/* ═════════ 诏令标签页·美化版（v2）═════════ */
.ed-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;}
.ed-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px),radial-gradient(circle at 40% 85%,rgba(139,90,50,0.02) 0.5px,transparent 1px);background-size:80px 80px,120px 120px,100px 100px;background-position:0 0,40px 40px,20px 60px;}
.ed-yubi-title{text-align:center;margin-bottom:24px;position:relative;padding:12px 0 18px;}
.ed-yubi-title::before,.ed-yubi-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.ed-yubi-title::before{top:0;}
.ed-yubi-title::after{bottom:0;}
.ed-yubi-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground,#f4eadd);font-weight:400;margin-bottom:6px;}
.ed-yubi-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.ed-yubi-title .seal{position:absolute;right:24px;top:8px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.1em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;}
.ed-cards{display:flex;flex-direction:column;gap:16px;}
.ed-card{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle,rgba(184,154,83,0.15));border-left:3px solid var(--ed-cat,var(--gold-400));border-radius:4px;padding:16px 18px;transition:all 0.3s;position:relative;overflow:hidden;}
.ed-card::after{content:"";position:absolute;top:0;right:0;width:60px;height:60px;background:radial-gradient(circle at top right,rgba(184,154,83,0.08),transparent 70%);pointer-events:none;}
.ed-card:hover{box-shadow:0 0 12px rgba(184,154,83,0.18),0 3px 8px rgba(0,0,0,0.3);border-left-width:4px;transform:translateX(-1px);}
.ed-card-hdr{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ed-cat-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--ed-cat);background:linear-gradient(135deg,rgba(255,255,255,0.03),rgba(255,255,255,0.01));border:1px solid var(--ed-cat);border-radius:50%;font-family:var(--font-serif);font-size:13px;flex-shrink:0;}
.ed-cat-label{font-family:var(--font-serif);font-size:15px;color:var(--ed-cat);letter-spacing:0.12em;font-weight:500;}
.ed-cat-hint{font-size:15px;color:var(--ink-300,#6b5d47);margin-left:auto;font-family:var(--font-song,"SimSun");letter-spacing:0.05em;}
.ed-forecast{margin-top:10px;padding:8px 12px;background:rgba(184,154,83,0.04);border:1px dashed var(--color-border-subtle);border-left:2px solid var(--ed-cat);border-radius:2px;font-size:15.5px;color:var(--color-foreground-muted,#a69470);line-height:1.6;}
.ed-forecast .tag{display:inline-block;font-size:14px;padding:1px 5px;background:var(--ed-cat);color:var(--bg-1,#0f0d0a);border-radius:2px;margin-right:6px;font-family:var(--font-serif);letter-spacing:0.05em;opacity:0.85;}
/* 分类颜色 */
.ed-c-pol{--ed-cat:var(--indigo-400,#5a6fa8);}
.ed-c-mil{--ed-cat:var(--vermillion-400,#b84738);}
.ed-c-dip{--ed-cat:var(--celadon-400,#6a9a7f);}
.ed-c-eco{--ed-cat:var(--gold-400,#b89a53);}
.ed-c-oth{--ed-cat:var(--ink-300,#8b7a5e);}
/* 润色控制行 */
.ed-polish-bar{margin-top:24px;padding:18px 16px;background:linear-gradient(to right,transparent,rgba(184,154,83,0.06),transparent);border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;}
.ed-polish-label{font-family:var(--font-serif);color:var(--color-foreground-muted);letter-spacing:0.1em;font-size:13px;}
.ed-polish-btn{background:linear-gradient(to bottom,var(--vermillion-400,#b84738),var(--vermillion-600,#8f3428));color:#f4eadd;border:1px solid var(--vermillion-600,#8f3428);border-radius:2px;padding:8px 24px;font-family:var(--font-serif);font-size:14px;letter-spacing:0.25em;cursor:pointer;box-shadow:0 1px 3px rgba(140,40,30,0.4),inset 0 1px 0 rgba(255,255,255,0.1);position:relative;transition:all 0.2s;}
.ed-polish-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(140,40,30,0.5),inset 0 1px 0 rgba(255,255,255,0.12);}
.ed-polish-btn::before{content:"❖";margin-right:6px;opacity:0.7;}
/* 建议库 */
.ed-sug-title-wrap{text-align:center;margin-bottom:14px;}
.ed-sug-title{display:inline-block;font-family:var(--font-serif);font-size:14px;letter-spacing:0.25em;color:var(--color-foreground);padding:4px 14px 6px;background:linear-gradient(to bottom,rgba(157,130,68,0.12),rgba(157,130,68,0.03));border-top:1px solid var(--gold-d);border-bottom:1px solid var(--gold-d);position:relative;}
.ed-sug-title::before,.ed-sug-title::after{content:"❖";color:var(--gold-400);font-size:14px;margin:0 6px;opacity:0.6;}
.ed-sug-item{border-left:2px solid var(--src-color,var(--gold-d));background:var(--color-surface);padding:10px 12px 10px 12px;border-radius:2px;font-size:12.5px;line-height:1.6;color:var(--color-foreground-muted);cursor:pointer;transition:all 0.25s;position:relative;}
.ed-sug-item:hover{border-left-color:var(--vermillion-400);color:var(--color-foreground);background:linear-gradient(to right,rgba(192,64,48,0.06),var(--color-surface));box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.ed-sug-item .src{font-size:14.5px;color:var(--src-color,var(--gold-400));font-family:var(--font-serif);letter-spacing:0.05em;margin-bottom:3px;padding-right:40px;font-weight:500;}
.ed-sug-item .topic{font-size:14px;color:var(--amber-400,#c9a045);margin:2px 0;font-style:italic;letter-spacing:0.05em;}
.ed-sug-item .txt{color:inherit;font-size:12.5px;line-height:1.6;font-family:var(--font-serif);padding-top:2px;}
.ed-sug-item .act{position:absolute;top:8px;right:8px;font-size:14.5px;color:var(--gold-400);padding:2px 8px;border:1px solid var(--gold-d);border-radius:2px;background:linear-gradient(to bottom,rgba(184,154,83,0.12),rgba(184,154,83,0.04));opacity:0.75;transition:all 0.2s;font-family:var(--font-serif);letter-spacing:0.15em;cursor:pointer;font-weight:500;}
.ed-sug-item:hover .act{opacity:1;background:linear-gradient(to bottom,rgba(184,154,83,0.2),rgba(184,154,83,0.08));border-color:var(--gold-400);}
.ed-sug-item .act:hover{color:var(--gold-300,#c9a85f);border-color:var(--gold-300,#c9a85f);background:linear-gradient(to bottom,rgba(184,154,83,0.28),rgba(184,154,83,0.12));transform:scale(1.05);}
.ed-sug-item .del{position:absolute;bottom:6px;right:8px;font-size:15px;color:var(--ink-300,#6b5d47);background:none;border:none;cursor:pointer;padding:1px 4px;opacity:0;transition:all 0.2s;line-height:1;}
.ed-sug-item:hover .del{opacity:0.6;}
.ed-sug-item .del:hover{opacity:1;color:var(--vermillion-400);transform:scale(1.15);}
.ed-src-chaoyi{--src-color:var(--indigo-400);}
.ed-src-wendui{--src-color:var(--celadon-400);}
.ed-src-letter{--src-color:var(--amber-400,#c9a045);}
.ed-src-memorial{--src-color:var(--vermillion-400);}
.ed-src-office{--src-color:var(--purple-400,#8e6aa8);}
.ed-src-local{--src-color:var(--celadon-400);}
.ed-src-default{--src-color:var(--gold-d);}
/* 主角行止分割+卡片 */
.ed-section-divider{text-align:center;margin:28px 0 20px;position:relative;}
.ed-section-divider::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(to right,transparent 0%,var(--gold-d) 30%,var(--gold-d) 70%,transparent 100%);}
.ed-section-divider .label{position:relative;display:inline-block;padding:2px 20px;background:var(--color-background,#1a1510);font-family:var(--font-serif);font-size:14px;color:var(--gold-400);letter-spacing:0.3em;}
.ed-xinglu-card{background-color:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--gold-400);border-radius:4px;padding:16px 18px;position:relative;}
.ed-xinglu-hdr{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;}
.ed-xinglu-hdr .title{font-family:var(--font-serif);font-size:15px;color:var(--gold-400);letter-spacing:0.12em;}
.ed-xinglu-hdr .desc{font-size:15px;color:var(--ink-300);}
.ed-xinglu-hist{margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border-subtle);}
.ed-xinglu-hist summary{cursor:pointer;font-size:12px;color:var(--color-foreground-muted);display:inline-flex;align-items:center;gap:6px;font-family:var(--font-serif);letter-spacing:0.1em;list-style:none;}
.ed-xinglu-hist summary::before{content:"▸";transition:transform 0.2s;color:var(--ink-300);}
.ed-xinglu-hist[open] summary::before{transform:rotate(90deg);}
.ed-xinglu-hist summary:hover{color:var(--gold-400);}
.ed-xinglu-hist-item{font-size:15.5px;padding:6px 10px;background:rgba(184,154,83,0.03);border-left:2px solid var(--ink-100,#3d342a);color:var(--color-foreground-muted);line-height:1.6;border-radius:2px;margin-bottom:4px;}
.ed-xinglu-hist-item .turn{color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.05em;margin-right:6px;}
/* 帝王私行折叠区 */
.ed-tyrant-block{margin-top:28px;padding:12px 16px;background:linear-gradient(to right,rgba(192,64,48,0.06),transparent);border-left:2px dashed var(--vermillion-400);border-radius:2px;}
.ed-tyrant-toggle{font-family:var(--font-serif);font-size:13px;color:var(--color-foreground-muted);letter-spacing:0.2em;cursor:pointer;display:flex;align-items:center;gap:6px;}
.ed-tyrant-toggle::before{content:"▸";color:var(--vermillion-400);transition:transform 0.2s;}
.ed-tyrant-toggle.open::before{transform:rotate(90deg);}
.ed-tyrant-toggle .sub{font-size:15px;color:var(--ink-300);font-family:var(--font-song,"SimSun");letter-spacing:0;}
/* 诏令档案往期 */
.ed-archive{margin-top:24px;}
.ed-archive summary{cursor:pointer;font-size:13px;color:var(--color-foreground-muted);text-align:center;padding:6px 0;font-family:var(--font-serif);letter-spacing:0.2em;list-style:none;}
.ed-archive summary::before{content:"◢ ";color:var(--gold-400);}
.ed-archive summary::after{content:" ◣";color:var(--gold-400);}
.ed-archive summary:hover{color:var(--gold-400);}
.ed-archive-group{margin-bottom:10px;padding:10px;background:var(--color-surface);border-radius:3px;border-left:2px solid var(--gold-d);}
.ed-archive-group-title{font-size:15.5px;color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.1em;margin-bottom:6px;}
/* 结束回合按钮区 */
.ed-action-bar{margin-top:28px;text-align:center;display:flex;gap:12px;justify-content:center;}
/* ═════════ 诏书润色·卷轴式（ed-scroll-*）═════════ */
.ed-scroll{position:relative;margin:32px 6px 0 6px;padding:28px 40px 32px;background-color:#f4eadd;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.08) 2.5em,rgba(107,93,71,0.08) calc(2.5em + 1px)),radial-gradient(circle at 20% 30%,rgba(139,90,50,0.05) 1px,transparent 2px),radial-gradient(circle at 75% 60%,rgba(139,90,50,0.04) 1px,transparent 2px),radial-gradient(circle at 50% 85%,rgba(139,90,50,0.03) 1px,transparent 2px);background-size:auto,130px 130px,150px 150px,110px 110px;border-radius:2px;box-shadow:0 6px 20px rgba(0,0,0,0.5),inset 0 0 60px rgba(139,90,50,0.08);color:#1a1410;font-family:var(--font-serif);line-height:2;font-size:15px;}
.ed-scroll::before,.ed-scroll::after{content:"";position:absolute;left:-12px;right:-12px;height:16px;background:linear-gradient(to bottom,#6b5a30 0%,#8d7640 40%,#6b5a30 100%);border:1px solid #3d2e18;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.15);}
.ed-scroll::before{top:-8px;}
.ed-scroll::after{bottom:-8px;}
.ed-scroll-title{text-align:center;font-size:24px;letter-spacing:0.4em;color:#4a2818;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid rgba(107,60,40,0.2);position:relative;}
.ed-scroll-title::before{content:"\5949";position:absolute;left:8px;top:4px;font-size:14px;color:rgba(192,64,48,0.6);letter-spacing:0;}
.ed-scroll-title::after{content:"\627F";position:absolute;right:8px;top:4px;font-size:14px;color:rgba(192,64,48,0.6);}
.ed-scroll-text{width:100%;min-height:180px;color:#2a1810;font-family:var(--font-serif);font-size:15px;line-height:2;background:transparent;border:none;resize:vertical;outline:none;padding:0;text-indent:2em;}
.ed-scroll-text::placeholder{color:rgba(74,40,24,0.4);}
.ed-scroll-seal{position:absolute;bottom:22px;right:36px;width:56px;height:56px;border-radius:3px;background:linear-gradient(to bottom right,rgba(192,64,48,0.92),rgba(140,40,30,0.95));display:flex;align-items:center;justify-content:center;flex-direction:column;color:#f4eadd;font-size:14px;font-family:var(--font-serif);line-height:1.2;letter-spacing:0.05em;transform:rotate(-4deg);box-shadow:0 2px 6px rgba(140,40,30,0.5);text-align:center;padding:6px;pointer-events:none;}
.ed-scroll-seal .top,.ed-scroll-seal .bot{font-size:9px;opacity:0.85;}
.ed-scroll-seal .main{font-size:14px;font-weight:bold;margin:2px 0;}
.ed-scroll-actions{margin-top:20px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.ed-scroll-btn{background:rgba(244,234,221,0.04);border:1px solid var(--color-border-strong,rgba(184,154,83,0.35));color:var(--color-foreground);padding:6px 18px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.15em;font-size:13px;cursor:pointer;transition:all 0.2s;}
.ed-scroll-btn:hover{background:rgba(184,154,83,0.08);border-color:var(--gold-400);color:var(--gold-400);}
.ed-scroll-btn.primary{background:linear-gradient(to bottom,var(--gold-400),var(--gold-500));color:var(--bg-1,#0f0d0a);border-color:var(--gold-500);font-weight:500;}
.ed-scroll-btn.primary:hover{background:linear-gradient(to bottom,var(--gold-300,#c9a85f),var(--gold-400));color:var(--bg-1,#0f0d0a);}

/* ═════════ 问对标签页·美化版 v2（.wdp-*）═════════ */
.wdp-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);}
.wdp-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.wdp-inner{position:relative;z-index:1;}
.wdp-title{text-align:center;margin-bottom:28px;position:relative;padding:14px 0 18px;}
.wdp-title::before,.wdp-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.wdp-title::before{top:0;}
.wdp-title::after{bottom:0;}
.wdp-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground,#f4eadd);margin-bottom:6px;}
.wdp-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.wdp-title .seal{position:absolute;right:32px;top:12px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:12px;font-family:var(--font-serif);letter-spacing:0.08em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;}
/* 分组题签 */
.wdp-group{margin-bottom:28px;}
.wdp-group-title{display:flex;align-items:center;gap:12px;margin-bottom:14px;position:relative;flex-wrap:wrap;}
.wdp-group-title .tag{font-family:var(--font-serif);font-size:14px;letter-spacing:0.25em;padding:4px 14px 6px;background:linear-gradient(to bottom,rgba(157,130,68,0.12),rgba(157,130,68,0.03));border-top:1px solid var(--wdp-color,var(--gold-d));border-bottom:1px solid var(--wdp-color,var(--gold-d));color:var(--color-foreground);flex-shrink:0;}
.wdp-group-title .tag::before,.wdp-group-title .tag::after{content:"❖";color:var(--wdp-color,var(--gold-400));font-size:14px;margin:0 6px;opacity:0.65;}
.wdp-group-title .desc{font-size:15.5px;color:var(--color-foreground-muted,#a69470);letter-spacing:0.05em;}
.wdp-group-title .count{margin-left:auto;font-size:15px;color:var(--wdp-color,var(--gold-400));font-family:var(--font-serif);padding:2px 8px;border:1px solid var(--wdp-color,var(--gold-d));border-radius:2px;letter-spacing:0.1em;}
.wdp-g-envoy{--wdp-color:var(--amber-400,#c9a045);}
.wdp-g-seeking{--wdp-color:var(--vermillion-400,#b84738);}
.wdp-g-incap{--wdp-color:var(--gold-400,#b89a53);}
.wdp-g-away{--wdp-color:var(--ink-300,#6b5d47);}
/* 求见条（使节/NPC求见共用） */
.wdp-req-list{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:rgba(192,64,48,0.04);border:1px dashed var(--wdp-color);border-left:3px solid var(--wdp-color);border-radius:2px;}
.wdp-req-item{display:flex;align-items:center;gap:12px;padding:8px 10px;background:var(--color-surface);border-left:2px solid var(--wdp-color);border-radius:2px;transition:all 0.2s;}
.wdp-req-item:hover{background:rgba(192,64,48,0.06);transform:translateX(2px);}
.wdp-req-portrait{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--wdp-color),var(--ink-100,#3d342a));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:16px;flex-shrink:0;border:2px solid var(--wdp-color);box-shadow:0 1px 3px rgba(0,0,0,0.3);position:relative;font-weight:500;}
.wdp-req-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.wdp-envoy-badge{position:absolute;top:-4px;right:-4px;background:var(--amber-400,#c9a045);color:#1a1410;font-size:13px;padding:1px 4px;border-radius:2px;font-weight:bold;letter-spacing:0.05em;}
.wdp-req-info{flex:1;min-width:0;}
.wdp-req-name{font-family:var(--font-serif);font-size:14px;color:var(--color-foreground);letter-spacing:0.1em;font-weight:500;}
.wdp-req-reason{font-size:15.5px;color:var(--color-foreground-muted);margin-top:2px;font-style:italic;}
.wdp-req-actions{display:flex;gap:6px;flex-shrink:0;}
.wdp-req-btn{background:linear-gradient(to bottom,var(--wdp-color),var(--vermillion-600,#8f3428));color:#f4eadd;border:1px solid var(--wdp-color);padding:5px 14px;font-family:var(--font-serif);font-size:12.5px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.08);}
.wdp-req-btn:hover{transform:translateY(-1px);}
.wdp-req-btn.dismiss{background:var(--color-surface);color:var(--color-foreground-muted);border-color:var(--color-border-subtle);box-shadow:none;}
.wdp-req-btn.dismiss:hover{color:var(--color-foreground);border-color:var(--color-foreground-muted);}
/* 百官卡片网格 */
.wdp-char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.wdp-char-card{padding:12px 12px 10px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--wdp-card-color,var(--gold-d));border-radius:3px;cursor:pointer;transition:all 0.25s;position:relative;overflow:hidden;}
.wdp-char-card::after{content:"";position:absolute;top:0;right:0;width:50px;height:50px;background:radial-gradient(circle at top right,rgba(184,154,83,0.06),transparent 70%);pointer-events:none;}
.wdp-char-card:hover{border-color:var(--gold-400);border-left-width:4px;transform:translateY(-2px);box-shadow:0 0 12px rgba(184,154,83,0.2),0 3px 8px rgba(0,0,0,0.3);}
.wdp-char-card.has-hist::before{content:"\270E";position:absolute;top:6px;right:8px;font-size:15px;color:var(--gold-400);opacity:0.75;}
.wdp-char-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.wdp-portrait{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--ink-300,#6b5d47),var(--ink-100,#3d342a));border:2px solid var(--wdp-card-color,var(--gold-d));display:flex;align-items:center;justify-content:center;color:var(--color-foreground);font-family:var(--font-serif);font-size:15px;font-weight:500;flex-shrink:0;box-shadow:0 1px 2px rgba(0,0,0,0.3);overflow:hidden;}
.wdp-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.wdp-name-wrap{flex:1;min-width:0;}
.wdp-name{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground);letter-spacing:0.08em;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wdp-name .spouse{color:var(--vermillion-400);font-size:12px;margin-left:4px;opacity:0.8;}
.wdp-char-title{font-size:14.5px;color:var(--color-foreground-muted);margin-top:2px;letter-spacing:0.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wdp-char-bottom{display:flex;align-items:center;justify-content:space-between;font-size:14.5px;color:var(--color-foreground-muted);padding-top:6px;border-top:1px dashed var(--color-border-subtle);}
.wdp-loyalty{display:flex;align-items:center;gap:3px;font-family:var(--font-serif);}
.wdp-loyalty .num{font-size:12px;color:var(--wdp-loy-color,var(--color-foreground-muted));font-weight:500;}
.wdp-tag{font-size:13.5px;padding:1px 5px;border:1px solid currentColor;border-radius:2px;letter-spacing:0.05em;opacity:0.7;}
/* 卡片色条（按 faction/stance）—— 左边3px+头像边框 */
.wdp-civil{--wdp-card-color:var(--gold-400);}
.wdp-mili{--wdp-card-color:var(--vermillion-400);}
.wdp-eunuch{--wdp-card-color:var(--purple-400,#8e6aa8);}
.wdp-consort{--wdp-card-color:var(--vermillion-300,#d15c47);}
.wdp-dongin{--wdp-card-color:var(--celadon-400);}
.wdp-zhejian{--wdp-card-color:var(--indigo-400,#5a6fa8);}
/* 忠诚色 */
.wdp-loy-hi{--wdp-loy-color:var(--celadon-400,#6a9a7f);}
.wdp-loy-mid{--wdp-loy-color:var(--gold-400);}
.wdp-loy-lo{--wdp-loy-color:var(--vermillion-400);}
/* 远方臣子 */
.wdp-away-list{display:flex;flex-wrap:wrap;gap:8px;}
.wdp-away-item{padding:6px 12px;background:rgba(107,93,71,0.1);border:1px dashed var(--color-border-subtle);border-radius:2px;font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.05em;opacity:0.55;cursor:not-allowed;}
.wdp-away-item .loc{font-size:14px;color:var(--ink-300);margin-left:6px;padding:1px 4px;background:rgba(0,0,0,0.15);border-radius:2px;letter-spacing:0;}
.wdp-away-item .travel{font-size:14px;color:var(--amber-400);margin-left:4px;}
/* 召见模态 */
.wdp-pick-modal-inner{max-width:460px;padding:24px 28px;background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--gold-d);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,0.5),0 0 0 1px rgba(184,154,83,0.1);text-align:center;}
.wdp-pick-portrait{width:72px;height:72px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,var(--gold-400),var(--ink-100));border:3px solid var(--gold-400);display:flex;align-items:center;justify-content:center;color:var(--color-foreground);font-family:var(--font-serif);font-size:26px;font-weight:500;box-shadow:0 3px 8px rgba(0,0,0,0.4);overflow:hidden;}
.wdp-pick-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.wdp-pick-name{font-family:var(--font-serif);font-size:18px;color:var(--gold-400);letter-spacing:0.15em;margin-bottom:4px;}
.wdp-pick-title{font-size:12px;color:var(--color-foreground-muted);margin-bottom:14px;}
.wdp-pick-hist{display:inline-block;font-size:15px;color:var(--color-foreground-muted);padding:4px 10px;background:rgba(184,154,83,0.08);border-radius:2px;margin-bottom:16px;font-style:italic;}
.wdp-pick-modes{display:flex;gap:12px;justify-content:center;margin-bottom:18px;}
.wdp-mode-card{flex:1;padding:14px 12px;background:rgba(244,234,221,0.03);border:1px solid var(--color-border-subtle);border-radius:3px;cursor:pointer;transition:all 0.2s;}
.wdp-mode-card.sel{border-color:var(--gold-400);background:rgba(184,154,83,0.1);box-shadow:0 0 0 1px var(--gold-400),0 0 8px rgba(184,154,83,0.2);}
.wdp-mode-card:hover{border-color:var(--gold-d);}
.wdp-mode-card .icon{font-family:var(--font-serif);font-size:22px;color:var(--gold-400);margin-bottom:6px;}
.wdp-mode-card.sel .icon{color:var(--gold-300,#c9a85f);}
.wdp-mode-card .name{font-family:var(--font-serif);font-size:14px;color:var(--color-foreground);letter-spacing:0.1em;margin-bottom:2px;}
.wdp-mode-card .desc{font-size:14.5px;color:var(--color-foreground-muted);line-height:1.5;}
.wdp-pick-actions{display:flex;gap:12px;justify-content:center;}
.wdp-pick-btn{padding:8px 22px;font-family:var(--font-serif);font-size:13px;letter-spacing:0.2em;border-radius:2px;cursor:pointer;}
.wdp-pick-btn.primary{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600));color:#f4eadd;border:1px solid var(--vermillion-600);box-shadow:0 1px 3px rgba(140,40,30,0.4);}
.wdp-pick-btn.primary:hover{transform:translateY(-1px);}
.wdp-pick-btn.secondary{background:var(--color-surface);color:var(--color-foreground-muted);border:1px solid var(--color-border-strong,rgba(184,154,83,0.35));}

/* ═════════ 奏疏标签页·美化版（.mem-* ）═════════ */
.mem-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);}
.mem-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.mem-inner{position:relative;z-index:1;}
.mem-title{text-align:center;margin-bottom:24px;position:relative;padding:14px 0 18px;}
.mem-title::before,.mem-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.mem-title::before{top:0;}
.mem-title::after{bottom:0;}
.mem-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.mem-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.mem-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}
/* 在途奏疏 */
.mem-transit{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(201,160,69,0.06);border:1px dashed var(--amber-400,#c9a045);border-left:3px solid var(--amber-400,#c9a045);border-radius:3px;margin-bottom:20px;font-size:12px;color:var(--color-foreground);}
.mem-transit-icon{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--amber-400,#c9a045),var(--gold-500));display:flex;align-items:center;justify-content:center;color:#1a1410;font-family:var(--font-serif);font-size:14px;font-weight:bold;flex-shrink:0;}
.mem-transit .lbl{color:var(--amber-400,#c9a045);letter-spacing:0.1em;font-family:var(--font-serif);}
/* 分组题签 */
.mem-group{margin-bottom:28px;}
.mem-group-title{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.mem-group-title .tag{font-family:var(--font-serif);font-size:14px;letter-spacing:0.25em;padding:4px 14px 6px;background:linear-gradient(to bottom,rgba(157,130,68,0.12),rgba(157,130,68,0.03));border-top:1px solid var(--gc,var(--gold-d));border-bottom:1px solid var(--gc,var(--gold-d));color:var(--color-foreground);flex-shrink:0;}
.mem-group-title .tag::before,.mem-group-title .tag::after{content:"❖";color:var(--gc,var(--gold-400));font-size:14px;margin:0 6px;opacity:0.65;}
.mem-group-title .desc{font-size:15.5px;color:var(--color-foreground-muted);letter-spacing:0.05em;}
.mem-group-title .count{margin-left:auto;font-size:15px;color:var(--gc,var(--gold-400));font-family:var(--font-serif);padding:2px 8px;border:1px solid var(--gc,var(--gold-d));border-radius:2px;letter-spacing:0.1em;}
.mem-g-urgent{--gc:var(--vermillion-400);}
.mem-g-pending{--gc:var(--gold-400);}
.mem-g-held{--gc:var(--blue-400,#5a8fb8);}
.mem-g-done{--gc:var(--ink-300);}
/* 奏疏卡片 */
.mem-card{position:relative;margin-bottom:14px;padding:16px 18px 14px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--mc-color,var(--gold-d));border-radius:3px;transition:all 0.25s;}
.mem-card:hover{border-color:var(--gold-400);box-shadow:0 3px 10px rgba(0,0,0,0.3),0 0 8px rgba(184,154,83,0.15);}
.mem-card::after{content:"";position:absolute;top:0;right:0;width:50px;height:50px;background:radial-gradient(circle at top right,rgba(184,154,83,0.06),transparent 70%);pointer-events:none;}
.mem-c-loyal{--mc-color:var(--celadon-400);}
.mem-c-normal{--mc-color:var(--gold-400);}
.mem-c-suspect{--mc-color:var(--amber-400,#c9a045);}
.mem-c-danger{--mc-color:var(--vermillion-400);}
.mem-card-hdr{display:flex;align-items:center;gap:12px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed var(--color-border-subtle);}
.mem-portrait{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--mc-color,var(--gold-400)),var(--ink-100,#3d342a));border:2px solid var(--mc-color,var(--gold-d));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:14px;font-weight:500;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,0.3);overflow:hidden;}
.mem-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.mem-from-wrap{flex:1;min-width:0;}
.mem-from{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground);letter-spacing:0.08em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mem-from-title{font-size:15px;color:var(--color-foreground-muted);margin-top:2px;letter-spacing:0.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mem-type-pill{font-size:15px;font-family:var(--font-serif);padding:3px 10px 4px;background:linear-gradient(to bottom,rgba(184,154,83,0.12),rgba(184,154,83,0.03));border:1px solid var(--mc-color,var(--gold-d));color:var(--mc-color,var(--gold-400));border-radius:2px;letter-spacing:0.15em;flex-shrink:0;}
/* 状态徽记 */
.mem-badges{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}
.mem-badge{font-size:14.5px;padding:1px 7px 2px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;border:1px solid currentColor;white-space:nowrap;}
.mem-badge-urgent{color:var(--vermillion-400);background:rgba(192,64,48,0.1);}
.mem-badge-held{color:var(--blue-400,#5a8fb8);background:rgba(90,143,184,0.1);}
.mem-badge-approved{color:var(--celadon-400);background:rgba(106,154,127,0.1);}
.mem-badge-rejected{color:var(--vermillion-400);background:rgba(192,64,48,0.1);}
.mem-badge-annotated{color:var(--gold-400);background:rgba(184,154,83,0.08);}
.mem-badge-referred{color:var(--celadon-400);background:rgba(106,154,127,0.08);}
.mem-badge-court{color:var(--purple-400,#8e6aa8);background:rgba(142,106,168,0.1);}
.mem-badge-remote{color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);}
.mem-badge-reliab{color:var(--vermillion-400);background:rgba(192,64,48,0.1);}
/* 本奏正文 */
.mem-body-label{font-size:14.5px;color:var(--ink-300);letter-spacing:0.2em;font-family:var(--font-serif);margin-bottom:6px;}
.mem-body{padding:10px 14px;background:rgba(244,234,221,0.03);border-left:2px solid var(--color-border-strong,rgba(184,154,83,0.35));border-radius:2px;font-family:var(--font-serif);font-size:14px;line-height:1.9;color:var(--color-foreground);text-indent:2em;position:relative;}
.mem-body.collapsed{max-height:120px;overflow:hidden;}
.mem-body.collapsed::after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(transparent,var(--color-surface));pointer-events:none;}
.mem-toggle{display:inline-block;margin-top:4px;font-size:15px;color:var(--gold-400);background:none;border:none;cursor:pointer;font-family:var(--font-serif);letter-spacing:0.1em;padding:2px 6px;}
.mem-toggle:hover{color:var(--gold-300,#c9a85f);text-decoration:underline;}
/* 朱笔批注 */
.mem-reply-wrap{margin-top:12px;padding:10px 12px;background:rgba(192,64,48,0.03);border:1px dashed rgba(192,64,48,0.25);border-left:2px solid var(--vermillion-400);border-radius:2px;position:relative;}
.mem-reply-label{font-size:14.5px;color:var(--vermillion-400);letter-spacing:0.25em;font-family:var(--font-serif);margin-bottom:4px;display:flex;align-items:center;gap:6px;}
.mem-reply-label::before{content:"";width:14px;height:14px;background:radial-gradient(circle,var(--vermillion-400),var(--vermillion-600));border-radius:50%;display:inline-block;box-shadow:0 1px 2px rgba(140,40,30,0.3);}
.mem-reply-input{width:100%;padding:6px 10px;background:transparent;border:none;outline:none;color:var(--vermillion-300,#d15c47);font-family:var(--font-serif);font-size:14px;line-height:1.8;font-style:italic;min-height:28px;resize:vertical;}
.mem-reply-input::placeholder{color:rgba(192,64,48,0.35);font-style:italic;}
/* 操作按钮 */
.mem-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--color-border-subtle);}
.mem-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;background:linear-gradient(to bottom,rgba(244,234,221,0.08),rgba(244,234,221,0.02));border:1px solid var(--ab,var(--color-border-subtle));color:var(--ab,var(--color-foreground-muted));border-radius:2px;font-family:var(--font-serif);font-size:12.5px;letter-spacing:0.15em;cursor:pointer;transition:all 0.15s;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.04);}
.mem-btn:hover{background:linear-gradient(to bottom,rgba(var(--ab-rgb,184,154,83),0.15),rgba(var(--ab-rgb,184,154,83),0.05));transform:translateY(-1px);box-shadow:0 2px 5px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.08);border-color:var(--ab,var(--gold-400));}
.mem-btn .ic{font-size:15px;opacity:0.8;}
.mem-btn.approve{--ab:var(--celadon-400);--ab-rgb:106,154,127;}
.mem-btn.reject{--ab:var(--vermillion-400);--ab-rgb:184,71,56;}
.mem-btn.annotate{--ab:var(--gold-400);--ab-rgb:184,154,83;}
.mem-btn.refer{--ab:var(--celadon-400);--ab-rgb:106,154,127;}
.mem-btn.court{--ab:var(--purple-400,#8e6aa8);--ab-rgb:142,106,168;}
.mem-btn.hold{--ab:var(--blue-400,#5a8fb8);--ab-rgb:90,143,184;}
.mem-btn.excerpt{--ab:var(--gold-400);--ab-rgb:184,154,83;}
.mem-btn.summon{--ab:var(--purple-400,#8e6aa8);--ab-rgb:142,106,168;margin-left:auto;}
/* 空状态 */
.mem-empty{text-align:center;padding:48px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.15em;line-height:2;}
.mem-empty::before{content:"❖";display:block;color:var(--gold-400);font-size:32px;margin-bottom:12px;opacity:0.5;}

/* ═════════ 鸿雁标签页·美化版 v2（.hy-* ）═════════ */
.hy-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);width:100%;box-sizing:border-box;}
.hy-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.hy-inner{position:relative;z-index:1;}
.hy-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.hy-title::before,.hy-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.hy-title::before{top:0;}
.hy-title::after{bottom:0;}
.hy-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.hy-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.hy-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}
/* 驿路阻断 */
.hy-route-warn{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;background:rgba(192,64,48,0.06);border:1px dashed var(--vermillion-400);border-left:3px solid var(--vermillion-400);border-radius:3px;margin-bottom:14px;font-size:12px;}
.hy-route-warn-lbl{color:var(--vermillion-400);letter-spacing:0.1em;font-family:var(--font-serif);margin-right:4px;}
.hy-route-warn-item{display:inline-block;padding:2px 8px;background:rgba(192,64,48,0.1);border:1px solid var(--vermillion-400);border-radius:2px;color:var(--vermillion-300,#d15c47);font-size:15px;letter-spacing:0.05em;}
/* 两栏 */
.hy-main{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:stretch;width:100%;}
@media (min-width:1400px){.hy-main{grid-template-columns:240px minmax(0,1fr);}}
@media (max-width:900px){.hy-main{grid-template-columns:1fr;}}
/* 左侧：名帖夹 */
.hy-left{display:flex;flex-direction:column;gap:10px;max-height:80vh;min-height:380px;padding:14px 10px 16px;background-color:#2a1e14;background-image:repeating-linear-gradient(90deg,rgba(107,60,40,0) 0,rgba(107,60,40,0) 3px,rgba(107,60,40,0.15) 3px,rgba(107,60,40,0.15) 4px,rgba(107,60,40,0) 4px,rgba(107,60,40,0) 12px,rgba(107,60,40,0.08) 12px,rgba(107,60,40,0.08) 13px),radial-gradient(ellipse at 30% 20%,rgba(184,154,83,0.08),transparent 60%),linear-gradient(to bottom,rgba(74,40,24,0.4),rgba(26,20,16,0.6));border:1px solid rgba(107,60,40,0.4);border-radius:3px;box-shadow:inset 0 0 20px rgba(0,0,0,0.4),0 2px 6px rgba(0,0,0,0.3);}
.hy-left-header{display:flex;align-items:center;gap:8px;padding:0 4px;margin-bottom:4px;}
.hy-left-title{font-family:var(--font-serif);font-size:13px;letter-spacing:0.2em;color:var(--color-foreground);padding:3px 14px 4px;background:linear-gradient(to bottom,rgba(184,154,83,0.18),rgba(157,130,68,0.08));border-top:1px solid var(--gold-400);border-bottom:1px solid var(--gold-400);box-shadow:0 1px 2px rgba(0,0,0,0.3);}
.hy-left-title::before,.hy-left-title::after{content:"❖";color:var(--gold-300,#c9a85f);font-size:13px;margin:0 4px;opacity:0.7;}
.hy-multi-btn{margin-left:auto;font-size:14.5px;padding:3px 10px;background:rgba(184,154,83,0.1);border:1px solid var(--gold-d);color:var(--color-foreground);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;}
.hy-multi-btn.active{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600));color:#f4eadd;border-color:var(--vermillion-600);}
.hy-search-wrap{position:relative;margin:2px 2px 4px;}
.hy-search-wrap::before{content:"⌕";position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--gold-300,#c9a85f);font-size:13px;pointer-events:none;opacity:0.7;}
.hy-search{width:100%;padding:6px 10px 6px 28px;background:rgba(26,20,16,0.55);border:1px solid rgba(184,154,83,0.3);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:13px;letter-spacing:0.05em;border-radius:2px;outline:none;box-sizing:border-box;}
.hy-search::placeholder{color:rgba(184,154,83,0.45);}
.hy-search:focus{border-color:var(--gold-400);box-shadow:0 0 0 1px rgba(184,154,83,0.22);background:rgba(26,20,16,0.7);}
/* 地域分组 */
.hy-group-sep{display:flex;align-items:center;gap:8px;margin:10px 4px 4px;font-family:var(--font-serif);font-size:14.5px;color:var(--gold-300,#c9a85f);letter-spacing:0.35em;opacity:0.82;}
.hy-group-sep::before,.hy-group-sep::after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(184,154,83,0.3) 20%,rgba(184,154,83,0.3) 80%,transparent);}
.hy-group-sep:first-child{margin-top:2px;}
.hy-npc-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:0 2px;}
/* 名帖·画像立轴 */
.hy-npc-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;padding:10px 12px 10px 10px;background:linear-gradient(145deg,rgba(244,234,221,0.05) 0%,rgba(244,234,221,0.01) 100%),rgba(36,30,24,0.4);border:1px solid rgba(184,154,83,0.18);border-left:3px solid var(--npc-clr,var(--gold-d));border-radius:2px;cursor:pointer;position:relative;transition:all 0.25s cubic-bezier(0.3,0,0.2,1);box-shadow:0 1px 2px rgba(0,0,0,0.25);}
.hy-npc-card:hover{border-color:rgba(184,154,83,0.5);transform:translateX(2px);box-shadow:-2px 2px 6px rgba(0,0,0,0.35),inset 1px 0 0 rgba(255,255,255,0.04);}
.hy-npc-card.active{background:linear-gradient(135deg,rgba(192,64,48,0.1),rgba(192,64,48,0.02)),rgba(36,30,24,0.5);border-color:var(--gold-400);border-left:4px solid var(--vermillion-400);box-shadow:-3px 3px 8px rgba(0,0,0,0.4),0 0 12px rgba(184,154,83,0.15),inset 1px 0 0 rgba(255,255,255,0.06);transform:translateX(2px);}
.hy-npc-portrait{width:44px;height:54px;background:radial-gradient(ellipse at 50% 30%,rgba(244,234,221,0.1),transparent 60%),linear-gradient(145deg,var(--npc-clr,var(--gold-400)) 0%,rgba(26,20,16,0.6) 100%);border:1.5px solid var(--npc-clr,var(--gold-d));border-radius:2px;display:flex;align-items:center;justify-content:center;color:var(--color-foreground);font-family:var(--font-serif);font-size:22px;font-weight:500;flex-shrink:0;position:relative;box-shadow:0 2px 4px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.08);align-self:center;overflow:hidden;}
.hy-npc-portrait img{width:100%;height:100%;object-fit:cover;border-radius:1px;}
.hy-npc-portrait::before{content:"";position:absolute;inset:3px;border:0.5px solid rgba(184,154,83,0.25);border-radius:1px;pointer-events:none;}
.hy-npc-portrait::after{content:"";position:absolute;top:-3px;left:-2px;right:-2px;height:3px;background:linear-gradient(to bottom,#8d7640 0%,#6b5a30 60%,#5a4a28 100%);border:0.5px solid #3d2e18;border-radius:1px;box-shadow:0 1px 0 rgba(0,0,0,0.4);}
.hy-npc-info{min-width:0;padding-top:3px;display:flex;flex-direction:column;justify-content:center;}
.hy-npc-name{font-family:var(--font-serif);font-size:15.5px;color:var(--color-foreground);letter-spacing:0.15em;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hy-npc-title{font-size:15px;color:var(--color-foreground-muted);margin-top:5px;letter-spacing:0.08em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hy-npc-loc{font-size:14.5px;color:var(--amber-400,#c9a045);margin-top:4px;letter-spacing:0.08em;display:inline-flex;align-items:center;gap:4px;}
.hy-npc-loc::before{content:"◉";color:var(--amber-400,#c9a045);font-size:9px;opacity:0.7;}
.hy-npc-loc .travel-arrow{color:var(--celadon-400);margin:0 3px;}
/* 指示器 */
.hy-npc-indicators{display:flex;flex-direction:column;gap:3px;align-self:center;padding-right:2px;}
.hy-ind{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:bold;font-family:var(--font-serif);line-height:1;box-shadow:0 1px 2px rgba(0,0,0,0.3);position:relative;}
.hy-ind-unread{background:linear-gradient(135deg,var(--vermillion-400),var(--vermillion-600));color:#f4eadd;box-shadow:0 0 6px rgba(192,64,48,0.35),0 1px 2px rgba(0,0,0,0.3);}
.hy-ind-unread::before{content:"";position:absolute;inset:-2px;border:1px solid rgba(192,64,48,0.3);border-radius:50%;animation:hy-pulse 2.5s infinite;}
@keyframes hy-pulse{0%,100%{opacity:0.6;transform:scale(1);}50%{opacity:0;transform:scale(1.25);}}
.hy-ind-new{background:linear-gradient(135deg,var(--amber-400,#c9a045),#a67f35);color:#1a1410;}
.hy-ind-transit{background:rgba(90,143,184,0.2);border:1.5px solid var(--blue-400,#5a8fb8);color:var(--blue-400,#5a8fb8);}
.hy-ind-lost{background:rgba(74,40,24,0.5);border:1.5px dashed var(--color-foreground-muted);color:var(--color-foreground-muted);font-size:9px;}
.hy-ind-blocked{background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(192,64,48,0.25) 2px,rgba(192,64,48,0.25) 3px);border:1px solid var(--vermillion-400);color:var(--vermillion-300,#d15c47);font-size:9px;}
.hy-c-loyal{--npc-clr:var(--celadon-400);}
.hy-c-normal{--npc-clr:var(--gold-400);}
.hy-c-mili{--npc-clr:var(--vermillion-400);}
.hy-c-scholar{--npc-clr:var(--celadon-400);}
.hy-c-remote{--npc-clr:var(--amber-400,#c9a045);}
/* 右侧中部 */
.hy-center{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:380px;width:100%;}
.hy-center > *{width:100%;box-sizing:border-box;}
.hy-hist-head{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:3px;}
.hy-hist-title-wrap{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.hy-hist-portrait{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--celadon-400),var(--ink-100,#3d342a));border:2px solid var(--celadon-400);display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:14px;flex-shrink:0;overflow:hidden;}
.hy-hist-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.hy-hist-name{font-family:var(--font-serif);font-size:15px;color:var(--gold-400);letter-spacing:0.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hy-hist-sub{font-size:15px;color:var(--color-foreground-muted);margin-top:1px;}
.hy-filter-btns{display:flex;gap:3px;flex-shrink:0;}
.hy-filter-btn{padding:3px 10px;font-size:14.5px;background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;border-radius:2px;}
.hy-filter-btn.active{background:linear-gradient(to bottom,rgba(184,154,83,0.15),rgba(184,154,83,0.05));border-color:var(--gold-400);color:var(--gold-400);}
/* 信件列表容器 */
/* 中栏「往来信札」滚动区·滚动仍可用(滚轮/拖动)·但隐藏滚动条(owner:中间栏滑动条应隐藏)·跨浏览器 */
.hy-hist-body{flex:1;min-height:380px;max-height:70vh;overflow-y:auto;padding:16px 12px;background-color:var(--color-background,#1a1510);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px)),radial-gradient(circle at 20% 10%,rgba(184,154,83,0.04),transparent 40%),radial-gradient(circle at 80% 90%,rgba(184,154,83,0.03),transparent 50%);border:1px solid var(--color-border-subtle);border-radius:3px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 2px 8px rgba(0,0,0,0.3);scrollbar-width:none;-ms-overflow-style:none;}
.hy-hist-body::-webkit-scrollbar{width:0;height:0;display:none;}
.hy-date-div{text-align:center;position:relative;margin:6px 0;}
.hy-date-div::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.hy-date-div span{position:relative;padding:2px 14px;font-size:15px;color:var(--gold-400);letter-spacing:0.2em;font-family:var(--font-serif);background:var(--color-background,#1a1510);}
/* 消息气泡 */
.hy-msg{position:relative;padding-top:4px;}
.hy-msg-tag{position:absolute;top:-6px;left:30px;z-index:1;padding:2px 10px 3px;font-size:14px;font-family:var(--font-serif);letter-spacing:0.2em;border-radius:2px;color:#f4eadd;}
.hy-msg-player{align-self:flex-end;}
.hy-msg-player .hy-msg-tag{left:auto;right:30px;background:rgba(140,40,30,0.9);}
.hy-msg-player .hy-msg-tag::after{content:"御 笔";}
.hy-msg-player .hy-letter{background-color:#e8dcb8;}
.hy-msg-npc{align-self:flex-start;}
.hy-msg-npc .hy-msg-tag{background:rgba(74,122,95,0.9);}
.hy-msg-npc .hy-msg-tag::after{content:"远 来 书";}
.hy-msg-intercept{align-self:center;max-width:88%;}
.hy-msg-intercept .hy-msg-tag{left:50%;transform:translateX(-50%);background:rgba(140,40,30,0.92);}
.hy-msg-intercept .hy-msg-tag::after{content:"被 截 获";}
.hy-msg-intercept .hy-letter{border-color:var(--vermillion-600);border-style:solid;box-shadow:0 0 0 1px rgba(192,64,48,0.3),0 3px 10px rgba(140,40,30,0.15);}
.hy-msg-intercept .hy-letter::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(45deg,transparent 0,transparent 26px,rgba(192,64,48,0.04) 26px,rgba(192,64,48,0.04) 27px);}
.hy-msg-transit .hy-msg-tag{background:rgba(90,143,184,0.9);}
.hy-msg-transit .hy-msg-tag::after{content:"信 使 在 途";}
.hy-msg-transit .hy-letter{opacity:0.82;border-style:dashed;border-color:rgba(90,143,184,0.5);box-shadow:none;}
.hy-msg-transit .hy-letter .body{color:#4a3a2a;font-style:italic;}
.hy-msg-lost .hy-msg-tag{background:rgba(74,40,24,0.9);}
.hy-msg-lost .hy-msg-tag::after{content:"信 使 失 踪";}
.hy-msg-lost .hy-letter{filter:grayscale(70%);opacity:0.58;}
/* 笺札·丹界 */
.hy-letter{max-width:94%;padding:16px 22px 18px 42px;background-color:#f0e4c8;background-image:linear-gradient(to right,transparent 24px,rgba(192,64,48,0.35) 24px,rgba(192,64,48,0.35) 25px,transparent 26px,transparent 30px,rgba(192,64,48,0.15) 30px,rgba(192,64,48,0.15) 31px,transparent 32px),repeating-linear-gradient(0deg,transparent 0,transparent 31px,rgba(139,90,50,0.1) 31px,rgba(139,90,50,0.1) 32px),radial-gradient(ellipse at 30% 20%,rgba(184,154,83,0.08),transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(139,90,50,0.06),transparent 50%);background-size:auto,auto,100% 100%,100% 100%;border:1px solid rgba(107,60,40,0.25);border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,0.4);color:#2a1810;font-family:var(--font-serif);font-size:14px;line-height:32px;position:relative;}
.hy-letter .header{display:flex;align-items:center;gap:10px;padding-bottom:8px;margin-bottom:10px;border-bottom:1px dotted rgba(107,60,40,0.3);font-size:15.5px;color:#6b4030;letter-spacing:0.1em;font-family:var(--font-serif);flex-wrap:wrap;}
.hy-letter .type-pill{padding:2px 8px;border:1px solid currentColor;border-radius:2px;font-size:14.5px;background:rgba(192,64,48,0.04);}
.hy-letter .date{margin-left:auto;font-size:15px;color:#8a5a40;font-style:italic;}
.hy-letter .body{text-indent:2em;color:#1a1410;}
.hy-letter .signature{margin-top:10px;text-align:right;font-size:12px;color:#6b4030;font-style:italic;font-family:var(--font-serif);letter-spacing:0.1em;}
.hy-letter .reply{margin-top:12px;padding:10px 12px;background:rgba(192,64,48,0.04);border-left:3px double var(--vermillion-600);font-size:13px;font-style:italic;color:#8f3428;line-height:1.9;}
.hy-letter .reply-label{font-size:14.5px;color:#8f3428;letter-spacing:0.25em;margin-bottom:4px;font-family:var(--font-serif);font-style:normal;display:flex;align-items:center;gap:6px;}
.hy-letter .reply-label::before{content:"";width:10px;height:10px;background:radial-gradient(circle,var(--vermillion-400),var(--vermillion-600));border-radius:50%;display:inline-block;}
.hy-letter .seal{position:absolute;bottom:16px;right:16px;width:46px;height:46px;border-radius:3px;display:flex;align-items:center;justify-content:center;color:rgba(244,234,221,0.95);font-size:13px;font-family:var(--font-serif);transform:rotate(-4deg);letter-spacing:0.08em;line-height:1;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,0.2);opacity:0.88;}
.hy-letter .seal.secret{background:rgba(140,40,30,0.9);}
.hy-letter .seal.military{background:rgba(74,40,24,0.9);color:rgba(201,160,69,0.95);}
.hy-letter .seal.personal{background:rgba(74,122,95,0.88);}
.hy-intercept-imply{margin-top:6px;padding:6px 10px;font-size:14.5px;color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);border-left:2px solid var(--amber-400,#c9a045);border-radius:2px;font-style:italic;}
/* 空 */
.hy-hist-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:14px;letter-spacing:0.15em;min-height:220px;}
.hy-hist-empty::before{content:"✉";display:block;color:var(--gold-400);font-size:36px;margin-bottom:10px;opacity:0.5;}
/* 撰写区 */
.hy-compose-area{padding:14px 16px;background-color:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--gold-d);border-radius:3px;}
.hy-compose-title{font-family:var(--font-serif);font-size:13px;letter-spacing:0.25em;color:var(--gold-400);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.hy-compose-title::before{content:"❖";font-size:14px;opacity:0.6;}
.hy-compose-title .target{font-size:15px;color:var(--celadon-400);letter-spacing:0.08em;margin-left:auto;font-family:var(--font-song,"SimSun");}
.hy-compose-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.hy-compose-row > select{flex:1;min-width:120px;padding:6px 10px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12.5px;border-radius:2px;letter-spacing:0.05em;cursor:pointer;}
.hy-compose-row > select:hover{border-color:var(--gold-d);}
.hy-compose-paper{width:100%;padding:14px 18px;min-height:110px;background-color:#ebddc0;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 32px,rgba(139,90,50,0.15) 32px,rgba(139,90,50,0.15) calc(32px + 1px));border:1px solid rgba(139,90,50,0.3);border-radius:2px;color:#2a1810;font-family:var(--font-serif);font-size:14px;line-height:32px;resize:vertical;outline:none;box-shadow:inset 0 0 10px rgba(139,90,50,0.08);text-indent:2em;}
.hy-compose-paper::placeholder{color:rgba(74,40,24,0.4);font-style:italic;}
.hy-compose-bot{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;margin-bottom:180px;}
.hy-compose-hint{font-size:14.5px;color:var(--ink-300);flex:1;text-align:left;letter-spacing:0.05em;font-style:italic;}
.hy-send-btn{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600));color:#f4eadd;border:1px solid var(--vermillion-600);padding:8px 28px;font-family:var(--font-serif);font-size:14px;letter-spacing:0.3em;border-radius:2px;cursor:pointer;box-shadow:0 1px 3px rgba(140,40,30,0.4),inset 0 1px 0 rgba(255,255,255,0.1);position:relative;transition:all 0.2s;}
.hy-send-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(140,40,30,0.5);}
.hy-send-btn::before{content:"❖";margin-right:6px;opacity:0.7;}
.gir{display:flex;gap:0.5rem;}.gir textarea{flex:1;resize:none;background:var(--bg-3);border:1px solid var(--bdr);border-radius:8px;padding:0.55rem 0.8rem;color:var(--txt);font-family:inherit;font-size:0.88rem;min-height:40px;}
.gir textarea:focus{outline:none;border-color:var(--gold-d);}
.gsn{width:40px;height:40px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--gold-d),var(--gold));cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.gsn svg{width:16px;height:16px;fill:var(--bg-0);}

/* 奏疏 */
/* 奏疏卡片（折叠奏章感） */
.memorial-card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);border-left:3px solid var(--gold-500);box-shadow:var(--shadow-xs);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);}
.memorial-card:hover{border-left-color:var(--gold-400);box-shadow:var(--shadow-sm),var(--shadow-gold);}
.memorial-card:hover{border-color:rgba(201,168,76,0.3);box-shadow:var(--shadow-md);}
.memorial-from{font-size:0.82rem;color:var(--gold-l);font-weight:700;}
.memorial-card input[placeholder*="朱笔"]{color:var(--red);font-style:italic;}
.memorial-card input[placeholder*="朱笔"]::placeholder{color:rgba(192,57,43,0.35);}
.memorial-content{font-size:0.85rem;color:var(--txt-s);line-height:1.7;margin:0.4rem 0;white-space:pre-wrap;}
.memorial-actions{display:flex;gap:0.3rem;}
.memorial-approve{padding:0.25rem 0.6rem;border:none;border-radius:4px;background:rgba(39,174,96,0.2);color:var(--green);cursor:pointer;font-size:0.75rem;font-family:inherit;}
.memorial-reject{padding:0.25rem 0.6rem;border:none;border-radius:4px;background:rgba(192,57,43,0.15);color:var(--red);cursor:pointer;font-size:0.75rem;font-family:inherit;}

/* 问对 */
.wendui-msg{margin-bottom:0.8rem;animation:fi 0.3s ease;}
.wendui-npc{display:flex;gap:0.6rem;}
.wendui-npc-bubble{background:var(--bg-3);border:1px solid var(--bdr);border-radius:3px 10px 10px 10px;padding:0.5rem 0.8rem;max-width:80%;font-size:0.85rem;line-height:1.6;}
.wendui-npc-name{font-size:0.72rem;color:var(--gold);margin-bottom:0.15rem;}
.wendui-player{display:flex;justify-content:flex-end;}
.wendui-player-bubble{background:rgba(41,128,185,0.15);border-radius:10px 3px 10px 10px;padding:0.5rem 0.8rem;max-width:80%;font-size:0.85rem;color:#b0d4e8;}
.wendui-char-btn{padding:0.3rem 0.6rem;border:1px solid var(--bdr);background:var(--bg-3);color:var(--txt-s);border-radius:14px;cursor:pointer;font-size:0.78rem;font-family:inherit;}
.wendui-char-btn.active{border-color:var(--gold);color:var(--gold);}
.wendui-mode-btn{background:var(--bg-3);border:1px solid var(--bdr);color:var(--txt-d);border-radius:14px;cursor:pointer;font-family:inherit;transition:all 0.2s;}
.wendui-mode-btn.active{border-color:var(--gold-d);color:var(--gold-l);background:var(--bg-2);}

/* 昏君活动 */
.tyrant-act-btn{padding:0.2rem 0.5rem;background:var(--bg-3);border:1px solid var(--bg-4);border-radius:8px;font-size:0.72rem;color:var(--txt-s);cursor:pointer;transition:all 0.2s;font-family:inherit;}
.tyrant-act-btn:hover{background:var(--bg-4);border-color:var(--gold-d);color:var(--gold-l);}
.tyrant-act-btn.selected{background:rgba(192,57,43,0.15);border-color:var(--red);color:var(--red);}

/* 昏君风味文本 */
.tyrant-flavor{padding:0.6rem 0.8rem;background:linear-gradient(135deg,rgba(142,68,173,0.08),rgba(192,57,43,0.08));border-radius:8px;border-left:3px solid var(--purple,#9b59b6);margin-bottom:0.5rem;font-size:0.82rem;color:var(--txt-s);line-height:1.8;font-style:italic;}
.tyrant-flavor .tyrant-flavor-title{font-style:normal;font-weight:700;color:var(--gold-l);font-size:0.85rem;margin-bottom:0.2rem;}

/* 家谱树 */
.fam-tree{margin-bottom:0.8rem;padding:0.6rem;background:var(--bg-2);border-radius:8px;border:1px solid var(--bdr);overflow-x:auto;}
.fam-tree-title{font-weight:600;color:var(--gold);font-size:0.85rem;margin-bottom:0.5rem;display:flex;justify-content:space-between;align-items:center;}
.fam-tree-gen{display:flex;justify-content:center;gap:1rem;margin-bottom:0.2rem;}
.fam-tree-node{text-align:center;min-width:3rem;padding:0.2rem;}
.fam-tree-name{cursor:pointer;color:var(--blue);font-size:0.75rem;display:block;}
.fam-tree-name:hover{text-decoration:underline;}
.fam-tree-name.current{color:var(--gold);font-weight:700;}
.fam-tree-name.dead{color:var(--txt-d);text-decoration:line-through;}
.fam-tree-name.spouse-node{color:#e84393;}
.fam-tree-role{font-size:0.66rem;color:var(--txt-d);display:block;}
.fam-tree-conn{text-align:center;color:var(--bdr);font-size:0.7rem;line-height:1;}
.fam-tree-renown{font-size:0.72rem;color:var(--txt-s);}

/* 官职树 */
.office-node{margin-left:1.5rem;position:relative;}
.office-node::before{content:"";position:absolute;left:-1rem;top:0;bottom:0;width:1px;background:var(--bdr);}
.office-node::after{content:"";position:absolute;left:-1rem;top:1.2rem;width:1rem;height:1px;background:var(--bdr);}
.office-root{margin-left:0;}.office-root::before,.office-root::after{display:none;}
.office-header{display:flex;align-items:center;justify-content:space-between;padding:0.4rem 0.7rem;background:var(--bg-3);border:1px solid var(--bdr);border-radius:5px;margin-bottom:0.4rem;cursor:pointer;font-size:0.85rem;}
.office-header:hover{border-color:var(--gold-d);}
.office-expand{border:none;background:transparent;color:var(--txt-d);cursor:pointer;font-size:0.9rem;padding:0 0.3rem;font-family:inherit;}
.office-detail{background:var(--bg-2);border:1px solid var(--bdr);border-radius:5px;padding:0.6rem;margin-bottom:0.5rem;display:none;font-size:0.82rem;}
.office-children{padding-left:0.5rem;}

/* 编年（旧·保留兼容） */
.timeline-item{display:flex;gap:0.6rem;margin-bottom:0.6rem;padding-bottom:0.6rem;border-bottom:1px solid rgba(42,42,62,0.3);}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--gold);flex-shrink:0;margin-top:0.3rem;}
.timeline-dot.active{background:var(--green);}
.timeline-dot.done{background:var(--txt-d);}
.timeline-progress{height:3px;background:var(--bg-0);border-radius:2px;margin-top:0.3rem;overflow:hidden;}
.timeline-progress-fill{height:100%;background:var(--green);border-radius:2px;}

/* ═════════ 编年标签页·美化版（.bn-*）═════════ */
.bn-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);}
.bn-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.bn-inner{position:relative;z-index:1;}
.bn-title{text-align:center;margin-bottom:24px;position:relative;padding:14px 0 18px;}
.bn-title::before,.bn-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.bn-title::before{top:0;}
.bn-title::after{bottom:0;}
.bn-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.bn-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.bn-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

/* 区块标题 */
.bn-section-hdr{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-top:8px;flex-wrap:wrap;}
.bn-section-hdr .tag{font-family:var(--font-serif);font-size:15px;letter-spacing:0.25em;padding:5px 18px 6px;background:linear-gradient(to bottom,rgba(157,130,68,0.12),rgba(157,130,68,0.03));border-top:1px solid var(--gold-400);border-bottom:1px solid var(--gold-400);color:var(--color-foreground);flex-shrink:0;}
.bn-section-hdr .tag::before,.bn-section-hdr .tag::after{content:"❖";color:var(--gold-400);font-size:15px;margin:0 7px;opacity:0.65;}
.bn-section-hdr .desc{font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.08em;font-style:italic;}
.bn-section-hdr .stat{margin-left:auto;font-size:15px;color:var(--gold-400);font-family:var(--font-serif);padding:3px 10px;border:1px solid var(--gold-d);border-radius:2px;letter-spacing:0.1em;}

/* 长期事势容器 */
.bn-tracks-wrap{padding:16px 18px 18px;background:rgba(26,21,16,0.4);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px double var(--gold-d);border-radius:3px;box-shadow:inset 0 2px 8px rgba(0,0,0,0.3);margin-bottom:24px;}
.bn-track-group{margin-bottom:14px;}
.bn-track-group:last-child{margin-bottom:0;}
.bn-track-group-hdr{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:5px 10px 6px;background:linear-gradient(to right,rgba(var(--cat-rgb,184,154,83),0.12),transparent);border-left:3px solid var(--cat-color,var(--gold-400));border-radius:0 2px 2px 0;}
.bn-track-group-hdr .icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cat-color,var(--gold-400)),var(--ink-100,#3d342a));color:#f4eadd;font-family:var(--font-serif);font-size:12px;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,0.4);flex-shrink:0;}
.bn-track-group-hdr .name{font-family:var(--font-serif);font-size:13.5px;color:var(--cat-color,var(--gold-400));letter-spacing:0.18em;}
.bn-track-group-hdr .count{margin-left:auto;font-size:15px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;}

/* 类型色变量 */
.bn-cat-keju{--cat-color:var(--gold-400);--cat-rgb:184,154,83;}
.bn-cat-edict{--cat-color:var(--vermillion-400);--cat-rgb:184,71,56;}
.bn-cat-project{--cat-color:var(--celadon-400);--cat-rgb:106,154,127;}
.bn-cat-memorial{--cat-color:var(--amber-400,#c9a045);--cat-rgb:201,160,69;}
.bn-cat-faction{--cat-color:var(--purple-400,#8e6aa8);--cat-rgb:142,106,168;}
.bn-cat-npc{--cat-color:var(--indigo-400,#5a6fa8);--cat-rgb:90,111,168;}
.bn-cat-tingyi{--cat-color:var(--amber-400,#c9a045);--cat-rgb:201,160,69;}
.bn-cat-dynasty{--cat-color:var(--gold-d);--cat-rgb:107,90,48;}

/* 单条事势卡 */
.bn-track{position:relative;padding:12px 14px 14px 18px;margin-bottom:8px;margin-left:8px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--cat-color,var(--gold-d));border-radius:3px;transition:all 0.25s;}
.bn-track:hover{border-color:var(--gold-400);box-shadow:0 2px 8px rgba(0,0,0,0.3),0 0 6px rgba(184,154,83,0.12);}
.bn-track:last-child{margin-bottom:0;}
.bn-track.priority-high{box-shadow:0 0 0 1px var(--vermillion-400),0 1px 3px rgba(0,0,0,0.3);border-left-color:var(--vermillion-400);}
.bn-track.priority-high::after{content:"";position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle at top right,rgba(192,64,48,0.08),transparent 70%);pointer-events:none;}
.bn-track-hdr{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap;}
.bn-track-title{font-family:var(--font-serif);font-size:14px;color:var(--color-foreground);letter-spacing:0.1em;font-weight:500;}
.bn-track-prio{font-size:14.5px;padding:1px 7px 2px;border-radius:2px;font-family:var(--font-serif);color:var(--vermillion-400);background:rgba(192,64,48,0.1);border:1px solid var(--vermillion-400);letter-spacing:0.1em;}
.bn-track-hidden{font-size:14.5px;padding:1px 7px 2px;border-radius:2px;font-family:var(--font-serif);color:var(--ink-300,#6b5d47);background:rgba(107,93,71,0.1);border:1px dashed var(--ink-300,#6b5d47);letter-spacing:0.1em;}
.bn-track-meta{font-size:15.5px;color:var(--gold-d);margin-bottom:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bn-track-meta .sep{color:var(--ink-300,#6b5d47);opacity:0.5;}
.bn-track-meta .stage{color:var(--cat-color,var(--gold-400));font-family:var(--font-serif);letter-spacing:0.1em;}
.bn-track-meta .elapsed{color:var(--color-foreground-muted);}
.bn-track-meta .remaining{color:var(--amber-400,#c9a045);font-style:italic;}
.bn-track-narr{font-size:12.5px;color:var(--color-foreground);line-height:1.75;margin:6px 0 4px;padding-left:10px;border-left:1px dashed var(--color-border-subtle);font-family:var(--font-serif);letter-spacing:0.02em;}
.bn-track-stake{font-size:15px;color:var(--color-foreground-muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.bn-track-stake .lbl{color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.1em;margin-right:2px;}
.bn-track-stake .chip{font-size:14.5px;padding:1px 8px;background:rgba(184,154,83,0.08);border:1px solid var(--color-border-subtle);border-radius:2px;color:var(--color-foreground);font-family:var(--font-serif);letter-spacing:0.05em;}
.bn-track-bar{margin-top:8px;height:4px;background:rgba(107,93,71,0.2);border-radius:2px;position:relative;overflow:hidden;}
.bn-track-bar-fill{height:100%;background:linear-gradient(to right,var(--cat-color,var(--gold-400)),rgba(var(--cat-rgb,184,154,83),0.75));border-radius:2px;transition:width 0.4s;position:relative;}
.bn-track-bar-fill::after{content:"";position:absolute;right:0;top:-2px;width:2px;height:8px;background:var(--cat-color);border-radius:1px;box-shadow:0 0 4px rgba(255,255,255,0.3);}
.bn-track-pct{font-size:14px;color:var(--color-foreground-muted);margin-top:3px;text-align:right;letter-spacing:0.05em;}

/* 检索·筛选栏 */
.bn-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;flex-wrap:wrap;}
.bn-tools-label{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.15em;flex-shrink:0;}
.bn-search-wrap{position:relative;flex:1;min-width:180px;max-width:380px;}
.bn-search-wrap::before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.bn-search{width:100%;padding:6px 12px 6px 30px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12.5px;border-radius:2px;outline:none;}
.bn-search:focus{border-color:var(--gold-400);box-shadow:0 0 0 1px rgba(184,154,83,0.25);}
.bn-filter{padding:6px 14px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12.5px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.bn-export-btn{padding:6px 16px;background:linear-gradient(to bottom,rgba(184,154,83,0.12),rgba(184,154,83,0.03));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;transition:all 0.2s;}
.bn-export-btn:hover{background:rgba(184,154,83,0.15);border-color:var(--gold-400);}
.bn-tools-stat{margin-left:auto;font-size:15px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;font-family:var(--font-serif);}
.bn-tools-stat .n{color:var(--gold-400);font-weight:500;}

/* 史册容器 */
.bn-chronicle-wrap{padding:20px 22px 22px;background:rgba(244,234,221,0.015);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--gold-d);border-radius:3px;position:relative;}
.bn-chronicle-wrap::before{content:"";position:absolute;left:-1px;top:20px;bottom:20px;width:3px;background:linear-gradient(to bottom,var(--gold-400),var(--gold-d),var(--gold-400));border-radius:2px;}

/* 年块 */
.bn-year-block{margin-bottom:20px;}
.bn-year-block:last-child{margin-bottom:0;}
.bn-year-summary{cursor:pointer;font-family:var(--font-serif);font-size:16px;letter-spacing:0.3em;color:var(--gold-400);padding:6px 0 8px;list-style:none;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--gold-d);margin-bottom:10px;}
.bn-year-summary::before{content:"▸";font-size:12px;color:var(--vermillion-400);transition:transform 0.25s;}
.bn-year-block[open] > .bn-year-summary::before{transform:rotate(90deg);}
.bn-year-summary::-webkit-details-marker{display:none;}
.bn-year-summary .count{margin-left:auto;font-size:15px;color:var(--color-foreground-muted);font-weight:normal;letter-spacing:0.1em;padding:2px 8px;background:rgba(184,154,83,0.08);border-radius:2px;}

/* 季节分隔 */
.bn-season{display:inline-block;font-size:15px;color:var(--celadon-400);letter-spacing:0.3em;padding:1px 10px;margin:6px 0 4px 8px;background:rgba(106,154,127,0.06);border:1px solid var(--celadon-400);border-radius:2px;font-family:var(--font-serif);}

/* 单条史事 */
.bn-entry{position:relative;padding:9px 14px 10px 20px;margin-bottom:8px;margin-left:10px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.02) 2.5em,rgba(107,93,71,0.02) calc(2.5em + 1px));border-left:2px solid var(--entry-color,var(--ink-100,#3d342a));border-radius:0 2px 2px 0;transition:all 0.2s;}
.bn-entry:hover{background:rgba(184,154,83,0.04);border-left-color:var(--gold-400);}
.bn-entry::before{content:"";position:absolute;left:-6px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--entry-color,var(--gold-d));border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--entry-color,var(--gold-d));}
.bn-entry.cat-mil{--entry-color:var(--vermillion-400);}
.bn-entry.cat-pol{--entry-color:var(--indigo-400,#5a6fa8);}
.bn-entry.cat-eco{--entry-color:var(--gold-400);}
.bn-entry.cat-dip{--entry-color:var(--celadon-400);}
.bn-entry.cat-cult{--entry-color:var(--purple-400,#8e6aa8);}
.bn-entry.cat-nat{--entry-color:var(--amber-400,#c9a045);}
.bn-entry.cat-misc{--entry-color:var(--ink-300,#6b5d47);}
.bn-entry-hdr{display:flex;align-items:baseline;gap:8px;margin-bottom:3px;flex-wrap:wrap;}
.bn-entry-title{font-family:var(--font-serif);font-size:13.5px;color:var(--color-foreground);letter-spacing:0.08em;font-weight:500;}
.bn-entry-cat{font-size:14.5px;padding:1px 7px;color:var(--entry-color,var(--gold-400));background:rgba(184,154,83,0.06);border:1px solid currentColor;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;margin-left:auto;}
.bn-entry-date{font-size:15px;color:var(--gold-d);font-family:var(--font-serif);letter-spacing:0.05em;font-style:italic;}
.bn-entry-body{font-size:12.5px;color:var(--color-foreground);line-height:1.75;margin-top:4px;font-family:var(--font-serif);letter-spacing:0.02em;text-indent:2em;}

/* 空态 */
.bn-empty{text-align:center;padding:48px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;line-height:2;}
.bn-empty::before{content:"❖";display:block;color:var(--gold-400);font-size:32px;margin-bottom:12px;opacity:0.5;}

/* ═════════ 官制标签页·美化版 v2（.og-*）═════════ */
.og-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);}
.og-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.og-inner{position:relative;z-index:1;}
.og-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.og-title::before,.og-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.og-title::before{top:0;}
.og-title::after{bottom:0;}
.og-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.og-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.og-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

/* 区块标题 */
.og-section-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-top:6px;flex-wrap:wrap;}
.og-section-hdr .tag{font-family:var(--font-serif);font-size:15px;letter-spacing:0.25em;padding:5px 18px 6px;background:linear-gradient(to bottom,rgba(157,130,68,0.12),rgba(157,130,68,0.03));border-top:1px solid var(--gold-400);border-bottom:1px solid var(--gold-400);color:var(--color-foreground);flex-shrink:0;}
.og-section-hdr .tag::before,.og-section-hdr .tag::after{content:"❖";color:var(--gold-400);font-size:15px;margin:0 7px;opacity:0.65;}
.og-section-hdr .desc{font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.08em;font-style:italic;}
.og-section-hdr .act{margin-left:auto;display:flex;gap:8px;}
.og-hdr-btn{padding:5px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.15),rgba(184,154,83,0.05));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;transition:all 0.2s;}
.og-hdr-btn:hover{background:rgba(184,154,83,0.2);border-color:var(--gold-400);}
.og-hdr-btn::before{content:"❖";margin-right:4px;opacity:0.7;font-size:14px;}
.og-hdr-btn.primary{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;border-color:var(--vermillion-600,#8f3428);}
.og-hdr-btn.primary:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(140,40,30,0.4);}

/* 摘要卡·三栏 */
.og-summary-grid{display:grid;grid-template-columns:1.1fr 1.5fr 1fr;gap:12px;margin-bottom:16px;}
@media (max-width:900px){.og-summary-grid{grid-template-columns:1fr;}}
.og-summary-card{padding:12px 14px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--card-c,var(--gold-d));border-radius:3px;position:relative;}
.og-summary-card.c-count{--card-c:var(--gold-400);}
.og-summary-card.c-power{--card-c:var(--vermillion-400);}
.og-summary-card.c-cost{--card-c:var(--amber-400,#c9a045);}
.og-sc-label{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-bottom:8px;display:flex;align-items:center;gap:4px;}
.og-sc-label::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--card-c);}
.og-cnt-row{display:flex;gap:14px;margin-bottom:8px;flex-wrap:wrap;}
.og-cnt-row:last-child{margin-bottom:0;}
.og-cnt-box{text-align:center;}
.og-cnt-num{font-family:var(--font-serif);font-size:24px;font-weight:700;color:var(--num-c,var(--color-foreground));letter-spacing:0.05em;line-height:1;}
.og-cnt-num.warn{color:var(--vermillion-400);}
.og-cnt-num.good{color:var(--celadon-400);}
.og-cnt-num.mid{color:var(--gold-400);}
.og-cnt-lbl{font-size:14.5px;color:var(--ink-300,#6b5d47);letter-spacing:0.15em;margin-top:3px;font-family:var(--font-serif);}
.og-fac-bar{height:14px;border-radius:3px;overflow:hidden;display:flex;margin-bottom:6px;border:1px solid var(--color-border-subtle);box-shadow:inset 0 1px 2px rgba(0,0,0,0.3);}
.og-fac-bar > div{min-width:3px;}
.og-fac-bar > div:not(:last-child){border-right:1px solid rgba(0,0,0,0.2);}
.og-fac-legend{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:14.5px;}
.og-fac-chip{display:flex;align-items:center;gap:4px;color:var(--color-foreground-muted);}
.og-fac-chip .sw{display:inline-block;width:10px;height:10px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,0.3);}
.og-cost-main{font-family:var(--font-serif);font-size:20px;color:var(--amber-400,#c9a045);letter-spacing:0.08em;margin-bottom:4px;}
.og-cost-main .unit{font-size:12px;color:var(--ink-300,#6b5d47);margin-left:2px;letter-spacing:0.15em;}
.og-cost-theory{font-size:15px;color:var(--ink-300,#6b5d47);}
.og-cost-theory .v{color:var(--gold-d);}

/* 预警条 */
.og-alerts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.og-alert{flex:1;min-width:240px;padding:10px 14px;background:rgba(192,64,48,0.06);border:1px dashed var(--alert-c,var(--vermillion-400));border-left:3px solid var(--alert-c,var(--vermillion-400));border-radius:3px;display:flex;align-items:center;gap:10px;font-size:12px;}
.og-alert.warn{--alert-c:var(--amber-400,#c9a045);background:rgba(201,160,69,0.06);}
.og-alert.info{--alert-c:var(--celadon-400);background:rgba(106,154,127,0.06);}
.og-alert .ic{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--alert-c),var(--ink-100,#3d342a));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:14px;font-weight:bold;flex-shrink:0;box-shadow:0 1px 2px rgba(0,0,0,0.4);}
.og-alert .lbl{color:var(--alert-c);letter-spacing:0.1em;font-family:var(--font-serif);font-weight:500;margin-right:4px;}
.og-alert .txt{flex:1;color:var(--color-foreground);line-height:1.5;}

/* 树顶工具栏 */
.og-tree-topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:10px;}
.og-tree-topbar .title-bar{font-family:var(--font-serif);font-size:12.5px;color:var(--gold-400);letter-spacing:0.2em;padding-right:8px;border-right:1px solid var(--color-border-subtle);}
.og-filter-group{display:flex;gap:3px;}
.og-filter-btn{padding:3px 10px;font-size:15px;background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.08em;cursor:pointer;border-radius:2px;}
.og-filter-btn.active{background:linear-gradient(to bottom,rgba(184,154,83,0.15),rgba(184,154,83,0.05));border-color:var(--gold-400);color:var(--gold-400);}
.og-filter-btn:hover{color:var(--gold-400);}
.og-tree-tools-right{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:14.5px;color:var(--ink-300,#6b5d47);}
.og-zoom-group{display:flex;gap:2px;}
.og-zoom-btn{width:22px;height:22px;padding:0;font-size:13px;background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);border-radius:2px;cursor:pointer;line-height:20px;}
.og-zoom-btn:hover{color:var(--gold-400);border-color:var(--gold-400);}

/* 树框 */
.og-tree-frame{position:relative;border:1px solid var(--gold-d);border-radius:3px;background:linear-gradient(to bottom,rgba(74,40,24,0.15),transparent 80px),var(--color-background,#1a1510);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(107,93,71,0.04) 40px,rgba(107,93,71,0.04) 41px,transparent 41px,transparent 80px),radial-gradient(ellipse at center,rgba(184,154,83,0.02) 0%,rgba(0,0,0,0.25) 100%);background-size:80px 40px,auto;min-height:560px;overflow:hidden;cursor:grab;box-shadow:inset 0 2px 12px rgba(0,0,0,0.4);}
.og-tree-frame::before,.og-tree-frame::after{content:"";position:absolute;width:16px;height:16px;border:1.5px solid var(--gold-400);z-index:5;opacity:0.5;pointer-events:none;}
.og-tree-frame::before{top:4px;left:4px;border-right:none;border-bottom:none;}
.og-tree-frame::after{bottom:4px;right:4px;border-left:none;border-top:none;}
.og-tree-hint{position:absolute;top:10px;right:14px;font-size:11px;color:var(--ink-300,#6b5d47);font-style:italic;z-index:3;background:rgba(26,21,16,0.75);padding:4px 10px;border-radius:2px;letter-spacing:0.15em;pointer-events:none;}
.og-tree-hint .sep{color:var(--gold-d);margin:0 6px;opacity:0.4;}
.og-tree-canvas{position:absolute;transform-origin:0 0;left:0;top:0;}
/* 官制·筛选条 */
.og-filter-bar{display:flex;gap:8px;margin:0 0 10px;padding:6px 10px;background:linear-gradient(to right,rgba(26,21,16,0.6),rgba(26,21,16,0.35));border:1px solid var(--color-border-subtle);border-radius:3px;align-items:center;}
.og-fb-btn{background:transparent;border:1px solid var(--color-border-subtle);color:var(--txt-d);font-size:13px;padding:4px 12px;border-radius:2px;cursor:pointer;letter-spacing:0.08em;font-family:var(--font-serif);transition:all 0.2s;display:inline-flex;align-items:center;gap:6px;}
.og-fb-btn:hover{border-color:var(--gold-400);color:var(--gold-300,#c9a85f);}
.og-fb-btn.active{background:rgba(184,154,83,0.14);border-color:var(--gold-400);color:var(--gold-300,#c9a85f);box-shadow:inset 0 0 0 1px rgba(184,154,83,0.2);}
.og-fb-btn.empty:hover,.og-fb-btn.empty.active{border-color:var(--vermillion-400);color:var(--vermillion-400);background:rgba(192,64,48,0.1);}
.og-fb-btn.filled:hover,.og-fb-btn.filled.active{border-color:var(--celadon-400);color:var(--celadon-400);background:rgba(107,176,124,0.08);}
.og-fb-n{font-weight:700;font-size:0.9em;min-width:18px;text-align:center;}
.og-fb-title{font-size:13px;font-weight:700;color:var(--gold-300,#c9a85f);letter-spacing:0.25em;padding-right:12px;border-right:1px solid var(--color-border-subtle);margin-right:8px;white-space:nowrap;}
.og-fb-search{flex:1;max-width:240px;padding:5px 12px;font-size:12px;background:var(--bg-1,#1a1510);border:1px solid var(--color-border-subtle);border-radius:2px;color:var(--color-foreground);font-family:var(--font-serif);margin-left:8px;}
.og-fb-search:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 2px rgba(184,154,83,0.15);}
.og-fb-stats{font-size:12px;color:var(--ink-300,#7a6e54);letter-spacing:0.1em;white-space:nowrap;margin-left:auto;}
/* 官制·三朝 tab + 二级分类 tab (v10) */
.og-court-tabs{display:flex;gap:6px;margin-bottom:-1px;position:relative;z-index:2;}
.og-court-tab{flex:1;padding:11px 14px;background:rgba(26,21,16,0.7);border:1px solid var(--color-border-subtle);border-bottom:none;border-radius:3px 3px 0 0;cursor:pointer;position:relative;text-align:center;font-family:var(--font-serif);display:flex;flex-direction:column;gap:2px;align-items:center;transition:all 0.22s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1));}
.og-court-tab:hover{background:rgba(42,36,28,0.85);border-color:var(--gold-600,#8c7440);}
.og-court-tab.active{background:linear-gradient(to bottom,rgba(184,154,83,0.12),rgba(184,154,83,0.04));border-color:var(--gold-400);}
.og-court-tab.active::before{content:"";position:absolute;top:-1px;left:8px;right:8px;height:3px;background:linear-gradient(to right,transparent,var(--gold-400),transparent);}
.og-court-tab .og-tab-eyebrow{font-size:11px;color:var(--ink-300,#7a6e54);letter-spacing:0.35em;}
.og-court-tab .og-tab-title{font-size:15px;font-weight:700;color:var(--txt-d,#b0a285);letter-spacing:0.3em;}
.og-court-tab.active .og-tab-title{color:var(--gold-200,#e8d69a);}
.og-court-tab .og-tab-stats{font-size:11px;color:var(--ink-300,#7a6e54);letter-spacing:0.1em;display:flex;gap:10px;margin-top:2px;}
.og-court-tab .og-tab-stats b{color:var(--gold-300,#c9a85f);font-weight:600;}
.og-court-tab .og-vac-pip{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--vermillion-400,#c04030);margin-right:3px;vertical-align:middle;}

.og-subtabs-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(to bottom,rgba(42,36,28,0.7),rgba(26,21,16,0.5));border:1px solid var(--gold-400);border-top:none;border-bottom:1px dashed rgba(184,154,83,0.3);flex-wrap:wrap;position:relative;z-index:2;}
.og-subtabs-bar::before{content:"〔 分 类 〕";font-size:12px;color:var(--gold-500,#b89a53);letter-spacing:0.25em;padding-right:12px;border-right:1px solid var(--color-border-subtle);margin-right:4px;white-space:nowrap;opacity:0.85;}
.og-subtab{padding:4px 12px;font-size:12px;color:var(--txt-d,#b0a285);background:transparent;border:1px solid var(--color-border-subtle);border-radius:14px;cursor:pointer;letter-spacing:0.15em;font-family:var(--font-serif);display:inline-flex;align-items:center;gap:5px;transition:all 0.18s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1));}
.og-subtab:hover{color:var(--gold-300,#c9a85f);border-color:var(--gold-500,#b89a53);background:rgba(184,154,83,0.05);}
.og-subtab.active{color:var(--gold-100,#f4e8c5);background:linear-gradient(135deg,rgba(201,168,95,0.25),rgba(140,120,65,0.15));border-color:var(--gold-400);box-shadow:0 0 10px rgba(184,154,83,0.2);}
.og-subtab .og-subtab-n{font-size:11px;font-weight:700;padding:1px 6px;background:rgba(0,0,0,0.3);border-radius:9px;min-width:20px;text-align:center;font-variant-numeric:tabular-nums;}
.og-subtab.active .og-subtab-n{background:rgba(0,0,0,0.4);}
.og-subtab .og-subtab-vac-pip{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--vermillion-400,#c04030);animation:og-vacant-pulse 1.6s ease-in-out infinite;}
.og-subtab-desc{font-size:12px;color:var(--ink-300,#7a6e54);letter-spacing:0.15em;font-style:italic;margin-left:auto;padding-right:4px;max-width:320px;text-align:right;}

/* 群组横幅 (v10·嵌套树中间层) */
.og-node-group{position:absolute;background:linear-gradient(to bottom,rgba(201,168,95,0.14),rgba(140,120,65,0.06));border:1px solid rgba(201,168,95,0.4);border-radius:3px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:og-group-glow 4s ease-in-out infinite;z-index:2;}
.og-node-group::before{content:"";position:absolute;left:10px;right:10px;top:-1px;height:2px;background:linear-gradient(to right,transparent,var(--gold-400),transparent);}
.og-node-group::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:linear-gradient(to right,transparent,rgba(201,168,95,0.3),transparent);}
.og-node-group.theme-inner{background:linear-gradient(to bottom,rgba(155,126,184,0.16),rgba(100,80,140,0.06));border-color:rgba(180,152,207,0.4);}
.og-node-group.theme-inner::before{background:linear-gradient(to right,transparent,var(--purple-400,#9b7eb8),transparent);}
.og-node-group.theme-inner .og-group-name{color:var(--purple-300,#b498cf);text-shadow:0 0 8px rgba(155,126,184,0.25);}
.og-node-group.theme-inner .og-group-corner{border-color:var(--purple-400,#9b7eb8);}
.og-node-group.theme-region{background:linear-gradient(to bottom,rgba(90,111,168,0.16),rgba(60,80,130,0.06));border-color:rgba(90,111,168,0.4);}
.og-node-group.theme-region::before{background:linear-gradient(to right,transparent,var(--indigo-400,#5a6fa8),transparent);}
.og-node-group.theme-region .og-group-name{color:#8ba2cf;text-shadow:0 0 8px rgba(90,111,168,0.25);}
.og-node-group.theme-region .og-group-corner{border-color:var(--indigo-400,#5a6fa8);}
.og-group-left{display:flex;flex-direction:column;gap:2px;}
.og-group-name{font-size:17px;font-weight:700;color:var(--gold-100,#f4e8c5);letter-spacing:0.35em;text-shadow:0 0 8px rgba(201,168,95,0.2);white-space:nowrap;}
.og-group-desc{font-size:11px;color:var(--txt-d,#b0a285);letter-spacing:0.15em;font-style:italic;}
.og-group-stats{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--ink-300,#7a6e54);letter-spacing:0.1em;white-space:nowrap;}
.og-group-stats b{color:var(--gold-300,#c9a85f);font-weight:700;font-variant-numeric:tabular-nums;}
.og-group-stats .vac{color:var(--vermillion-300,#d97b6b);}
.og-group-stats .dept-count{color:var(--celadon-300,#94c4a3);}
.og-group-corner{position:absolute;width:8px;height:8px;border:1px solid var(--gold-500,#b89a53);opacity:0.45;pointer-events:none;}
.og-group-corner.tl{top:3px;left:3px;border-right:none;border-bottom:none;}
.og-group-corner.tr{top:3px;right:3px;border-left:none;border-bottom:none;}
.og-group-corner.bl{bottom:3px;left:3px;border-right:none;border-top:none;}
.og-group-corner.br{bottom:3px;right:3px;border-left:none;border-top:none;}
.og-group-wrapper{position:absolute;border:1px dashed rgba(184,154,83,0.18);border-radius:3px;background:rgba(201,168,95,0.02);pointer-events:none;z-index:0;}
.og-group-wrapper.theme-inner{border-color:rgba(155,126,184,0.2);background:rgba(155,126,184,0.02);}
.og-group-wrapper.theme-region{border-color:rgba(90,111,168,0.2);background:rgba(90,111,168,0.02);}
@keyframes og-group-glow{0%,100%{box-shadow:inset 0 0 20px rgba(201,168,95,0.08);}50%{box-shadow:inset 0 0 24px rgba(201,168,95,0.16);}}

/* ════════════ v10 部门/职位卡 — 复刻预览 preview-guanzhi-v10.html ════════════ */
/* 部门卡（简洁三行：name + desc + meta） */
.og-v10-dept{position:absolute;background:var(--color-surface,#241e18);border:1px solid rgba(107,176,124,0.3);border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,0.5);cursor:pointer;overflow:hidden;padding:10px 12px;display:flex;flex-direction:column;gap:4px;box-sizing:border-box;transition:all 0.22s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1));}
.og-v10-dept::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--celadon-400,#6ba97f),var(--celadon-500,#5a8f6e));}
.og-v10-dept:hover{border-color:var(--celadon-300,#94c4a3);transform:translateY(-1px);box-shadow:0 6px 20px rgba(107,176,124,0.2);}
.og-v10-dept.theme-inner{border-color:rgba(180,152,207,0.3);}
.og-v10-dept.theme-inner::before{background:linear-gradient(to bottom,var(--purple-400,#9b7eb8),#6a5080);}
.og-v10-dept.theme-inner .og-v10-dept-name{color:var(--purple-300,#b498cf);}
.og-v10-dept.theme-inner .og-v10-dept-seal{color:var(--purple-400,#9b7eb8);}
.og-v10-dept.theme-region{border-color:rgba(90,111,168,0.3);}
.og-v10-dept.theme-region::before{background:linear-gradient(to bottom,var(--indigo-400,#5a6fa8),var(--indigo-500,#3e4e77));}
.og-v10-dept.theme-region .og-v10-dept-name{color:#8ba2cf;}
.og-v10-dept.theme-region .og-v10-dept-seal{color:var(--indigo-400,#5a6fa8);}
.og-v10-dept-seal{position:absolute;top:6px;right:8px;font-size:22px;opacity:0.18;color:var(--celadon-400,#6ba97f);font-weight:700;pointer-events:none;}
.og-v10-dept-name{font-size:14px;font-weight:700;color:var(--celadon-300,#94c4a3);letter-spacing:0.1em;padding-left:4px;padding-right:30px;}
.og-v10-dept-desc{padding-left:4px;padding-right:30px;font-size:11px;color:var(--ink-300,#7a6e54);letter-spacing:0.05em;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.og-v10-dept-meta{padding-left:4px;font-size:11px;color:var(--txt-d,#b0a285);letter-spacing:0.1em;display:flex;gap:8px;align-items:center;margin-top:auto;}
.og-v10-dept-meta b{color:var(--gold-300,#c9a85f);font-weight:700;font-size:12px;}
.og-v10-dept-vac-pip{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--vermillion-400,#c04030);animation:og-vacant-pulse 1.6s ease-in-out infinite;}
.og-v10-dept-collapse{position:absolute;top:5px;right:4px;width:18px;height:18px;background:rgba(0,0,0,0.25);border:1px solid var(--color-border-subtle);color:var(--txt-d,#b0a285);font-size:10px;border-radius:2px;cursor:pointer;font-family:var(--font-serif);z-index:3;padding:0;line-height:16px;}
.og-v10-dept-collapse:hover{color:var(--gold-300,#c9a85f);border-color:var(--gold-400);background:rgba(0,0,0,0.5);}

/* 职位卡·通用 */
.og-v10-pos{position:absolute;background:linear-gradient(to bottom,var(--color-surface,#241e18),#2e261d);border:1px solid var(--color-border-subtle);border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,0.5);cursor:pointer;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;transition:all 0.22s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1));}
.og-v10-pos:hover{border-color:var(--gold-400);transform:translateY(-1px);box-shadow:0 6px 20px rgba(184,154,83,0.2);}
.og-v10-pos::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;pointer-events:none;}
.og-v10-pos.rank-top::before{background:linear-gradient(to bottom,#c04030,#8b2a1f);}
.og-v10-pos.rank-high::before{background:linear-gradient(to bottom,#c9a045,#9a7632);}
.og-v10-pos.rank-mid::before{background:linear-gradient(to bottom,#6ba97f,#4a7658);}
.og-v10-pos.rank-low::before{background:linear-gradient(to bottom,#5a6fa8,#3e4e77);}
.og-v10-rank-seal{display:inline-block;padding:2px 7px 2px 6px;background:linear-gradient(135deg,rgba(192,64,48,0.8),rgba(140,40,30,0.9));color:#fce8e1;font-size:10px;letter-spacing:0.08em;border-radius:2px;font-weight:600;position:relative;vertical-align:middle;font-family:var(--font-serif);flex-shrink:0;align-self:center;}
.og-v10-rank-seal::before{content:"";position:absolute;left:-2px;top:50%;width:4px;height:4px;background:rgba(192,64,48,0.5);border-radius:50%;transform:translateY(-50%);}
.og-v10-rank-seal.mid-lvl{background:linear-gradient(135deg,rgba(184,154,83,0.85),rgba(140,120,65,0.9));color:#fff7e0;}
.og-v10-rank-seal.mid-lvl::before{background:rgba(184,154,83,0.5);}
.og-v10-rank-seal.low-lvl{background:linear-gradient(135deg,rgba(107,93,71,0.9),rgba(75,65,50,0.95));color:#d4c49c;}
.og-v10-rank-seal.low-lvl::before{background:rgba(107,93,71,0.5);}

/* 派系绶带 */
.og-v10-party-ribbon{position:absolute;top:0;right:0;width:0;height:0;border-left:36px solid transparent;border-top:36px solid transparent;z-index:2;}
.og-v10-party-ribbon.dongin{border-top-color:rgba(155,126,184,0.65);}
.og-v10-party-ribbon.zhe{border-top-color:rgba(201,160,69,0.6);}
.og-v10-party-ribbon.yan{border-top-color:rgba(192,64,48,0.65);}
.og-v10-party-ribbon.qing{border-top-color:rgba(107,176,124,0.6);}
.og-v10-party-ribbon.kun{border-top-color:rgba(90,111,168,0.6);}
.og-v10-party-ribbon-label{position:absolute;top:4px;right:3px;font-size:11px;color:#1a1510;z-index:3;transform:rotate(45deg);transform-origin:right top;translate:-2px 7px;pointer-events:none;font-weight:700;}

/* 头部 */
.og-v10-pos-header{padding:9px 12px 6px 14px;border-bottom:1px solid rgba(107,93,71,0.15);}
.og-v10-pos-title-group{min-width:0;flex:1;}
.og-v10-pos-title{font-size:13px;font-weight:700;letter-spacing:0.05em;color:var(--color-foreground,#e8dcc4);margin-bottom:3px;display:flex;align-items:baseline;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;}
.og-v10-pos-sub{font-size:10px;color:var(--ink-300,#7a6e54);letter-spacing:0.05em;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.og-v10-pos-btn{padding:3px 10px;font-size:11px;background:linear-gradient(135deg,#c9a85f,#b89a53);color:#1a1510;border:none;border-radius:2px;cursor:pointer;font-weight:700;letter-spacing:0.15em;font-family:var(--font-serif);box-shadow:0 1px 3px rgba(0,0,0,0.3);white-space:nowrap;}
.og-v10-pos-btn:hover{background:linear-gradient(135deg,#d4b870,#c9a85f);box-shadow:0 2px 6px rgba(201,168,95,0.3);}
.og-v10-pos-btn.appoint{background:linear-gradient(135deg,#6ba97f,#5a8f6e);color:#0f0b07;}
.og-v10-pos-btn.appoint:hover{background:linear-gradient(135deg,#7ebd92,#6ba97f);}
.og-v10-pos-btn.impeach{background:linear-gradient(135deg,rgba(192,64,48,0.2),rgba(140,40,30,0.15))!important;border:1px solid rgba(192,64,48,0.55)!important;color:#d97b6b!important;padding:3px 8px;font-size:10.5px;}
.og-v10-pos-btn.impeach:hover{background:linear-gradient(135deg,rgba(217,123,107,0.3),rgba(192,64,48,0.2))!important;box-shadow:0 2px 6px rgba(192,64,48,0.3);}
/* 操作按钮·卡片底部独立行(解放标题·不再被挤成竖排·2026-07-01) */
.og-v10-pos-actions{display:flex;flex-wrap:wrap;gap:4px;padding:6px 10px 8px;border-top:1px solid rgba(107,93,71,0.15);margin-top:auto;}
.og-v10-pos-actions>button{flex:1 1 auto;min-width:0;margin-left:0 !important;padding:4px 6px;font-size:10.5px;letter-spacing:0.06em;text-align:center;}

/* 在任者行 */
.og-v10-pos-holder{padding:7px 10px;display:flex;gap:8px;align-items:center;}
.og-v10-pos-portrait{width:36px;height:36px;border-radius:2px;background:linear-gradient(135deg,#4a3e2e,#2e261d);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--gold-300,#c9a85f);border:1px solid rgba(184,154,83,0.2);flex-shrink:0;font-weight:700;position:relative;overflow:hidden;}
.og-v10-pos-portrait.rank-top-border{border:1.5px solid var(--gold-400);box-shadow:0 0 0 2px var(--color-surface,#241e18),0 0 0 3px var(--gold-400),0 0 10px rgba(184,154,83,0.35);}
.og-v10-tenure-ring{position:absolute;top:-4px;right:-4px;width:14px;height:14px;z-index:3;line-height:14px;text-align:center;font-size:9px;font-weight:700;color:var(--gold-300,#c9a85f);background:var(--color-surface,#241e18);border-radius:50%;border:1px solid var(--gold-500,#b89a53);}
.og-v10-pos-holder-info{flex:1;min-width:0;}
.og-v10-pos-holder-name{font-size:12px;font-weight:700;color:var(--color-foreground,#e8dcc4);display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;letter-spacing:0.05em;}
.og-v10-pos-holder-name .age{font-size:10px;color:var(--ink-300,#7a6e54);font-weight:400;}
.og-v10-pos-holder-name .courtesy{font-size:11px;color:var(--txt-d,#b0a285);font-weight:400;}
.og-v10-pos-holder-sub{font-size:10px;color:var(--txt-d,#b0a285);margin-top:1px;letter-spacing:0.05em;}
.og-v10-loyalty-mark{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:1px 5px;border-radius:2px;margin-left:auto;letter-spacing:0.05em;font-weight:600;flex-shrink:0;}
.og-v10-loyalty-mark.loyal{background:rgba(107,176,124,0.14);color:var(--celadon-300,#94c4a3);}
.og-v10-loyalty-mark.mid{background:rgba(201,160,69,0.14);color:var(--amber-400,#c9a045);}
.og-v10-loyalty-mark.danger{background:rgba(192,64,48,0.14);color:var(--vermillion-300,#d97b6b);}

/* 四维条 */
.og-v10-pos-stats{padding:0 10px 6px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:3px;}
.og-v10-stat-cell{display:flex;flex-direction:column;align-items:center;gap:1px;}
.og-v10-stat-lbl{font-size:9px;color:var(--ink-300,#7a6e54);letter-spacing:0.2em;}
.og-v10-stat-val{font-size:12px;font-weight:700;color:var(--color-foreground,#e8dcc4);font-variant-numeric:tabular-nums;line-height:1;}
.og-v10-stat-val.good{color:var(--celadon-300,#94c4a3);}
.og-v10-stat-val.warn{color:var(--amber-400,#c9a045);}
.og-v10-stat-val.bad{color:var(--vermillion-300,#d97b6b);}
.og-v10-stat-bar{width:100%;height:2px;background:rgba(107,93,71,0.2);border-radius:1px;overflow:hidden;}
.og-v10-stat-bar>div{height:100%;background:var(--txt-d,#b0a285);}
.og-v10-stat-bar .bg-good{background:var(--celadon-400,#6ba97f);}
.og-v10-stat-bar .bg-warn{background:var(--amber-400,#c9a045);}
.og-v10-stat-bar .bg-bad{background:var(--vermillion-400,#c04030);}

/* 任期+考评 */
.og-v10-pos-meta{padding:4px 10px 7px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--ink-300,#7a6e54);}
.og-v10-tenure{display:inline-flex;align-items:center;gap:4px;color:var(--txt-d,#b0a285);}
.og-v10-tenure b{color:var(--gold-300,#c9a85f);font-weight:700;}
.og-v10-evals{display:inline-flex;gap:3px;}
.og-v10-eval-dot{width:12px;height:12px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;}
.og-v10-eval-dot.up{background:rgba(107,176,124,0.2);color:var(--celadon-300,#94c4a3);}
.og-v10-eval-dot.mid{background:rgba(201,160,69,0.2);color:var(--amber-400,#c9a045);}
.og-v10-eval-dot.dn{background:rgba(192,64,48,0.2);color:var(--vermillion-300,#d97b6b);}

/* 态·空缺 */
.og-v10-pos.state-vacant{background:repeating-linear-gradient(45deg,var(--color-surface,#241e18) 0,var(--color-surface,#241e18) 10px,rgba(107,93,71,0.05) 10px,rgba(107,93,71,0.05) 20px);border-style:dashed;border-color:rgba(107,93,71,0.35);}
.og-v10-pos.state-vacant .og-v10-pos-title{color:var(--txt-d,#b0a285);}
.og-v10-pos.state-vacant .og-v10-pos-holder{padding:20px 10px;justify-content:center;color:var(--ink-300,#7a6e54);font-style:italic;font-size:12px;letter-spacing:0.3em;}
.og-v10-pos.state-vacant .og-v10-pos-holder::before{content:"〔 空 缺 · 待 补 〕";opacity:0.7;}
.og-v10-vacant-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--vermillion-400,#c04030);box-shadow:0 0 8px rgba(192,64,48,0.6);animation:og-vacant-pulse 1.6s ease-in-out infinite;z-index:1;}

/* 态·丁忧 */
.og-v10-pos.state-mourning{background:repeating-linear-gradient(0deg,rgba(217,208,187,0.02) 0,rgba(217,208,187,0.02) 2px,transparent 2px,transparent 6px),var(--color-surface,#241e18);border-color:rgba(217,208,187,0.3);opacity:0.88;}
.og-v10-pos.state-mourning::before{background:linear-gradient(to bottom,#7a7565,#4a4538) !important;}
.og-v10-mourn-badge{position:absolute;top:8px;right:8px;padding:1px 7px;font-size:10px;color:#d9d0bb;background:rgba(217,208,187,0.12);border:1px solid rgba(217,208,187,0.3);border-radius:2px;letter-spacing:0.2em;z-index:3;}
.og-v10-pos.state-mourning .og-v10-pos-holder-name{color:rgba(217,208,187,0.85);}
.og-v10-pos.state-mourning .og-v10-pos-portrait{filter:grayscale(0.7) brightness(0.7);}

/* 态·兼任 */
.og-v10-concurrent-stack{position:absolute;top:-3px;right:-3px;padding:2px 6px;background:linear-gradient(135deg,rgba(184,154,83,0.85),rgba(140,120,65,0.9));color:#1a1510;font-size:9px;font-weight:700;letter-spacing:0.15em;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,0.3);z-index:3;transform:rotate(5deg);}
.og-v10-concurrent-second{padding:3px 10px 6px;font-size:10px;color:var(--amber-400,#c9a045);display:flex;align-items:center;gap:6px;border-top:1px dashed rgba(201,168,95,0.25);background:rgba(201,168,95,0.04);}
.og-v10-concurrent-second::before{content:"⚙";color:var(--amber-400,#c9a045);font-size:11px;}
.og-v10-concurrent-second .lbl{color:var(--amber-400,#c9a045);font-weight:700;letter-spacing:0.2em;}

/* 态·告病 */
.og-v10-pos.state-sick{filter:saturate(0.55);}
.og-v10-pos.state-sick .og-v10-pos-portrait{filter:grayscale(0.5) brightness(0.75);}
.og-v10-sick-banner{padding:4px 10px;background:linear-gradient(to right,rgba(155,126,184,0.12),rgba(155,126,184,0.04));border-top:1px dashed rgba(155,126,184,0.3);font-size:10px;color:var(--purple-300,#b498cf);display:flex;align-items:center;gap:5px;letter-spacing:0.05em;}
.og-v10-sick-banner .lbl{color:var(--purple-300,#b498cf);font-weight:700;letter-spacing:0.2em;}

/* 态·权摄 */
.og-v10-pos.state-acting::before{background:repeating-linear-gradient(0deg,#c9a045 0,#c9a045 6px,transparent 6px,transparent 10px) !important;}
.og-v10-acting-stamp{position:absolute;top:38%;right:10px;padding:5px 8px;color:rgba(201,160,69,0.5);font-size:16px;font-weight:900;border:2px solid rgba(201,160,69,0.4);border-radius:2px;transform:rotate(-12deg);pointer-events:none;z-index:1;font-family:var(--font-serif);}
.og-v10-acting-note{padding:3px 10px 7px;font-size:10px;color:var(--amber-400,#c9a045);font-style:italic;border-top:1px dashed rgba(201,160,69,0.2);}

/* 态·赴任 */
.og-v10-transit-note{padding:4px 10px 7px;font-size:10px;color:var(--amber-400,#c9a045);display:flex;align-items:center;gap:5px;border-top:1px dashed rgba(201,168,95,0.2);background:rgba(201,168,95,0.03);}
.og-v10-transit-note::before{content:"↪";color:var(--amber-300,#e0b560);font-size:12px;}
.og-v10-transit-note b{color:var(--vermillion-300,#d97b6b);font-weight:700;}

/* 态·贬谪 */
.og-v10-pos.state-demoted{background:linear-gradient(135deg,transparent 48%,rgba(192,64,48,0.05) 49%,rgba(192,64,48,0.05) 51%,transparent 52%) 0 0/12px 12px,var(--color-surface,#241e18);filter:saturate(0.6);border-color:rgba(192,64,48,0.25);}
.og-v10-pos.state-demoted .og-v10-pos-portrait{filter:grayscale(0.4) brightness(0.7);}
.og-v10-pos.state-demoted .og-v10-pos-holder-name{color:var(--txt-d,#b0a285);text-decoration:line-through;text-decoration-color:rgba(192,64,48,0.5);}
.og-v10-demoted-tag{position:absolute;top:8px;right:8px;padding:2px 8px;background:rgba(192,64,48,0.15);border:1px solid rgba(192,64,48,0.4);color:var(--vermillion-300,#d97b6b);font-size:10px;letter-spacing:0.15em;border-radius:2px;z-index:3;font-weight:600;}

/* 态·致仕 */
.og-v10-pos.state-retire{background:linear-gradient(to bottom,rgba(201,160,69,0.06),var(--color-surface,#241e18) 60%);border-color:rgba(201,160,69,0.25);}
.og-v10-pos.state-retire .og-v10-pos-portrait{filter:sepia(0.4);}
.og-v10-retire-note{padding:3px 10px 7px;font-size:10px;color:var(--amber-400,#c9a045);border-top:1px dashed rgba(201,160,69,0.2);display:flex;align-items:center;gap:5px;}
.og-v10-retire-note::before{content:"⚘";color:var(--amber-300,#e0b560);font-size:12px;}

/* 待下诏书条 */
.og-v10-pos.has-pending{border-color:rgba(201,168,95,0.7)!important;box-shadow:0 0 0 1px rgba(201,168,95,0.35),0 2px 12px rgba(201,168,95,0.25)!important;animation:og-v10-draft-pulse 2.4s ease-in-out infinite;}
@keyframes og-v10-draft-pulse{0%,100%{box-shadow:0 0 0 1px rgba(201,168,95,0.35),0 2px 12px rgba(201,168,95,0.25);}50%{box-shadow:0 0 0 1px rgba(201,168,95,0.55),0 2px 18px rgba(201,168,95,0.4);}}
.og-v10-draft-stamp{position:absolute;top:6px;right:6px;width:26px;height:26px;line-height:24px;text-align:center;border:2px solid var(--gold-400,#c9a85f);border-radius:3px;color:var(--gold-400,#c9a85f);font-size:14px;font-weight:700;font-family:var(--font-serif);background:rgba(201,168,95,0.12);transform:rotate(-8deg);letter-spacing:0;z-index:5;box-shadow:0 1px 4px rgba(0,0,0,0.4);}
.og-v10-pos-holder-name.draft-name{color:var(--gold-300,#d4b870)!important;font-style:italic;}
.og-v10-draft-prefix{color:var(--gold-400,#c9a85f);font-weight:700;font-style:normal;letter-spacing:0.2em;}
.og-v10-pending-strip{padding:6px 10px;background:linear-gradient(to right,rgba(192,64,48,0.16),rgba(192,64,48,0.05));border-top:1px dashed rgba(192,64,48,0.4);display:flex;align-items:center;gap:6px;font-size:10px;position:relative;}
.og-v10-pending-strip::before{content:"";position:absolute;left:6px;top:-4px;width:8px;height:8px;background:var(--vermillion-400,#c04030);border-radius:50%;box-shadow:0 0 0 2px #2e261d;}
.og-v10-pending-lbl{color:var(--vermillion-300,#d97b6b);font-weight:700;letter-spacing:0.1em;white-space:nowrap;}
.og-v10-pending-txt{flex:1;color:var(--gold-300,#c9a85f);font-size:11px;}
.og-v10-pending-undo{padding:1px 7px;background:transparent;border:1px solid rgba(192,64,48,0.5);color:var(--vermillion-300,#d97b6b);font-size:10px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;font-family:var(--font-serif);}
.og-v10-pending-undo:hover{background:rgba(192,64,48,0.15);color:#ffb8a8;}

/* 缩放控件 */
.og-tree-zoom-ctrl{position:absolute;bottom:14px;left:14px;display:flex;gap:4px;z-index:10;}
.og-tree-zoom-ctrl button{width:28px;height:28px;background:rgba(42,36,28,0.85);border:1px solid var(--color-border-subtle);color:var(--gold-300,#c9a85f);font-family:var(--font-serif);font-weight:700;font-size:14px;border-radius:2px;cursor:pointer;line-height:1;padding:0;}
.og-tree-zoom-ctrl button:hover{background:rgba(60,50,38,0.95);border-color:var(--gold-400);}
.og-tree-zoom-ctrl .og-zoom-label{min-width:48px;padding:0 8px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--txt-d,#b0a285);background:rgba(42,36,28,0.85);border:1px solid var(--color-border-subtle);border-radius:2px;font-variant-numeric:tabular-nums;}

/* 官制·空缺徽标 */
.og-vacant-card{border-color:rgba(192,64,48,0.4) !important;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.022) 2.5em,rgba(107,93,71,0.022) calc(2.5em + 1px)),linear-gradient(to bottom,rgba(192,64,48,0.04),transparent 40%) !important;}
.og-vacant-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--vermillion-400,#c04030);box-shadow:0 0 0 2px rgba(26,21,16,0.8),0 0 8px rgba(192,64,48,0.6);z-index:4;animation:og-vacant-pulse 1.6s ease-in-out infinite;pointer-events:none;}
@keyframes og-vacant-pulse{0%,100%{opacity:0.75;transform:scale(1);}50%{opacity:1;transform:scale(1.25);}}
/* ════════ 官制·v2 视觉升级 ════════ */
/* 朱砂品级印 */
.og-rank-seal{display:inline-block;padding:2px 8px 2px 8px;background:linear-gradient(135deg,rgba(192,64,48,0.82),rgba(140,40,30,0.92));color:#fce8e1;font-size:11px;letter-spacing:0.1em;border-radius:2px;font-weight:600;font-family:var(--font-serif);box-shadow:0 1px 2px rgba(140,40,30,0.3),inset 0 1px 0 rgba(255,255,255,0.1);text-shadow:0 1px 0 rgba(0,0,0,0.2);position:relative;vertical-align:middle;margin-left:4px;}
.og-rank-seal.mid-lvl{background:linear-gradient(135deg,rgba(184,154,83,0.85),rgba(140,120,65,0.92));color:#fff7e0;box-shadow:0 1px 2px rgba(184,154,83,0.3);}
.og-rank-seal.low-lvl{background:linear-gradient(135deg,rgba(107,93,71,0.9),rgba(75,65,50,0.95));color:#d4c49c;}
/* 玉纹金边框·正一品/正二品 */
.og-portrait-imperial{border:1.5px solid var(--gold-400)!important;box-shadow:0 0 0 2px var(--bg-2,#1f1914),0 0 0 3px var(--gold-400),0 0 12px rgba(184,154,83,0.4);position:relative;}
.og-portrait-imperial::after{content:"";position:absolute;inset:-1px;background:linear-gradient(45deg,transparent 45%,rgba(184,154,83,0.3) 48%,rgba(201,168,95,0.4) 50%,rgba(184,154,83,0.3) 52%,transparent 55%) 0 0/14px 14px,linear-gradient(-45deg,transparent 45%,rgba(184,154,83,0.3) 48%,rgba(201,168,95,0.4) 50%,rgba(184,154,83,0.3) 52%,transparent 55%) 0 0/14px 14px;pointer-events:none;opacity:0.5;border-radius:inherit;}
/* 任期年轮 */
.og-tenure-ring{position:absolute;top:-4px;right:-4px;width:16px;height:16px;line-height:14px;text-align:center;font-size:10px;font-weight:700;color:var(--gold-300,#c9a85f);background:var(--color-surface,#241e18);border-radius:50%;border:1px solid var(--gold-500,#b89a53);z-index:3;font-variant-numeric:tabular-nums;letter-spacing:0;}
.og-pos-portrait{position:relative!important;}
/* ════════ 十二态职位卡 CSS ════════ */
/* 丁忧守制 */
.og-state-mourning{background:repeating-linear-gradient(0deg,rgba(217,208,187,0.02) 0,rgba(217,208,187,0.02) 2px,transparent 2px,transparent 6px),var(--color-surface)!important;border-color:rgba(217,208,187,0.3)!important;opacity:0.88;}
.og-state-mourning::before{background:linear-gradient(to bottom,#7a7565,#4a4538)!important;}
.og-state-mourning .og-pos-portrait{filter:grayscale(0.7) brightness(0.7);}
.og-mourn-badge{position:absolute;top:10px;right:10px;padding:2px 8px;font-size:11px;color:#d9d0bb;background:rgba(217,208,187,0.12);border:1px solid rgba(217,208,187,0.3);border-radius:2px;letter-spacing:0.2em;z-index:3;}
/* 兼任副职 */
.og-concurrent-stack{position:absolute;top:-3px;right:-3px;padding:2px 7px;background:linear-gradient(135deg,rgba(184,154,83,0.85),rgba(140,120,65,0.9));color:#1a1510;font-size:10px;font-weight:700;letter-spacing:0.12em;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,0.3);z-index:3;transform:rotate(5deg);}
.og-concurrent-second{padding:4px 14px 8px;font-size:11px;color:var(--amber-400,#c9a045);display:flex;align-items:center;gap:6px;letter-spacing:0.05em;border-top:1px dashed rgba(201,168,95,0.25);background:rgba(201,168,95,0.04);}
.og-concurrent-second::before{content:"⚙";color:var(--amber-400,#c9a045);font-size:12px;}
.og-concurrent-second .sec-lbl{color:var(--amber-400,#c9a045);font-weight:700;letter-spacing:0.2em;}
/* 告病 */
.og-state-sick{filter:saturate(0.55);}
.og-state-sick .og-pos-portrait{filter:grayscale(0.5) brightness(0.75);}
.og-sick-banner{padding:5px 14px;background:linear-gradient(to right,rgba(155,126,184,0.12),rgba(155,126,184,0.04));border-top:1px dashed rgba(155,126,184,0.3);font-size:11px;color:#b498cf;display:flex;align-items:center;gap:6px;letter-spacing:0.05em;}
.og-sick-banner .icon{font-size:13px;color:#b498cf;}
.og-sick-banner .sec-lbl{color:#b498cf;font-weight:700;letter-spacing:0.2em;}
/* 权摄代理 */
.og-state-acting::before{background:repeating-linear-gradient(0deg,#c9a045 0,#c9a045 6px,transparent 6px,transparent 10px)!important;}
.og-acting-stamp{position:absolute;top:38%;right:14px;padding:6px 10px;background:transparent;color:rgba(201,160,69,0.55);font-size:22px;letter-spacing:0.1em;font-weight:900;border:2px solid rgba(201,160,69,0.5);border-radius:2px;transform:rotate(-12deg);pointer-events:none;z-index:1;text-shadow:1px 1px 0 rgba(0,0,0,0.3);font-family:var(--font-serif);}
.og-acting-note{padding:4px 14px 8px;font-size:11px;color:var(--amber-400,#c9a045);font-style:italic;letter-spacing:0.05em;border-top:1px dashed rgba(201,160,69,0.2);}
/* 贬谪 */
.og-state-demoted{background:linear-gradient(135deg,transparent 48%,rgba(192,64,48,0.05) 49%,rgba(192,64,48,0.05) 51%,transparent 52%) 0 0/12px 12px,var(--color-surface)!important;filter:saturate(0.6);border-color:rgba(192,64,48,0.25)!important;}
.og-state-demoted .og-pos-portrait{filter:grayscale(0.4) brightness(0.7);}
.og-state-demoted .og-pos-name-line .nm{color:var(--ink-300,#b0a285)!important;text-decoration:line-through;text-decoration-color:rgba(192,64,48,0.5);text-decoration-thickness:1px;}
.og-demoted-tag{position:absolute;top:8px;right:10px;padding:2px 8px;background:rgba(192,64,48,0.15);border:1px solid rgba(192,64,48,0.4);color:var(--vermillion-300,#d15c47);font-size:11px;letter-spacing:0.15em;border-radius:2px;z-index:3;font-weight:600;}
/* 致仕 */
.og-state-retire{background:linear-gradient(to bottom,rgba(201,160,69,0.06),var(--color-surface) 60%)!important;border-color:rgba(201,160,69,0.25)!important;}
.og-state-retire .og-pos-portrait{filter:sepia(0.4);}
.og-retire-glow{position:absolute;top:-1px;left:0;right:0;height:40px;background:linear-gradient(to bottom,rgba(201,160,69,0.14),transparent);pointer-events:none;z-index:0;}
.og-retire-note{padding:4px 14px 8px;font-size:11px;color:var(--amber-400,#c9a045);letter-spacing:0.05em;border-top:1px dashed rgba(201,160,69,0.2);display:flex;align-items:center;gap:6px;}
.og-retire-note::before{content:"\2698";color:#e0b560;font-size:12px;}
/* 状态·文本内容条 */
.og-state-note{padding:6px 14px;font-size:12px;letter-spacing:0.05em;border-top:1px dashed rgba(107,93,71,0.2);display:flex;align-items:center;gap:6px;line-height:1.5;}
.og-state-note.mourn{color:rgba(217,208,187,0.8);border-top-color:rgba(217,208,187,0.2);font-style:italic;justify-content:center;text-align:center;}
.og-state-note.mourn b{color:#d9d0bb;}
.og-state-note.retire{color:var(--amber-400,#c9a045);border-top-color:rgba(201,160,69,0.2);}
.og-state-note.retire::before{content:"\2698";color:#e0b560;font-size:12px;}
.og-state-note.demoted{color:var(--vermillion-300,#d97b6b);border-top-color:rgba(192,64,48,0.2);justify-content:center;}
.og-state-note.acting{color:var(--amber-400,#c9a045);border-top-color:rgba(201,160,69,0.2);font-style:italic;}
/* 全局宣纸颗粒·微纹理 */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:0.05;mix-blend-mode:overlay;background:radial-gradient(circle at 23% 40%,rgba(255,240,200,0.15) 0.5px,transparent 1px),radial-gradient(circle at 67% 72%,rgba(255,240,200,0.1) 0.5px,transparent 1px),radial-gradient(circle at 41% 18%,rgba(140,80,20,0.08) 1px,transparent 2px);background-size:20px 20px,27px 27px,33px 33px;}
/* 卡片入场动画（官制树专用）*/
@keyframes og-fade-in-up{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.og-pos-card,.og-dept-card{animation:og-fade-in-up 0.3s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1)) both;}
/* 官制·列表视图 v3·完全照搬预览样式（.ogp-* 命名空间）*/
.ogp-wrap{padding:32px;background:linear-gradient(to bottom,rgba(184,154,83,0.02),transparent 120px),radial-gradient(ellipse at center,rgba(184,154,83,0.025) 0%,rgba(0,0,0,0.15) 100%),#1a1510;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(107,93,71,0.02) 40px,rgba(107,93,71,0.02) 41px,transparent 41px,transparent 80px);border:1px solid var(--color-border-subtle);border-radius:4px;position:relative;box-shadow:inset 0 2px 12px rgba(0,0,0,0.3);min-height:560px;}
.ogp-wrap::before,.ogp-wrap::after{content:"";position:absolute;width:18px;height:18px;border:1.5px solid var(--gold-400);opacity:0.5;pointer-events:none;}
.ogp-wrap::before{top:6px;left:6px;border-right:none;border-bottom:none;}
.ogp-wrap::after{bottom:6px;right:6px;border-left:none;border-top:none;}
/* 皇帝舞台 */
.ogp-emperor-stage{display:flex;justify-content:center;padding:16px 0 40px;position:relative;}
.ogp-emperor-stage::after{content:"";position:absolute;bottom:0;left:50%;width:2px;height:28px;background:linear-gradient(to bottom,var(--gold-400),transparent);transform:translateX(-50%);}
.ogp-emperor{width:240px;text-align:center;padding:18px 24px;background:linear-gradient(135deg,rgba(201,168,95,0.14),rgba(140,80,20,0.08)),#2a241c;border:1.5px solid var(--gold-400);border-radius:4px;box-shadow:0 0 0 1px rgba(184,154,83,0.15),0 6px 30px rgba(0,0,0,0.6),inset 0 1px 0 rgba(255,255,255,0.04);position:relative;}
.ogp-emperor::before{content:"";position:absolute;inset:4px;border:1px dashed rgba(201,168,95,0.3);pointer-events:none;border-radius:2px;}
.ogp-emperor .eb{font-size:11px;letter-spacing:0.4em;color:var(--gold-400);margin-bottom:6px;}
.ogp-emperor .nm{font-size:28px;font-weight:700;color:#f4e8c5;letter-spacing:0.35em;text-shadow:0 0 14px rgba(201,168,95,0.3);}
.ogp-emperor .rg{font-size:12px;color:var(--color-foreground-muted);margin-top:4px;letter-spacing:0.2em;}
/* 部门横列 */
.ogp-dept-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px;}
.ogp-dept{padding:12px 14px;background:#241e18;border:1px solid rgba(107,176,124,0.3);border-radius:4px;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.22s cubic-bezier(0.2,0.8,0.2,1);position:relative;overflow:hidden;}
.ogp-dept::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--celadon-400),#5a8f6e);}
.ogp-dept:hover{border-color:#94c4a3;transform:translateY(-2px);box-shadow:0 6px 20px rgba(107,176,124,0.15);}
.ogp-dept.expanded{border-color:#94c4a3;background:linear-gradient(to bottom,rgba(107,176,124,0.1),#241e18 60%);box-shadow:0 0 0 1px rgba(107,176,124,0.2),var(--shadow-sm);}
.ogp-dept.expanded::after{content:"";position:absolute;bottom:-1px;left:50%;width:16px;height:8px;background:var(--celadon-400);clip-path:polygon(0 0,100% 0,50% 100%);transform:translateX(-50%);opacity:0.75;}
.ogp-dept .chev{position:absolute;top:10px;right:10px;font-size:11px;color:var(--celadon-400);opacity:0.7;transition:transform 0.22s;}
.ogp-dept.expanded .chev{transform:rotate(180deg);opacity:1;}
.ogp-dept .seal{position:absolute;top:8px;right:32px;font-size:22px;opacity:0.25;color:var(--celadon-400);font-weight:700;}
.ogp-dept .nm{font-size:15px;font-weight:700;color:#94c4a3;letter-spacing:0.2em;margin-bottom:4px;padding-left:4px;}
.ogp-dept .meta{display:flex;gap:10px;padding-left:4px;font-size:11px;color:var(--color-foreground-muted);letter-spacing:0.1em;align-items:center;}
.ogp-dept .meta b{color:var(--gold-300);font-weight:600;}
.ogp-dept .vac-pip{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--vermillion-400);animation:og-vacant-pulse 2s ease-in-out infinite;}
/* 展开面板 */
.ogp-panel{grid-column:1/-1;max-height:0;overflow:hidden;transition:max-height 0.32s cubic-bezier(0.2,0.8,0.2,1),padding 0.32s,opacity 0.28s;padding:0 18px;opacity:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(107,93,71,0.025) 40px,rgba(107,93,71,0.025) 41px),linear-gradient(to bottom,rgba(107,176,124,0.04),transparent 200px),#1a1510;border:1px solid rgba(107,176,124,0.2);border-radius:4px;margin-top:-4px;position:relative;}
.ogp-panel.open{max-height:2400px;padding:18px;opacity:1;}
.ogp-panel .title{font-size:12px;color:#94c4a3;letter-spacing:0.25em;margin-bottom:14px;padding-bottom:8px;border-bottom:1px dashed rgba(107,176,124,0.22);display:flex;align-items:baseline;gap:10px;}
.ogp-panel .title b{color:var(--color-foreground);font-weight:700;font-size:14px;letter-spacing:0.15em;}
.ogp-panel .title small{color:var(--ink-300);font-size:11px;margin-left:auto;letter-spacing:0.15em;font-weight:400;}
.ogp-positions{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
/* 预览样式·职位卡 */
.ogp-pos{background:linear-gradient(to bottom,#241e18,#2e261d);border:1px solid var(--ink-bd);border-radius:4px;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.22s cubic-bezier(0.2,0.8,0.2,1);overflow:hidden;position:relative;}
.ogp-pos:hover{border-color:var(--gold-400);transform:translateY(-2px);box-shadow:0 6px 22px rgba(184,154,83,0.2);}
.ogp-pos::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;}
.ogp-pos.rank-top::before{background:linear-gradient(to bottom,#c04030,#8b2a1f);}
.ogp-pos.rank-high::before{background:linear-gradient(to bottom,#c9a045,#9a7632);}
.ogp-pos.rank-mid::before{background:linear-gradient(to bottom,#6ba97f,#4a7658);}
.ogp-pos.rank-low::before{background:linear-gradient(to bottom,#5a6fa8,#3e4e77);}
.ogp-pos.rank-base::before{background:linear-gradient(to bottom,#8a7a60,#5c4f3e);}
.ogp-pos-head{padding:12px 14px 8px 18px;border-bottom:1px solid rgba(107,93,71,0.15);display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.ogp-pos-title-group{min-width:0;flex:1;}
.ogp-pos-title{font-size:15px;font-weight:700;letter-spacing:0.1em;color:var(--color-foreground);margin-bottom:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ogp-pos-dept-sub{font-size:11px;color:var(--ink-300);letter-spacing:0.1em;}
.ogp-pos-btn{padding:4px 12px;font-size:12px;background:linear-gradient(135deg,#c9a85f,#b89a53);color:#1a1510;border:none;border-radius:2px;cursor:pointer;font-weight:700;letter-spacing:0.15em;font-family:var(--font-serif);box-shadow:0 1px 3px rgba(0,0,0,0.3);white-space:nowrap;}
.ogp-pos-btn:hover{background:linear-gradient(135deg,#d4b870,#c9a85f);}
.ogp-pos-btn.appoint{background:linear-gradient(135deg,#6ba97f,#5a8f6e);color:#0f0b07;}
.ogp-pos-btn.appoint:hover{background:linear-gradient(135deg,#7ebd92,#6ba97f);}
.ogp-pos-holder{padding:10px 14px;display:flex;gap:10px;align-items:center;}
.ogp-pos-portrait{width:40px;height:40px;border-radius:2px;background:linear-gradient(135deg,#4a3e2e,#2e261d);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--gold-300);border:1px solid rgba(184,154,83,0.2);flex-shrink:0;font-weight:600;position:relative;overflow:hidden;}
.ogp-pos-portrait::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,0.04),transparent);}
.ogp-pos-portrait.imperial{border:1.5px solid var(--gold-400);box-shadow:0 0 0 2px #241e18,0 0 0 3px var(--gold-400),0 0 12px rgba(184,154,83,0.4);}
.ogp-pos-tenure{position:absolute;top:-4px;right:-4px;width:16px;height:16px;line-height:14px;text-align:center;font-size:10px;font-weight:700;color:var(--gold-300);background:#241e18;border-radius:50%;border:1px solid var(--gold-500);z-index:3;}
.ogp-pos-holder-info{flex:1;min-width:0;}
.ogp-pos-name-line{font-size:14px;font-weight:700;color:var(--color-foreground);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;}
.ogp-pos-name-line .age{font-size:11px;color:var(--ink-300);font-weight:400;}
.ogp-pos-holder-sub{font-size:11px;color:var(--color-foreground-muted);margin-top:1px;letter-spacing:0.05em;}
.ogp-loyalty{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:2px 6px;border-radius:2px;margin-left:auto;font-weight:600;}
.ogp-loyalty.loyal{background:rgba(107,176,124,0.14);color:#94c4a3;}
.ogp-loyalty.mid{background:rgba(201,160,69,0.14);color:var(--amber-400,#c9a045);}
.ogp-loyalty.danger{background:rgba(192,64,48,0.14);color:var(--vermillion-300,#d97b6b);}
.ogp-pos-stats{padding:0 14px 10px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;}
.ogp-stat-cell{display:flex;flex-direction:column;align-items:center;gap:3px;}
.ogp-stat-cell .lbl{font-size:10px;color:var(--ink-300);letter-spacing:0.2em;}
.ogp-stat-cell .val{font-size:14px;font-weight:700;color:var(--color-foreground);font-variant-numeric:tabular-nums;line-height:1;}
.ogp-stat-cell .val.good{color:#94c4a3;}
.ogp-stat-cell .val.warn{color:var(--amber-400,#c9a045);}
.ogp-stat-cell .val.bad{color:var(--vermillion-300,#d97b6b);}
.ogp-stat-cell .bar{width:100%;height:2px;background:rgba(107,93,71,0.2);border-radius:1px;overflow:hidden;}
.ogp-stat-cell .bar>div{height:100%;background:var(--color-foreground-muted);}
.ogp-stat-cell .bar .bg-good{background:var(--celadon-400);}
.ogp-stat-cell .bar .bg-warn{background:var(--amber-400,#c9a045);}
.ogp-stat-cell .bar .bg-bad{background:var(--vermillion-400);}
.ogp-pos-meta{padding:6px 14px 10px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--ink-300);}
.ogp-pos-meta .tenure b{color:var(--gold-300);font-weight:700;}
.ogp-vacant-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--vermillion-400);box-shadow:0 0 8px rgba(192,64,48,0.6);animation:og-vacant-pulse 2s ease-in-out infinite;z-index:1;}
.ogp-pos.vacant{background:repeating-linear-gradient(45deg,#241e18 0,#241e18 10px,rgba(107,93,71,0.05) 10px,rgba(107,93,71,0.05) 20px);border-style:dashed;border-color:rgba(107,93,71,0.35);}
.ogp-pos.vacant .ogp-pos-title{color:var(--color-foreground-muted);}
.ogp-pos.vacant .ogp-pos-holder{padding:18px 14px;justify-content:center;color:var(--ink-300);font-style:italic;font-size:12px;letter-spacing:0.2em;}
.ogp-pos.vacant .ogp-pos-holder::before{content:"\3014 \7A7A \7F3A \00B7 \5F85 \8865 \3015";opacity:0.7;}
.ogp-pos.vacant .ogp-pos-meta{color:var(--vermillion-300);justify-content:center;padding:10px 14px;}
.ogp-rank-seal{display:inline-block;padding:2px 8px;background:linear-gradient(135deg,rgba(192,64,48,0.82),rgba(140,40,30,0.92));color:#fce8e1;font-size:11px;letter-spacing:0.1em;border-radius:2px;font-weight:600;box-shadow:0 1px 2px rgba(140,40,30,0.3),inset 0 1px 0 rgba(255,255,255,0.1);margin-left:4px;}
.ogp-rank-seal.mid-lvl{background:linear-gradient(135deg,rgba(184,154,83,0.85),rgba(140,120,65,0.92));color:#fff7e0;}
.ogp-rank-seal.low-lvl{background:linear-gradient(135deg,rgba(107,93,71,0.9),rgba(75,65,50,0.95));color:#d4c49c;}
/* 兼容层·旧 og-pos-card-list */
.og-pos-card-list{position:relative!important;left:auto!important;top:auto!important;width:auto!important;height:auto!important;min-height:196px;}
.og-list-wrap{padding:20px;background:linear-gradient(to bottom,rgba(184,154,83,0.02),transparent 120px),radial-gradient(ellipse at center,rgba(184,154,83,0.025) 0%,rgba(0,0,0,0.15) 100%),var(--color-background,#1a1510);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(107,93,71,0.02) 40px,rgba(107,93,71,0.02) 41px,transparent 41px,transparent 80px),radial-gradient(ellipse at center,rgba(184,154,83,0.02) 0%,rgba(0,0,0,0.2) 100%);border:1px solid var(--color-border-subtle);border-radius:3px;position:relative;box-shadow:inset 0 2px 12px rgba(0,0,0,0.3);min-height:560px;}
.og-list-wrap::before,.og-list-wrap::after{content:"";position:absolute;width:18px;height:18px;border:1.5px solid var(--gold-400);opacity:0.5;pointer-events:none;}
.og-list-wrap::before{top:6px;left:6px;border-right:none;border-bottom:none;}
.og-list-wrap::after{bottom:6px;right:6px;border-left:none;border-top:none;}
/* 皇帝舞台 */
.og-emperor-stage{display:flex;justify-content:center;padding:22px 0 40px;position:relative;}
.og-emperor-stage::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:320px;height:1px;background:linear-gradient(to right,transparent,var(--gold-500,#b89a53),transparent);}
.og-emperor-stage::after{content:"";position:absolute;bottom:0;left:50%;width:2px;height:28px;background:linear-gradient(to bottom,var(--gold-400),transparent);transform:translateX(-50%);}
.og-emperor-card{width:280px;text-align:center;padding:20px 28px;background:linear-gradient(135deg,rgba(201,168,95,0.16),rgba(140,80,20,0.1)),var(--color-elevated,#2a241c);border:2px solid var(--gold-400);border-radius:4px;box-shadow:0 0 0 1px rgba(184,154,83,0.15),0 8px 34px rgba(0,0,0,0.65),inset 0 1px 0 rgba(255,255,255,0.05);position:relative;}
.og-emperor-card::before{content:"";position:absolute;inset:5px;border:1px dashed rgba(201,168,95,0.35);pointer-events:none;border-radius:2px;}
.og-emperor-eyebrow{font-size:12px;letter-spacing:0.45em;color:var(--gold-400);margin-bottom:6px;font-weight:400;}
.og-emperor-name{font-size:30px;font-weight:700;color:var(--gold-100,#f4e8c5);letter-spacing:0.35em;text-shadow:0 0 18px rgba(201,168,95,0.35);line-height:1.15;}
.og-emperor-reign{font-size:12px;color:var(--color-foreground-muted);margin-top:6px;letter-spacing:0.22em;}
/* 部门横列·固定卡片宽度不拉伸 */
.og-list-dept-row{display:grid;grid-template-columns:repeat(auto-fill,200px);gap:10px;margin-bottom:18px;justify-content:center;}
.og-list-dept-card{padding:11px 13px;background:var(--color-surface,#241e18);border:1px solid rgba(107,176,124,0.3);border-radius:3px;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.22s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1));position:relative;overflow:hidden;}
.og-list-dept-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--celadon-400),var(--celadon-500));}
.og-list-dept-card:hover{border-color:var(--celadon-300,#94c4a3);transform:translateY(-2px);box-shadow:0 6px 18px rgba(107,176,124,0.15);}
.og-list-dept-card.expanded{border-color:var(--celadon-300,#94c4a3);background:linear-gradient(to bottom,rgba(107,176,124,0.1),var(--color-surface,#241e18) 60%);box-shadow:0 0 0 1px rgba(107,176,124,0.2),var(--shadow-sm);}
.og-list-dept-card.expanded::after{content:"";position:absolute;bottom:-1px;left:50%;width:14px;height:8px;background:var(--celadon-400);clip-path:polygon(0 0,100% 0,50% 100%);transform:translateX(-50%);opacity:0.75;}
.og-list-dept-chevron{position:absolute;top:11px;right:10px;font-size:11px;color:var(--celadon-400);opacity:0.7;transition:transform 0.22s;}
.og-list-dept-card.expanded .og-list-dept-chevron{transform:rotate(0deg);}
.og-list-dept-seal{position:absolute;top:8px;right:32px;font-size:22px;opacity:0.18;color:var(--celadon-400);font-weight:700;pointer-events:none;}
.og-list-dept-name{font-size:14px;font-weight:700;color:var(--celadon-300,#94c4a3);letter-spacing:0.15em;margin-bottom:3px;padding-left:4px;}
.og-list-dept-meta{padding-left:4px;font-size:11px;color:var(--color-foreground-muted);letter-spacing:0.1em;display:flex;gap:8px;align-items:center;}
.og-list-dept-meta b{color:var(--gold-300);font-weight:700;font-size:12px;}
.og-list-dept-vac-pip{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--vermillion-400);animation:og-vacant-pulse 2s ease-in-out infinite;}
/* 展开面板 */
.og-list-expand-panel{max-height:0;overflow:hidden;transition:max-height 0.4s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1)),padding 0.3s,opacity 0.3s;padding:0 18px;opacity:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(107,93,71,0.025) 40px,rgba(107,93,71,0.025) 41px),linear-gradient(to bottom,rgba(107,176,124,0.04),transparent 200px),var(--color-background,#1a1510);border:1px solid rgba(107,176,124,0.2);border-radius:3px;margin:-4px 0 14px;position:relative;}
.og-list-expand-panel.open{max-height:3000px;padding:16px 18px;opacity:1;}
.og-list-panel-title{font-size:12px;color:var(--celadon-300,#94c4a3);letter-spacing:0.25em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed rgba(107,176,124,0.22);display:flex;align-items:baseline;gap:8px;}
.og-list-panel-title b{color:var(--color-foreground);font-weight:700;font-size:14px;letter-spacing:0.15em;}
.og-list-panel-title small{color:var(--ink-300,#7a6e54);font-size:11px;margin-left:auto;letter-spacing:0.15em;}
.og-list-positions{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,320px));gap:12px;justify-content:start;}
/* tab 整体淡入 */
@keyframes og-panel-fade-in{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
#office-tree{animation:og-panel-fade-in 0.4s var(--ease-out,cubic-bezier(0.2,0.8,0.2,1)) both;}
/* 部门卡点击整块可折叠·chevron 指示 */
.og-dept-card.clickable{cursor:pointer;transition:all 0.22s ease;}
.og-dept-card.clickable:hover{border-color:var(--celadon-300,#94c4a3);transform:translateY(-1px);box-shadow:0 4px 12px rgba(107,176,124,0.12);}
.og-dept-card.clickable.collapsed{opacity:0.85;}
.og-dept-chevron-indicator{display:inline-block;margin-left:4px;transition:transform 0.22s;color:var(--celadon-400);opacity:0.7;font-size:11px;}
.og-dept-card.collapsed .og-dept-chevron-indicator{transform:rotate(-90deg);}
/* ════════ 选任器·v2 ════════ */
.off-pk-replacing{margin-top:8px;padding:8px 14px;background:rgba(201,160,69,0.05);border-left:3px solid var(--amber-400,#c9a045);border-radius:2px;font-size:12px;color:var(--amber-400,#c9a045);letter-spacing:0.1em;}
.off-pk-replacing b{color:var(--gold-200,#e8d69a);font-weight:700;}
.off-pk-recommend-ribbon{position:absolute;top:-1px;right:98px;padding:2px 10px 2px 14px;background:linear-gradient(135deg,var(--vermillion-400,#c04030),#9c2f25);color:#fce8e1;font-size:10px;font-weight:700;letter-spacing:0.3em;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(140,40,30,0.3);clip-path:polygon(0 0,100% 0,100% 100%,8px 100%,0 70%);z-index:2;}
.off-pk-chip-count{font-size:11px;font-variant-numeric:tabular-nums;background:rgba(0,0,0,0.25);border-radius:8px;padding:0 6px;margin-left:4px;min-width:18px;display:inline-block;text-align:center;color:inherit;}
.off-pk-footer{padding:10px 22px;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-300,#7a6e54);letter-spacing:0.1em;background:rgba(0,0,0,0.18);}
.off-pk-kbd{display:inline-flex;gap:12px;flex-wrap:wrap;}
.off-pk-kbd span{display:inline-flex;align-items:center;gap:4px;}
.off-pk-kbd kbd{display:inline-block;min-width:18px;padding:1px 5px;font-size:11px;background:var(--bg-1,#1a1510);border:1px solid var(--color-border-subtle);border-bottom-width:2px;border-radius:2px;color:var(--color-foreground-muted);font-family:monospace;text-align:center;letter-spacing:0;}
.off-pk-radar{width:64px;height:64px;flex-shrink:0;}
.off-pk-radar .grid{fill:none;stroke:rgba(107,93,71,0.22);stroke-width:1;}
.off-pk-radar .axis{stroke:rgba(107,93,71,0.3);stroke-width:0.5;}
.off-pk-radar .shape{fill:rgba(107,176,124,0.2);stroke:var(--celadon-400);stroke-width:1.2;stroke-linejoin:round;}
.off-pk-radar .shape.mid{fill:rgba(201,168,95,0.22);stroke:var(--gold-400);}
.off-pk-radar .shape.bad{fill:rgba(192,64,48,0.22);stroke:var(--vermillion-400);}
.off-pk-radar .axis-lbl{fill:var(--ink-300,#7a6e54);font-size:10px;font-family:var(--font-serif);}
/* 候选人 mini-bar stats 四象三件组 */
.off-pk-stats-mini{display:grid;grid-template-columns:repeat(4,auto);gap:6px 12px;align-items:center;margin-top:4px;}
.off-pk-stat-mini{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--color-foreground-muted);}
.off-pk-stat-mini .lbl{color:var(--ink-300,#7a6e54);letter-spacing:0.15em;}
.off-pk-stat-mini .val{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;min-width:16px;text-align:right;}
.off-pk-stat-mini .val.hi{color:var(--celadon-400);}
.off-pk-stat-mini .val.mid{color:var(--gold-400);}
.off-pk-stat-mini .val.lo{color:var(--vermillion-400);}
.off-pk-stat-mini .bar{width:28px;height:4px;background:rgba(107,93,71,0.2);border-radius:2px;overflow:hidden;}
.off-pk-stat-mini .bar>div{height:100%;background:var(--color-foreground-muted);}
.off-pk-stat-mini .bar .fill-hi{background:var(--celadon-400);}
.off-pk-stat-mini .bar .fill-mid{background:var(--gold-400);}
.off-pk-stat-mini .bar .fill-lo{background:var(--vermillion-400);}
/* 官制·待下诏书条（回合内撤销） */
.og-pending-edict{position:absolute;left:0;right:0;bottom:0;height:32px;display:flex;align-items:center;gap:6px;padding:0 10px;background:linear-gradient(to right,rgba(192,64,48,0.18),rgba(192,64,48,0.08));border-top:1px dashed rgba(192,64,48,0.45);font-size:12px;color:#e0c8b0;letter-spacing:0.04em;box-sizing:border-box;}
.og-pending-edict .og-pe-lbl{color:var(--vermillion-400,#c04030);font-weight:700;letter-spacing:0.1em;font-size:11px;white-space:nowrap;}
.og-pending-edict .og-pe-txt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d4be7a;}
.og-pending-edict .og-pe-undo{background:transparent;border:1px solid rgba(192,64,48,0.55);color:var(--vermillion-400,#c04030);font-size:12px;padding:2px 10px;border-radius:2px;cursor:pointer;letter-spacing:0.12em;font-family:var(--font-serif);transition:all 0.15s;white-space:nowrap;}
.og-pending-edict .og-pe-undo:hover{background:rgba(192,64,48,0.2);color:#ffb8a8;border-color:var(--vermillion-400,#c04030);}

/* 部门卡 */
.og-dept-card{position:absolute;box-sizing:border-box;background:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-radius:5px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,0.35);}
.og-dept-card.depth-0{border:2px solid var(--gold-400);box-shadow:0 0 0 1px var(--gold-d),0 3px 12px rgba(184,154,83,0.2);background:linear-gradient(to bottom,rgba(184,154,83,0.08),rgba(184,154,83,0.02)),var(--color-surface);}
.og-dept-card.depth-1{border:1.5px solid var(--gold-400);box-shadow:0 2px 8px rgba(184,154,83,0.1);}
.og-dept-card.depth-0::before,.og-dept-card.depth-1::before{content:"";position:absolute;top:0;right:0;width:40px;height:40px;background:radial-gradient(circle at top right,rgba(184,154,83,0.14),transparent 70%);pointer-events:none;}
.og-dept-hdr{display:flex;align-items:center;gap:5px;padding:6px 8px;border-bottom:1px solid var(--color-border-subtle);}
.og-dept-card.depth-0 .og-dept-hdr{background:linear-gradient(to bottom,rgba(184,154,83,0.18),rgba(184,154,83,0.05));}
.og-dept-card.depth-1 .og-dept-hdr{background:linear-gradient(to bottom,rgba(184,154,83,0.08),rgba(184,154,83,0.02));}
.og-dept-hdr .nm{flex:1;min-width:0;font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--color-foreground);letter-spacing:0.12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.og-dept-card.depth-0 .og-dept-hdr .nm{color:var(--gold-300,#c9a85f);letter-spacing:0.3em;font-size:15px;text-shadow:0 0 8px rgba(201,168,95,0.3);}
.og-dept-card.depth-1 .og-dept-hdr .nm{color:var(--gold-400);letter-spacing:0.18em;font-size:14px;}
.og-dept-collapse{border:none;background:transparent;color:var(--ink-300,#6b5d47);cursor:pointer;font-size:14px;padding:0 4px;line-height:16px;}
.og-dept-collapse:hover{color:var(--gold-400);}
.og-power-ring{width:28px;height:28px;position:relative;flex-shrink:0;}
.og-power-ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.og-power-ring .bg{stroke:rgba(107,93,71,0.25);}
.og-power-ring .fg{stroke:var(--ring-c,var(--gold-400));stroke-linecap:round;transition:stroke-dashoffset 0.4s;}
.og-power-ring .txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:14px;color:var(--ring-c,var(--gold-400));font-weight:500;}
.og-power-ring.hi{--ring-c:var(--gold-300,#c9a85f);}
.og-power-ring.mid{--ring-c:var(--celadon-400);}
.og-power-ring.lo{--ring-c:var(--ink-500);}
.og-dept-body{padding:5px 8px 6px;}
.og-dept-func-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:4px;}
.og-dept-func{font-size:13.5px;color:var(--celadon-400);padding:1px 5px;background:rgba(106,154,127,0.08);border:1px solid rgba(106,154,127,0.3);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;}
.og-dept-fill{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--ink-300,#6b5d47);margin-top:3px;}
.og-dept-fill-bar{flex:1;height:4px;background:rgba(107,93,71,0.25);border-radius:2px;overflow:hidden;position:relative;display:flex;}
.og-dept-fill-bar .fg{height:100%;background:linear-gradient(to right,var(--celadon-400),var(--gold-400));border-radius:2px;}
.og-dept-fill-bar .vac{height:100%;background:rgba(192,64,48,0.5);}
.og-dept-fill .num{color:#d4c9b0;font-family:var(--font-serif);letter-spacing:0.05em;}
.og-dept-actions{display:flex;gap:3px;margin-top:5px;padding-top:5px;border-top:1px dashed var(--color-border-subtle);align-items:center;flex-wrap:wrap;}
.og-dept-btn{font-size:13.5px;font-family:var(--font-serif);padding:2px 6px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);border-radius:2px;cursor:pointer;letter-spacing:0.08em;line-height:14px;}
.og-dept-btn:hover{color:var(--gold-400);border-color:var(--gold-400);background:rgba(184,154,83,0.1);}
.og-dept-btn.danger{color:var(--vermillion-400);}
.og-dept-btn.danger:hover{color:var(--vermillion-300,#d15c47);border-color:var(--vermillion-400);background:rgba(192,64,48,0.08);}
.og-dept-vac-chip{font-size:13px;padding:0 4px;border-radius:2px;background:rgba(192,64,48,0.15);color:var(--vermillion-400);border:1px solid var(--vermillion-400);margin-left:auto;line-height:14px;font-family:var(--font-serif);letter-spacing:0.05em;}
.og-hc-chip{font-size:13px;padding:1px 4px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.05em;background:rgba(107,93,71,0.2);color:#d4c9b0;border:1px solid var(--color-border-subtle);}
.og-hc-chip.full{color:var(--celadon-400);border-color:var(--celadon-400);background:rgba(106,154,127,0.08);}
.og-hc-chip.part{color:var(--amber-400,#c9a045);border-color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);}
.og-hc-chip.vac{color:var(--vermillion-400);border-color:var(--vermillion-400);background:rgba(192,64,48,0.1);}

/* 职位卡 */
.og-pos-card{position:absolute;box-sizing:border-box;background:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.022) 2.5em,rgba(107,93,71,0.022) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-radius:5px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,0.35),0 0 0 1px rgba(0,0,0,0.1);cursor:pointer;transition:all 0.2s;}
.og-pos-card:hover{border-color:var(--gold-400);box-shadow:0 3px 10px rgba(184,154,83,0.2),0 0 0 1px rgba(184,154,83,0.2);transform:translateY(-1px);}
.og-pos-card.selected{border:1.5px solid var(--gold-300,#c9a85f);box-shadow:0 0 0 2px rgba(201,168,95,0.3),0 4px 14px rgba(184,154,83,0.3);}
/* 品级色条 */
.og-rank-bar{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rank-c,var(--gold-400));}
.og-rank-bar::after{content:"";position:absolute;left:0;top:0;right:0;height:40%;background:linear-gradient(to bottom,rgba(255,255,255,0.35),transparent);}
.og-rank-top{--rank-c:#e4c579;}
.og-rank-high{--rank-c:var(--gold-400);}
.og-rank-mid{--rank-c:var(--celadon-400);}
.og-rank-low{--rank-c:var(--ink-500);}
.og-rank-base{--rank-c:var(--ink-300,#6b5d47);}
.og-pos-top{display:flex;align-items:center;gap:6px;padding:7px 8px 3px 12px;}
.og-pos-nm-wrap{flex:1;min-width:0;}
.og-pos-nm{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--color-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0.1em;display:flex;align-items:center;gap:5px;}
.og-pos-rank-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:14px;font-weight:500;min-width:22px;height:18px;padding:0 5px;background:linear-gradient(to bottom,var(--rank-c,var(--gold-400)),rgba(0,0,0,0.15));color:#1a1410;border-radius:2px;letter-spacing:0.05em;box-shadow:0 1px 0 rgba(255,255,255,0.15) inset,0 1px 2px rgba(0,0,0,0.3);}
.og-pos-action-btn{font-size:14px;font-family:var(--font-serif);letter-spacing:0.12em;padding:3px 9px;border-radius:2px;cursor:pointer;white-space:nowrap;flex-shrink:0;border:1px solid var(--gold-d);color:var(--gold-400);background:rgba(184,154,83,0.06);transition:all 0.15s;}
.og-pos-action-btn:hover{background:rgba(184,154,83,0.15);border-color:var(--gold-400);}
.og-pos-action-btn.appoint{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;border-color:var(--vermillion-600,#8f3428);box-shadow:0 1px 2px rgba(140,40,30,0.3);}
.og-pos-action-btn.change{border-color:var(--amber-400,#c9a045);color:var(--amber-400,#c9a045);background:rgba(217,151,71,0.08);}
.og-pos-action-btn.concretize{border-color:var(--celadon-400);color:var(--celadon-400);background:rgba(121,175,135,0.1);}
.og-pos-sub-line{font-size:14px;color:var(--ink-300,#6b5d47);margin-top:1px;letter-spacing:0.05em;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.og-pos-sub-line .sep{color:var(--ink-300,#6b5d47);opacity:0.5;}

/* 在任者行 */
.og-pos-holder-row{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 12px;background:rgba(184,154,83,0.02);border-top:1px solid rgba(184,154,83,0.08);border-bottom:1px solid rgba(184,154,83,0.08);}
.og-pos-portrait{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--rank-c,var(--gold-400)) 40%,var(--ink-100,#3d342a) 100%);border:1.5px solid var(--rank-c,var(--gold-400));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:14px;font-weight:500;flex-shrink:0;position:relative;box-shadow:0 1px 3px rgba(0,0,0,0.4);overflow:hidden;}
.og-pos-portrait.vacant{background:repeating-linear-gradient(45deg,rgba(107,93,71,0.25),rgba(107,93,71,0.25) 2px,rgba(107,93,71,0.1) 2px,rgba(107,93,71,0.1) 4px);border-color:var(--ink-300,#6b5d47);border-style:dashed;color:var(--ink-300,#6b5d47);}
.og-pos-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.og-pos-holder-info{flex:1;min-width:0;}
.og-pos-name-line{display:flex;align-items:center;gap:5px;font-family:var(--font-serif);font-size:13px;color:var(--holder-c,var(--color-foreground));letter-spacing:0.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-wrap:wrap;}
.og-pos-name-line .nm{cursor:pointer;text-decoration:underline dotted var(--ink-300,#6b5d47);}
.og-pos-name-line .nm:hover{text-decoration-color:var(--gold-400);color:var(--gold-400);}
.og-pos-holder-row.loyal{--holder-c:var(--celadon-400);}
.og-pos-holder-row.mid{--holder-c:var(--color-foreground);}
.og-pos-holder-row.danger{--holder-c:var(--vermillion-400);}
.og-pos-holder-row.vacant{--holder-c:var(--vermillion-400);}
.og-pos-holder-row.vacant .og-pos-name-line{font-style:italic;}
.og-party-tag{font-size:13px;padding:1px 5px;background:var(--pt-bg,rgba(184,154,83,0.08));color:var(--pt-c,var(--gold-400));border:1px solid currentColor;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;flex-shrink:0;}
.og-party-tag.dongin{--pt-c:var(--celadon-400);--pt-bg:rgba(106,154,127,0.1);}
.og-party-tag.zhe{--pt-c:var(--indigo-400,#5a6fa8);--pt-bg:rgba(90,111,168,0.1);}
.og-party-tag.yan{--pt-c:var(--purple-400,#8e6aa8);--pt-bg:rgba(142,106,168,0.1);}
.og-party-tag.kun{--pt-c:var(--amber-400,#c9a045);--pt-bg:rgba(201,160,69,0.08);}
.og-party-tag.qing{--pt-c:var(--gold-400);--pt-bg:rgba(184,154,83,0.08);}

/* 能力四维 */
.og-stats-row{display:flex;align-items:center;gap:2px;padding:4px 10px 5px 12px;flex-wrap:wrap;}
.og-stat-box{display:inline-flex;align-items:center;gap:2px;font-size:13.5px;color:#d4c9b0;font-family:var(--font-serif);padding:1px 4px;background:rgba(184,154,83,0.04);border-radius:2px;letter-spacing:0.05em;}
.og-stat-box .lbl{color:var(--ink-300,#6b5d47);}
.og-stat-box .v{color:var(--stat-c,var(--color-foreground));font-weight:500;}
.og-stat-box.loy.hi{--stat-c:var(--celadon-400);}
.og-stat-box.loy.mid{--stat-c:var(--gold-400);}
.og-stat-box.loy.lo{--stat-c:var(--vermillion-400);}
.og-stat-bar-mini{display:inline-block;width:16px;height:3px;background:rgba(107,93,71,0.25);border-radius:1px;position:relative;margin-left:2px;vertical-align:middle;}
.og-stat-bar-mini::before{content:"";position:absolute;left:0;top:0;bottom:0;background:var(--stat-c,var(--gold-400));border-radius:1px;width:var(--w,50%);}

/* 权限图标组 */
.og-powers{display:flex;gap:3px;padding:3px 10px 3px 12px;align-items:center;flex-wrap:wrap;}
.og-powers-lbl{font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.1em;font-family:var(--font-serif);margin-right:2px;}
.og-power-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;font-family:var(--font-serif);font-size:14px;font-weight:500;border:1px solid var(--pi-c);color:var(--pi-c);background:rgba(var(--pi-rgb),0.08);transition:all 0.15s;cursor:help;}
.og-power-icon.off{color:var(--ink-100,#3d342a);border-color:var(--ink-100,#3d342a);background:transparent;opacity:0.55;}
.og-power-icon.appoint{--pi-c:var(--gold-400);--pi-rgb:184,154,83;}
.og-power-icon.impeach{--pi-c:var(--vermillion-400);--pi-rgb:184,71,56;}
.og-power-icon.tax{--pi-c:var(--amber-400,#c9a045);--pi-rgb:201,160,69;}
.og-power-icon.military{--pi-c:var(--vermillion-400);--pi-rgb:184,71,56;}
.og-power-icon.supervise{--pi-c:var(--purple-400,#8e6aa8);--pi-rgb:142,106,168;}

/* meta 行 */
.og-meta-row{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 12px;font-size:14px;color:#d4c9b0;flex-wrap:wrap;}
.og-meta-row > *{display:inline-flex;align-items:center;gap:3px;}
.og-meta-row .sep{color:var(--ink-300,#6b5d47);opacity:0.4;}
.og-meta-treasury{color:var(--gold-400);}
.og-meta-treasury::before{content:"⏦";color:var(--gold-400);margin-right:1px;}
.og-meta-grain{color:var(--celadon-400);}
.og-meta-grain::before{content:"禾";color:var(--celadon-400);margin-right:1px;font-family:var(--font-serif);font-size:9px;}
.og-meta-illicit{font-family:var(--font-serif);padding:0 4px;border-radius:2px;}
.og-meta-illicit.hot{color:var(--vermillion-300,#d15c47);background:rgba(192,64,48,0.1);}
.og-meta-illicit.cold{color:var(--celadon-400);background:rgba(106,154,127,0.08);}
.og-meta-tenure{font-family:var(--font-serif);}
.og-meta-tenure.warn{color:var(--amber-400,#c9a045);}
.og-eval-history{display:inline-flex;gap:2px;align-items:center;}
.og-eval-history .lbl{font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;font-family:var(--font-serif);margin-right:2px;}
.og-eval-dot{display:inline-block;width:11px;height:11px;border-radius:50%;font-size:9px;line-height:11px;text-align:center;font-family:var(--font-serif);color:#1a1410;font-weight:bold;}
.og-eval-dot.up{background:var(--celadon-400);}
.og-eval-dot.mid{background:var(--gold-400);}
.og-eval-dot.dn{background:var(--vermillion-400);}
.og-eval-dot.none{background:rgba(107,93,71,0.3);color:var(--ink-300,#6b5d47);}
.og-history-rail{display:flex;align-items:center;gap:3px;padding:3px 10px 5px 12px;border-top:1px dashed var(--color-border-subtle);margin-top:2px;font-size:13.5px;color:var(--ink-300,#6b5d47);flex-wrap:wrap;}
.og-history-rail .lbl{font-family:var(--font-serif);letter-spacing:0.1em;margin-right:4px;color:#d4c9b0;}
.og-history-rail .name{padding:0 4px;background:rgba(184,154,83,0.05);border-radius:2px;color:#d4c9b0;}
.og-history-rail .name.current{color:var(--gold-400);border:1px solid var(--gold-d);background:rgba(184,154,83,0.12);}
.og-history-rail .arr{color:var(--ink-300,#6b5d47);opacity:0.6;}
.og-empty-msg{font-size:14px;color:var(--vermillion-400);font-style:italic;padding:3px 10px 3px 12px;letter-spacing:0.08em;}
.og-empty-msg::before{content:"⚠ ";}

/* ═════════ 纪事标签页·美化版 v2（.ji-*·12 类源分类）═════════ */
.ji-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);}
.ji-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.ji-inner{position:relative;z-index:1;}
.ji-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.ji-title::before,.ji-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.ji-title::before{top:0;}
.ji-title::after{bottom:0;}
.ji-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.ji-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);}
.ji-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

/* 统计栏 4 卡 */
.ji-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;}
.ji-stat-card{padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--sc-c,var(--gold-d));border-radius:3px;position:relative;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));}
.ji-stat-card.s-total{--sc-c:var(--gold-400);}
.ji-stat-card.s-starred{--sc-c:var(--gold-300,#c9a85f);}
.ji-stat-card.s-today{--sc-c:var(--vermillion-400);}
.ji-stat-card.s-date{--sc-c:var(--celadon-400);}
.ji-stat-lbl{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground-muted);letter-spacing:0.25em;margin-bottom:4px;}
.ji-stat-num{font-family:var(--font-serif);font-size:22px;color:var(--sc-c);letter-spacing:0.05em;font-weight:700;line-height:1;}
.ji-stat-sub{font-size:14.5px;color:var(--ink-300,#6b5d47);margin-top:3px;font-style:italic;}

/* 工具栏 */
.ji-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:12px;flex-wrap:wrap;}
.ji-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.15em;flex-shrink:0;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.ji-view-switch{display:inline-flex;border:1px solid var(--color-border-subtle);border-radius:2px;overflow:hidden;}
.ji-view-btn{padding:4px 14px;background:transparent;border:none;color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;cursor:pointer;border-right:1px solid var(--color-border-subtle);}
.ji-view-btn:last-child{border-right:none;}
.ji-view-btn.active{background:linear-gradient(to bottom,rgba(184,154,83,0.15),rgba(184,154,83,0.05));color:var(--gold-400);}
.ji-view-btn:hover{color:var(--gold-400);}
.ji-search-wrap{position:relative;flex:1;min-width:180px;max-width:320px;}
.ji-search-wrap::before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.ji-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.ji-search:focus{border-color:var(--gold-400);box-shadow:0 0 0 1px rgba(184,154,83,0.25);}
.ji-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.ji-star-btn,.ji-export-btn{padding:5px 12px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;transition:all 0.2s;}
.ji-star-btn:hover,.ji-export-btn:hover{background:rgba(184,154,83,0.15);color:var(--gold-400);border-color:var(--gold-400);}
.ji-star-btn.on{color:var(--gold-300,#c9a85f);border-color:var(--gold-300,#c9a85f);background:linear-gradient(to bottom,rgba(201,168,95,0.18),rgba(184,154,83,0.05));}
.ji-export-btn::before{content:"❖";margin-right:4px;opacity:0.7;font-size:14px;}

/* 源图例 12 类 */
.ji-legend{display:flex;gap:6px 8px;padding:10px 14px;margin-bottom:14px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;font-size:15px;flex-wrap:wrap;align-items:center;}
.ji-legend-title{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-right:4px;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.ji-legend-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-serif);letter-spacing:0.08em;color:var(--color-foreground);font-size:15px;padding:2px 8px;border-radius:2px;background:rgba(var(--sw-rgb,184,154,83),0.06);border:1px solid var(--sw-c,var(--gold-d));cursor:pointer;transition:all 0.2s;}
.ji-legend-chip:hover{background:rgba(var(--sw-rgb,184,154,83),0.12);}
.ji-legend-chip.on{background:rgba(var(--sw-rgb,184,154,83),0.18);color:var(--sw-c);font-weight:500;}
.ji-legend-chip .ic{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--sw-c,var(--gold-400));color:#1a1410;font-family:var(--font-serif);font-size:13.5px;font-weight:bold;border-radius:1px;}
.ji-legend-chip .num{color:var(--sw-c);font-weight:500;font-size:14px;opacity:0.85;}

/* 12 种源类型配色 */
.src-changchao{--sw-c:var(--celadon-400);--sw-rgb:106,154,127;}
.src-yuqian{--sw-c:var(--indigo-400,#5a6fa8);--sw-rgb:90,111,168;}
.src-tingyi{--sw-c:var(--vermillion-400);--sw-rgb:184,71,56;}
.src-keyi{--sw-c:var(--gold-400);--sw-rgb:184,154,83;}
.src-jingyan{--sw-c:var(--purple-400,#8e6aa8);--sw-rgb:142,106,168;}
.src-formal{--sw-c:var(--celadon-600,#4a7a5f);--sw-rgb:74,122,95;}
.src-private{--sw-c:var(--purple-600,#5f3a7a);--sw-rgb:95,58,122;}
.src-memo{--sw-c:var(--amber-400,#c9a045);--sw-rgb:201,160,69;}
.src-kangshu{--sw-c:var(--vermillion-300,#d15c47);--sw-rgb:209,92,71;}
.src-letter{--sw-c:var(--blue-400,#5a8fb8);--sw-rgb:90,143,184;}
.src-audience{--sw-c:var(--gold-300,#c9a85f);--sw-rgb:201,168,95;}
.src-mibao{--sw-c:var(--vermillion-600,#8f3428);--sw-rgb:143,52,40;}
.src-record{--sw-c:var(--ink-300,#6b5d47);--sw-rgb:107,93,71;}
.src-keju_event{--sw-c:var(--gold-400);--sw-rgb:184,154,83;}

/* 回合分组 */
.ji-turn-block{margin-bottom:24px;}
.ji-turn-block:last-child{margin-bottom:0;}
.ji-turn-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:9px 16px;background:linear-gradient(to right,rgba(157,130,68,0.18),rgba(157,130,68,0.03) 85%);border-left:4px solid var(--gold-400);border-radius:0 2px 2px 0;position:relative;flex-wrap:wrap;}
.ji-turn-hdr::before{content:"";position:absolute;left:-4px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,var(--gold-300,#c9a85f),var(--gold-500));border:2px solid var(--color-surface);box-shadow:0 0 6px rgba(201,168,95,0.4);}
.ji-turn-hdr .t-label{font-family:var(--font-serif);font-size:15px;color:var(--gold-300,#c9a85f);letter-spacing:0.22em;font-weight:500;text-shadow:0 0 6px rgba(201,168,95,0.25);}
.ji-turn-hdr .t-date{font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;font-style:italic;}
.ji-turn-hdr .t-count{margin-left:auto;font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.1em;padding:2px 8px;background:rgba(184,154,83,0.08);border:1px solid var(--color-border-subtle);border-radius:2px;}

/* 人物视图分组 */
.ji-char-block{margin-bottom:14px;}
.ji-char-summary{cursor:pointer;list-style:none;padding:9px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--char-c,var(--gold-400));border-radius:3px;display:flex;align-items:center;gap:10px;transition:all 0.2s;}
.ji-char-summary::-webkit-details-marker{display:none;}
.ji-char-summary::before{content:"▸";color:var(--char-c,var(--gold-400));transition:transform 0.25s;font-size:15px;}
.ji-char-block[open] > .ji-char-summary::before{transform:rotate(90deg);}
.ji-char-summary:hover{background:rgba(184,154,83,0.04);border-left-width:4px;}
.ji-char-portrait{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--char-c,var(--gold-400)),var(--ink-100,#3d342a));border:1.5px solid var(--char-c,var(--gold-400));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:14px;flex-shrink:0;box-shadow:0 1px 2px rgba(0,0,0,0.3);overflow:hidden;}
.ji-char-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.ji-char-nm{font-family:var(--font-serif);font-size:0.7292rem;color:var(--color-foreground);letter-spacing:0.12em;font-weight:500;}
.ji-char-title{font-size:0.7552rem;color:var(--ink-300,#6b5d47);letter-spacing:0.05em;font-style:italic;margin-left:6px;}
.ji-char-summary .cnt{margin-left:auto;font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);padding:1px 8px;background:rgba(184,154,83,0.06);border:1px solid var(--color-border-subtle);border-radius:2px;}

/* 纪事卡 */
.ji-record{position:relative;margin-bottom:10px;margin-left:8px;padding:10px 14px 10px 20px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--sw-c,var(--gold-d));border-radius:3px;transition:all 0.2s;}
.ji-record:hover{border-color:var(--gold-400);box-shadow:0 2px 8px rgba(0,0,0,0.3),0 0 6px rgba(184,154,83,0.12);}
.ji-record.starred{background:linear-gradient(to right,rgba(201,168,95,0.08),var(--color-surface) 40%);}
.ji-record.starred::after{content:"★";position:absolute;top:10px;right:12px;color:var(--gold-300,#c9a85f);font-size:16px;line-height:1;text-shadow:0 0 6px rgba(201,168,95,0.4);}
.ji-record.private{background-image:repeating-linear-gradient(135deg,transparent 0,transparent 10px,rgba(142,106,168,0.045) 10px,rgba(142,106,168,0.045) 11px),repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));background-color:var(--color-surface);}
.ji-record.major{border-left-width:4px;box-shadow:0 2px 10px rgba(0,0,0,0.35);}
.ji-record::before{content:"";position:absolute;left:-12px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--sw-c,var(--gold-d));box-shadow:0 0 0 2px var(--color-surface),0 0 0 3px var(--sw-c,var(--gold-d));}

.ji-rec-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;padding-right:24px;}
.ji-src-badge{font-size:14.5px;padding:2px 4px 2px 2px;color:var(--sw-c,var(--gold-400));background:rgba(var(--sw-rgb,184,154,83),0.1);border:1px solid var(--sw-c,var(--gold-400));border-radius:2px;font-family:var(--font-serif);letter-spacing:0.15em;font-weight:500;display:inline-flex;align-items:center;gap:4px;}
.ji-src-badge .ic{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:var(--sw-c,var(--gold-400));color:#1a1410;font-size:14px;font-weight:bold;border-radius:1px;font-family:var(--font-serif);}
.ji-src-badge .nm{padding:0 3px;}

.ji-importance{font-size:14px;padding:1px 6px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;font-weight:500;}
.ji-importance.major{color:var(--vermillion-400);background:rgba(192,64,48,0.1);border:1px solid var(--vermillion-400);}
.ji-importance.normal{color:var(--gold-400);background:rgba(184,154,83,0.08);border:1px solid var(--gold-d);}
.ji-importance.minor{color:var(--ink-300,#6b5d47);background:rgba(107,93,71,0.1);border:1px solid var(--ink-300,#6b5d47);}
.ji-importance::before{content:"◆ ";font-size:9px;opacity:0.7;}
.ji-rec-char{font-family:var(--font-serif);font-size:13.5px;color:var(--color-foreground);letter-spacing:0.12em;font-weight:500;display:inline-flex;align-items:center;gap:4px;}
.ji-rec-char .title{font-size:14.5px;color:var(--ink-300,#6b5d47);font-weight:normal;font-style:italic;letter-spacing:0.05em;}
.ji-private-mark{font-size:14.5px;color:var(--purple-400,#8e6aa8);padding:1px 6px;border:1px dashed var(--purple-400,#8e6aa8);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;background:rgba(142,106,168,0.08);}
.ji-private-mark::before{content:"🔒 ";font-size:13px;}
.ji-rec-time{margin-left:auto;font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.08em;font-style:italic;}
.ji-star-toggle{background:none;border:none;cursor:pointer;color:var(--ink-300,#6b5d47);font-size:14px;line-height:1;padding:0 2px;transition:all 0.2s;}
.ji-star-toggle:hover{color:var(--gold-300,#c9a85f);transform:scale(1.15);}
.ji-star-toggle.on{color:var(--gold-300,#c9a85f);}

.ji-topic{font-size:15.5px;padding:4px 10px;margin-bottom:6px;background:rgba(184,154,83,0.06);border-left:2px solid var(--sw-c,var(--gold-d));border-radius:0 2px 2px 0;color:var(--color-foreground);font-family:var(--font-serif);letter-spacing:0.08em;}
.ji-topic::before{content:"【议题】";color:var(--sw-c,var(--gold-400));margin-right:4px;font-weight:500;letter-spacing:0.15em;}

.ji-attendees{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:6px;padding:3px 0;font-size:14.5px;}
.ji-attendees .lbl{color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.12em;margin-right:2px;}
.ji-atd-chip{display:inline-flex;align-items:center;gap:3px;font-size:14.5px;padding:1px 7px;background:rgba(184,154,83,0.08);border:1px solid var(--color-border-subtle);border-radius:2px;color:var(--color-foreground);font-family:var(--font-serif);letter-spacing:0.05em;}
.ji-atd-chip.speaker{border-color:var(--gold-400);color:var(--gold-400);background:rgba(184,154,83,0.15);}
.ji-atd-chip .dot{display:inline-block;width:5px;height:5px;border-radius:50%;}
.ji-atd-chip.pos .dot{background:var(--celadon-400);} .ji-atd-chip.pos{border-color:var(--celadon-400);}
.ji-atd-chip.neg .dot{background:var(--vermillion-400);} .ji-atd-chip.neg{border-color:var(--vermillion-400);}
.ji-atd-chip.neu .dot{background:var(--ink-500);}

.ji-mood{display:inline-flex;align-items:center;gap:4px;font-size:14px;padding:1px 7px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;}
.ji-mood.harmonic{color:var(--celadon-400);background:rgba(106,154,127,0.08);border:1px solid var(--celadon-400);}
.ji-mood.tense{color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);border:1px solid var(--amber-400,#c9a045);}
.ji-mood.hostile{color:var(--vermillion-400);background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);}
.ji-mood.solemn{color:var(--indigo-400,#5a6fa8);background:rgba(90,111,168,0.08);border:1px solid var(--indigo-400,#5a6fa8);}
.ji-mood::before{content:"◌ ";opacity:0.7;}

/* 对话 */
.ji-dialog{margin-top:4px;display:flex;flex-direction:column;gap:6px;}
.ji-line{position:relative;padding:6px 12px 6px 36px;border-radius:3px;font-family:var(--font-serif);font-size:0.651rem;line-height:1.75;letter-spacing:0.02em;word-break:break-word;}
.ji-line::before{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:15px;font-family:var(--font-serif);font-weight:500;border-radius:2px;}
.ji-line-player{color:var(--color-foreground);background:linear-gradient(to right,rgba(192,64,48,0.1),rgba(192,64,48,0.02) 80%);border-left:2px solid var(--vermillion-400);}
.ji-line-player::before{content:"上";color:#f4eadd;background:var(--vermillion-400);}
.ji-line-npc{color:var(--color-foreground);background:linear-gradient(to right,rgba(184,154,83,0.1),rgba(184,154,83,0.02) 80%);border-left:2px solid var(--gold-400);}
.ji-line-npc::before{content:"臣";color:#1a1410;background:var(--gold-400);}
.ji-line-nar{color:#d4c9b0;font-style:italic;background:rgba(107,93,71,0.08);border-left:2px solid var(--ink-300,#6b5d47);padding-left:12px;font-size:0.625rem;}
.ji-line-nar::before{content:none;}
.ji-line-speaker{font-size:0.7552rem;color:var(--gold-d);margin-bottom:-2px;letter-spacing:0.1em;font-family:var(--font-serif);font-weight:500;padding-left:36px;}

/* 决议 */
.ji-outcome{margin-top:8px;padding:8px 12px;background:linear-gradient(to right,rgba(192,64,48,0.08),rgba(192,64,48,0.02));border:1px solid var(--vermillion-400);border-left:3px solid var(--vermillion-400);border-radius:2px;font-size:0.625rem;color:var(--color-foreground);line-height:1.7;font-family:var(--font-serif);letter-spacing:0.02em;position:relative;}
.ji-outcome::before{content:"【朱批】";color:var(--vermillion-400);font-weight:500;letter-spacing:0.15em;margin-right:6px;}
.ji-outcome.decree::before{content:"【颁诏】";}
.ji-outcome.decision::before{content:"【决议】";}
.ji-outcome.delay{background:linear-gradient(to right,rgba(201,160,69,0.08),rgba(201,160,69,0.02));border-color:var(--amber-400,#c9a045);border-left-color:var(--amber-400,#c9a045);}
.ji-outcome.delay::before{content:"【留中】";color:var(--amber-400,#c9a045);}

/* 变化 */
.ji-delta{margin-top:6px;padding-top:6px;border-top:1px dashed var(--color-border-subtle);display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:14.5px;}
.ji-delta-lbl{color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.15em;margin-right:2px;}
.ji-delta-item{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;font-weight:500;}
.ji-delta-item.up{color:var(--celadon-400);background:rgba(106,154,127,0.1);border:1px solid var(--celadon-400);}
.ji-delta-item.up::before{content:"▲ ";font-size:9px;}
.ji-delta-item.dn{color:var(--vermillion-400);background:rgba(192,64,48,0.1);border:1px solid var(--vermillion-400);}
.ji-delta-item.dn::before{content:"▼ ";font-size:9px;}
.ji-delta-item.mid{color:var(--gold-400);background:rgba(184,154,83,0.08);border:1px solid var(--gold-d);}
.ji-delta-item.mid::before{content:"◆ ";font-size:9px;}

/* 分页 */
.ji-paging{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding:10px 0;}
.ji-pg-btn{width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:14px;border-radius:2px;cursor:pointer;line-height:26px;}
.ji-pg-btn:hover:not(:disabled){color:var(--gold-400);border-color:var(--gold-400);}
.ji-pg-btn:disabled{opacity:0.35;cursor:not-allowed;}
.ji-pg-info{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.08em;}
.ji-pg-info .n{color:var(--gold-400);}

.ji-empty{text-align:center;padding:48px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;line-height:2;}
.ji-empty::before{content:"❖";display:block;color:var(--gold-400);font-size:32px;margin-bottom:12px;opacity:0.5;}

/* ═════════ 史记标签页·美化版（.sj-*）═════════ */
.sj-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);min-height:500px;}
.sj-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.sj-inner{position:relative;z-index:1;}
.sj-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.sj-title::before,.sj-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.sj-title::before{top:0;}
.sj-title::after{bottom:0;}
.sj-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.sj-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);font-style:italic;}
.sj-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}
/* 工具栏 */
.sj-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:14px;flex-wrap:wrap;}
.sj-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.2em;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.sj-search-wrap{position:relative;flex:1;min-width:180px;max-width:300px;}
.sj-search-wrap::before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.sj-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.sj-search:focus{border-color:var(--gold-400);box-shadow:0 0 0 1px rgba(184,154,83,0.25);}
.sj-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.sj-export{padding:5px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;transition:all 0.2s;}
.sj-export:hover{background:rgba(184,154,83,0.15);color:var(--gold-400);border-color:var(--gold-400);}
.sj-export::before{content:"❖";margin-right:4px;opacity:0.7;font-size:14px;}
.sj-stat{margin-left:auto;font-size:15px;color:var(--ink-300,#6b5d47);letter-spacing:0.08em;font-family:var(--font-serif);}
.sj-stat .n{color:var(--gold-400);}
/* 年度分隔 */
.sj-year-sep{display:flex;align-items:center;gap:12px;margin:16px 0 10px;font-family:var(--font-serif);font-size:14px;color:var(--gold-300,#c9a85f);letter-spacing:0.35em;}
.sj-year-sep::before,.sj-year-sep::after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--gold-d) 20%,var(--gold-d) 80%,transparent);}
.sj-year-sep .y-count{font-size:14.5px;color:var(--ink-300,#6b5d47);font-style:italic;letter-spacing:0.1em;}
/* 史记卡片 */
.sj-card{position:relative;display:flex;align-items:stretch;gap:14px;margin-bottom:10px;padding:12px 16px 12px 14px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--gold-d);border-radius:3px;cursor:pointer;transition:all 0.25s;}
.sj-card:hover{border-color:var(--gold-400);box-shadow:0 3px 10px rgba(184,154,83,0.15),0 0 8px rgba(184,154,83,0.08);transform:translateX(2px);}
.sj-card.has-war{border-left-color:var(--vermillion-400);}
.sj-card.has-death{border-left-color:var(--vermillion-600,#8f3428);}
.sj-card.has-major{border-left-color:var(--gold-400);box-shadow:0 0 0 1px rgba(184,154,83,0.12);}
.sj-turn-col{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:92px;padding-right:12px;border-right:1px dashed var(--color-border-subtle);flex-shrink:0;}
.sj-turn-no{font-family:var(--font-serif);font-size:15px;color:var(--gold-d);letter-spacing:0.2em;margin-bottom:4px;}
.sj-turn-no .n{font-size:24px;color:var(--gold-300,#c9a85f);font-weight:700;letter-spacing:0.05em;display:block;line-height:1;text-shadow:0 0 6px rgba(201,168,95,0.25);}
.sj-turn-date{font-size:14.5px;color:#d4c9b0;font-family:var(--font-serif);letter-spacing:0.1em;text-align:center;font-style:italic;line-height:1.4;}
.sj-turn-era{display:inline-block;margin-top:3px;font-size:13.5px;color:var(--amber-400,#c9a045);padding:1px 5px;background:rgba(201,160,69,0.08);border:1px solid var(--amber-400,#c9a045);border-radius:2px;letter-spacing:0.08em;}
.sj-body-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;padding:2px 0;}
.sj-szj-title{font-family:var(--font-serif);font-size:14px;color:var(--gold-400);letter-spacing:0.12em;font-weight:500;}
.sj-szj-title::before{content:"——";color:var(--gold-d);margin-right:4px;opacity:0.7;}
.sj-szj-title::after{content:"——";color:var(--gold-d);margin-left:4px;opacity:0.7;}
.sj-sum{font-size:12.5px;color:var(--color-foreground);line-height:1.75;font-family:var(--font-serif);letter-spacing:0.02em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.sj-record-preview{margin-top:8px;padding-top:7px;border-top:1px dashed rgba(184,154,83,0.18);display:flex;flex-direction:column;gap:5px;}
.sj-preview-line{font-size:12px;line-height:1.7;color:var(--color-foreground-muted);font-family:var(--font-song,"SimSun");letter-spacing:0.02em;white-space:normal;}
.sj-preview-line span{display:inline-block;margin-right:7px;padding:0 5px;border:1px solid rgba(184,154,83,0.28);color:var(--gold-300,#c9a85f);font-family:var(--font-serif);font-size:12px;line-height:1.45;letter-spacing:0.14em;background:rgba(184,154,83,0.06);}
.sj-preview-line.shilu{color:#d6c6aa;}
.sj-preview-line.szj{color:#b8c9bd;}
.sj-tags-row{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:2px;}
.sj-tag{display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:1px 7px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;}
.sj-tag.war{color:var(--vermillion-400);background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);}
.sj-tag.death{color:var(--vermillion-600,#8f3428);background:rgba(143,52,40,0.08);border:1px solid var(--vermillion-600,#8f3428);}
.sj-tag.scheme{color:var(--indigo-400,#5a6fa8);background:rgba(90,111,168,0.08);border:1px solid var(--indigo-400,#5a6fa8);}
.sj-tag.faction{color:var(--purple-400,#8e6aa8);background:rgba(142,106,168,0.08);border:1px solid var(--purple-400,#8e6aa8);}
.sj-tag.event{color:var(--gold-400);background:rgba(184,154,83,0.06);border:1px solid var(--gold-d);}
.sj-tag.calamity{color:var(--amber-400,#c9a045);background:rgba(201,160,69,0.08);border:1px solid var(--amber-400,#c9a045);}
.sj-tag::before{content:"◆";font-size:9px;opacity:0.7;}
.sj-delta-col{display:flex;flex-direction:column;gap:3px;align-items:flex-end;flex-shrink:0;min-width:110px;padding-left:8px;padding-top:4px;}
.sj-delta-badge{display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:1px 6px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.05em;}
.sj-delta-badge .lbl{color:var(--ink-300,#6b5d47);}
.sj-delta-badge.up{color:var(--celadon-400);background:rgba(106,154,127,0.06);border:1px solid var(--celadon-400);}
.sj-delta-badge.up::before{content:"▲ ";font-size:9px;}
.sj-delta-badge.dn{color:var(--vermillion-400);background:rgba(192,64,48,0.06);border:1px solid var(--vermillion-400);}
.sj-delta-badge.dn::before{content:"▼ ";font-size:9px;}
.sj-paging{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding:10px 0;}
.sj-pg-btn{width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:14px;border-radius:2px;cursor:pointer;line-height:26px;}
.sj-pg-btn:hover:not(:disabled){color:var(--gold-400);border-color:var(--gold-400);}
.sj-pg-btn:disabled{opacity:0.35;cursor:not-allowed;}
.sj-pg-info{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.08em;}
.sj-pg-info .n{color:var(--gold-400);}

/* ═════════ 回合推演弹窗·数值变化（.tr-cg-*）═════════ */
.tr-changes-wrap{display:flex;flex-direction:column;gap:12px;}
.tr-cg-block{padding:12px 14px 10px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--cg-c,var(--gold-d));border-radius:3px;}
.tr-cg-hdr{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed var(--color-border-subtle);flex-wrap:wrap;}
.tr-cg-hdr .ic{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--cg-c,var(--gold-400)),var(--ink-100,#3d342a));color:#f4eadd;font-family:var(--font-serif);font-size:12px;font-weight:bold;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 1px 2px rgba(0,0,0,0.4);}
.tr-cg-hdr .lab{font-family:var(--font-serif);font-size:14px;letter-spacing:0.2em;color:var(--cg-c,var(--gold-400));font-weight:500;}
.tr-cg-hdr .sub{font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.08em;font-style:italic;}
.tr-cg-hdr .count{margin-left:auto;font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);padding:1px 8px;background:rgba(184,154,83,0.06);border:1px solid var(--color-border-subtle);border-radius:2px;letter-spacing:0.08em;}
.tr-cg-highlight{--cg-c:var(--gold-300,#c9a85f);}
.tr-cg-guoku{--cg-c:var(--gold-400);}
.tr-cg-neitang{--cg-c:var(--amber-400,#c9a045);}
.tr-cg-hukou{--cg-c:var(--celadon-400);}
.tr-cg-politic{--cg-c:var(--indigo-400,#5a6fa8);}
.tr-cg-military{--cg-c:var(--vermillion-400);}
.tr-cg-faction{--cg-c:var(--purple-400,#8e6aa8);}
.tr-cg-party{--cg-c:var(--purple-400,#8e6aa8);}
.tr-cg-class{--cg-c:var(--celadon-400);}
.tr-cg-char{--cg-c:var(--gold-400);}
.tr-cg-disaster{--cg-c:var(--vermillion-400);}
.tr-cg-items{display:flex;flex-direction:column;gap:4px;}
.tr-cg-group-tools{display:flex;justify-content:flex-end;gap:6px;margin:-2px 0 8px;}
.tr-cg-group-btn{font-family:var(--font-serif);font-size:13.5px;line-height:1;padding:4px 9px;color:var(--color-foreground-muted);background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;cursor:pointer;letter-spacing:0.06em;}
.tr-cg-group-btn:hover{color:var(--gold-400);border-color:var(--gold-400);background:rgba(184,154,83,0.09);}
.tr-cg-fold-items{gap:7px;}
.tr-cg-fold-group{border:1px solid var(--color-border-subtle);border-left:2px solid var(--cg-c,var(--gold-d));background:rgba(184,154,83,0.022);border-radius:2px;overflow:hidden;}
.tr-cg-fold-summary{display:flex;align-items:center;gap:8px;min-height:32px;padding:7px 10px;cursor:pointer;font-family:var(--font-serif);color:var(--color-foreground);list-style-position:inside;}
.tr-cg-fold-summary:hover{background:rgba(184,154,83,0.045);}
.tr-cg-fold-name{font-size:13.5px;letter-spacing:0.12em;color:var(--color-foreground);white-space:nowrap;}
.tr-cg-fold-count{font-size:13px;color:var(--cg-c,var(--gold-400));border:1px solid rgba(184,154,83,0.22);background:rgba(184,154,83,0.045);padding:1px 6px;border-radius:2px;white-space:nowrap;}
.tr-cg-fold-reason{font-size:13.5px;color:var(--color-foreground-muted);font-style:italic;letter-spacing:0.03em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-cg-fold-body{display:flex;flex-direction:column;gap:4px;padding:0 8px 8px 12px;}
.tr-cg-fold-body .tr-cg-item{background:rgba(184,154,83,0.018);}
.tr-cg-item{display:grid;grid-template-columns:170px auto 1fr;gap:14px;align-items:flex-start;padding:7px 10px 7px 12px;background:rgba(184,154,83,0.025);border:1px solid transparent;border-left:2px solid var(--it-c,var(--color-border-subtle));border-radius:2px;transition:all 0.15s;}
.tr-cg-item:hover{background:rgba(184,154,83,0.05);border-color:var(--color-border-subtle);}
.tr-cg-item.warn{--it-c:var(--amber-400,#c9a045);background:rgba(201,160,69,0.04);}
.tr-cg-item.danger{--it-c:var(--vermillion-400);background:rgba(192,64,48,0.04);}
.tr-cg-name{font-family:var(--font-serif);font-size:12.5px;color:var(--color-foreground);letter-spacing:0.08em;display:flex;align-items:center;gap:5px;line-height:1.4;padding-top:1px;flex-wrap:wrap;}
.tr-cg-name .mini-ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--cg-c,var(--gold-d));color:#1a1410;font-size:14px;font-weight:bold;border-radius:2px;font-family:var(--font-serif);flex-shrink:0;opacity:0.85;}
.tr-cg-name .sub-lbl{font-size:14px;color:var(--ink-300,#6b5d47);font-weight:normal;font-style:italic;letter-spacing:0.04em;}
.tr-cg-vals{font-family:var(--font-serif);font-size:15.5px;color:var(--color-foreground-muted);white-space:nowrap;display:inline-flex;align-items:center;gap:3px;padding-top:2px;flex-wrap:wrap;}
.tr-cg-vals .old{color:var(--ink-300,#6b5d47);}
.tr-cg-vals .arr{color:var(--gold-d);margin:0 2px;}
.tr-cg-vals .new{color:var(--color-foreground);font-weight:500;}
.tr-cg-vals .unit{color:var(--ink-300,#6b5d47);font-size:14px;}
.tr-cg-vals .delta{margin-left:6px;padding:1px 6px;border-radius:2px;font-weight:500;font-size:15px;letter-spacing:0.03em;}
.tr-cg-vals .delta.up{color:var(--celadon-400);background:rgba(106,154,127,0.1);border:1px solid var(--celadon-400);}
.tr-cg-vals .delta.dn{color:var(--vermillion-400);background:rgba(192,64,48,0.1);border:1px solid var(--vermillion-400);}
.tr-cg-vals .delta.flat{color:var(--ink-300,#6b5d47);background:rgba(107,93,71,0.08);border:1px solid var(--ink-300,#6b5d47);}
/* 2026-07-06 去符号图标：涨跌由 +/− 号与配色承担·▲▼ 前缀退役 */
.tr-cg-reasons{font-size:15.5px;color:var(--color-foreground-muted);font-family:var(--font-serif);line-height:1.6;letter-spacing:0.02em;display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.tr-reason-chip{display:inline-flex;align-items:center;gap:3px;font-size:14.5px;padding:1px 7px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.05em;border:1px solid var(--r-c,var(--gold-d));color:var(--r-c,var(--gold-400));background:rgba(var(--r-rgb,184,154,83),0.05);white-space:nowrap;}
.tr-reason-chip.pos{--r-c:var(--celadon-400);--r-rgb:106,154,127;}
.tr-reason-chip.neg{--r-c:var(--vermillion-400);--r-rgb:184,71,56;}
.tr-reason-chip.neu{--r-c:var(--gold-d);--r-rgb:107,90,48;}
.tr-reason-chip.warn{--r-c:var(--amber-400,#c9a045);--r-rgb:201,160,69;}
.tr-reason-chip .v{font-weight:500;margin-left:2px;}
.tr-reason-txt{color:var(--color-foreground-muted);font-style:italic;letter-spacing:0.02em;flex:1;min-width:0;}
.tr-reason-txt::before{content:"—";color:var(--ink-300,#6b5d47);margin-right:4px;opacity:0.7;}
.tr-cg-highlight .tr-cg-items{gap:5px;}
.tr-cg-highlight .tr-cg-item{background:linear-gradient(to right,rgba(201,168,95,0.08),rgba(184,154,83,0.02));border-left-width:3px;border-left-color:var(--gold-300,#c9a85f);grid-template-columns:1fr;gap:6px;}
.tr-cg-highlight .tr-cg-name{font-size:13px;font-weight:500;}
.tr-cg-subhdr{display:flex;align-items:center;gap:6px;margin:6px 0 4px;padding:0 4px;font-family:var(--font-serif);font-size:15.5px;color:var(--cg-c,var(--gold-400));letter-spacing:0.18em;}
.tr-cg-subhdr::before,.tr-cg-subhdr::after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(184,154,83,0.25) 20%,rgba(184,154,83,0.25) 80%,transparent);}
.tr-cg-subhdr::before{flex:0 0 8px;}
.tr-cg-subhdr .v{color:var(--ink-300,#6b5d47);font-size:14px;margin-left:4px;font-style:italic;font-weight:normal;letter-spacing:0.08em;}
@media (max-width:780px){.tr-cg-item{grid-template-columns:1fr;gap:4px;}.tr-cg-vals{padding-top:0;}}

/* ═════════ 回合推演弹窗·全套骨架（.tr-modal）═════════ */
.turn-modal{
  --color-background:#1a1510;
  --color-surface:#2a2218;
  --color-elevated:#30281f;
  --color-sunken:#0a0908;
  --color-foreground:#f4eadd;
  --color-foreground-secondary:#d4c9b0;
  --color-foreground-muted:#d4be7a;
  --color-border:#3a3530;
  --color-border-subtle:#2a2520;
  --color-border-emphasis:#8a6d2b;
  --bg-0:#0a0908;
  --bg-1:#1a1510;
  --bg-2:#1c1914;
  --bg-3:#2a2520;
  --bg-4:#3a3530;
  --txt:#f4eadd;
  --txt-s:#d4c9b0;
  --txt-d:#d4be7a;
  --bdr:#3a3530;
  --gold:#b89a53;
  --gold-l:#d4be7a;
  --gold-d:#8a6d2b;
  --red:#c04030;
  --green:#7a9e6d;
  --blue:#4a6fa5;
  --purple:#8e44ad;
  --ink-50:#f8f3e8;
  --ink-100:#ede5d0;
  --ink-200:#d4c9b0;
  --ink-300:#9d917d;
  --ink-400:#6b5d4f;
  --ink-500:#3a3530;
  --ink-600:#2a2520;
  --ink-700:#1c1914;
  --ink-800:#12100e;
  --ink-900:#0a0908;
}
.tr-modal-wrap{width:min(1480px,98vw);height:min(980px,94vh);max-height:94vh;margin:0 auto;background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.035) 2.5em,rgba(107,93,71,0.035) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 100px);border:1px solid var(--gold-d);border-radius:4px;box-shadow:0 12px 40px rgba(0,0,0,0.7),0 0 0 1px rgba(201,168,95,0.15),0 0 60px rgba(184,154,83,0.08);position:relative;display:flex;flex-direction:column;overflow:hidden;}
.tr-modal-wrap::before,.tr-modal-wrap::after{content:"";position:absolute;width:24px;height:24px;border:2px solid var(--gold-400);z-index:2;opacity:0.55;pointer-events:none;}
.tr-modal-wrap::before{top:6px;left:6px;border-right:none;border-bottom:none;}
.tr-modal-wrap::after{bottom:6px;right:6px;border-left:none;border-top:none;}

/* 头部 */
.tr-head{position:relative;padding:18px 32px 16px;border-bottom:1px solid var(--gold-d);background:linear-gradient(to bottom,rgba(184,154,83,0.07),transparent);flex-shrink:0;}
.tr-head::after{content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);width:120px;height:1px;background:linear-gradient(to right,transparent,var(--gold-400),transparent);}
.tr-nav{display:flex;align-items:center;gap:12px;}
.tr-nav-btn{width:26px;height:26px;padding:0;background:rgba(184,154,83,0.06);border:1px solid var(--gold-d);color:#d4c9b0;border-radius:2px;cursor:pointer;font-size:14px;line-height:22px;font-family:var(--font-serif);transition:all 0.2s;flex-shrink:0;}
.tr-nav-btn:hover:not(:disabled){color:var(--gold-400);border-color:var(--gold-400);background:rgba(184,154,83,0.15);}
.tr-nav-btn:disabled{opacity:0.3;cursor:not-allowed;}
.tr-title-wrap{flex:1;text-align:center;min-width:0;}
.tr-turn-no{font-family:var(--font-serif);font-size:15px;color:var(--gold-d);letter-spacing:0.3em;margin-bottom:4px;}
.tr-date{font-family:var(--font-serif);font-size:18px;color:var(--color-foreground);letter-spacing:0.25em;font-weight:500;text-shadow:0 0 10px rgba(201,168,95,0.25);}
.tr-era-chip{font-size:15px;color:var(--amber-400,#c9a045);padding:1px 8px;background:rgba(201,160,69,0.08);border:1px solid var(--amber-400,#c9a045);border-radius:2px;margin-left:8px;letter-spacing:0.1em;vertical-align:middle;display:inline-block;}
.tr-seal{position:absolute;top:10px;right:20px;width:48px;height:48px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.9),rgba(140,40,30,0.85));display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);transform:rotate(-8deg);box-shadow:0 3px 8px rgba(140,40,30,0.5);z-index:3;letter-spacing:0.05em;}
.tr-seal .t{font-size:15px;font-weight:bold;letter-spacing:0.12em;}
.tr-seal .b{font-size:13.5px;opacity:0.85;margin-top:1px;}
.tr-close-x{position:absolute;top:12px;left:20px;width:28px;height:28px;padding:0;background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);color:var(--vermillion-400);font-family:var(--font-serif);font-size:13px;border-radius:50%;cursor:pointer;line-height:24px;transition:all 0.2s;z-index:3;}
.tr-close-x:hover{background:rgba(192,64,48,0.15);transform:scale(1.1);}

/* 一句话总曰 */
.tr-summary-bar{padding:12px 22px;background:linear-gradient(to right,transparent,rgba(184,154,83,0.06) 15%,rgba(184,154,83,0.06) 85%,transparent);text-align:center;font-family:var(--font-serif);font-size:15px;color:var(--gold-300,#c9a85f);letter-spacing:0.15em;font-style:italic;border-bottom:1px dashed var(--color-border-subtle);position:relative;flex-shrink:0;}
.tr-summary-bar::before,.tr-summary-bar::after{color:var(--gold-400);font-family:var(--font-serif);font-size:18px;position:absolute;top:12px;opacity:0.55;}
.tr-summary-bar::before{content:"\201C";left:18px;}
.tr-summary-bar::after{content:"\201D";right:18px;}

/* 要闻标签 */
.tr-critical-bar{padding:9px 22px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--color-border-subtle);background:rgba(0,0,0,0.15);flex-shrink:0;}
.tr-critical-lbl{font-family:var(--font-serif);font-size:15px;color:#d4c9b0;letter-spacing:0.2em;margin-right:4px;}
.tr-critical-tag{display:inline-flex;align-items:center;gap:4px;font-size:15px;padding:2px 10px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.15em;font-weight:500;border:1px solid var(--tag-color,var(--gold-d));color:var(--tag-color,var(--gold-400));background:rgba(var(--tag-rgb,184,154,83),0.1);}
.tr-critical-tag.war{--tag-color:var(--vermillion-400);--tag-rgb:184,71,56;}
.tr-critical-tag.death{--tag-color:var(--vermillion-600,#8f3428);--tag-rgb:143,52,40;}
.tr-critical-tag.scheme{--tag-color:var(--indigo-400,#5a6fa8);--tag-rgb:90,111,168;}
.tr-critical-tag.faction{--tag-color:var(--purple-400,#8e6aa8);--tag-rgb:142,106,168;}
.tr-critical-tag.calamity{--tag-color:var(--amber-400,#c9a045);--tag-rgb:201,160,69;}
.tr-critical-tag::before{content:"";width:5px;height:5px;background:currentColor;border-radius:1px;display:inline-block;opacity:0.7;}

/* 主体 */
.tr-body-wrap{flex:1;overflow-y:auto;padding:18px 28px 16px;}

/* 段标题 */
.tr-section{margin-bottom:22px;}
.tr-section:last-child{margin-bottom:0;}
.tr-section-hdr{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:6px;}
.tr-section-hdr .lab{font-family:var(--font-serif);font-size:15px;letter-spacing:0.25em;padding:4px 16px 5px;background:linear-gradient(to bottom,rgba(157,130,68,0.14),rgba(157,130,68,0.04));border-top:1px solid var(--sec-c,var(--gold-400));border-bottom:1px solid var(--sec-c,var(--gold-400));color:var(--sec-c,var(--gold-300));font-weight:500;}
.tr-section-hdr .lab::before,.tr-section-hdr .lab::after{content:"❖";color:var(--sec-c,var(--gold-400));font-size:14px;margin:0 6px;opacity:0.65;}
.tr-section-hdr .meta{font-size:15px;color:var(--ink-300,#6b5d47);font-style:italic;letter-spacing:0.1em;}
.tr-section.shilu{--sec-c:var(--gold-400);}
.tr-section.szj{--sec-c:var(--celadon-400);}
.tr-section.changes{--sec-c:var(--amber-400,#c9a045);}
.tr-section.personnel{--sec-c:var(--indigo-400,#5a6fa8);}
.tr-section.houren{--sec-c:var(--purple-400,#8e6aa8);}
.tr-section.battle{--sec-c:var(--vermillion-400);}

/* 实录·文言体卷轴 */
.tr-shilu{padding:18px 28px 22px 44px;background-color:#ebddc0;background-image:linear-gradient(to right,transparent 20px,rgba(192,64,48,0.18) 20px,rgba(192,64,48,0.18) 21px,transparent 22px,transparent 26px,rgba(192,64,48,0.1) 26px,rgba(192,64,48,0.1) 27px,transparent 28px),repeating-linear-gradient(0deg,transparent 0,transparent 31px,rgba(139,90,50,0.1) 31px,rgba(139,90,50,0.1) 32px),radial-gradient(ellipse at 30% 20%,rgba(184,154,83,0.08),transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(139,90,50,0.06),transparent 50%);background-size:auto,100% 32px,100% 100%,100% 100%;color:#2a1810;font-family:var(--font-serif);font-size:14.5px;line-height:32px;text-indent:2em;border:1px solid rgba(107,60,40,0.35);border-radius:3px;box-shadow:0 4px 14px rgba(0,0,0,0.5);position:relative;white-space:pre-wrap;}
.tr-shilu-seal{position:absolute;top:10px;right:14px;width:36px;height:36px;border-radius:3px;background:linear-gradient(to bottom right,rgba(192,64,48,0.88),rgba(140,40,30,0.92));display:flex;align-items:center;justify-content:center;color:rgba(244,234,221,0.95);font-family:var(--font-serif);font-size:15px;font-weight:bold;letter-spacing:0.1em;box-shadow:0 1px 3px rgba(140,40,30,0.5);transform:rotate(-4deg);text-indent:0;}

/* 时政记 */
.tr-szj-title{text-align:center;font-family:var(--font-serif);font-size:14px;color:var(--gold-400);font-weight:700;letter-spacing:0.25em;padding:6px 0 10px;border-bottom:1px dashed var(--gold-d);margin-bottom:12px;}
.tr-szj-title::before,.tr-szj-title::after{content:"——";color:var(--gold-d);margin:0 8px;opacity:0.7;}
.tr-szj-content{line-height:1.95;color:var(--color-foreground);font-family:var(--font-song,"SimSun");letter-spacing:0.02em;padding:0 6px;}
.tr-szj-content p{margin:0 0 10px 0;text-indent:2em;}
.tr-szj-summary{margin-top:12px;padding:8px 14px;background:linear-gradient(to right,rgba(184,154,83,0.08),rgba(184,154,83,0.02));border-left:3px solid var(--gold-400);border-radius:0 2px 2px 0;font-style:italic;color:var(--celadon-400);text-align:center;font-size:12.5px;letter-spacing:0.08em;font-family:var(--font-serif);}
.tr-szj-summary::before{content:"【总曰】";color:var(--gold-400);margin-right:6px;font-weight:500;letter-spacing:0.15em;font-style:normal;}

/* 展开切换 */
.tr-detail-toggle{margin:16px auto;padding:8px 28px;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(to right,transparent,rgba(184,154,83,0.12) 30%,rgba(184,154,83,0.12) 70%,transparent);border-top:1px dashed var(--gold-d);border-bottom:1px dashed var(--gold-d);cursor:pointer;color:var(--gold-300,#c9a85f);font-family:var(--font-serif);font-size:13px;letter-spacing:0.3em;transition:all 0.2s;}
.tr-detail-toggle:hover{color:var(--gold-400);background:linear-gradient(to right,transparent,rgba(184,154,83,0.2) 30%,rgba(184,154,83,0.2) 70%,transparent);}
.tr-detail-toggle .arrow{display:inline-block;transition:transform 0.25s;font-size:14px;}
.tr-detail-toggle.open .arrow{transform:rotate(180deg);}
.tr-detail-content{display:none;}
.tr-detail-content.show{display:block;}

/* 人事变动 */
.tr-personnel-list{display:flex;flex-direction:column;gap:6px;}
.tr-person-row{display:flex;align-items:center;gap:10px;padding:6px 10px;background:rgba(184,154,83,0.03);border:1px solid var(--color-border-subtle);border-left:3px solid var(--pr-c,var(--gold-d));border-radius:2px;font-size:0.625rem;flex-wrap:wrap;}
.tr-person-row .type{font-family:var(--font-serif);font-size:0.7552rem;padding:1px 6px;color:var(--pr-c);background:rgba(var(--pr-rgb),0.08);border:1px solid var(--pr-c);border-radius:2px;letter-spacing:0.12em;flex-shrink:0;white-space:nowrap;}
.tr-person-row.promote{--pr-c:var(--celadon-400);--pr-rgb:106,154,127;}
.tr-person-row.demote{--pr-c:var(--vermillion-400);--pr-rgb:184,71,56;}
.tr-person-row.death{--pr-c:var(--vermillion-600,#8f3428);--pr-rgb:143,52,40;}
.tr-person-row.birth{--pr-c:var(--celadon-400);--pr-rgb:106,154,127;}
.tr-person-row.appoint{--pr-c:var(--gold-400);--pr-rgb:184,154,83;}
.tr-person-row.fire{--pr-c:var(--vermillion-400);--pr-rgb:184,71,56;}
.tr-person-row.mourn{--pr-c:var(--amber-400,#c9a045);--pr-rgb:201,160,69;}
.tr-person-row.retire{--pr-c:var(--ink-300,#6b5d47);--pr-rgb:107,93,71;}
.tr-person-row .who{font-family:var(--font-serif);color:var(--color-foreground);letter-spacing:0.1em;font-weight:500;}
.tr-person-row .from-to{flex:1;color:var(--color-foreground-muted);font-size:0.8073rem;min-width:0;}
.tr-person-row .from-to .arrow{color:var(--gold-400);margin:0 6px;}

/* 后人戏说 */
.tr-houren-box{padding:14px 18px;background:linear-gradient(to bottom right,rgba(142,106,168,0.06),rgba(142,106,168,0.02) 50%,rgba(184,154,83,0.04)),var(--color-surface);border:1px dashed var(--purple-400,#8e6aa8);border-radius:3px;line-height:1.95;color:var(--color-foreground);font-family:var(--font-serif);letter-spacing:0.02em;position:relative;font-style:italic;white-space:pre-wrap;}
.tr-houren-box::before{content:"\5F18";position:absolute;top:8px;left:-1px;font-family:var(--font-serif);font-size:14px;color:var(--purple-400,#8e6aa8);padding:1px 5px;background:var(--color-surface);border:1px solid var(--purple-400,#8e6aa8);border-radius:2px;letter-spacing:0.15em;}
.tr-houren-box::after{content:"\540E\4EBA\620F\8BF4";position:absolute;bottom:8px;right:12px;font-family:var(--font-serif);font-size:14px;color:var(--purple-400,#8e6aa8);opacity:0.7;letter-spacing:0.25em;}

/* 战况 */
.tr-battle-vis{display:flex;flex-direction:column;gap:8px;}
.tr-battle-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(192,64,48,0.04);border:1px solid var(--vermillion-400);border-left:3px solid var(--vermillion-400);border-radius:2px;font-size:12px;flex-wrap:wrap;}
.tr-battle-row .loc{font-family:var(--font-serif);font-size:13px;color:var(--color-foreground);letter-spacing:0.1em;font-weight:500;min-width:90px;}
.tr-battle-row .vs{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
.tr-battle-row .vs-side{flex:1;text-align:center;font-family:var(--font-serif);color:var(--color-foreground-muted);letter-spacing:0.05em;}
.tr-battle-row .vs-vs{font-family:var(--font-serif);color:var(--vermillion-400);font-size:15px;letter-spacing:0.2em;}
.tr-battle-row .verdict{font-family:var(--font-serif);font-size:12px;padding:2px 10px;border-radius:2px;letter-spacing:0.15em;font-weight:500;flex-shrink:0;}
.tr-battle-row .verdict.win{color:#1a1410;background:linear-gradient(to bottom,var(--celadon-400),var(--celadon-600,#4a7a5f));border:1px solid var(--celadon-400);}
.tr-battle-row .verdict.lose{color:#f4eadd;background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));border:1px solid var(--vermillion-600,#8f3428);}
.tr-battle-row .verdict.draw{color:#1a1410;background:linear-gradient(to bottom,var(--amber-400,#c9a045),var(--amber-600,#8f6f28));border:1px solid var(--amber-400,#c9a045);}

/* 底部 */
.tr-footer{padding:14px 28px;border-top:1px solid var(--gold-d);display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(to top,rgba(184,154,83,0.05),transparent);flex-shrink:0;flex-wrap:wrap;}
.tr-footer-hint{font-size:15px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.1em;font-style:italic;}
.tr-footer-actions{display:flex;gap:10px;}
.tr-btn{padding:8px 20px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);font-size:13px;letter-spacing:0.2em;border-radius:2px;cursor:pointer;transition:all 0.2s;}
.tr-btn:hover{background:rgba(184,154,83,0.2);border-color:var(--gold-400);transform:translateY(-1px);}
.tr-btn.primary{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;border:1px solid var(--vermillion-600,#8f3428);padding:8px 28px;font-size:14px;letter-spacing:0.4em;box-shadow:0 1px 3px rgba(140,40,30,0.4),inset 0 1px 0 rgba(255,255,255,0.1);}
.tr-btn.primary:hover{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-400));box-shadow:0 2px 6px rgba(140,40,30,0.5);}
.tr-btn.primary::before{content:"❖";margin-right:6px;opacity:0.75;}

/* ═════════ 史记弹窗·御览分卷（.sjc-*·2026-07-06 重做）═════════
   旧结构类（.tr-detail-toggle/.turn-section 等）保留——旧存档 html 历史回放仍走旧类。
   新结构：.sjc-frame = 左卷目(spine) + 右卷体(pages)·默认落总览卷。 */
.tr-body-wrap:has(> .sjc-frame){overflow:hidden;padding:0;}
.sjc-frame{display:flex;height:100%;min-height:0;position:relative;}
/* 弹窗开卷入场（wrap 级·一次编排·reduced-motion 关） */
.turn-modal.show .tr-modal-wrap{animation:sjcWrapIn 0.32s cubic-bezier(0.22,0.8,0.3,1);}
@keyframes sjcWrapIn{from{opacity:0;transform:translateY(14px) scale(0.988);}to{opacity:1;transform:none;}}
/* 卷目——古籍函套题签形制：窄栏竖排签条·字印居顶·卷名竖读·计数坠底 */
.sjc-spine{display:flex;flex-direction:column;gap:5px;padding:46px 10px 10px 12px;border-right:1px solid var(--color-border-subtle);background:linear-gradient(to right,rgba(0,0,0,0.22),rgba(0,0,0,0.06));flex-shrink:0;width:86px;position:sticky;top:0;align-self:flex-start;max-height:100%;overflow-y:auto;align-items:center;}
.sjc-tab{display:flex;flex-direction:column;align-items:center;gap:4px;width:56px;padding:5px 0 5px;background:linear-gradient(to bottom,rgba(184,154,83,0.07),rgba(184,154,83,0.02));border:1px solid var(--color-border-subtle);border-top:3px solid rgba(107,90,48,0.4);border-radius:0 0 2px 2px;cursor:pointer;font-family:var(--font-serif);color:var(--color-foreground-secondary);transition:all 0.18s;position:relative;}
.sjc-tab:hover{background:linear-gradient(to bottom,rgba(184,154,83,0.14),rgba(184,154,83,0.04));border-color:var(--gold-d);border-top-color:var(--gold-d);color:var(--gold-300,#c9a85f);}
.sjc-tab.on{background:linear-gradient(to bottom,rgba(184,154,83,0.2),rgba(184,154,83,0.05));border-color:var(--gold-400);border-top-color:var(--vermillion-400);color:var(--gold-300,#c9a85f);box-shadow:0 2px 10px rgba(0,0,0,0.35),inset 0 0 14px rgba(184,154,83,0.07);}
.sjc-tab.hollow{opacity:0.42;}
.sjc-tab.hollow:hover{opacity:0.8;}
.sjc-tab-g{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,rgba(184,154,83,0.35),rgba(61,52,42,0.9));border:1px solid var(--gold-d);color:#f4eadd;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-serif);position:relative;}
.sjc-tab.on .sjc-tab-g{background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.9),rgba(140,40,30,0.85));border-color:var(--vermillion-400);box-shadow:0 1px 4px rgba(140,40,30,0.5);}
.sjc-tab-t{writing-mode:vertical-rl;font-size:14px;letter-spacing:0.22em;line-height:1;white-space:nowrap;padding:1px 0;}
/* 计数改印章右上角标（竖签空间金贵·徽章不再占纵向格） */
.sjc-tab-n{position:absolute;top:2px;right:3px;font-size:10.5px;color:var(--ink-300,#9d917d);background:rgba(20,16,12,0.92);border:1px solid var(--color-border-subtle);border-radius:7px;padding:0 4px;line-height:12px;}
.sjc-tab.on .sjc-tab-n{color:var(--gold-400);border-color:var(--gold-d);}
.sjc-tab.alert::after{content:"";position:absolute;top:-2px;left:-2px;width:8px;height:8px;border-radius:50%;background:var(--vermillion-400);box-shadow:0 0 6px rgba(192,64,48,0.8);}
/* 骑缝章——盖在卷目与卷体接缝顶端（封口之制·签名元素）·印面右起竖读「天命史宝」 */
.sjc-seam-seal{position:absolute;left:56px;top:8px;transform:rotate(-7deg);width:46px;height:46px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;place-items:center;background:linear-gradient(145deg,rgba(178,52,40,0.92),rgba(126,32,26,0.9));border:1px solid rgba(240,200,160,0.35);border-radius:4px;box-shadow:0 3px 10px rgba(0,0,0,0.5),inset 0 0 8px rgba(255,220,190,0.14);color:#f6e8d4;font-family:var(--font-serif);font-size:14.5px;font-weight:700;line-height:1;z-index:4;pointer-events:none;opacity:0.9;}
.sjc-seam-seal span{transform:rotate(0.5deg);}
/* 卷体 */
.sjc-pages{flex:1;min-width:0;overflow-y:auto;padding:18px 26px 20px;}
.sjc-vol{display:none;position:relative;}
.sjc-vol.on{display:block;animation:sjcVolIn 0.22s ease;}
/* 卷首巨字水印（描边淡显·同过回合加载层 v3 阶段水印手法） */
.sjc-vol::before{content:attr(data-glyph);position:absolute;top:-38px;right:-6px;font-family:var(--font-serif);font-size:210px;font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(201,168,95,0.075);pointer-events:none;user-select:none;z-index:0;}
.sjc-vol>*{position:relative;z-index:1;}
@keyframes sjcVolIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){.sjc-vol.on{animation:none;}.turn-modal.show .tr-modal-wrap{animation:none;}}
/* 空态 */
.sjc-empty{text-align:center;padding:64px 20px;color:var(--ink-300,#9d917d);}
.sjc-empty-glyph{font-size:28px;color:var(--gold-d);opacity:0.5;margin-bottom:14px;}
.sjc-empty-line{font-family:var(--font-serif);font-size:16px;letter-spacing:0.3em;color:var(--color-foreground-secondary);}
.sjc-empty-sub{font-size:13px;font-style:italic;margin-top:8px;letter-spacing:0.12em;}
/* 单字印 */
.sjc-glyph{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:2px;background:rgba(184,154,83,0.18);border:1px solid var(--gold-d);color:var(--gold-300,#c9a85f);font-size:12px;font-family:var(--font-serif);vertical-align:-3px;margin-right:2px;}
/* 总览卷·头版制大题（szjTitle 升头版·楷体大字） */
.sjc-ov-head{text-align:center;padding:10px 0 18px;position:relative;}
.sjc-ov-head::after{content:"";position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:220px;height:1px;background:linear-gradient(to right,transparent,var(--gold-400),transparent);}
.sjc-ov-title{font-family:var(--font-serif);font-size:clamp(30px,3.2vw,44px);font-weight:700;letter-spacing:0.22em;line-height:1.25;color:transparent;background:linear-gradient(180deg,#f0dca6 0%,#d4be7a 45%,#9a7a35 85%,#e8d49a 100%);-webkit-background-clip:text;background-clip:text;text-shadow:0 10px 30px rgba(0,0,0,0.4);}
.sjc-ov-subtitle{margin-top:10px;font-family:var(--font-serif);font-size:14px;color:var(--color-foreground-muted);font-style:italic;letter-spacing:0.28em;}
.sjc-ov-subtitle::before,.sjc-ov-subtitle::after{content:"·";color:var(--gold-d);margin:0 10px;}
/* 总览卷·国势水位（核心指标条+前值刻度+近势 spark） */
.sjc-core-bars{display:flex;flex-direction:column;gap:8px;}
.sjc-core-row{display:grid;grid-template-columns:3.2em minmax(0,1fr) 2.4em 2.8em 78px;align-items:center;gap:10px;padding:5px 10px;background:rgba(0,0,0,0.14);border:1px solid var(--color-border-subtle);border-radius:2px;}
.sjc-core-row .n{font-family:var(--font-serif);font-size:13.5px;letter-spacing:0.12em;color:var(--color-foreground-secondary);white-space:nowrap;}
.sjc-core-row .track{position:relative;height:9px;background:rgba(0,0,0,0.32);border:1px solid rgba(107,93,71,0.35);border-radius:1px;overflow:visible;}
/* 空槽用同 hue 浅档（dataviz meter 规格：state reads across whole bar·:has 不支持时回落上行黑槽） */
.sjc-core-row .track:has(.fill.high){background:rgba(106,154,127,0.12);}
.sjc-core-row .track:has(.fill.mid){background:rgba(184,154,83,0.12);}
.sjc-core-row .track:has(.fill.low){background:rgba(192,64,48,0.12);}
.sjc-ef-dim .bar:has(.fill.good){background:rgba(106,154,127,0.12);}
.sjc-ef-dim .bar:has(.fill.mid){background:rgba(184,154,83,0.12);}
.sjc-ef-dim .bar:has(.fill.bad){background:rgba(192,64,48,0.12);}
/* 战役时间线（sjc 卷内增强）：点带 2px 底色环·底衬 hairline 时间线·对齐修正 */
.sjc-vol .battle-timeline-track{position:relative;padding:4px 0;gap:8px;}
.sjc-vol .battle-timeline-track::before{content:"";position:absolute;left:2px;right:2px;top:50%;height:1px;background:rgba(107,93,71,0.4);}
.sjc-vol .timeline-dot{margin-top:0;position:relative;box-shadow:0 0 0 2px var(--color-surface,#2a2218);}
.sjc-core-row .fill{height:100%;border-radius:1px;transition:width 0.5s ease;}
.sjc-core-row .fill.high{background:linear-gradient(to right,rgba(106,154,127,0.4),var(--celadon-400));}
.sjc-core-row .fill.mid{background:linear-gradient(to right,rgba(184,154,83,0.35),var(--gold-400));}
.sjc-core-row .fill.low{background:linear-gradient(to right,rgba(192,64,48,0.4),var(--vermillion-400));}
.sjc-core-row .tick{position:absolute;top:-3px;bottom:-3px;width:1.5px;background:rgba(244,234,221,0.65);box-shadow:0 0 3px rgba(0,0,0,0.8);}
.sjc-core-row .v{font-family:var(--font-serif);font-size:16px;font-weight:700;color:var(--color-foreground);text-align:right;font-feature-settings:"tnum";}
.sjc-core-row .d{font-size:12.5px;text-align:left;font-family:var(--font-serif);}
.sjc-core-row .d.good{color:var(--celadon-400);}
.sjc-core-row .d.bad{color:var(--vermillion-400);}
.sjc-core-row .d.flat{color:var(--ink-300,#6b5d47);opacity:0.6;}
.sjc-spark{display:block;justify-self:end;opacity:0.9;}
/* 卷首行（非总览卷开卷仪式：卷之N·卷名大字·装裱线·提要注） */
.sjc-vol-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;padding:0 0 10px 24px;position:relative;}
.sjc-vol-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(to right,var(--gold-400) 0,rgba(184,154,83,0.35) 30%,transparent 90%);}
.sjc-vol-head .vh-no{font-family:var(--font-serif);font-size:13px;color:var(--gold-d);letter-spacing:0.3em;white-space:nowrap;}
.sjc-vol-head .vh-name{font-family:var(--font-serif);font-size:26px;font-weight:700;letter-spacing:0.4em;color:var(--gold-300,#c9a85f);line-height:1;white-space:nowrap;text-shadow:0 0 18px rgba(201,168,95,0.2);}
.sjc-vol-head .vh-rule{flex:1;}
.sjc-vol-head .vh-note{font-size:12.5px;color:var(--ink-300,#9d917d);font-style:italic;letter-spacing:0.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%;}
/* 开卷编排：卷内容依次浮现（transform/opacity only·前八子元素 stagger） */
.sjc-vol.on>*{animation:sjcRise 0.32s cubic-bezier(0.22,0.8,0.3,1) both;}
.sjc-vol.on>*:nth-child(1){animation-delay:0.02s;}
.sjc-vol.on>*:nth-child(2){animation-delay:0.07s;}
.sjc-vol.on>*:nth-child(3){animation-delay:0.12s;}
.sjc-vol.on>*:nth-child(4){animation-delay:0.17s;}
.sjc-vol.on>*:nth-child(5){animation-delay:0.22s;}
.sjc-vol.on>*:nth-child(6){animation-delay:0.26s;}
.sjc-vol.on>*:nth-child(7){animation-delay:0.30s;}
.sjc-vol.on>*:nth-child(n+8){animation-delay:0.34s;}
@keyframes sjcRise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
/* 骑缝章落印（开卷后 0.28s 盖下） */
.turn-modal.show .sjc-seam-seal{animation:sjcSealStamp 0.4s cubic-bezier(0.2,1.5,0.4,1) 0.28s both;}
@keyframes sjcSealStamp{from{opacity:0;transform:rotate(-7deg) scale(1.65);}65%{opacity:1;transform:rotate(-7deg) scale(0.94);}to{opacity:0.9;transform:rotate(-7deg) scale(1);}}
@media (prefers-reduced-motion: reduce){.sjc-vol.on>*{animation:none;}.turn-modal.show .sjc-seam-seal{animation:none;}}
/* 键盘焦点环（弹窗全交互件·金环不遮内容） */
.sjc-tab:focus-visible,.sjc-ov-nav:focus-visible,.turn-modal .tr-btn:focus-visible,.turn-modal .tr-nav-btn:focus-visible,.turn-modal .tr-close-x:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px;}
/* 按压反馈（transform 不移布局） */
.sjc-tab:active{transform:scale(0.96);}
.sjc-ov-nav:active{transform:scale(0.985);}
/* 提要卡改真按钮后的 UA 样式复位 */
.sjc-ov-nav{font:inherit;text-align:left;color:inherit;}
/* 实录卷长文限宽（80+ 字/行超可读上限·限 46em 居中如奏疏页宽） */
.sjc-vol[data-vol="annals"] .tr-szj-content{max-width:46em;margin:0 auto;}
.sjc-vol[data-vol="misc"] .tr-houren-box{max-width:52em;}
/* 卷首行次要文字对比微调（ink-300 于 12.5px 小字对比不足） */
.sjc-vol-head .vh-note{color:var(--ink-200,#d4c9b2);opacity:0.75;}
/* 总览卷 */
.sjc-ov-sec{margin-bottom:20px;}
.sjc-ov-sec-hd{font-family:var(--font-serif);font-size:0.7292rem;letter-spacing:0.3em;color:var(--gold-300,#c9a85f);margin-bottom:10px;display:flex;align-items:center;gap:10px;}
.sjc-ov-sec-hd::before{content:"❖";color:var(--gold-400);font-size:12px;opacity:0.65;}
.sjc-ov-sec-hd::after{content:"";flex:1;height:1px;background:linear-gradient(to right,rgba(184,154,83,0.3),transparent);}
.sjc-ov-chips{display:flex;flex-wrap:wrap;gap:7px;}
/* 账签形制：方角·左缘色线·如账册红黑记项 */
.sjc-ov-chip{font-family:var(--font-serif);font-size:0.7031rem;padding:4px 12px 4px 10px;border-radius:0;letter-spacing:0.08em;border:1px solid rgba(107,93,71,0.5);border-left:3px solid var(--ink-300,#6b5d47);color:var(--color-foreground-secondary);background:rgba(0,0,0,0.14);}
.sjc-ov-chip.good{border-left-color:var(--celadon-400);color:var(--celadon-400);}
.sjc-ov-chip.bad{border-left-color:var(--vermillion-400);color:var(--vermillion-400);}
.sjc-ov-hls{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:6px 10px;}
.sjc-ov-hl{display:flex;align-items:baseline;gap:10px;padding:7px 12px;background:linear-gradient(to right,rgba(201,168,95,0.07),rgba(184,154,83,0.015));border:1px solid var(--color-border-subtle);border-left:3px solid var(--gold-300,#c9a85f);border-radius:2px;font-size:0.6771rem;flex-wrap:wrap;}
.sjc-ov-hl.warn{border-left-color:var(--amber-400,#c9a045);}
.sjc-ov-hl.danger{border-left-color:var(--vermillion-400);}
.sjc-ov-hl .n{font-family:var(--font-serif);color:var(--color-foreground);letter-spacing:0.1em;font-weight:500;white-space:nowrap;}
.sjc-ov-hl .s{font-family:var(--font-serif);color:var(--gold-400);font-size:12.5px;white-space:nowrap;}
.sjc-ov-hl.warn .s{color:var(--amber-400,#c9a045);}
.sjc-ov-hl.danger .s{color:var(--vermillion-400);}
.sjc-ov-hl .r{color:var(--color-foreground-muted);font-size:12.5px;font-style:italic;flex:1;min-width:0;}
.sjc-ov-navs{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;}
.sjc-ov-nav{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.045);border:1px solid var(--color-border-subtle);border-radius:3px;cursor:pointer;transition:all 0.18s;position:relative;}
.sjc-ov-nav:hover{background:rgba(184,154,83,0.11);border-color:var(--gold-400);transform:translateY(-1px);}
.sjc-ov-nav.hollow{opacity:0.5;}
.sjc-ov-nav.alert{border-color:rgba(192,64,48,0.4);}
.sjc-ov-nav.alert::before{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--vermillion-400);box-shadow:0 0 6px rgba(192,64,48,0.8);}
.sjc-ov-nav .g{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,rgba(184,154,83,0.4),rgba(61,52,42,0.95));border:1px solid var(--gold-d);color:#f4eadd;font-family:var(--font-serif);font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sjc-ov-nav .t{font-family:var(--font-serif);font-size:14px;letter-spacing:0.2em;color:var(--color-foreground);white-space:nowrap;}
.sjc-ov-nav .d{flex:1;min-width:0;font-size:12.5px;color:var(--color-foreground-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sjc-ov-nav .c{font-size:12px;color:var(--gold-400);background:rgba(0,0,0,0.22);border:1px solid var(--gold-d);border-radius:8px;padding:0 7px;line-height:17px;flex-shrink:0;}
.sjc-ov-nav .go{color:var(--gold-d);font-size:16px;flex-shrink:0;}
.sjc-ov-now{margin-top:18px;text-align:center;font-family:var(--font-serif);font-size:13px;color:var(--gold-d);letter-spacing:0.2em;font-style:italic;}
.sjc-ov-now::before,.sjc-ov-now::after{content:"——";opacity:0.5;margin:0 10px;}
/* 时政记段落 */
.sjc-szj-para{margin-bottom:10px;text-indent:2em;}
.sjc-szj-para.tagged{padding-left:0.5rem;border-left:2px solid var(--gold-d);}
.sjc-para-tag{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;color:var(--ink-300,#9d917d);margin-right:6px;letter-spacing:0.08em;text-indent:0;}
.sjc-src{font-weight:bold;}
.sjc-src.guan{color:var(--gold-400);}
.sjc-src.mi{color:var(--indigo-400,#7986cb);}
.sjc-src.fang{color:var(--ink-300,#9d917d);font-style:italic;font-weight:normal;}
.sjc-src.cha{color:var(--celadon-400);}
.sjc-place{color:var(--celadon-400);text-decoration:underline dotted;cursor:help;}
/* 角色状态 */
.sjc-status-row{display:flex;gap:10px;padding:8px 12px;margin-bottom:8px;background:rgba(184,154,83,0.03);border:1px solid var(--color-border-subtle);border-left:3px solid var(--gold-d);border-radius:2px;}
.sjc-status-row.nei{border-left-color:var(--purple-400,#8e6aa8);}
.sjc-status-lab{font-family:var(--font-serif);font-size:12px;color:var(--gold-d);letter-spacing:0.15em;flex-shrink:0;padding-top:2px;}
.sjc-status-row.nei .sjc-status-lab{color:var(--purple-400,#8e6aa8);}
.sjc-status-txt{flex:1;line-height:1.8;color:var(--color-foreground-secondary);font-size:13px;}
.sjc-status-txt.inner{font-style:italic;}
/* 帝王私行 */
.sjc-tyrant-efx{font-size:12px;text-align:center;color:var(--color-foreground-muted);margin-top:0.3rem;}
.sjc-tyrant-react{margin-top:0.5rem;padding:0.4rem 0.6rem;background:rgba(0,0,0,0.14);border-radius:3px;font-size:12.5px;line-height:1.8;}
.sjc-tyrant-react-hd{color:var(--ink-300,#9d917d);margin-bottom:0.2rem;font-family:var(--font-serif);letter-spacing:0.12em;}
.sjc-tyrant-milestone{margin-top:0.5rem;padding:0.6rem 0.8rem;background:linear-gradient(135deg,rgba(142,68,173,0.08),rgba(44,62,80,0.1));border-radius:4px;font-size:13px;color:var(--color-foreground-secondary);text-align:center;line-height:1.7;font-style:italic;}
/* 势力动态 */
.sjc-facevt-row{padding:0.4rem 0.7rem;margin-bottom:0.35rem;background:rgba(138,109,27,0.06);border-radius:3px;font-size:13px;border-left:3px solid var(--gold-d);line-height:1.7;}
.sjc-facevt-actor{color:var(--gold-400);font-weight:700;font-family:var(--font-serif);}
.sjc-facevt-row .arr{color:var(--gold-d);}
.sjc-facevt-target{color:var(--color-foreground-secondary);}
.sjc-facevt-result{color:var(--color-foreground-muted);}
/* 战况详情表 */
.sjc-battle-detail,.sjc-army-roster{margin-top:10px;padding:7px 9px;background:rgba(0,0,0,0.18);border:1px solid var(--color-border-subtle);border-radius:3px;}
.sjc-battle-detail>summary,.sjc-army-roster>summary{cursor:pointer;font-size:13px;color:var(--gold-300,#c9a96e);font-family:var(--font-serif);letter-spacing:0.06em;}
.sjc-battle-detail>summary:hover,.sjc-army-roster>summary:hover{color:var(--gold-400);}
.sjc-battle-table{width:100%;font-size:12.5px;margin-top:8px;border-collapse:collapse;}
.sjc-battle-table th{text-align:left;padding:4px 6px;color:var(--ink-300,#9d917d);font-weight:normal;font-family:var(--font-serif);letter-spacing:0.1em;border-bottom:1px solid var(--color-border-subtle);}
.sjc-battle-table td{padding:4px 6px;border-bottom:1px solid rgba(255,255,255,0.04);}
.sjc-battle-table td.dim{color:var(--ink-300,#9d917d);}
.sjc-attr-tag{padding:2px 7px;border-radius:2px;font-size:11.5px;background:rgba(150,150,150,0.16);letter-spacing:0.05em;}
.sjc-attr-tag.cmd{background:rgba(220,80,80,0.2);}
.sjc-attr-tag.ldr{background:rgba(220,180,80,0.2);}
.sjc-attr-tag.loc{background:rgba(120,180,120,0.2);}
.sjc-attr-tag.thr{background:rgba(220,180,80,0.3);}
.sjc-attr-tag.ban{background:rgba(180,120,180,0.2);}
.sjc-attr-tag.sta{background:rgba(120,120,180,0.2);}
.sjc-army-warn{margin-top:7px;padding:6px 9px;background:rgba(220,80,80,0.14);border-left:3px solid var(--vermillion-500,#dc2626);font-size:12.5px;color:var(--vermillion-300,#fca5a5);border-radius:2px;}
/* 数值卷·帑廪赤字/岁计流水 */
.tr-cg-hdr.sjc-deficit{background:linear-gradient(to right,rgba(192,64,48,0.15),transparent);border-left:3px solid var(--vermillion-400);border-bottom:none;padding:6px 8px;margin-bottom:4px;border-radius:2px;}
.tr-cg-hdr.sjc-deficit .ic{background:var(--vermillion-400);color:#fef4e8;}
.tr-cg-hdr.sjc-deficit .lab{color:#d4706a;}
.tr-cg-hdr.sjc-deficit .sub{color:var(--vermillion-400);}
.tr-cg-ledger{--cg-c:var(--gold-300,#c9a85f);}
.sjc-ledger-grp{margin-bottom:10px;}
.sjc-ledger-grp-hd{font-family:var(--font-serif);font-size:13px;font-weight:700;letter-spacing:0.15em;margin-bottom:4px;}
.sjc-ledger-grp-hd.pos{color:var(--celadon-400);}
.sjc-ledger-grp-hd.neg{color:var(--vermillion-400);}
.sjc-ledger-row{display:flex;justify-content:space-between;padding:3px 4px;border-bottom:1px solid rgba(255,255,255,0.04);font-size:12.5px;}
.sjc-ledger-row .n{color:var(--color-foreground-secondary);}
.sjc-ledger-row .v.pos{color:var(--celadon-400);}
.sjc-ledger-row .v.neg{color:var(--vermillion-400);}
.sjc-ledger-row.total{font-weight:700;border-bottom:none;border-top:2px solid var(--celadon-400);padding-top:4px;}
.sjc-ledger-row.total.neg{border-top-color:var(--vermillion-400);}
.sjc-ledger-net{display:flex;justify-content:space-between;padding:7px 10px;background:rgba(0,0,0,0.16);border-radius:3px;font-weight:700;font-size:14px;font-family:var(--font-serif);letter-spacing:0.08em;}
.sjc-ledger-net.pos{color:var(--celadon-400);}
.sjc-ledger-net.neg{color:var(--vermillion-400);}
.tr-reason-chip.stop{border-color:rgba(160,150,130,0.45);color:var(--color-foreground-secondary);}
.tr-reason-chip.blocked{background:rgba(192,64,48,0.18);border:1px solid var(--vermillion-400);color:#fef4e8;}
.tr-reason-chip.shortfall{border-color:var(--vermillion-400);color:#d4706a;}
.tr-reason-chip.shortfall .short{color:var(--vermillion-400);margin-left:4px;font-size:0.85em;}
/* 御批回听 */
.sjc-ef{padding:0.2rem 0 0;}
.sjc-ef-overall.good{color:var(--celadon-400);}
.sjc-ef-overall.mid{color:var(--gold-400);}
.sjc-ef-overall.bad{color:var(--vermillion-400);}
.sjc-ef-dims{display:grid;grid-template-columns:1fr 1fr;gap:0.3rem 0.9rem;margin-bottom:0.7rem;padding:0.5rem 0.7rem;background:rgba(0,0,0,0.12);border-radius:3px;}
.sjc-ef-dim{display:flex;align-items:center;gap:7px;font-size:12px;}
.sjc-ef-dim .n{width:2.6em;color:var(--ink-300,#9d917d);font-family:var(--font-serif);}
.sjc-ef-dim .bar{flex:1;height:4px;background:rgba(0,0,0,0.25);border-radius:2px;overflow:hidden;}
.sjc-ef-dim .fill{height:100%;}
.sjc-ef-dim .fill.good{background:var(--celadon-400);}
.sjc-ef-dim .fill.mid{background:var(--gold-400);}
.sjc-ef-dim .fill.bad{background:var(--vermillion-400);}
.sjc-ef-dim .v{width:2em;text-align:right;}
.sjc-ef-dim .v.good{color:var(--celadon-400);}
.sjc-ef-dim .v.mid{color:var(--gold-400);}
.sjc-ef-dim .v.bad{color:var(--vermillion-400);}
.sjc-ef-report{margin-bottom:0.6rem;padding:0.55rem 0.75rem;background:rgba(0,0,0,0.12);border-radius:3px;border-left:2px solid var(--ef-c,var(--gold-d));font-size:12.5px;}
.sjc-ef-report.executed{--ef-c:var(--celadon-400);}
.sjc-ef-report.partial{--ef-c:var(--gold-400);}
.sjc-ef-report.delayed{--ef-c:var(--amber-400,#c9a045);}
.sjc-ef-report.ignored{--ef-c:var(--vermillion-400);}
.sjc-ef-report-hd{display:flex;justify-content:space-between;margin-bottom:0.25rem;}
.sjc-ef-report-hd .st{color:var(--ef-c,var(--gold-d));font-weight:600;font-family:var(--font-serif);letter-spacing:0.08em;}
.sjc-ef-report-hd .lv{color:var(--ink-300,#9d917d);font-size:11.5px;}
.sjc-ef-content{color:var(--color-foreground-secondary);margin-bottom:0.3rem;line-height:1.7;}
.sjc-ef-line{font-size:12px;line-height:1.6;margin-top:0.2rem;color:var(--color-foreground-secondary);}
.sjc-ef-line.dim{color:var(--ink-300,#9d917d);}
.sjc-ef-line.far{color:var(--purple-300,#b89ec8);}
.sjc-ef-line.cost{color:var(--amber-400,#c9a045);}
.sjc-ef-line.opp{color:var(--vermillion-400);}
.sjc-ef-line.missed{color:var(--ef-c,var(--vermillion-400));}
.sjc-ef-line.advice{color:var(--gold-400);margin-top:0.3rem;}
.sjc-ef-line.pop{color:var(--amber-400,#c9a045);}
.sjc-ef-sub-hd{font-size:12.5px;color:var(--gold-d);margin-bottom:0.4rem;font-family:var(--font-serif);letter-spacing:0.2em;}
.sjc-ef-unexpected{margin-top:0.6rem;border-top:1px dashed rgba(255,255,255,0.12);padding-top:0.5rem;}
.sjc-ef-uevt{margin-top:0.3rem;padding:0.4rem 0.6rem;background:rgba(0,0,0,0.1);border-radius:3px;font-size:12px;border-left:2px solid var(--uv-c,var(--ink-300,#9d917d));}
.sjc-ef-uevt.sev-wei{--uv-c:var(--red,#c03030);}
.sjc-ef-uevt.sev-zhong{--uv-c:var(--vermillion-400);}
.sjc-ef-uevt.sev-mid{--uv-c:var(--amber-400,#c9a045);}
.sjc-ef-uevt .hd{display:flex;gap:6px;align-items:center;margin-bottom:0.15rem;}
.sjc-ef-uevt .sev{color:var(--uv-c,var(--ink-300));font-weight:600;}
.sjc-ef-uevt .cat{color:var(--ink-300,#9d917d);font-size:11px;}
.sjc-ef-uevt .t{color:var(--color-foreground-secondary);font-weight:500;}
.sjc-ef-react{margin-top:0.6rem;padding:0.45rem 0.65rem;background:rgba(142,106,168,0.08);border-radius:3px;font-size:12px;}
.sjc-ef-react .fac-clear{color:var(--celadon-400);}
.sjc-ef-react .fac-eunuch{color:var(--vermillion-400);}
.sjc-ef-react .fac-neutral{color:var(--color-foreground-secondary);}
.sjc-ef-oppsum{margin-top:0.4rem;padding:0.35rem 0.65rem;background:rgba(176,64,48,0.08);border-left:2px solid var(--vermillion-400);border-radius:2px;font-size:12px;color:var(--vermillion-400);}
.sjc-ef-insight{margin-top:0.4rem;padding:0.45rem 0.65rem;background:rgba(74,154,74,0.08);border-left:2px solid var(--celadon-400);border-radius:2px;font-size:12.5px;color:var(--celadon-400);}
.sjc-ef-priority{margin-top:0.4rem;padding:0.45rem 0.65rem;background:rgba(201,168,76,0.15);border-radius:3px;font-size:13px;color:var(--gold-400);}
/* 前议追责 */
.sjc-ty-case{margin-bottom:0.5rem;padding:0.5rem 0.7rem;background:rgba(0,0,0,0.12);border-radius:3px;border-left:2px solid var(--ty-c,var(--ink-300,#9d917d));font-size:12.5px;}
.sjc-ty-case.ok{--ty-c:var(--celadon-400);}
.sjc-ty-case.part{--ty-c:var(--ink-300,#9d917d);}
.sjc-ty-case.un{--ty-c:var(--amber-400,#c9a045);}
.sjc-ty-case.back{--ty-c:var(--vermillion-400);}
.sjc-ty-hd{display:flex;align-items:center;gap:8px;margin-bottom:0.25rem;flex-wrap:wrap;}
.sjc-ty-hd .oc{color:var(--ty-c,var(--ink-300));font-weight:600;font-family:var(--font-serif);}
.sjc-ty-hd .venue{padding:1px 6px;background:rgba(0,0,0,0.18);border-radius:2px;font-size:11px;color:var(--gold-400);border:1px solid var(--gold-d);}
.sjc-ty-hd .delay{margin-left:auto;color:var(--ink-300,#9d917d);font-size:11.5px;}
.sjc-ty-edict{color:var(--color-foreground-secondary);margin-bottom:0.3rem;line-height:1.7;}
.sjc-ty-actors{font-size:12px;color:var(--ink-300,#9d917d);}
.sjc-ty-actors .party{color:var(--gold-400);}
/* 一致性附录 */
.sjc-cnst{margin-top:1.2rem;}
.sjc-cnst-fold{border:1px solid rgba(192,64,48,0.25);border-radius:4px;background:linear-gradient(to bottom,rgba(192,64,48,0.04),rgba(20,15,10,0.02));overflow:hidden;}
.sjc-cnst-fold>summary{cursor:pointer;padding:8px 14px;display:flex;align-items:center;gap:10px;background:rgba(192,64,48,0.08);user-select:none;list-style-position:inside;flex-wrap:wrap;}
.sjc-cnst-t{color:var(--vermillion-400);font-weight:bold;font-size:13px;font-family:var(--font-serif);letter-spacing:0.06em;}
.sjc-cnst-meta{color:var(--color-foreground-secondary);font-size:12px;}
.sjc-cnst-mode{padding:2px 8px;border-radius:10px;font-size:11px;}
.sjc-cnst-mode.strict{background:rgba(80,160,80,0.15);color:#7ab07a;}
.sjc-cnst-mode.fb{background:rgba(184,154,83,0.15);color:var(--gold-400);}
.sjc-cnst-body{padding:12px 16px;font-size:12.5px;color:var(--color-foreground-secondary);}
.sjc-cnst-cap{color:var(--ink-300,#9d917d);margin-bottom:4px;font-size:12px;}
.sjc-cnst-pill{display:inline-block;padding:2px 8px;margin:2px;background:rgba(192,64,48,0.12);border:1px solid rgba(192,64,48,0.3);border-radius:10px;font-size:11.5px;color:var(--vermillion-400);}
.sjc-cnst-dom{margin:6px 0;padding:6px 10px;background:rgba(184,154,83,0.05);border-left:2px solid var(--gold-400);font-size:12.5px;}
.sjc-cnst-dom-hd{color:var(--gold-400);font-weight:bold;margin-bottom:3px;}
.sjc-cnst-row{color:var(--color-foreground-secondary);padding:2px 0;}
.sjc-cnst-more{color:var(--ink-300,#9d917d);font-size:11.5px;padding:2px 0;}
.sjc-cnst-none{color:var(--ink-300,#9d917d);font-style:italic;}
.sjc-cnst-foot{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(184,154,83,0.2);color:var(--ink-300,#9d917d);font-size:11.5px;line-height:1.6;}
.sjc-cnst-foot code{color:var(--gold-400);}
/* 新卷体内·后人戏说印章让位（「弘」印 absolute 压正文首字·截图自审定罪） */
.sjc-vol .tr-houren-box{padding-left:46px;}
/* 矮视口（笔记本 768 高等）：竖排题签纵向放不下·签转紧凑横条·骑缝章缩位 */
@media (max-height:900px){
  .sjc-spine{padding-top:40px;gap:4px;width:96px;}
  .sjc-tab{flex-direction:row;width:76px;padding:4px 6px;gap:5px;border-top:1px solid var(--color-border-subtle);border-left:3px solid transparent;border-radius:2px;justify-content:flex-start;}
  .sjc-tab.on{border-left-color:var(--vermillion-400);border-top-color:var(--gold-400);}
  .sjc-tab-t{writing-mode:horizontal-tb;font-size:12.5px;letter-spacing:0.06em;padding:0;}
  .sjc-tab-g{width:18px;height:18px;font-size:10.5px;}
  .sjc-tab-n{top:auto;bottom:-4px;right:-2px;}
  .sjc-seam-seal{width:38px;height:38px;font-size:12px;left:74px;top:4px;}
}
/* 移动端：卷目转顶部横滚签（竖排题签属性全部重置回横排） */
@media (max-width:900px){
  .sjc-frame{flex-direction:column;}
  .tr-footer-hint{display:none;}
  .sjc-seam-seal{display:none;}
  .sjc-vol::before{font-size:120px;top:-20px;}
  .sjc-spine{flex-direction:row;width:100%;max-height:none;overflow-x:auto;overflow-y:hidden;padding:8px 10px;border-right:none;border-bottom:1px solid var(--color-border-subtle);position:static;gap:6px;align-items:stretch;}
  .sjc-tab{width:auto;flex-shrink:0;flex-direction:row;align-items:center;min-height:44px;padding:5px 12px;gap:6px;border-top:1px solid var(--color-border-subtle);border-left:3px solid transparent;border-radius:2px;}
  .sjc-tab.on{border-left-color:var(--vermillion-400);border-top-color:var(--gold-400);}
  .sjc-tab-t{writing-mode:horizontal-tb;font-size:12.5px;letter-spacing:0.08em;padding:0;}
  .sjc-tab-g{width:20px;height:20px;font-size:11px;}
  .sjc-tab-n{display:none;}
  .sjc-tab.alert::after{top:2px;right:2px;}
  .sjc-pages{padding:12px 12px 16px;}
  .sjc-ov-navs{grid-template-columns:1fr;}
  .sjc-ov-hls{grid-template-columns:1fr;}
  .sjc-ef-dims{grid-template-columns:1fr;}
}

/* ═════════ 地方舆情标签页（.df-*）═════════ */
.df-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);min-height:500px;width:100%;box-sizing:border-box;}
.df-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.df-inner{position:relative;z-index:1;}
.df-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.df-title::before,.df-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.df-title::before{top:0;} .df-title::after{bottom:0;}
.df-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.df-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);font-style:italic;}
.df-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

/* 统计栏 */
.df-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;}
.df-stat-card{padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--sc-c,var(--gold-d));border-radius:3px;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));}
.df-stat-card.s-all{--sc-c:var(--gold-400);}
.df-stat-card.s-zhi{--sc-c:var(--celadon-400);}
.df-stat-card.s-fan{--sc-c:var(--indigo-400,#5a6fa8);}
.df-stat-card.s-ji{--sc-c:var(--purple-400,#8e6aa8);}
.df-stat-card.s-crisis{--sc-c:var(--vermillion-400);}
.df-stat-lbl{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground-muted);letter-spacing:0.25em;margin-bottom:4px;}
.df-stat-num{font-family:var(--font-serif);font-size:22px;color:var(--sc-c);letter-spacing:0.05em;font-weight:700;line-height:1;}
.df-stat-sub{font-size:14.5px;color:var(--ink-300,#6b5d47);margin-top:3px;font-style:italic;}

/* 工具栏 */
.df-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:14px;flex-wrap:wrap;}
.df-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.2em;padding-right:6px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;}
.df-search-wrap{position:relative;flex:1;min-width:180px;max-width:260px;}
.df-search-wrap::before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.df-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.df-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.df-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;}
.df-chk input{accent-color:var(--vermillion-400);}
.df-export{padding:5px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;}
.df-export::before{content:"❖";margin-right:4px;opacity:0.7;font-size:14px;}

/* 图例 */
.df-legend{display:flex;gap:8px 12px;padding:8px 14px;margin-bottom:14px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;font-size:15px;flex-wrap:wrap;align-items:center;}
.df-legend-lbl{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-right:4px;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.df-legend-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;font-size:15px;border:1px solid var(--chip-c);color:var(--chip-c);background:rgba(var(--chip-rgb),0.06);}
.df-legend-chip.zhi{--chip-c:var(--celadon-400);--chip-rgb:106,154,127;}
.df-legend-chip.fan{--chip-c:var(--indigo-400,#5a6fa8);--chip-rgb:90,111,168;}
.df-legend-chip.ji{--chip-c:var(--purple-400,#8e6aa8);--chip-rgb:142,106,168;}
.df-legend-chip.tu{--chip-c:var(--amber-400,#c9a045);--chip-rgb:201,160,69;}
.df-legend-chip.shu{--chip-c:var(--gold-400);--chip-rgb:184,154,83;}
.df-legend-chip .num{color:var(--chip-c);font-weight:500;font-size:14px;opacity:0.85;}

/* 预警条 */
.df-alerts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.df-alert{flex:1;min-width:280px;padding:10px 14px;background:rgba(192,64,48,0.06);border:1px dashed var(--a-c,var(--vermillion-400));border-left:3px solid var(--a-c,var(--vermillion-400));border-radius:3px;display:flex;align-items:center;gap:10px;font-size:12px;}
.df-alert.warn{--a-c:var(--amber-400,#c9a045);background:rgba(201,160,69,0.06);}
.df-alert.info{--a-c:var(--celadon-400);background:rgba(106,154,127,0.06);}
.df-alert .ic{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--a-c),var(--ink-100,#3d342a));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:14px;font-weight:bold;flex-shrink:0;}
.df-alert .lbl{color:var(--a-c);letter-spacing:0.1em;font-family:var(--font-serif);font-weight:500;margin-right:4px;}
.df-alert .txt{flex:1;color:var(--color-foreground);line-height:1.5;}

/* 省份卡网格 */
.df-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;}
.df-card{position:relative;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--auton-c,var(--gold-d));border-radius:3px;overflow:hidden;transition:all 0.25s;cursor:pointer;}
.df-card:hover{border-color:var(--gold-400);box-shadow:0 3px 12px rgba(184,154,83,0.15),0 0 8px rgba(184,154,83,0.1);transform:translateY(-2px);}
.df-card.crisis{border-left-color:var(--vermillion-400);background:linear-gradient(to right,rgba(192,64,48,0.04),var(--color-surface) 30%);}
.df-card.crisis::after{content:"⚠";position:absolute;top:6px;right:10px;color:var(--vermillion-400);font-size:16px;text-shadow:0 0 6px rgba(192,64,48,0.4);z-index:1;}
.df-zhi{--auton-c:var(--celadon-400);--auton-rgb:106,154,127;}
.df-fan{--auton-c:var(--indigo-400,#5a6fa8);--auton-rgb:90,111,168;}
.df-ji{--auton-c:var(--purple-400,#8e6aa8);--auton-rgb:142,106,168;}
.df-tu{--auton-c:var(--amber-400,#c9a045);--auton-rgb:201,160,69;}
.df-shu{--auton-c:var(--gold-400);--auton-rgb:184,154,83;}
.df-card-hdr{display:flex;align-items:center;gap:8px;padding:10px 14px 8px;background:linear-gradient(to right,rgba(var(--auton-rgb),0.12),transparent);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;}
.df-card-name{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground);letter-spacing:0.2em;font-weight:500;}
.df-auton-chip{display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:1px 7px;border-radius:2px;background:rgba(var(--auton-rgb),0.15);color:var(--auton-c);border:1px solid var(--auton-c);font-family:var(--font-serif);letter-spacing:0.12em;font-weight:500;}
.df-auton-chip::before{content:"●";font-size:9px;opacity:0.8;margin-right:1px;}
.df-fac-tag{font-size:14px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.08em;font-style:italic;}
.df-pop-main{margin-left:auto;font-family:var(--font-serif);font-size:13px;color:var(--gold-400);letter-spacing:0.05em;display:inline-flex;align-items:baseline;gap:3px;}
.df-pop-main .n{font-size:15px;font-weight:700;color:var(--gold-300,#c9a85f);}
.df-pop-main .u{font-size:14px;color:var(--ink-300,#6b5d47);}
.df-card-body{padding:10px 14px 12px;display:flex;flex-direction:column;gap:8px;}

/* 条形图 */
.df-bars{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;}
.df-bar{display:flex;align-items:center;gap:6px;font-size:14.5px;font-family:var(--font-serif);letter-spacing:0.06em;}
.df-bar-lbl{color:#d4c9b0;width:30px;flex-shrink:0;letter-spacing:0.15em;}
.df-bar-track{flex:1;height:6px;background:rgba(107,93,71,0.22);border-radius:3px;overflow:hidden;}
.df-bar-fill{height:100%;background:var(--bar-c,var(--gold-400));border-radius:3px;transition:width 0.4s;}
.df-bar-val{min-width:26px;text-align:right;color:var(--color-foreground);font-weight:500;font-size:15px;}
.df-bar.minxin .df-bar-fill{--bar-c:var(--celadon-400);}
.df-bar.minxin.mid .df-bar-fill{--bar-c:var(--gold-400);}
.df-bar.minxin.lo .df-bar-fill{--bar-c:var(--vermillion-400);}
.df-bar.corruption.hi .df-bar-fill{--bar-c:var(--vermillion-400);}
.df-bar.corruption.mid .df-bar-fill{--bar-c:var(--amber-400,#c9a045);}
.df-bar.corruption .df-bar-fill{--bar-c:var(--celadon-400);}
.df-bar.unrest.hi .df-bar-fill{--bar-c:var(--vermillion-400);}
.df-bar.unrest.mid .df-bar-fill{--bar-c:var(--amber-400,#c9a045);}
.df-bar.unrest .df-bar-fill{--bar-c:var(--celadon-400);}
.df-bar.prosperity .df-bar-fill{--bar-c:var(--gold-400);}
.df-bar.env.hi .df-bar-fill{--bar-c:var(--vermillion-400);}
.df-bar.env.mid .df-bar-fill{--bar-c:var(--amber-400,#c9a045);}
.df-bar.env .df-bar-fill{--bar-c:var(--celadon-400);}

/* 户口细项 */
.df-pop-detail{display:flex;gap:4px;flex-wrap:wrap;padding:6px 8px;background:linear-gradient(to right,rgba(106,154,127,0.04),transparent);border-left:2px solid var(--celadon-400);border-radius:0 2px 2px 0;font-size:14.5px;}
.df-pop-item{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);color:var(--color-foreground);letter-spacing:0.05em;}
.df-pop-item .lbl{color:var(--ink-300,#6b5d47);font-size:14px;}
.df-pop-item .v{color:var(--color-foreground);font-weight:500;}
.df-pop-item.warn .v{color:var(--amber-400,#c9a045);}
.df-pop-item.danger .v{color:var(--vermillion-400);}
.df-pop-item + .df-pop-item::before{content:"·";color:var(--ink-300,#6b5d47);opacity:0.5;margin:0 2px;}

/* 财政 */
.df-fiscal{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:6px 8px;background:linear-gradient(to right,rgba(201,160,69,0.04),transparent);border-left:2px solid var(--amber-400,#c9a045);border-radius:0 2px 2px 0;font-size:14.5px;}
.df-fiscal-item{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);color:var(--color-foreground);}
.df-fiscal-item .lbl{color:var(--ink-300,#6b5d47);font-size:14px;letter-spacing:0.08em;}
.df-fiscal-item .v{color:var(--gold-400);font-weight:500;letter-spacing:0.05em;}
.df-fiscal-item.income .v{color:var(--celadon-400);}
.df-fiscal-item.pubtr .v{color:var(--amber-400,#c9a045);}

/* 公库 */
.df-treasury-row{display:flex;gap:6px;font-size:14px;padding:5px 8px;background:rgba(184,154,83,0.04);border-radius:2px;border-left:2px solid var(--gold-d);align-items:center;flex-wrap:wrap;}
.df-treasury-row .lbl{color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.1em;font-size:14px;}
.df-treasury-row .item{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-serif);}
.df-treasury-row .item .k{color:#d4c9b0;font-size:13px;}
.df-treasury-row .item.gold .v{color:var(--gold-400);}
.df-treasury-row .item.grain .v{color:var(--celadon-400);}
.df-treasury-row .item.cloth .v{color:var(--amber-400,#c9a045);}

/* 事件徽章 */
.df-events{display:flex;gap:4px;flex-wrap:wrap;}
.df-event-chip{display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:1px 6px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;border:1px solid var(--ev-c);color:var(--ev-c);background:rgba(var(--ev-rgb),0.06);}
.df-event-chip.calamity{--ev-c:var(--amber-400,#c9a045);--ev-rgb:201,160,69;}
.df-event-chip.rebellion{--ev-c:var(--vermillion-400);--ev-rgb:184,71,56;}
.df-event-chip.plague{--ev-c:var(--purple-400,#8e6aa8);--ev-rgb:142,106,168;}
.df-event-chip.war{--ev-c:var(--vermillion-400);--ev-rgb:184,71,56;}
.df-event-chip.flood{--ev-c:var(--blue-400,#5a8fb8);--ev-rgb:90,143,184;}
.df-event-chip.drought{--ev-c:var(--amber-400,#c9a045);--ev-rgb:201,160,69;}
.df-event-chip.bumper{--ev-c:var(--celadon-400);--ev-rgb:106,154,127;}
.df-event-chip::before{content:"◆";font-size:9px;opacity:0.7;}

/* 长官 */
.df-governor{display:flex;align-items:center;gap:8px;padding:5px 8px;background:rgba(184,154,83,0.03);border-radius:2px;border-top:1px dashed var(--color-border-subtle);margin-top:2px;}
.df-gov-portrait{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--auton-c),var(--ink-100,#3d342a));border:1.5px solid var(--auton-c);display:flex;align-items:center;justify-content:center;color:#f4eadd;font-family:var(--font-serif);font-size:12px;flex-shrink:0;}
.df-gov-info{flex:1;min-width:0;}
.df-gov-title{font-size:13.5px;color:var(--ink-300,#6b5d47);letter-spacing:0.1em;font-family:var(--font-serif);}
.df-gov-name{font-size:12px;color:var(--color-foreground);font-family:var(--font-serif);letter-spacing:0.08em;}
.df-gov-name .loyalty{margin-left:6px;font-size:14px;color:var(--celadon-400);}
.df-gov-name .loyalty.mid{color:var(--gold-400);}
.df-gov-name .loyalty.lo{color:var(--vermillion-400);}
.df-gov-actions{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap;}
.df-gov-btn{padding:3px 9px;font-size:14.5px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.df-gov-btn:hover{background:rgba(184,154,83,0.18);border-color:var(--gold-400);}
.df-gov-btn.danger{color:var(--vermillion-400);border-color:var(--vermillion-400);}
.df-gov-btn.danger:hover{background:rgba(192,64,48,0.12);}

/* 危机描述 */
.df-crisis-note{font-size:14.5px;color:var(--vermillion-400);font-style:italic;padding:4px 8px;background:rgba(192,64,48,0.05);border-left:2px solid var(--vermillion-400);border-radius:0 2px 2px 0;font-family:var(--font-serif);letter-spacing:0.03em;}
.df-crisis-note::before{content:"⚠ ";}

/* ═════════ 人物志标签页（.rw-*）═════════ */
.rw-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);min-height:500px;width:100%;box-sizing:border-box;}
.rw-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.rw-inner{position:relative;z-index:1;}
.rw-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.rw-title::before,.rw-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.rw-title::before{top:0;} .rw-title::after{bottom:0;}
.rw-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.rw-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);font-style:italic;}
.rw-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:15px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

/* 统计栏 */
.rw-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;}
.rw-stat-card{padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--sc-c,var(--gold-d));border-radius:3px;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));}
.rw-stat-card.s-all{--sc-c:var(--gold-400);}
.rw-stat-card.s-civil{--sc-c:var(--celadon-400);}
.rw-stat-card.s-mili{--sc-c:var(--vermillion-400);}
.rw-stat-card.s-harem{--sc-c:var(--vermillion-300,#d15c47);}
.rw-stat-card.s-bu{--sc-c:var(--ink-500);}
.rw-stat-card.s-dead{--sc-c:var(--vermillion-600,#8f3428);}
.rw-stat-lbl{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground-muted);letter-spacing:0.25em;margin-bottom:4px;}
.rw-stat-num{font-family:var(--font-serif);font-size:22px;color:var(--sc-c);letter-spacing:0.05em;font-weight:700;line-height:1;}
.rw-stat-sub{font-size:14.5px;color:var(--ink-300,#6b5d47);margin-top:3px;font-style:italic;}

/* 工具栏 */
.rw-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:12px;flex-wrap:wrap;}
.rw-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.2em;padding-right:6px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;}
.rw-view-switch{display:inline-flex;border:1px solid var(--color-border-subtle);border-radius:2px;overflow:hidden;}
.rw-view-btn{padding:4px 12px;background:transparent;border:none;color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.12em;cursor:pointer;border-right:1px solid var(--color-border-subtle);}
.rw-view-btn:last-child{border-right:none;}
.rw-view-btn.active{background:linear-gradient(to bottom,rgba(184,154,83,0.15),rgba(184,154,83,0.05));color:var(--gold-400);}
.rw-view-btn:hover{color:var(--gold-400);}
.rw-search-wrap{position:relative;flex:1;min-width:160px;max-width:240px;}
.rw-search-wrap::before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.rw-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.rw-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.rw-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;}
.rw-chk input{accent-color:var(--gold-400);}

/* 派系图例 */
.rw-legend{display:flex;gap:6px 10px;padding:8px 14px;margin-bottom:14px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;font-size:15px;flex-wrap:wrap;align-items:center;}
.rw-legend-lbl{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-right:4px;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.rw-legend-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;font-size:15px;border:1px solid var(--chip-c,var(--gold-d));color:var(--chip-c,var(--gold-400));background:rgba(var(--chip-rgb,184,154,83),0.06);}
.rw-legend-chip .num{color:var(--chip-c,var(--gold-400));font-weight:500;font-size:14px;opacity:0.85;}

/* 人物卡网格 */
.rw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.rw-fac-group-hdr{grid-column:1/-1;font-family:var(--font-serif);font-size:13px;color:var(--fac-c,var(--gold-400));letter-spacing:0.25em;padding:6px 0;margin-top:6px;border-bottom:1px dashed var(--color-border-subtle);display:flex;align-items:center;gap:10px;}
.rw-fac-group-hdr .cnt{margin-left:auto;font-size:14.5px;color:var(--color-foreground-muted);font-style:italic;letter-spacing:0.1em;padding:1px 8px;background:rgba(184,154,83,0.06);border-radius:2px;}

/* 人物卡 */
.rw-card{position:relative;display:flex;gap:10px;padding:10px 12px 12px 10px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px));border:1px solid var(--color-border-subtle);border-left:3px solid var(--fac-c,var(--gold-d));border-radius:3px;cursor:pointer;transition:all 0.25s;overflow:hidden;}
.rw-card:hover{border-color:var(--gold-400);box-shadow:0 3px 12px rgba(184,154,83,0.15),0 0 8px rgba(184,154,83,0.1);transform:translateY(-2px);}
.rw-card.dead{opacity:0.55;filter:grayscale(70%);}
.rw-card.dead::after{content:"\6B81";position:absolute;top:6px;right:10px;font-size:18px;color:var(--vermillion-600,#8f3428);font-family:var(--font-serif);font-weight:bold;opacity:0.8;}
.rw-card.player{border-color:var(--gold-300,#c9a85f);background:linear-gradient(to right,rgba(201,168,95,0.08),var(--color-surface) 30%);box-shadow:0 0 0 1px rgba(201,168,95,0.2);}
.rw-card.player::before{content:"\6715";position:absolute;top:6px;right:10px;font-size:14px;color:var(--gold-300,#c9a85f);font-family:var(--font-serif);font-weight:bold;padding:1px 6px;background:rgba(201,168,95,0.15);border:1px solid var(--gold-300,#c9a85f);border-radius:2px;}

/* 派系色 */
.rw-dongin{--fac-c:var(--celadon-400);--fac-rgb:106,154,127;}
.rw-zhe{--fac-c:var(--indigo-400,#5a6fa8);--fac-rgb:90,111,168;}
.rw-yan{--fac-c:var(--purple-400,#8e6aa8);--fac-rgb:142,106,168;}
.rw-kun{--fac-c:var(--amber-400,#c9a045);--fac-rgb:201,160,69;}
.rw-qing{--fac-c:var(--gold-400);--fac-rgb:184,154,83;}
.rw-bu{--fac-c:var(--ink-500);--fac-rgb:166,148,112;}
.rw-consort{--fac-c:var(--vermillion-300,#d15c47);--fac-rgb:209,92,71;}
.rw-mili{--fac-c:var(--vermillion-400);--fac-rgb:184,71,56;}

/* 立轴头像 */
.rw-portrait-col{flex-shrink:0;width:72px;display:flex;flex-direction:column;align-items:center;gap:6px;}
.rw-portrait{width:72px;height:88px;background:linear-gradient(145deg,var(--fac-c,var(--gold-400)) 0%,rgba(26,20,16,0.6) 100%),radial-gradient(ellipse at 50% 30%,rgba(244,234,221,0.15),transparent 60%);border:1.5px solid var(--fac-c,var(--gold-400));border-radius:2px;display:flex;align-items:center;justify-content:center;color:var(--color-foreground);font-family:var(--font-serif);font-size:32px;font-weight:500;position:relative;box-shadow:0 2px 6px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.08);overflow:hidden;}
.rw-portrait img{width:100%;height:100%;object-fit:cover;}
.rw-portrait::before{content:"";position:absolute;inset:3px;border:0.5px solid rgba(184,154,83,0.25);border-radius:1px;pointer-events:none;z-index:2;}
.rw-portrait::after{content:"";position:absolute;top:-4px;left:-3px;right:-3px;height:5px;background:linear-gradient(to bottom,#8d7640 0%,#6b5a30 60%,#5a4a28 100%);border:0.5px solid #3d2e18;border-radius:1px;box-shadow:0 1px 0 rgba(0,0,0,0.4);}

/* 忠诚度环 */
.rw-loy-ring{width:54px;height:54px;position:relative;margin-top:2px;}
.rw-loy-ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.rw-loy-ring .bg{stroke:rgba(107,93,71,0.25);}
.rw-loy-ring .fg{stroke:var(--loy-c,var(--gold-400));stroke-linecap:round;}
.rw-loy-ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.rw-loy-ring .val .n{font-family:var(--font-serif);font-size:15px;color:var(--loy-c,var(--gold-400));font-weight:700;}
.rw-loy-ring .val .k{font-size:9px;color:var(--ink-300,#6b5d47);letter-spacing:0.15em;margin-top:1px;}
.rw-loy-hi{--loy-c:var(--celadon-400);}
.rw-loy-mid{--loy-c:var(--gold-400);}
.rw-loy-lo{--loy-c:var(--vermillion-400);}

/* 信息列 */
.rw-info-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.rw-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.rw-name{font-family:var(--font-serif);font-size:16px;color:var(--color-foreground);letter-spacing:0.14em;font-weight:500;}
.rw-zi{font-size:14.5px;color:var(--ink-300,#6b5d47);font-style:italic;letter-spacing:0.1em;}
.rw-age{font-size:14px;color:#d4c9b0;padding:0 5px;background:rgba(184,154,83,0.06);border:1px solid var(--color-border-subtle);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;}
.rw-office-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:15px;}
.rw-dept{color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.08em;}
.rw-dept::after{content:"\00B7";color:var(--ink-300,#6b5d47);margin:0 3px;opacity:0.6;}
.rw-pos{color:var(--color-foreground);font-family:var(--font-serif);font-weight:500;letter-spacing:0.08em;}
.rw-rank-chip{display:inline-flex;align-items:center;font-size:13.5px;padding:0 5px;background:linear-gradient(to bottom,var(--rank-c,var(--gold-400)),rgba(0,0,0,0.12));color:#1a1410;border-radius:2px;font-family:var(--font-serif);font-weight:500;letter-spacing:0.05em;line-height:14px;}
.rw-rank-top{--rank-c:#e4c579;}
.rw-rank-high{--rank-c:var(--gold-400);}
.rw-rank-mid{--rank-c:var(--celadon-400);}
.rw-rank-low{--rank-c:var(--ink-500);}
.rw-fac-chip{display:inline-flex;align-items:center;gap:3px;font-size:13.5px;padding:0 5px;border:1px solid var(--fac-c,var(--gold-d));color:var(--fac-c,var(--gold-400));background:rgba(var(--fac-rgb,184,154,83),0.08);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;line-height:14px;}
.rw-fac-chip::before{content:"\25CF";font-size:9px;opacity:0.8;}
.rw-loc{font-size:14px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.08em;font-style:italic;display:inline-flex;align-items:center;gap:3px;}
.rw-loc::before{content:"\25C9";font-size:9px;color:var(--amber-400,#c9a045);opacity:0.7;}
.rw-loc.away{color:var(--amber-400,#c9a045);}
.rw-loc .travel{color:var(--celadon-400);margin:0 2px;}

/* 状态徽章 */
.rw-states{display:flex;gap:3px;flex-wrap:wrap;}
.rw-state-chip{display:inline-flex;align-items:center;gap:3px;font-size:13px;padding:0 5px;border:1px solid var(--st-c);color:var(--st-c);background:rgba(var(--st-rgb),0.08);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;line-height:14px;}
.rw-state-chip.mourn{--st-c:var(--amber-400,#c9a045);--st-rgb:201,160,69;}
.rw-state-chip.stress{--st-c:var(--vermillion-400);--st-rgb:184,71,56;}
.rw-state-chip.scheme{--st-c:var(--indigo-400,#5a6fa8);--st-rgb:90,111,168;}
.rw-state-chip.new{--st-c:var(--celadon-400);--st-rgb:106,154,127;}
.rw-state-chip.veteran{--st-c:var(--gold-300,#c9a85f);--st-rgb:201,168,95;}
.rw-state-chip.away{--st-c:var(--amber-400,#c9a045);--st-rgb:201,160,69;}
.rw-state-chip.retired{--st-c:var(--ink-500);--st-rgb:166,148,112;}
/* 2026-05-21·入狱/流放/逃亡 状态色·与诏狱机制 + dismissal regex 同步 */
.rw-state-chip.imprison{--st-c:#b84738;--st-rgb:184,71,56;background:rgba(184,71,56,0.18);font-weight:500;}
.rw-state-chip.exile{--st-c:#a86c5a;--st-rgb:168,108,90;}
.rw-state-chip.fled{--st-c:#8a7a5e;--st-rgb:138,122,94;}

/* 六维属性 */
.rw-stats{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;margin-top:3px;}
.rw-stat{display:flex;align-items:center;gap:4px;font-size:14px;font-family:var(--font-serif);}
.rw-stat-k{color:#d4c9b0;width:18px;letter-spacing:0.1em;flex-shrink:0;}
.rw-stat-bar{flex:1;height:4px;background:rgba(107,93,71,0.22);border-radius:2px;overflow:hidden;}
.rw-stat-fill{height:100%;background:var(--stat-c,var(--gold-400));border-radius:2px;}
.rw-stat-v{min-width:20px;text-align:right;color:var(--color-foreground);font-weight:500;font-size:14.5px;}
.rw-stat.zhi .rw-stat-fill{--stat-c:var(--gold-400);}
.rw-stat.zheng .rw-stat-fill{--stat-c:var(--celadon-400);}
.rw-stat.jun .rw-stat-fill{--stat-c:var(--vermillion-400);}
.rw-stat.jiao .rw-stat-fill{--stat-c:var(--indigo-400,#5a6fa8);}
.rw-stat.ye .rw-stat-fill{--stat-c:var(--amber-400,#c9a045);}
.rw-stat.ya .rw-stat-fill{--stat-c:var(--purple-400,#8e6aa8);}

/* 五常五角 */
.rw-wuchang{display:flex;gap:3px;align-items:center;margin-top:3px;}
.rw-wuchang .lbl{font-size:13px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.15em;margin-right:2px;}
.rw-wc-dot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;font-family:var(--font-serif);font-size:13px;color:#1a1410;font-weight:bold;background:var(--wc-c,var(--ink-300,#6b5d47));}
.rw-wc-dot.hi{--wc-c:var(--celadon-400);}
.rw-wc-dot.mid{--wc-c:var(--gold-400);}
.rw-wc-dot.lo{--wc-c:var(--vermillion-400);}
.rw-wc-dot.none{--wc-c:rgba(107,93,71,0.3);color:var(--ink-300,#6b5d47);}

/* 名望贤能 */
.rw-rep{display:flex;gap:8px;margin-top:3px;padding-top:4px;border-top:1px dashed var(--color-border-subtle);font-size:14px;}
.rw-rep-item{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);letter-spacing:0.05em;}
.rw-rep-item .k{color:var(--ink-300,#6b5d47);font-size:13.5px;}
.rw-rep-item .v{font-weight:500;}
.rw-rep-item.ming .v{color:var(--gold-300,#c9a85f);}
.rw-rep-item.xian .v{color:var(--celadon-400);}

/* 特质 */
.rw-traits{display:flex;gap:3px;flex-wrap:wrap;margin-top:3px;}
.rw-trait-chip{display:inline-flex;align-items:center;font-size:13.5px;padding:0 5px;background:rgba(184,154,83,0.06);border:1px solid var(--color-border-subtle);color:#d4c9b0;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;line-height:14px;}
.rw-trait-chip.pos{color:var(--celadon-400);border-color:var(--celadon-400);background:rgba(106,154,127,0.06);}
.rw-trait-chip.neg{color:var(--vermillion-400);border-color:var(--vermillion-400);background:rgba(192,64,48,0.06);}
.rw-trait-chip.neu{color:var(--gold-400);border-color:var(--gold-d);}

/* 关系 */
.rw-rels{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;}
.rw-rel-chip{display:inline-flex;align-items:center;gap:3px;font-size:13.5px;padding:0 5px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.05em;line-height:14px;}
.rw-rel-chip.friend{color:var(--celadon-400);background:rgba(106,154,127,0.08);border:1px solid var(--celadon-400);}
.rw-rel-chip.foe{color:var(--vermillion-400);background:rgba(192,64,48,0.08);border:1px solid var(--vermillion-400);}
.rw-rel-chip.spouse{color:var(--vermillion-300,#d15c47);background:rgba(209,92,71,0.08);border:1px solid var(--vermillion-300,#d15c47);}
.rw-rel-chip::before{font-size:9px;}
.rw-rel-chip.friend::before{content:"\2661";}
.rw-rel-chip.foe::before{content:"\2694";}
.rw-rel-chip.spouse::before{content:"\2740";}

/* 操作 */
.rw-actions{display:flex;gap:4px;margin-top:6px;padding-top:5px;border-top:1px dashed var(--color-border-subtle);flex-wrap:wrap;}
.rw-btn{padding:3px 9px;font-size:14.5px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.rw-btn:hover{background:rgba(184,154,83,0.18);border-color:var(--gold-400);}
.rw-btn.primary{background:linear-gradient(to bottom,var(--vermillion-400),var(--vermillion-600,#8f3428));color:#f4eadd;border-color:var(--vermillion-600,#8f3428);}
.rw-btn.primary:hover{transform:translateY(-1px);}

/* 空态 */
.rw-empty{grid-column:1/-1;text-align:center;padding:48px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;line-height:2;}
.rw-empty::before{content:"\2756";display:block;color:var(--gold-400);font-size:32px;margin-bottom:12px;opacity:0.5;}

/* ═══════════ 文苑 (Wenyuan · Literary Garden) ═══════════ */
.wy-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);min-height:500px;width:100%;box-sizing:border-box;}
.wy-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.wy-inner{position:relative;z-index:1;}
.wy-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.wy-title::before,.wy-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.wy-title::before{top:0;} .wy-title::after{bottom:0;}
.wy-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.wy-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);font-style:italic;}
.wy-title .seal{position:absolute;right:28px;top:10px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:13px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.2;text-align:center;}

.wy-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;}
.wy-stat-card{padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--sc-c,var(--gold-d));border-radius:3px;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));}
.wy-stat-card.s-all{--sc-c:var(--gold-400);}
.wy-stat-card.s-preserve{--sc-c:var(--gold-300,#c9a85f);}
.wy-stat-card.s-forbid{--sc-c:var(--vermillion-600,#8f3428);}
.wy-stat-card.s-risk{--sc-c:var(--vermillion-400);}
.wy-stat-card.s-era{--sc-c:var(--celadon-400);}
.wy-stat-card.s-author{--sc-c:var(--indigo-400,#5a6fa8);}
.wy-stat-lbl{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground-muted);letter-spacing:0.25em;margin-bottom:4px;}
.wy-stat-num{font-family:var(--font-serif);font-size:22px;color:var(--sc-c);letter-spacing:0.05em;font-weight:700;line-height:1;}
.wy-stat-sub{font-size:14.5px;color:var(--ink-300,#6b5d47);margin-top:3px;font-style:italic;}

.wy-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:12px;flex-wrap:wrap;}
.wy-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.2em;padding-right:6px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;}
.wy-search-wrap{position:relative;flex:1;min-width:160px;max-width:240px;}
.wy-search-wrap::before{content:"\2315";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.wy-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.wy-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.wy-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;}
.wy-chk input{accent-color:var(--gold-400);}

.wy-legend{display:flex;gap:6px 10px;padding:8px 14px;margin-bottom:14px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;font-size:15px;flex-wrap:wrap;align-items:center;}
.wy-legend-lbl{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-right:4px;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.wy-legend-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;font-size:15px;border:1px solid var(--chip-c,var(--gold-d));color:var(--chip-c,var(--gold-400));background:rgba(var(--chip-rgb,184,154,83),0.06);}
.wy-legend-chip .num{color:var(--chip-c,var(--gold-400));font-weight:500;font-size:14px;opacity:0.85;}
.wy-legend-chip.c-career{--chip-c:var(--indigo-400,#5a6fa8);--chip-rgb:90,111,168;}
.wy-legend-chip.c-adversity{--chip-c:var(--vermillion-400);--chip-rgb:184,71,56;}
.wy-legend-chip.c-social{--chip-c:var(--amber-400,#c9a045);--chip-rgb:201,160,69;}
.wy-legend-chip.c-duty{--chip-c:var(--purple-400,#8e6aa8);--chip-rgb:142,106,168;}
.wy-legend-chip.c-travel{--chip-c:var(--celadon-400);--chip-rgb:106,154,127;}
.wy-legend-chip.c-private{--chip-c:var(--vermillion-300,#d15c47);--chip-rgb:209,92,71;}
.wy-legend-chip.c-times{--chip-c:var(--gold-400);--chip-rgb:184,154,83;}
.wy-legend-chip.c-mood{--chip-c:var(--blue-400,#5a8fb8);--chip-rgb:90,143,184;}

.wy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;}
.wy-grp-hdr{grid-column:1/-1;font-family:var(--font-serif);font-size:13px;color:var(--grp-c,var(--gold-400));letter-spacing:0.25em;padding:6px 0;margin-top:6px;border-bottom:1px dashed var(--color-border-subtle);display:flex;align-items:center;gap:10px;}
.wy-grp-hdr .cnt{margin-left:auto;font-size:14.5px;color:var(--color-foreground-muted);font-style:italic;letter-spacing:0.1em;padding:1px 8px;background:rgba(184,154,83,0.06);border-radius:2px;}

.wy-card{position:relative;display:flex;gap:12px;padding:12px 14px 12px 12px;background:var(--color-surface);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.03) 2.5em,rgba(107,93,71,0.03) calc(2.5em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.04) 0%,transparent 40px);border:1px solid var(--color-border-subtle);border-left:3px solid var(--cat-c,var(--gold-d));border-radius:3px;cursor:pointer;transition:all 0.25s;overflow:hidden;}
.wy-card:hover{border-color:var(--gold-400);box-shadow:0 3px 12px rgba(184,154,83,0.15);transform:translateY(-2px);}
.wy-card.preserved{background:linear-gradient(to right,rgba(201,168,95,0.08),var(--color-surface) 40%);box-shadow:0 0 0 1px rgba(201,168,95,0.2);}
.wy-card.preserved::after{content:"\4F20\u00A0\u4E16";position:absolute;top:6px;right:8px;font-size:15px;color:var(--gold-300,#c9a85f);font-family:var(--font-serif);font-weight:bold;padding:1px 6px;background:rgba(201,168,95,0.15);border:1px solid var(--gold-300,#c9a85f);border-radius:2px;letter-spacing:0.1em;}
.wy-card.forbidden{opacity:0.72;background:linear-gradient(to right,rgba(192,64,48,0.04),var(--color-surface) 40%);}
.wy-card.forbidden::before{content:"\67E5\u00A0\u7981";position:absolute;top:6px;right:8px;font-size:15px;color:var(--vermillion-400);font-family:var(--font-serif);font-weight:bold;padding:1px 6px;background:rgba(192,57,43,0.15);border:1px solid var(--vermillion-400);border-radius:2px;letter-spacing:0.1em;transform:rotate(-3deg);z-index:2;}
.wy-card.c-career{--cat-c:var(--indigo-400,#5a6fa8);--cat-rgb:90,111,168;}
.wy-card.c-adversity{--cat-c:var(--vermillion-400);--cat-rgb:184,71,56;}
.wy-card.c-social{--cat-c:var(--amber-400,#c9a045);--cat-rgb:201,160,69;}
.wy-card.c-duty{--cat-c:var(--purple-400,#8e6aa8);--cat-rgb:142,106,168;}
.wy-card.c-travel{--cat-c:var(--celadon-400);--cat-rgb:106,154,127;}
.wy-card.c-private{--cat-c:var(--vermillion-300,#d15c47);--cat-rgb:209,92,71;}
.wy-card.c-times{--cat-c:var(--gold-400);--cat-rgb:184,154,83;}
.wy-card.c-mood{--cat-c:var(--blue-400,#5a8fb8);--cat-rgb:90,143,184;}

.wy-tab-col{flex-shrink:0;width:54px;display:flex;flex-direction:column;align-items:center;gap:4px;}
.wy-tab-scroll{width:50px;min-height:120px;background:linear-gradient(to right,rgba(184,154,83,0.2),rgba(184,154,83,0.08) 30%,rgba(184,154,83,0.08) 70%,rgba(184,154,83,0.2));border:1px solid rgba(184,154,83,0.3);border-radius:1px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;writing-mode:vertical-rl;position:relative;box-shadow:inset 0 0 6px rgba(139,90,50,0.1);}
.wy-tab-scroll::before,.wy-tab-scroll::after{content:"";position:absolute;left:-3px;right:-3px;height:6px;background:linear-gradient(to bottom,#8d7640 0%,#6b5a30 60%,#5a4a28 100%);border:0.5px solid #3d2e18;border-radius:1px;box-shadow:0 1px 0 rgba(0,0,0,0.4);}
.wy-tab-scroll::before{top:-4px;} .wy-tab-scroll::after{bottom:-4px;}
.wy-tab-author{font-family:var(--font-serif);font-size:14px;color:var(--cat-c,var(--gold-400));letter-spacing:0.3em;font-weight:500;}
.wy-tab-date{font-family:var(--font-serif);font-size:13px;color:var(--ink-300,#6b5d47);letter-spacing:0.2em;margin-top:auto;}
.wy-tab-seal{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.8),rgba(140,40,30,0.7));color:#f4eadd;font-size:14px;font-family:var(--font-serif);display:flex;align-items:center;justify-content:center;font-weight:bold;box-shadow:0 1px 3px rgba(140,40,30,0.4);opacity:0.85;margin-top:4px;}

.wy-main-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.wy-hdr-row{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;padding-right:56px;}
.wy-title-w{font-family:var(--font-serif);font-size:16px;color:var(--color-foreground);letter-spacing:0.14em;font-weight:500;}
.wy-title-w::before{content:"\300A";color:var(--ink-300,#6b5d47);} .wy-title-w::after{content:"\300B";color:var(--ink-300,#6b5d47);}
.wy-genre-chip{display:inline-flex;align-items:center;font-size:14.5px;padding:0 6px;background:linear-gradient(to bottom,var(--gold-400),var(--gold-d));color:#1a1410;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.05em;line-height:16px;font-weight:500;}
.wy-subtype{font-size:14.5px;color:#d4c9b0;font-style:italic;font-family:var(--font-serif);letter-spacing:0.08em;}
.wy-meta-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:15px;}
.wy-cat-chip{display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:0 6px;border:1px solid var(--cat-c,var(--gold-d));color:var(--cat-c,var(--gold-400));background:rgba(var(--cat-rgb,184,154,83),0.08);border-radius:2px;font-family:var(--font-serif);letter-spacing:0.1em;line-height:15px;}
.wy-cat-chip::before{content:"\25C6";font-size:9px;opacity:0.8;}
.wy-loc{font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);letter-spacing:0.08em;font-style:italic;display:inline-flex;align-items:center;gap:3px;}
.wy-loc::before{content:"\25C9";font-size:9px;color:var(--amber-400,#c9a045);opacity:0.7;}
.wy-mood{font-size:14.5px;color:var(--celadon-400);font-family:var(--font-serif);letter-spacing:0.08em;}
.wy-mood::before{content:"\2733\u00A0";font-size:9px;opacity:0.7;}

.wy-excerpt{margin-top:4px;padding:8px 10px 8px 12px;background:rgba(184,154,83,0.04);border-left:2px solid var(--cat-c,var(--gold-d));border-radius:0 2px 2px 0;font-family:var(--font-song,"SimSun");font-size:13px;color:var(--color-foreground);line-height:1.9;letter-spacing:0.08em;white-space:pre-wrap;position:relative;}
.wy-excerpt::before{content:"\201C";position:absolute;top:-2px;left:4px;font-size:18px;color:var(--gold-d);opacity:0.4;font-family:var(--font-song,"SimSun");line-height:1;}
.wy-excerpt.elegant{font-family:var(--font-serif);font-style:italic;}
.wy-excerpt.fu,.wy-excerpt.wen{font-size:12.5px;}

.wy-assess{display:flex;align-items:center;gap:8px;margin-top:4px;padding-top:4px;border-top:1px dashed var(--color-border-subtle);font-size:14.5px;flex-wrap:wrap;}
.wy-quality{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-serif);color:#d4c9b0;letter-spacing:0.08em;}
.wy-quality .lbl{font-size:13.5px;color:var(--ink-300,#6b5d47);margin-right:2px;}
.wy-quality .star{color:var(--gold-400);font-size:12px;letter-spacing:0;}
.wy-quality .star.d{color:var(--ink-300,#6b5d47);}
.wy-quality .val{font-size:13.5px;color:var(--ink-300,#6b5d47);font-style:italic;margin-left:2px;}
.wy-risk{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);letter-spacing:0.08em;font-size:14.5px;padding:1px 6px;border-radius:2px;border:1px solid var(--rk-c,var(--celadon-400));color:var(--rk-c,var(--celadon-400));background:rgba(var(--rk-rgb,106,154,127),0.06);}
.wy-risk.low{--rk-c:var(--celadon-400);--rk-rgb:106,154,127;}
.wy-risk.medium{--rk-c:var(--amber-400,#c9a045);--rk-rgb:201,160,69;}
.wy-risk.high{--rk-c:var(--vermillion-400);--rk-rgb:184,71,56;}
.wy-risk::before{font-size:9px;}
.wy-risk.low::before{content:"\26AA";}
.wy-risk.medium::before{content:"\26A0";}
.wy-risk.high::before{content:"\26A1";}
.wy-tag{display:inline-flex;align-items:center;font-family:var(--font-serif);font-size:14px;color:#d4c9b0;letter-spacing:0.08em;padding:0 5px;background:rgba(107,93,71,0.08);border:1px solid var(--ink-100,#3d342a);border-radius:2px;line-height:14px;}

.wy-ctx{margin-top:3px;padding:4px 8px;font-size:14.5px;color:#d4c9b0;font-family:var(--font-serif);font-style:italic;letter-spacing:0.04em;line-height:1.6;background:rgba(107,93,71,0.04);border-radius:2px;border-left:1px dashed var(--cat-c,var(--gold-d));}
.wy-ctx::before{content:"\25CB\u00A0";font-size:9px;color:var(--cat-c,var(--gold-400));opacity:0.8;}
.wy-implicit{margin-top:2px;padding:3px 8px;font-size:14.5px;color:var(--vermillion-400);font-family:var(--font-serif);letter-spacing:0.04em;line-height:1.6;background:rgba(192,64,48,0.05);border-radius:2px;border-left:1px solid var(--vermillion-400);}
.wy-implicit::before{content:"\u26A0\u00A0";font-size:13px;opacity:0.8;}

.wy-actions{display:flex;gap:4px;margin-top:6px;padding-top:5px;border-top:1px dashed var(--color-border-subtle);flex-wrap:wrap;}
.wy-btn{padding:3px 9px;font-size:14.5px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.wy-btn:hover{background:rgba(184,154,83,0.18);border-color:var(--gold-400);}
.wy-btn.primary{background:linear-gradient(to bottom,var(--gold-400),var(--gold-d));color:#1a1410;border-color:var(--gold-d);font-weight:500;}
.wy-btn.danger{color:var(--vermillion-400);border-color:var(--vermillion-400);}
.wy-btn.danger:hover{background:rgba(192,64,48,0.1);}

.wy-empty{grid-column:1/-1;text-align:center;padding:64px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;line-height:2.2;}
.wy-empty::before{content:"\2756";display:block;color:var(--gold-400);font-size:34px;margin-bottom:12px;opacity:0.5;}
.wy-empty .sub{font-size:15px;color:var(--ink-300,#6b5d47);letter-spacing:0.15em;margin-top:10px;font-style:italic;}

/* ═══════════ 起居注 (Qiju · Daily Chronicle) ═══════════ */
.qj-panel-wrap{background-color:var(--color-surface,#241e18);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.04) 2.5em,rgba(107,93,71,0.04) calc(2.5em + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 3em,rgba(107,93,71,0.02) 3em,rgba(107,93,71,0.02) calc(3em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.05) 0%,transparent 80px);position:relative;padding:var(--space-4) var(--space-5);min-height:500px;width:100%;box-sizing:border-box;}
.qj-panel-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 25%,rgba(139,90,50,0.025) 0.5px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(139,90,50,0.03) 0.5px,transparent 1px);background-size:80px 80px,120px 120px;}
.qj-inner{position:relative;z-index:1;}
.qj-title{text-align:center;margin-bottom:20px;position:relative;padding:14px 0 18px;}
.qj-title::before,.qj-title::after{content:"";position:absolute;left:50%;width:180px;height:1px;transform:translateX(-50%);background:linear-gradient(to right,transparent,var(--gold-d),transparent);}
.qj-title::before{top:0;} .qj-title::after{bottom:0;}
.qj-title .main{font-family:var(--font-serif);font-size:24px;letter-spacing:0.5em;color:var(--color-foreground);margin-bottom:6px;}
.qj-title .sub{font-size:12px;color:var(--ink-300,#6b5d47);letter-spacing:0.3em;font-family:var(--font-serif);font-style:italic;}
.qj-title .seal{position:absolute;right:28px;top:10px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));display:flex;align-items:center;justify-content:center;color:#f4eadd;font-size:14.5px;font-family:var(--font-serif);letter-spacing:0.05em;font-weight:bold;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(140,40,30,0.4);opacity:0.88;line-height:1.1;text-align:center;}

.qj-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;}
.qj-stat-card{padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--sc-c,var(--gold-d));border-radius:3px;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(107,93,71,0.025) 2.5em,rgba(107,93,71,0.025) calc(2.5em + 1px));}
.qj-stat-card.s-all{--sc-c:var(--gold-400);}
.qj-stat-card.s-month{--sc-c:var(--celadon-400);}
.qj-stat-card.s-edict{--sc-c:var(--indigo-400,#5a6fa8);}
.qj-stat-card.s-memo{--sc-c:var(--vermillion-400);}
.qj-stat-card.s-chaoyi{--sc-c:var(--purple-400,#8e6aa8);}
.qj-stat-card.s-annot{--sc-c:var(--vermillion-600,#8f3428);}
.qj-stat-lbl{font-family:var(--font-serif);font-size:14.5px;color:var(--color-foreground-muted);letter-spacing:0.25em;margin-bottom:4px;}
.qj-stat-num{font-family:var(--font-serif);font-size:22px;color:var(--sc-c);letter-spacing:0.05em;font-weight:700;line-height:1;}
.qj-stat-sub{font-size:14.5px;color:var(--ink-300,#6b5d47);margin-top:3px;font-style:italic;}

.qj-tools{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(184,154,83,0.04);border:1px solid var(--color-border-subtle);border-radius:2px;margin-bottom:12px;flex-wrap:wrap;}
.qj-tools-lbl{font-family:var(--font-serif);font-size:12px;color:var(--color-foreground-muted);letter-spacing:0.2em;padding-right:6px;border-right:1px solid var(--color-border-subtle);flex-shrink:0;}
.qj-search-wrap{position:relative;flex:1;min-width:180px;max-width:260px;}
.qj-search-wrap::before{content:"\2315";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-300,#6b5d47);font-size:14px;pointer-events:none;}
.qj-search{width:100%;padding:5px 12px 5px 28px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-song,"SimSun");font-size:12px;border-radius:2px;outline:none;}
.qj-filter{padding:5px 12px;background:var(--color-background,#1a1510);border:1px solid var(--color-border-subtle);color:var(--color-foreground);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.qj-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;cursor:pointer;}
.qj-chk input{accent-color:var(--vermillion-400);}
.qj-export{padding:5px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--color-foreground-muted);font-family:var(--font-serif);font-size:12px;letter-spacing:0.15em;border-radius:2px;cursor:pointer;}
.qj-export:hover{background:rgba(184,154,83,0.18);color:var(--gold-400);}
.qj-export::before{content:"\2756";margin-right:4px;opacity:0.7;font-size:14px;}

.qj-legend{display:flex;gap:6px 10px;padding:8px 14px;margin-bottom:16px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;font-size:15px;flex-wrap:wrap;align-items:center;}
.qj-legend-lbl{font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;margin-right:4px;padding-right:6px;border-right:1px solid var(--color-border-subtle);}
.qj-legend-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:2px;font-family:var(--font-serif);letter-spacing:0.08em;font-size:15px;border:1px solid var(--chip-c,var(--gold-d));color:var(--chip-c,var(--gold-400));background:rgba(var(--chip-rgb,184,154,83),0.06);}
.qj-legend-chip .num{color:var(--chip-c,var(--gold-400));font-weight:500;font-size:14px;opacity:0.85;}
.qj-legend-chip.c-edict{--chip-c:var(--indigo-400,#5a6fa8);--chip-rgb:90,111,168;}
.qj-legend-chip.c-memo{--chip-c:var(--vermillion-400);--chip-rgb:184,71,56;}
.qj-legend-chip.c-chaoyi{--chip-c:var(--purple-400,#8e6aa8);--chip-rgb:142,106,168;}
.qj-legend-chip.c-letter{--chip-c:var(--amber-400,#c9a045);--chip-rgb:201,160,69;}
.qj-legend-chip.c-person{--chip-c:var(--celadon-400);--chip-rgb:106,154,127;}
.qj-legend-chip.c-xingzhi{--chip-c:var(--gold-400);--chip-rgb:184,154,83;}
.qj-legend-chip.c-narrative{--chip-c:var(--ink-500,#a69470);--chip-rgb:166,148,112;}

/* 时间线日课 */
.qj-timeline{position:relative;padding-left:50px;}
.qj-timeline::before{content:"";position:absolute;left:20px;top:10px;bottom:10px;width:2px;background:linear-gradient(to bottom,var(--gold-d),rgba(107,93,71,0.4));}
.qj-day{position:relative;margin-bottom:24px;}
.qj-day::before{content:attr(data-turn);position:absolute;left:-42px;top:4px;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.85),rgba(140,40,30,0.75));color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:15.5px;font-weight:bold;letter-spacing:0.02em;box-shadow:0 2px 6px rgba(140,40,30,0.4),0 0 0 3px var(--color-surface);transform:rotate(-4deg);line-height:1;text-align:center;}
.qj-day.first::before{background:radial-gradient(circle at 35% 35%,var(--gold-300,#c9a85f),var(--gold-500));}
.qj-day-hdr{display:flex;align-items:center;gap:12px;padding:8px 16px;background:linear-gradient(to right,rgba(184,154,83,0.12),rgba(184,154,83,0.02) 70%);border:1px solid rgba(184,154,83,0.35);border-left:4px solid var(--gold-400);border-radius:3px;margin-bottom:8px;position:relative;flex-wrap:wrap;}
.qj-day-hdr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(to bottom,var(--vermillion-400),var(--gold-400));}
.qj-day-title{font-family:var(--font-serif);font-size:15px;color:var(--gold-300,#c9a85f);letter-spacing:0.15em;}
.qj-day-date{font-family:var(--font-serif);font-size:15.5px;color:#d4c9b0;letter-spacing:0.1em;font-style:italic;}
.qj-day-tally{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
.qj-tally-dot{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);font-size:14.5px;padding:1px 6px;border-radius:10px;border:1px solid var(--td-c,var(--gold-d));color:var(--td-c,var(--gold-400));background:rgba(var(--td-rgb,184,154,83),0.06);letter-spacing:0.08em;}
.qj-tally-dot.edict{--td-c:var(--indigo-400,#5a6fa8);--td-rgb:90,111,168;}
.qj-tally-dot.memo{--td-c:var(--vermillion-400);--td-rgb:184,71,56;}
.qj-tally-dot.chaoyi{--td-c:var(--purple-400,#8e6aa8);--td-rgb:142,106,168;}
.qj-tally-dot.letter{--td-c:var(--amber-400,#c9a045);--td-rgb:201,160,69;}
.qj-tally-dot.person{--td-c:var(--celadon-400);--td-rgb:106,154,127;}
.qj-tally-dot.xingzhi{--td-c:var(--gold-400);--td-rgb:184,154,83;}

.qj-day-body{padding-left:12px;border-left:1px dashed var(--color-border-subtle);margin-left:4px;}
.qj-rec{position:relative;padding:8px 12px 8px 14px;background:rgba(107,93,71,0.04);border:1px solid var(--color-border-subtle);border-left:3px solid var(--cat-c,var(--ink-300));border-radius:0 3px 3px 0;margin-bottom:6px;transition:all 0.2s;}
.qj-rec:hover{background:rgba(184,154,83,0.06);border-color:rgba(184,154,83,0.35);}
.qj-rec.c-edict{--cat-c:var(--indigo-400,#5a6fa8);--cat-rgb:90,111,168;}
.qj-rec.c-memo{--cat-c:var(--vermillion-400);--cat-rgb:184,71,56;}
.qj-rec.c-chaoyi{--cat-c:var(--purple-400,#8e6aa8);--cat-rgb:142,106,168;}
.qj-rec.c-letter{--cat-c:var(--amber-400,#c9a045);--cat-rgb:201,160,69;}
.qj-rec.c-person{--cat-c:var(--celadon-400);--cat-rgb:106,154,127;}
.qj-rec.c-xingzhi{--cat-c:var(--gold-400);--cat-rgb:184,154,83;}
.qj-rec.c-narrative{--cat-c:var(--ink-500,#a69470);--cat-rgb:166,148,112;}
/* NPC 势力 bridge + endturn 世界事件类目·复用近色系 */
.qj-rec.c-fiscal{--cat-c:#c5a04a;--cat-rgb:197,160,74;}
.qj-rec.c-military{--cat-c:#b84738;--cat-rgb:184,71,56;}
.qj-rec.c-diplomacy{--cat-c:#5a8fb8;--cat-rgb:90,143,184;}
.qj-rec.c-province{--cat-c:#6a9a7f;--cat-rgb:106,154,127;}
.qj-rec.c-intrigue{--cat-c:#8e6aa8;--cat-rgb:142,106,168;}
.qj-rec.c-rebel{--cat-c:#a84038;--cat-rgb:168,64,56;}
.qj-rec.c-party{--cat-c:#a86c5a;--cat-rgb:168,108,90;}
.qj-rec.c-power{--cat-c:#5a6fa8;--cat-rgb:90,111,168;}
.qj-rec.c-class{--cat-c:#8a7a5e;--cat-rgb:138,122,94;}
/* legend chip 对齐 */
.qj-legend-chip.c-fiscal{--chip-c:#c5a04a;--chip-rgb:197,160,74;}
.qj-legend-chip.c-military{--chip-c:#b84738;--chip-rgb:184,71,56;}
.qj-legend-chip.c-diplomacy{--chip-c:#5a8fb8;--chip-rgb:90,143,184;}
.qj-legend-chip.c-province{--chip-c:#6a9a7f;--chip-rgb:106,154,127;}
.qj-legend-chip.c-intrigue{--chip-c:#8e6aa8;--chip-rgb:142,106,168;}
.qj-legend-chip.c-rebel{--chip-c:#a84038;--chip-rgb:168,64,56;}
.qj-legend-chip.c-party{--chip-c:#a86c5a;--chip-rgb:168,108,90;}
.qj-legend-chip.c-power{--chip-c:#5a6fa8;--chip-rgb:90,111,168;}
.qj-legend-chip.c-class{--chip-c:#8a7a5e;--chip-rgb:138,122,94;}

.qj-rec-hdr{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap;}
.qj-cat-chip{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-serif);font-size:14.5px;padding:1px 7px;background:linear-gradient(to bottom,var(--cat-c,var(--gold-400)),rgba(0,0,0,0.08));color:#1a1410;border-radius:2px;letter-spacing:0.12em;font-weight:500;line-height:14px;}
.qj-cat-chip::before{content:"\3010";color:rgba(0,0,0,0.5);font-size:9px;margin-right:1px;}
.qj-cat-chip::after{content:"\3011";color:rgba(0,0,0,0.5);font-size:9px;margin-left:1px;}
.qj-rec-time{font-size:14.5px;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);font-style:italic;letter-spacing:0.08em;margin-left:auto;}
.qj-rec-actions{display:flex;gap:3px;}
.qj-rec-btn{background:transparent;border:1px solid transparent;color:var(--ink-300,#6b5d47);font-family:var(--font-serif);font-size:14.5px;padding:1px 7px;border-radius:2px;cursor:pointer;letter-spacing:0.08em;}
.qj-rec-btn:hover{color:var(--vermillion-400);border-color:var(--vermillion-400);background:rgba(192,64,48,0.06);}
.qj-rec-btn.zoom:hover{color:var(--gold-400);border-color:var(--gold-400);background:rgba(184,154,83,0.06);}

.qj-rec-text{font-family:var(--font-song,"SimSun");font-size:13.5px;color:var(--color-foreground);line-height:1.85;letter-spacing:0.04em;word-break:break-word;white-space:pre-wrap;}
.qj-rec-text .hl{color:var(--color-foreground);font-weight:500;}
.qj-rec-text .name{color:var(--gold-300,#c9a85f);font-family:var(--font-serif);letter-spacing:0.05em;}

.qj-annot{margin-top:6px;padding:6px 10px 6px 44px;background:linear-gradient(to right,rgba(192,64,48,0.08),rgba(192,64,48,0.02) 60%);border-left:2px solid var(--vermillion-400);border-radius:0 2px 2px 0;font-family:var(--font-serif);font-size:12px;color:var(--vermillion-400);font-style:italic;letter-spacing:0.05em;line-height:1.7;position:relative;}
.qj-annot::before{content:"\5FA1\u00A0\u6279";position:absolute;left:6px;top:50%;transform:translateY(-50%);font-size:14px;color:#f4eadd;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.9),rgba(140,40,30,0.8));padding:2px 5px;border-radius:2px;letter-spacing:0.1em;font-weight:bold;box-shadow:0 1px 2px rgba(140,40,30,0.4);white-space:nowrap;font-style:normal;}
.qj-chain{margin-top:8px;padding:6px 10px 6px 12px;background:linear-gradient(to right,rgba(184,154,83,0.08),rgba(184,154,83,0.02) 70%);border-left:2px solid var(--gold-500,#b89a53);border-radius:0 2px 2px 0;font-family:var(--font-serif);font-size:11.5px;color:var(--ink-500,#a69470);line-height:1.7;}
.qj-chain-hdr{font-size:11.5px;color:var(--gold-500,#b89a53);letter-spacing:0.12em;margin-bottom:3px;opacity:0.85;font-weight:bold;}
.qj-chain-item{padding:1px 0;padding-left:10px;position:relative;}
.qj-chain-item::before{content:"\2022";position:absolute;left:0;color:var(--gold-500,#b89a53);opacity:0.6;}

.qj-quote{margin:4px 0 2px 0;padding:4px 8px;background:rgba(107,93,71,0.06);border-left:1px dashed var(--cat-c,var(--gold-d));border-radius:0 2px 2px 0;font-family:var(--font-song,"SimSun");font-size:12.5px;color:#ede5d0;font-style:italic;letter-spacing:0.03em;line-height:1.7;white-space:pre-wrap;}

.qj-paging{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;padding:10px;background:rgba(184,154,83,0.02);border:1px solid var(--color-border-subtle);border-radius:2px;}
.qj-pg-btn{padding:4px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.1),rgba(184,154,83,0.02));border:1px solid var(--gold-d);color:var(--gold-400);font-family:var(--font-serif);font-size:12px;letter-spacing:0.1em;border-radius:2px;cursor:pointer;}
.qj-pg-btn:hover:not(:disabled){background:rgba(184,154,83,0.18);}
.qj-pg-btn:disabled{opacity:0.35;cursor:default;}
.qj-pg-info{font-family:var(--font-serif);font-size:12px;color:#d4c9b0;letter-spacing:0.12em;}
.qj-pg-info .cur{color:var(--gold-400);font-weight:700;}

.qj-empty{text-align:center;padding:64px 24px;font-family:var(--font-serif);font-size:15px;color:var(--color-foreground-muted);letter-spacing:0.2em;line-height:2.2;}
.qj-empty::before{content:"\2756";display:block;color:var(--gold-400);font-size:34px;margin-bottom:12px;opacity:0.5;}

/* 史记（旧·保留兼容） */
.qiju-record{background:var(--bg-2);border:1px solid var(--bdr);border-radius:var(--r);padding:0.7rem;margin-bottom:0.5rem;border-left:3px solid var(--gold-d);}
.qiju-turn{font-size:0.72rem;color:var(--gold);margin-bottom:0.3rem;}

/* 弹窗 */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.82);display:none;align-items:center;justify-content:center;z-index:1001;}
.modal-bg.show{display:flex;animation:fi 0.25s var(--ease);}
.modal-box{background:var(--bg-1);border:1px solid var(--gold-d);border-radius:14px;padding:1.5rem;max-width:700px;width:92%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg),0 0 60px rgba(201,168,76,0.05);animation:modal-in 0.3s var(--ease);}
@keyframes modal-in{from{opacity:0;transform:scale(0.95) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}

/* 加载画面 */
.loading{position:fixed;inset:0;z-index:996;background:rgba(10,8,4,0.93);display:none;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;}
.loading.show{display:flex;}
.loading-frame{position:relative;padding:2.5rem 3.5rem;border:2px solid var(--gold-d);box-shadow:0 0 0 4px rgba(180,140,60,0.15),0 0 40px rgba(180,140,60,0.2),inset 0 0 30px rgba(0,0,0,0.5);background:linear-gradient(160deg,var(--bg-1) 0%,var(--bg-0) 100%);min-width:320px;text-align:center;}
.loading-frame::before,.loading-frame::after{content:'';position:absolute;width:18px;height:18px;border-color:var(--gold);border-style:solid;}
.loading-frame::before{top:-2px;left:-2px;border-width:2px 0 0 2px;}
.loading-frame::after{bottom:-2px;right:-2px;border-width:0 2px 2px 0;}
.loading-corner-tr,.loading-corner-bl{position:absolute;width:18px;height:18px;border-color:var(--gold);border-style:solid;}
.loading-corner-tr{top:-2px;right:-2px;border-width:2px 2px 0 0;}
.loading-corner-bl{bottom:-2px;left:-2px;border-width:0 0 2px 2px;}
.loading-deco{font-size:1.4rem;color:var(--gold-d);letter-spacing:0.5rem;margin-bottom:0.3rem;opacity:0.7;}
.loading-text{font-size:var(--text-2xl);color:var(--color-primary);font-weight:var(--weight-bold);letter-spacing:0.25em;text-shadow:0 0 12px rgba(184,154,83,0.4);margin-bottom:0.2rem;}
.loading-divider{width:80%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-d),transparent);margin:0.4rem auto;}
.loading-sub{font-size:0.88rem;color:var(--txt-d);letter-spacing:0.1em;min-height:1.2em;}
.loading-bar{width:100%;height:4px;background:var(--bg-3);overflow:hidden;margin-top:1rem;}
.loading-fill{height:100%;background:linear-gradient(90deg,var(--gold-d),var(--gold),var(--gold-d));background-size:200% 100%;border-radius:2px;transition:width 0.4s ease;width:0%;animation:loading-shimmer 2s linear infinite;}
@keyframes loading-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
@keyframes slideInRight{from{opacity:0;transform:translateX(100px);}to{opacity:1;transform:translateX(0);}}
@keyframes slideOutRight{from{opacity:1;transform:translateX(0);}to{opacity:0;transform:translateX(100px);}}

/* 史记弹窗 */
.turn-modal{position:fixed;inset:0;z-index:997;background:rgba(0,0,0,0.85);display:none;align-items:center;justify-content:center;}
.turn-modal.show{display:flex;animation:fi 0.25s var(--ease);}
/* 回合结果（卷轴展开感） */
.turn-box{background:var(--color-surface);border:1px solid var(--color-border-emphasis);border-radius:var(--radius-xl);width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-xl);animation:modal-in var(--duration-modal) var(--ease-out);background-image:linear-gradient(to bottom,rgba(184,154,83,0.06) 0%,transparent 60px);position:relative;}
.turn-box::before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);border-radius:1px;}
.turn-body{flex:1;overflow-y:auto;padding:1.2rem;}
.turn-footer{padding:0.8rem;border-top:1px solid var(--bdr);text-align:center;}
.turn-section{margin-bottom:1rem;}
.turn-section h3{color:var(--color-primary);font-size:var(--text-md);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-border-subtle);padding-bottom:var(--space-1);letter-spacing:0.05em;}
.turn-section h3::before{content:"〔";color:var(--gold-500);}.turn-section h3::after{content:"〕";color:var(--gold-500);}
.turn-section-content{font-size:0.88rem;line-height:1.9;color:var(--txt-s);white-space:pre-wrap;letter-spacing:0.02em;}
.turn-section-content p{margin:0.4rem 0;}

/* 2.1: 回合结果分层展示 */
.turn-summary-bar{font-size:var(--text-lg,1.1rem);font-weight:var(--weight-bold,700);color:var(--color-primary);text-align:center;padding:0.8rem 1rem;margin-bottom:0.8rem;background:linear-gradient(135deg,rgba(184,154,83,0.08),rgba(184,154,83,0.02));border:1px solid var(--gold-500);border-radius:var(--radius-md);letter-spacing:0.08em;line-height:1.6;}
.turn-critical-tags{display:flex;justify-content:center;gap:0.5rem;margin-bottom:0.6rem;flex-wrap:wrap;}
.turn-critical-tag{font-size:var(--text-xs,0.72rem);font-weight:700;padding:0.15rem 0.5rem;border-radius:10px;background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color);border:1px solid color-mix(in srgb,var(--tag-color) 30%,transparent);letter-spacing:0.05em;}
.turn-detail-toggle{text-align:center;padding:0.5rem;margin:0.6rem 0;cursor:pointer;color:var(--color-foreground-muted);font-size:var(--text-sm,0.85rem);border:1px dashed var(--color-border-subtle);border-radius:var(--radius-md);transition:background var(--duration-fast,150ms) var(--ease-out,ease-out),color var(--duration-fast,150ms);}
.turn-detail-toggle:hover{background:var(--color-elevated,rgba(255,255,255,0.05));color:var(--color-primary);}
.turn-detail-toggle .toggle-arrow{display:inline-block;transition:transform 0.2s;font-size:0.7rem;}
.turn-detail-content{display:none;animation:turnDetailIn 0.3s ease-out;}
.turn-detail-content.show{display:block;}
@keyframes turnDetailIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
/* 回合推演五板块 */
.shilu-section h3{color:var(--gold-500);}
.shilu-section .narr-shilu{font-size:0.95rem;}
.szj-section h3{color:var(--color-primary);}
.szj-section .szj-title{font-size:1.05rem !important;}
.unified-changes h3{color:var(--celadon-400,#66bb6a);}
.personnel-section h3{color:var(--gold-400);}
.houren-section h3{color:var(--indigo-400,#7986cb);}
.houren-section .narr-houren{font-size:0.9rem;}

/* 2.5: 朝政中心 */
.zz-group{margin-bottom:0.8rem;}
.zz-group-title{font-size:var(--text-sm,0.85rem);font-weight:700;color:var(--gc,var(--gold-400));padding:0.3rem 0;border-bottom:1px solid var(--color-border-subtle);margin-bottom:0.4rem;display:flex;align-items:center;gap:4px;letter-spacing:0.05em;}
.zz-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0.4rem;}
.zz-item{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.6rem;background:var(--color-elevated,rgba(255,255,255,0.03));border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:border-color 0.15s,background 0.15s;}
.zz-item:hover{border-color:var(--gold-500);background:rgba(184,154,83,0.06);}
.zz-item.disabled{opacity:0.45;cursor:not-allowed;}
.zz-item.disabled:hover{border-color:var(--color-border-subtle);background:var(--color-elevated,rgba(255,255,255,0.03));}
.zz-item-icon{font-size:1.1rem;flex-shrink:0;width:24px;text-align:center;}
.zz-item-text{flex:1;min-width:0;}
.zz-item-label{font-size:var(--text-sm,0.85rem);font-weight:600;color:var(--color-foreground);}
.zz-item-sub{font-size:var(--text-xs,0.72rem);color:var(--color-foreground-muted);margin-top:1px;}
.zz-item-status{font-size:0.7rem;flex-shrink:0;}
.zz-item-status.ok{color:var(--celadon-400);}
.zz-item-status.no{color:var(--vermillion-400);}
.zz-summary{display:flex;justify-content:center;gap:1rem;padding:0.6rem;margin-top:0.5rem;border-top:1px solid var(--color-border-subtle);font-size:var(--text-sm,0.85rem);color:var(--color-foreground-muted);}

/* 2.2: 角色交互快捷面板 */
.char-link{cursor:pointer;font-weight:bold;text-decoration:underline dotted;text-underline-offset:2px;transition:filter 0.15s;}
.char-link:hover{filter:brightness(1.3);}
/* 7.3: GPU加速提示 */
.char-popup,.notify-persist,.notify-urgent-box,.turn-detail-content{will-change:transform,opacity;}
.char-popup{position:fixed;z-index:1100;width:240px;background:var(--color-surface,#1a1a2e);border:1px solid var(--gold-500,#c9a849);border-radius:var(--radius-lg,10px);box-shadow:0 8px 32px rgba(0,0,0,0.5),0 0 0 1px rgba(201,168,73,0.15);padding:0;overflow:hidden;animation:charPopupIn 0.2s ease-out;font-size:0.8rem;}
@keyframes charPopupIn{from{opacity:0;transform:scale(0.92)translateY(-6px);}to{opacity:1;transform:scale(1)translateY(0);}}
.char-popup-header{padding:0.6rem 0.7rem 0.4rem;background:linear-gradient(135deg,rgba(184,154,83,0.1),transparent);border-bottom:1px solid var(--color-border-subtle);}
.char-popup-name{font-size:1rem;font-weight:700;letter-spacing:0.05em;}
.char-popup-title{font-size:0.7rem;color:var(--color-foreground-muted);margin-top:2px;}
.char-popup-faction{display:inline-block;font-size:0.7rem;padding:1px 6px;border:1px solid;border-radius:8px;margin-top:3px;color:var(--color-foreground-muted);}
.char-popup-stats{padding:0.5rem 0.7rem;display:flex;flex-direction:column;gap:4px;}
.char-popup-stat{display:flex;align-items:center;gap:6px;}
.char-popup-stat .stat-label{font-size:0.71rem;color:var(--color-foreground-muted);width:28px;flex-shrink:0;}
.char-popup-stat .stat-bar{flex:1;height:5px;background:var(--color-border-subtle);border-radius:3px;overflow:hidden;}
.char-popup-stat .stat-fill{height:100%;border-radius:3px;transition:width 0.3s ease-out;}
.char-popup-stat .stat-val{font-size:0.71rem;width:22px;text-align:right;color:var(--color-foreground-muted);}
.char-popup-info{padding:2px 0.7rem;font-size:0.72rem;color:var(--color-foreground-muted);}
.char-popup-section{padding:0.3rem 0.7rem;}
.char-popup-section-title{font-size:0.71rem;color:var(--gold-400);font-weight:700;margin-bottom:2px;}
.char-popup-actions{display:flex;gap:4px;padding:0.5rem 0.7rem;border-top:1px solid var(--color-border-subtle);}
.char-popup-btn{flex:1;padding:4px 0;font-size:0.7rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm,4px);background:var(--color-elevated,rgba(255,255,255,0.05));color:var(--color-foreground);cursor:pointer;transition:background 0.15s,border-color 0.15s;}
.char-popup-btn:hover{background:var(--gold-500);color:var(--ink-900,#1a1a1a);border-color:var(--gold-500);}

/* 2.3: 战况可视化 */
.battle-card{background:var(--color-elevated,rgba(255,255,255,0.03));border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:0.6rem 0.8rem;margin-bottom:0.6rem;}
.battle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem;}
.battle-side{font-size:0.82rem;font-weight:700;}
.battle-side.atk{color:var(--celadon-400);}
.battle-side.def{color:var(--vermillion-400);}
.battle-verdict{font-size:0.9rem;font-weight:700;letter-spacing:0.08em;}
.battle-bars{display:flex;flex-direction:column;gap:4px;margin-bottom:0.4rem;}
.battle-bar-row{display:flex;align-items:center;gap:6px;}
.battle-bar-row .bar-label{font-size:0.71rem;color:var(--color-foreground-muted);width:18px;text-align:center;}
.battle-bar-row .bar-track{flex:1;height:12px;background:var(--color-border-subtle);border-radius:6px;overflow:hidden;position:relative;}
.battle-bar-row .bar-fill{height:100%;border-radius:6px;position:relative;transition:width 0.6s ease-out;}
.battle-bar-row .bar-fill.atk{background:var(--celadon-400);}
.battle-bar-row .bar-fill.def{background:var(--vermillion-400);}
.battle-bar-row .bar-loss{position:absolute;right:0;top:0;height:100%;background:rgba(0,0,0,0.5);border-radius:0 6px 6px 0;}
.battle-bar-row .bar-num{font-size:0.71rem;color:var(--color-foreground-muted);width:40px;text-align:right;}
.battle-casualties{display:flex;justify-content:space-between;font-size:0.72rem;color:var(--color-foreground-muted);padding:0.2rem 0;border-top:1px dashed var(--color-border-subtle);}
.battle-meta{font-size:0.7rem;color:var(--color-foreground-muted);text-align:center;margin-top:0.2rem;}
.battle-timeline{margin-top:0.5rem;padding:0.4rem 0.6rem;background:var(--color-elevated,rgba(255,255,255,0.02));border-radius:var(--radius-sm);}
.battle-timeline-title{font-size:0.7rem;color:var(--gold-400);margin-bottom:0.3rem;}
.battle-timeline-track{display:flex;align-items:center;gap:3px;}
.timeline-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.timeline-dot.win{background:var(--celadon-400);}
.timeline-dot.lose{background:var(--vermillion-400);}
.timeline-dot.draw{background:var(--amber-400,#f59e0b);}
.timeline-dot::after{content:"";display:block;width:8px;height:2px;background:var(--color-border-subtle);position:relative;left:10px;top:-4px;}
.timeline-dot:last-child::after{display:none;}

/* 叙事文本增强样式 */
/* 叙事文本（水墨书卷风） */
.narr-shizhengji{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-foreground);background:linear-gradient(135deg,rgba(184,154,83,0.04),transparent);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-left:3px solid var(--gold-500);margin-bottom:var(--space-3);}
.narr-zhengwen{font-size:var(--text-md);line-height:var(--leading-loose);color:var(--color-foreground);text-indent:2em;letter-spacing:0.02em;}
.narr-status{font-size:0.82rem;color:var(--txt-d);padding:0.5rem 0.8rem;background:var(--bg-2);border-radius:6px;margin-top:0.6rem;border:1px solid var(--bdr);}

/* 史记浮动按钮 */
.float-btn{position:fixed;bottom:48px;z-index:998;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;display:none;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 4px 15px rgba(0,0,0,0.4);transition:all 0.25s var(--ease);}
.float-btn:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(0,0,0,0.5);}
.float-btn:active{transform:scale(0.95);}
.float-btn.show{display:flex;animation:fi 0.3s var(--ease);}

/* 暂停菜单 */
.pause-bg{position:fixed;inset:0;z-index:1001;background:rgba(0,0,0,0.85);display:none;align-items:center;justify-content:center;}
.pause-bg.show{display:flex;}
.pause-menu{background:var(--bg-1);border:1px solid var(--gold-d);border-radius:16px;padding:2rem;width:320px;display:flex;flex-direction:column;gap:0.7rem;align-items:center;box-shadow:var(--shadow-lg);animation:modal-in 0.3s var(--ease);}
.pause-title{font-size:1.3rem;font-weight:700;color:var(--gold);margin-bottom:0.5rem;letter-spacing:0.15em;}
.pause-btn{width:100%;padding:0.8rem;border:1px solid var(--bdr);background:linear-gradient(135deg,var(--bg-2),var(--bg-1));color:var(--txt);border-radius:10px;cursor:pointer;font-family:inherit;font-size:0.95rem;text-align:center;transition:all 0.25s var(--ease);}
.pause-btn:hover{border-color:var(--gold-d);background:linear-gradient(135deg,var(--bg-3),var(--bg-2));transform:translateY(-1px);box-shadow:var(--shadow-sm);}

/* 设置弹窗 */
.settings-bg{position:fixed;inset:0;z-index:1002;background:rgba(0,0,0,0.85);display:none;align-items:center;justify-content:center;}
.settings-bg.show{display:flex;animation:fi 0.25s var(--ease);}
/* 2026-07-04 设置重做「典章」：浮窗→全屏页·书房场景底图（复用菜单页资产）+居中版心+四角花 */
.settings-box{position:relative;background:linear-gradient(180deg,rgba(7,6,4,0.86),rgba(7,6,4,0.74) 34%,rgba(7,6,4,0.90)),url("assets/ui/home/home-menu-imperial-study-v1.png") center/cover no-repeat,#0a0806;border:0;border-radius:0;width:100vw;height:100vh;max-height:100vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:none;animation:fi 0.25s var(--ease);}
.settings-box::before,.settings-box::after{content:"";position:absolute;width:24px;height:24px;border-color:rgba(240,219,154,0.55);pointer-events:none;z-index:6;}
.settings-box::before{top:12px;left:12px;border-top:1px solid;border-left:1px solid;}
.settings-box::after{right:12px;bottom:12px;border-right:1px solid;border-bottom:1px solid;}
/* 题头：典章玺印大题 + 检索 + 返回 */
.settings-head{flex:0 0 auto;display:flex;align-items:center;gap:1rem;width:100%;max-width:1220px;margin:0 auto;padding:1.1rem 1.5rem 0.95rem;border-bottom:1px solid rgba(215,185,104,0.22);}
.settings-title{display:flex;align-items:center;gap:0.85rem;white-space:nowrap;}
.settings-title-seal{width:46px;height:46px;display:grid;place-items:center;border-radius:7px;border:1px solid rgba(255,219,180,0.42);background:radial-gradient(circle at 36% 28%,rgba(255,190,158,0.5),transparent 30%),linear-gradient(150deg,#d5604c,#8d2f2c 72%);color:#fff1de;font-family:"STKaiti","KaiTi","楷体",serif;font-size:25px;font-weight:800;transform:rotate(-3deg);box-shadow:0 9px 20px rgba(0,0,0,0.5),inset 0 0 12px rgba(255,255,255,0.08);}
.settings-title-txt b{display:block;font-family:"STKaiti","KaiTi","楷体",serif;font-size:1.5rem;letter-spacing:0.28em;color:#f0db9a;font-weight:800;line-height:1;text-shadow:0 2px 10px rgba(0,0,0,0.6);}
.settings-title-txt small{display:block;margin-top:6px;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.7rem;letter-spacing:0.2em;color:rgba(215,185,104,0.62);}
.settings-return{margin-left:0.4rem;padding:0.52rem 1.2rem;border:1px solid rgba(215,185,104,0.42);border-radius:3px;background:rgba(0,0,0,0.32);color:#e8d5a0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.9rem;letter-spacing:0.2em;cursor:pointer;transition:border-color 0.15s,color 0.15s,background 0.15s;}
.settings-return:hover{border-color:#f0db9a;color:#f7e7b3;background:rgba(215,185,104,0.12);}
.settings-body{flex:1;overflow:hidden;padding:0;display:flex;flex-direction:column;min-height:0;width:100%;max-width:1220px;margin:0 auto;}
.settings-tab-shell{flex:1;min-height:0;display:grid;grid-template-columns:252px minmax(0,1fr);background:transparent;}
.settings-tabs{overflow:auto;padding:0.9rem 0.7rem 1rem;border-right:1px solid rgba(215,185,104,0.18);background:linear-gradient(180deg,rgba(10,8,6,0.42),rgba(10,8,6,0.20));display:flex;flex-direction:column;gap:0.3rem;scrollbar-width:thin;scrollbar-color:rgba(215,185,104,0.35) transparent;}
.settings-tab{--tab-c:var(--gold,#d7b968);width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:0.55rem;padding:0.44rem 0.55rem;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--txt-d);font-family:inherit;text-align:left;cursor:pointer;transition:background 0.18s,border-color 0.18s,color 0.18s;}
.settings-tab:hover{background:rgba(184,154,83,0.08);border-color:rgba(184,154,83,0.22);color:var(--txt);}
.settings-tab.active{background:linear-gradient(90deg,color-mix(in srgb,var(--tab-c) 17%,transparent),rgba(184,154,83,0.05));border-color:color-mix(in srgb,var(--tab-c) 46%,transparent);color:var(--gold-l);box-shadow:inset 3px 0 0 var(--tab-c);}
/* 卷首字印：签名首字入圈·2026-07-04 色律统一——四色组印撤·全目次一律鎏金（owner「配色不统一不舒服」） */
.settings-tab-glyph{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--tab-c) 58%,transparent);background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--tab-c) 14%,transparent),rgba(0,0,0,0.32));color:var(--tab-c);font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.92rem;}
.settings-tab-label{font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.86rem;letter-spacing:0.04em;line-height:1.22;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;}
.settings-tab-group{font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.72rem;font-weight:700;color:var(--gold-d);letter-spacing:0.22em;padding:0.6rem 0.55rem 0.28rem;margin-top:0.45rem;border-top:1px solid rgba(184,154,83,0.16);user-select:none;}
.settings-tab-group::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;vertical-align:1px;transform:rotate(45deg);background:rgba(215,185,104,0.55);}
.settings-tabs > .settings-tab-group:first-child{margin-top:0;border-top:none;padding-top:0.1rem;}
.settings-panes{min-height:0;overflow:auto;padding:1.1rem 1.4rem 1.4rem;scrollbar-width:thin;scrollbar-color:rgba(215,185,104,0.38) rgba(0,0,0,0.15);}
.settings-pane{max-width:880px;}
.settings-panes::-webkit-scrollbar{width:7px;}
.settings-panes::-webkit-scrollbar-thumb{background:rgba(215,185,104,0.36);border-radius:4px;}
.settings-panes::-webkit-scrollbar-track{background:rgba(0,0,0,0.14);}
.settings-pane{display:none;}
.settings-pane.active{display:block;animation:fi 0.16s var(--ease);}
.settings-savebar{display:flex;justify-content:center;border-top:1px solid rgba(215,185,104,0.22);padding:0.7rem 1.15rem;background:linear-gradient(0deg,rgba(10,8,6,0.94),rgba(10,8,6,0.42));box-shadow:0 -10px 22px rgba(0,0,0,0.3);}
.settings-savebar .bt{margin:0;width:auto !important;min-width:300px;padding:0.62rem 2.4rem !important;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.95rem !important;letter-spacing:0.24em;}
.settings-section{margin-bottom:1.4rem;padding:0.9rem;background:linear-gradient(180deg,rgba(219,190,122,0.06),rgba(0,0,0,0.08) 32%),var(--bg-2);border-radius:3px;border:1px solid rgba(215,185,104,0.20);box-shadow:inset 0 1px 0 rgba(255,238,188,0.05);}
.settings-pane .settings-section{margin-bottom:0;}
.settings-pane .settings-section + .settings-section{margin-top:1rem;}   /* 稀签合并后同页多节的节间距 */
.settings-box input[type=checkbox],.settings-box input[type=radio],.settings-box input[type=range]{accent-color:var(--gold);}
.settings-search{flex:1;max-width:340px;margin:0 0 0 auto;padding:0.42rem 0.8rem;background:rgba(0,0,0,0.34);border:1px solid rgba(215,185,104,0.28);border-radius:3px;color:var(--txt);font-family:inherit;font-size:0.8rem;}
.settings-search:focus{outline:none;border-color:var(--gold-d);box-shadow:0 0 0 2px rgba(184,154,83,0.15);}
.settings-search::placeholder{color:var(--txt-d);}
.settings-tab.search-miss{display:none;}
.settings-tab-group.search-miss{display:none;}
.settings-section h4{color:var(--gold);font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.95rem;margin-bottom:0.7rem;border-bottom:1px solid rgba(215,185,104,0.18);padding-bottom:0.45rem;letter-spacing:0.08em;}
.settings-section h4::before{content:"";display:inline-block;width:6px;height:6px;background:var(--vermillion-400,#c04030);transform:rotate(45deg);margin-right:8px;vertical-align:1px;}
/* ═══ 2026-07-04 典章·纸面册页化：内容区翻米纸（暗目次+纸册页=开卷式）。
   杠杆=在 .settings-panes 作用域重定义 palette token → 归族过的内容自动翻纸·语义色保留 ═══ */
.settings-panes{
  --txt:#3b2c19;--txt-d:#6e583a;--gold:#8a6a2f;--gold-l:#6d5122;--gold-d:#7d6232;
  --bdr:rgba(138,106,47,0.34);--bg-1:#f9f1dd;--bg-2:#f6ecd3;--bg-3:#efe3c6;
  /* 2026-07-04 色律统一：纸面归「墨·金·朱」三色·杂色hue全向墨系收敛（青→青墨·蓝靛紫→黛墨·琥珀→金）·朱独留作警示 */
  --celadon-400:#55704f;--celadon-300:#66815f;--celadon-500:#465e41;
  --vermillion-300:#b04a38;
  --indigo-400:#53627e;--indigo-300:#66748e;--indigo-500:#454f66;
  --blue-400:#53627e;--blue:#53627e;--purple:#5c5470;
  --green-400:#55704f;--amber-400:#8a6a2f;
  --color-elevated:#f1e6cb;--color-surface:#f6ecd3;--color-border-subtle:rgba(138,106,47,0.30);
  background:
    radial-gradient(ellipse at 50% 0,rgba(255,252,242,0.9),transparent 60%),
    repeating-linear-gradient(0deg,transparent 0 41px,rgba(150,115,60,0.05) 41px 42px),
    linear-gradient(165deg,#fbf6e8,#f4e8cf 58%,#ecdfc2);
  box-shadow:inset 16px 0 26px -16px rgba(60,35,10,0.38),inset -8px 0 18px -10px rgba(60,35,10,0.18);
  color:var(--txt);
  scrollbar-color:rgba(138,106,47,0.45) rgba(120,90,45,0.10);
}
.settings-panes::-webkit-scrollbar-thumb{background:rgba(138,106,47,0.42);}
.settings-panes::-webkit-scrollbar-track{background:rgba(120,90,45,0.08);}
/* 纸上节卡：白纸微浮·墨题·朱菱点保留 */
.settings-panes .settings-section{background:linear-gradient(180deg,rgba(255,253,246,0.72),rgba(246,236,211,0.42));border:1px solid rgba(138,106,47,0.30);border-radius:3px;box-shadow:0 1px 3px rgba(90,60,25,0.12),inset 0 1px 0 rgba(255,255,255,0.55);}
.settings-panes .settings-section h4{color:#5d431f;border-bottom-color:rgba(138,106,47,0.28);text-shadow:none;}
/* ═══ 控件游戏化（纸面语境·CSS-only 不动 DOM/id）═══ */
/* 勾选=朱印小方章：未钤=素纸框·钤印=朱底白勾 */
.settings-panes input[type=checkbox]{appearance:none;-webkit-appearance:none;width:19px;height:19px;margin:0 4px 0 0;border:1.5px solid rgba(150,60,40,0.55);border-radius:3px;background:linear-gradient(180deg,#fffdf6,#f3e9d2);box-shadow:inset 0 1px 2px rgba(120,80,40,0.18);cursor:pointer;position:relative;vertical-align:-4px;transition:border-color 0.14s,background 0.14s;}
.settings-panes input[type=checkbox]:hover{border-color:#a3402c;}
.settings-panes input[type=checkbox]:checked{background:radial-gradient(circle at 32% 26%,#d5604c,#9c3428 72%);border-color:#7e2a1f;box-shadow:inset 0 0 5px rgba(60,10,6,0.4),0 1px 3px rgba(120,40,25,0.3);}
.settings-panes input[type=checkbox]:checked::after{content:"";position:absolute;left:5.5px;top:2.5px;width:5px;height:9px;border:solid #fff3df;border-width:0 2px 2px 0;transform:rotate(42deg);}
.settings-panes input[type=radio]{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin:0 4px 0 0;border:1.5px solid rgba(150,60,40,0.55);border-radius:50%;background:linear-gradient(180deg,#fffdf6,#f3e9d2);cursor:pointer;position:relative;vertical-align:-3px;}
.settings-panes input[type=radio]:checked{border-color:#7e2a1f;}
.settings-panes input[type=radio]:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#d5604c,#9c3428 75%);}
.settings-panes input[type=range]{accent-color:#a3402c;}
/* 文本/数字输入·下拉=纸面墨字 */
.settings-panes input[type=text],.settings-panes input[type=number],.settings-panes input[type=password],.settings-panes textarea{background:rgba(255,253,246,0.85);border:1px solid rgba(138,106,47,0.42);border-radius:3px;color:#3b2c19;}
.settings-panes input[type=text]:focus,.settings-panes input[type=number]:focus,.settings-panes input[type=password]:focus,.settings-panes textarea:focus{border-color:#8a6a2f;box-shadow:0 0 0 2px rgba(138,106,47,0.16);outline:none;}
.settings-panes select{appearance:none;-webkit-appearance:none;padding:0.4rem 1.9rem 0.4rem 0.7rem;border:1px solid rgba(138,106,47,0.42);border-radius:3px;background:linear-gradient(180deg,#fffdf6,#f5ebd4);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23755a2e' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.65rem center;color:#3b2c19;cursor:pointer;}
.settings-panes select:focus{border-color:#8a6a2f;outline:none;}
/* 按钮=纸签：素签(bs)描褐·钤金(bp)鎏金填 */
.settings-panes .bt{border:1px solid rgba(138,106,47,0.45);border-radius:3px;background:linear-gradient(180deg,#fffdf6,#f3e8d0);color:#5d431f;box-shadow:0 1px 2px rgba(90,60,25,0.14),inset 0 1px 0 rgba(255,255,255,0.6);text-shadow:none;}
.settings-panes .bt:hover{border-color:#8a6a2f;background:linear-gradient(180deg,#fffef9,#f0e2c4);color:#3b2c19;}
.settings-panes .bt.bp{background:radial-gradient(ellipse at 50% 20%,rgba(255,250,230,0.55),transparent 65%),linear-gradient(180deg,#eed9a8,#d4b168 60%,#b8934a);border-color:#8a6a2f;color:#3a2810;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,252,240,0.7),inset 0 -1px 2px rgba(110,80,35,0.35),0 2px 5px rgba(90,60,25,0.22);}
.settings-panes .bt.bp:hover{background:radial-gradient(ellipse at 50% 20%,rgba(255,252,238,0.7),transparent 65%),linear-gradient(180deg,#f2dfb2,#dcbb72 60%,#c09a4f);}
/* 纸面残雷排除：主题预览卡/字号档签/选中态/标签墨色（暗底组件翻纸） */
.settings-panes label{color:#6b5636;}
.settings-panes .gs-theme-card{background:linear-gradient(180deg,#fffdf6,#f2e7cd);border:1px solid rgba(138,106,47,0.35);color:#3b2c19;box-shadow:0 1px 3px rgba(90,60,25,0.12);}
.settings-panes .gs-theme-card .gs-theme-name{color:#4a3418;}
.settings-panes .gs-theme-card .desc{color:#7a6440;}
.settings-panes .gs-theme-card:hover{border-color:#8a6a2f;}
.settings-panes .gs-theme-card.active{border-color:#8a6a2f;background:linear-gradient(180deg,#fffef9,#f6ecd2);box-shadow:0 0 0 1px #8a6a2f,0 2px 8px rgba(90,60,25,0.2);}
.settings-panes .gs-sz-btn{border:1px solid rgba(138,106,47,0.42);background:linear-gradient(180deg,#fffdf6,#f3e8d0);color:#5d431f;}
.settings-panes .gs-sz-btn:hover{border-color:#8a6a2f;color:#3b2c19;}
.settings-panes .gs-sz-btn.active{background:linear-gradient(180deg,#eed9a8,#d4b168 60%,#c09a4f);border-color:#8a6a2f;color:#3a2810;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,252,240,0.7),inset 0 -1px 2px rgba(110,80,35,0.35);}
.settings-panes .wd-preset-label:has(input:checked){background:rgba(160,124,58,0.16);}
/* .bai（检测模型等蓝紫渐变钮）纸面归金——色律统一漏网 */
.settings-panes .bai{background:linear-gradient(135deg,#a3805b,#8a6a2f);color:#fff8e8;box-shadow:0 2px 6px rgba(110,80,35,0.3);}
.settings-panes .bai:hover{background:linear-gradient(135deg,#b08f66,#9a7a3c);}
/* 高级抽屉（AI管线开关等内部旋钮·默认收起） */
.tm-settings-adv{width:100%;}
.tm-settings-adv summary{cursor:pointer;font-family:"STKaiti","KaiTi","楷体",serif;font-size:0.8rem;color:var(--txt-d);letter-spacing:0.04em;padding:0.3rem 0;user-select:none;}
.tm-settings-adv summary:hover{color:var(--txt);}
.tm-settings-adv[open] summary{color:var(--gold);margin-bottom:0.3rem;}
/* 声乐曲库/循环钮：旧音声侧栏蓝系→纸面米金朱（顺带治循环 active 偏淡） */
.settings-panes .gs-audio-loop-btn{border:1px solid rgba(138,106,47,0.42);color:#5d431f;background:linear-gradient(180deg,#fffdf6,#f3e8d0);}
.settings-panes .gs-audio-loop-btn:hover{border-color:#8a6a2f;color:#3b2c19;}
.settings-panes .gs-audio-loop-btn.active{background:linear-gradient(180deg,#eed9a8,#d4b168 60%,#c09a4f);border-color:#8a6a2f;color:#3a2810;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,252,240,0.7),inset 0 -1px 2px rgba(110,80,35,0.35);}
.settings-panes .tm-settings-track{background:rgba(255,253,246,0.62);border:1px solid rgba(138,106,47,0.30);border-left:3px solid #a08040;color:var(--txt);}
.settings-panes .tm-settings-track:hover{border-color:#8a6a2f;background:#fffdf6;}
.settings-panes .tm-settings-track.active{background:linear-gradient(90deg,rgba(160,124,58,0.20),rgba(160,124,58,0.06));border-left-color:#9c3428;color:#3b2c19;}
.settings-panes .tm-settings-track.active span{color:#7e2a1f;font-weight:700;}
.settings-panes .tm-settings-track-list{max-height:236px;}
.tm-settings-sub{font-size:0.72rem;color:var(--txt-d);margin:-0.25rem 0 0.7rem;line-height:1.55;}
.tm-settings-two{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.65rem;}
.tm-settings-toggle{display:flex;align-items:flex-start;gap:0.45rem;padding:0.55rem 0.65rem;background:rgba(184,154,83,0.04);border:1px solid var(--bdr);border-radius:6px;cursor:pointer;}
.tm-settings-toggle input{margin-top:0.15rem;accent-color:var(--gold);}
.tm-settings-toggle span{display:block;color:var(--txt);font-weight:600;font-size:0.82rem;}
.tm-settings-toggle em{display:block;color:var(--txt-d);font-style:normal;font-size:0.71rem;line-height:1.4;margin-top:0.08rem;}
.tm-settings-range{display:grid;grid-template-columns:44px 1fr 34px;gap:0.55rem;align-items:center;margin:0.45rem 0;font-size:0.78rem;}
.tm-settings-range input[type=range]{accent-color:var(--gold);}
.tm-settings-range b{color:var(--gold-l);font-variant-numeric:tabular-nums;text-align:right;}
.tm-settings-loop{display:flex;gap:4px;margin:0.65rem 0;}
.tm-settings-track-list{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow:auto;margin-top:0.45rem;}
.tm-settings-track{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0.45rem 0.6rem;background:rgba(90,143,184,0.05);border:1px solid rgba(90,143,184,0.22);border-left:3px solid var(--blue-400,#5a8fb8);border-radius:4px;color:var(--txt);font-family:inherit;cursor:pointer;text-align:left;}
.tm-settings-track.active{background:rgba(90,143,184,0.14);color:var(--blue-400,#5a8fb8);}
.tm-settings-track em{font-style:normal;color:var(--txt-d);font-size:0.71rem;}
.tm-settings-empty{padding:0.65rem;border:1px dashed var(--bdr);border-radius:5px;color:var(--txt-d);font-size:0.75rem;text-align:center;}
/* 2026-07-04 典章声乐·导入音乐 */
.tm-settings-audio-actions{display:flex;align-items:center;gap:0.7rem;margin:0.55rem 0 0.15rem;}
.tm-settings-audio-actions .bt{font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.12em;}
.tm-settings-audio-hint{font-size:0.72rem;color:var(--txt-d);letter-spacing:0.02em;}
.tm-settings-track-del{margin-left:auto;flex:0 0 auto;color:var(--vermillion-400,#c04030);font-style:normal;font-size:0.88em;line-height:1;padding:2px 5px;cursor:pointer;border-radius:2px;transition:color 0.13s,background 0.13s;}
.tm-settings-track-del:hover{color:#fff3df;background:var(--vermillion-400,#c04030);}
.tm-settings-track em{margin-left:auto;}
.tm-settings-track .tm-settings-track-del{margin-left:0.4rem;}
.tm-settings-theme-grid{margin-bottom:0.65rem;}
.wd-preset-label{display:inline-flex;flex-direction:column;align-items:center;padding:0.4rem 0.8rem;border:1px solid var(--bdr);border-radius:8px;cursor:pointer;font-size:0.82rem;transition:all 0.2s;text-align:center;min-width:70px;}
.wd-preset-label:has(input:checked){border-color:var(--gold);color:var(--gold);background:rgba(184,154,83,0.08);}
.wd-preset-label input[type="radio"]{margin-bottom:2px;accent-color:var(--gold);}
@media (max-width: 720px){.tm-settings-two{grid-template-columns:1fr}.tm-settings-theme-grid{grid-template-columns:1fr;}.settings-box{width:100vw;height:100vh;max-height:100vh}.settings-head{padding:0.7rem 0.8rem;gap:0.5rem}.settings-title-txt small{display:none}.settings-title-seal{width:36px;height:36px;font-size:19px}.settings-title-txt b{font-size:1.15rem}.settings-search{max-width:none;margin:0 0.3rem}.settings-tab-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.settings-tabs{border-right:none;border-bottom:1px solid var(--bdr);flex-direction:row;overflow-x:auto;padding:0.55rem}.settings-tab{min-width:118px;grid-template-columns:24px minmax(0,1fr)}.settings-tab-glyph{width:22px;height:22px;font-size:0.78rem}.settings-panes{padding:0.8rem}.settings-savebar{padding:0.6rem 0.8rem;}.settings-savebar .bt{min-width:0;width:100% !important}.settings-tab-group{display:none}.settings-tab-label{-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis}}
@media (max-width: 720px){.tm-scope-size-grid{grid-template-columns:1fr;}}

/* 开关 */
.toggle-wrap{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0;}
.toggle{position:relative;width:40px;height:22px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--bg-4);border-radius:11px;transition:0.3s;}
.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#666;border-radius:50%;transition:0.3s;}
.toggle input:checked+.toggle-slider{background:var(--green);}
.toggle input:checked+.toggle-slider:before{transform:translateX(18px);background:#fff;}

/* 剧本选择（启幕卷轴 v2 风格） */
.scn-page{position:fixed;inset:0;z-index:998;background:linear-gradient(180deg,#12100e,#1a1510);display:none;flex-direction:column;align-items:center;padding:2rem 1rem 3rem;overflow-y:auto;font-family:"STKaiti","KaiTi","楷体",serif;}
.scn-page::before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent,transparent 4em,rgba(184,154,83,0.015) 4em,rgba(184,154,83,0.015) calc(4em + 1px));z-index:0;}
.scn-page.show{display:flex;}
.scn-page > *{position:relative;z-index:1;}
.scn-page-title{font-size:28px;font-weight:500;color:var(--gold-300);letter-spacing:0.4em;margin-top:1.5rem;position:relative;font-family:"STKaiti","KaiTi","楷体",serif;}
.scn-page-title::before{content:"〔 ";color:var(--gold-500);font-weight:400;}
.scn-page-title::after{content:" 〕";color:var(--gold-500);font-weight:400;}
.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;max-width:1080px;width:100%;margin-top:var(--space-5);}
.scn-card{position:relative;background:linear-gradient(160deg,rgba(36,30,24,0.92),rgba(26,21,16,0.88));background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(184,154,83,0.025) 2.5em,rgba(184,154,83,0.025) calc(2.5em + 1px));border:1px solid rgba(184,154,83,0.2);border-radius:3px;padding:14px 16px;cursor:pointer;overflow:hidden;transition:all 0.25s var(--ease-out);min-height:140px;font-family:"STKaiti","KaiTi","楷体",serif;}
.scn-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--gold-500),var(--gold-400) 30%,var(--gold-400) 70%,var(--gold-500));opacity:0.8;transition:opacity 0.3s;}
.scn-card::after{content:"";position:absolute;right:12px;top:12px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(192,64,48,0.78),rgba(140,40,30,0.82));opacity:0.7;transform:rotate(-6deg);box-shadow:0 0 0 1px rgba(255,220,200,0.15);transition:opacity 0.3s;}
.scn-card:hover{border-color:var(--gold-400);transform:translateY(-3px);box-shadow:0 10px 22px rgba(10,9,8,0.45),0 0 16px rgba(184,154,83,0.08);}
.scn-card:hover::before{opacity:1;}
.scn-card:hover::after{opacity:0.9;}
.scn-card .scn-era{font-size:15px;color:var(--gold-400);letter-spacing:0.2em;margin-bottom:4px;}
.scn-card .scn-name{font-size:17px;color:var(--ink-100);letter-spacing:0.1em;font-weight:600;margin-bottom:3px;line-height:1.25;}
.scn-card .scn-role{font-size:12px;color:var(--celadon-400);letter-spacing:0.08em;margin-bottom:8px;}
.scn-card .scn-bg{font-size:15px;color:var(--ink-300);letter-spacing:0.04em;line-height:1.65;font-style:italic;opacity:0.88;padding-right:8px;}
.scn-card-new{border:1.5px dashed rgba(184,154,83,0.4);display:flex;align-items:center;justify-content:center;min-height:140px;font-size:14px;color:var(--gold-300);letter-spacing:0.3em;background:transparent !important;}
.scn-card-new::before,.scn-card-new::after{display:none !important;}
.scn-card-new:hover{border-color:var(--gold-400);background:rgba(184,154,83,0.03) !important;}
/* 剧本管理（编辑器入口）紫色主题覆盖 */
.edit-title-purple{color:#b08bc8 !important;}
.edit-title-purple::before,.edit-title-purple::after{color:rgba(142,106,168,0.5) !important;}
.edit-grid-purple .scn-card{border-color:rgba(142,106,168,0.25);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(142,106,168,0.02) 2.5em,rgba(142,106,168,0.02) calc(2.5em + 1px));}
.edit-grid-purple .scn-card::before{background:linear-gradient(180deg,rgba(142,106,168,0.6),rgba(176,139,200,0.5),rgba(142,106,168,0.6));}
.edit-grid-purple .scn-card::after{background:linear-gradient(135deg,rgba(142,106,168,0.8),rgba(176,139,200,0.6));border-radius:3px;color:#f4eadd;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;font-weight:600;content:"编";}
.edit-grid-purple .scn-card:hover{border-color:#b08bc8;box-shadow:0 10px 22px rgba(10,9,8,0.5),0 0 16px rgba(142,106,168,0.15);}
.edit-grid-purple .scn-card .scn-era{color:#b08bc8;}
.edit-grid-purple .scn-card .scn-role{color:var(--ink-200);}
.edit-grid-purple .scn-card-new{color:#b08bc8;border-color:rgba(142,106,168,0.4);}
.edit-grid-purple .scn-card-new:hover{border-color:#b08bc8;background:rgba(142,106,168,0.05) !important;}
/* 剧本预览模态框 */
.scn-preview-modal{max-width:650px;width:90%;max-height:85vh;overflow-y:auto;background:var(--color-elevated);border:1px solid var(--gold-500);border-radius:var(--radius-lg);padding:var(--space-6);position:relative;box-shadow:0 25px 50px rgba(0,0,0,0.5),0 0 80px rgba(184,154,83,0.08);animation:modal-in 0.3s var(--ease-out);background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.015) 3em,rgba(107,93,79,0.015) calc(3em + 1px));}
/* 移植 Phase 2·S2.2-bug：开局设置模态框（剧本预览/开卷立册）在矮视口（平板横屏 ~800h、小笔记本）
   内容超 85vh 时，动作按钮行（.tm-setup-actions）会被挤进滚动区下方够不着。
   仅 @media(max-height:860px) 下让按钮行 sticky 贴底常驻——正常桌面（>860px 高）零变化。
   sticky 在不滚动时不偏移；bg+阴影遮住其后滚动内容。 */
@media (max-height: 860px){
  .scn-preview-modal .tm-setup-actions{
    position:sticky;
    bottom:0;
    background:var(--color-elevated);
    padding-top:var(--space-3);
    margin-top:var(--space-2);
    box-shadow:0 -12px 18px -8px var(--color-elevated);
    z-index:3;
  }
}

/* 模型选择 */
.model-list{display:flex;flex-wrap:wrap;gap:0.3rem;margin-top:0.3rem;}
.model-chip{padding:0.2rem 0.5rem;border:1px solid var(--bdr);background:var(--bg-3);color:var(--txt-s);border-radius:12px;cursor:pointer;font-size:0.72rem;font-family:inherit;}
.model-chip:hover{border-color:var(--gold-d);color:var(--gold);}
.model-chip.active{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.1);}

@media(max-width:900px){.sb{width:45px;}.si span,.sg{display:none;}#G{grid-template-columns:1fr;}.gl,.gr{display:none;}}

/* 2.7: 响应式布局适配 */
/* 平板竖屏 (≤1024px) */
@media(max-width:1024px){
  .ngui-left{width:280px;}
  .ngui-right{width:220px;}
  .ngui-action{padding:8px 10px;font-size:12px;}
  .ngui-endturn{padding:12px;font-size:14px;}
  .g-tab-btn{font-size:0.72rem;padding:0.3rem 0.5rem;}
  .turn-box{width:95vw;max-width:95vw;}
  .char-popup{width:220px;}
  .zz-items{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
}

/* 小平板/大手机 (≤768px) */
@media(max-width:768px){
  /* 左面板折叠为底部Tab栏 */
  .ngui-left{position:fixed;bottom:0;left:0;right:0;width:100%;height:auto;max-height:50vh;border-right:none;border-top:2px solid var(--color-border-emphasis);z-index:900;flex-direction:column-reverse;display:none;}
  .ngui-left.mobile-open{display:flex;}
  .ngui-left-tabs{order:2;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .ngui-left-tab{flex:none;padding:10px 14px;white-space:nowrap;}
  .ngui-left-content{order:1;max-height:40vh;}

  /* 右面板折叠为底部抽屉 */
  .ngui-right{position:fixed;bottom:0;left:0;right:0;width:100%;height:auto;max-height:60vh;border-left:none;border-top:2px solid var(--color-border-emphasis);z-index:899;transform:translateY(100%);transition:transform 0.3s ease-out;overflow-y:auto;}
  .ngui-right.mobile-open{transform:translateY(0);}

  /* 中心区域占满 */
  .ngui-center{width:100%;height:calc(100vh - 56px);}

  /* 底部导航栏 */
  body::after{content:"";display:block;height:56px;} /* 预留空间 */

  /* 触屏友好按钮尺寸 */
  .ngui-action,.ngui-more,.g-tab-btn,.bt,.char-popup-btn,.zz-item{min-height:44px;}
  .ngui-action{padding:12px;font-size:14px;}
  .ngui-endturn{padding:14px;font-size:15px;}

  /* 弹窗全屏 */
  .turn-box{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0;}

  /* 字体调大 */
  .narr-shizhengji,.narr-zhengwen{font-size:1rem;line-height:2;}
  .turn-summary-bar{font-size:1rem;}
  .turn-section h3{font-size:1rem;}
}

/* 手机 (≤480px) */
@media(max-width:480px){
  .zz-items{grid-template-columns:1fr;}
  .battle-header{flex-direction:column;gap:4px;text-align:center;}
  .char-popup{width:90vw;max-width:280px;}
  #notify-container{left:0.5rem;right:0.5rem;max-width:none;}
}

/* 触屏hover禁用（防止移动端hover粘滞） */
@media(hover:none){
  .ngui-action:hover,.zz-item:hover,.char-link:hover,.char-popup-btn:hover{filter:none;border-color:inherit;background:inherit;}
}

/* 2.7: 移动端底部导航栏 */
#mobile-nav{display:none;}
@media(max-width:768px){
  #mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--color-surface,#1a1a2e);border-top:2px solid var(--color-border-emphasis);z-index:950;align-items:stretch;}
  #mobile-nav button{flex:1;background:none;border:none;color:var(--color-foreground);font-family:inherit;font-size:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;}
  #mobile-nav button:active{background:var(--color-elevated,rgba(255,255,255,0.1));}
}

/* === 新增: 剧本总述 === */
.master-script-area{width:100%;min-height:300px;max-height:60vh;font-size:0.88rem;line-height:1.8;background:var(--bg-3);border:1px solid var(--bdr);color:var(--txt);border-radius:6px;padding:0.8rem;font-family:inherit;resize:vertical;}
.ms-toolbar{display:flex;gap:0.3rem;margin-bottom:0.5rem;flex-wrap:wrap;}
.ms-toolbar button{font-size:0.78rem;padding:0.25rem 0.6rem;}

/* === 新增: AI生成弹窗 === */
.ai-gen-modal-bg{position:fixed;inset:0;z-index:1005;background:rgba(0,0,0,0.84);display:flex;align-items:center;justify-content:center;animation:fi 0.2s ease;}
.ai-gen-modal{background:var(--bg-1);border:1px solid var(--gold-d);border-radius:12px;width:92%;max-width:720px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;}
.ai-gen-header{padding:0.8rem 1rem;border-bottom:1px solid var(--bdr);display:flex;justify-content:space-between;align-items:center;}
.ai-gen-header h3{color:var(--gold);font-size:1rem;margin:0;}
.ai-gen-body{flex:1;overflow-y:auto;padding:1rem;}
.ai-gen-body .fd{margin-bottom:0.6rem;}
.ai-gen-footer{padding:0.6rem 1rem;border-top:1px solid var(--bdr);display:flex;gap:0.5rem;justify-content:flex-end;}
.ai-gen-preview{background:var(--bg-3);border:1px solid var(--bdr);border-radius:6px;padding:0.8rem;margin-top:0.8rem;max-height:40vh;overflow-y:auto;white-space:pre-wrap;font-size:0.82rem;line-height:1.6;color:var(--txt-s);display:none;}
.ai-gen-preview.has-content{display:block;}

/* === 通用模态框 === */
.generic-modal-overlay{position:fixed;inset:0;z-index:1006;background:rgba(0,0,0,0.84);display:flex;align-items:center;justify-content:center;animation:fi 0.2s ease;}
.generic-modal{background:var(--bg-1);border:1px solid var(--gold-d);border-radius:14px;width:92%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in 0.3s var(--ease);}
.generic-modal-header{padding:0.8rem 1rem;border-bottom:1px solid var(--bdr);display:flex;justify-content:space-between;align-items:center;}
.generic-modal-header h3{color:var(--gold);font-size:1rem;margin:0;}
.generic-modal-body{flex:1;overflow-y:auto;padding:1rem;}
.generic-modal-body .form-group{margin-bottom:0.7rem;}
.generic-modal-body .form-group label{display:block;font-size:0.82rem;color:var(--txt-d);margin-bottom:0.2rem;}
.generic-modal-body .form-group input,.generic-modal-body .form-group textarea,.generic-modal-body .form-group select{width:100%;background:var(--bg-3);border:1px solid var(--bdr);color:var(--txt);border-radius:6px;padding:0.4rem 0.6rem;font-size:0.88rem;}
.generic-modal-body .form-group textarea{min-height:60px;resize:vertical;font-family:inherit;}
.generic-modal-footer{padding:0.6rem 1rem;border-top:1px solid var(--bdr);display:flex;gap:0.5rem;justify-content:flex-end;}
/* ═══ Tooltip 系统 ═══ */
.tm-tooltip{position:fixed;z-index:9999;max-width:300px;padding:var(--space-2) var(--space-3);background:var(--color-elevated);border:1px solid var(--gold-500);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-xs);color:var(--color-foreground-secondary);pointer-events:none;opacity:0;transition:opacity 0.15s var(--ease-out);line-height:var(--leading-normal);}
.tm-tooltip.visible{opacity:1;}
.tm-tooltip-title{font-weight:var(--weight-bold);color:var(--gold-400);margin-bottom:var(--space-1);font-size:var(--text-sm);}
.tm-tooltip-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:1px 0;}
.tm-tooltip-label{color:var(--ink-300);}
.tm-tooltip-value{font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;}
.tm-tooltip-divider{height:1px;background:var(--color-border-subtle);margin:var(--space-1) 0;}
/* ═══ 全局资源栏 ═══ */
.bar-resources{display:flex;gap:var(--space-1);align-items:center;margin-left:var(--space-3);flex:1;overflow-x:auto;scrollbar-width:none;}
.bar-resources::-webkit-scrollbar{display:none;}
.bar-res-item{display:flex;align-items:center;gap:3px;padding:2px 8px;background:var(--color-sunken);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);cursor:default;white-space:nowrap;font-size:var(--text-xs);transition:border-color 0.2s;}
.bar-res-item:hover{border-color:var(--gold-500);}
.bar-res-value{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-foreground);}
.bar-res-delta{font-size:0.66rem;margin-left:1px;}
.bar-res-delta.up{color:var(--celadon-400);}
.bar-res-delta.down{color:var(--vermillion-400);}
/* ═══ 快速详情面板（右侧滑出 440px） ═══ */
.char-detail-overlay{position:fixed;inset:0;z-index:1100;background:rgba(10,9,8,0.35);opacity:0;transition:opacity var(--duration-modal) var(--ease-out);pointer-events:none;}
.char-detail-overlay.open{opacity:1;pointer-events:auto;}
.char-detail-panel{position:fixed;top:44px;right:0;bottom:0;width:440px;max-width:92vw;z-index:1101;background:linear-gradient(to bottom,#1c1914 0%,#15120e 100%);background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(184,154,83,0.012) 2.5em,rgba(184,154,83,0.012) calc(2.5em + 1px)),linear-gradient(to bottom,#1c1914 0%,#15120e 100%);border-left:2px solid var(--gold-500);box-shadow:var(--shadow-xl);transform:translateX(100%);transition:transform var(--duration-modal) var(--ease-out);overflow-y:auto;padding:18px 22px;color:var(--ink-50);font-family:"Noto Serif SC","Source Han Serif","思源宋体","KaiTi","楷体",serif;}
.char-detail-overlay.open .char-detail-panel{transform:translateX(0);}
/* 快速面板 qp-* */
.qp-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid rgba(184,154,83,0.25);}
.qp-portrait{width:48px;height:48px;border:2px solid var(--gold-500);border-radius:50%;background:radial-gradient(circle,#2a2318,#1a1612);display:flex;align-items:center;justify-content:center;color:var(--gold-300);font-size:22px;flex-shrink:0;overflow:hidden;position:relative;font-family:"KaiTi","楷体",serif;}
.qp-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.qp-heading{flex:1;min-width:0;}
.qp-name{font-size:18px;color:var(--gold-300);letter-spacing:0.12em;font-weight:600;}
.qp-courtesy{font-size:15px;color:var(--ink-300);font-style:italic;margin-left:8px;}
.qp-courtesy::before{content:"字";font-size:9px;color:var(--gold-500);letter-spacing:0.2em;margin-right:3px;}
.qp-gender-age{font-size:14px;color:#d4be7a;margin-left:6px;}
.qp-title{font-size:15px;color:var(--ink-300);margin-top:2px;}
.qp-location-line{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;}
.qp-close{padding:4px 10px;background:transparent;border:1px solid var(--ink-500,#3a3530);color:#d4be7a;cursor:pointer;border-radius:3px;font-size:14px;}
.qp-close:hover{color:var(--vermillion-400);border-color:var(--vermillion-400);}
.qp-sec{margin-bottom:12px;}
.qp-sec-title{font-size:14px;color:var(--gold-400);letter-spacing:0.3em;margin-bottom:6px;text-align:center;padding:2px 0;}
.qp-sec-title::before,.qp-sec-title::after{content:"";display:inline-block;width:14px;height:1px;background:rgba(184,154,83,0.4);vertical-align:middle;margin:0 8px;}
.qp-heart-mini{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.qp-heart-mini-item{display:flex;align-items:center;gap:6px;padding:5px 8px;background:rgba(0,0,0,0.25);border-radius:3px;border-left:2px solid;}
.qp-heart-mini-item.loy{border-color:var(--celadon-400);}
.qp-heart-mini-item.amb{border-color:var(--purple-400,#8e44ad);}
.qp-heart-mini-lb{font-size:14px;color:var(--ink-300);letter-spacing:0.15em;flex-shrink:0;}
.qp-heart-mini-v{font-size:15px;font-weight:600;color:var(--ink-50);margin-left:auto;font-variant-numeric:tabular-nums;}
.qp-link-more{margin-top:10px;text-align:center;padding:8px;background:rgba(184,154,83,0.05);border:1px dashed rgba(184,154,83,0.3);border-radius:3px;font-size:15px;color:var(--gold-400);letter-spacing:0.2em;cursor:pointer;transition:background 0.15s;}
.qp-link-more:hover{background:rgba(184,154,83,0.1);}

/* ═══ 人物志完整页（1120px 居中模态） ═══ */
.renwu-page-overlay{position:fixed;inset:0;z-index:1200;background:rgba(10,9,8,0.78);opacity:0;transition:opacity var(--duration-modal) var(--ease-out);pointer-events:none;display:flex;align-items:flex-start;justify-content:center;padding:32px 20px;overflow-y:auto;}
.renwu-page-overlay.open{opacity:1;pointer-events:auto;}
.renwu-page-container{width:100%;max-width:1120px;background:linear-gradient(to bottom,#1a1612 0%,#15120e 100%);border:1px solid var(--gold-500);border-radius:8px;overflow:hidden;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.5em,rgba(184,154,83,0.012) 2.5em,rgba(184,154,83,0.012) calc(2.5em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.04) 0%,transparent 180px),linear-gradient(to bottom,#1a1612 0%,#15120e 100%);box-shadow:0 4px 28px rgba(0,0,0,0.6);position:relative;transform:scale(0.96) translateY(-8px);transition:transform var(--duration-modal) var(--ease-out);color:var(--ink-50);font-family:"Noto Serif SC","Source Han Serif","思源宋体","KaiTi","楷体",serif;}
.renwu-page-overlay.open .renwu-page-container{transform:scale(1) translateY(0);}
.renwu-page-container::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0%,var(--gold-500) 15%,var(--gold-400) 50%,var(--gold-500) 85%,transparent 100%);}

/* 顶部永固定区 */
.rwp-top{padding:20px 28px 14px;border-bottom:1px solid var(--bg-3, #2a2520);position:relative;}
.rwp-top::after{content:"";position:absolute;left:24px;right:24px;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent);}
.rwp-identity-row{display:flex;align-items:flex-start;gap:18px;margin-bottom:14px;}
.rwp-portrait{width:72px;height:72px;border:2px solid var(--gold-500);border-radius:50%;background:radial-gradient(circle,#2a2318 60%,#1a1612 100%);display:flex;align-items:center;justify-content:center;color:var(--gold-300);font-size:32px;font-weight:500;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.4),inset 0 1px 0 rgba(184,154,83,0.15);overflow:hidden;position:relative;font-family:"KaiTi","楷体",serif;}
.rwp-portrait.has-image{background:linear-gradient(145deg,#3a2a1a,#1a1612);}
.rwp-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.rwp-ident-body{flex:1;min-width:0;padding-top:4px;}
.rwp-name-row{display:flex;align-items:baseline;gap:12px;margin-bottom:4px;flex-wrap:wrap;}
.rwp-name{font-size:28px;color:var(--gold-300);letter-spacing:0.15em;font-weight:600;line-height:1.1;}
.rwp-courtesy{font-size:14px;color:var(--ink-300);letter-spacing:0.1em;font-style:italic;opacity:0.9;}
.rwp-courtesy::before{content:"字";display:inline-block;margin-right:5px;font-size:14px;color:var(--gold-500);letter-spacing:0.3em;vertical-align:2px;}
.rwp-gender{display:inline-flex;align-items:center;padding:2px 8px;font-size:15px;border:1px solid;border-radius:2px;letter-spacing:0.15em;margin-left:4px;}
.rwp-gender.male{color:var(--indigo-400);border-color:rgba(110,132,184,0.4);background:rgba(110,132,184,0.05);}
.rwp-gender.female{color:#e84393;border-color:rgba(232,67,147,0.4);background:rgba(232,67,147,0.05);}
.rwp-title{font-size:13px;color:var(--ink-300);letter-spacing:0.08em;margin-bottom:6px;}
.rwp-title b{color:var(--gold-400);letter-spacing:0.15em;}
.rwp-mini-tags{display:flex;gap:4px;flex-wrap:wrap;}
.rwp-mini-tag{font-size:14px;padding:1px 7px;border:1px solid rgba(184,154,83,0.3);border-radius:2px;color:var(--ink-200);background:rgba(184,154,83,0.05);letter-spacing:0.1em;}
.rwp-mini-tag.loc{color:var(--gold-300);border-color:rgba(184,154,83,0.5);background:rgba(184,154,83,0.08);}
.rwp-mini-tag.travel{color:var(--amber-400);border-color:rgba(230,126,34,0.4);}
.rwp-mini-tag.fac{color:var(--vermillion-300);border-color:rgba(212,112,106,0.3);background:rgba(192,64,48,0.05);}
.rwp-mini-tag.clan{color:var(--celadon-300);border-color:rgba(126,184,167,0.3);background:rgba(126,184,167,0.05);}
.rwp-mini-tag.origin{color:var(--indigo-400);border-color:rgba(110,132,184,0.3);background:rgba(110,132,184,0.05);}
.rwp-actions{display:flex;gap:6px;flex-shrink:0;}
.rwp-act-btn{padding:6px 14px;background:linear-gradient(to bottom,rgba(184,154,83,0.12),rgba(184,154,83,0.04));border:1px solid var(--gold-500);color:var(--gold-300);font-family:inherit;font-size:13px;letter-spacing:0.15em;cursor:pointer;border-radius:3px;transition:all 0.2s;}
.rwp-act-btn:hover{background:linear-gradient(to bottom,rgba(184,154,83,0.25),rgba(184,154,83,0.1));border-color:var(--gold-300);}
.rwp-act-btn.close{padding:6px 10px;font-size:16px;letter-spacing:0;color:#d4be7a;border-color:#d4c9b0;}
.rwp-act-btn.close:hover{color:var(--vermillion-400);border-color:var(--vermillion-400);}

/* 心性二维 */
.rwp-heart{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px;}
.rwp-heart-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(0,0,0,0.28);border:1px solid rgba(184,154,83,0.2);border-radius:5px;position:relative;overflow:hidden;}
.rwp-heart-item.loyalty{border-left:3px solid var(--celadon-500);}
.rwp-heart-item.ambition{border-left:3px solid var(--purple-400,#8e44ad);}
.rwp-heart-label{font-size:15px;color:var(--gold-400);letter-spacing:0.3em;width:36px;flex-shrink:0;}
.rwp-heart-bar{flex:1;height:8px;background:rgba(255,255,255,0.05);border-radius:4px;overflow:hidden;}
.rwp-heart-bar-fill{height:100%;border-radius:4px;}
.rwp-heart-bar-fill.loyalty-hi{background:linear-gradient(90deg,var(--celadon-500),var(--celadon-300));}
.rwp-heart-bar-fill.loyalty-lo{background:linear-gradient(90deg,var(--vermillion-500),var(--vermillion-400));}
.rwp-heart-bar-fill.ambition-mid{background:linear-gradient(90deg,var(--gold-500),var(--gold-400));}
.rwp-heart-bar-fill.ambition-hi{background:linear-gradient(90deg,var(--purple-400,#8e44ad),var(--vermillion-400));}
.rwp-heart-bar-fill.ambition-lo{background:linear-gradient(90deg,var(--ink-400),var(--ink-300));}
.rwp-heart-value{font-size:20px;color:var(--ink-50);font-variant-numeric:tabular-nums;font-weight:600;width:50px;text-align:right;flex-shrink:0;}
.rwp-heart-tag{font-size:14px;color:var(--ink-300);letter-spacing:0.15em;font-style:italic;margin-left:auto;padding-left:8px;border-left:1px solid rgba(184,154,83,0.15);white-space:nowrap;}
.rwp-verdict{margin-top:8px;padding:6px 14px;text-align:center;background:rgba(126,184,167,0.07);border:1px solid rgba(126,184,167,0.25);border-radius:3px;font-size:15px;color:var(--celadon-300);letter-spacing:0.15em;}
.rwp-verdict.warn{background:rgba(230,126,34,0.07);border-color:rgba(230,126,34,0.25);color:var(--amber-400);}
.rwp-verdict.danger{background:rgba(192,64,48,0.07);border-color:rgba(192,64,48,0.25);color:var(--vermillion-300);}

/* Tab 导航 */
.rwp-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--bg-3,#2a2520);gap:0;background:rgba(0,0,0,0.15);}
.rwp-tab{padding:12px 22px;font-size:13px;color:var(--ink-300);letter-spacing:0.25em;cursor:pointer;border-bottom:2px solid transparent;transition:all 0.2s;position:relative;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit;}
.rwp-tab:hover{color:var(--gold-300);background:rgba(184,154,83,0.04);}
.rwp-tab.active{color:var(--gold-400);border-bottom-color:var(--gold-400);background:linear-gradient(to bottom,rgba(184,154,83,0.08),transparent);}
.rwp-tab.active::before{content:"";position:absolute;top:6px;left:50%;width:5px;height:5px;background:var(--gold-400);border-radius:50%;transform:translateX(-50%);box-shadow:0 0 8px var(--gold-400);}
.rwp-tab-panels{padding:20px 28px 28px;min-height:400px;}
.rwp-tab-panel{display:none;animation:rwpFadeIn 0.25s ease-out;}
.rwp-tab-panel.active{display:block;}
@keyframes rwpFadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

.rwp-sec{margin-bottom:18px;}
.rwp-sec-title{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--gold-400);letter-spacing:0.3em;font-weight:600;margin-bottom:10px;padding-bottom:6px;border-bottom:1px dashed rgba(184,154,83,0.25);}
.rwp-sec-title::before{content:"";display:inline-block;width:3px;height:13px;background:var(--gold-400);}
.rwp-sec-title small{color:#d4be7a;letter-spacing:0.15em;font-size:14px;font-weight:400;margin-left:auto;}

.rwp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.rwp-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.rwp-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.rwp-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}

/* 资源模块 */
.rwp-res-block{padding:14px;background:rgba(0,0,0,0.3);border:1px solid rgba(184,154,83,0.15);border-radius:5px;}
.rwp-res-subgroup{margin-bottom:10px;}
.rwp-res-subgroup:last-child{margin-bottom:0;}
.rwp-res-sublabel{font-size:14px;color:var(--gold-400);letter-spacing:0.25em;margin-bottom:6px;text-align:center;padding-bottom:3px;border-bottom:1px dashed rgba(184,154,83,0.15);}
.rwp-res-items{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.rwp-res-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:rgba(0,0,0,0.25);border-radius:2px;}
.rwp-res-icon{width:14px;height:14px;color:var(--gold-400);opacity:0.85;flex-shrink:0;}
.rwp-res-val{font-size:12px;color:var(--ink-50);font-variant-numeric:tabular-nums;font-weight:600;}
.rwp-res-val.neg{color:var(--vermillion-300);}
.rwp-res-val.neg::before{content:"⚠";font-size:13px;margin-right:2px;opacity:0.7;}
.rwp-res-unit{font-size:13px;color:#d4be7a;margin-left:2px;}

/* 品行状态 */
.rwp-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:6px;}
.rwp-stat-card{padding:10px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.12);border-radius:3px;text-align:center;position:relative;}
.rwp-stat-card-icon{width:18px;height:18px;color:var(--gold-400);margin:0 auto 4px;display:block;opacity:0.85;}
.rwp-stat-card-label{font-size:14px;color:var(--ink-300);letter-spacing:0.2em;margin-bottom:4px;}
.rwp-stat-card-value{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-50);}
.rwp-stat-card-sub{font-size:14px;margin-top:2px;letter-spacing:0.15em;}

.rwp-fame-seal{display:inline-block;padding:4px 16px;border:2px solid;border-radius:2px;font-weight:600;background:rgba(0,0,0,0.2);letter-spacing:0.1em;font-size:12px;}
.rwp-fame-seal.radiant{border-color:var(--gold-300);color:var(--gold-300);box-shadow:0 0 8px rgba(212,190,122,0.3);}
.rwp-fame-seal.bright{border-color:var(--celadon-400);color:var(--celadon-300);}
.rwp-fame-seal.clear{border-color:var(--gold-400);color:var(--gold-400);}
.rwp-fame-seal.neutral{border-color:#d4be7a;color:var(--ink-200);}
.rwp-fame-seal.stain{border-color:var(--amber-400);color:var(--amber-400);}
.rwp-fame-seal.infamy{border-color:var(--vermillion-400);color:var(--vermillion-300);}

.rwp-xian-card .rwp-stat-card-value{color:var(--gold-300);}
.rwp-xian-tier{color:var(--gold-400);font-size:15px;letter-spacing:0.15em;margin-top:3px;}
.rwp-xian-prog{height:2px;background:rgba(255,255,255,0.05);border-radius:1px;overflow:hidden;margin-top:4px;}
.rwp-xian-prog-fill{height:100%;background:linear-gradient(90deg,var(--gold-500),var(--gold-300));}

.rwp-health-card .rwp-stat-card-value{color:var(--celadon-300);}
.rwp-health-card.warn .rwp-stat-card-value{color:var(--amber-400);}
.rwp-health-card.crit .rwp-stat-card-value{color:var(--vermillion-300);}
.rwp-health-bar{height:3px;background:rgba(255,255,255,0.05);border-radius:2px;margin-top:6px;overflow:hidden;}
.rwp-health-bar-fill{height:100%;border-radius:2px;}
.rwp-health-bar-fill.health{background:linear-gradient(90deg,var(--vermillion-400),var(--gold-400),var(--green-400));}
.rwp-health-bar-fill.stress-hi{background:var(--vermillion-400);}
.rwp-health-bar-fill.stress-mid{background:var(--gold-400);}
.rwp-health-bar-fill.stress-lo{background:var(--celadon-400);}

/* 能力八才 · 雷达 */
.rwp-abilities{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:center;padding:14px;background:rgba(0,0,0,0.2);border:1px solid rgba(184,154,83,0.15);border-radius:5px;}
.rwp-radar{position:relative;width:240px;height:240px;margin:0 auto;}
.rwp-ability-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.rwp-ability-cell{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:rgba(0,0,0,0.28);border:1px solid rgba(184,154,83,0.12);border-radius:3px;border-left:3px solid rgba(184,154,83,0.4);}
.rwp-ability-cell.excel{border-left-color:var(--celadon-400);background:rgba(126,184,167,0.05);}
.rwp-ability-cell.good{border-left-color:var(--gold-400);}
.rwp-ability-cell.poor{border-left-color:var(--vermillion-400);background:rgba(192,64,48,0.04);}
.rwp-ability-cell-name{font-size:13px;color:var(--ink-50);letter-spacing:0.1em;}
.rwp-ability-cell-right{display:flex;align-items:center;gap:8px;}
.rwp-ability-cell-value{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;min-width:30px;text-align:right;color:var(--ink-50);}
.rwp-ability-cell.excel .rwp-ability-cell-value{color:var(--celadon-300);}
.rwp-ability-cell.poor .rwp-ability-cell-value{color:var(--vermillion-300);}
.rwp-ability-cell-rank{font-size:14px;letter-spacing:0.15em;color:var(--ink-300);min-width:32px;text-align:right;}
.rwp-ability-cell.excel .rwp-ability-cell-rank{color:var(--celadon-400);}
.rwp-ability-cell.poor .rwp-ability-cell-rank{color:var(--vermillion-400);}
.rwp-ability-cell.good .rwp-ability-cell-rank{color:var(--gold-400);}

/* 五常 */
.rwp-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.rwp-stat-grid.five{grid-template-columns:repeat(5,1fr);}
.rwp-stat-grid.four{grid-template-columns:repeat(4,1fr);}
.rwp-stat{padding:8px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.1);border-radius:3px;text-align:center;}
.rwp-stat-label{font-size:13px;color:var(--ink-300);letter-spacing:0.15em;margin-bottom:3px;}
.rwp-stat-value{font-size:14px;color:var(--ink-50);font-weight:600;font-variant-numeric:tabular-nums;}

/* 特质 */
.rwp-trait-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 12px;border-radius:3px;border:1px solid;margin:0 4px 4px 0;background:rgba(0,0,0,0.15);letter-spacing:0.08em;}
.rwp-trait-tag.valor{border-color:var(--vermillion-400);color:var(--vermillion-300);}
.rwp-trait-tag.heart{border-color:var(--celadon-400);color:var(--celadon-300);}
.rwp-trait-tag.mind{border-color:var(--indigo-400);color:var(--indigo-400);}
.rwp-trait-tag.gold{border-color:var(--gold-400);color:var(--gold-300);}

/* 散文 */
.rwp-prose{font-size:13px;color:var(--ink-200);line-height:1.8;padding:10px 14px;background:rgba(0,0,0,0.15);border-left:2px solid var(--gold-500);border-radius:0 3px 3px 0;text-indent:2em;}
.rwp-prose.italic{font-style:italic;}

/* 身份档案 */
.rwp-identity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.rwp-id-cell{padding:8px 10px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.1);border-radius:3px;}
.rwp-id-label{font-size:13px;color:var(--ink-300);letter-spacing:0.2em;margin-bottom:3px;}
.rwp-id-value{font-size:13px;color:var(--ink-50);font-weight:500;}
.rwp-id-value.hi{color:var(--celadon-300);}
.rwp-id-value.warn{color:var(--amber-400);}

/* 公私身份 */
.rwp-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.rwp-duo-col{padding:12px 14px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.15);border-radius:5px;}
.rwp-duo-col.public{border-left:3px solid var(--gold-500);}
.rwp-duo-col.private{border-left:3px solid var(--celadon-500);}
.rwp-duo-header{display:flex;align-items:center;gap:6px;font-size:15px;letter-spacing:0.25em;margin-bottom:8px;padding-bottom:4px;border-bottom:1px dashed rgba(184,154,83,0.2);}
.rwp-duo-col.public .rwp-duo-header{color:var(--gold-400);}
.rwp-duo-col.private .rwp-duo-header{color:var(--celadon-400);}
.rwp-duo-row{display:flex;justify-content:space-between;padding:3px 0;font-size:12px;}
.rwp-duo-row .label{color:var(--ink-300);}
.rwp-duo-row .val{color:var(--ink-50);}

/* 家谱 */
.rwp-ft-svg-wrap{padding:12px;background:linear-gradient(to bottom,rgba(0,0,0,0.3),rgba(0,0,0,0.2));border:1px solid rgba(184,154,83,0.15);border-radius:5px;overflow-x:auto;}
.rwp-ft-svg{width:100%;min-width:700px;height:auto;display:block;}
.rwp-ft-svg .ft-node{cursor:pointer;transition:transform 0.2s;}
.rwp-ft-svg .ft-node:hover{transform:translateY(-2px);}
.rwp-ft-svg .ft-node:hover rect{filter:drop-shadow(0 2px 6px rgba(184,154,83,0.4));}
.rwp-ft-svg .ft-node.self rect{animation:selfGlow 2s ease-in-out infinite;}
@keyframes selfGlow{0%,100%{filter:drop-shadow(0 0 8px rgba(184,154,83,0.3));}50%{filter:drop-shadow(0 0 14px rgba(184,154,83,0.6));}}
.rwp-ft-legend{display:flex;justify-content:center;gap:18px;padding:10px;margin-top:10px;font-size:15px;color:var(--ink-300);flex-wrap:wrap;background:rgba(0,0,0,0.2);border:1px solid rgba(184,154,83,0.1);border-radius:3px;}
.rwp-ft-lg{display:inline-flex;align-items:center;gap:5px;letter-spacing:0.1em;}
.rwp-ft-lg-mark{display:inline-block;width:16px;height:10px;border-radius:2px;}
.rwp-ft-lg-mark.self{background:rgba(184,154,83,0.15);border:2px solid var(--gold-300);}
.rwp-ft-lg-mark.blood{background:rgba(0,0,0,0.3);border:1px solid var(--gold-400);}
.rwp-ft-lg-mark.inlaw{background:rgba(126,184,167,0.05);border:1px dashed var(--celadon-400);}
.rwp-ft-lg-mark.dead{background:rgba(0,0,0,0.4);border:1px solid var(--gold-500);opacity:0.5;}

.rwp-ft-clan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.rwp-ft-clan-item{padding:10px 12px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.15);border-radius:3px;text-align:center;}
.rwp-ft-clan-lb{color:var(--gold-400);letter-spacing:0.2em;font-size:14px;margin-bottom:2px;}
.rwp-ft-clan-v-big{font-size:20px;color:var(--gold-300);font-weight:600;margin:3px 0;font-variant-numeric:tabular-nums;}
.rwp-ft-clan-sub{font-size:14px;color:#d4be7a;letter-spacing:0.1em;}
.rwp-ft-clan-bar{height:4px;background:rgba(255,255,255,0.06);border-radius:2px;overflow:hidden;margin-top:6px;}
.rwp-ft-clan-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--gold-500),var(--gold-300));}

/* Timeline */
.rwp-timeline{padding:4px 0 4px 20px;position:relative;}
.rwp-timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--gold-500),var(--gold-500) 80%,transparent);}
.rwp-timeline-item{position:relative;padding:6px 0 6px 20px;margin-bottom:8px;}
.rwp-timeline-item::before{content:"";position:absolute;left:-18px;top:11px;width:7px;height:7px;border:1.5px solid var(--gold-400);border-radius:50%;background:var(--bg-1,#12100e);}
.rwp-timeline-item.milestone::before{background:var(--gold-400);box-shadow:0 0 6px var(--gold-400);}
.rwp-timeline-date{font-size:14px;color:var(--gold-400);letter-spacing:0.1em;margin-bottom:2px;}
.rwp-timeline-title{font-size:13px;color:var(--ink-50);margin-bottom:2px;}
.rwp-timeline-desc{font-size:15px;color:var(--ink-300);line-height:1.6;}

/* 关系 */
.rwp-aff-list{display:flex;flex-direction:column;gap:4px;}
.rwp-aff-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:rgba(0,0,0,0.2);border-radius:3px;border-left:3px solid;cursor:pointer;transition:background 0.15s;}
.rwp-aff-item:hover{background:rgba(184,154,83,0.08);}
.rwp-aff-item.pos{border-left-color:var(--celadon-400);}
.rwp-aff-item.neu{border-left-color:#d4be7a;}
.rwp-aff-item.neg{border-left-color:var(--vermillion-400);}
.rwp-aff-name{font-size:12px;color:var(--ink-50);font-weight:500;min-width:68px;}
.rwp-aff-rel{font-size:14px;color:var(--ink-300);letter-spacing:0.1em;flex:1;}
.rwp-aff-value{font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;font-family:monospace;}
.rwp-aff-item.pos .rwp-aff-value{color:var(--celadon-300);}
.rwp-aff-item.neg .rwp-aff-value{color:var(--vermillion-300);}

/* 心绪 */
.rwp-mood-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border:2px solid;border-radius:16px;font-size:13px;letter-spacing:0.2em;}
.rwp-mood-chip.happy{border-color:var(--celadon-400);color:var(--celadon-300);background:rgba(126,184,167,0.08);}
.rwp-mood-chip.angry{border-color:var(--vermillion-400);color:var(--vermillion-300);background:rgba(192,64,48,0.08);}
.rwp-mood-chip.worry{border-color:var(--gold-400);color:var(--gold-300);background:rgba(184,154,83,0.08);}
.rwp-mood-chip.fear{border-color:var(--indigo-400);color:var(--indigo-400);background:rgba(110,132,184,0.08);}
.rwp-mood-chip.peace{border-color:#d4be7a;color:var(--ink-200);background:rgba(0,0,0,0.15);}

.rwp-mem{padding:6px 0 6px 14px;border-left:2px solid;margin-bottom:4px;font-size:12px;color:var(--ink-200);line-height:1.5;}
.rwp-mem.happy{border-color:var(--celadon-400);}.rwp-mem.angry{border-color:var(--vermillion-400);}.rwp-mem.worry{border-color:var(--gold-400);}.rwp-mem.fear{border-color:var(--indigo-400);}.rwp-mem.hate{border-color:var(--vermillion-500);}.rwp-mem.respect{border-color:var(--celadon-300);}.rwp-mem.peace{border-color:#d4be7a;}
.rwp-mem-mood{font-size:14px;margin-right:4px;}
.rwp-mem-mood.happy{color:var(--celadon-400);}.rwp-mem-mood.angry{color:var(--vermillion-400);}.rwp-mem-mood.worry{color:var(--gold-400);}.rwp-mem-mood.fear{color:var(--indigo-400);}.rwp-mem-mood.hate{color:var(--vermillion-500);}.rwp-mem-mood.respect{color:var(--celadon-300);}
.rwp-mem-who{color:#d4be7a;font-size:14px;margin-left:6px;}
.rwp-scar-box{padding:10px 14px;background:rgba(192,64,48,0.06);border:1px solid rgba(192,64,48,0.25);border-radius:5px;}
.rwp-scar-label{color:var(--vermillion-400);font-size:15px;letter-spacing:0.25em;margin-bottom:8px;font-weight:600;}
.rwp-impressions{padding:10px 14px;background:rgba(0,0,0,0.2);border-radius:3px;font-size:15px;color:var(--ink-200);line-height:1.9;}
.rwp-impressions b{color:var(--gold-400);margin-right:6px;letter-spacing:0.1em;}

/* 颜面 */
.rwp-face-card{padding:14px 18px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.15);border-radius:5px;display:flex;align-items:center;gap:14px;}
.rwp-face-value{font-size:28px;color:var(--gold-300);font-variant-numeric:tabular-nums;font-weight:600;}
.rwp-face-label{font-size:12px;color:var(--ink-50);}
.rwp-face-desc{font-size:15px;color:var(--ink-300);font-style:italic;}

/* 志向 */
.rwp-goal-card{padding:14px;background:rgba(0,0,0,0.25);border-left:3px solid var(--gold-500);border-radius:0 5px 5px 0;}
.rwp-goal-text{font-size:13px;color:var(--ink-50);line-height:1.7;margin-bottom:10px;}
.rwp-goal-progress{display:flex;align-items:center;gap:10px;}
.rwp-goal-label{font-size:15px;color:var(--ink-300);letter-spacing:0.15em;}
.rwp-goal-bar{flex:1;height:6px;background:rgba(255,255,255,0.05);border-radius:3px;overflow:hidden;}
.rwp-goal-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold-500),var(--celadon-400));border-radius:3px;}
.rwp-goal-pct{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;}
.rwp-goal-pct.hi{color:var(--celadon-300);}.rwp-goal-pct.mid{color:var(--gold-300);}.rwp-goal-pct.lo{color:var(--vermillion-300);}
.rwp-goal-note{margin-top:6px;font-size:14px;color:#d4be7a;letter-spacing:0.1em;}

/* 内心 */
.rwp-inner-thought{padding:12px 16px;background:rgba(110,132,184,0.06);border:1px solid rgba(110,132,184,0.2);border-radius:5px;font-size:12px;color:var(--ink-200);line-height:1.8;font-style:italic;}
.rwp-inner-thought::before{content:"「";color:var(--indigo-400);font-size:20px;vertical-align:-4px;margin-right:2px;}
.rwp-inner-thought::after{content:"」";color:var(--indigo-400);font-size:20px;vertical-align:-4px;margin-left:2px;}

.rwp-opinion-breakdown{padding:12px 14px;background:rgba(0,0,0,0.25);border:1px solid rgba(184,154,83,0.15);border-radius:5px;}
.rwp-opinion-total{display:flex;justify-content:space-between;margin-bottom:10px;align-items:baseline;}
.rwp-opinion-total-lb{color:var(--ink-300);font-size:12px;letter-spacing:0.15em;}
.rwp-opinion-total-v{color:var(--celadon-300);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;}
.rwp-opinion-total-v.neg{color:var(--vermillion-300);}
.rwp-opinion-bar{height:5px;background:rgba(255,255,255,0.05);border-radius:2.5px;overflow:hidden;position:relative;margin-bottom:10px;}
.rwp-opinion-bar::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,0.3);}
.rwp-opinion-fill{height:100%;border-radius:2.5px;}
.rwp-opinion-fill.pos{background:var(--celadon-400);margin-left:50%;}
.rwp-opinion-fill.neg{background:var(--vermillion-400);margin-right:50%;margin-left:auto;}
/* ═══ new-game-ui 组件类 ═══ */
.ngui-topbar{height:60px;background:linear-gradient(180deg,var(--color-elevated) 0%,var(--color-background) 100%);border-bottom:2px solid var(--color-border-emphasis);display:flex;align-items:center;padding:0 20px;gap:8px;position:relative;z-index:100;}
.ngui-var-btn{padding:8px 16px;background:rgba(139,115,85,0.3);border:1px solid var(--color-border-emphasis);color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:18px;}
.ngui-time{padding:8px 16px;background:rgba(139,115,85,0.3);border:1px solid var(--color-border-emphasis);border-radius:var(--radius-sm);color:var(--color-primary);font-size:14px;min-width:200px;text-align:center;cursor:help;}
.ngui-time-sub{font-size:15px;color:var(--color-foreground-muted);}
.ngui-body{display:flex;height:calc(100vh - 60px);}
.ngui-left{width:350px;background:rgba(26,21,16,0.95);border-right:2px solid var(--color-border-emphasis);overflow-y:auto;display:flex;flex-direction:column;}
.ngui-left-tabs{display:flex;background:var(--color-elevated);border-bottom:1px solid var(--color-border-emphasis);}
.ngui-left-tab{flex:1;padding:12px;background:transparent;border:none;color:var(--color-foreground-muted);cursor:pointer;border-bottom:2px solid transparent;font-family:inherit;font-size:var(--text-sm);}
.ngui-left-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);}
.ngui-left-content{flex:1;padding:16px;overflow-y:auto;}
.ngui-center{flex:1;background:#0a0a0a;position:relative;overflow:hidden;}
.ngui-right{width:280px;background:rgba(26,21,16,0.95);border-left:2px solid var(--color-border-emphasis);display:flex;flex-direction:column;}
.ngui-actions{display:flex;flex-direction:column;gap:2px;padding:8px;flex:1;overflow-y:auto;}
.ngui-group{padding:8px 12px;color:var(--color-border-emphasis);font-size:15px;font-weight:bold;letter-spacing:2px;margin-top:8px;}
.ngui-group:first-child{margin-top:0;}
.ngui-action{padding:10px 12px;background:linear-gradient(135deg,var(--color-elevated) 0%,var(--color-surface) 100%);border:1px solid var(--color-border-emphasis);color:var(--color-primary);cursor:pointer;text-align:left;font-size:13px;border-radius:var(--radius-sm);font-family:inherit;transition:border-color 0.2s,box-shadow 0.2s;}
.ngui-action:hover{border-color:var(--gold-500);box-shadow:var(--shadow-sm);}
.ngui-action-title{font-weight:bold;display:flex;align-items:center;gap:4px;}
.ngui-action-sub{font-size:14px;color:var(--color-foreground-muted);}
.ngui-more{padding:10px 12px;background:rgba(139,115,85,0.2);border:1px solid var(--color-border-emphasis);color:var(--color-border-emphasis);cursor:pointer;text-align:center;font-size:16px;border-radius:var(--radius-sm);margin-top:8px;font-family:inherit;}
.ngui-endturn-wrap{padding:16px;border-top:2px solid var(--color-border-emphasis);}
.ngui-endturn{width:100%;padding:16px;background:linear-gradient(135deg,var(--gold-400) 0%,var(--gold-600) 100%);border:2px solid var(--color-border-emphasis);color:var(--color-background);font-size:16px;font-weight:bold;cursor:pointer;border-radius:6px;box-shadow:0 4px 8px rgba(0,0,0,0.3);font-family:inherit;transition:filter 0.2s;letter-spacing:0.3em;}
.ngui-endturn:hover{filter:brightness(1.1);}

.slider-group{display:flex;align-items:center;gap:8px;margin:6px 0;}
.slider-group label{width:50px;font-size:0.82rem;color:var(--txt-d);text-align:right;flex-shrink:0;}
.slider-group input[type=range]{flex:1;accent-color:var(--gold);}
.slider-val{width:35px;text-align:center;font-size:0.85rem;color:var(--gold-l);}

/* === 官制树 === */
.ote-tree{padding-left:0;}
.ote-node{margin-bottom:var(--space-1);}
.ote-node-head{display:flex;align-items:center;gap:0.4rem;padding:0.4rem 0.6rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);}
.ote-node-head:hover{border-color:var(--gold-500);box-shadow:var(--shadow-xs);}
.ote-toggle{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:0.7rem;color:var(--color-foreground-muted);flex-shrink:0;transition:transform 0.2s var(--ease-out);}
.ote-toggle.open{transform:rotate(90deg);}
.ote-name{font-weight:var(--weight-bold);color:var(--gold-400);font-size:var(--text-sm);flex:1;letter-spacing:0.04em;}
.ote-rank{font-size:var(--text-xs);color:var(--color-foreground-muted);padding:0.1rem 0.45rem;background:var(--color-sunken);border-radius:10px;border:1px solid var(--color-border-subtle);}
/* 品级颜色 */
.ote-rank-1,.ote-rank-2{color:var(--vermillion-400);border-color:rgba(192,64,48,0.2);background:rgba(192,64,48,0.08);}
.ote-rank-3,.ote-rank-4{color:var(--gold-400);border-color:rgba(184,154,83,0.2);background:rgba(184,154,83,0.08);}
.ote-rank-5,.ote-rank-6{color:var(--celadon-400);border-color:rgba(120,160,131,0.2);background:rgba(120,160,131,0.08);}
.ote-rank-7,.ote-rank-8,.ote-rank-9{color:var(--color-foreground-muted);}
.ote-actions{display:flex;gap:0.2rem;}
.ote-actions button{font-size:0.7rem;padding:0.15rem 0.35rem;}
.ote-children{margin-left:1.2rem;border-left:2px solid var(--color-border-subtle);padding-left:0.6rem;margin-top:0.2rem;transition:border-color var(--duration-normal);}
.ote-children:hover{border-left-color:var(--gold-400);}
.ote-positions{margin-left:1.2rem;margin-top:0.2rem;}
.ote-pos{display:flex;align-items:center;gap:0.4rem;padding:0.25rem 0.5rem;font-size:var(--text-sm);color:var(--color-foreground-secondary);border-bottom:1px dotted var(--color-border-subtle);transition:background var(--duration-fast);}
.ote-pos:hover{background:rgba(184,154,83,0.04);}
.ote-pos-name{font-weight:var(--weight-bold);color:var(--color-foreground);min-width:60px;letter-spacing:0.04em;}
.ote-pos-holder{color:var(--indigo-400);font-size:var(--text-xs);}
.ote-pos-holder.vacant{color:var(--color-foreground-muted);font-style:italic;}
.ote-pos-rank{font-size:var(--text-xs);color:var(--color-foreground-muted);}

/* === 新增: 润色按钮 === */
.polish-btn{display:inline-flex;align-items:center;gap:0.2rem;font-size:0.7rem;padding:0.15rem 0.4rem;border:1px solid var(--bdr);background:var(--bg-3);color:var(--purple);border-radius:10px;cursor:pointer;margin-left:0.3rem;transition:0.2s;}
.polish-btn:hover{border-color:var(--purple);background:rgba(142,68,173,0.1);}

/* === 新增: 参考文件管理 === */
.ref-file-list{margin-top:0.5rem;}
.ref-file-item{display:flex;align-items:center;gap:0.5rem;padding:0.3rem 0.5rem;background:var(--bg-3);border-radius:4px;margin-bottom:0.2rem;font-size:0.8rem;}
.ref-file-item .rf-name{flex:1;color:var(--txt);font-weight:600;}
.ref-file-item .rf-type{font-size:0.7rem;color:var(--txt-d);padding:0.1rem 0.3rem;background:var(--bg-2);border-radius:8px;}

.sl-g{display:flex;align-items:center;gap:8px;margin:4px 0;}
.sl-g label{min-width:44px;font-size:12px;color:var(--txt-d);}
.sl-v{width:32px;text-align:center;font-size:12px;color:var(--txt-d);}

/* === 存档管理器美化 === */
.save-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0.8rem;padding:0.5rem 0;}
.save-slot{background:linear-gradient(160deg,var(--bg-2),var(--bg-1));border:1px solid var(--bdr);border-radius:12px;padding:1rem;transition:all 0.25s var(--ease);position:relative;overflow:hidden;}
.save-slot:hover{border-color:rgba(201,168,76,0.3);box-shadow:var(--shadow-md),var(--shadow-gold);}
.save-slot::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-d),var(--gold),var(--gold-d));opacity:0;transition:opacity 0.3s;}
.save-slot:hover::before{opacity:1;}
.save-slot-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.6rem;}
.save-slot-icon{font-size:1.5rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border-radius:8px;}
.save-slot-name{font-weight:700;color:var(--gold-l);font-size:0.95rem;flex:1;margin-left:0.6rem;}
.save-slot-badge{font-size:0.7rem;padding:0.15rem 0.45rem;border-radius:10px;background:rgba(201,168,76,0.12);color:var(--gold);border:1px solid rgba(201,168,76,0.2);}
.save-slot-meta{font-size:0.78rem;color:var(--txt-d);line-height:1.6;margin-bottom:0.7rem;}
.save-slot-meta span{color:var(--txt-s);}
.save-slot-time{font-size:0.72rem;color:var(--txt-d);margin-bottom:0.8rem;display:flex;align-items:center;gap:0.3rem;}
.save-slot-actions{display:flex;gap:0.4rem;flex-wrap:wrap;}
.save-slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;color:var(--txt-d);font-size:0.88rem;}
.save-slot-empty-icon{font-size:2rem;margin-bottom:0.5rem;opacity:0.4;}
.save-import{margin-top:1rem;padding:1rem;background:var(--bg-2);border:1px dashed var(--bdr);border-radius:10px;text-align:center;transition:border-color 0.2s;}
.save-import:hover{border-color:var(--gold-d);}
.save-import-label{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:var(--bg-3);border:1px solid var(--bdr);border-radius:8px;cursor:pointer;color:var(--txt-s);font-size:0.85rem;transition:all 0.2s;}
.save-import-label:hover{border-color:var(--gold-d);color:var(--gold);}
.save-import input[type=file]{display:none;}

/* === 资源条美化 === */
.rb{height:5px;background:var(--color-sunken);border-radius:3px;overflow:hidden;position:relative;}
.rb::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,0.04) 50%,transparent 75%);pointer-events:none;}
.rf{height:100%;border-radius:3px;transition:width 0.6s var(--ease-out);position:relative;}
.rf::after{content:"";position:absolute;right:0;top:0;bottom:0;width:6px;background:rgba(255,255,255,0.15);border-radius:0 3px 3px 0;filter:blur(2px);}
@keyframes pulse-critical{0%,100%{opacity:1;}50%{opacity:0.6;}}
.rf.critical{animation:pulse-critical 1.5s ease-in-out infinite;}
.res-label{display:flex;justify-content:space-between;font-size:0.78rem;align-items:center;margin-bottom:2px;}
.res-name{display:flex;align-items:center;gap:4px;color:var(--color-foreground-secondary);}
.res-value{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;}

/* === 编年/起居注美化 === */
.qiju-record{position:relative;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:0.75rem 0.85rem 0.75rem 1rem;margin-bottom:var(--space-2);border-left:3px solid var(--gold-400);transition:all var(--duration-normal) var(--ease-out);background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.015) 3em,rgba(107,93,79,0.015) calc(3em + 1px));}
.qiju-record:hover{border-color:var(--gold-500);box-shadow:var(--shadow-sm);transform:translateX(2px);}
.qiju-record::after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:1px;background:linear-gradient(90deg,var(--gold-400),transparent);opacity:0;transition:opacity var(--duration-normal);}
.qiju-record:hover::after{opacity:0.3;}
.qiju-turn{font-size:var(--text-xs);color:var(--gold-400);margin-bottom:var(--space-1);letter-spacing:0.08em;font-weight:var(--weight-bold);}
.qiju-text{font-size:var(--text-sm);color:var(--color-foreground-secondary);line-height:var(--leading-normal);}
.qiju-search{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);align-items:center;}
.qiju-search input{flex:1;}

/* === 聊天气泡美化（NPC=奏疏，玩家=朱批）=== */
.wendui-npc{display:flex;gap:0.5rem;margin-bottom:var(--space-2);animation:msg-in 0.3s var(--ease-out);}
.wendui-player{display:flex;justify-content:flex-end;margin-bottom:var(--space-2);animation:msg-in 0.3s var(--ease-out);}
@keyframes msg-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.wendui-npc-name{font-size:var(--text-xs);color:var(--gold-400);margin-bottom:2px;letter-spacing:0.06em;font-weight:var(--weight-bold);}
.wendui-npc-bubble{position:relative;background:var(--color-elevated);border-left:3px solid var(--gold-500);border-radius:2px var(--radius-md) var(--radius-md) 2px;padding:0.6rem 0.9rem;max-width:85%;font-size:var(--text-sm);line-height:var(--leading-relaxed);box-shadow:var(--shadow-xs);background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.015) 3em,rgba(107,93,79,0.015) calc(3em + 1px));}
.wendui-player-bubble{position:relative;background:var(--color-accent-subtle);border-right:3px solid var(--vermillion-400);border-radius:var(--radius-md) 2px 2px var(--radius-md);padding:0.6rem 0.9rem;max-width:85%;font-size:var(--text-sm);color:var(--vermillion-300);font-style:italic;box-shadow:var(--shadow-xs);line-height:var(--leading-relaxed);}
.wendui-chat-area{flex:1;overflow-y:auto;min-height:200px;background:var(--color-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);scroll-behavior:smooth;}
.wendui-mode-btn{position:relative;}.wendui-mode-btn.active{color:var(--color-primary);border-color:var(--gold-400);}
.wendui-mode-btn.active::after{content:"";position:absolute;bottom:-2px;left:25%;right:25%;height:2px;background:var(--gold-400);border-radius:1px;}
.wendui-char-btn.wd-has-history{border-color:var(--gold-400);position:relative;}
.wendui-char-btn.wd-has-history::after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:var(--gold-400);}

/* === 问对弹窗 === */
.wd-modal-inner{background:var(--color-surface);border:1px solid var(--gold-500);border-radius:var(--radius-lg);width:95%;max-width:800px;height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);contain:layout style;}
.wd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-subtle);min-height:48px;}
.wd-modal-header-left{flex-shrink:0;}
.wd-modal-header-center{flex:1;text-align:center;}
.wd-modal-char-name{font-size:var(--text-lg);font-weight:var(--weight-black);color:var(--color-foreground);letter-spacing:0.1em;}
.wd-modal-char-sub{font-size:var(--text-xs);color:var(--color-foreground-muted);margin-top:2px;}
.wd-modal-close{font-size:var(--text-md);padding:var(--space-1) var(--space-2);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;}
.wd-modal-hint{text-align:right;padding:var(--space-1) var(--space-4);font-size:var(--text-xs);color:var(--color-foreground-muted);border-bottom:1px solid var(--color-border-subtle);letter-spacing:0.06em;}
.wd-modal-chat{flex:1;overflow-y:auto;padding:var(--space-4);scroll-behavior:smooth;background:var(--color-sunken);
  background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.012) 3em,rgba(107,93,79,0.012) calc(3em + 1px));
  /* 2026-06-11·性能:把聊天列的样式/布局/重绘 scope 在自身·流式刷新与打字重绘不波及背后沉重(且 APK 上被 transform:scale)的全局 DOM */
  contain:layout style paint;}
.wd-modal-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);background:var(--color-surface);}
.wd-modal-textarea{flex:1;resize:none;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:inherit;background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-foreground);line-height:var(--leading-relaxed);min-height:60px;}
.wd-modal-textarea:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(138,109,27,0.12);}
/* 问对·立绘舞台（2026-06 landing slice1·左立绘 + 右原内容两栏·保留全部 id/hook） */
#wendui-modal .wd-modal-inner{max-width:1180px;}
.wd-modal-body{flex:1;display:flex;min-height:0;}
.wd-actor{flex:0 0 34%;position:relative;display:flex;flex-direction:column;border-right:1px solid var(--color-border-subtle);background:radial-gradient(70% 50% at 50% 28%,rgba(180,120,60,0.12),transparent 62%),linear-gradient(180deg,#16100a,#0e0a06);}
.wd-actor-stage{flex:1;position:relative;overflow:hidden;display:grid;place-items:center;}
.wd-actor-img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;-webkit-mask:linear-gradient(180deg,#000 0,#000 60%,rgba(0,0,0,0.4) 86%,transparent 100%);mask:linear-gradient(180deg,#000 0,#000 60%,rgba(0,0,0,0.4) 86%,transparent 100%);}
.wd-actor-ph{font-family:"STKaiti","KaiTi","楷体",serif;font-size:110px;color:rgba(240,213,151,0.28);}
.wd-actor-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 22%,transparent 52%,rgba(10,8,5,0.5) 100%);}
.wd-actor-plate{padding:10px 14px;border-top:1px solid var(--color-border-subtle);background:linear-gradient(180deg,rgba(0,0,0,0.32),rgba(0,0,0,0.5));}
.wd-actor-nm{font-size:var(--text-lg);font-weight:var(--weight-black);color:#eccf87;letter-spacing:0.08em;}
.wd-actor-rl{font-size:var(--text-xs);color:var(--color-foreground-muted);margin-top:3px;}
.wd-main{flex:1;display:flex;flex-direction:column;min-width:0;}
/* 问对 slice2·气泡鎏金化（scoped·压在最后·不动渲染逻辑） */
#wendui-modal .wendui-npc-bubble{background:linear-gradient(180deg,#221a10,#1a130b);border:1px solid rgba(207,173,101,0.22);border-left:2px solid var(--gold-500);border-radius:3px 12px 12px 12px;color:#d8cdba;box-shadow:inset 0 1px 0 rgba(240,213,151,0.08),0 3px 10px rgba(0,0,0,0.32);}
#wendui-modal .wendui-npc-name{color:#cdab63;letter-spacing:0.08em;}
#wendui-modal .wendui-player-bubble{position:relative;background:linear-gradient(178deg,#3a2114,#2a1109);border:1px solid rgba(240,213,151,0.4);border-right:none;border-radius:12px 3px 12px 12px;color:#fdf1da;font-style:normal;box-shadow:inset 0 1px 0 rgba(255,212,160,0.16),0 3px 12px rgba(110,28,20,0.28);}
#wendui-modal .wendui-player-bubble:after{content:"\8C15";position:absolute;right:-7px;top:-7px;width:20px;height:20px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fdf3da;background:linear-gradient(180deg,#a8312a,#76190f);border:1px solid #f0d597;transform:rotate(5deg);}
#wendui-modal #wd-send-btn{background:linear-gradient(178deg,#9a2a22,#5e140e);border:1px solid rgba(240,213,151,0.5);color:#fdebcf;}
#wendui-modal #wd-send-btn:hover{border-color:#f0d597;}
/* 问对 召见模式选择 + 求见队列·立绘矩形化对齐 preview（scoped·压在46条wdp后·源序胜·展工笔半身不裁圆头） */
#wd-pick-modal .wdp-pick-portrait{width:104px;height:138px;border-radius:3px;background:#100b06;border:1px solid var(--gold-400);box-shadow:0 8px 22px rgba(0,0,0,0.5);overflow:hidden;}
#wd-pick-modal .wdp-pick-portrait img{border-radius:2px;object-fit:cover;object-position:50% 11%;}
#wd-pick-modal .wdp-pick-name{background:linear-gradient(120deg,#fbf2d4,#e9cd84 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.wdp-req-portrait{width:42px;height:52px;border-radius:2px;}
.wdp-req-portrait img{border-radius:1px;object-position:50% 11%;}
/* 问对 faithful landing·顶栏(印+朝堂问对+情绪条) + 动作钮入立绘名牌(对齐预览) */
#wendui-modal .wd-modal-header{display:flex;align-items:center;gap:12px;padding:10px 16px;}
#wendui-modal .wd-modal-header-left{display:none;}
#wendui-modal .wd-modal-header-center{flex:0 1 auto;text-align:left;}
.wd-modal-seal{width:40px;height:40px;flex:none;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:22px;font-family:"STKaiti","KaiTi","楷体",serif;color:#fdf3da;border:1.4px solid #f0d597;background:radial-gradient(125% 125% at 30% 22%,#c14034,#a8312a 46%,#76190f);box-shadow:inset 0 0 0 1px rgba(247,228,180,0.3),inset 0 -3px 6px rgba(60,10,8,0.5);}
.wd-modal-title{font-family:"STKaiti","KaiTi","楷体",serif;font-size:21px;letter-spacing:0.12em;color:#eccf87;}
.wd-modal-emo{margin-left:auto !important;font-size:0.72rem;color:var(--color-foreground-muted);white-space:nowrap;}
#wendui-modal .wd-actor-plate{padding:11px 14px 13px;}
.wd-actor-acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
.wd-actor-acts .bt{font-size:0.5729rem;padding:4px 9px;letter-spacing:0.02em;}
/* 问对·朝议在列检列条（立绘底·在朝可召之臣·当前高亮·点击换召） */
.wd-court{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--color-border-subtle);background:rgba(0,0,0,0.3);}
.wd-court-lab{flex:none;font-family:"STKaiti","KaiTi","楷体",serif;font-size:12px;color:#a98f55;writing-mode:vertical-rl;letter-spacing:0.1em;}
.wd-court-list{display:flex;gap:6px;overflow-x:auto;flex:1;}
.wd-court-fig{flex:none;width:34px;height:42px;border-radius:2px;overflow:hidden;border:1px solid #564a2e;background:#100b06;display:flex;align-items:center;justify-content:center;font-family:"STKaiti","KaiTi",serif;font-size:15px;color:#a98f55;cursor:pointer;transition:all 0.15s;}
.wd-court-fig img{width:100%;height:100%;object-fit:cover;object-position:50% 10%;}
.wd-court-fig:hover{border-color:#cdab63;transform:translateY(-2px);}
.wd-court-fig.on{border-color:#f0d597;box-shadow:0 0 0 1px #f0d597,0 0 9px rgba(207,173,101,0.4);cursor:default;}
.wd-court-fig.on:hover{transform:none;}
/* ══ 问对 faithful v2·全面对齐预览(本地书法字 TM-MaShanZheng楷 / TM-ZCOOL-XiaoWei仿宋 + bespoke鎏金·压最后必胜) ══ */
#wendui-modal .wd-modal-inner{background:linear-gradient(178deg,#1d160e,#140e08 60%,#0b0805);}
#wendui-modal .wd-modal-header{background:linear-gradient(180deg,rgba(207,173,101,0.07),transparent);}
#wendui-modal .wd-modal-seal{font-family:"TM-MaShanZheng","STKaiti","KaiTi",serif;}
#wendui-modal .wd-modal-title{font-family:"TM-MaShanZheng","STKaiti","KaiTi",serif;background:linear-gradient(120deg,#fbf2d4,#e9cd84 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#wendui-modal .wd-modal-emo{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#wendui-modal .wd-actor{background:linear-gradient(180deg,#16100a,#0e0a06);}
#wendui-modal .wd-actor-stage{position:relative;}
#wendui-modal .wd-actor-stage::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(120% 80% at 50% 22%,transparent 52%,rgba(11,8,5,0.5) 100%),linear-gradient(180deg,rgba(20,14,8,0.34),transparent 26%);}
#wendui-modal .wd-actor-stage::after{content:"";position:absolute;left:9px;right:9px;top:9px;bottom:9px;pointer-events:none;z-index:3;border:1px solid rgba(207,173,101,0.26);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.4),inset 0 0 40px rgba(0,0,0,0.35);}
#wendui-modal .wd-actor-nm{font-family:"TM-MaShanZheng","STKaiti","KaiTi",serif;background:linear-gradient(120deg,#fbf2d4,#e9cd84 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#wendui-modal .wd-actor-rl{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#wendui-modal .wd-actor-acts .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;background:linear-gradient(180deg,#241c11,#130d07);border:1px solid #564a2e;color:#a98f55;}
#wendui-modal .wd-actor-acts .bt:hover{border-color:#cdab63;color:#f0d597;}
#wendui-modal .wd-court-lab{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#wendui-modal .wd-court-fig{width:40px;height:50px;}
#wendui-modal .wd-modal-chat{background:radial-gradient(120% 50% at 50% 0%,rgba(0,0,0,0.22),transparent 60%),linear-gradient(180deg,#120d07,#0d0905);}
#wendui-modal .wendui-npc > img{width:38px!important;height:46px!important;border-radius:2px!important;object-fit:cover!important;object-position:50% 13%!important;border:1px solid #564a2e;}
#wendui-modal .wendui-npc-name{font-family:"TM-MaShanZheng","STKaiti","KaiTi",serif;}
#wendui-modal #wd-topics .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;border-radius:2px;}
#wendui-modal #wd-topics .bt::before{content:"问 ";color:#7e6d45;font-size:0.62rem;}
#wendui-modal #wd-tone{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#wendui-modal #wd-send-btn{font-family:"TM-MaShanZheng","STKaiti","KaiTi",serif;font-size:18px;letter-spacing:0.14em;}
#wendui-modal .wd-modal-footer .bt:not(#wd-send-btn){font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
/* 情绪条·滑条（对齐预览·替 ●○ 点） */
#wendui-modal .wd-emo-track{position:relative;display:inline-block;width:76px;height:5px;border-radius:3px;vertical-align:middle;background:linear-gradient(90deg,rgba(159,194,160,0.4),rgba(207,80,66,0.45));box-shadow:inset 0 0 0 0.6px rgba(86,73,45,0.7);}
#wendui-modal .wd-emo-mark{position:absolute;top:-2px;bottom:-2px;left:34%;width:2px;border-radius:1px;background:#f4eddf;box-shadow:0 0 3px rgba(244,237,223,0.85);transition:left 0.3s;}
/* 皇帝气泡·御印头像（对齐预览·去角标谕避免重复） */
#wendui-modal .wendui-player{align-items:flex-start;gap:8px;}
#wendui-modal .wendui-player-bubble:after{display:none!important;}
#wendui-modal .wd-emp-av{flex:none;width:38px;height:46px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:"TM-MaShanZheng","STKaiti",serif;font-size:18px;color:#fdf3da;border:1px solid #f0d597;background:linear-gradient(180deg,#a8312a,#76190f);margin-top:2px;box-shadow:0 2px 8px rgba(110,28,20,0.4);}
/* 立绘列宽 38%（对齐预览） */
#wendui-modal .wd-actor{flex:0 0 38%;}
/* 语气·chip 样式（替原生 select 观感） */
#wendui-modal #wd-tone{background:linear-gradient(180deg,#241c11,#130d07);border:1px solid #564a2e;color:#cdab63;border-radius:2px;padding:6px 10px;}
/* 朝议在列·名牌 + 当前发言标（对齐预览 court-fig） */
#wendui-modal .wd-court-fig{position:relative;}
#wendui-modal .wd-court-nm{position:absolute;left:0;right:0;bottom:0;font-size:9px;text-align:center;color:#a98f55;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;background:linear-gradient(0deg,rgba(8,6,3,0.92),transparent);padding:5px 0 1px;white-space:nowrap;overflow:hidden;}
#wendui-modal .wd-court-fig.on .wd-court-nm{color:#fdf3da;}
#wendui-modal .wd-court-fig.on:after{content:"对";position:absolute;top:2px;right:2px;font-size:8px;color:#1c1408;font-family:"TM-ZCOOL-XiaoWei",serif;background:#f0d597;padding:0 3px;border-radius:1px;}
/* 问对·聊天区精确对齐预览（气泡尺寸/行高/留白/头像位/话题chip） */
#wendui-modal .wd-modal-chat{padding:18px 20px;gap:16px;}
#wendui-modal .wendui-msg{margin-bottom:0;}
#wendui-modal .wendui-npc{display:flex;gap:10px;align-items:flex-start;max-width:84%;}
#wendui-modal .wendui-npc > img{margin-top:22px;flex:none;}
#wendui-modal .wendui-npc-name{font-size:13px;margin-bottom:5px;letter-spacing:0.08em;}
#wendui-modal .wendui-npc-bubble{padding:12px 15px;font-size:15px;line-height:1.9;border-radius:3px 12px 12px 12px;color:#d8cdba;}
#wendui-modal .wendui-player-bubble{padding:12px 16px;font-size:15.5px;line-height:1.82;border-radius:12px 3px 12px 12px;color:#fdf1da;}
#wendui-modal #wd-topics{padding:9px 18px;gap:7px;border-top:1px solid rgba(207,173,101,0.1);}
#wendui-modal #wd-topics .bt{font-size:0.599rem!important;padding:4px 11px!important;color:#a98f55!important;border:1px solid #564a2e!important;background:linear-gradient(180deg,#1f1810,#140d07)!important;border-radius:2px!important;}
#wendui-modal #wd-topics .bt:hover{border-color:#cdab63!important;color:#f0d597!important;}
/* 发言框·深漆描金（对齐预览·替游戏默认浅色输入框） */
#wendui-modal .wd-modal-footer{background:linear-gradient(180deg,rgba(207,173,101,0.04),transparent);}
#wendui-modal .wd-modal-textarea{background:linear-gradient(180deg,#140e08,#0e0a06)!important;border:1px solid rgba(207,173,101,0.28)!important;border-radius:3px;color:#f4eddf;font-family:"Songti SC","STSong","SimSun",serif;box-shadow:inset 0 1px 4px rgba(0,0,0,0.45);height:66px!important;min-height:0!important;max-height:66px;line-height:1.6;font-size:15px;}
/* footer 布局对齐预览·语气标上+chip / 输入 / 奉旨退下 */
#wendui-modal .wd-modal-footer .foot-lab,#wendui-modal .wd-modal-footer > div > div:first-child > span{font-size:0.5729rem!important;}
#wendui-modal .wd-modal-textarea:focus{border-color:#cdab63!important;box-shadow:inset 0 1px 4px rgba(0,0,0,0.45),0 0 0 2px rgba(207,173,101,0.16)!important;}
#wendui-modal .wd-modal-textarea::placeholder{color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
/* 时辰戳 + 皇帝御笔名牌 + 氛围框（对齐预览） */
#wendui-modal .wd-ts{display:block;text-align:right;font-size:9px;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;color:#7e6d45;opacity:0.6;margin-top:7px;letter-spacing:0.12em;}
#wendui-modal .wendui-player{align-items:flex-start;}
#wendui-modal .wendui-player-col{display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:84%;}
#wendui-modal .wendui-player-col .wendui-player-bubble{max-width:none;}
#wendui-modal .wendui-emp-name{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:13px;color:#f0d597;margin-bottom:5px;letter-spacing:0.08em;}
#wendui-modal #wd-ceremony .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;background:linear-gradient(180deg,#241c11,#130d07)!important;border:1px solid #564a2e!important;color:#a98f55!important;}
.wd-selectable{cursor:text;user-select:text;-webkit-user-select:text;}

/* === 鸿雁传书·信笺系统 === */
.lt-npc-list{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);}
.lt-npc-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;}
.lt-npc-card:hover{border-color:var(--gold-400);box-shadow:var(--shadow-sm);}
.lt-npc-card.active{border-color:var(--gold-500);background:var(--color-elevated);box-shadow:var(--shadow-sm),0 0 0 1px var(--gold-500);}
.lt-npc-card .lt-npc-name{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-foreground);letter-spacing:0.04em;}
.lt-npc-card .lt-npc-title{font-size:var(--text-xs);color:var(--color-foreground-muted);}
.lt-npc-card .lt-npc-loc{font-size:var(--text-xs);color:var(--celadon-400);letter-spacing:0.04em;}
.lt-npc-badge{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:flex;gap:var(--space-1);align-items:center;}
.lt-badge{font-size:0.66rem;padding:1px 5px;border-radius:8px;font-weight:var(--weight-bold);letter-spacing:0.04em;}
.lt-badge-unread{background:var(--vermillion-400);color:#fff;}
.lt-badge-transit{background:var(--color-surface);color:var(--ink-300);border:1px solid var(--color-border-subtle);}
.lt-badge-lost{background:rgba(231,76,60,0.15);color:var(--vermillion-400);border:1px solid var(--vermillion-400);}
.lt-badge-npc-new{background:var(--gold-400);color:var(--ink-900);}
/* 信笺卡片 */
.letter-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);transition:all var(--duration-normal) var(--ease-out);background-image:repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.012) 3em,rgba(107,93,79,0.012) calc(3em + 1px));}
.letter-card:hover{box-shadow:var(--shadow-sm);}
.letter-card.letter-outgoing{border-left:3px solid var(--gold-500);background-image:linear-gradient(135deg,rgba(184,154,83,0.03) 0%,transparent 60%),repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.012) 3em,rgba(107,93,79,0.012) calc(3em + 1px));}
.letter-card.letter-incoming{border-left:3px solid var(--celadon-400);background-image:linear-gradient(135deg,rgba(104,159,120,0.03) 0%,transparent 60%),repeating-linear-gradient(90deg,transparent,transparent 3em,rgba(107,93,79,0.012) 3em,rgba(107,93,79,0.012) calc(3em + 1px));}
.letter-card.letter-intercepted{border-left:3px solid var(--vermillion-400);opacity:0.7;background-image:linear-gradient(135deg,rgba(231,76,60,0.04) 0%,transparent 60%);}
.letter-card.letter-forged{border-left:3px dashed var(--amber-400);}
.letter-card.letter-suspect{box-shadow:0 0 0 2px rgba(243,156,18,0.3);}
.letter-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2);}
.letter-direction{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:0.08em;}
.letter-direction.dir-out{color:var(--gold-400);}
.letter-direction.dir-in{color:var(--celadon-400);}
.letter-meta{font-size:0.7rem;color:var(--color-foreground-muted);text-align:right;line-height:1.4;}
.letter-type-tag{display:inline-block;font-size:0.66rem;padding:1px 6px;border-radius:3px;margin-left:var(--space-1);letter-spacing:0.06em;font-weight:var(--weight-bold);}
.lt-type-secret{background:rgba(184,154,83,0.2);color:var(--gold-400);border:1px solid var(--gold-400);}
.lt-type-military{background:rgba(231,76,60,0.15);color:var(--vermillion-400);border:1px solid var(--vermillion-400);}
.lt-type-greeting{background:rgba(104,159,120,0.15);color:var(--celadon-400);border:1px solid var(--celadon-400);}
.lt-type-personal{background:rgba(155,89,182,0.15);color:var(--purple,#9b59b6);border:1px solid var(--purple,#9b59b6);}
.lt-type-proclamation{background:rgba(107,93,79,0.15);color:var(--ink-300);border:1px solid var(--ink-300);}
.letter-body{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-foreground-secondary);white-space:pre-wrap;text-indent:2em;}
.letter-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-2);padding-top:var(--space-1);border-top:1px solid var(--color-border-subtle);}
.letter-status{font-size:0.7rem;color:var(--color-foreground-muted);letter-spacing:0.04em;}
.letter-actions{display:flex;gap:var(--space-1);}
.letter-actions .bt{font-size:0.7rem;padding:2px 8px;}
/* 信使状态条 */
.lt-courier-status{text-align:center;font-size:var(--text-xs);color:var(--ink-300);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-2);position:relative;}
.lt-courier-status::before,.lt-courier-status::after{content:"";position:absolute;top:50%;width:30%;height:1px;background:var(--color-border-subtle);}
.lt-courier-status::before{left:0;}.lt-courier-status::after{right:0;}
/* 致书区域 */
.lt-compose{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);}
.lt-compose-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2);align-items:center;}
.lt-compose-row select{padding:var(--space-1) var(--space-2);background:var(--color-elevated);border:1px solid var(--color-border);color:var(--color-foreground);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;}
.lt-compose textarea{width:100%;min-height:70px;resize:vertical;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:inherit;background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-foreground);line-height:var(--leading-relaxed);}
.lt-compose textarea:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(138,109,27,0.12);}
.letter-card.letter-starred{border-top:2px solid var(--gold-400);}
/* === 常朝事务卡片 === */
.cc-item{transition:all var(--duration-normal) var(--ease-out);}
.cc-item:hover{box-shadow:var(--shadow-sm);}
.letter-card.letter-starred::after{content:"★";position:absolute;top:4px;right:8px;color:var(--gold-400);font-size:0.7rem;}

/* === 全局过渡增强 === */
.edict-input{transition:border-color 0.2s,box-shadow 0.2s;}
.edict-input:focus{box-shadow:0 0 0 3px rgba(138,109,27,0.12);}
.gir textarea{transition:border-color 0.2s,box-shadow 0.2s;}
.gir textarea:focus{box-shadow:0 0 0 3px rgba(138,109,27,0.12);}
.tb{transition:all 0.2s var(--ease);}.tb:hover{box-shadow:var(--shadow-sm);}
.pnl-row{box-shadow:var(--shadow-sm);}.pnl-row:hover{box-shadow:var(--shadow-md);}
/* ═══ 卷宗存档系统 ═══ */
.scroll-save-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3);padding:var(--space-2) 0;}
.scroll-save-card{position:relative;min-height:150px;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);overflow:hidden;cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);background-image:repeating-linear-gradient(90deg,transparent,transparent 2.5em,rgba(107,93,79,0.03) 2.5em,rgba(107,93,79,0.03) calc(2.5em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.04) 0%,transparent 30px);}
.scroll-save-card:hover{border-color:var(--gold-500);box-shadow:var(--shadow-md),var(--shadow-gold);transform:translateY(-2px);}
/* 左侧丝带（国力指示） */
.scroll-save-card::before{content:"";position:absolute;left:0;top:0;width:4px;height:var(--ribbon-h,60%);background:var(--ribbon-c,var(--gold-400));border-radius:0 2px 2px 0;transition:height 0.3s var(--ease-out);}
/* 朱印 */
.save-seal{position:absolute;bottom:10px;right:14px;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(192,64,48,0.85),rgba(140,40,30,0.95));display:flex;align-items:center;justify-content:center;color:var(--ink-50);font-size:13px;font-weight:bold;transform:rotate(-5deg);box-shadow:0 1px 3px rgba(140,40,30,0.3);opacity:0.8;letter-spacing:0.05em;}
.save-seal.square{border-radius:3px;width:30px;height:30px;}
/* 墨龄 */
.ink-fresh{color:#f4eadd;}.ink-fresh .scroll-title{color:var(--color-foreground);}
.ink-recent{color:#ede5d0;}.ink-recent .scroll-title{color:#d4c9b0;}
.ink-old{color:#d4be7a;}.ink-old .scroll-title{color:#d4be7a;}
.ink-ancient{color:var(--ink-300);}.ink-ancient .scroll-title{color:#d4be7a;opacity:0.8;}
/* 归档编号 */
.scroll-archive-id{font-size:var(--text-xs);color:var(--color-foreground-muted);letter-spacing:0.1em;margin-bottom:var(--space-1);}
/* 标题 */
.scroll-title{font-size:var(--text-base);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:var(--space-2) 0;letter-spacing:0.05em;}
/* 元数据 */
.scroll-meta{font-size:var(--text-xs);color:var(--color-foreground-muted);line-height:var(--leading-normal);}
/* 空卷 */
.scroll-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;color:var(--color-foreground-muted);font-size:var(--text-sm);gap:var(--space-2);}
.scroll-empty-hint{font-size:var(--text-xs);color:#d4be7a;font-style:italic;}
/* 动作栏 */
.scroll-actions{display:flex;gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;}
/* 朱印浮现动画 */
@keyframes seal-appear{0%{opacity:0;transform:rotate(-5deg) scale(1.3);}50%{opacity:0.9;transform:rotate(-5deg) scale(0.9);}100%{opacity:0.8;transform:rotate(-5deg) scale(1);}}
.seal-animate{animation:seal-appear var(--duration-slow) var(--ease-spring);}
/* 卡片关闭（付之丙火）动画 */
@keyframes card-burn-away{0%{opacity:1;transform:scale(1);filter:blur(0);}40%{opacity:0.8;filter:blur(1px) brightness(1.3) sepia(0.3);}100%{opacity:0;transform:scale(0.92) translateY(4px);filter:blur(2.5px) brightness(0.7);}}
.scroll-save-card.burning{animation:card-burn-away 420ms var(--ease-out) forwards;pointer-events:none;}
/* 卡片新建动画（墨迹未干）*/
@keyframes card-ink-fresh{0%{opacity:0;transform:translateY(-6px) scale(0.98);}60%{opacity:1;transform:translateY(2px) scale(1.01);}100%{opacity:1;transform:translateY(0) scale(1);}}
.scroll-save-card.fresh-ink{animation:card-ink-fresh 380ms var(--ease-spring);}
/* 玉玺按压动画（屏幕中央）*/
@keyframes jade-seal-press{0%{opacity:0;transform:translate(-50%,-50%) scale(0.2) rotate(-8deg);}30%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(-6deg);}55%{opacity:1;transform:translate(-50%,-50%) scale(0.88) rotate(-5deg);}75%{opacity:1;transform:translate(-50%,-50%) scale(1.04) rotate(-4deg);}100%{opacity:0;transform:translate(-50%,-50%) scale(1) rotate(-3deg);}}
.jade-seal-overlay{position:fixed;inset:0;z-index:12000;pointer-events:none;background:radial-gradient(ellipse at center,rgba(20,15,10,0.25) 0%,rgba(0,0,0,0.05) 60%,transparent 100%);animation:fade-bg 900ms var(--ease-out);}
@keyframes fade-bg{0%{opacity:0;}20%{opacity:1;}70%{opacity:1;}100%{opacity:0;}}
.jade-seal-glyph{position:absolute;top:50%;left:50%;width:120px;height:120px;border-radius:8px;background:linear-gradient(145deg,#c94a35 0%,#8a2a1e 55%,#6b1f15 100%);border:2px solid #3a1208;box-shadow:0 4px 16px rgba(140,40,30,0.55),inset 0 1px 3px rgba(255,200,180,0.3),inset 0 -3px 6px rgba(40,10,5,0.35);display:flex;align-items:center;justify-content:center;color:#fff1e6;font-family:var(--font-serif);font-size:28px;font-weight:bold;letter-spacing:0.25em;line-height:1;text-shadow:0 0 6px rgba(0,0,0,0.35);animation:jade-seal-press 900ms cubic-bezier(0.3,0.8,0.2,1) forwards;}
.jade-seal-glyph::after{content:"";position:absolute;inset:6px;border:1px solid rgba(255,200,180,0.4);border-radius:4px;pointer-events:none;}
/* 宣纸风格确认框 */
.rice-paper-confirm{position:fixed;inset:0;z-index:11500;background:rgba(16,12,8,0.6);display:flex;align-items:center;justify-content:center;animation:fade-bg-in 200ms var(--ease-out);}
@keyframes fade-bg-in{from{opacity:0;}to{opacity:1;}}
.rice-paper-box{max-width:440px;width:90%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);position:relative;background-image:repeating-linear-gradient(90deg,transparent,transparent 2.5em,rgba(107,93,79,0.035) 2.5em,rgba(107,93,79,0.035) calc(2.5em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.06) 0%,transparent 50px);box-shadow:var(--shadow-lg);animation:paper-unfurl 260ms var(--ease-spring);}
@keyframes paper-unfurl{0%{opacity:0;transform:scaleY(0.6) translateY(-8px);transform-origin:top center;}100%{opacity:1;transform:scaleY(1) translateY(0);}}
.rice-paper-box::before{content:"";position:absolute;top:0;left:15%;right:15%;height:2px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);border-radius:1px;}
.rice-paper-box.danger{border-color:var(--vermillion-400);}
.rice-paper-box.danger::before{background:linear-gradient(to right,transparent,var(--vermillion-400),transparent);}
.rice-paper-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-primary);letter-spacing:0.15em;margin-bottom:var(--space-3);text-align:center;}
.rice-paper-body{font-size:var(--text-sm);color:var(--color-foreground-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-4);}
.rice-paper-body .rice-paper-emphasis{color:var(--color-primary);font-weight:var(--weight-bold);}
.rice-paper-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);}
/* 卷宗管理器头部 */
.scroll-manager-header{text-align:center;padding:var(--space-3);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-primary);letter-spacing:0.2em;}
.scroll-manager-footer{display:flex;gap:var(--space-3);justify-content:center;padding:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--color-border-subtle);}

/* ═══ 标签页（印章选中态） ═══ */
.g-tab-btn{transition:color var(--duration-normal) var(--ease-out);position:relative;letter-spacing:0.08em;color:var(--color-foreground-muted);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-bottom:2px solid transparent;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--font-serif);}
.g-tab-btn:hover{color:var(--color-foreground-secondary);}
.g-tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);}
/* 朱印标记 */
.g-tab-btn.active::before{content:"";position:absolute;top:2px;right:4px;width:6px;height:6px;background:var(--vermillion-400);border-radius:1px;transform:rotate(3deg);box-shadow:0 0 2px rgba(192,64,48,0.3);}

/* ═══ 邸报·更新公告 ═══ */
.tm-cl-overlay{position:fixed;inset:0;z-index:11800;background:rgba(16,12,8,0.76);display:flex;align-items:center;justify-content:center;animation:fade-bg-in 220ms var(--ease-out);}
.tm-cl-panel{max-width:640px;width:92%;max-height:82vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);background-image:repeating-linear-gradient(90deg,transparent,transparent 2.8em,rgba(107,93,79,0.035) 2.8em,rgba(107,93,79,0.035) calc(2.8em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.07) 0%,transparent 60px);animation:paper-unfurl 280ms var(--ease-spring);overflow:hidden;position:relative;}
.tm-cl-panel::before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:linear-gradient(to right,transparent,var(--gold-500),transparent);border-radius:1px;z-index:1;}
.tm-cl-panel-head{padding:var(--space-4) var(--space-5) var(--space-3);text-align:center;position:relative;border-bottom:1px solid var(--color-border-subtle);}
.tm-cl-panel-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-primary);letter-spacing:0.25em;font-family:var(--font-serif);}
.tm-cl-panel-sub{font-size:var(--text-xs);color:var(--color-foreground-muted);margin-top:var(--space-1);letter-spacing:0.1em;}
.tm-cl-close{position:absolute;top:10px;right:14px;width:32px;height:32px;border:none;background:none;color:var(--color-foreground-muted);font-size:22px;cursor:pointer;border-radius:50%;transition:all 180ms var(--ease-out);line-height:1;}
.tm-cl-close:hover{color:var(--vermillion-400);background:rgba(192,64,48,0.08);}
.tm-cl-body{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-5);}
.tm-cl-entry{padding:var(--space-3) var(--space-1);border-bottom:1px dashed var(--color-border-subtle);position:relative;}
.tm-cl-entry:last-child{border-bottom:none;}
.tm-cl-entry.tm-cl-new{background:linear-gradient(to right,rgba(184,154,83,0.04),transparent 60%);padding-left:var(--space-3);border-left:2px solid var(--gold-400);}
.tm-cl-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;}
.tm-cl-date{font-size:var(--text-xs);color:var(--color-foreground-muted);font-family:var(--font-serif);letter-spacing:0.1em;}
.tm-cl-module{font-size:var(--text-xs);color:var(--color-primary);padding:2px 10px;background:rgba(184,154,83,0.1);border:1px solid rgba(184,154,83,0.3);border-radius:3px;letter-spacing:0.08em;}
.tm-cl-badge{font-size:11px;color:#fff;background:var(--vermillion-400);padding:2px 8px;border-radius:2px;letter-spacing:0.15em;animation:badge-pulse 1.6s ease-in-out infinite;}
@keyframes badge-pulse{0%,100%{opacity:1;}50%{opacity:0.7;}}
.tm-cl-title{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-foreground);margin-bottom:var(--space-2);letter-spacing:0.05em;line-height:var(--leading-tight);}
.tm-cl-items{list-style:none;padding:0;margin:0;}
.tm-cl-items li{font-size:var(--text-sm);color:var(--color-foreground-secondary);padding:var(--space-1) 0 var(--space-1) var(--space-4);position:relative;line-height:var(--leading-relaxed);}
.tm-cl-items li::before{content:"·";position:absolute;left:var(--space-2);color:var(--gold-500);font-weight:bold;}
.tm-cl-what{display:block;color:var(--color-foreground-secondary);}
.tm-cl-why{display:block;font-size:var(--text-xs);color:var(--color-foreground-muted);margin-top:2px;padding-left:var(--space-2);border-left:2px solid rgba(184,154,83,0.25);letter-spacing:0.02em;}
.tm-cl-why::before{content:"";}
.tm-cl-foot{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-end;gap:var(--space-2);background:rgba(107,93,79,0.02);}

/* 启动页邸报按钮 */
.lt-dibao-btn{position:relative;}
.lt-dibao-btn .tm-cl-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--vermillion-400);border-radius:50%;box-shadow:0 0 4px rgba(192,64,48,0.6);animation:badge-pulse 1.8s ease-in-out infinite;}

/* ═══════════════════════════════════════════════════════════════════ */
/* 地方区划详情弹窗·卷宗风格 (tm-div-detail)                            */
/* ═══════════════════════════════════════════════════════════════════ */
.generic-modal:has(.tm-div-detail){max-width:780px;}
.tm-div-detail{font-family:var(--font-serif);color:var(--color-foreground);background:linear-gradient(180deg,rgba(184,154,83,0.025) 0%,transparent 22%),repeating-linear-gradient(90deg,transparent 0,transparent 28px,rgba(107,93,79,0.025) 28px,rgba(107,93,79,0.025) 29px);}

/* Hero 段·立绘 + 名号识别 */
.tm-div-hero{display:flex;gap:14px;padding:12px;background:linear-gradient(135deg,rgba(184,154,83,0.04),transparent 60%);border:1px solid rgba(184,154,83,0.18);border-radius:8px;margin-bottom:14px;position:relative;}
.tm-div-hero::before,.tm-div-hero::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--gold-500);opacity:0.55;}
.tm-div-hero::before{top:6px;left:6px;border-right:0;border-bottom:0;}
.tm-div-hero::after{bottom:6px;right:6px;border-left:0;border-top:0;}

/* 立绘占位区 */
.tm-div-lijuan{flex:0 0 130px;width:130px;height:170px;border:1px solid var(--gold-500);border-radius:6px;position:relative;cursor:pointer;overflow:hidden;background:linear-gradient(165deg,#2a1f14 0%,#1c1610 50%,#0e0a06 100%);transition:border-color 0.2s var(--ease-out),box-shadow 0.2s var(--ease-out),transform 0.2s var(--ease-out);}
.tm-div-lijuan:hover{border-color:var(--gold-300);box-shadow:0 0 14px rgba(184,154,83,0.25);transform:translateY(-1px);}
.tm-div-lijuan::before,.tm-div-lijuan::after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--gold-400);opacity:0.6;pointer-events:none;}
.tm-div-lijuan::before{top:4px;left:4px;border-right:0;border-bottom:0;}
.tm-div-lijuan::after{bottom:4px;right:4px;border-left:0;border-top:0;}
.tm-div-lijuan-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:6px;text-align:center;background:radial-gradient(ellipse at 50% 35%,rgba(184,154,83,0.08) 0%,transparent 65%);}
.tm-div-lijuan-empty .tm-div-lj-char{font-family:var(--font-serif);font-size:3.4rem;font-weight:700;color:var(--gold-400);letter-spacing:0;line-height:1;text-shadow:0 0 18px rgba(184,154,83,0.35),0 2px 0 rgba(0,0,0,0.4);}
.tm-div-lijuan-empty .tm-div-lj-sub{margin-top:8px;font-size:0.68rem;color:var(--gold-d);letter-spacing:0.18em;}
.tm-div-lijuan-empty .tm-div-lj-hint{margin-top:6px;font-size:0.64rem;color:var(--ink-400);letter-spacing:0.1em;opacity:0.7;}
.tm-div-lijuan:hover .tm-div-lj-hint{color:var(--gold-300);opacity:1;}
.tm-div-lijuan-img{width:100%;height:100%;object-fit:cover;display:block;}
.tm-div-lijuan-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,0.75));opacity:0;transition:opacity 0.2s;pointer-events:none;}
.tm-div-lijuan:hover .tm-div-lijuan-overlay{opacity:1;}
.tm-div-lijuan-overlay-row{padding:4px 6px 6px;display:flex;gap:6px;font-size:0.66rem;letter-spacing:0.1em;}
.tm-div-lijuan-overlay-row .tm-div-lj-btn{padding:2px 8px;border:1px solid var(--gold-400);border-radius:3px;color:var(--gold-300);background:rgba(0,0,0,0.4);cursor:pointer;pointer-events:auto;transition:background 0.15s;}
.tm-div-lijuan-overlay-row .tm-div-lj-btn:hover{background:rgba(184,154,83,0.18);}
.tm-div-lijuan-overlay-row .tm-div-lj-btn.danger{border-color:var(--vermillion-400);color:var(--vermillion-300);}
.tm-div-lijuan-overlay-row .tm-div-lj-btn.danger:hover{background:rgba(192,64,48,0.18);}

/* Hero 右侧·名号识别 */
.tm-div-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.tm-div-id-name{font-family:var(--font-serif);font-size:1.55rem;font-weight:700;color:var(--gold-300);letter-spacing:0.12em;line-height:1.1;text-shadow:0 0 8px rgba(184,154,83,0.18);}
.tm-div-id-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:0.7rem;}
.tm-div-id-meta .pill{padding:2px 8px;border-radius:10px;border:1px solid var(--gold-500);background:rgba(184,154,83,0.06);color:var(--gold-400);letter-spacing:0.06em;}
.tm-div-id-meta .pill.muted{border-color:var(--ink-500);color:var(--color-foreground-muted);background:rgba(255,255,255,0.02);}
.tm-div-id-meta .pill.danger{border-color:var(--vermillion-400);color:var(--vermillion-300);background:rgba(192,64,48,0.06);}
.tm-div-id-meta .pill.warn{border-color:var(--amber-400,#d4a838);color:var(--amber-400,#d4a838);background:rgba(212,168,56,0.06);}
.tm-div-id-meta .pill.cool{border-color:var(--celadon-400);color:var(--celadon-400);background:rgba(126,184,167,0.06);}
.tm-div-id-meta .gov-link{color:var(--gold-300);text-decoration:underline dotted rgba(184,154,83,0.35);text-underline-offset:3px;cursor:pointer;}
.tm-div-id-meta .gov-link:hover{color:var(--gold-200,#e0c97a);}
.tm-div-id-desc{font-size:0.72rem;color:var(--ink-200);line-height:1.55;letter-spacing:0.02em;padding:6px 10px;background:rgba(255,255,255,0.025);border-left:2px solid var(--gold-500);border-radius:0 4px 4px 0;font-style:italic;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.tm-div-id-desc.expanded{-webkit-line-clamp:unset;}
.tm-div-id-desc-toggle{display:inline-block;margin-left:6px;font-size:0.66rem;color:var(--gold-400);cursor:pointer;font-style:normal;}
.tm-div-id-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;}
.tm-div-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:0.68rem;letter-spacing:0.05em;border:1px solid;background:rgba(255,255,255,0.03);}
.tm-div-tag-icon{font-size:0.7rem;}

/* 6 格快览 */
.tm-div-quickstats{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:14px;}
.tm-div-qs{padding:8px 6px;background:rgba(255,255,255,0.025);border:1px solid rgba(184,154,83,0.12);border-radius:5px;text-align:center;transition:border-color 0.15s,transform 0.15s;}
.tm-div-qs:hover{border-color:var(--gold-500);transform:translateY(-1px);}
.tm-div-qs-label{font-size:0.64rem;color:var(--color-foreground-muted);letter-spacing:0.1em;}
.tm-div-qs-val{font-size:0.95rem;font-weight:700;letter-spacing:0.02em;margin-top:3px;line-height:1.1;}
.tm-div-qs-sub{font-size:0.62rem;color:var(--ink-400);margin-top:1px;}

/* Section title 升级 */
.tm-div-section{margin-top:14px;}
.tm-div-section-title{display:flex;align-items:center;gap:8px;padding-bottom:5px;margin-bottom:8px;border-bottom:1px solid rgba(184,154,83,0.22);position:relative;}
.tm-div-section-title::after{content:"";position:absolute;left:0;bottom:-1px;width:36px;height:1px;background:linear-gradient(90deg,var(--gold-400),transparent);}
.tm-div-section-icon{font-size:0.85rem;color:var(--gold-400);}
.tm-div-section-name{font-size:0.78rem;color:var(--gold-300);letter-spacing:0.18em;font-weight:600;}
.tm-div-section-aside{margin-left:auto;font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.05em;}

/* 经济基础卡片优化 */
.tm-div-econ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:7px;}
.tm-div-econ-card{padding:7px 10px;background:rgba(255,255,255,0.025);border-left:2px solid;border-radius:0 4px 4px 0;transition:background 0.15s;}
.tm-div-econ-card:hover{background:rgba(255,255,255,0.05);}
.tm-div-econ-label{font-size:0.66rem;color:var(--color-foreground-muted);letter-spacing:0.05em;}
.tm-div-econ-val{font-size:0.92rem;font-weight:700;margin-top:2px;}
.tm-div-econ-sub{font-size:0.64rem;color:var(--ink-400);margin-top:2px;}

/* 族群+信仰 双柱 */
.tm-div-stacks{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tm-div-stack-block .tm-div-stack-title{font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.1em;margin-bottom:4px;}
.tm-div-stack-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,0.04);border:1px solid rgba(184,154,83,0.08);}
.tm-div-stack-bar > div{height:100%;}
.tm-div-stack-legend{display:flex;flex-wrap:wrap;gap:6px;font-size:0.64rem;color:var(--color-foreground-muted);margin-top:5px;}
.tm-div-stack-legend .leg-dot{display:inline-block;width:6px;height:6px;border-radius:1px;margin-right:3px;vertical-align:middle;}

/* 立绘 file input 隐藏 */
.tm-div-lj-file{position:absolute;width:0;height:0;opacity:0;pointer-events:none;}

/* ═══ 核算细目·赋税/经费 ═══ */
.tm-div-line-list{display:flex;flex-direction:column;gap:1px;background:rgba(184,154,83,0.05);border:1px solid rgba(184,154,83,0.12);border-radius:5px;overflow:hidden;}
.tm-div-line-row{display:grid;grid-template-columns:140px 1fr 130px;gap:8px;padding:6px 10px;align-items:center;background:var(--color-surface);transition:background 0.12s;}

/* 势力天平面板 */
.generic-modal:has(.frp-shell){max-width:1180px;width:94vw;max-height:90vh;border-radius:8px;background:#17130f;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2.8em,rgba(184,154,83,0.025) 2.8em,rgba(184,154,83,0.025) calc(2.8em + 1px)),linear-gradient(to bottom,rgba(184,154,83,0.08),transparent 180px);}
.generic-modal:has(.frp-shell) .generic-modal-body{padding:0;overflow:hidden;}
.frp-shell{height:min(78vh,820px);display:flex;flex-direction:column;color:var(--ink-50,#f4eadd);font-family:"Noto Serif SC","Source Han Serif","STKaiti","KaiTi",serif;}
.frp-top{display:flex;justify-content:space-between;gap:20px;padding:18px 22px 14px;border-bottom:1px solid rgba(184,154,83,0.22);background:linear-gradient(90deg,rgba(192,64,48,0.08),rgba(184,154,83,0.05),transparent);}
.frp-top span{font-size:12px;color:var(--gold-300,#c9a85f);letter-spacing:.28em;}
.frp-top h1{margin:4px 0 0;font-size:28px;line-height:1;letter-spacing:.18em;color:var(--ink-50,#f4eadd);}
.frp-top p{max-width:440px;margin:0;color:var(--ink-300,#9b8d73);font-size:14px;line-height:1.7;text-align:right;}
.frp-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 16px;border-bottom:1px solid rgba(184,154,83,0.14);background:rgba(0,0,0,0.16);}
.frp-grid{min-height:0;flex:1;display:grid;grid-template-columns:330px minmax(0,1fr);}
.frp-list{min-height:0;overflow:auto;padding:12px;background:rgba(0,0,0,0.18);border-right:1px solid rgba(184,154,83,0.18);}
.frp-grid main{min-height:0;overflow:auto;padding:14px 16px 18px;}
.frp-card{width:100%;display:grid;grid-template-columns:5px minmax(0,1fr) 58px;gap:10px;align-items:center;margin-bottom:8px;padding:10px 10px;background:rgba(36,30,24,0.82);border:1px solid rgba(184,154,83,0.14);border-radius:5px;color:inherit;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,background .15s;}
.frp-card:hover,.frp-card.active{transform:translateX(2px);border-color:rgba(201,168,95,0.58);background:rgba(50,41,30,0.92);}
.frp-card.good{--frp-tone:var(--celadon-400,#7eb8a7);}
.frp-card.mid{--frp-tone:var(--gold-400,#b89a53);}
.frp-card.warn{--frp-tone:var(--amber-400,#c9a045);}
.frp-card.bad{--frp-tone:var(--vermillion-400,#c04030);}
.frp-card-mark{width:5px;height:54px;border-radius:2px;background:var(--frp-tone,var(--gold-400));box-shadow:0 0 12px color-mix(in srgb,var(--frp-tone,var(--gold-400)) 40%,transparent);}
.frp-card-main{min-width:0;display:flex;flex-direction:column;gap:4px;}
.frp-card-main strong{font-size:15px;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.frp-card-main em{font-size:12px;color:var(--ink-300,#9b8d73);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.frp-card-side{text-align:right;display:flex;flex-direction:column;}
.frp-card-side b{font-size:22px;color:var(--frp-tone,var(--gold-400));line-height:1;}
.frp-card-side i{font-size:12px;color:var(--ink-300,#9b8d73);font-style:normal;margin-top:3px;}
.frp-card-tags{grid-column:2/4;display:flex;gap:5px;flex-wrap:wrap;}
.frp-card-tags i,.frp-badges span{font-style:normal;font-size:12px;line-height:18px;padding:0 7px;border:1px solid rgba(184,154,83,0.22);border-radius:2px;background:rgba(184,154,83,0.06);color:var(--ink-100,#d8ccb4);}
.frp-card-tags .hostile,.frp-badges .hostile{color:var(--vermillion-300,#d15c47);border-color:rgba(192,64,48,0.55);background:rgba(192,64,48,0.09);}
.frp-card-tags .friend,.frp-badges .friend{color:var(--celadon-400,#7eb8a7);border-color:rgba(126,184,167,0.45);background:rgba(126,184,167,0.08);}
.frp-card-tags .vassal,.frp-badges .vassal{color:var(--indigo-400,#7e8fc4);border-color:rgba(126,143,196,0.45);background:rgba(126,143,196,0.08);}
.frp-card-tags .self,.frp-badges .self{color:var(--gold-300,#c9a85f);border-color:rgba(201,168,95,0.62);background:rgba(201,168,95,0.1);}
.frp-detail{display:flex;flex-direction:column;gap:12px;}
.frp-hero{display:flex;justify-content:space-between;gap:20px;min-height:132px;padding:18px;border:1px solid rgba(184,154,83,0.2);border-left:4px solid var(--frp-hero,var(--gold-400));border-radius:6px;background:linear-gradient(110deg,rgba(184,154,83,0.08),rgba(0,0,0,0.18) 55%,rgba(0,0,0,0.32));}
.frp-hero.good{--frp-hero:var(--celadon-400,#7eb8a7)}.frp-hero.mid{--frp-hero:var(--gold-400,#b89a53)}.frp-hero.warn{--frp-hero:var(--amber-400,#c9a045)}.frp-hero.bad{--frp-hero:var(--vermillion-400,#c04030)}
.frp-eyebrow{font-size:12px;color:var(--gold-300,#c9a85f);letter-spacing:.22em;margin-bottom:5px;}
.frp-hero h2{font-size:30px;line-height:1;margin:0 0 10px;letter-spacing:.12em;}
.frp-hero p{margin:0;max-width:680px;color:var(--ink-200,#c8bda7);font-size:14px;line-height:1.85;}
.frp-seal{width:96px;height:96px;border:1px solid rgba(201,168,95,0.55);display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,0.2);border-radius:4px;flex-shrink:0;}
.frp-seal b{font-size:36px;color:var(--gold-300,#c9a85f);line-height:1;}.frp-seal span{font-size:12px;color:var(--ink-300,#9b8d73);letter-spacing:.2em;margin-top:5px;}
.frp-badges{display:flex;gap:6px;flex-wrap:wrap;}
.frp-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.frp-mini-stat{padding:9px 10px;background:rgba(36,30,24,0.82);border:1px solid rgba(184,154,83,0.14);border-radius:5px;min-width:0;}
.frp-mini-stat span{display:block;font-size:12px;color:var(--ink-300,#9b8d73);}.frp-mini-stat b{display:block;margin-top:4px;font-size:16px;color:var(--ink-50,#f4eadd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.frp-mini-stat.good b,.frp-risk-list .good{color:var(--celadon-400,#7eb8a7)}.frp-mini-stat.warn b,.frp-risk-list .warn{color:var(--amber-400,#c9a045)}.frp-mini-stat.bad b,.frp-risk-list .bad{color:var(--vermillion-300,#d15c47)}
.frp-section{padding:13px 14px;background:rgba(36,30,24,0.72);border:1px solid rgba(184,154,83,0.14);border-radius:6px;}
.frp-section h3,.frp-relation-board h3{margin:0 0 10px;font-size:15px;color:var(--gold-300,#c9a85f);letter-spacing:.16em;}
.frp-bars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.frp-bar-top{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-300,#9b8d73);margin-bottom:5px;}.frp-bar-top b{font-size:13px;color:var(--ink-50,#f4eadd);}
.frp-bar{height:42px;position:relative;overflow:hidden;border:1px solid rgba(184,154,83,0.12);border-radius:4px;padding:7px;background:rgba(0,0,0,0.18);}
.frp-bar i{display:block;height:4px;border-radius:999px;background:var(--bar-c,var(--gold-400));}.frp-bar.good{--bar-c:var(--celadon-400,#7eb8a7)}.frp-bar.mid{--bar-c:var(--gold-400,#b89a53)}.frp-bar.warn{--bar-c:var(--amber-400,#c9a045)}.frp-bar.bad{--bar-c:var(--vermillion-400,#c04030)}
.frp-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.frp-chipline,.frp-army-list,.frp-risk-list{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;}
.frp-chipline span,.frp-subline span,.frp-army-list span,.frp-risk-list span,.frp-more,.frp-muted{font-size:12px;line-height:22px;padding:0 7px;border:1px solid rgba(184,154,83,0.18);background:rgba(184,154,83,0.06);border-radius:2px;color:var(--ink-100,#d8ccb4);}
.frp-subline{margin-top:8px;color:var(--ink-300,#9b8d73);font-size:12px;line-height:1.8;}
.frp-army-list span{display:flex;flex-direction:column;line-height:18px;padding:5px 7px;min-width:116px;}.frp-army-list span.risk{border-color:rgba(192,64,48,0.55);background:rgba(192,64,48,0.08)}.frp-army-list i{font-style:normal;color:var(--ink-300,#9b8d73);font-size:12px;}
.frp-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.frp-timeline div{padding:8px 10px;border-left:2px solid rgba(201,168,95,0.42);background:rgba(0,0,0,0.16);border-radius:3px;}.frp-timeline b{display:block;color:var(--gold-300,#c9a85f);font-size:12px;margin-bottom:4px;}.frp-timeline span{font-size:13px;color:var(--ink-200,#c8bda7);line-height:1.6;}
.frp-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;padding:10px;background:linear-gradient(to top,#17130f,rgba(23,19,15,0.82));border-top:1px solid rgba(184,154,83,0.14);}
.frp-actions button{padding:7px 12px;background:rgba(184,154,83,0.08);border:1px solid rgba(184,154,83,0.32);border-radius:4px;color:var(--ink-50,#f4eadd);cursor:pointer;font-family:inherit;}.frp-actions button:hover{border-color:var(--gold-300,#c9a85f)}.frp-actions .danger{color:var(--vermillion-300,#d15c47);border-color:rgba(192,64,48,0.45);background:rgba(192,64,48,0.08);}
.frp-relation-board{margin-top:14px;padding:13px 14px;background:rgba(36,30,24,0.72);border:1px solid rgba(184,154,83,0.14);border-radius:6px;overflow:auto;}
.frp-relation-grid{display:grid;gap:4px;align-items:center;min-width:760px;}.frp-relation-grid b{font-size:12px;color:var(--ink-300,#9b8d73);font-weight:400;text-align:center;white-space:nowrap;}.frp-relation-grid .row-name{text-align:right;padding-right:6px;color:var(--ink-100,#d8ccb4);}
.frp-relation-cell{height:28px;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:12px;border:1px solid rgba(184,154,83,0.12);background:rgba(184,154,83,0.04);color:var(--ink-300,#9b8d73);}
.frp-relation-cell.self{background:rgba(201,168,95,0.14);color:var(--gold-300,#c9a85f)}.frp-relation-cell.hostile{background:rgba(192,64,48,0.16);color:var(--vermillion-300,#d15c47);border-color:rgba(192,64,48,0.38)}.frp-relation-cell.friend{background:rgba(126,184,167,0.12);color:var(--celadon-400,#7eb8a7);border-color:rgba(126,184,167,0.32)}.frp-relation-cell.vassal{background:rgba(126,143,196,0.12);color:var(--indigo-400,#7e8fc4)}.frp-relation-cell.tense{background:rgba(201,160,69,0.12);color:var(--amber-400,#c9a045)}.frp-relation-cell.focus{box-shadow:0 0 0 1px rgba(201,168,95,0.7) inset;}
@media (max-width:900px){.frp-shell{height:82vh}.frp-grid{grid-template-columns:1fr}.frp-list{max-height:250px;border-right:none;border-bottom:1px solid rgba(184,154,83,0.18)}.frp-top,.frp-hero{flex-direction:column}.frp-top p{text-align:left}.frp-overview,.frp-stat-grid,.frp-bars,.frp-columns,.frp-timeline{grid-template-columns:1fr 1fr}.frp-grid main{padding:12px}.frp-seal{width:78px;height:78px}.frp-seal b{font-size:30px}}
.tm-div-line-row:hover{background:rgba(184,154,83,0.06);}
.tm-div-line-name{font-size:0.74rem;font-weight:600;letter-spacing:0.04em;font-family:var(--font-serif);}
.tm-div-line-formula{font-size:0.66rem;color:var(--color-foreground-muted);font-family:var(--font-mono,monospace);letter-spacing:0.02em;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tm-div-line-amount{font-size:0.78rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;}
.tm-div-line-unit{font-size:0.64rem;color:var(--color-foreground-muted);font-weight:400;margin-left:1px;}
.tm-div-line-total{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:7px 12px;background:linear-gradient(90deg,rgba(184,154,83,0.12),rgba(184,154,83,0.04));border:1px solid var(--gold-500);border-radius:5px;}
.tm-div-line-total-label{font-size:0.71rem;color:var(--gold-300);letter-spacing:0.18em;font-weight:600;}
.tm-div-line-total-val{font-size:0.95rem;font-weight:700;color:var(--gold-300);font-variant-numeric:tabular-nums;}
.tm-div-compare{margin-top:6px;padding:5px 10px;background:rgba(255,255,255,0.02);border-radius:3px;font-size:0.7rem;color:var(--color-foreground-muted);letter-spacing:0.02em;}

.tm-div-empty{padding:8px 12px;font-size:0.7rem;color:var(--color-foreground-muted);font-style:italic;text-align:center;background:rgba(255,255,255,0.02);border-radius:4px;border:1px dashed rgba(184,154,83,0.15);}

/* ═══ 在灾实录 ═══ */
.tm-div-disaster-list{display:flex;flex-direction:column;gap:4px;}
.tm-div-disaster-row{display:flex;align-items:center;gap:8px;padding:5px 10px;background:rgba(192,64,48,0.04);border-left:2px solid;border-radius:0 4px 4px 0;font-size:0.71rem;}
.tm-div-disaster-icon{font-size:0.85rem;}
.tm-div-disaster-name{font-weight:700;letter-spacing:0.1em;}
.tm-div-disaster-sev{padding:1px 6px;border:1px solid var(--vermillion-400);color:var(--vermillion-300);border-radius:8px;font-size:0.64rem;letter-spacing:0.1em;}
.tm-div-disaster-time{font-size:0.66rem;color:var(--color-foreground-muted);}
.tm-div-disaster-note{margin-left:auto;font-size:0.66rem;color:var(--ink-300);font-style:italic;}

/* ═══ 公库细目 ═══ */
.tm-div-treasury-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.tm-div-treasury-card{padding:8px 10px;background:rgba(255,255,255,0.025);border-left:3px solid;border-radius:0 5px 5px 0;display:flex;flex-direction:column;gap:4px;}
.tm-div-treasury-head{display:flex;justify-content:space-between;align-items:center;}
.tm-div-treasury-label{font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.18em;font-weight:600;}
.tm-div-treasury-deficit{font-size:0.64rem;color:var(--vermillion-400);padding:1px 5px;border:1px solid var(--vermillion-400);border-radius:8px;}
.tm-div-treasury-stock{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1;}
.tm-div-treasury-unit{font-size:0.66rem;font-weight:400;color:var(--color-foreground-muted);}
.tm-div-treasury-bar{height:5px;background:rgba(255,255,255,0.04);border-radius:3px;overflow:hidden;}
.tm-div-treasury-bar > div{height:100%;border-radius:3px;transition:width 0.4s var(--ease-out);}
.tm-div-treasury-quota{font-size:0.64rem;color:var(--color-foreground-muted);}
.tm-div-treasury-flow{font-size:0.66rem;display:flex;gap:8px;font-variant-numeric:tabular-nums;}
.tm-div-treasury-meta{margin-top:8px;padding:5px 10px;background:rgba(255,255,255,0.02);border-radius:3px;font-size:0.7rem;color:var(--color-foreground-muted);}

/* ═══ 区划弹窗·分组标题 ═══ */
.tm-div-group-header{margin:18px 0 4px 0;padding:6px 10px;font-family:var(--font-serif);font-size:0.71rem;letter-spacing:0.4em;color:var(--gold-300);text-align:center;position:relative;}
.tm-div-group-header::before,.tm-div-group-header::after{content:"";position:absolute;top:50%;width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent);}
.tm-div-group-header::before{left:50%;margin-left:-160px;}
.tm-div-group-header::after{right:50%;margin-right:-160px;background:linear-gradient(270deg,transparent,var(--gold-500),transparent);}
.tm-div-group-header[data-group="overview"]{color:var(--gold-300);}
.tm-div-group-header[data-group="fiscal"]{color:var(--gold-400);}
.tm-div-group-header[data-group="people"]{color:var(--celadon-400);}
.tm-div-group-header[data-group="govern"]{color:var(--indigo-400,#7986cb);}
.tm-div-group-header[data-group="people"]::before,.tm-div-group-header[data-group="people"]::after{background-image:linear-gradient(90deg,transparent,var(--celadon-500),transparent);}
.tm-div-group-header[data-group="govern"]::before,.tm-div-group-header[data-group="govern"]::after{background-image:linear-gradient(90deg,transparent,#7986cb,transparent);}

/* ═══ 区划弹窗·section 色域分类 ═══ */
.tm-div-section-econ .tm-div-section-icon{color:#9bc28e;}
.tm-div-section-econ .tm-div-section-name{color:#9bc28e;}
.tm-div-section-econ .tm-div-section-title::after{background:linear-gradient(90deg,#9bc28e,transparent);}

.tm-div-section-imperial .tm-div-section-icon{color:var(--vermillion-300);}
.tm-div-section-imperial .tm-div-section-name{color:var(--vermillion-300);}
.tm-div-section-imperial .tm-div-section-title::after{background:linear-gradient(90deg,var(--vermillion-400),transparent);}

.tm-div-section-infra .tm-div-section-icon{color:var(--indigo-400,#7986cb);}
.tm-div-section-infra .tm-div-section-name{color:var(--indigo-400,#7986cb);}
.tm-div-section-infra .tm-div-section-title::after{background:linear-gradient(90deg,#7986cb,transparent);}

.tm-div-section-land .tm-div-section-icon{color:#9bc28e;}
.tm-div-section-land .tm-div-section-name{color:#9bc28e;}
.tm-div-section-land .tm-div-section-title::after{background:linear-gradient(90deg,#9bc28e,transparent);}

.tm-div-section-revenue .tm-div-section-icon{color:var(--gold-300);}
.tm-div-section-revenue .tm-div-section-name{color:var(--gold-300);}
.tm-div-section-revenue .tm-div-section-title::after{background:linear-gradient(90deg,var(--gold-400),transparent);}

.tm-div-section-expense .tm-div-section-icon{color:var(--amber-400);}
.tm-div-section-expense .tm-div-section-name{color:var(--amber-400);}
.tm-div-section-expense .tm-div-section-title::after{background:linear-gradient(90deg,var(--amber-400),transparent);}

.tm-div-section-treasury .tm-div-section-icon{color:var(--gold-300);}
.tm-div-section-treasury .tm-div-section-name{color:var(--gold-300);}
.tm-div-section-treasury .tm-div-section-title::after{background:linear-gradient(90deg,var(--gold-400),transparent);}

.tm-div-section-people .tm-div-section-icon{color:var(--celadon-400);}
.tm-div-section-people .tm-div-section-name{color:var(--celadon-400);}
.tm-div-section-people .tm-div-section-title::after{background:linear-gradient(90deg,var(--celadon-400),transparent);}

.tm-div-section-env .tm-div-section-icon{color:#9bc28e;}
.tm-div-section-env .tm-div-section-name{color:#9bc28e;}
.tm-div-section-env .tm-div-section-title::after{background:linear-gradient(90deg,#9bc28e,transparent);}

.tm-div-section-disaster .tm-div-section-icon{color:var(--vermillion-300);}
.tm-div-section-disaster .tm-div-section-name{color:var(--vermillion-300);}
.tm-div-section-disaster .tm-div-section-title::after{background:linear-gradient(90deg,var(--vermillion-400),transparent);}

.tm-div-section-children .tm-div-section-icon{color:var(--indigo-400,#7986cb);}
.tm-div-section-children .tm-div-section-name{color:var(--indigo-400,#7986cb);}
.tm-div-section-children .tm-div-section-title::after{background:linear-gradient(90deg,#7986cb,transparent);}

/* ═══ 承载力·完整账 ═══ */
.tm-div-cc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;}
.tm-div-cc-card{padding:7px 9px;background:rgba(255,255,255,0.025);border-left:2px solid;border-radius:0 4px 4px 0;}
.tm-div-cc-label{font-size:0.66rem;color:var(--color-foreground-muted);letter-spacing:0.05em;}
.tm-div-cc-val{font-size:0.85rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums;}
.tm-div-cc-sub{font-size:0.62rem;color:var(--ink-400);margin-top:2px;}
.tm-div-cc-load{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(0,0,0,0.15);border-radius:5px;}
.tm-div-cc-load-label{font-size:0.7rem;color:var(--color-foreground-muted);letter-spacing:0.1em;}
.tm-div-cc-load-bar{flex:1;height:10px;background:rgba(255,255,255,0.05);border-radius:5px;overflow:hidden;display:flex;border:1px solid rgba(184,154,83,0.1);}
.tm-div-cc-load-bar > div{height:100%;}
.tm-div-cc-load-bar > div.overflow{box-shadow:inset 0 0 4px rgba(255,255,255,0.3);}
.tm-div-cc-load-val{font-size:0.85rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0.05em;min-width:42px;text-align:right;}
.tm-div-cc-regime{padding:2px 9px;font-size:0.68rem;letter-spacing:0.1em;border:1px solid;border-radius:9px;}
.tm-div-scars{margin-top:8px;padding:6px 10px;background:rgba(212,168,56,0.06);border-left:2px solid var(--amber-400);border-radius:0 3px 3px 0;}
.tm-div-scars-label{font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.12em;margin-bottom:4px;}
.tm-div-scars-list{display:flex;flex-wrap:wrap;gap:5px;}
.tm-div-scar-badge{display:inline-block;padding:2px 8px;font-size:0.66rem;letter-spacing:0.05em;border:1px solid;border-radius:10px;background:rgba(255,255,255,0.02);}

/* ═══ 田亩流转 ═══ */
.tm-div-landflow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;}
.tm-div-landflow-card{padding:8px 10px;background:rgba(255,255,255,0.025);border-left:2px solid;border-radius:0 4px 4px 0;}
.tm-div-landflow-label{font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.05em;display:flex;align-items:center;gap:4px;}
.tm-div-landflow-tag{font-size:0.62rem;padding:1px 4px;border:1px solid currentColor;border-radius:6px;color:var(--gold-d);letter-spacing:0.05em;font-weight:400;}
.tm-div-landflow-val{font-size:0.95rem;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums;}
.tm-div-landflow-sub{font-size:0.62rem;color:var(--ink-400);margin-top:2px;font-family:monospace;}
.tm-div-landflow-note{margin-top:8px;padding:6px 12px;background:rgba(184,154,83,0.04);border:1px solid rgba(184,154,83,0.15);border-radius:4px;font-size:0.68rem;color:var(--ink-300);line-height:1.6;letter-spacing:0.02em;font-style:italic;}

/* ═══ 子区清单 ═══ */
.tm-div-children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;}
.tm-div-child-card{padding:8px 10px;background:rgba(255,255,255,0.025);border:1px solid rgba(121,134,203,0.18);border-radius:5px;cursor:pointer;transition:all 0.15s var(--ease-out);}
.tm-div-child-card:hover{border-color:var(--indigo-400,#7986cb);background:rgba(121,134,203,0.08);transform:translateY(-1px);}
.tm-div-child-name{font-family:var(--font-serif);font-size:0.85rem;font-weight:700;color:var(--ink-100);letter-spacing:0.06em;}
.tm-div-child-level{font-size:0.62rem;color:var(--indigo-400,#7986cb);margin-top:2px;letter-spacing:0.05em;}
.tm-div-child-sub{font-size:0.66rem;color:var(--color-foreground-muted);margin-top:3px;}

/* ═══ 户龄结构 ═══ */
.tm-div-age-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.tm-div-age-card{padding:8px 10px;background:rgba(255,255,255,0.025);border-left:2px solid;border-radius:0 4px 4px 0;}
.tm-div-age-label{font-size:0.68rem;color:var(--color-foreground-muted);letter-spacing:0.05em;}
.tm-div-age-val{font-size:1rem;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums;}
.tm-div-age-sub{font-size:0.64rem;color:var(--ink-400);margin-top:2px;}

/* ═══ 田亩流转·delta + cumul ═══ */
.tm-div-landflow-delta{margin-top:8px;padding:7px 12px;background:linear-gradient(90deg,rgba(184,154,83,0.08),rgba(184,154,83,0.02));border:1px solid rgba(184,154,83,0.18);border-radius:5px;}
.tm-div-landflow-delta-label{font-size:0.68rem;color:var(--gold-300);letter-spacing:0.18em;font-weight:600;margin-bottom:4px;}
.tm-div-landflow-delta-rows{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.tm-div-landflow-delta-item{font-size:0.7rem;font-weight:600;letter-spacing:0.05em;font-variant-numeric:tabular-nums;}
.tm-div-landflow-delta-net{margin-left:auto;font-size:0.78rem;font-weight:700;padding:2px 9px;border:1px solid currentColor;border-radius:10px;font-variant-numeric:tabular-nums;}
.tm-div-landflow-cumul{margin-top:5px;padding:4px 12px;display:flex;flex-wrap:wrap;gap:14px;font-size:0.68rem;color:var(--ink-300);}
.tm-div-landflow-cumul-item{font-variant-numeric:tabular-nums;}

/* ═══ 地方实绩 (achievement) ═══ */
.tm-div-section-achievement .tm-div-section-icon,.tm-div-section-achievement .tm-div-section-name{color:var(--gold-300);}
.tm-div-section-achievement .tm-div-section-title::after{background:linear-gradient(90deg,var(--gold-400),transparent);}
.tm-div-achieve-list{display:flex;flex-direction:column;gap:5px;}
.tm-div-achieve-row{display:grid;grid-template-columns:120px 1fr 130px;gap:10px;align-items:center;padding:7px 12px;background:rgba(255,255,255,0.025);border:1px solid rgba(184,154,83,0.1);border-radius:5px;transition:border-color 0.15s;}
.tm-div-achieve-row:hover{border-color:var(--gold-500);}
.tm-div-achieve-label{font-size:0.72rem;font-weight:600;letter-spacing:0.05em;font-family:var(--font-serif);color:var(--ink-100);}
.tm-div-achieve-flow{display:flex;align-items:center;gap:8px;font-size:0.78rem;font-variant-numeric:tabular-nums;}
.tm-div-achieve-prev{color:var(--ink-400);text-decoration:line-through;text-decoration-color:rgba(157,145,125,0.4);}
.tm-div-achieve-arrow{font-size:0.85rem;}
.tm-div-achieve-now{font-weight:700;}
.tm-div-achieve-unit{font-size:0.64rem;color:var(--ink-400);font-weight:400;}
.tm-div-achieve-delta{font-size:0.82rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;}
.tm-div-achieve-pct{font-size:0.66rem;font-weight:400;opacity:0.85;}
.tm-div-achieve-narr{grid-column:1 / -1;font-size:0.66rem;color:var(--gold-400);letter-spacing:0.05em;font-style:italic;padding-left:4px;border-left:2px solid var(--gold-500);margin-top:2px;}

/* ═══ 帑廪面板·top contributors ═══ */
.gk-top-contrib{display:inline-block;padding:0 4px;border-radius:2px;cursor:pointer;color:var(--gold-300);transition:all 0.12s var(--ease-out);}
.gk-top-contrib:hover{background:rgba(184,154,83,0.12);color:var(--gold-300);text-decoration:underline dotted;}


/* ═══════════════════════════════════════════════════════════════
   变量面板精炼·御宝鎏金·素雅（落运行时·只动样式·加性 override·2026-06-21）
   惠及全部七变量抽屉(.var-drawer + .tr-*)：数字→细劲宋体象牙白、Hero 徽圆→方朱泥浮雕、
   分段名〔〕→朱金竖条、态 pill 圆→近方。状态色(up/down/warn/bad)保留。可由 .bak-pre-beautify 还原。
   ═══════════════════════════════════════════════════════════════ */
.tr-hero-amount,.tr-qs-val,.tr-led-stock,.tr-row .rv{font-family:"Songti SC","STSong","SimSun",serif!important;font-variant-numeric:tabular-nums!important;}
.tr-hero-amount{color:#f3ecdd!important;font-weight:600!important;text-shadow:none!important;}
.tr-hero-amount.warn{color:#f0c97a!important;text-shadow:none!important;}
.tr-hero-amount.bad{color:#e6584b!important;text-shadow:none!important;}
.tr-qs-val{color:#f3ecdd!important;}
.tr-qs-val.up{color:#a9d18e!important;}
.tr-qs-val.down{color:#e6584b!important;}
.tr-qs-val.warn{color:#f0c97a!important;}
.tr-led.money .tr-led-stock,.tr-led.grain .tr-led-stock,.tr-led.cloth .tr-led-stock{color:#f3ecdd!important;}
.tr-hero-glyph{border-radius:4px!important;border:1.5px solid #f0d597!important;color:#fdf3da!important;text-shadow:0 1px 1px rgba(60,10,8,.6)!important;background:radial-gradient(125% 125% at 30% 22%,#c14034,#a8312a 44%,#76190f)!important;box-shadow:inset 0 0 0 1px rgba(247,228,180,.32),inset 0 -5px 10px rgba(60,10,8,.5),0 2px 9px rgba(110,28,20,.4)!important;}
.tr-hero-glyph.imperial{border-color:#f0d597!important;color:#fdf3da!important;background:radial-gradient(125% 125% at 30% 22%,#c14034,#a8312a 44%,#76190f)!important;}
.tr-section-name{position:relative!important;padding-left:13px!important;color:#f0d597!important;}
.tr-section-name::before{content:""!important;position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:4px!important;height:13px!important;border-radius:1px!important;margin:0!important;background:linear-gradient(180deg,#f0d597,#a8312a)!important;}
.tr-section-name::after{content:""!important;display:none!important;}
.tr-section-name.bad::before{background:linear-gradient(180deg,#f0938a,#76190f)!important;}
.tr-pill{border-radius:2px!important;}

/* ═══════════════════════════════════════════════════════════════
   信息栏 tooltip 精炼·御宝鎏金·素雅（落运行时·加性 override·2026-06-21）
   .bar-var-tip(.rich)：富版徽圆→方朱泥印、去角花(用户否过的装饰)、数字→宋体象牙、
   态 pill/alert 圆→近方、顶缘金光边。状态色保留。可由 .bak-pre-beautify 还原。
   ═══════════════════════════════════════════════════════════════ */
.bar-var-tip.rich .bvt-glyph,.bar-var-tip.rich.imperial .bvt-glyph{border-radius:4px!important;border:1.4px solid #f0d597!important;color:#fdf3da!important;text-shadow:0 1px 1px rgba(60,10,8,.6)!important;background:radial-gradient(125% 125% at 30% 22%,#c14034,#a8312a 44%,#76190f)!important;box-shadow:inset 0 0 0 1px rgba(247,228,180,.3)!important;}
.bar-var-tip.rich::before,.bar-var-tip.rich::after{display:none!important;}
.bar-var-tip.rich{box-shadow:inset 0 1px 0 rgba(240,213,151,.22),0 18px 44px rgba(0,0,0,.6)!important;}
.bvt-s-val,.bvt-f-val,.bar-var-tip-row .val{font-family:"Songti SC","STSong","SimSun",serif!important;font-variant-numeric:tabular-nums!important;}
.bvt-stock.gold .bvt-s-val,.bvt-stock.celadon .bvt-s-val,.bvt-stock.amber .bvt-s-val{color:#f3ecdd!important;}
.bvt-pill,.bvt-alert{border-radius:2px!important;}
.bar-var-tip-title{letter-spacing:.08em!important;}

/* ══════ 廷议 faithful landing·立场板七档真立绘（对齐 preview/tingyi-preview.html·TM 书法字 + 鎏金·scoped #chaoyi-modal.cy-mode-tinyi·压最后必胜） ══════ */
#chaoyi-modal.cy-mode-tinyi > div{max-width:1240px!important;width:96%!important;height:90vh!important;background:linear-gradient(180deg,rgba(255,236,200,.04),transparent 8%),linear-gradient(178deg,#1d160e,#140e08 60%,#0b0805)!important;border:1px solid rgba(207,173,101,.34)!important;border-radius:5px!important;}
/* 顶栏 */
#chaoyi-modal.cy-mode-tinyi > div > div:first-child{background:linear-gradient(180deg,rgba(207,173,101,.07),transparent)!important;border-bottom:1px solid rgba(207,173,101,.2)!important;gap:13px;}
#chaoyi-modal.cy-mode-tinyi #cy-mode-label{display:flex;align-items:center;gap:13px;font-size:inherit!important;font-weight:400!important;color:inherit!important;}
#chaoyi-modal.cy-mode-tinyi .ty-seal{width:40px;height:40px;flex:none;border-radius:4px;display:grid;place-items:center;font-size:23px;font-family:"TM-MaShanZheng","STKaiti",serif;color:#fdf3da;border:1.4px solid #f0d597;background:radial-gradient(125% 125% at 30% 22%,#c14034,#a8312a 46%,#76190f);box-shadow:inset 0 0 0 1px rgba(247,228,180,.3),inset 0 -3px 6px rgba(60,10,8,.5);}
#chaoyi-modal.cy-mode-tinyi .ty-htitle{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:23px;letter-spacing:.12em;background:linear-gradient(120deg,#fbf2d4,#e9cd84 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#chaoyi-modal.cy-mode-tinyi .ty-ttype{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12px;color:#e0a850;padding:3px 9px;border:1px solid rgba(224,168,80,.4);border-radius:2px;background:rgba(120,80,20,.16);}
#chaoyi-modal.cy-mode-tinyi > div > div:first-child .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;border:1px solid rgba(207,173,101,.3)!important;background:rgba(20,14,8,.6)!important;color:#a98f55!important;}
/* 主体布局 */
#chaoyi-modal.cy-mode-tinyi .ty-row{display:flex;flex:1;min-height:0;overflow:hidden;}
#chaoyi-modal.cy-mode-tinyi .ty-actor{flex:0 0 27%;position:relative;display:flex;flex-direction:column;border-right:1px solid rgba(207,173,101,.2);background:linear-gradient(180deg,#13160d,#0c0a06);}
#chaoyi-modal.cy-mode-tinyi .ty-main{flex:1;display:flex;flex-direction:column;min-width:0;background:linear-gradient(180deg,#120d07,#0d0905);}
#chaoyi-modal.cy-mode-tinyi #cy-topic{display:block!important;border-bottom:1px solid rgba(207,173,101,.2)!important;background:linear-gradient(180deg,#211810,#140d07)!important;color:#a98f55!important;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;font-size:0.6771rem!important;letter-spacing:.05em;}
#chaoyi-modal.cy-mode-tinyi #cy-topic b{color:#f0d597;font-weight:400;}
#chaoyi-modal.cy-mode-tinyi .ty-topic-lab{color:#7e6d45;}
#chaoyi-modal.cy-mode-tinyi #cy-body{flex:1;}
/* 左·当前陈词者立绘 */
#chaoyi-modal.cy-mode-tinyi .ty-actor-stage{flex:1;position:relative;overflow:hidden;}
#chaoyi-modal.cy-mode-tinyi .ty-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;filter:saturate(.97) contrast(1.03) brightness(.97);-webkit-mask:linear-gradient(180deg,#000 0,#000 56%,rgba(0,0,0,.5) 85%,transparent 100%);mask:linear-gradient(180deg,#000 0,#000 56%,rgba(0,0,0,.5) 85%,transparent 100%);}
#chaoyi-modal.cy-mode-tinyi .ty-actor-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 22%,transparent 52%,rgba(10,16,8,.55) 100%);}
#chaoyi-modal.cy-mode-tinyi .ty-actor-frame{position:absolute;inset:9px;border:1px solid rgba(169,209,142,.28);border-radius:2px;pointer-events:none;}
#chaoyi-modal.cy-mode-tinyi .ty-actor-frame:before{content:"";position:absolute;top:-1px;left:-1px;width:12px;height:12px;border:1px solid #a9d18e;border-width:1px 0 0 1px;opacity:.6;}
#chaoyi-modal.cy-mode-tinyi .ty-actor-tag{position:absolute;top:11px;left:12px;z-index:3;font-size:10px;color:#a9d18e;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;letter-spacing:.06em;padding:3px 8px;border:1px solid rgba(111,154,95,.4);border-radius:2px;background:rgba(12,14,8,.72);}
#chaoyi-modal.cy-mode-tinyi .ty-actor-plate{position:relative;z-index:3;padding:11px 14px 13px;border-top:1px solid rgba(207,173,101,.2);background:linear-gradient(180deg,rgba(6,8,3,.4),rgba(6,8,3,.72));}
#chaoyi-modal.cy-mode-tinyi .ty-actor-nm{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:22px;letter-spacing:.08em;background:linear-gradient(120deg,#fbf2d4,#e9cd84 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#chaoyi-modal.cy-mode-tinyi .ty-stance-pill{font-size:11px;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;letter-spacing:.05em;padding:2px 8px;border-radius:2px;margin-left:8px;}
#chaoyi-modal.cy-mode-tinyi .ty-stance-pill.high{color:#a9d18e;border:1px solid rgba(169,209,142,.5);background:rgba(111,154,95,.14);}
#chaoyi-modal.cy-mode-tinyi .ty-stance-pill.opp{color:#e6a07a;border:1px solid rgba(207,80,66,.5);background:rgba(118,25,15,.16);}
#chaoyi-modal.cy-mode-tinyi .ty-stance-pill.med{color:#e0a850;border:1px solid rgba(224,168,80,.5);background:rgba(120,80,20,.16);}
#chaoyi-modal.cy-mode-tinyi .ty-stance-pill.neu{color:#9a9384;border:1px solid rgba(154,147,132,.45);background:rgba(80,74,64,.14);}
#chaoyi-modal.cy-mode-tinyi .ty-actor-sub{font-size:12px;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;margin-top:5px;letter-spacing:.04em;}
/* 立场板（魂） */
#chaoyi-modal.cy-mode-tinyi .ty-board{padding:11px 15px 12px;border-bottom:1px solid rgba(207,173,101,.2);background:linear-gradient(180deg,rgba(207,173,101,.05),transparent);position:static;}
#chaoyi-modal.cy-mode-tinyi .ty-board-h{display:flex;align-items:center;gap:12px;margin-bottom:9px;}
#chaoyi-modal.cy-mode-tinyi .ty-bt{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:15px;letter-spacing:.12em;color:#f0d597;}
#chaoyi-modal.cy-mode-tinyi .ty-rd{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11px;color:#7e6d45;}
#chaoyi-modal.cy-mode-tinyi .ty-tally{margin-left:auto;display:flex;gap:11px;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11.5px;}
#chaoyi-modal.cy-mode-tinyi .ty-tally .sup{color:#a9d18e;}
#chaoyi-modal.cy-mode-tinyi .ty-tally .neu{color:#9a9384;}
#chaoyi-modal.cy-mode-tinyi .ty-tally .opp{color:#cf5042;}
#chaoyi-modal.cy-mode-tinyi .ty-tally .med{color:#e0a850;}
#chaoyi-modal.cy-mode-tinyi .ty-spectrum{display:flex;gap:4px;}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col{flex:1;display:flex;flex-direction:column;border-radius:3px;padding:4px 3px 6px;min-height:114px;border:1px solid transparent;}
#chaoyi-modal.cy-mode-tinyi .ty-cl{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:9.5px;text-align:center;margin-bottom:5px;letter-spacing:.02em;white-space:nowrap;}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-sup{background:linear-gradient(180deg,rgba(111,154,95,.12),transparent);border-color:rgba(111,154,95,.18);}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-sup .ty-cl{color:#a9d18e;}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-neu{background:linear-gradient(180deg,rgba(154,147,132,.1),transparent);border-color:rgba(154,147,132,.18);}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-neu .ty-cl{color:#9a9384;}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-opp{background:linear-gradient(180deg,rgba(207,80,66,.12),transparent);border-color:rgba(207,80,66,.18);}
#chaoyi-modal.cy-mode-tinyi .ty-spec-col.z-opp .ty-cl{color:#cf5042;}
#chaoyi-modal.cy-mode-tinyi .ty-spec-chips{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-content:flex-start;}
#chaoyi-modal.cy-mode-tinyi .ty-schip{width:30px;display:flex;flex-direction:column;align-items:center;gap:1px;position:relative;cursor:pointer;}
#chaoyi-modal.cy-mode-tinyi .ty-sf{width:27px;height:33px;border-radius:2px;overflow:hidden;border:1px solid #564a2e;background:#100b06;}
#chaoyi-modal.cy-mode-tinyi .ty-sf img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;filter:saturate(.85) brightness(.82);}
#chaoyi-modal.cy-mode-tinyi .ty-sf-ph{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-family:"TM-MaShanZheng","STKaiti",serif;color:#7e6d45;font-size:14px;}
#chaoyi-modal.cy-mode-tinyi .ty-sn{font-size:8px;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;white-space:nowrap;max-width:34px;overflow:hidden;text-overflow:ellipsis;}
#chaoyi-modal.cy-mode-tinyi .ty-schip.z-sup .ty-sf{border-color:rgba(111,154,95,.5);}
#chaoyi-modal.cy-mode-tinyi .ty-schip.z-opp .ty-sf{border-color:rgba(207,80,66,.45);}
#chaoyi-modal.cy-mode-tinyi .ty-schip.z-med .ty-sf{border-color:rgba(224,168,80,.5);}
#chaoyi-modal.cy-mode-tinyi .ty-schip.moved .ty-sf{box-shadow:0 0 0 1px #f0d597,0 0 8px rgba(207,173,101,.5);}
#chaoyi-modal.cy-mode-tinyi .ty-schip.speaking .ty-sf{box-shadow:0 0 0 2px #f0d597,0 0 12px rgba(207,173,101,.6);}
#chaoyi-modal.cy-mode-tinyi .ty-schip.speaking .ty-sn{color:#fdf3da;}
#chaoyi-modal.cy-mode-tinyi .ty-mv{position:absolute;top:-6px;right:-3px;font-size:11px;font-weight:bold;line-height:1;text-shadow:0 0 3px #000;z-index:2;}
#chaoyi-modal.cy-mode-tinyi .ty-mv.up{color:#a9d18e;}
#chaoyi-modal.cy-mode-tinyi .ty-mv.down{color:#cf5042;}
#chaoyi-modal.cy-mode-tinyi .ty-aux-row{display:flex;gap:4px;margin-top:5px;}
#chaoyi-modal.cy-mode-tinyi .ty-aux-col{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:3px;border:1px dashed;}
#chaoyi-modal.cy-mode-tinyi .ty-aux-col.med{border-color:rgba(224,168,80,.4);background:rgba(120,80,20,.1);}
#chaoyi-modal.cy-mode-tinyi .ty-aux-col.alt{border-color:rgba(142,154,196,.4);background:rgba(60,70,110,.1);}
#chaoyi-modal.cy-mode-tinyi .ty-al{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:10px;}
#chaoyi-modal.cy-mode-tinyi .ty-aux-col.med .ty-al{color:#e0a850;}
#chaoyi-modal.cy-mode-tinyi .ty-aux-col.alt .ty-al{color:#8e9ac4;}
#chaoyi-modal.cy-mode-tinyi .ty-achips{display:flex;gap:3px;}
/* 辩论气泡（addCYBubble 产物·scoped 覆盖 inline·:not(#ty2-stance-board) 排除立场板） */
#chaoyi-modal.cy-mode-tinyi #cy-body > div:not(#ty2-stance-board) > img,
#chaoyi-modal.cy-mode-tinyi #cy-body > div:not(#ty2-stance-board) > div:first-child{display:none!important;}   /* 廷议辩论流对齐预览·无头像奏章式（立场板已铺全员头像·气泡通栏） */
#chaoyi-modal.cy-mode-tinyi #cy-body > div:not(#ty2-stance-board) > div:last-child{flex:1;min-width:0;}
#chaoyi-modal.cy-mode-tinyi #cy-body > div:not(#ty2-stance-board) > div:last-child > div:first-child{font-family:"TM-MaShanZheng","STKaiti",serif!important;color:#a98f55!important;font-size:12px!important;letter-spacing:.05em;}
#chaoyi-modal.cy-mode-tinyi .cy-bubble{background:linear-gradient(180deg,#201810,#181109)!important;border:1px solid rgba(207,173,101,.18)!important;border-left:2px solid rgba(207,173,101,.4)!important;border-radius:3px 11px 11px 11px!important;color:#d8cdba!important;font-family:"Songti SC","STSong","SimSun",serif!important;font-size:0.7292rem!important;line-height:1.85!important;padding:9px 13px!important;}
/* 输入 + 裁决 footer */
#chaoyi-modal.cy-mode-tinyi #cy-input-row{background:linear-gradient(180deg,#140e08,#0e0a06)!important;border-top:1px solid rgba(207,173,101,.2)!important;}
#chaoyi-modal.cy-mode-tinyi #cy-player-input{background:linear-gradient(180deg,#140e08,#0e0a06)!important;border:1px solid rgba(207,173,101,.28)!important;color:#f4eddf!important;font-family:"Songti SC","STSong","SimSun",serif!important;border-radius:3px;}
#chaoyi-modal.cy-mode-tinyi #cy-player-input::placeholder{color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#chaoyi-modal.cy-mode-tinyi #cy-input-row .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;}
#chaoyi-modal.cy-mode-tinyi #cy-footer{border-top:1px solid rgba(207,173,101,.2)!important;background:linear-gradient(180deg,rgba(207,173,101,.04),transparent)!important;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#chaoyi-modal.cy-mode-tinyi #cy-footer .bt{font-family:"TM-MaShanZheng","STKaiti",serif!important;font-size:0.7813rem;letter-spacing:.06em;padding:7px 15px!important;border-radius:3px!important;border:1px solid #564a2e!important;background:linear-gradient(180deg,#241c11,#130d07)!important;color:#cdab63!important;}
#chaoyi-modal.cy-mode-tinyi #cy-footer .bt:hover{border-color:#f0d597!important;color:#f0d597!important;}
#chaoyi-modal.cy-mode-tinyi #cy-footer .bt.bp{color:#1c1408!important;border-color:#f0d597!important;background:linear-gradient(180deg,#f0d597,#caa258)!important;}
#chaoyi-modal.cy-mode-tinyi #cy-footer .bt[style*="vermillion"]{color:#e6a07a!important;border-color:rgba(207,80,66,.45)!important;background:linear-gradient(180deg,#241410,#160a07)!important;}
/* 顶栏内联议题/类型/轮次 + 左栏操作按钮（对齐预览） */
#chaoyi-modal.cy-mode-tinyi .ty-dlg-topic{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12.5px;color:#a98f55;letter-spacing:.05em;padding:3px 10px;border:1px solid #564a2e;border-radius:2px;background:linear-gradient(180deg,#211810,#140d07);white-space:nowrap;}
#chaoyi-modal.cy-mode-tinyi .ty-dlg-topic .ty-topic-lab{color:#7e6d45;}
#chaoyi-modal.cy-mode-tinyi .ty-dlg-topic b{color:#f0d597;font-weight:400;}
#chaoyi-modal.cy-mode-tinyi .ty-round-tag{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;font-size:12px!important;color:#a98f55!important;}
#chaoyi-modal.cy-mode-tinyi .ty-round-tag b{color:#f0d597;font-weight:400;}
#chaoyi-modal.cy-mode-tinyi .ty-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
#chaoyi-modal.cy-mode-tinyi .ty-acts .ty-bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11.5px;letter-spacing:.03em;padding:5px 10px;border-radius:2px;cursor:pointer;border:1px solid #564a2e;background:linear-gradient(180deg,#241c11,#130d07);color:#a98f55;transition:all .15s;white-space:nowrap;}
#chaoyi-modal.cy-mode-tinyi .ty-acts .ty-bt:hover{border-color:#cdab63;color:#f0d597;}
#chaoyi-modal.cy-mode-tinyi .ty-acts .ty-bt.key{color:#f0d597;border-color:rgba(207,173,101,.5);}
/* 辩论气泡立场彩色（data-stance 左边框 + name 立场标签·对齐预览 fb sup/opp/med） */
#chaoyi-modal.cy-mode-tinyi #cy-body > div[data-stance] .cy-bubble{border-left-width:2px!important;}
#chaoyi-modal.cy-mode-tinyi #cy-body > div[data-stance=sup] .cy-bubble{border-left-color:rgba(111,154,95,.6)!important;}
#chaoyi-modal.cy-mode-tinyi #cy-body > div[data-stance=opp] .cy-bubble{border-left-color:rgba(207,80,66,.55)!important;}
#chaoyi-modal.cy-mode-tinyi #cy-body > div[data-stance=med] .cy-bubble{border-left-color:rgba(224,168,80,.6)!important;}
#chaoyi-modal.cy-mode-tinyi #cy-body > div[data-stance=alt] .cy-bubble{border-left-color:rgba(142,154,196,.6)!important;}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:9px;padding:0 5px;border-radius:2px;margin-left:6px;white-space:nowrap;}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp.sup{color:#a9d18e;border:1px solid rgba(169,209,142,.4);}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp.opp{color:#e6a07a;border:1px solid rgba(207,80,66,.4);}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp.med{color:#e0a850;border:1px solid rgba(224,168,80,.4);}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp.alt{color:#8e9ac4;border:1px solid rgba(142,154,196,.4);}
#chaoyi-modal.cy-mode-tinyi .ty-fb-sp.neu{color:#9a9384;border:1px solid rgba(154,147,132,.4);}

/* ══════ 御前会议 faithful landing·烛火密室·坦白度·心腹列（对齐 preview/yuqian-preview.html·scoped #chaoyi-modal.cy-mode-yuqian·压最后必胜） ══════ */
@keyframes yqFlick{0%,100%{opacity:.85;transform:scale(1)}45%{opacity:1;transform:scale(1.12)}70%{opacity:.78;transform:scale(.95)}}
#chaoyi-modal.cy-mode-yuqian > div{max-width:1240px!important;width:96%!important;height:90vh!important;background:linear-gradient(180deg,rgba(180,120,50,.04),transparent 8%),linear-gradient(178deg,#16110a,#100b07 55%,#080604)!important;border:1px solid rgba(207,173,101,.26)!important;border-radius:5px!important;}
/* 顶栏（密印=暗金·非朱砂） */
#chaoyi-modal.cy-mode-yuqian > div > div:first-child{background:linear-gradient(180deg,rgba(120,40,20,.1),transparent)!important;border-bottom:1px solid rgba(207,173,101,.17)!important;gap:13px;}
#chaoyi-modal.cy-mode-yuqian #cy-mode-label{display:flex;align-items:center;gap:13px;font-size:inherit!important;font-weight:400!important;color:inherit!important;}
#chaoyi-modal.cy-mode-yuqian .yq-seal{width:40px;height:40px;flex:none;border-radius:4px;display:grid;place-items:center;font-size:22px;font-family:"TM-MaShanZheng","STKaiti",serif;color:#fdf3da;border:1.4px solid #f0d597;background:radial-gradient(125% 125% at 30% 22%,#2a2018,#160f08);box-shadow:inset 0 0 0 1px rgba(247,228,180,.22),0 0 12px rgba(232,168,80,.25);}
#chaoyi-modal.cy-mode-yuqian .yq-htitle{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:23px;letter-spacing:.12em;background:linear-gradient(120deg,#f6eccf,#e0bf7a 50%,#b08840);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#chaoyi-modal.cy-mode-yuqian .yq-ttype{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12px;color:#e08a6a;padding:3px 9px;border:1px solid rgba(193,64,52,.4);border-radius:2px;background:rgba(118,25,15,.18);margin-right:6px;}
#chaoyi-modal.cy-mode-yuqian .yq-norec{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12px;color:#cf5042;letter-spacing:.06em;padding:3px 11px;border:1px solid rgba(207,80,66,.45);border-radius:2px;background:rgba(118,25,15,.2);}
#chaoyi-modal.cy-mode-yuqian > div > div:first-child .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;border:1px solid rgba(207,173,101,.3)!important;background:rgba(18,11,7,.6)!important;color:#a98f55!important;}
/* 布局 */
#chaoyi-modal.cy-mode-yuqian .yq-row{display:flex;flex:1;min-height:0;overflow:hidden;}
#chaoyi-modal.cy-mode-yuqian .yq-actor{flex:0 0 29%;position:relative;display:flex;flex-direction:column;border-right:1px solid rgba(207,173,101,.17);background:radial-gradient(70% 44% at 50% 30%,rgba(200,130,50,.16),transparent 60%),linear-gradient(180deg,#140d07,#0a0704);}
#chaoyi-modal.cy-mode-yuqian .yq-main{flex:1;display:flex;flex-direction:column;min-width:0;background:linear-gradient(180deg,#0f0a06,#0a0705);}
#chaoyi-modal.cy-mode-yuqian #cy-topic{display:block!important;border-bottom:1px solid rgba(207,173,101,.17)!important;background:linear-gradient(180deg,#1c150d,#120c07)!important;color:#a98f55!important;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;font-size:0.6771rem!important;letter-spacing:.05em;}
#chaoyi-modal.cy-mode-yuqian #cy-topic b{color:#f0d597;font-weight:400;}
#chaoyi-modal.cy-mode-yuqian .yq-topic-lab{color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian #cy-body{flex:1;}
/* 左·烛火密室立绘 */
#chaoyi-modal.cy-mode-yuqian .yq-actor-stage{flex:1;position:relative;overflow:hidden;}
#chaoyi-modal.cy-mode-yuqian .yq-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;filter:saturate(.92) contrast(1.05) brightness(.84);-webkit-mask:linear-gradient(180deg,#000 0,#000 55%,rgba(0,0,0,.45) 84%,transparent 100%);mask:linear-gradient(180deg,#000 0,#000 55%,rgba(0,0,0,.45) 84%,transparent 100%);}
#chaoyi-modal.cy-mode-yuqian .yq-actor-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(110% 75% at 50% 24%,transparent 42%,rgba(8,5,3,.7) 100%);}
#chaoyi-modal.cy-mode-yuqian .yq-candle{position:absolute;top:14px;right:16px;z-index:3;width:8px;height:8px;border-radius:50%;background:#ffd98a;box-shadow:0 0 14px 5px rgba(232,168,80,.6),0 0 30px 10px rgba(232,140,40,.28);animation:yqFlick 2.6s ease-in-out infinite;}
#chaoyi-modal.cy-mode-yuqian .yq-actor-tag{position:absolute;top:11px;left:12px;z-index:3;font-size:10px;color:#e8a850;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;letter-spacing:.06em;padding:3px 8px;border:1px solid #4e4329;border-radius:2px;background:rgba(10,7,4,.74);}
#chaoyi-modal.cy-mode-yuqian .yq-actor-plate{position:relative;z-index:3;padding:11px 14px 13px;border-top:1px solid rgba(207,173,101,.17);background:linear-gradient(180deg,rgba(5,3,2,.45),rgba(5,3,2,.78));}
#chaoyi-modal.cy-mode-yuqian .yq-actor-nm{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:22px;letter-spacing:.08em;background:linear-gradient(120deg,#f6eccf,#e0bf7a 50%,#b08840);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
#chaoyi-modal.cy-mode-yuqian .yq-candor-pill{font-size:11px;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;letter-spacing:.04em;padding:2px 8px;border-radius:2px;margin-left:8px;}
#chaoyi-modal.cy-mode-yuqian .yq-candor-pill.high{color:#a9d18e;border:1px solid rgba(169,209,142,.5);background:rgba(111,154,95,.14);}
#chaoyi-modal.cy-mode-yuqian .yq-candor-pill.mid{color:#f0d597;border:1px solid rgba(207,173,101,.45);background:rgba(207,173,101,.1);}
#chaoyi-modal.cy-mode-yuqian .yq-candor-pill.low{color:#8f8676;border:1px solid rgba(143,134,118,.4);background:rgba(80,74,64,.14);}
#chaoyi-modal.cy-mode-yuqian .yq-actor-sub{font-size:12px;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;margin-top:5px;letter-spacing:.04em;}
/* 坦白度条 */
#chaoyi-modal.cy-mode-yuqian .yq-candor-meter{margin-top:8px;}
#chaoyi-modal.cy-mode-yuqian .yq-cm-l{font-size:10px;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;margin-bottom:3px;}
#chaoyi-modal.cy-mode-yuqian .yq-cm-l b{color:#a9d18e;font-weight:400;}
#chaoyi-modal.cy-mode-yuqian .yq-cm-bar{height:5px;border-radius:3px;background:#1c140b;box-shadow:inset 0 0 0 .6px #4e4329;overflow:hidden;}
#chaoyi-modal.cy-mode-yuqian .yq-cm-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#6f9a5f,#a9d18e);transition:width .4s;}
#chaoyi-modal.cy-mode-yuqian .yq-cm-fill.mid{background:linear-gradient(90deg,#7e6d45,#f0d597);}
#chaoyi-modal.cy-mode-yuqian .yq-cm-fill.low{background:linear-gradient(90deg,#4e4329,#8f8676);}
/* 心腹列 */
#chaoyi-modal.cy-mode-yuqian .yq-inner{padding:10px 15px;border-bottom:1px solid rgba(207,173,101,.17);background:linear-gradient(180deg,rgba(120,40,20,.06),transparent);}
#chaoyi-modal.cy-mode-yuqian .yq-inner-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
#chaoyi-modal.cy-mode-yuqian .yq-it{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:14px;letter-spacing:.1em;color:#f0d597;}
#chaoyi-modal.cy-mode-yuqian .yq-isub{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:10.5px;color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian .yq-rec{margin-left:auto;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11px;padding:2px 9px;border-radius:2px;}
#chaoyi-modal.cy-mode-yuqian .yq-rec.keep{color:#a98f55;border:1px solid #4e4329;background:rgba(207,173,101,.08);}
#chaoyi-modal.cy-mode-yuqian .yq-rec.secret{color:#cf5042;border:1px solid rgba(207,80,66,.45);background:rgba(118,25,15,.2);}
#chaoyi-modal.cy-mode-yuqian .yq-confidants{display:flex;gap:9px;flex-wrap:wrap;}
#chaoyi-modal.cy-mode-yuqian .yq-cf{display:flex;flex-direction:column;align-items:center;gap:3px;width:58px;position:relative;cursor:pointer;}
#chaoyi-modal.cy-mode-yuqian .yq-cff{width:46px;height:56px;border-radius:2px;overflow:hidden;border:1px solid #4e4329;background:#0d0905;}
#chaoyi-modal.cy-mode-yuqian .yq-cff img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;filter:saturate(.85) brightness(.8);}
#chaoyi-modal.cy-mode-yuqian .yq-cf-ph{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-family:"TM-MaShanZheng","STKaiti",serif;color:#7e6d45;font-size:18px;}
#chaoyi-modal.cy-mode-yuqian .yq-cfn{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:11px;color:#ccc1ad;letter-spacing:.04em;}
#chaoyi-modal.cy-mode-yuqian .yq-cfc{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:8.5px;white-space:nowrap;}
#chaoyi-modal.cy-mode-yuqian .yq-cf.high .yq-cfc{color:#a9d18e;}
#chaoyi-modal.cy-mode-yuqian .yq-cf.mid .yq-cfc{color:#a98f55;}
#chaoyi-modal.cy-mode-yuqian .yq-cf.low .yq-cfc{color:#8f8676;}
#chaoyi-modal.cy-mode-yuqian .yq-cf.on .yq-cff{border-color:#e8a850;box-shadow:0 0 0 1px #e8a850,0 0 11px rgba(232,168,80,.45);}
#chaoyi-modal.cy-mode-yuqian .yq-cf.on .yq-cff img{filter:saturate(1) brightness(1);}
#chaoyi-modal.cy-mode-yuqian .yq-cf.on:after{content:"深言";position:absolute;top:-7px;right:-2px;font-size:8px;color:#1c1408;background:#e8a850;font-family:"TM-ZCOOL-XiaoWei",serif;padding:0 4px;border-radius:1px;}
#chaoyi-modal.cy-mode-yuqian .yq-excluded{margin-top:9px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:10.5px;color:#8f8676;letter-spacing:.02em;border-top:1px dashed #4e4329;padding-top:7px;}
#chaoyi-modal.cy-mode-yuqian .yq-excluded b{color:#b98b6a;font-weight:400;}
#chaoyi-modal.cy-mode-yuqian .yq-excluded .pen{color:#cf5042;}
#chaoyi-modal.cy-mode-yuqian .yq-leak{margin-left:auto;display:flex;align-items:center;gap:7px;color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian .yq-leak-bar{width:84px;height:5px;border-radius:3px;background:#1c140b;box-shadow:inset 0 0 0 .6px #4e4329;overflow:hidden;display:inline-block;}
#chaoyi-modal.cy-mode-yuqian .yq-leak-bar em{display:block;height:100%;background:linear-gradient(90deg,#7e6d45,#cf5042);}
#chaoyi-modal.cy-mode-yuqian .yq-leak b{color:#cf5042;font-weight:400;}
/* 密谈气泡（addCYBubble 产物·烛火纸笺·:not 排除心腹列） */
#chaoyi-modal.cy-mode-yuqian #cy-body > div:not(#yq2-inner-board) > img{width:36px!important;height:44px!important;border-radius:2px!important;object-fit:cover;object-position:50% 12%;border:1px solid #4e4329!important;margin-top:20px;filter:brightness(.85);}
#chaoyi-modal.cy-mode-yuqian #cy-body > div:not(#yq2-inner-board) > div:first-child{width:36px!important;height:44px!important;border-radius:2px!important;margin-top:20px;border:1px solid #4e4329!important;background:#1a130b!important;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div:not(#yq2-inner-board) > div:last-child > div:first-child{font-family:"TM-MaShanZheng","STKaiti",serif!important;color:#a98f55!important;font-size:12px!important;letter-spacing:.05em;}
#chaoyi-modal.cy-mode-yuqian .cy-bubble{background:linear-gradient(180deg,#1c1610,#15100a)!important;border:1px solid rgba(207,173,101,.18)!important;border-radius:3px 11px 11px 11px!important;color:#ccc1ad!important;font-family:"Songti SC","STSong","SimSun",serif!important;font-size:0.7292rem!important;line-height:1.82!important;padding:10px 14px!important;}
/* 输入 + 决断 footer */
#chaoyi-modal.cy-mode-yuqian #cy-input-row{background:linear-gradient(180deg,#140e08,#0e0a06)!important;border-top:1px solid rgba(207,173,101,.17)!important;}
#chaoyi-modal.cy-mode-yuqian #cy-player-input{background:linear-gradient(180deg,#140e08,#0e0a06)!important;border:1px solid rgba(207,173,101,.28)!important;color:#efe6d4!important;font-family:"Songti SC","STSong","SimSun",serif!important;border-radius:3px;}
#chaoyi-modal.cy-mode-yuqian #cy-player-input::placeholder{color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#chaoyi-modal.cy-mode-yuqian #cy-input-row .bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif!important;}
#chaoyi-modal.cy-mode-yuqian #cy-footer{border-top:1px solid rgba(207,173,101,.17)!important;background:linear-gradient(180deg,rgba(120,40,20,.06),transparent)!important;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;}
#chaoyi-modal.cy-mode-yuqian #cy-footer .bt{font-family:"TM-MaShanZheng","STKaiti",serif!important;font-size:0.7813rem;letter-spacing:.06em;padding:7px 16px!important;border-radius:3px!important;border:1px solid #4e4329!important;background:linear-gradient(180deg,#211a0f,#120c07)!important;color:#cdab63!important;}
#chaoyi-modal.cy-mode-yuqian #cy-footer .bt:hover{border-color:#f0d597!important;color:#f0d597!important;}
#chaoyi-modal.cy-mode-yuqian #cy-footer .bt.bp{color:#1c1408!important;border-color:#f0d597!important;background:linear-gradient(180deg,#f0d597,#caa258)!important;}
#chaoyi-modal.cy-mode-yuqian #cy-footer .bt[style*="vermillion"]{color:#e6a07a!important;border-color:rgba(207,80,66,.45)!important;background:linear-gradient(180deg,#241410,#160a07)!important;}
/* 左栏操作按钮 + 帝气泡右对齐朱金朕印 + 揣摩圣意斜体（对齐预览 msg.emp / msg.guard） */
#chaoyi-modal.cy-mode-yuqian .yq-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
#chaoyi-modal.cy-mode-yuqian .yq-bt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11.5px;letter-spacing:.03em;padding:5px 10px;border-radius:2px;cursor:pointer;border:1px solid #4e4329;background:linear-gradient(180deg,#211a0f,#120c07);color:#a98f55;transition:all .15s;white-space:nowrap;}
#chaoyi-modal.cy-mode-yuqian .yq-bt:hover{border-color:#cdab63;color:#f0d597;}
#chaoyi-modal.cy-mode-yuqian .yq-bt.key{color:#e8a850;border-color:rgba(232,168,80,.45);}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-emp{flex-direction:row-reverse;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-emp > div:last-child{text-align:right;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-emp > div:last-child > div:first-child{color:#f0d597!important;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-emp .cy-bubble{background:linear-gradient(178deg,#33200f,#23130a)!important;border:1px solid rgba(240,213,151,.34)!important;border-radius:11px 3px 11px 11px!important;color:#fdf1da!important;display:inline-block;text-align:left;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-emp > div:first-child{width:36px!important;height:44px!important;border-radius:2px!important;border:1px solid #f0d597!important;background:radial-gradient(120% 120% at 30% 22%,#2a2018,#140d07)!important;color:#fdf3da!important;display:flex!important;align-items:center;justify-content:center;font-family:"TM-MaShanZheng","STKaiti",serif!important;font-size:17px!important;margin-top:20px;}
#chaoyi-modal.cy-mode-yuqian #cy-body > div.yq-guard .cy-bubble{font-style:italic;color:#8f8676!important;border-color:rgba(143,134,118,.26)!important;}
/* 臣气泡 name 行坦白度标签（对齐预览 msg-name .cand·推心置腹青/大致坦言金/揣摩圣意灰） */
#chaoyi-modal.cy-mode-yuqian .yq-cand-sp{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:9px;padding:0 5px;border-radius:2px;margin-left:6px;white-space:nowrap;}
#chaoyi-modal.cy-mode-yuqian .yq-cand-sp.high{color:#a9d18e;border:1px solid rgba(169,209,142,.4);}
#chaoyi-modal.cy-mode-yuqian .yq-cand-sp.mid{color:#a98f55;border:1px solid #4e4329;}
#chaoyi-modal.cy-mode-yuqian .yq-cand-sp.low{color:#8f8676;border:1px solid rgba(143,134,118,.4);}
/* 决断区·起居注录否 + 泄密风险条（对齐预览 rec-row） */
#chaoyi-modal.cy-mode-yuqian .yq-rec-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
#chaoyi-modal.cy-mode-yuqian .yq-rec-lab{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11px;color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian .yq-rec-opt{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12px;padding:4px 11px;border-radius:2px;border:1px solid #4e4329;background:linear-gradient(180deg,#1a140c,#100b07);color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian .yq-rec-opt.sel.keep{color:#f0d597;border-color:rgba(207,173,101,.5);background:rgba(207,173,101,.1);}
#chaoyi-modal.cy-mode-yuqian .yq-rec-opt.sel.secret{color:#cf5042;border-color:rgba(207,80,66,.5);background:rgba(118,25,15,.2);}
#chaoyi-modal.cy-mode-yuqian .yq-leak2{margin-left:auto;display:flex;align-items:center;gap:7px;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:10.5px;color:#7e6d45;}
#chaoyi-modal.cy-mode-yuqian .yq-leak2 b{color:#cf5042;font-weight:400;}


/* ══════ 开场白·入世仪典 overlay（2026-06 落地·tm-patches.js _tmShowOpeningCeremony·跨剧本通用·玄金印鉴·TM-* 本地书法字） ══════ */
#tm-opening{position:fixed;inset:0;z-index:995;overflow:hidden;color:#f4eddf;font-family:"Songti SC","STSong","SimSun",serif;
  background:radial-gradient(1100px 520px at 50% -6%,rgba(207,173,101,.10),transparent 58%),radial-gradient(900px 700px at 50% 120%,rgba(120,40,16,.10),transparent 60%),linear-gradient(178deg,#161009,#100b07 56%,#080503);
  animation:tmOpFade .55s ease both;}
#tm-opening::before{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;pointer-events:none;opacity:.5;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.5)),repeating-linear-gradient(90deg,transparent 0 60px,rgba(20,14,8,.6) 60px 64px);
  -webkit-mask:linear-gradient(180deg,transparent,#000 70%);mask:linear-gradient(180deg,transparent,#000 70%);}
@keyframes tmOpFade{from{opacity:0}to{opacity:1}}
.tm-op-world{position:relative;z-index:2;height:100%;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;padding:26px 34px 20px;box-sizing:border-box;}
.tm-op-title{display:flex;align-items:center;justify-content:center;gap:18px;padding-bottom:16px;border-bottom:1px solid rgba(207,173,101,.2);position:relative;}
.tm-op-title::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-1px;width:120px;height:1px;background:linear-gradient(90deg,transparent,#cdab63,transparent);}
.tm-op-seal{width:62px;height:62px;flex:none;border-radius:6px;display:grid;place-items:center;font-family:"TM-MaShanZheng","STKaiti",serif;font-size:34px;line-height:1;color:#fdf3da;border:1.5px solid #f3da97;background:radial-gradient(130% 130% at 30% 22%,#c14034,#a8312a 46%,#6e1810);box-shadow:inset 0 0 0 1px rgba(247,228,180,.32),inset 0 -4px 8px rgba(50,8,6,.55),0 6px 18px rgba(110,24,16,.4);}
.tm-op-tcol{display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.tm-op-name{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:34px;letter-spacing:.14em;line-height:1.05;background:linear-gradient(120deg,#fbf2d4,#ecce85 48%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.tm-op-sub{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12.5px;color:#a98f55;letter-spacing:.22em;}
.tm-op-body{flex:1;display:flex;gap:24px;min-height:0;padding-top:18px;}
.tm-op-aside{flex:0 0 290px;display:flex;flex-direction:column;gap:14px;min-height:0;}
.tm-op-fig{position:relative;height:300px;flex:none;border-radius:4px;overflow:hidden;border:1px solid rgba(207,173,101,.2);background:linear-gradient(180deg,#1a130b,#0d0906);}
.tm-op-fig img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;filter:saturate(.96) contrast(1.04) brightness(.96);-webkit-mask:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.45) 88%,transparent);mask:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.45) 88%,transparent);}
.tm-op-figseal{display:none;}
.tm-op-fig.no-img .tm-op-figseal{display:grid;place-items:center;position:absolute;inset:0;font-family:"TM-MaShanZheng","STKaiti",serif;font-size:96px;color:#7e6d45;background:radial-gradient(120% 100% at 50% 32%,rgba(207,173,101,.1),transparent 62%);}
.tm-op-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 20%,transparent 52%,rgba(8,5,3,.6));}
.tm-op-frame{position:absolute;inset:8px;border:1px solid rgba(207,173,101,.3);border-radius:2px;pointer-events:none;}
.tm-op-frame::before,.tm-op-frame::after{content:"";position:absolute;width:13px;height:13px;border:1.5px solid #cdab63;}
.tm-op-frame::before{top:-1px;left:-1px;border-width:1.5px 0 0 1.5px;}
.tm-op-frame::after{bottom:-1px;right:-1px;border-width:0 1.5px 1.5px 0;}
.tm-op-rtag{position:absolute;top:12px;left:12px;z-index:2;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:10.5px;letter-spacing:.1em;color:#f3da97;padding:3px 9px;border:1px solid #4e4329;border-radius:2px;background:rgba(8,5,3,.72);}
.tm-op-ident{padding:2px 2px 0;}
.tm-op-who{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:26px;letter-spacing:.06em;background:linear-gradient(120deg,#fbf2d4,#ecce85 50%,#bd964c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.tm-op-who small{font-size:13px;color:#a98f55;-webkit-text-fill-color:#a98f55;margin-left:8px;letter-spacing:.04em;}
.tm-op-plight{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:12px;color:#a99c84;line-height:1.7;margin-top:6px;letter-spacing:.02em;}
.tm-op-eyes{margin-top:2px;}
.tm-op-eyes-h{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11px;color:#7e6d45;letter-spacing:.2em;margin-bottom:7px;display:flex;align-items:center;gap:8px;}
.tm-op-eyes-h::before,.tm-op-eyes-h::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#4e4329,transparent);}
.tm-op-eye{display:flex;align-items:center;gap:11px;padding:8px 11px;border-radius:3px;margin-bottom:7px;border:1px solid #4e4329;background:linear-gradient(110deg,rgba(36,26,14,.7),rgba(16,11,6,.7));}
.tm-op-eye-dot{width:7px;height:7px;flex:none;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f3da97,#a98f55);box-shadow:0 0 6px rgba(207,173,101,.5);}
.tm-op-eye.key .tm-op-eye-dot{background:radial-gradient(circle at 30% 30%,#e8a08a,#a8312a);box-shadow:0 0 7px rgba(193,64,52,.6);}
.tm-op-eye-tx{display:flex;flex-direction:column;gap:1px;min-width:0;}
.tm-op-eye-tx b{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-weight:400;font-size:13px;color:#f3da97;letter-spacing:.04em;}
.tm-op-eye.key .tm-op-eye-tx b{color:#e6a07a;}
.tm-op-eye-tx span{font-size:10.5px;color:#7e6d45;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tm-op-scroll{flex:1;display:flex;flex-direction:column;min-width:0;}
.tm-op-scroll.solo{max-width:760px;margin:0 auto;}
.tm-op-scroll-h{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;}
.tm-op-lbl{font-family:"TM-MaShanZheng","STKaiti",serif;font-size:17px;letter-spacing:.3em;color:#f3da97;}
.tm-op-hint{margin-left:auto;font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11px;color:#7e6d45;letter-spacing:.06em;}
.tm-op-paper{flex:1;overflow-y:auto;padding:24px 30px;border:1px solid #4e4329;border-radius:3px;position:relative;background:linear-gradient(180deg,rgba(244,237,223,.035),transparent 12%),repeating-linear-gradient(0deg,transparent 0 37px,rgba(207,173,101,.05) 37px 38px),linear-gradient(160deg,#1a140d,#120c07);box-shadow:inset 0 0 40px rgba(0,0,0,.4),inset 0 1px 0 rgba(243,218,151,.08);}
.tm-op-paper::-webkit-scrollbar{width:7px;}.tm-op-paper::-webkit-scrollbar-thumb{background:rgba(207,173,101,.22);border-radius:4px;}
.tm-op-paper::before,.tm-op-paper::after{content:"";position:absolute;top:0;bottom:0;width:3px;pointer-events:none;}
.tm-op-paper::before{left:0;background:linear-gradient(180deg,transparent,#7e6d45,transparent);}
.tm-op-paper::after{right:0;background:linear-gradient(180deg,transparent,#7e6d45,transparent);}
.tm-op-narr{font-size:15.5px;line-height:2.15;color:#d8cdba;letter-spacing:.01em;white-space:pre-wrap;text-indent:2em;}
.tm-op-foot{display:flex;align-items:center;gap:14px;padding-top:16px;margin-top:14px;border-top:1px solid rgba(207,173,101,.2);}
.tm-op-fnote{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:11.5px;color:#7e6d45;letter-spacing:.04em;}
.tm-op-fnote b{color:#a98f55;font-weight:400;}
.tm-op-btns{margin-left:auto;display:flex;align-items:center;gap:12px;}
.tm-op-skip{font-family:"TM-ZCOOL-XiaoWei","STFangsong",serif;font-size:13px;letter-spacing:.06em;padding:9px 18px;border-radius:4px;cursor:pointer;color:#a98f55;border:1px solid #4e4329;background:rgba(8,5,3,.5);transition:.18s;}
.tm-op-skip:hover{color:#f3da97;border-color:#cdab63;}
.tm-op-enter{position:relative;overflow:hidden;font-family:"TM-MaShanZheng","STKaiti",serif;font-size:19px;letter-spacing:.24em;padding:11px 34px 11px 38px;border-radius:4px;cursor:pointer;color:#241608;border:1px solid #f3da97;background:linear-gradient(180deg,#f6e3a0,#d8b566 56%,#b88f38);box-shadow:0 6px 20px -6px rgba(207,173,101,.6),inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 6px rgba(120,90,40,.4);}
.tm-op-enter::after{content:"";position:absolute;top:0;left:-60%;width:42%;height:100%;transform:skewX(-18deg);background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);animation:tmOpSheen 3s ease-in-out infinite;}
.tm-op-enter:hover{filter:brightness(1.05);}
@keyframes tmOpSheen{0%{left:-60%}45%{left:130%}100%{left:130%}}
/* 开场白·氛围细节补全（对照预览·微光尘 / 逐元素入场 / 戏眼 hover / 逐字柔和浮现） */
#tm-opening::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;z-index:1;background:radial-gradient(1.5px 1.5px at 18% 24%,rgba(243,218,151,.5),transparent),radial-gradient(1.5px 1.5px at 72% 16%,rgba(243,218,151,.35),transparent),radial-gradient(1px 1px at 44% 60%,rgba(243,218,151,.4),transparent),radial-gradient(1.5px 1.5px at 88% 72%,rgba(243,218,151,.3),transparent),radial-gradient(1px 1px at 30% 82%,rgba(243,218,151,.4),transparent);}
@keyframes tmOpRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tm-op-title{animation:tmOpRise .9s ease both;}
.tm-op-aside{animation:tmOpRise .9s .15s ease both;}
.tm-op-scroll{animation:tmOpRise .9s .25s ease both;}
.tm-op-foot{animation:tmOpRise .9s .4s ease both;}
.tm-op-eye{animation:tmOpRise .75s ease both;transition:border-color .18s ease,transform .18s ease;}
.tm-op-eye:nth-child(2){animation-delay:.32s;}
.tm-op-eye:nth-child(3){animation-delay:.46s;}
.tm-op-eye:nth-child(4){animation-delay:.6s;}
.tm-op-eye:hover{border-color:#cdab63;transform:translateX(2px);}
#tm-opening ._ot-ch{transition:opacity .45s ease;}

