/* ════════════════════════════════════════════════════════════
   天命 · 文人书房 · 素雅水墨 — 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;
}

/* ═══ 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;
  --bg-0:#f4ecd8;
  --bg-1:#faf6e8;
  --bg-2:#f0e8d0;
  --bg-3:#e8dcc0;
  --bg-4:#d8ccb0;
  --gold:#8b6914;
  --gold-l:#b8860b;
  --gold-d:#6b5010;
  --red:#a0301b;
  --green:#207a40;
  --blue:#1a6099;
  --purple:#6e348d;
  --txt:#3c3020;
  --txt-s:#6a5840;
  --txt-d:#8a7860;
  --bdr:#c8b898;
}

[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.85);display:flex;align-items:center;justify-content:center;animation:urgentIn 0.4s ease-out;backdrop-filter:blur(6px);}
.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.65rem;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;}
.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;}
.home-ylian.l{left:calc(50% - 755px);}
.home-ylian.r{right:calc(50% - 755px);}
.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:center;max-width:1120px;margin:clamp(10px,2vh,24px) 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:17px;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:16px;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:10px;width:100%;max-width:none;margin:0;z-index:3;animation:none !important;opacity:1 !important;transform:none !important;}
.home-menu::before{content:"";position:absolute;inset:-14px -16px;background:linear-gradient(180deg,rgba(27,18,10,0.38),rgba(11,8,5,0.46));border:1px solid rgba(215,185,104,0.16);box-shadow:0 22px 70px rgba(0,0,0,0.62);pointer-events:none;}
.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.3);border-radius:0;background:linear-gradient(90deg,rgba(12,9,5,0.88),rgba(35,25,13,0.74) 48%,rgba(10,8,5,0.86)),repeating-linear-gradient(90deg,transparent 0 52px,rgba(215,185,104,0.04) 52px 53px);box-shadow:inset 0 1px 0 rgba(255,238,188,0.08),0 12px 34px rgba(0,0,0,0.38);color:#f3e7bd;text-align:left;cursor:pointer;font-family:inherit;transition:transform 180ms ease,border-color 180ms ease,background 180ms ease;overflow:hidden;animation:none !important;opacity:1 !important;}
.home-card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(215,185,104,0.12);pointer-events:none;}
.home-card::after{content:"";position:absolute;top:11px;bottom:11px;left:0;width:3px;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.74);background:linear-gradient(90deg,rgba(18,12,5,0.96),rgba(57,39,15,0.84) 50%,rgba(12,8,4,0.92)),repeating-linear-gradient(90deg,transparent 0 52px,rgba(215,185,104,0.055) 52px 53px);}
.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 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:26px;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:32px;}
.home-card-ti{font-size:13px;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:15px;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:14px;letter-spacing:0.06em;}
.home-side{align-self:stretch;min-height:454px;display:grid;grid-template-rows:auto auto;gap:12px;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:20px;letter-spacing:0.32em;text-indent:0.32em;}
.home-panel-title span{font-size:12px;color:rgba(215,185,104,0.66);}
.home-recent{display:grid;gap:8px;max-height:184px;overflow:auto;padding:0 4px 0 0;margin:0;border:0;background:transparent;font-family:"STKaiti","KaiTi","楷体",serif;color:rgba(245,229,180,0.9);font-size:14px;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{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:9px 9px 10px;border:1px solid rgba(215,185,104,0.14);background:rgba(255,237,182,0.05);color:rgba(245,229,180,0.9);}
.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:14px;color:rgba(245,229,180,0.9);}
.home-recent .r-meta{display:block;margin-top:3px;font-size:12px;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;}
.home-state-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;}
.home-state{min-height:58px;padding:10px 9px;border:1px solid rgba(215,185,104,0.16);background:rgba(0,0,0,0.22);}
.home-state span{display:block;color:#9d8860;font-size:12px;margin-bottom:5px;}
.home-state b{font-family:"STKaiti","KaiTi","楷体",serif;color:#f0db9a;font-size:16px;letter-spacing:0.06em;}
.home-tools-panel{align-self:start;}
.home-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.home-tools button{min-height:44px;border:1px solid rgba(215,185,104,0.24);background:rgba(0,0,0,0.24);color:#f3e7bd;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15px;letter-spacing:0.1em;cursor:pointer;}
.home-tools button:hover{border-color:rgba(240,219,154,0.7);background:rgba(215,185,104,0.08);}
.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:15px;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:14px;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:14px;line-height:1.35;}
}
@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:14px;}
  .home-title{font-size:60px;}
  .home-seal{width:42px;height:42px;font-size:24px;}
  .home-sub{font-size:13px;margin-top:6px;}
  .home-menu{gap:8px;}
  .home-menu::before{inset:-10px -12px;}
  .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:22px;margin-bottom:2px;}
  .home-card-ti{display:none;}
  .home-card-desc{max-width:100%;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .home-card-key{min-width:58px;font-size:12px;}
  .home-panel{padding:14px;}
  .home-recent{max-height:148px;}
  .home-state{min-height:50px;padding:8px;}
  .home-tools button{min-height:38px;}
  .home-foot{padding:8px 24px;font-size:14px;}
}
@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.65rem;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.55rem;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:13px;color:var(--gold-300,#c9a85f);letter-spacing:0.2em;line-height:1.2;}
.bar-era-stack .date{font-size:14.5px;color:#d4c9b0;letter-spacing:0.12em;font-style:italic;margin-top:1px;line-height:1.2;}
.bar-era-stack .turn-text{font-size:13.5px;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:15px;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:14.5px;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;}
.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:8.5px;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.6rem;color:var(--ink-300,#9d917d);letter-spacing:0.08em;margin-top:2px;}
.bvt-pill{padding:2px 8px;border-radius:11px;font-size:0.6rem;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.6rem;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.55rem;color:var(--ink-400,#6b5d4f);margin-top:1px;letter-spacing:0.05em;}
.bvt-s-warn{position:absolute;top:2px;right:4px;font-size:0.55rem;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.6rem;font-weight:400;margin-left:1px;}
.bvt-arr{margin-left:4px;font-size:0.62rem;}
.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.58rem;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.62rem;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.65);z-index:var(--z-modal,300);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.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.68rem;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.55);z-index:var(--z-modal,300);display:none;backdrop-filter:blur(3px);}
.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.65rem;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.68rem;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.66rem;color:var(--txt-d);display:flex;gap:8px;}
.vd-case-cred{padding:1px 4px;border:1px solid currentColor;border-radius:2px;font-size:0.62rem;}
.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.65rem;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.62rem;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.64rem;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.62rem;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.6rem;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.6rem;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.6rem;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.66rem;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.58rem;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.64rem;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.66rem;}
.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.66rem;}
.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.68rem;font-weight:600;}
.tr-flow-row .v .pct{color:var(--ink-300,#9d917d);font-weight:400;font-size:0.62rem;margin-left:3px;}
.tr-flow-tops{padding:1px 0 4px 22px;font-size:0.6rem;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.62rem;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.64rem;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.62rem;letter-spacing:0.04em;}
.tr-reform-row.completed .name{color:var(--celadon-300,#a3d4c7);}
.tr-reform-stage{font-size:0.66rem;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.62rem;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.66rem;color:var(--ink-200,#d4c9b0);display:block;}
.tr-alert .chain{font-size:0.62rem;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.62rem;letter-spacing:0.04em;display:block;}
.tr-action-tip{font-size:0.66rem;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.66rem;}
.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.68rem;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.62rem;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.62rem;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.68rem;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:16px;color:var(--panel-c,var(--gold-400));letter-spacing:0.2em;font-weight:500;}
.gs-panel-title::before{content:"\25C6\u00A0";font-size:8px;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:15px;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:15.5px;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:15.5px;}
.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:15.5px;}
.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:15px;}
.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:16px;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:8.5px;}
.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.sm{font-size:13.5px;}
.gs-sz-btn.md{font-size:15px;}
.gs-sz-btn.lg{font-size:12.5px;}
.gs-sz-btn.xl{font-size:14px;}
.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;}

/* 音声 */
.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:8.5px;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:8.5px;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.58rem;color:var(--ink-400);font-style:italic;letter-spacing:0.05em;}
.gs-cd-gender-age{font-size:0.55rem;color:var(--ink-400);}
.gs-cd-gender-age.female{color:#e84393;}
.gs-cd-mood{font-size:0.6rem;}
.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.55rem;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.62rem;color:#e84393;}
.gs-cd-face-badge{font-size:0.55rem;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.65rem;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.58rem;color:var(--purple-400,#8e44ad);font-weight:600;}
.gs-cd-stress{font-size:0.62rem;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.62rem;color:var(--ink-400);}
.gs-cd-tags{margin-top:3px;display:flex;flex-wrap:wrap;gap:2px;}
.gs-cd-tag{font-size:0.55rem;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.6rem;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.6rem;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.52rem;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.55rem;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.6rem;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.55rem;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;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.06em;}
.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;color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;letter-spacing:0.05em;}
.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{color:#ede5d0;font-family:"STKaiti","KaiTi","楷体",serif;font-size:15.5px;}
.gs-army-loc{font-size:13.5px;color:var(--ink-300,#6b5d47);font-family:"STKaiti","KaiTi","楷体",serif;font-style:italic;}
.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:8.5px;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:8.5px;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.65rem;}.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:8px;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:7px;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:8px;}
.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:8px;}
.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);}
/* 信件列表容器 */
.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);}
.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.6rem;color:var(--txt-d);display:block;}
.fam-tree-conn{text-align:center;color:var(--bdr);font-size:0.65rem;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:10px;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:11px;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:10px;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:10px;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:11px;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:10px;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:11px;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:10px;color:var(--txt-d,#b0a285);letter-spacing:0.15em;font-style:italic;}
.og-group-stats{display:flex;gap:12px;align-items:center;font-size:11px;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:10px;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:10px;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:11px;}
.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:9px;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;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:9px;letter-spacing:0.08em;border-radius:2px;font-weight:600;position:relative;vertical-align:middle;font-family:var(--font-serif);}
.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:10px;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 5px 14px;border-bottom:1px solid rgba(107,93,71,0.15);display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.og-v10-pos-title-group{min-width:0;flex:1;}
.og-v10-pos-title{font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--color-foreground,#e8dcc4);margin-bottom:2px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.og-v10-pos-sub{font-size:9px;color:var(--ink-300,#7a6e54);letter-spacing:0.08em;line-height:1.3;}
.og-v10-pos-btn{padding:3px 10px;font-size:10px;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:9.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);}

/* 在任者行 */
.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:8px;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:9px;color:var(--ink-300,#7a6e54);font-weight:400;}
.og-v10-pos-holder-name .courtesy{font-size:10px;color:var(--txt-d,#b0a285);font-weight:400;}
.og-v10-pos-holder-sub{font-size:9px;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:9px;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:8px;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:9px;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:7px;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:"\u3014 \u7A7A \u7F3A \u00B7 \u5F85 \u8865 \u3015";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:9px;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:8px;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:9px;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:"\u2699";color:var(--amber-400,#c9a045);font-size:10px;}
.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:9px;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:9px;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:9px;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:"\u21AA";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:9px;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:9px;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:"\u2698";color:var(--amber-300,#e0b560);font-size:11px;}

/* 待下诏书条 */
.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:9px;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:10px;}
.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:9px;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:11px;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:10px;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:9px;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: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-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:9px;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:10px;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:11px;}
.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:10px;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:10px;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:10px;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:10px;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:11px;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:10px;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:11px;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:10px;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:10px;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:10px;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:10px;color:var(--ink-300);letter-spacing:0.1em;}
.ogp-pos-btn{padding:4px 12px;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;}
.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:9px;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:10px;color:var(--ink-300);font-weight:400;}
.ogp-pos-holder-sub{font-size:10px;color:var(--color-foreground-muted);margin-top:1px;letter-spacing:0.05em;}
.ogp-loyalty{display:inline-flex;align-items:center;gap:3px;font-size:10px;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:9px;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:10px;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:10px;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:11px;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:11px;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:10px;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:10px;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:11px;}
.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:10px;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:10px;}
.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:11px;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:9px;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:10px;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:11px;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:10px;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:9px;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:10px;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:11px;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:10px;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:11px;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:8px;}
.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:8px;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:14px;color:var(--color-foreground);letter-spacing:0.12em;font-weight:500;}
.ji-char-title{font-size:14.5px;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:8px;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:12.5px;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:12px;}
.ji-line-nar::before{content:none;}
.ji-line-speaker{font-size:14.5px;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:12px;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:8px;}
.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:8px;}
.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:7px;}

/* 分页 */
.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:11px;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:8px;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:7px;}
.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:7px;}
.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-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);}
.tr-cg-vals .delta.up::before{content:"▲ ";font-size:8px;}
.tr-cg-vals .delta.dn::before{content:"▼ ";font-size:8px;}
.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）═════════ */
.tr-modal-wrap{width:min(1280px,96vw);height:min(900px,92vh);max-height:92vh;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:"◆";font-size:13px;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:12px;flex-wrap:wrap;}
.tr-person-row .type{font-family:var(--font-serif);font-size:14.5px;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:15.5px;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;}

/* ═════════ 地方舆情标签页（.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:8px;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:7px;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:8px;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:7px;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:7px;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;}

/* 六维属性 */
.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:8px;}
.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:7px;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:7px;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:7px;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:8px;}
.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:7px;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;}

.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:8px;margin-right:1px;}
.qj-cat-chip::after{content:"\3011";color:rgba(0,0,0,0.5);font-size:8px;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:10.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.75);display:none;align-items:center;justify-content:center;z-index:1001;backdrop-filter:blur(4px);}
.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.8);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.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.65rem;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.65rem;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.68rem;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.68rem;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.68rem;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.68rem;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.68rem;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.65rem;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.8);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.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.8);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.settings-bg.show{display:flex;animation:fi 0.25s var(--ease);}
.settings-box{background:var(--bg-1);border:1px solid var(--gold-d);border-radius:14px;width:90%;max-width:650px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in 0.3s var(--ease);}
.settings-body{flex:1;overflow-y:auto;padding:1.4rem;}
.settings-section{margin-bottom:1.4rem;padding:0.8rem;background:var(--bg-2);border-radius:var(--r);border:1px solid var(--bdr);}
.settings-section h4{color:var(--gold);font-size:0.88rem;margin-bottom:0.7rem;border-bottom:1px solid var(--bdr);padding-bottom:0.4rem;letter-spacing:0.05em;}
.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.68rem;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.68rem;}
.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;}
.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;}}

/* 开关 */
.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));}

/* 模型选择 */
.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.8);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);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.8);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);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.6rem;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:8px;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.72);backdrop-filter:blur(3px);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.65rem;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);}
.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));}
.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);}
.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.6rem;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.65rem;color:var(--color-foreground-muted);text-align:right;line-height:1.4;}
.letter-type-tag{display:inline-block;font-size:0.6rem;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.65rem;color:var(--color-foreground-muted);letter-spacing:0.04em;}
.letter-actions{display:flex;gap:var(--space-1);}
.letter-actions .bt{font-size:0.65rem;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.55);backdrop-filter:blur(2px);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.7);backdrop-filter:blur(3px);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:10px;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.62rem;color:var(--gold-d);letter-spacing:0.18em;}
.tm-div-lijuan-empty .tm-div-lj-hint{margin-top:6px;font-size:0.56rem;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.6rem;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.6rem;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.62rem;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.58rem;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.55rem;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.62rem;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.6rem;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.56rem;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.62rem;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.56rem;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:11px;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:11px;}
.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.6rem;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.56rem;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.68rem;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.66rem;color:var(--color-foreground-muted);letter-spacing:0.02em;}

.tm-div-empty{padding:8px 12px;font-size:0.66rem;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.68rem;}
.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.58rem;letter-spacing:0.1em;}
.tm-div-disaster-time{font-size:0.6rem;color:var(--color-foreground-muted);}
.tm-div-disaster-note{margin-left:auto;font-size:0.6rem;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.62rem;color:var(--color-foreground-muted);letter-spacing:0.18em;font-weight:600;}
.tm-div-treasury-deficit{font-size:0.58rem;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.6rem;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.56rem;color:var(--color-foreground-muted);}
.tm-div-treasury-flow{font-size:0.6rem;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.66rem;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.68rem;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.6rem;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.55rem;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.66rem;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.62rem;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.62rem;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.6rem;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.62rem;color:var(--color-foreground-muted);letter-spacing:0.05em;display:flex;align-items:center;gap:4px;}
.tm-div-landflow-tag{font-size:0.5rem;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.55rem;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.62rem;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.55rem;color:var(--indigo-400,#7986cb);margin-top:2px;letter-spacing:0.05em;}
.tm-div-child-sub{font-size:0.6rem;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.62rem;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.58rem;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.62rem;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.62rem;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.58rem;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.6rem;font-weight:400;opacity:0.85;}
.tm-div-achieve-narr{grid-column:1 / -1;font-size:0.6rem;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;}

