/* ==========================================================================
   天涯明月刀角色数据站 · 视觉重构
   主题：暗夜鎏金 × 玻璃拟态 · 柔和圆角 · 分层动效
   ========================================================================== */

:root{
  --bg:#070a0e;
  --panel:rgba(17,22,29,.72);
  --panel-solid:#12171e;
  --panel-soft:rgba(23,29,38,.55);
  --line:rgba(255,255,255,.08);
  --line-soft:rgba(255,255,255,.055);
  --text:#eceae3;
  --muted:#8d97a4;
  --faint:#626c78;
  --gold:#e3c188;
  --gold-deep:#c89a5b;
  --gold-soft:#f4e3bd;
  --jade:#8fd0bf;
  --danger:#e0685f;
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:10px;
  --shadow-lg:0 24px 70px rgba(0,0,0,.5);
  --shadow-md:0 12px 36px rgba(0,0,0,.32);
  --ease-spring:cubic-bezier(.22,1,.36,1);
  --font-kai:"STKaiti","KaiTi","Noto Serif SC","Songti SC",serif;
  --font-num:"Bahnschrift","DIN Alternate","Roboto Condensed","Arial Narrow","Segoe UI",Arial,sans-serif;
}

*{box-sizing:border-box}
html{color-scheme:dark;min-height:100%}
[hidden]{display:none!important}

/* ---------- 背景层：夜空渐变 + 双极光 + 噪点 ---------- */
body{
  margin:0;min-height:100vh;color:var(--text);
  display:flex;flex-direction:column;
  font-family:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(1100px 480px at 78% -8%,rgba(201,154,91,.09),transparent 60%),
    radial-gradient(900px 520px at 8% 108%,rgba(80,140,160,.07),transparent 62%),
    linear-gradient(180deg,#0a0e14 0%,#07090d 55%,#05070a 100%);
  background-attachment:fixed;
}
body::before,body::after{content:"";position:fixed;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0}
body::before{width:560px;height:560px;left:-180px;top:-200px;background:radial-gradient(circle,rgba(201,154,91,.14),transparent 65%);animation:drift1 26s ease-in-out infinite alternate}
body::after{width:660px;height:660px;right:-220px;bottom:-260px;background:radial-gradient(circle,rgba(96,150,172,.12),transparent 65%);animation:drift2 32s ease-in-out infinite alternate}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.04;z-index:2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}

::selection{background:rgba(227,193,136,.32);color:#fff}

/* ---------- 动效关键帧 ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}
@keyframes rowIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(90px,60px) scale(1.15)}}
@keyframes drift2{from{transform:translate(0,0) scale(1.1)}to{transform:translate(-80px,-70px) scale(.95)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}
@keyframes shine{0%,30%{left:-50px}70%,100%{left:calc(100% + 35px)}}
@keyframes drawLine{to{stroke-dashoffset:0}}

/* ---------- 顶栏 ---------- */
.topbar{
  height:82px;padding:0 max(24px,calc((100vw - 1320px)/2));
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:20;
  background:rgba(8,11,15,.62);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);
  border-bottom:1px solid var(--line-soft);
  animation:fadeDown .6s var(--ease-spring) both;
}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent 8%,rgba(227,193,136,.4),transparent 92%)}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  flex:none;
}
.brand-logo{
  width:46px;
  height:46px;
  object-fit:contain;
  display:block;
  transition:transform .3s ease,filter .3s ease;
  filter:drop-shadow(0 5px 12px rgba(201,154,91,.25));
}
.brand:hover .brand-logo{
  transform:scale(1.08);
  filter:drop-shadow(0 7px 16px rgba(201,154,91,.4));
}
.brand h1{font-family:var(--font-kai);font-weight:500;font-size:24px;margin:0;letter-spacing:.16em}
.brand p{margin:4px 0 0;color:var(--muted);font-size:12px;letter-spacing:.22em}
.top-actions{display:flex;align-items:center;gap:12px}
.dataset-badge{
  display:inline-flex;align-items:center;gap:9px;
  font-size:14px;color:#b7c0c9;
  background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:999px;padding:8px 15px;
}
.dataset-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--jade);box-shadow:0 0 10px var(--jade);animation:pulse 2.6s ease-in-out infinite}

/* ---------- 布局与通用面板 ---------- */
.shell{max-width:1320px;width:100%;margin:0 auto;padding:30px 24px 80px;position:relative;z-index:1;flex:1}

/* ---------- 网站底部备案 ---------- */
.site-footer{
  width:100%;min-height:46px;flex:none;
  display:flex;align-items:center;justify-content:center;
  padding:12px 20px;position:relative;z-index:1;
  background:rgba(7,10,14,.92);border-top:1px solid rgba(255,255,255,.08);
  font-size:13px;letter-spacing:.5px;
}
.icp-link{color:rgba(255,255,255,.48);text-decoration:none;transition:color .2s ease}
.icp-link:hover{color:rgba(255,255,255,.85)}
.panel{
  background:linear-gradient(180deg,rgba(22,28,36,.78),rgba(14,18,24,.82));
  border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}

/* ---------- 首屏 Hero ---------- */
.hero{
  min-height:245px;padding:40px 44px;display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:55px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-lg);
  animation:fadeUp .7s var(--ease-spring) both;
}
.hero::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(227,193,136,.55),transparent)}
.hero::after{content:"天涯";position:absolute;right:2%;top:-46px;font-family:var(--font-kai);font-size:200px;letter-spacing:.1em;color:rgba(227,193,136,.04);pointer-events:none}
.eyebrow{font-size:12px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.hero h2{
  font-family:var(--font-kai);font-size:38px;font-weight:500;margin:14px 0 12px;letter-spacing:.05em;
  background:linear-gradient(120deg,#f7ecd2 10%,#e3c188 48%,#a87f45 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{margin:0;color:var(--muted);line-height:1.8;font-size:16px}

/* ---------- 搜索框与按钮 ---------- */
.searchbox{
  height:60px;display:flex;align-items:center;gap:4px;
  background:rgba(6,9,13,.72);border:1px solid rgba(255,255,255,.12);border-radius:16px;
  padding:0 8px 0 18px;transition:border-color .25s,box-shadow .25s,background .25s;
}
.searchbox:focus-within{border-color:rgba(227,193,136,.55);box-shadow:0 0 0 4px rgba(227,193,136,.1),0 10px 34px rgba(0,0,0,.35);background:rgba(6,9,13,.9)}
.search-icon{display:inline-flex;color:#5f6b78;margin-right:12px;flex:none;transition:color .25s}
.searchbox:focus-within .search-icon{color:var(--gold)}
.searchbox input{flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:17px;min-width:0}
.searchbox input::placeholder{color:#57616d}
.primary-btn,.ghost-btn{
  height:42px;border:0;border-radius:var(--radius-sm);padding:0 20px;cursor:pointer;
  font-weight:600;font-size:14px;letter-spacing:.03em;
  transition:transform .22s var(--ease-spring),box-shadow .25s,background-position .35s,border-color .25s,color .2s,filter .25s;
}
.primary-btn{
  position:relative;overflow:hidden;color:#1d1509;
  background:linear-gradient(115deg,#c99a58,#eccd93 52%,#c99a58);background-size:190% 100%;
  box-shadow:0 8px 24px rgba(201,154,91,.24),inset 0 1px 0 rgba(255,255,255,.38);
}
.primary-btn:hover{background-position:96% 0;transform:translateY(-1px);box-shadow:0 12px 32px rgba(201,154,91,.34),inset 0 1px 0 rgba(255,255,255,.38)}
.primary-btn:active{transform:translateY(0) scale(.98)}
.searchbox .primary-btn{height:46px;min-width:92px;border-radius:12px}
.ghost-btn{color:#d7dde2;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13)}
.ghost-btn:hover{border-color:rgba(227,193,136,.45);color:var(--gold-soft);background:rgba(227,193,136,.08);transform:translateY(-1px)}
.ghost-btn:active{transform:translateY(0)}
button:focus-visible,a:focus-visible{outline:2px solid rgba(227,193,136,.65);outline-offset:2px}
.admin-on{color:var(--gold-soft)!important;border-color:rgba(227,193,136,.55)!important;background:rgba(227,193,136,.1)!important;box-shadow:0 0 18px rgba(227,193,136,.14)}

/* ---------- 首屏统计 ---------- */
.quick-stats{display:flex;gap:38px;margin-top:22px}
.quick-stats>div{display:flex;align-items:baseline;gap:8px;position:relative}
.quick-stats b{
  font-family:var(--font-num);font-size:26px;font-weight:500;font-variant-numeric:tabular-nums;
  background:linear-gradient(120deg,#f4e3bd,#d3ab6e);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.quick-stats span{font-size:13px;color:var(--muted)}

/* ---------- 选项卡 ---------- */
.tabs{margin-top:22px;padding:6px;display:flex;gap:4px;border-radius:16px;animation:fadeUp .7s var(--ease-spring) .08s both}
.tab{
  height:44px;padding:0 26px;background:transparent;border:0;border-radius:11px;cursor:pointer;
  color:var(--muted);font-size:15px;letter-spacing:.04em;
  transition:color .2s,background .3s,box-shadow .3s;
}
.tab:hover{color:#d4dbe1}
.tab.active{
  background:linear-gradient(180deg,rgba(227,193,136,.16),rgba(227,193,136,.07));
  color:var(--gold-soft);box-shadow:inset 0 0 0 1px rgba(227,193,136,.26),0 4px 14px rgba(0,0,0,.2);
}
/* 选项卡栏右侧外链按钮（灵势计算器）。PNG 图标预留位：public/items/lingshi_calc.png，缺失时自动显示备用字形 */
.tab-link{
  margin-left:auto;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;
  border-radius:11px;text-decoration:none;white-space:nowrap;
  color:var(--gold);background:rgba(227,193,136,.06);border:1px solid rgba(227,193,136,.3);
  font-size:15px;letter-spacing:.04em;
  transition:color .2s,background .25s,border-color .25s,transform .22s var(--ease-spring),box-shadow .25s;
}
.tab-link:hover{color:var(--gold-soft);background:rgba(227,193,136,.13);border-color:rgba(227,193,136,.55);transform:translateY(-1px);box-shadow:0 6px 18px rgba(201,154,91,.18)}
.tab-link~.tab-link{margin-left:4px}
.tab-link:active{transform:translateY(0)}
.tab-link-icon{width:20px;height:20px;object-fit:contain;display:block}
.tab-link-glyph{font-family:var(--font-kai);font-size:17px;line-height:1;color:var(--gold-soft)}
.tab-link-arrow{flex:none;opacity:.75}
.view{display:none}
.view.active{display:block;animation:viewIn .45s var(--ease-spring) both}

/* ---------- 筛选控件 ---------- */
.controls{margin-top:18px;padding:18px;display:flex;gap:14px;align-items:flex-end;border-radius:16px;animation:fadeUp .7s var(--ease-spring) .14s both}
.controls label{display:flex;flex-direction:column;gap:8px;min-width:180px}
.controls label.wide{min-width:320px;flex:1}
.controls label span{font-size:13px;color:#7c8692;letter-spacing:.1em}
.controls select,.controls input,.modal-input,.tag-input,.color-input{
  height:42px;background:rgba(8,11,16,.7);color:#e2e7eb;border:1px solid rgba(255,255,255,.11);
  border-radius:var(--radius-sm);padding:0 13px;outline:none;font-size:15px;
  transition:border-color .22s,box-shadow .22s,background .22s;
}
.controls select:hover,.controls input:hover,.modal-input:hover,.tag-input:hover{border-color:rgba(255,255,255,.2)}
.controls select:focus,.controls input:focus,.modal-input:focus,.tag-input:focus{
  border-color:rgba(227,193,136,.55);box-shadow:0 0 0 4px rgba(227,193,136,.1);background:rgba(8,11,16,.9);
}
.controls select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8d97a4 50%),linear-gradient(135deg,#8d97a4 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px;cursor:pointer}
.control-btn{margin-left:auto}
.control-btn:hover{border-color:rgba(224,104,95,.5);color:#f0b3ad;background:rgba(224,104,95,.08)}

/* ---------- 表格 ---------- */
.table-panel{margin-top:18px;overflow:hidden;box-shadow:var(--shadow-lg);animation:fadeUp .7s var(--ease-spring) .2s both}
.table-headline{padding:22px 24px 16px;display:flex;align-items:flex-end;justify-content:space-between}
.table-headline h3{font-size:18px;margin:0 0 6px;display:flex;align-items:center;gap:11px;letter-spacing:.04em}
.table-headline h3::before{content:"";width:4px;height:17px;border-radius:2px;background:linear-gradient(180deg,var(--gold-soft),var(--gold-deep));box-shadow:0 0 10px rgba(227,193,136,.4)}
.table-headline p{font-size:14px;color:var(--muted);margin:0}
.legend{font-size:13px;color:#707b85}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px rgba(227,193,136,.8);margin-right:7px}
.table-wrap{overflow:auto;border-top:1px solid var(--line-soft)}
table{border-collapse:collapse;width:100%;min-width:850px}
th{
  height:46px;background:rgba(255,255,255,.025);color:#79848f;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  text-align:left;padding:0 18px;border-bottom:1px solid var(--line);font-weight:500;
}
td{padding:15px 18px;border-bottom:1px solid var(--line-soft);color:#cfd5da;font-size:15px;transition:color .2s}
tbody tr{cursor:pointer;transition:background .2s;animation:rowIn .5s var(--ease-spring) both}
tbody tr:nth-child(1){animation-delay:.02s}tbody tr:nth-child(2){animation-delay:.05s}
tbody tr:nth-child(3){animation-delay:.08s}tbody tr:nth-child(4){animation-delay:.11s}
tbody tr:nth-child(5){animation-delay:.14s}tbody tr:nth-child(6){animation-delay:.17s}
tbody tr:nth-child(7){animation-delay:.2s}tbody tr:nth-child(8){animation-delay:.23s}
tbody tr:nth-child(9){animation-delay:.26s}tbody tr:nth-child(10){animation-delay:.29s}
tbody tr:nth-child(11){animation-delay:.32s}tbody tr:nth-child(12){animation-delay:.35s}
tbody tr:nth-child(n+13){animation-delay:.38s}
tbody tr:hover{background:linear-gradient(90deg,rgba(227,193,136,.07),rgba(227,193,136,.015) 55%,transparent)}
tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--gold-deep)}
tbody tr:hover .nickname{color:#fff}
.rank{font-family:var(--font-num);font-size:18px;color:#7d8894;font-variant-numeric:tabular-nums}
.rank.top{
  background:linear-gradient(120deg,#f4e3bd,#cfa964);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 8px rgba(227,193,136,.25));
}
.nickname{font-weight:600;color:#f0f2f4;font-size:16px;line-height:1.2;transition:color .2s}
.uid{font:14px ui-monospace,SFMono-Regular,Consolas,monospace;color:#7d8894;letter-spacing:.03em}
.menpai-pill{
  display:inline-flex;padding:5px 11px;border:1px solid rgba(255,255,255,.13);color:#bcc7d0;
  background:rgba(255,255,255,.04);font-size:13px;border-radius:999px;transition:border-color .2s,background .2s;
}
tbody tr:hover .menpai-pill{border-color:rgba(227,193,136,.35);background:rgba(227,193,136,.06)}
.guild-link{color:#c3cbd1;font-size:15px}
.power{font-family:var(--font-num);color:#f0e4cb;font-size:17px;font-variant-numeric:tabular-nums}
.num{text-align:right}
.guild-highlight{color:#f0d6aa}
.metric-main{font-size:17px;color:#f0dfc6}
.subtle{color:#6f7a84;font-size:12px;margin-left:6px}
.empty{padding:56px;text-align:center;color:#69747e;font-size:15px;letter-spacing:.06em}

/* ---------- 分页 ---------- */
.pagination{padding:18px;display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.page-jump{display:inline-flex;align-items:center;gap:6px;margin-left:8px;color:#7f8993;font-size:13px;white-space:nowrap}
.page-jump-input{
  width:66px;height:34px;padding:0 8px;border-radius:var(--radius-sm);outline:none;text-align:center;
  border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035);color:#e4e8eb;
  font-family:var(--font-num);font-size:14px;font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s,background .2s;
}
.page-jump-input:focus{border-color:rgba(227,193,136,.48);background:rgba(227,193,136,.045);box-shadow:0 0 0 3px rgba(227,193,136,.07)}
.page-jump-input::-webkit-inner-spin-button,.page-jump-input::-webkit-outer-spin-button{opacity:.45}
.page-jump-btn{
  height:34px;padding:0 11px;border-radius:var(--radius-sm);cursor:pointer;
  border:1px solid rgba(227,193,136,.20);background:rgba(227,193,136,.06);color:#cbb98f;font-size:13px;
  transition:border-color .2s,background .2s,color .2s,transform .2s var(--ease-spring);
}
.page-jump-btn:hover{border-color:rgba(227,193,136,.48);background:rgba(227,193,136,.11);color:#f0d6aa;transform:translateY(-1px)}
.page-btn{
  height:34px;min-width:34px;padding:0 10px;border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.04);color:#98a3ad;font-size:14px;cursor:pointer;
  transition:all .2s var(--ease-spring);
}
.page-btn:hover:not(:disabled):not(.active){border-color:rgba(227,193,136,.4);color:var(--gold-soft);transform:translateY(-1px)}
.page-btn.active{
  background:linear-gradient(120deg,#c99a58,#e6c78d);color:#1d1509;border-color:transparent;font-weight:700;
  box-shadow:0 4px 14px rgba(201,154,91,.3);
}
.page-btn:disabled{opacity:.3;cursor:not-allowed}

/* ---------- TAG 徽章与特殊道具 ---------- */
.tag-badge{
  --tag:#d9a441;position:relative;display:inline-block;margin-top:7px;padding:4px 10px;border-radius:7px;
  background:var(--tag);color:var(--tag-text,#fff);font-size:12px;font-weight:700;line-height:18px;letter-spacing:.05em;
  overflow:hidden;box-shadow:0 3px 14px color-mix(in srgb,var(--tag) 30%,transparent),inset 0 0 0 1px rgba(255,255,255,.14);
}
.tag-badge::after{content:"";position:absolute;top:-35%;bottom:-35%;width:32px;left:-50px;transform:skewX(-24deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shine 2.8s infinite ease-in-out}
.tag-badge span{position:relative;z-index:1}
.tag-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.tag-stack .tag-badge{margin-top:0}
.drawer-tag .tag-stack{margin-top:10px}
.special-item-icons{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.special-item-icon{
  --item-accent:#d6a650;position:relative;width:29px;height:29px;display:inline-grid;place-items:center;border-radius:9px;
  border:1px solid color-mix(in srgb,var(--item-accent) 72%,#1a1f24);
  background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--item-accent) 28%,#1b2025),#101419 72%);
  box-shadow:0 0 12px color-mix(in srgb,var(--item-accent) 20%,transparent),inset 0 0 0 1px rgba(255,255,255,.05);
  cursor:help;vertical-align:middle;transition:transform .22s var(--ease-spring),box-shadow .25s;
}
.special-item-icon:hover{transform:scale(1.14) translateY(-1px);box-shadow:0 0 18px color-mix(in srgb,var(--item-accent) 38%,transparent)}
.special-item-glyph{font-size:16px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.65))}
.special-item-star{position:absolute;right:-3px;top:-5px;padding:0 2px;border-radius:3px;background:#17120b;color:#f3ce78;border:1px solid #8e6b2e;font:bold 7px/12px Arial,sans-serif;letter-spacing:-.03em}
.special-item-img{width:20px;height:20px;object-fit:contain;display:block;max-width:100%;max-height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.drawer-tag .special-item-icon{width:32px;height:32px}
.drawer-tag .special-item-glyph{font-size:18px}
.drawer-tag .special-item-img{width:22px;height:22px}
.member-row .special-item-icon{width:23px;height:23px}
.member-row .special-item-glyph{font-size:13px}
.member-row .special-item-star{font-size:6px;line-height:10px}
.member-row .special-item-img{width:16px;height:16px}

/* ---------- 近期变更标记 ---------- */
.nickname-line,.drawer-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.drawer-name-line{gap:10px;margin-top:6px}
.drawer-name-line .drawer-name{margin:0}
.recent-change-badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;vertical-align:middle}
.recent-change-badge{
  display:inline-flex;align-items:center;justify-content:center;height:19px;padding:0 7px;border-radius:6px;
  border:1px solid rgba(224,104,95,.55);background:linear-gradient(180deg,rgba(190,64,56,.9),rgba(140,38,34,.9));
  box-shadow:0 0 12px rgba(224,104,95,.22),inset 0 1px 0 rgba(255,255,255,.1);
  color:#ffe9e5;font:700 10px/1 Arial,"Microsoft YaHei",sans-serif;letter-spacing:.05em;white-space:nowrap;cursor:help;
}
.recent-change-badge.guild-change{border-color:rgba(232,134,94,.6);background:linear-gradient(180deg,rgba(202,86,52,.9),rgba(152,52,34,.9))}
.drawer-name-line .recent-change-badge{height:21px;padding:0 8px;font-size:11px}
.member-row .nickname-line{gap:6px}
.member-row .recent-change-badge{height:17px;padding:0 5px;font-size:9px}

/* ---------- 右侧抽屉 ---------- */
.drawer-backdrop{position:fixed;inset:0;background:rgba(3,5,8,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:40;opacity:0;pointer-events:none;transition:opacity .32s}
.drawer-backdrop.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;right:0;top:0;height:100vh;width:min(560px,94vw);z-index:50;overflow:auto;
  background:rgba(13,17,23,.9);backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2);
  border-left:1px solid rgba(255,255,255,.1);border-radius:22px 0 0 22px;
  transform:translateX(103%);transition:transform .42s var(--ease-spring);
  box-shadow:-34px 0 80px rgba(0,0,0,.5);
}
.drawer.open{transform:none}
.drawer.open #drawerContent>*{animation:fadeUp .5s var(--ease-spring) both}
.drawer.open #drawerContent>*:nth-child(2){animation-delay:.06s}
.drawer.open #drawerContent>*:nth-child(3){animation-delay:.12s}
.drawer.open #drawerContent>*:nth-child(4){animation-delay:.18s}
.drawer.open #drawerContent>*:nth-child(5){animation-delay:.24s}
.drawer.open #drawerContent>*:nth-child(6){animation-delay:.3s}
.drawer.open #drawerContent>*:nth-child(n+7){animation-delay:.36s}
.drawer-close,.modal-close{
  position:absolute;right:20px;top:16px;width:38px;height:38px;display:grid;place-items:center;
  border:1px solid transparent;border-radius:50%;background:rgba(255,255,255,.05);color:#8d97a4;font-size:22px;cursor:pointer;
  transition:transform .35s var(--ease-spring),color .2s,background .25s,border-color .25s;
}
.drawer-close{z-index:10;pointer-events:auto}
.drawer-close:hover,.modal-close:hover{transform:rotate(90deg);color:#fff;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15)}
.drawer-hero{
  padding:52px 36px 30px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 82% -10%,rgba(227,193,136,.16),transparent 42%),
    linear-gradient(180deg,rgba(255,255,255,.03),transparent);
  border-bottom:1px solid var(--line);
}
.drawer-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(227,193,136,.4),transparent)}
.drawer-rank{font:12px var(--font-num);color:var(--gold);letter-spacing:.14em}
.drawer-name{
  font-family:var(--font-kai);font-size:34px;margin:10px 0 0;letter-spacing:.04em;
  background:linear-gradient(120deg,#fbf3de,#dfc493);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.drawer-tag{margin-top:10px}
.detail-grid{padding:26px 36px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.detail-card{
  background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;
  transition:transform .28s var(--ease-spring),border-color .25s,box-shadow .28s,background .25s;
}
.detail-card:hover{transform:translateY(-3px);border-color:rgba(227,193,136,.32);box-shadow:0 10px 26px rgba(0,0,0,.3);background:rgba(255,255,255,.05)}
.detail-card span{display:block;font-size:12px;color:#707b85;margin-bottom:8px;letter-spacing:.06em}
.detail-card b{font-size:16px;font-weight:500;color:#dde2e6}
.detail-card b.big{font:21px var(--font-num);color:#f1dfc3;font-variant-numeric:tabular-nums}
.uid-detail-card{position:relative;padding-right:54px}
.uid-copy-line{display:block;min-width:0}
.uid-copy-line .uid{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uid-copy-btn{
  position:absolute;right:14px;bottom:13px;width:29px;height:29px;display:grid;place-items:center;padding:0;
  border:1px solid rgba(255,255,255,.10);border-radius:8px;background:rgba(255,255,255,.035);color:#77818a;
  cursor:pointer;transition:all .2s var(--ease-spring)
}
.uid-copy-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.uid-copy-btn:hover{color:#aab2b8;border-color:rgba(255,255,255,.20);background:rgba(255,255,255,.065);transform:translateY(-1px)}
.uid-copy-btn.copied{color:#91b9ad;border-color:rgba(143,208,191,.28);background:rgba(143,208,191,.07)}
.uid-copy-btn.copy-failed{color:#bd8f8a;border-color:rgba(224,104,95,.26)}
.ocr-corrected-badge{
  display:inline-flex;align-items:center;height:21px;padding:0 8px;border-radius:6px;border:1px solid rgba(143,208,191,.42);
  background:linear-gradient(180deg,rgba(83,143,126,.26),rgba(43,91,79,.22));color:#c8eee3;font:700 10px/1 "Microsoft YaHei",sans-serif;letter-spacing:.05em
}
.drawer-section{padding:8px 36px 30px}
.drawer-section h4{font-size:14px;color:#9aa4ad;margin:0 0 14px;letter-spacing:.1em;display:flex;align-items:center;gap:10px}
.drawer-section h4::before{content:"";width:3px;height:13px;border-radius:2px;background:linear-gradient(180deg,var(--gold),var(--gold-deep));opacity:.85}
.guild-statline{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:rgba(255,255,255,.02)}
.guild-statline>div{padding:14px;border-right:1px solid var(--line-soft);transition:background .2s}
.guild-statline>div:hover{background:rgba(227,193,136,.05)}
.guild-statline>div:last-child{border-right:0}
.guild-statline small{display:block;color:#6f7a84;font-size:10px;margin-bottom:6px;letter-spacing:.06em}
.guild-statline b{font:14px var(--font-num);font-variant-numeric:tabular-nums}

/* ---------- 人物关系谱 / 江湖流言板 ---------- */
.role-relations-section,.rumor-board-section{border-top:1px solid var(--line-soft)}
.relationship-spectrum{display:grid;gap:10px}
.relation-group{display:grid;grid-template-columns:74px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:rgba(255,255,255,.022)}
.relation-type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:13px 8px;border-right:1px solid var(--line-soft);background:linear-gradient(135deg,rgba(255,255,255,.035),rgba(255,255,255,.012))}
.relation-type-name{display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-kai);font-size:16px;letter-spacing:.08em}
.relation-type-name b{font:inherit;color:inherit}
.relation-type-icon{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.relation-type small{font:10px var(--font-num);color:#68737c}
.relation-jinlan .relation-type{background:linear-gradient(135deg,rgba(79,185,113,.11),rgba(255,255,255,.012))}.relation-jinlan .relation-type-name{color:#72c88d}
.relation-tongxin .relation-type{background:linear-gradient(135deg,rgba(231,107,159,.11),rgba(255,255,255,.012))}.relation-tongxin .relation-type-name{color:#e98ab3}
.relation-shitu .relation-type{background:linear-gradient(135deg,rgba(85,151,225,.11),rgba(255,255,255,.012))}.relation-shitu .relation-type-name{color:#79afea}
.relation-xiaohao .relation-type{background:linear-gradient(135deg,rgba(230,145,62,.11),rgba(255,255,255,.012))}.relation-xiaohao .relation-type-name{color:#e6a05c}
.relation-person-list{min-width:0;display:grid}
.relation-person{appearance:none;width:100%;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:inherit;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;transition:background .18s,padding-left .22s var(--ease-spring)}
.relation-person:last-child{border-bottom:0}.relation-person:hover{background:rgba(227,193,136,.05);padding-left:17px}
.relation-person-main{min-width:0}.relation-person-main b{display:block;font-size:13px;font-weight:600;color:#d9dee2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relation-person-main small{display:block;margin-top:3px;font:10px var(--font-num);color:#65717b;letter-spacing:.02em}
.relation-person-meta{flex:0 0 auto;display:flex;align-items:center;gap:8px;max-width:42%;color:#77828b;font-size:10px}.relation-person-meta i{font-style:normal;font:18px/1 Arial,sans-serif;color:#8a7657;transition:transform .2s}.relation-person:hover .relation-person-meta i{transform:translateX(2px)}
.rumor-board{display:grid;gap:9px}
.rumor-item{padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.022);position:relative;overflow:hidden}
.rumor-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#75664d;opacity:.7}
.rumor-item.verified::before{background:#668f82}.rumor-item.debunked::before{background:#8c6663}
.rumor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.rumor-head>span{font:12px var(--font-num);color:#606b75;letter-spacing:.1em}
.rumor-status{flex:0 0 auto;padding:5px 10px;border-radius:999px;border:1px solid rgba(227,193,136,.18);background:rgba(227,193,136,.055);color:#b9a078;font-size:12px;font-weight:700}
.rumor-status.status-verified{border-color:rgba(143,208,191,.24);background:rgba(83,143,126,.08);color:#96c0b4}.rumor-status.status-debunked{border-color:rgba(224,104,95,.22);background:rgba(141,77,72,.08);color:#b9928e}
.rumor-item p{margin:0;color:#c4cbd0;font-size:15px;line-height:1.75;white-space:pre-wrap;word-break:break-word}
.social-editor{border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.025);padding:16px}
.social-relation-editor{display:grid;gap:9px}
.social-relation-group{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:start;padding:10px 11px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(0,0,0,.12)}
.social-type-toggle{display:flex;align-items:center;gap:7px;padding-top:8px;color:#cfd6db;font-size:12px;font-weight:700;cursor:pointer}.social-type-toggle input{accent-color:#c89a5b}
.social-type-name{display:flex;align-items:center;gap:6px;min-width:0}.social-type-name b{font:inherit;color:inherit}.social-type-name .relation-type-icon{width:15px;height:15px;flex-basis:15px}
.social-relation-jinlan .social-type-name{color:#72c88d}.social-relation-tongxin .social-type-name{color:#e98ab3}.social-relation-shitu .social-type-name{color:#79afea}.social-relation-xiaohao .social-type-name{color:#e6a05c}
.social-relation-jinlan .social-type-check{accent-color:#55b978}.social-relation-tongxin .social-type-check{accent-color:#dd6d9d}.social-relation-shitu .social-type-check{accent-color:#5b96d8}.social-relation-xiaohao .social-type-check{accent-color:#df8d42}
.social-type-inputs{display:grid;gap:7px;min-width:0}.social-type-inputs.disabled{opacity:.38}.social-type-inputs.disabled *{cursor:not-allowed}.social-type-inputs .tag-input{margin:0}
.social-uid-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:7px}.social-row-remove{width:30px;height:36px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(255,255,255,.03);color:#77828b;font-size:18px;cursor:pointer;transition:all .2s}.social-row-remove:hover{color:#dba49f;border-color:rgba(224,104,95,.35);background:rgba(224,104,95,.07)}
.social-add-uid{height:31px;padding:0 10px;margin:0;justify-self:start;font-size:11px}
.rumor-edit-list{display:grid;gap:9px}.rumor-edit-row{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:9px;padding:10px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(0,0,0,.12)}
.rumor-edit-text{width:100%;min-height:72px;resize:vertical;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:rgba(8,11,15,.66);color:#d9dee2;padding:9px 10px;outline:none;font:14px/1.65 "Microsoft YaHei",sans-serif}.rumor-edit-text:focus{border-color:rgba(227,193,136,.38)}
.rumor-edit-controls{display:flex;align-items:flex-start;gap:7px}.rumor-edit-status{height:36px;min-width:70px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#10151a;color:#b8c0c6;padding:0 7px;font:11px "Microsoft YaHei",sans-serif;outline:none}
.social-admin-section{border-top:1px solid var(--line-soft)}

/* ---------- 帮派成员列表 ---------- */
.member-list{margin-top:10px;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.member-row{
  display:grid;grid-template-columns:44px 1fr auto;align-items:center;padding:11px 14px;
  border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .18s,padding-left .22s var(--ease-spring);
  animation:rowIn .4s var(--ease-spring) both;
}
.member-row:nth-child(1){animation-delay:.02s}.member-row:nth-child(2){animation-delay:.05s}
.member-row:nth-child(3){animation-delay:.08s}.member-row:nth-child(4){animation-delay:.11s}
.member-row:nth-child(5){animation-delay:.14s}.member-row:nth-child(6){animation-delay:.17s}
.member-row:nth-child(7){animation-delay:.2s}.member-row:nth-child(8){animation-delay:.23s}
.member-row:nth-child(9){animation-delay:.26s}.member-row:nth-child(n+10){animation-delay:.29s}
.member-row:last-child{border-bottom:0}
.member-row:hover{background:linear-gradient(90deg,rgba(227,193,136,.07),transparent 60%);padding-left:19px}
.member-rank{font:13px var(--font-num);color:#75808a}
.member-name{font-size:14px}
.member-power{font:14px var(--font-num);color:#e6d6bc;font-variant-numeric:tabular-nums}

/* ---------- 历史数据 / 功力曲线 ---------- */
.history-match{margin-top:6px;font-size:12px;color:#c9aa76;line-height:1.45}
.history-section{border-top:1px solid var(--line-soft)}
.history-empty{padding:14px 15px;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:var(--radius-md);color:#75808a;font-size:12px;line-height:1.6}
.history-empty.compact{margin-top:9px;padding:10px 12px;border-radius:0 0 var(--radius-md) var(--radius-md)}

.power-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.power-chart-toolbar>span{color:#75808a;font-size:11px;letter-spacing:.05em}
.power-range-tabs{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.025)}
.power-range-btn{min-width:46px;padding:6px 10px;border:0;border-radius:7px;background:transparent;color:#7f8992;font:11px var(--font-main);cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
.power-range-btn:hover{color:#d9c39c;background:rgba(227,193,136,.055)}
.power-range-btn.active{color:#f0d69d;background:rgba(227,193,136,.12);box-shadow:inset 0 0 0 1px rgba(227,193,136,.16)}
.history-summary{
  display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "date date";gap:5px 10px;align-items:center;
  padding:13px 15px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0;
}
.history-summary>span{grid-area:label;color:#7e8993;font-size:11px;letter-spacing:.05em}
.history-summary>b{grid-area:value;font:18px var(--font-num);color:#e9d7b9;font-variant-numeric:tabular-nums}
.history-summary>b.up{color:#e8c987}
.history-summary>b.down{color:#9fb3bd}
.history-summary>small{grid-area:date;color:#67727c;font-size:10px}
.power-chart-wrap{border:1px solid var(--line);border-radius:0 0 var(--radius-md) var(--radius-md);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);overflow:hidden}
.power-chart{display:block;width:100%;height:auto;min-height:170px}
.power-grid{stroke:rgba(255,255,255,.08);stroke-width:1;stroke-dasharray:3 4}
.power-area{opacity:0;animation:fadeIn .9s ease .55s forwards}
.power-line{
  fill:none;stroke:#e3c188;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 0 6px rgba(227,193,136,.3));
  stroke-dasharray:1;stroke-dashoffset:1;animation:drawLine 1.1s ease .2s forwards;
}
.power-dot{fill:#f4e3bd;stroke:#12161c;stroke-width:2;opacity:0;animation:fadeIn .5s ease 1s forwards}
.power-dot:hover{fill:#fff}
.power-axis-label{fill:#66707c;font:9px Arial,sans-serif}
.history-chip-list{display:flex;flex-wrap:wrap;gap:9px}
.history-chip{
  display:flex;flex-direction:column;gap:4px;padding:9px 13px;min-width:112px;
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;
  transition:border-color .2s,transform .25s var(--ease-spring);
}
.history-chip:hover{border-color:rgba(227,193,136,.3);transform:translateY(-2px)}
.history-chip b{font-size:13px;font-weight:500;color:#d9dee2}
.history-chip small{font-size:9px;color:#69747e}
.timeline{border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:var(--radius-md);padding:8px 14px}
.timeline-row{position:relative;display:grid;grid-template-columns:14px 1fr;gap:10px;padding:10px 0}
.timeline-row+.timeline-row{border-top:1px solid var(--line-soft)}
.timeline-dot{width:9px;height:9px;border-radius:50%;background:#5b6670;border:2px solid #11161a;box-shadow:0 0 0 1px #39434c;margin-top:4px}
.timeline-row.current .timeline-dot{background:var(--gold);box-shadow:0 0 0 1px #7a633c,0 0 10px rgba(227,193,136,.6)}
.timeline-row b{display:block;color:#d8dee2;font-size:13px;font-weight:500}
.timeline-row.current b{color:var(--gold-soft)}
.timeline-row small{display:block;color:#69747e;font-size:9px;margin-top:4px}

/* ---------- TAG / 道具编辑器 ---------- */
.ocr-editor{border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.025);padding:16px}
.ocr-editor-note{font-size:11px;line-height:1.7;color:#7f8b95;padding:10px 12px;margin-bottom:12px;border-radius:10px;background:rgba(143,208,191,.045);border:1px solid rgba(143,208,191,.12)}
.ocr-edit-list{display:grid;gap:9px}
.ocr-edit-row{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:start;padding:10px 11px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(0,0,0,.12)}
.ocr-toggle-label{display:flex;align-items:center;gap:7px;color:#cfd6db;font-size:12px;font-weight:700;padding-top:8px;cursor:pointer}
.ocr-toggle{accent-color:#c89a5b}
.ocr-field-main{min-width:0}
.ocr-value{width:100%;height:34px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:rgba(8,11,15,.66);color:#e6e9eb;padding:0 10px;outline:none;font:13px "Microsoft YaHei",sans-serif;transition:border-color .2s,background .2s}
.ocr-value[type="number"]{font-family:var(--font-num);font-variant-numeric:tabular-nums}
.ocr-value:focus{border-color:rgba(227,193,136,.42);background:rgba(14,18,24,.82)}
.ocr-value:disabled{opacity:.45;cursor:not-allowed}
.ocr-field-main small{display:block;margin-top:5px;color:#67727d;font-size:10px;line-height:1.45}
.ocr-field-main small b{font-weight:500;color:#929da6}
.ocr-field-main small em{font-style:normal;color:#8fd0bf}
.ocr-reason-label{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;margin-top:12px;color:#9da7af;font-size:11px}
.ocr-reason-label .tag-input{margin:0}
.ocr-history-option{display:flex;align-items:flex-start;gap:8px;margin-top:12px;color:#7f8a94;font-size:11px;line-height:1.55;cursor:pointer}
.ocr-history-option input{margin-top:2px;accent-color:#c89a5b}
.ocr-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.ocr-actions .compact-btn{margin-top:0}
.ocr-audit{margin-top:15px;padding-top:13px;border-top:1px solid var(--line-soft)}
.ocr-audit-title{font-size:11px;color:#9da7af;font-weight:700;margin-bottom:8px;letter-spacing:.05em}
.ocr-audit-row{display:grid;grid-template-columns:112px 1fr;gap:4px 10px;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.055)}
.ocr-audit-row:last-child{border-bottom:0}
.ocr-audit-row>span{font:11px var(--font-num);color:#66717b}
.ocr-audit-row>b{font-size:11px;color:#c2cbd1;font-weight:500;line-height:1.5}
.ocr-audit-row>small{grid-column:2;color:#78838d;font-size:10px;line-height:1.45}

.tag-editor{background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px}
.admin-lock{font-size:12px;color:#7e8993;line-height:1.7}
.editor-subtitle{font-size:12px;color:#d1d7dc;font-weight:700;margin-bottom:11px;letter-spacing:.04em}
.editor-subtitle span{font-size:10px;color:#75808a;font-weight:400;margin-left:8px}
.editor-divider{height:1px;background:var(--line);margin:18px 0}
.tag-edit-list{display:flex;flex-direction:column;gap:9px}
.tag-edit-row{
  display:grid;grid-template-columns:minmax(130px,1fr) 54px 54px 30px;gap:8px;align-items:end;
  padding:10px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;
  animation:fadeUp .3s var(--ease-spring) both;
}
.tag-color-field{display:flex;flex-direction:column;gap:5px;min-width:52px}
.tag-color-field span{font-size:10px;color:#7e8993;text-align:center}
.color-input{width:52px;padding:5px;cursor:pointer}
.color-input::-webkit-color-swatch-wrapper{padding:2px}
.color-input::-webkit-color-swatch{border:1px solid rgba(255,255,255,.15);border-radius:6px}
.tag-row-remove{
  width:30px;height:42px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);
  background:rgba(255,255,255,.04);color:#9ba5ad;font-size:21px;cursor:pointer;transition:all .2s;
}
.tag-row-remove:hover{color:#f0b3ad;border-color:rgba(224,104,95,.5);background:rgba(224,104,95,.1)}
.compact-btn{height:36px;margin-top:10px;font-size:13px}
.special-item-checks{display:grid;grid-template-columns:1fr;gap:8px}
.special-item-group{border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.02);margin-bottom:9px;overflow:hidden}
.special-item-group:last-child{margin-bottom:0}
.special-item-group-title{padding:8px 12px;border-bottom:1px solid var(--line-soft);color:#9aa5ae;font-size:10px;letter-spacing:.1em;background:rgba(255,255,255,.02)}
.special-item-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:9px}
.special-item-group-grid .special-item-check{min-width:0}
.special-item-check{
  display:grid;grid-template-columns:auto 34px 1fr;align-items:center;gap:10px;min-height:46px;
  padding:8px 11px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.03);
  cursor:pointer;transition:border-color .2s,background .2s,box-shadow .25s,transform .22s var(--ease-spring);
}
.special-item-check:hover{border-color:rgba(255,255,255,.24);transform:translateY(-1px)}
.special-item-check.checked{
  border-color:rgba(227,193,136,.5);background:rgba(227,193,136,.08);
  box-shadow:inset 0 0 0 1px rgba(227,193,136,.12),0 4px 16px rgba(201,154,91,.12);
}
.special-item-check input{accent-color:#c99a58;width:15px;height:15px}
.special-item-icon.editor-icon{width:30px;height:30px;cursor:pointer}
.special-item-check-name{font-size:12px;color:#cbd2d7}
.editor-actions{display:flex;justify-content:flex-end;margin-top:15px}
.editor-actions .primary-btn{min-width:132px}
.tag-help{font-size:10px;color:#6e7983;margin:11px 0 0;line-height:1.7}

/* ---------- 管理员弹窗 ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(3,5,8,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:70;display:none;place-items:center;padding:20px}
.modal-backdrop.open{display:grid;animation:fadeIn .28s both}
.modal-backdrop.open .modal-card{animation:popIn .38s var(--ease-spring) both}
.modal-card{
  width:min(440px,100%);position:relative;padding:32px;border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(24,30,38,.96),rgba(15,19,25,.97));
  border:1px solid rgba(255,255,255,.13);box-shadow:0 40px 110px rgba(0,0,0,.7);
}
.modal-card::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,transparent,rgba(227,193,136,.6),transparent)}
.modal-card h3{margin:10px 0 9px;font-family:var(--font-kai);font-size:22px;letter-spacing:.08em}
.modal-card p{color:#84909a;font-size:12px;line-height:1.7}
.modal-input{width:100%;margin:9px 0 14px}
.modal-actions{display:flex;gap:9px;justify-content:flex-end}
.modal-message{min-height:18px!important;color:#d9b676!important}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#262e38;border-radius:99px;border:2px solid #0a0d11}
::-webkit-scrollbar-thumb:hover{background:#3a4552}

/* ---------- 响应式 ---------- */
@media(max-width:820px){
  .topbar{height:68px;padding:0 15px}
  .dataset-badge{display:none}
  .shell{padding:16px 12px 56px}
  .hero{grid-template-columns:1fr;padding:28px 22px;gap:24px;min-height:0}
  .hero::after{font-size:130px;top:-18px}
  .hero h2{font-size:31px}
  .hero p{font-size:15px}
  .quick-stats{gap:20px;flex-wrap:wrap}
  .controls{display:grid;grid-template-columns:1fr 1fr}
  .controls label,.controls label.wide{min-width:0}
  .control-btn{margin:0}
  .table-headline{align-items:flex-start}
  .legend{display:none}
  .drawer{border-radius:18px 0 0 18px}
  .drawer-hero,.detail-grid,.drawer-section{padding-left:20px;padding-right:20px}
  .detail-grid{grid-template-columns:1fr 1fr}
  .top-actions .ghost-btn{padding:0 12px}
  .brand p{display:none}
  .brand h1{font-size:21px}
  .searchbox input{font-size:16px}
  th{font-size:11px}
  td{font-size:14px}
  .nickname{font-size:15px}
  .uid{font-size:13px}
  .menpai-pill{font-size:12px}
  .power{font-size:16px}
  .tag-edit-row{grid-template-columns:1fr 54px 54px 30px}
  .editor-subtitle span{display:block;margin:4px 0 0}
  .special-item-icon{width:27px;height:27px}
}
@media(max-width:520px){
  .controls{grid-template-columns:1fr}
  .hero{padding:24px 18px}
  .tab{padding:0 16px}
  .tab-link{padding:0 12px;gap:6px;font-size:14px}
  .tab-link-icon{width:18px;height:18px}
  .searchbox{height:56px;padding-left:12px}
  .searchbox .primary-btn{min-width:68px;padding:0 12px}
  .detail-grid{grid-template-columns:1fr 1fr}
  .drawer-name{font-size:27px}
  .guild-statline{grid-template-columns:1fr}
  .guild-statline>div{border-right:0;border-bottom:1px solid var(--line-soft)}
  .guild-statline>div:last-child{border-bottom:0}
  .power-chart{min-height:145px}
  .history-chip{min-width:calc(50% - 5px)}
  .history-summary{padding:10px}
  .special-item-group-grid{grid-template-columns:1fr}
  .recent-change-badge{height:18px;padding:0 5px;font-size:9px}
  .drawer-name-line{gap:7px}
}

/* ---------- 减少动态偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- 首页主标题：动态金色渐变流光 ---------- */
.hero h2{
  background:linear-gradient(
    100deg,
    #a87f45 0%,
    #e3c188 20%,
    #fff1c9 38%,
    #ffffff 50%,
    #ffd98a 60%,
    #e3c188 78%,
    #a87f45 100%
  );
  background-size:300% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  animation:heroTitleFlow 4s ease-in-out infinite;
  filter:drop-shadow(0 0 8px rgba(227,193,136,.18));
}

@keyframes heroTitleFlow{
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}

@media (prefers-reduced-motion:reduce){
  .hero h2{animation:none;background-position:50% 50%;}
}

/* ==========================================================================
   帮派情报：评级 / 稳定度 / 人员流向关系网
   ========================================================================== */
.guild-hero-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}
.guild-rating-badge,.guild-stability-badge{
  display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);white-space:nowrap;vertical-align:middle
}
.guild-rating-badge b{font:700 16px var(--font-num);letter-spacing:.035em}
.guild-rating-badge small,.guild-stability-badge small{font-size:11px;color:#a9b0b8;letter-spacing:.035em}
.guild-rating-badge.compact,.guild-stability-badge.compact{height:28px;padding:0 9px;gap:0}
.guild-rating-badge.compact b,.guild-stability-badge.compact b{font-size:14px}
.guild-rating-badge.tier-splus{border-color:rgba(255,210,118,.48);background:linear-gradient(180deg,rgba(222,169,72,.22),rgba(142,91,29,.12));color:#ffe0a4}
.guild-rating-badge.tier-s{border-color:rgba(202,166,255,.42);background:rgba(143,98,207,.15);color:#dcc1ff}
.guild-rating-badge.tier-aplus{border-color:rgba(111,209,181,.4);background:rgba(70,153,130,.13);color:#a8e4d3}
.guild-rating-badge.tier-a{border-color:rgba(115,170,222,.36);background:rgba(65,117,164,.12);color:#b7d7f2}
.guild-rating-badge.tier-bplus{border-color:rgba(154,164,174,.32);background:rgba(103,113,124,.1);color:#c1c8ce}

.guild-stability-badge b{font:700 15px var(--font-num)}
.guild-stability-badge.steady{border-color:rgba(111,209,181,.4);color:#a9e8d5;background:rgba(69,149,126,.12)}
.guild-stability-badge.good{border-color:rgba(141,194,156,.35);color:#b5dcbf;background:rgba(84,132,96,.11)}
.guild-stability-badge.normal{border-color:rgba(227,193,136,.38);color:#ead2a9;background:rgba(161,119,58,.11)}
.guild-stability-badge.warn{border-color:rgba(232,154,94,.4);color:#f0b783;background:rgba(166,91,45,.12)}
.guild-stability-badge.risk{border-color:rgba(224,104,95,.44);color:#f0a49e;background:rgba(166,61,55,.13)}

.guild-analytics-section{border-top:1px solid var(--line-soft)}
.guild-analytics-section>h4{font-size:16px;margin-bottom:16px;letter-spacing:.095em}
.guild-rating-panel,.guild-stability-panel,.relation-network-wrap,.relation-list{
  border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.022)
}
.guild-rating-panel,.guild-stability-panel{padding:18px}
.rating-overview{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.rating-emblem{
  flex:0 0 70px;height:70px;border-radius:19px;display:grid;place-items:center;
  font:700 29px var(--font-num);border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 0 30px rgba(255,255,255,.025)
}
.rating-emblem.tier-splus{color:#ffe2a5;border-color:rgba(255,211,118,.46);background:radial-gradient(circle at 35% 25%,rgba(255,222,148,.23),rgba(135,86,24,.14))}
.rating-emblem.tier-s{color:#dec5ff;border-color:rgba(202,166,255,.4);background:radial-gradient(circle at 35% 25%,rgba(192,150,250,.18),rgba(89,55,140,.12))}
.rating-emblem.tier-aplus{color:#a9e5d4;border-color:rgba(111,209,181,.38);background:radial-gradient(circle at 35% 25%,rgba(104,211,181,.16),rgba(45,112,93,.1))}
.rating-emblem.tier-a{color:#bddaf3;border-color:rgba(115,170,222,.34);background:radial-gradient(circle at 35% 25%,rgba(109,173,230,.15),rgba(47,94,137,.1))}
.rating-emblem.tier-bplus{color:#c6cdd3;border-color:rgba(154,164,174,.3);background:rgba(105,116,127,.08)}
.rating-overview>div:last-child{min-width:0}
.rating-overview span{display:block;color:#7d8893;font-size:12px;letter-spacing:.075em;margin-bottom:3px}
.rating-overview b{font:600 32px var(--font-num);color:#efe1c9}
.rating-overview small{display:block;color:#89939d;font-size:12px;margin-top:4px;line-height:1.55}
.rating-factors{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.rating-factor-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:6px}
.rating-factor-head span{font-size:12px;color:#9aa4ad}.rating-factor-head span small{color:#66717c}
.rating-factor-head b{font:600 14px var(--font-num);color:#d5c4a9}
.rating-factor-track{height:5px;border-radius:99px;background:rgba(255,255,255,.055);overflow:hidden}
.rating-factor-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(200,154,91,.68),#edd19d);box-shadow:0 0 12px rgba(227,193,136,.2)}

.stability-score{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "state value";align-items:center}
.stability-score span{grid-area:label;font-size:12px;color:#7f8a94;letter-spacing:.075em}
.stability-score b{grid-area:value;font:600 34px var(--font-num);color:#e8dcc6}
.stability-score small{grid-area:state;color:#9da6ae;font-size:12px;margin-top:4px}
.stability-meter{height:7px;margin:12px 0 15px;background:rgba(255,255,255,.055);border-radius:99px;overflow:hidden}
.stability-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b48a55,#e1c285);transition:width .55s var(--ease-spring)}
.guild-stability-panel.steady .stability-meter i,.guild-stability-panel.good .stability-meter i{background:linear-gradient(90deg,#4f9a85,#8fd0bf)}
.guild-stability-panel.warn .stability-meter i{background:linear-gradient(90deg,#a96b42,#e3a166)}
.guild-stability-panel.risk .stability-meter i{background:linear-gradient(90deg,#9c4e49,#e0685f)}
.movement-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-soft);border-radius:11px;overflow:hidden}
.movement-stat-grid>div{padding:10px;border-right:1px solid var(--line-soft);background:rgba(255,255,255,.015)}
.movement-stat-grid>div:last-child{border-right:0}
.movement-stat-grid small{display:block;color:#6f7a84;font-size:11px;margin-bottom:6px}
.movement-stat-grid b{font:600 14px var(--font-num);font-variant-numeric:tabular-nums}
.analytics-note{margin:12px 0 0;color:#68737d;font-size:11.5px;line-height:1.75}
.relation-in-text{color:#8fd0bf!important}.relation-out-text{color:#e58a7e!important}

.relation-summary-strip{
  display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:11px;
  overflow:hidden;margin-bottom:10px;background:rgba(255,255,255,.02)
}
.relation-summary-strip span{padding:11px 13px;color:#7e8993;font-size:12px;border-right:1px solid var(--line-soft)}
.relation-summary-strip span:last-child{border-right:0}
.relation-summary-strip b{display:block;margin-top:5px;font:600 16px var(--font-num)}
.relation-network-wrap{padding:10px 10px 6px;overflow:hidden}
.relation-legend{display:flex;gap:14px;justify-content:flex-end;padding:2px 4px 5px;color:#6f7a84;font-size:10.5px}
.relation-legend span{display:flex;align-items:center;gap:5px}
.relation-legend i{width:15px;height:2px;border-radius:2px;display:inline-block}
.legend-in i{background:#8fd0bf}.legend-out i{background:#e58a7e}
.relation-network{display:block;width:100%;height:auto;min-height:260px;overflow:visible}
.relation-edge{fill:none;stroke-linecap:round;stroke-width:1.7;opacity:.7}
.relation-edge-in{stroke:#77bba9}.relation-edge-out{stroke:#d57970}
.relation-edge:hover{opacity:1;stroke-width:2.5}
.relation-arrow-in{fill:#8fd0bf}.relation-arrow-out{fill:#e58a7e}
.relation-center-glow{pointer-events:none}
.relation-center-node{fill:#171c22;stroke:#d9b978;stroke-width:1.3;filter:drop-shadow(0 0 12px rgba(227,193,136,.15))}
.relation-center-name{fill:#f0ddba;font:600 12.5px var(--font-kai)}
.relation-center-sub{fill:#747e88;font:9.5px sans-serif;letter-spacing:.07em}
.relation-node{cursor:pointer;outline:none}
.relation-node circle{fill:#151a20;stroke:rgba(255,255,255,.13);stroke-width:1;transition:stroke .2s,fill .2s,filter .2s}
.relation-node:hover circle,.relation-node:focus circle{stroke:rgba(227,193,136,.58);fill:#1a2027;filter:drop-shadow(0 0 8px rgba(227,193,136,.12))}
.relation-node-name{fill:#c8ced3;font:11.5px var(--font-kai);pointer-events:none}
.relation-node-count{fill:#707a84;font:9px var(--font-num);pointer-events:none}

.relation-list{margin-top:10px;overflow:hidden}
.relation-list-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px;
  border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .2s,padding-left .2s var(--ease-spring)
}
.relation-list-row:last-child{border-bottom:0}
.relation-list-row:hover{background:linear-gradient(90deg,rgba(227,193,136,.06),transparent);padding-left:15px}
.relation-list-main{min-width:0}.relation-list-main b{display:block;color:#d9d6ce;font-size:13.5px;font-weight:500}
.relation-list-main small{display:block;color:#65707a;font-size:10.5px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.relation-list-counts{display:flex;align-items:center;gap:8px;font-size:10.5px;white-space:nowrap}
.relation-list-counts strong{font:600 13px var(--font-num)}
.guild-intel-hero{padding-bottom:25px}

@media(max-width:820px){
  .rating-factors{grid-template-columns:1fr}
  .movement-stat-grid{grid-template-columns:1fr 1fr}
  .movement-stat-grid>div:nth-child(2){border-right:0}
  .movement-stat-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
  .relation-network{min-height:230px}
}
@media(max-width:520px){
  .guild-rating-badge,.guild-stability-badge{height:30px;padding:0 9px}
  .rating-emblem{flex-basis:60px;height:60px;font-size:25px;border-radius:16px}
  .relation-summary-strip{grid-template-columns:1fr}
  .relation-summary-strip span{border-right:0;border-bottom:1px solid var(--line-soft)}
  .relation-summary-strip span:last-child{border-bottom:0}
  .relation-list-row{grid-template-columns:1fr}
  .relation-list-counts{justify-content:flex-start;flex-wrap:wrap}
  .relation-network-wrap{padding:8px 3px 3px}
  .relation-network{min-height:210px}
}

.relation-node.historical-only{cursor:default;opacity:.58}
.relation-node.historical-only:hover circle{stroke:rgba(255,255,255,.13);fill:#151a20;filter:none}
.relation-list-row.historical-only{cursor:default;opacity:.7}
.relation-list-row.historical-only:hover{padding-left:12px;background:transparent}

/* ---------- 玩家详情图片 / 视频展示位 ---------- */
.role-media-section{border-top:1px solid var(--line-soft)}
.role-media-card,.role-media-empty{
  overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
}
.role-media-card{position:relative}
.role-media-content{display:block;width:100%;max-height:440px;object-fit:contain;background:#070a0e}
video.role-media-content{aspect-ratio:16/9;min-height:210px}
.role-media-meta{padding:9px 12px;border-top:1px solid var(--line-soft);font-size:10px;color:#6f7a84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-media-empty{min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:22px;text-align:center}
.role-media-empty span{font-size:12px;color:#929ca5}.role-media-empty small{font-size:10px;color:#616c76;line-height:1.6}
.media-editor{border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.02);padding:12px}
.media-editor-current{font-size:11px;color:#7f8a94;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-file-picker{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px dashed rgba(227,193,136,.32);border-radius:11px;background:rgba(227,193,136,.035);color:#cfb17e;font-size:12px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s var(--ease-spring)}
.media-file-picker:hover{border-color:rgba(227,193,136,.58);background:rgba(227,193,136,.07);transform:translateY(-1px)}
.media-file-picker input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.media-upload-preview{margin-top:10px}
.media-upload-preview:empty{display:none}
.media-upload-preview img,.media-upload-preview video{display:block;width:100%;max-height:260px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#070a0e}
.media-editor-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:10px}
.media-editor-actions .compact-btn{margin-top:0}
.media-editor-actions .primary-btn:disabled{opacity:.42;cursor:not-allowed;transform:none}
.danger-btn{color:#d8a29d;border-color:rgba(224,104,95,.28)}
.danger-btn:hover{color:#f0b3ad;border-color:rgba(224,104,95,.5);background:rgba(224,104,95,.08)}
@media(max-width:520px){
  .role-media-content{max-height:340px}
  video.role-media-content{min-height:180px}
  .media-editor-actions{justify-content:stretch}
  .media-editor-actions button{flex:1}
}



@media (max-width:620px){
  .ocr-edit-row,.ocr-reason-label,.ocr-audit-row{grid-template-columns:1fr;gap:6px}
  .ocr-toggle-label{padding-top:0}
  .ocr-actions{justify-content:stretch}
  .ocr-actions button{flex:1}
  .ocr-audit-row>small{grid-column:1}
  .uid-detail-card{padding-right:50px}
  .uid-copy-btn{right:12px;bottom:12px}
  .relation-group{grid-template-columns:62px minmax(0,1fr)}
  .relation-type-name{font-size:14px}
  .relation-person-meta{max-width:36%}
  .social-relation-group,.rumor-edit-row{grid-template-columns:1fr;gap:7px}
  .social-type-toggle{padding-top:0}
  .rumor-edit-controls{justify-content:flex-end}
}


/* ---------- 人物关系谱图标兜底修复：防止 SVG 未命中旧缓存样式时按浏览器默认尺寸放大 ---------- */
svg.relation-type-icon{
  display:inline-block!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  max-width:16px!important;
  max-height:16px!important;
  flex:0 0 16px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vertical-align:middle;
  overflow:visible;
}
.social-type-name svg.relation-type-icon{
  width:15px!important;
  height:15px!important;
  min-width:15px!important;
  min-height:15px!important;
  max-width:15px!important;
  max-height:15px!important;
  flex-basis:15px!important;
}

/* ---------- 角色抽屉下半区字号统一放大 125% ----------
   生效范围：从“玩家图片 / 视频”开始，到角色抽屉末尾。
   仅调整字号，不整体缩放卡片、间距与布局。 ---------- */
#drawerContent .role-media-section,
#drawerContent .role-media-section ~ .drawer-section{
  font-size:18.75px;
}
#drawerContent .role-media-section h4,
#drawerContent .role-media-section ~ .drawer-section h4{font-size:17.5px}

/* 玩家图片 / 视频 */
#drawerContent .role-media-section .role-media-meta{font-size:12.5px}
#drawerContent .role-media-section .role-media-empty span{font-size:15px}
#drawerContent .role-media-section .role-media-empty small{font-size:12.5px}

/* 功力曲线 / 历史记录 */
#drawerContent .role-media-section ~ .drawer-section .history-match{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .history-empty{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .history-summary>span{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .history-summary>b{font-size:22.5px}
#drawerContent .role-media-section ~ .drawer-section .history-summary>small{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .power-axis-label{font-size:11.25px}
#drawerContent .role-media-section ~ .drawer-section .history-chip b{font-size:16.25px}
#drawerContent .role-media-section ~ .drawer-section .history-chip small{font-size:11.25px}
#drawerContent .role-media-section ~ .drawer-section .timeline-row b{font-size:16.25px}
#drawerContent .role-media-section ~ .drawer-section .timeline-row small{font-size:11.25px}

/* 所在帮派排名 */
#drawerContent .role-media-section ~ .drawer-section .guild-statline small{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .guild-statline b{font-size:17.5px}

/* 人物关系谱 */
#drawerContent .role-media-section ~ .drawer-section .relation-type-name{font-size:20px}
#drawerContent .role-media-section ~ .drawer-section .relation-type small{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .relation-person-main b{font-size:16.25px}
#drawerContent .role-media-section ~ .drawer-section .relation-person-main small{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .relation-person-meta{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .relation-person-meta i{font-size:22.5px}

/* 江湖流言板 */
#drawerContent .role-media-section ~ .drawer-section .rumor-head>span{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .rumor-status{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .rumor-item p{font-size:18.75px}

/* 下半区管理员编辑器 */
#drawerContent .role-media-section ~ .drawer-section .admin-lock{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .editor-subtitle{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .editor-subtitle span{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .social-type-toggle{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .social-row-remove{font-size:22.5px}
#drawerContent .role-media-section ~ .drawer-section .social-add-uid{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .rumor-edit-text{font-size:17.5px}
#drawerContent .role-media-section ~ .drawer-section .rumor-edit-status{font-size:13.75px}

#drawerContent .role-media-section ~ .drawer-section .ocr-editor-note{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-toggle-label{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .ocr-value{font-size:16.25px}
#drawerContent .role-media-section ~ .drawer-section .ocr-field-main small{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .ocr-reason-label{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-history-option{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-audit-title{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-audit-row>span{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-audit-row>b{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .ocr-audit-row>small{font-size:12.5px}

#drawerContent .role-media-section ~ .drawer-section .tag-input{font-size:18.75px}
#drawerContent .role-media-section ~ .drawer-section .tag-color-field span{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .tag-row-remove{font-size:26.25px}
#drawerContent .role-media-section ~ .drawer-section .special-item-group-title{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .special-item-check-name{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .tag-help{font-size:12.5px}
#drawerContent .role-media-section ~ .drawer-section .media-editor-current{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .media-file-picker{font-size:15px}
#drawerContent .role-media-section ~ .drawer-section .primary-btn,
#drawerContent .role-media-section ~ .drawer-section .ghost-btn{font-size:17.5px}
#drawerContent .role-media-section ~ .drawer-section .compact-btn{font-size:16.25px}
#drawerContent .role-media-section ~ .drawer-section .social-add-uid{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .modal-message{font-size:18.75px}

/* 手机端原本关系类型为 14px，这里按同样 125% 比例放大到 17.5px */
@media(max-width:620px){
  #drawerContent .role-media-section ~ .drawer-section .relation-type-name{font-size:17.5px}
}

#drawerContent .role-media-section ~ .drawer-section .power-chart-toolbar>span{font-size:13.75px}
#drawerContent .role-media-section ~ .drawer-section .power-range-btn{font-size:13.75px}


/* 2026-08-18：角色抽屉 · 历史帮派 */
.guild-history-timeline .history-guild-jump{cursor:pointer;transition:background .18s ease}
.guild-history-timeline .history-guild-jump:hover{background:rgba(227,193,136,.045)}
.guild-history-timeline .history-guild-jump b{display:flex;align-items:center;gap:8px}
.history-current-label{
  display:inline-flex;align-items:center;height:18px;padding:0 6px;border:1px solid rgba(227,193,136,.24);
  border-radius:999px;background:rgba(227,193,136,.08);color:var(--gold-soft);font-size:9px;font-style:normal;
  font-weight:500;line-height:1
}
#drawerContent .role-media-section ~ .drawer-section .history-current-label{font-size:11.25px}


/* Anonymous social / rumor submissions */
.hidden{display:none!important}
.public-submission-section{border-top:1px solid var(--line-soft)}
.public-submission-note{margin:-2px 0 13px;color:#88939c;font-size:15px;line-height:1.75}
.submission-form-card{display:grid;gap:10px;margin-top:10px;padding:13px;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:rgba(255,255,255,.022)}
.submission-relation-grid{display:grid;grid-template-columns:116px minmax(0,1fr);gap:9px}
.submission-select{height:40px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#10151a;color:#c9d0d5;padding:0 10px;outline:none;font:15px "Microsoft YaHei",sans-serif}
.submission-note-input{width:100%}
.submission-rumor-text{min-height:92px}
.submission-actions{display:flex;align-items:center;gap:10px;min-height:34px}
.submission-msg{font-size:13px;color:#89949d}.submission-msg.ok{color:#76c79a}.submission-msg.error{color:#df8d8d}
.submission-review-modal-card{width:min(760px,calc(100vw - 30px));max-height:min(82vh,780px);display:flex;flex-direction:column}
.submission-review-toolbar{display:flex;align-items:center;gap:12px;margin:8px 0 13px}.submission-review-toolbar .modal-input{width:150px;margin:0}
.submission-review-list{display:grid;gap:10px;overflow:auto;padding-right:4px;min-height:120px}
.submission-review-card{display:grid;gap:9px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.024)}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.review-top time{font-size:11px;color:#67727c}
.review-role-link{padding:0;border:0;background:none;color:#e0c99f;cursor:pointer;font:600 14px "Microsoft YaHei",sans-serif;text-align:left}.review-role-link:hover{text-decoration:underline}
.review-uid{margin-left:6px;color:#75808a;font:11px var(--font-mono,monospace);font-weight:400}
.review-main{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#cbd2d7;font-size:14px}.review-main b:first-child{color:#d9b879}
.review-rumor{padding:10px 11px;border-left:2px solid rgba(227,193,136,.45);background:rgba(0,0,0,.15);color:#d5dadd;font-size:14px;line-height:1.75;white-space:pre-wrap}
.review-note{color:#87939c;font-size:12px;line-height:1.65}
.review-actions{display:flex;justify-content:flex-end;gap:8px}.review-status{justify-self:end;padding:4px 8px;border-radius:999px;font-size:11px}.review-approved{color:#78c99c;background:rgba(72,171,116,.1)}.review-rejected{color:#d88d8d;background:rgba(184,76,76,.1)}
@media(max-width:640px){.submission-relation-grid{grid-template-columns:1fr}.submission-review-modal-card{max-height:90vh}.review-top{align-items:flex-start;flex-direction:column}.review-actions{justify-content:stretch}.review-actions button{flex:1}}
