/* ============================================================
   星痕编年史 — 中世纪视觉体系
   深棕夜幕 · 羊皮纸卷轴 · 烫金压印 · 篝火余烬
   ============================================================ */
:root{
  --bg:#17100a;
  --bg2:#241708;
  --ink:#3a2a18;
  --parchment:#e9d9ae;
  --parchment2:#dcc68f;
  --parchment3:#cdb379;
  --gold:#c9a227;
  --gold-hi:#f0d060;
  --gold-dim:#8a6d1d;
  --crimson:#8a2323;
  --text:#e8d9b0;
  --text-dim:#a8905f;
  --shadow:rgba(0,0,0,.55);
  --serif:'Noto Serif SC',serif;
  --runefont:'Ma Shan Zheng',var(--serif);
  --latin:'Cinzel',var(--serif);
  --latin-deco:'Cinzel Decorative',var(--serif);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scrollbar-color:var(--gold-dim) var(--bg)}
body{
  background:
    radial-gradient(1200px 600px at 50% -10%, #3a2410 0%, transparent 60%),
    radial-gradient(900px 500px at 85% 110%, #2a1a0c 0%, transparent 55%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg) 40%, #100a05 100%);
  background-attachment:fixed;
  color:var(--text);
  font-family:var(--serif);
  min-height:100vh;
  overflow-x:hidden;
}
/* 羊皮纸底纹（噪点） */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}
#ember-canvas{position:fixed;inset:0;z-index:1;pointer-events:none}
.vignette{position:fixed;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(8,5,2,.75) 100%)}
.hidden{display:none !important}

/* ─────────── 通用 · 卷轴 ─────────── */
.scroll{position:relative;max-width:760px;margin:0 auto;filter:drop-shadow(0 18px 28px var(--shadow))}
.scroll-body{
  position:relative;
  background:
    radial-gradient(700px 180px at 50% 0%, rgba(120,80,30,.28), transparent 70%),
    radial-gradient(700px 200px at 50% 100%, rgba(120,80,30,.30), transparent 70%),
    linear-gradient(90deg, rgba(90,55,20,.55) 0%, rgba(90,55,20,.18) 4%, transparent 10%, transparent 90%, rgba(90,55,20,.18) 96%, rgba(90,55,20,.55) 100%),
    linear-gradient(180deg, var(--parchment) 0%, var(--parchment2) 55%, var(--parchment3) 100%);
  color:var(--ink);
  padding:44px 52px;
  border-radius:3px;
}
/* 烧边与做旧斑 */
.scroll-body::before{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:3px;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.055' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.32 0 0 0 0 0.14 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23p)'/%3E%3C/svg%3E");
}
.scroll-rod{
  height:26px;border-radius:13px;position:relative;z-index:2;
  background:linear-gradient(180deg,#6b4a26 0%,#3f2a12 45%,#241505 100%);
  box-shadow:0 6px 14px rgba(0,0,0,.6), inset 0 2px 3px rgba(255,220,150,.25);
}
.scroll-rod::before,.scroll-rod::after{
  content:"";position:absolute;top:2px;width:20px;height:22px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #8a6234, #2a1a0a 70%);
  box-shadow:inset 0 -3px 5px rgba(0,0,0,.7);
}
.scroll-rod::before{left:-10px}
.scroll-rod::after{right:-10px}
.rod-top{margin-bottom:-8px}
.rod-bottom{margin-top:-8px}

/* ─────────── 按钮 ─────────── */
.btn{
  font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:2px;
  padding:11px 26px;cursor:pointer;position:relative;
  color:var(--gold-hi);
  background:linear-gradient(180deg,#3d2a12 0%,#241708 100%);
  border:1px solid var(--gold-dim);
  border-radius:4px;
  box-shadow:0 4px 10px rgba(0,0,0,.5), inset 0 1px 0 rgba(240,208,96,.28);
  transition:all .22s ease;
}
.btn:hover{
  border-color:var(--gold);color:#ffe9a0;
  box-shadow:0 4px 14px rgba(201,162,39,.35), inset 0 1px 0 rgba(240,208,96,.45);
  transform:translateY(-1px);
}
.btn:active{transform:translateY(1px)}
.btn-gold{
  background:linear-gradient(180deg,#8a6d1d 0%,#5c4510 55%,#3d2d0a 100%);
  border-color:var(--gold);
  text-shadow:0 1px 2px rgba(0,0,0,.6);
}
.btn-big{font-size:18px;padding:15px 42px}
.btn-ghost{background:transparent;border-color:#8a7350;color:#6b5330;box-shadow:none}
.btn-ghost:hover{color:#8a2323;border-color:#8a2323;box-shadow:none}
.btn-rune{font-family:var(--runefont);margin:0 6px}

/* ─────────── 登录之门 ─────────── */
.gate{position:relative;z-index:5;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 16px}
.gate-inner{text-align:center;max-width:820px;width:100%}
.crest{color:var(--gold);margin-bottom:8px;animation:crestGlow 3.2s ease-in-out infinite}
.crest-svg{width:110px;height:110px;filter:drop-shadow(0 0 18px rgba(201,162,39,.45))}
@keyframes crestGlow{
  0%,100%{filter:drop-shadow(0 0 10px rgba(201,162,39,.3))}
  50%{filter:drop-shadow(0 0 26px rgba(240,208,96,.6))}
}
.gate-title{margin-bottom:4px}
.gate-title-cn{
  display:block;
  font-family:var(--runefont);
  font-size:clamp(52px,9vw,96px);
  letter-spacing:14px;
  background:linear-gradient(180deg,#f7e6a2 10%,#c9a227 55%,#8a6d1d 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 40px rgba(201,162,39,.25);
}
.gate-title-en{
  display:block;font-family:var(--latin-deco);font-size:clamp(11px,1.6vw,16px);
  letter-spacing:9px;color:var(--gold-dim);margin-top:8px;
}
.gate-sub{color:var(--text-dim);letter-spacing:4px;font-size:14px;margin:14px 0 30px}
.gate-scroll{animation:scrollUnfurl 1.1s cubic-bezier(.22,1,.36,1) both}
@keyframes scrollUnfurl{
  0%{transform:scaleY(.06);opacity:0}
  60%{opacity:1}
  100%{transform:scaleY(1)}
}
.gate-lore{line-height:2.1;font-size:16px;text-align:center;margin-bottom:26px;color:#4a3420}
.gate-actions{text-align:center}
.gate-hint{margin-top:14px;font-size:12.5px;color:#7a5f36;letter-spacing:1px}
.gate-version{margin-top:26px;font-size:12px;color:#5d4a28;font-family:var(--latin);letter-spacing:2px}

/* ─────────── 主界面框架 ─────────── */
.app{position:relative;z-index:5;min-height:100vh;display:flex;flex-direction:column}
.topbar{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:26px;
  padding:0 28px;height:64px;
  background:linear-gradient(180deg,rgba(26,17,9,.96),rgba(20,13,7,.9));
  border-bottom:1px solid rgba(201,162,39,.35);
  backdrop-filter:blur(6px);
  box-shadow:0 6px 18px rgba(0,0,0,.5);
}
.topbar-brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand-crest{width:34px;height:34px;color:var(--gold)}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-cn{font-family:var(--runefont);font-size:22px;letter-spacing:5px;color:var(--gold-hi)}
.brand-en{font-family:var(--latin);font-size:8.5px;letter-spacing:2.5px;color:var(--gold-dim)}
.topbar-nav{display:flex;gap:6px;flex:1}
.nav-link{
  font-family:var(--serif);font-size:15px;letter-spacing:3px;cursor:pointer;
  color:var(--text-dim);background:none;border:none;padding:8px 16px;position:relative;
  transition:color .2s;
}
.nav-link::after{
  content:"";position:absolute;left:16px;right:16px;bottom:2px;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);transition:transform .25s;
}
.nav-link:hover{color:var(--text)}
.nav-link.active{color:var(--gold-hi)}
.nav-link.active::after{transform:scaleX(1)}
.topbar-user{position:relative}
.user-chip{display:flex;align-items:center;gap:10px;cursor:pointer;padding:6px 10px;border-radius:6px;border:1px solid transparent;transition:border-color .2s}
.user-chip:hover{border-color:rgba(201,162,39,.4)}
.user-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-dim);box-shadow:0 0 10px rgba(201,162,39,.3)}
.user-name{font-size:15px;color:var(--text);letter-spacing:1px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-role{font-size:11px;color:var(--gold);border:1px solid var(--gold-dim);border-radius:3px;padding:1px 6px;letter-spacing:1px}
.user-menu{
  position:absolute;right:0;top:56px;min-width:160px;z-index:60;
  background:linear-gradient(180deg,#2c1d0e,#1c1208);
  border:1px solid var(--gold-dim);border-radius:6px;overflow:hidden;
  box-shadow:0 12px 26px rgba(0,0,0,.6);
}
.menu-item{
  display:block;width:100%;text-align:left;padding:12px 18px;cursor:pointer;
  background:none;border:none;color:var(--text);font-family:var(--serif);font-size:14px;letter-spacing:2px;
  transition:background .15s,color .15s;
}
.menu-item:hover{background:rgba(201,162,39,.14);color:var(--gold-hi)}

/* ─────────── 页面通用 ─────────── */
.page{position:relative;flex:1;width:100%;max-width:1240px;margin:0 auto;padding:34px 28px 60px}
.hall-banner{text-align:center;margin-bottom:30px}
.hall-title{
  font-family:var(--runefont);font-size:clamp(34px,5vw,52px);letter-spacing:12px;
  background:linear-gradient(180deg,#f7e6a2 10%,#c9a227 60%,#8a6d1d 95%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hall-sub{font-family:var(--latin);font-size:11px;letter-spacing:3.5px;color:var(--gold-dim);margin-top:8px}
.hall-actions{text-align:center;margin-bottom:34px}

/* ─────────── 房间卡片 ─────────── */
.room-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:24px;
}
.room-card{
  position:relative;cursor:pointer;
  background:
    linear-gradient(90deg, rgba(90,55,20,.5) 0%, transparent 6%, transparent 94%, rgba(90,55,20,.5) 100%),
    linear-gradient(180deg,var(--parchment) 0%,var(--parchment2) 60%,var(--parchment3) 100%);
  color:var(--ink);border-radius:4px;padding:26px 26px 20px;
  box-shadow:0 12px 24px var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
  animation:roomIn .5s ease both;
}
.room-card::before{ /* 顶部小火漆印 */
  content:"";position:absolute;top:-1px;left:26px;right:26px;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold-dim) 20%,var(--gold-dim) 80%,transparent);
}
@keyframes roomIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.room-card:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 20px 34px var(--shadow)}
.room-theme{font-size:11px;letter-spacing:3px;color:#8a6d1d;margin-bottom:8px;font-weight:600}
.room-name{font-family:var(--runefont);font-size:26px;letter-spacing:3px;margin-bottom:10px;color:#3a2410}
.room-desc{font-size:13.5px;line-height:1.9;color:#5d4426;height:52px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.room-meta{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px dashed rgba(90,55,20,.4)}
.room-host{display:flex;align-items:center;gap:8px;font-size:13px;color:#6b4f2a}
.room-host img{width:26px;height:26px;border-radius:50%;border:1px solid #8a6d1d;object-fit:cover}
.room-status{font-size:12px;letter-spacing:2px;padding:3px 10px;border-radius:3px}
.room-status.recruiting{color:#1e5c2e;border:1px solid #3a7a4a;background:rgba(58,122,74,.12)}
.room-status.playing{color:#8a2323;border:1px solid #a54545;background:rgba(165,69,69,.1)}
.room-status.finished{color:#666;border:1px solid #999;background:rgba(120,120,120,.1)}

/* ─────────── 角色页 ─────────── */
.char-scroll{max-width:860px}
.char-body{min-height:380px}
.char-empty{text-align:center;padding:50px 0}
.char-empty-lore{font-size:17px;margin-bottom:24px;color:#5d4426;letter-spacing:2px}
.field{display:block;margin-bottom:20px}
.field-label{display:block;font-size:13px;letter-spacing:3px;color:#8a6d1d;margin-bottom:8px;font-weight:600}
.field input{
  width:100%;padding:12px 16px;font-family:var(--serif);font-size:16px;color:#3a2410;
  background:rgba(255,248,225,.55);border:1px solid #b39a63;border-radius:4px;outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.25)}
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:24px}
.class-card{
  cursor:pointer;text-align:center;padding:16px 8px;border-radius:6px;
  background:rgba(255,248,225,.35);border:1px solid #b39a63;color:#4a3420;
  font-family:var(--serif);transition:all .2s;
  display:flex;flex-direction:column;gap:4px;align-items:center;
}
.class-card:hover{border-color:var(--gold);background:rgba(255,244,200,.6);transform:translateY(-2px)}
.class-card.sel{border-color:var(--gold);background:rgba(240,208,96,.3);box-shadow:0 0 0 2px rgba(201,162,39,.45), 0 6px 14px rgba(120,80,20,.3)}
.class-icon{font-size:26px;color:#8a6d1d}
.class-name{font-size:16px;font-weight:600;letter-spacing:2px}
.class-desc{font-size:11px;color:#7a5f36}
.char-actions{display:flex;justify-content:flex-end;gap:14px}
.char-sheet{text-align:center;padding:30px 0}
.char-sheet-name{font-family:var(--runefont);font-size:40px;letter-spacing:6px;color:#3a2410;margin-bottom:6px}
.char-sheet-class{font-size:14px;letter-spacing:4px;color:#8a6d1d;margin-bottom:20px}

/* ─────────── 管理员书阁 ─────────── */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:28px;align-items:start}
.admin-panel{max-width:none}
/* v10.16：书阁页签化 —— 单列宽幅 + 鎏金页签 */
.admin-grid{grid-template-columns:1fr!important;max-width:880px;margin:18px auto 0;gap:18px}
.admin-panel.ap-hide{display:none}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:880px;margin:16px auto 0;padding:0 10px}
.atab{padding:7px 16px;border:1px solid rgba(214,178,106,.4);border-radius:999px;background:rgba(30,22,12,.6);color:#cbb37f;font-size:13px;letter-spacing:1px;cursor:pointer;transition:all .2s;font-family:inherit}
.atab:hover{border-color:#d6b26a;color:#ffe9b8}
.atab.on{background:linear-gradient(180deg,#6b5326,#4a381a);color:#ffe9b8;border-color:#d6b26a;box-shadow:0 0 12px rgba(214,178,106,.3)}
.admin-panel-title{font-family:var(--runefont);font-size:24px;letter-spacing:4px;color:#3a2410;margin-bottom:8px}
.admin-panel-desc{font-size:13px;color:#6b4f2a;margin-bottom:18px;line-height:1.8}
.invite-result{
  margin-top:18px;padding:16px;text-align:center;border:1px dashed var(--gold-dim);border-radius:6px;
  background:rgba(240,208,96,.16);
}
.invite-code{font-family:var(--latin);font-size:28px;letter-spacing:5px;color:#8a2323;font-weight:700}
.invite-expire{font-size:12px;color:#7a5f36;margin-top:6px}
.invite-list{margin-top:16px}
.invite-item{display:flex;justify-content:space-between;align-items:center;padding:9px 4px;border-bottom:1px dashed rgba(90,55,20,.35);font-size:13px;color:#5d4426}
.invite-item .code{font-family:var(--latin);letter-spacing:2px;color:#8a2323;font-weight:600}
.admin-soon{text-align:center;padding:40px 0;color:#8a7350;font-size:14px;letter-spacing:2px}

/* ─────────── 页脚 / toast ─────────── */
.foot{
  text-align:center;padding:20px;font-size:12px;letter-spacing:2px;color:#5d4a28;
  border-top:1px solid rgba(201,162,39,.18);
}
.foot-sep{margin:0 8px;color:var(--gold-dim)}
.toast{
  position:fixed;left:50%;bottom:46px;transform:translateX(-50%);z-index:200;
  padding:14px 30px;border-radius:6px;
  background:linear-gradient(180deg,#3d2a12,#241708);
  border:1px solid var(--gold);color:var(--gold-hi);
  font-size:14.5px;letter-spacing:2px;
  box-shadow:0 10px 30px rgba(0,0,0,.6), 0 0 20px rgba(201,162,39,.2);
  animation:toastIn .3s ease both;
}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}

/* ─────────── 响应式 ─────────── */
@media (max-width:860px){
  .topbar{gap:8px;padding:0 12px;height:56px}
  .brand-en{display:none}
  .brand-cn{font-size:18px;letter-spacing:3px}
  .brand-crest{width:28px;height:28px}
  .topbar-nav{gap:0;overflow-x:auto;scrollbar-width:none}
  .topbar-nav::-webkit-scrollbar{display:none}
  .nav-link{font-size:13px;padding:8px 8px;letter-spacing:1px;white-space:nowrap;flex-shrink:0}
  .user-name{display:none}
  .user-role{display:none}
  .user-chip{padding:4px}
  .page{padding:22px 14px 50px;min-width:0}
  .scroll-body{padding:30px 22px}
  .gate-title-cn{letter-spacing:8px}
  .hall-sub{letter-spacing:2px;font-size:10px;padding:0 6px}
  .room-meta{flex-wrap:wrap;gap:8px}
  .char-actions{flex-direction:column-reverse}
  .char-actions .btn{width:100%}
}
@media (max-width:560px){
  .brand-text{display:none} /* 极窄屏只留纹章，给导航腾地方 */
  .room-card{padding:20px 18px 16px}
  .room-status{letter-spacing:1px;padding:2px 8px}
}


/* ============================================================
   v0.2 · 布告板 / 任务卷轴 / 角色铸造
   ============================================================ */

/* ─────────── 布告板 ─────────── */
.board-wrap{max-width:1240px;margin:0 auto}
.board{
  position:relative;
  padding:38px 34px 30px;
  border:14px solid transparent;
  border-image:linear-gradient(160deg,#5d3f1e 0%,#2e1d0c 30%,#4a3013 55%,#241505 100%) 14;
  background:
    radial-gradient(circle at 20% 15%, rgba(0,0,0,.25) 0 2px, transparent 3px),
    radial-gradient(circle at 78% 30%, rgba(0,0,0,.22) 0 2px, transparent 3px),
    radial-gradient(circle at 40% 75%, rgba(0,0,0,.2) 0 2px, transparent 3px),
    repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 2px, transparent 2px 96px),
    repeating-linear-gradient(90deg, rgba(255,220,150,.05) 0 3px, transparent 3px 118px),
    linear-gradient(160deg,#4a321f 0%,#332212 100%);
  background-color:#3a2817;
  box-shadow:inset 0 0 60px rgba(0,0,0,.65), 0 22px 44px rgba(0,0,0,.55);
}
.board-nail{
  position:absolute;width:16px;height:16px;border-radius:50%;z-index:3;
  background:radial-gradient(circle at 34% 30%, #d8c49a 0%, #7a6242 38%, #241708 100%);
  box-shadow:0 2px 5px rgba(0,0,0,.8), inset 0 -2px 3px rgba(0,0,0,.6);
}
.nail-tl{top:6px;left:6px}.nail-tr{top:6px;right:6px}
.nail-bl{bottom:6px;left:6px}.nail-br{bottom:6px;right:6px}

/* ─────────── 任务卷轴（钉在板上的破损羊皮纸） ─────────── */
.quest-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:34px 30px;
}
.quest-scroll{
  position:relative;z-index:1;
  padding:34px 24px 24px;
  background:
    radial-gradient(400px 120px at 50% 0%, rgba(110,70,25,.3), transparent 70%),
    radial-gradient(400px 130px at 50% 100%, rgba(110,70,25,.32), transparent 70%),
    linear-gradient(90deg, rgba(85,50,18,.5) 0%, transparent 7%, transparent 93%, rgba(85,50,18,.5) 100%),
    linear-gradient(180deg,#e7d6a9 0%,#d9c28b 55%,#c9b077 100%);
  color:var(--ink);
  box-shadow:0 14px 22px rgba(0,0,0,.5),
    inset 0 13px 10px -10px rgba(40,22,6,.5),
    inset 0 -15px 12px -12px rgba(40,22,6,.55);
  transition:transform .25s ease, box-shadow .25s ease, filter .3s ease;
  /* 撕边：整体平整，带几处缺口 */
  clip-path:polygon(0% 2.5%,5% .8%,12% 2%,20% .5%,28% 2%,36% .8%,45% 2%,54% .6%,63% 2%,72% .8%,81% 2%,90% .6%,97% 2%,100% 3.5%,99.4% 14%,98% 22%,99.4% 34%,100% 46%,99.2% 58%,100% 70%,99% 82%,99.6% 92%,98.5% 98%,92% 99.4%,84% 98%,76% 99.6%,66% 98.2%,57% 99.6%,47% 98%,38% 99.6%,28% 98.2%,18% 99.6%,9% 98%,2.5% 99.4%,.8% 92%,1.6% 80%,.4% 66%,1.6% 52%,.4% 38%,1.6% 24%,.6% 12%);
  animation:questIn .5s ease both;
}
/* 皮革纹理 + 卷边（覆盖全等级） */
.qs-texture{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='2' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 0.3 0 0 0 0 0.19 0 0 0 0 0.07 0 0 0 0.4 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E"),
    repeating-linear-gradient(97deg, rgba(95,62,25,.06) 0 2px, transparent 2px 8px),
    linear-gradient(180deg, rgba(46,26,7,.5) 0%, rgba(46,26,7,.16) 2.6%, rgba(255,244,205,.3) 4.2%, transparent 9%),
    linear-gradient(0deg, rgba(46,26,7,.55) 0%, rgba(46,26,7,.18) 3%, rgba(255,244,205,.24) 4.8%, transparent 10%),
    linear-gradient(90deg, rgba(46,26,7,.26), transparent 6%, transparent 94%, rgba(46,26,7,.26));
}
.quest-scroll > *:not(.qs-texture){position:relative;z-index:1}
.quest-scroll.rank-S .qs-texture{opacity:.35}
@keyframes questIn{from{opacity:0;transform:translateY(18px) rotate(0deg)}to{opacity:1}}
@media (prefers-reduced-motion: reduce){.quest-scroll{animation:none}}
.quest-scroll:hover{transform:translateY(-5px) rotate(0deg) !important;box-shadow:0 22px 34px rgba(0,0,0,.6)}
/* 图钉 */
.quest-scroll::before{
  content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:18px;height:18px;border-radius:50%;z-index:2;
  background:radial-gradient(circle at 34% 30%, #e8d5a8 0%, #8a2323 42%, #3d0f0f 100%);
  box-shadow:0 3px 6px rgba(0,0,0,.75), inset 0 -2px 3px rgba(0,0,0,.6);
}
/* 蜡渍点缀 */
.quest-scroll::after{
  content:"";position:absolute;right:14px;bottom:12px;width:34px;height:34px;border-radius:50% 46% 52% 48%;
  background:radial-gradient(circle at 40% 35%, rgba(138,35,35,.55), rgba(90,20,20,.75) 70%);
  opacity:.5;filter:blur(.4px);pointer-events:none;
}
/* 已出发：半透明灰色 */
.quest-scroll.departed{filter:grayscale(.35) opacity(.85)}
.quest-scroll.departed:hover{transform:none !important;box-shadow:0 14px 22px rgba(0,0,0,.5)}

.quest-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.rank-seal{
  flex-shrink:0;width:54px;height:54px;position:relative;
  display:flex;align-items:center;justify-content:center;
  font-weight:900;line-height:1;
}
/* S级：鎏金烫金封蜡 */
.rank-seal.rank-S{
  font-family:var(--latin);font-size:27px;color:#5c4510;
  background:radial-gradient(circle at 35% 28%, #fff3b8 0%, #eccb4e 38%, #b8891d 72%, #6e4e0c 100%);
  border-radius:48% 52% 55% 45% / 52% 46% 54% 48%;
  box-shadow:inset 0 -5px 9px rgba(90,60,10,.65), inset 0 4px 7px rgba(255,252,230,.75), inset 0 0 0 3px rgba(255,246,200,.4), 0 3px 8px rgba(0,0,0,.5), 0 0 16px rgba(240,208,96,.55);
  text-shadow:0 1px 0 rgba(255,250,220,.85), 0 -1px 2px rgba(80,55,5,.85);
}
.rank-seal.rank-S::after{ /* 蜡泪 */
  content:"";position:absolute;bottom:-4px;left:12px;width:7px;height:9px;border-radius:50% 50% 60% 60%;
  background:radial-gradient(circle at 40% 30%, #eccb4e, #8a6410 80%);
}
/* A级：红色标准封蜡 */
.rank-seal.rank-A{
  font-family:var(--latin);font-size:24px;color:#f6ded0;
  background:radial-gradient(circle at 35% 28%, #d06a58 0%, #a33325 45%, #701c13 82%);
  border-radius:50% 46% 53% 47% / 46% 53% 47% 54%;
  box-shadow:inset 0 -5px 9px rgba(58,8,4,.65), inset 0 3px 6px rgba(255,222,202,.5), inset 0 0 0 3px rgba(255,205,185,.2), 0 3px 7px rgba(0,0,0,.5);
  text-shadow:0 -1px 2px rgba(58,8,4,.9), 0 1px 0 rgba(255,222,202,.4);
}
.rank-seal.rank-A::after{
  content:"";position:absolute;top:-3px;right:10px;width:6px;height:8px;border-radius:60% 60% 50% 50%;
  background:radial-gradient(circle at 40% 30%, #b84a3a, #5e150d 80%);
}
/* B级：刺绣纹章（盾形布章） */
.rank-seal.rank-B{
  width:58px;height:52px;font-family:var(--latin);font-size:23px;color:#f0d060;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(0deg, rgba(0,0,0,.09) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#3d5f95 0%,#25406a 62%,#1a2f50 100%);
  clip-path:polygon(0 0,100% 0,100% 60%,50% 100%,0 60%);
  text-shadow:0 1px 2px rgba(0,0,0,.85), 0 0 4px rgba(240,208,96,.4);
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.55));
}
.rank-seal.rank-B::before{ /* 金线绣边 */
  content:"";position:absolute;inset:3px 4px 6px;
  clip-path:polygon(0 0,100% 0,100% 60%,50% 100%,0 60%);
  background:linear-gradient(180deg,#e8c85a,#b8891d);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  padding:1.6px;opacity:.9;
}
/* C级：手写艺术字 */
.rank-seal.rank-C{
  width:auto;height:auto;background:none;box-shadow:none;
  font-family:'Great Vibes',cursive;font-size:37px;font-weight:400;color:#4a2c10;
  transform:rotate(-8deg);text-shadow:0 0 1px rgba(74,44,16,.55);
}
/* D级：歪歪扭扭的炭笔字 */
.rank-seal.rank-D{
  width:auto;height:auto;background:none;box-shadow:none;
  font-family:'UnifrakturMaguntia',serif;font-size:34px;font-weight:400;color:#3d2a12;
  transform:rotate(7deg) skewX(-5deg);opacity:.9;
  text-shadow:.6px .8px 0 rgba(61,42,18,.5);
}
.quest-title-wrap{flex:1;min-width:0}
.quest-title{font-family:var(--runefont);font-size:clamp(18px,2.2vw,25px);letter-spacing:2px;color:#33200e;line-height:1.3;overflow-wrap:anywhere}
.quest-rankline{font-size:11.5px;letter-spacing:2.5px;color:#8a6d1d;margin-top:3px;font-weight:600}
.quest-desc{font-size:13.5px;line-height:1.95;color:#5d4426;margin:8px 0 14px;
  display:block;overflow:visible;word-break:break-word}
.quest-foot{border-top:1px dashed rgba(90,55,20,.45);padding-top:12px}
.quest-takers{display:flex;align-items:center;gap:6px;margin-bottom:10px;min-height:24px;flex-wrap:wrap}
.taker-chip{
  display:flex;align-items:center;gap:5px;font-size:12px;color:#5d4426;
  background:rgba(255,248,225,.5);border:1px solid rgba(138,109,29,.4);border-radius:12px;padding:2px 9px 2px 3px;
}
.taker-chip img{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid rgba(90,55,20,.5)}
.taker-chip.mine{background:rgba(240,208,96,.4);border-color:var(--gold-dim);font-weight:600}
.taker-chip.missing{background:rgba(138,109,29,.15);border-style:dashed;font-style:italic;opacity:.85;padding:2px 9px}
.taker-count{font-size:12px;color:#7a5f36;letter-spacing:1px;margin-left:auto;white-space:nowrap}
.quest-actions{display:flex}
.btn-accept{
  width:100%;font-size:15px;letter-spacing:6px;padding:10px 0;
  background:linear-gradient(180deg,#8a6d1d,#5c4510 60%,#3d2d0a);
  border:1px solid var(--gold);color:#ffe9a0;border-radius:4px;cursor:pointer;
  font-family:var(--serif);font-weight:600;
  box-shadow:0 3px 8px rgba(0,0,0,.4), inset 0 1px 0 rgba(240,208,96,.35);
  transition:all .2s;
}
.btn-accept:hover{filter:brightness(1.15);transform:translateY(-1px)}
.btn-accept.joined{background:linear-gradient(180deg,#5a7a4a,#33502a 60%,#223618);border-color:#6a9a55;color:#dff0c8}
.btn-accept:disabled{background:#7a7264;border-color:#999;color:#ddd;cursor:not-allowed;transform:none;filter:none;opacity:.75}
.departed-tag{
  width:100%;text-align:center;font-size:14px;letter-spacing:6px;color:#6a6a6a;
  padding:10px 0;border:1px dashed #8a8a8a;border-radius:4px;
}
/* v10.47：已出发 = 执行中 —— 金底醒目，且点名执行队伍 */
.departed-tag.on-duty{
  color:#2c2416;letter-spacing:3px;font-weight:700;
  background:linear-gradient(180deg,#e8cf9a,#c9a75f 70%,#b3904e);
  border:1px solid #8a6f3a;box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
}
.on-duty-names{
  margin-top:8px;padding:7px 10px;border-radius:4px;font-size:13px;letter-spacing:1px;
  color:#e8cf9a;background:rgba(60,46,20,.55);border:1px solid rgba(201,167,95,.5);
}

/* ─────────── 角色铸造 ─────────── */
.char-form-grid{display:grid;grid-template-columns:220px 1fr;gap:26px;margin-bottom:22px}
.char-portrait-col .field-label{margin-bottom:10px}
.portrait-drop{
  position:relative;width:220px;height:300px;border:2px dashed #b39a63;border-radius:6px;
  background:rgba(255,248,225,.35);cursor:pointer;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
  transition:border-color .2s, background .2s;
}
.portrait-drop:hover,.portrait-drop.dragover{border-color:var(--gold);background:rgba(255,244,200,.55)}
.portrait-hint{font-size:14px;color:#8a7350;line-height:2}
.portrait-hint em{font-size:11.5px;font-style:normal;color:#a8905f}
.portrait-drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.field textarea{
  width:100%;padding:12px 16px;font-family:var(--serif);font-size:15px;line-height:1.9;color:#3a2410;
  background:rgba(255,248,225,.55);border:1px solid #b39a63;border-radius:4px;outline:none;resize:vertical;
  transition:border-color .2s, box-shadow .2s;
}
.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.25)}
.field-tip{font-style:normal;font-size:11.5px;color:#a8905f;letter-spacing:0}
.btn-quill{
  background:linear-gradient(180deg,#5c4510,#3d2d0a);
  border-color:var(--gold);color:#ffe9a0;
}
.compose-result{
  margin:0 0 22px;padding:20px 22px;border:1px solid var(--gold-dim);border-radius:6px;
  background:rgba(240,208,96,.14);position:relative;
  animation:questIn .5s ease both;
}
.compose-result::before{content:"🪶 羽毛笔撰写结果";position:absolute;top:-11px;left:16px;padding:0 10px;
  background:var(--parchment2);font-size:12px;letter-spacing:2px;color:#8a6d1d;font-weight:600}
.compose-identity{
  display:inline-block;font-size:17px;letter-spacing:3px;color:#8a2323;font-weight:600;
  border-bottom:2px solid rgba(138,35,35,.4);padding-bottom:4px;margin-bottom:12px;
}
.compose-origin{font-size:14.5px;line-height:2.1;color:#4a3420;text-align:justify}
.char-bind-note{margin-top:16px;font-size:12.5px;color:#a54545;letter-spacing:1px;text-align:right}

/* ─────────── 角色卡 ─────────── */
.char-sheet{display:flex;gap:30px;flex-wrap:wrap}
.char-sheet-portrait{
  width:220px;height:300px;border-radius:6px;object-fit:cover;flex-shrink:0;
  border:3px solid var(--gold-dim);box-shadow:0 10px 22px rgba(60,35,10,.45);
}
.char-sheet-info{flex:1;min-width:260px}
.char-sheet-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.char-sheet-name{font-family:var(--runefont);font-size:38px;letter-spacing:5px;color:#33200e}
.btn-rename{
  font-size:12px;letter-spacing:1px;padding:4px 12px;cursor:pointer;
  background:none;border:1px solid #b39a63;border-radius:3px;color:#7a5f36;font-family:var(--serif);
  transition:all .2s;
}
.btn-rename:hover{border-color:var(--gold);color:#8a6d1d}
.char-sheet-identity{
  display:inline-block;font-size:16px;letter-spacing:3px;color:#8a2323;font-weight:600;
  border:1px solid rgba(138,35,35,.45);border-radius:3px;padding:4px 14px;margin-bottom:16px;
  background:rgba(255,248,225,.45);
}
.char-sheet-origin{font-size:14px;line-height:2.1;color:#4a3420;text-align:justify;margin-bottom:18px;
  border-left:3px solid rgba(138,109,29,.5);padding-left:14px}
.attr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:10px;margin-bottom:20px}
.attr-cell{
  text-align:center;padding:10px 4px;border:1px solid rgba(138,109,29,.45);border-radius:5px;
  background:rgba(255,248,225,.4);
}
.attr-label{font-size:12px;letter-spacing:2px;color:#7a5f36}
.attr-value{font-family:var(--latin);font-size:24px;font-weight:700;color:#5c4510;margin-top:2px}
.char-sheet-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.char-sheet-note{font-size:12px;color:#a54545;letter-spacing:1px;width:100%}
.btn-danger{
  background:linear-gradient(180deg,#8a2323,#5c1414);border-color:#a54545;color:#ffd9d9;
  box-shadow:0 4px 10px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,200,200,.25);
}
.btn-danger:hover{border-color:#d97a7a;color:#fff;box-shadow:0 4px 14px rgba(138,35,35,.4)}

/* ─────────── 羽毛笔加载遮罩 ─────────── */
.quill-overlay{
  position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;
  background:rgba(12,8,4,.78);backdrop-filter:blur(3px);
}
.quill-scene{text-align:center;color:var(--gold)}
.quill-svg{width:90px;height:140px;filter:drop-shadow(0 0 14px rgba(201,162,39,.5));animation:quillBob 1.6s ease-in-out infinite}
@keyframes quillBob{
  0%,100%{transform:translateY(0) rotate(-4deg)}
  50%{transform:translateY(-10px) rotate(4deg)}
}
.quill-lines{margin:18px auto 0;width:180px;display:flex;flex-direction:column;gap:7px;align-items:center}
.quill-lines span{display:block;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:lineGrow 1.4s ease-in-out infinite}
.quill-lines span:nth-child(2){width:75%;animation-delay:.2s}
.quill-lines span:nth-child(1){width:55%}
.quill-lines span:nth-child(3){width:90%;animation-delay:.4s}
@keyframes lineGrow{0%,100%{opacity:.25;transform:scaleX(.6)}50%{opacity:1;transform:scaleX(1)}}
.quill-text{margin-top:16px;font-size:15px;letter-spacing:3px;color:var(--gold-hi);text-shadow:0 0 12px rgba(201,162,39,.5)}

/* ─────────── 辞世确认 ─────────── */
.confirm-overlay{
  position:fixed;inset:0;z-index:160;display:flex;align-items:center;justify-content:center;
  background:rgba(12,8,4,.72);backdrop-filter:blur(3px);padding:16px;
}
.confirm-box{width:min(480px,94vw)}
.confirm-title{font-family:var(--runefont);font-size:26px;letter-spacing:5px;color:#8a2323;margin-bottom:12px;text-align:center}
.confirm-text{font-size:14.5px;line-height:2.1;color:#4a3420;text-align:center;margin-bottom:20px}
.confirm-text b{color:#8a2323}
.confirm-actions{display:flex;justify-content:center;gap:16px}

/* ─────────── v0.2 响应式补充 ─────────── */
@media (max-width:860px){
  .board{padding:22px 14px 18px;border-width:8px}
  .quest-grid{gap:22px 14px}
  .char-form-grid{grid-template-columns:1fr;justify-items:center}
  .char-text-col{width:100%}
  .char-sheet{justify-content:center;text-align:center}
  .char-sheet-origin{text-align:justify}
  .char-sheet-name-row{justify-content:center}
  .char-sheet-actions{justify-content:center}
}


/* ============================================================
   v0.3 · 等级质感递进：D 最破 → S 华贵
   ============================================================ */

/* ── D级：最破的羊皮纸（缺角、霉斑、焦黄） ── */
.quest-scroll.rank-D{
  background:
    radial-gradient(60px 40px at 88% 18%, rgba(60,35,10,.35), transparent 70%),
    radial-gradient(90px 60px at 8% 85%, rgba(60,35,10,.3), transparent 70%),
    radial-gradient(400px 120px at 50% 0%, rgba(110,70,25,.38), transparent 70%),
    radial-gradient(400px 140px at 50% 100%, rgba(110,70,25,.4), transparent 70%),
    linear-gradient(90deg, rgba(70,40,12,.6) 0%, transparent 8%, transparent 92%, rgba(70,40,12,.6) 100%),
    linear-gradient(180deg,#d8c493 0%,#c8ac74 55%,#b5975e 100%);
}
.quest-scroll.rank-D::after{ /* 大片霉渍 */
  width:52px;height:44px;right:10px;bottom:8px;opacity:.55;
  background:radial-gradient(circle at 42% 40%, rgba(74,48,18,.7), rgba(48,30,10,.85) 70%);
  box-shadow:-190px -30px 22px -8px rgba(74,48,18,.35);
  border-radius:52% 48% 60% 40%;
}
.quest-scroll.rank-D::before{ /* 生锈铁钉 */ filter:brightness(.7) saturate(.6) }

/* ── C级：普通羊皮纸（轻微破损） ── */
.quest-scroll.rank-C{
  clip-path:polygon(0% 2%,6% 0%,18% 1.5%,30% 0%,43% 1.5%,56% 0%,69% 1.5%,82% 0%,93% 1.5%,100% 3%,99.3% 20%,100% 40%,99.3% 60%,100% 80%,99% 97%,90% 100%,76% 98.5%,62% 100%,48% 98.5%,34% 100%,20% 98.5%,8% 100%,0.7% 97%,0% 75%,0.7% 50%,0% 25%);
}

/* ── B级：完好的上等纸（干净、墨线框） ── */
.quest-scroll.rank-B{
  clip-path:polygon(0% 1.2%,10% 0%,28% .8%,50% 0%,72% .8%,90% 0%,100% 1.5%,99.5% 30%,100% 55%,99.5% 80%,100% 98.5%,86% 100%,62% 99%,38% 100%,14% 99%,0% 98.5%,.5% 70%,0% 40%);
  background:
    radial-gradient(400px 110px at 50% 0%, rgba(120,80,30,.22), transparent 70%),
    linear-gradient(90deg, rgba(90,55,20,.4) 0%, transparent 6%, transparent 94%, rgba(90,55,20,.4) 100%),
    linear-gradient(180deg,#ecd9a8 0%,#dfc794 60%,#d2b67e 100%);
  box-shadow:0 14px 22px rgba(0,0,0,.5), inset 0 0 0 1px rgba(90,55,20,.35), inset 0 0 0 5px rgba(255,248,225,.28), inset 0 0 0 6px rgba(90,55,20,.28);
}
.quest-scroll.rank-B::after{ /* 淡淡墨渍 */
  width:30px;height:26px;opacity:.3;filter:blur(1.6px);
  background:radial-gradient(circle at 45% 40%, rgba(30,30,60,.8), rgba(20,20,40,.9) 70%);
  border-radius:46% 54% 40% 60%;
}

/* ── A级：高级羊皮纸（浅色细腻、烫金内框） ── */
.quest-scroll.rank-A{
  clip-path:polygon(0 1%,14% 0,50% .6%,86% 0,100% 1%,100% 99%,86% 100%,50% 99.4%,14% 100%,0 99%);
  background:
    radial-gradient(420px 120px at 50% 0%, rgba(140,100,40,.16), transparent 70%),
    linear-gradient(90deg, rgba(100,65,25,.3) 0%, transparent 5%, transparent 95%, rgba(100,65,25,.3) 100%),
    linear-gradient(180deg,#f4e9c8 0%,#ecd9a8 55%,#e2cb92 100%);
  box-shadow:0 16px 26px rgba(0,0,0,.52), inset 0 0 0 1px rgba(201,162,39,.55), inset 0 0 0 6px rgba(255,252,240,.5), inset 0 0 0 7px rgba(201,162,39,.4);
}
.quest-scroll.rank-A::after{ /* 金漆火漆 */
  width:30px;height:30px;opacity:.8;
  background:radial-gradient(circle at 38% 32%, #ffe9a0, #c9a227 55%, #8a6d1d 100%);
  box-shadow:0 2px 5px rgba(0,0,0,.4), inset 0 -2px 4px rgba(0,0,0,.35);
  border-radius:50% 46% 52% 48%;
}
.quest-scroll.rank-A .quest-title{color:#2c1a08}

/* ── S级：王室御用卷轴（华贵、金角、发光图钉） ── */
.quest-scroll.rank-S{
  clip-path:none;
  border-radius:5px;
  grid-column:span 2;
  padding:38px 40px 26px;
  background:
    linear-gradient(#f0d060,#f0d060) left 14px top 14px / 40px 2px no-repeat,
    linear-gradient(#f0d060,#f0d060) left 14px top 14px / 2px 40px no-repeat,
    linear-gradient(#f0d060,#f0d060) right 14px top 14px / 40px 2px no-repeat,
    linear-gradient(#f0d060,#f0d060) right 14px top 14px / 2px 40px no-repeat,
    linear-gradient(#f0d060,#f0d060) left 14px bottom 14px / 40px 2px no-repeat,
    linear-gradient(#f0d060,#f0d060) left 14px bottom 14px / 2px 40px no-repeat,
    linear-gradient(#f0d060,#f0d060) right 14px bottom 14px / 40px 2px no-repeat,
    linear-gradient(#f0d060,#f0d060) right 14px bottom 14px / 2px 40px no-repeat,
    radial-gradient(500px 160px at 50% 0%, rgba(240,208,96,.25), transparent 70%),
    linear-gradient(90deg, rgba(120,85,30,.28) 0%, transparent 5%, transparent 95%, rgba(120,85,30,.28) 100%),
    linear-gradient(180deg,#faf3d8 0%,#f4e6ba 50%,#ecd79e 100%);
  box-shadow:0 20px 36px rgba(0,0,0,.55), 0 0 30px rgba(240,208,96,.18),
    inset 0 0 0 1px rgba(201,162,39,.7), inset 0 0 0 8px rgba(255,253,244,.6), inset 0 0 0 9px rgba(201,162,39,.45);
}
.quest-scroll.rank-S::before{ /* 金镶宝石图钉 */
  width:22px;height:22px;top:11px;
  background:radial-gradient(circle at 34% 30%, #fff6d0 0%, #f0d060 35%, #8a6d1d 90%);
  box-shadow:0 3px 8px rgba(0,0,0,.7), 0 0 14px rgba(240,208,96,.9);
}
.quest-scroll.rank-S::after{display:none}
.quest-scroll.rank-S .quest-title{font-size:31px;color:#281503;letter-spacing:4px}
.quest-scroll.rank-S .quest-desc{font-size:14.5px}
.quest-scroll.rank-S .quest-rankline{color:#8a6d1d}

/* 响应式：窄屏 S 级不再跨列 */
@media (max-width:860px){
  .quest-scroll.rank-S{grid-column:auto;padding:30px 24px 20px}
  .quest-scroll.rank-S .quest-title{font-size:26px}
}


/* ============================================================
   v0.5 · 真实火漆封蜡徽章 + 布告板错落排版（参考图重做）
   ============================================================ */

/* 布告板：纵向多栏，纸张有长有短自然错落 */
.quest-grid{column-width:332px;column-gap:26px;display:block}
.quest-scroll{break-inside:avoid;margin-bottom:26px}
.quest-scroll.rank-S{grid-column:auto}

/* ── 封蜡基底：有机蜡坨 + 浮雕字 ── */
.rank-seal{
  flex-shrink:0;width:58px;height:56px;position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel Decorative',var(--latin);font-weight:700;font-size:26px;line-height:1;
  border-radius:52% 48% 56% 44% / 47% 55% 45% 53%;
  text-shadow:-1px -1px 1px rgba(255,255,255,.5), 1px 2px 2px rgba(0,0,0,.55);
  box-shadow:
    inset -4px -6px 9px rgba(0,0,0,.38),
    inset 4px 6px 9px rgba(255,255,255,.38),
    inset 0 0 0 2px rgba(0,0,0,.1),
    0 3px 6px rgba(0,0,0,.5);
}
.rank-seal::before{ /* 蜡坨外沿的不规则凸起 */
  content:"";position:absolute;inset:-5px -4px -3px -6px;z-index:-1;
  border-radius:58% 42% 62% 38% / 42% 60% 40% 58%;
  background:inherit;filter:brightness(.92);
  box-shadow:inherit;
}
.rank-seal::after{ /* 左上角蜡的高光 */
  content:"";position:absolute;top:6px;left:9px;width:16px;height:9px;border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.55), transparent 70%);
  transform:rotate(-24deg);
}
/* S级：鎏金烫金 */
.rank-seal.rank-S{
  color:#7a5a0e;
  background:radial-gradient(circle at 36% 28%, #fff4c0 0%, #f0d060 32%, #d4a92a 62%, #96721a 88%, #6b4f0e 100%);
  box-shadow:inset -4px -6px 9px rgba(110,80,15,.5), inset 4px 6px 10px rgba(255,252,235,.65), inset 0 0 0 2px rgba(120,90,20,.25), 0 3px 8px rgba(0,0,0,.5), 0 0 18px rgba(240,208,96,.6);
  text-shadow:-1px -1px 1px rgba(255,252,230,.8), 1px 2px 2px rgba(100,72,10,.8);
}
/* A级：绛红标准火漆 */
.rank-seal.rank-A{
  color:#f9e4d6;
  background:radial-gradient(circle at 36% 28%, #dd8271 0%, #b23c30 38%, #8c2318 68%, #5c130c 100%);
}
/* B级：古铜 */
.rank-seal.rank-B{
  color:#f7e8d2;
  background:radial-gradient(circle at 36% 28%, #e8b384 0%, #bd7643 38%, #8f4f22 70%, #5e3010 100%);
}
/* C级：素蜜蜡（浅） */
.rank-seal.rank-C{
  color:#7c6430;
  font-family:'Cinzel',var(--latin);font-weight:900;
  background:radial-gradient(circle at 36% 28%, #f7ecd0 0%, #e3cd9c 40%, #c3a76a 75%, #9a7f45 100%);
}
/* D级：暗褐粗蜡 */
.rank-seal.rank-D{
  color:#e8dcc0;
  font-family:'Cinzel',var(--latin);font-weight:900;font-size:24px;
  transform:rotate(-5deg);
  background:radial-gradient(circle at 36% 28%, #b08d5e 0%, #85643a 40%, #5c4122 75%, #38270f 100%);
  border-radius:56% 44% 60% 40% / 44% 58% 42% 56%;
}


/* ============================================================
   v0.6 · 浮雕火漆印重做（外蜡坨 + 绳纹凸环 + 立体浮雕字）
   ============================================================ */

.rank-seal{
  --ring-hi:#fff2b8; --ring-lo:#7a5a10;
  --rope-a:#ffe9a4; --rope-b:#b8892a;
  --letter:#8a6514; --letter-hi:#ffefb0; --letter-lo:#6b4c0a;
  flex-shrink:0;width:62px;height:60px;position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel Decorative',var(--latin);font-weight:700;font-size:27px;line-height:1;
  border-radius:52% 48% 56% 44% / 47% 55% 45% 53%;
}
.rank-seal i{ /* 绳纹浮雕凸环：mask 截取圆环，repeating 渐变扭出绳股，顶光打在环上 */
  position:absolute;inset:6px;border-radius:50%;pointer-events:none;
  background:
    radial-gradient(circle at 34% 24%, var(--ring-hi) 0%, transparent 58%),
    repeating-linear-gradient(48deg, var(--rope-a) 0 2.2px, var(--rope-b) 2.2px 4.4px);
  -webkit-mask:radial-gradient(circle, transparent 60.5%, #000 63%, #000 75.5%, transparent 78%);
  mask:radial-gradient(circle, transparent 60.5%, #000 63%, #000 75.5%, transparent 78%);
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.5)) drop-shadow(0 -1px 1px rgba(255,255,255,.22));
}
.rank-seal b{ /* 浮雕字：左上受光、右下投影，微微浮起 */
  position:relative;z-index:1;transform:translateY(-1px);
  color:var(--letter);
  text-shadow:
    -1px -1px 1px var(--letter-hi),
    0 0 1px var(--letter-hi),
    1px 2px 2px var(--letter-lo),
    2px 3px 3px rgba(0,0,0,.35);
}

/* 蜡面基底与高光（沿用 v0.5 的有机蜡坨） */
.rank-seal{
  box-shadow:
    inset -4px -6px 10px rgba(0,0,0,.4),
    inset 4px 6px 10px rgba(255,255,255,.4),
    inset 0 0 0 2px rgba(0,0,0,.12),
    0 3px 7px rgba(0,0,0,.5);
}
.rank-seal::before{
  content:"";position:absolute;inset:-5px -4px -3px -6px;z-index:-1;
  border-radius:58% 42% 62% 38% / 42% 60% 40% 58%;
  background:inherit;filter:brightness(.92);
  box-shadow:inherit;
}
.rank-seal::after{
  content:"";position:absolute;top:6px;left:9px;width:17px;height:10px;border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.6), transparent 70%);
  transform:rotate(-24deg);z-index:2;pointer-events:none;
}

/* S级：鎏金蜡 */
.rank-seal.rank-S{
  background:radial-gradient(circle at 36% 28%, #fff4c0 0%, #f0d060 32%, #d4a92a 62%, #96721a 88%, #6b4f0e 100%);
  box-shadow:inset -4px -6px 10px rgba(110,80,15,.5), inset 4px 6px 11px rgba(255,252,235,.68),
    inset 0 0 0 2px rgba(120,90,20,.25), 0 3px 8px rgba(0,0,0,.5), 0 0 18px rgba(240,208,96,.55);
}
/* A级：绛红火漆 */
.rank-seal.rank-A{
  --ring-hi:#ffb9a6; --ring-lo:#4d0e07; --rope-a:#e88a74; --rope-b:#7e1d12;
  --letter:#fdeee6; --letter-hi:#ffd9cb; --letter-lo:#4a0d06;
  background:radial-gradient(circle at 36% 28%, #dd8271 0%, #b23c30 38%, #8c2318 68%, #5c130c 100%);
}
/* B级：提亮古铜（拉开明度对比） */
.rank-seal.rank-B{
  --ring-hi:#ffd9a8; --ring-lo:#5e3410; --rope-a:#f5c489; --rope-b:#9c5f24;
  --letter:#fff6e2; --letter-hi:#ffffff; --letter-lo:#5e3410;
  background:radial-gradient(circle at 36% 28%, #f7cf9a 0%, #dd9e57 36%, #b06f31 68%, #75431a 100%);
}
/* C级：素蜜蜡 */
.rank-seal.rank-C{
  --ring-hi:#fffbe8; --ring-lo:#8f7434; --rope-a:#f2e3ba; --rope-b:#bfa05e;
  --letter:#6e5320; --letter-hi:#fffdf0; --letter-lo:#8a6d2c;
  font-family:'Cinzel',var(--latin);font-weight:900;font-size:28px;
  background:radial-gradient(circle at 36% 28%, #f9efda 0%, #e8d6ac 38%, #cbb078 74%, #a3874e 100%);
}
/* D级：暗褐粗蜡 */
.rank-seal.rank-D{
  --ring-hi:#caa26e; --ring-lo:#241708; --rope-a:#a67f4e; --rope-b:#38270f;
  --letter:#e2d3ae; --letter-hi:#f7ead0; --letter-lo:#241708;
  font-family:'Cinzel',var(--latin);font-weight:900;font-size:25px;
  transform:rotate(-5deg);
  background:radial-gradient(circle at 36% 28%, #b89468 0%, #8f6c40 40%, #644723 74%, #3a2a10 100%);
  border-radius:56% 44% 60% 40% / 44% 58% 42% 56%;
}


/* ============================================================
   v0.7 · AI 真实火漆印徽章（PNG 替换 CSS 模拟）
   ============================================================ */
.rank-seal-img{
  flex-shrink:0;width:70px;height:70px;object-fit:contain;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.55));
  transform:translateY(2px);
}


/* ============================================================
   v0.8 · AI 羊皮纸底图（border-image 切片，边缘保留中间拉伸）
   ============================================================ */
.quest-scroll{
  background:none;box-shadow:none;clip-path:none;border-style:solid;
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.5));
  padding:6px 8px;
}
.quest-scroll .qs-texture{display:none}
.quest-scroll::before,.quest-scroll::after{display:none}
.quest-scroll:hover{box-shadow:none !important;filter:drop-shadow(0 20px 30px rgba(0,0,0,.62))}
.quest-scroll.departed{filter:grayscale(.35) opacity(.85) !important}

/* S级：王室卷轴（上下滚轴保留，纸面中间拉伸） */
.quest-scroll.rank-S{
  border-image:url("../img/parch/parch-S.webp") 14% 12% 19% 12% fill stretch;
  border-width:42px 42px 54px 42px;
  padding:6px 10px;
}
.quest-scroll.rank-S .quest-title{font-size:29px;letter-spacing:3px}

/* A级：豪华描金羊皮纸（狮徽与金框保留） */
.quest-scroll.rank-A{
  border-image:url("../img/parch/parch-A.webp") 12% 9% 7% 9% fill stretch;
  border-width:42px 30px 24px 30px;
}
.quest-scroll.rank-A .quest-title{color:#2c1a08}

/* B级：精品镶边羊皮纸 */
.quest-scroll.rank-B{
  border-image:url("../img/parch/parch-B.webp") 8% 8.5% 8% 8.5% fill stretch;
  border-width:30px 27px 30px 27px;
}

/* C级：普通陈羊皮纸 */
.quest-scroll.rank-C{
  border-image:url("../img/parch/parch-C.webp") 6% 6% 6% 6% fill stretch;
  border-width:22px 21px 22px 21px;
}

/* D级：劣质残破羊皮纸（深底换浅色墨） */
.quest-scroll.rank-D{
  border-image:url("../img/parch/parch-D.webp") 7% 7% 7% 7% fill stretch;
  border-width:24px 23px 24px 23px;
  color:#eadfc2;
}
.quest-scroll.rank-D .quest-desc{color:#e2d4ae}
.quest-scroll.rank-D .quest-title{color:#f7edd2;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.quest-scroll.rank-D .quest-rankline{color:#d8c49a}

/* 窄屏：S 级卷轴边框收窄 */
@media (max-width:860px){
  .quest-scroll.rank-S{border-image:url("../img/parch/parch-S.webp") 14% 12% 19% 12% fill stretch;border-width:34px 30px 42px 30px}
  .quest-scroll.rank-S .quest-title{font-size:24px}
}


/* ============================================================
   v0.9 · AI 接取按钮 + 限时倒计时 + 任务编辑器
   ============================================================ */

/* 接取按钮：金镶翡翠 plaque */
.btn-accept.v2{
  width:100%;height:56px;padding:0;line-height:56px;border:none;border-radius:0;cursor:pointer;
  background:url("../img/btn-accept.webp") center/100% 100% no-repeat;
  color:#f5ffd8;
  font-family:'Cinzel','Noto Serif SC',var(--latin);font-size:16px;font-weight:700;letter-spacing:5px;
  text-shadow:0 2px 3px rgba(0,0,0,.75), 0 0 10px rgba(150,255,170,.35);
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.5));
  transition:transform .16s ease, filter .16s ease;
}
.btn-accept.v2:hover:not(:disabled){
  transform:scale(1.05);
  filter:brightness(1.14) drop-shadow(0 0 14px rgba(255,224,130,.6));
}
.btn-accept.v2:active:not(:disabled){transform:scale(.94);filter:brightness(.9);}
.btn-accept.v2:disabled{
  filter:grayscale(.8) brightness(.72);cursor:not-allowed;color:#d8d8c8;
  text-shadow:0 1px 2px rgba(0,0,0,.8);
}
.btn-accept.v2.joined{color:#c8f5c0;text-shadow:0 2px 3px rgba(0,0,0,.75), 0 0 10px rgba(120,255,140,.5);}
.btn-accept.v2 .ba-text{pointer-events:none;}
/* v5.11：出发主按钮（鎏金高亮）与放弃副按钮 */
.btn-accept.v2.depart{
  color:#ffe9a8;
  text-shadow:0 2px 3px rgba(0,0,0,.8), 0 0 14px rgba(255,201,77,.75);
  animation:depart-glow 1.8s ease-in-out infinite;
}
@keyframes depart-glow{
  0%,100%{filter:drop-shadow(0 3px 5px rgba(0,0,0,.5)) brightness(1);}
  50%{filter:drop-shadow(0 0 16px rgba(255,201,77,.85)) brightness(1.22);}
}
.btn-accept.v2.slim{
  height:34px;line-height:34px;margin-top:6px;font-size:12px;letter-spacing:3px;
  filter:grayscale(.35) brightness(.85);opacity:.85;
}
.btn-accept.v2.slim:hover:not(:disabled){filter:grayscale(.1) brightness(1);}

/* 限时倒计时 */
.q-deadline{margin-top:4px;}
.q-countdown{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:600;letter-spacing:1px;color:#b8912f;
  background:rgba(60,38,10,.12);border:1px solid rgba(150,110,40,.35);
  border-radius:20px;padding:2px 10px;
}
.q-countdown.urgent{color:#c9402a;border-color:rgba(201,64,42,.5);animation:cdPulse 1s ease-in-out infinite;}
.q-countdown.expired{color:#8a8378;text-decoration:line-through;}
@keyframes cdPulse{0%,100%{box-shadow:0 0 0 0 rgba(201,64,42,.35)}50%{box-shadow:0 0 10px 2px rgba(201,64,42,.45)}}

/* 任务编辑器 */
.aq-row{display:flex;gap:12px;flex-wrap:wrap}
.aq-row .field{flex:1;min-width:120px}
#aq-rank,#aq-max,#aq-deadline{width:100%;}
#aq-desc{width:100%;resize:vertical;font-family:inherit;}
.aq-actions{display:flex;gap:10px;margin:12px 0 16px;}
.aq-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;}
.aq-item{
  display:flex;align-items:center;gap:10px;
  background:rgba(50,32,10,.18);border:1px solid rgba(140,100,40,.3);
  border-radius:8px;padding:7px 10px;
}
.aq-seal{width:30px;height:30px;object-fit:contain;flex-shrink:0;}
.aq-info{flex:1;min-width:0;}
.aq-title{font-size:13.5px;font-weight:600;color:#3a2a12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aq-badge{
  display:inline-block;margin-left:6px;font-size:10px;color:#8a6d1d;
  border:1px solid rgba(150,110,40,.5);border-radius:10px;padding:0 6px;vertical-align:1px;
}
.aq-meta{font-size:11px;color:#8a7350;margin-top:2px;}
.aq-dl{color:#a3542f;}
.aq-edit,.aq-del{
  flex-shrink:0;border-radius:6px;cursor:pointer;font-size:12px;padding:4px 10px;
  font-family:inherit;transition:filter .15s ease, transform .1s ease;
}
.aq-edit{background:rgba(140,100,30,.2);border:1px solid rgba(150,110,40,.5);color:#6b4c0a;}
.aq-edit:hover{filter:brightness(1.15);}
.aq-edit:active{transform:scale(.94);}
.aq-del{background:rgba(140,40,30,.14);border:1px solid rgba(150,50,35,.45);color:#8a2a1a;}
.aq-del:hover{filter:brightness(1.2);}
.aq-del:active{transform:scale(.94);}


/* ============================================================
   v1.0 · 属性分配 / 等级经验 / 背包口袋 / 人体轮廓装备栏
   ============================================================ */

/* 属性分配 */
.attr-alloc{
  margin-top:16px;padding:14px 16px;
  background:rgba(50,32,10,.15);border:1px solid rgba(140,100,40,.35);border-radius:8px;
}
.attr-alloc-head{display:flex;justify-content:space-between;align-items:center;}
.attr-pool{font-size:13px;color:#8a6d1d;letter-spacing:1px;}
.attr-pool b{
  display:inline-block;min-width:26px;text-align:center;margin-left:4px;
  font-size:16px;color:#6b4c0a;background:rgba(240,208,96,.35);
  border:1px solid rgba(150,110,40,.5);border-radius:6px;padding:1px 5px;
  transition:all .2s;
}
.attr-pool b.empty{color:#4a7a3a;background:rgba(120,180,100,.25);border-color:rgba(90,150,70,.5);}
.attr-tip{font-size:11.5px;color:#8a7350;margin:6px 0 10px;}
.attr-tip b{color:#a3542f;}
.attr-alloc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;}
.attr-row{
  display:flex;align-items:center;gap:8px;
  background:rgba(255,248,225,.4);border:1px solid rgba(140,100,40,.3);border-radius:6px;padding:6px 10px;
}
.attr-row-label{flex:1;font-size:13.5px;font-weight:600;color:#3a2a12;letter-spacing:2px;}
.attr-btn{
  width:24px;height:24px;border-radius:5px;cursor:pointer;font-size:14px;line-height:1;
  background:rgba(140,100,30,.25);border:1px solid rgba(150,110,40,.5);color:#5c4510;
  transition:filter .12s ease, transform .1s ease;
}
.attr-btn:hover:not(:disabled){filter:brightness(1.2);}
.attr-btn:active:not(:disabled){transform:scale(.9);}
.attr-btn:disabled{opacity:.3;cursor:not-allowed;}
.attr-row-value{
  min-width:30px;text-align:center;font-size:17px;font-weight:700;color:#6b4c0a;
  font-family:'Cinzel','Noto Serif SC',var(--latin);
}

/* 等级 / 经验 */
.char-level-row{display:flex;align-items:center;gap:10px;margin:8px 0 4px;}
.char-level-badge{
  flex-shrink:0;font-family:'Cinzel','Noto Serif SC',var(--latin);
  font-size:14px;font-weight:700;color:#ffe9a0;letter-spacing:1px;
  background:linear-gradient(180deg,#8a6d1d,#5c4510 60%,#3d2d0a);
  border:1px solid var(--gold);border-radius:14px;padding:2px 12px;
  box-shadow:0 2px 5px rgba(0,0,0,.4), inset 0 1px 0 rgba(240,208,96,.4);
}
.char-exp-bar{
  flex:1;height:10px;border-radius:6px;overflow:hidden;
  background:rgba(40,24,6,.45);border:1px solid rgba(150,110,40,.45);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.5);
}
.char-exp-bar i{
  display:block;height:100%;
  background:linear-gradient(90deg,#b8912f,#f0d060 60%,#fff0b0);
  box-shadow:0 0 8px rgba(240,208,96,.6);
  transition:width .5s ease;
}
.char-exp-num{font-size:11.5px;color:#8a7350;flex-shrink:0;}

/* 属性封定 */
.attr-grid.sealed .attr-cell{opacity:.92;}
.attr-sealed-note{font-size:11px;color:#8a7350;letter-spacing:1px;margin:6px 0 4px;text-align:center;}

/* 分节标题 */
.sheet-section-title{
  margin:20px 0 10px;font-size:15px;letter-spacing:3px;color:#6b4c0a;
  border-bottom:1px solid rgba(140,100,40,.35);padding-bottom:5px;
}

/* 背包 · 口袋 */
.bag-row{display:flex;gap:18px;flex-wrap:wrap;}
.bag{display:flex;flex-direction:column;align-items:center;gap:6px;}
.bag-name{font-size:12.5px;color:#6b4c0a;letter-spacing:2px;font-weight:600;}
.bag-grid{display:grid;gap:5px;}
.bag-cell{
  width:46px;height:46px;border-radius:5px;
  background:rgba(40,24,6,.22);border:1px dashed rgba(140,100,40,.5);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.35);
}

/* 装备栏 */
.equipment-panel{
  background:rgba(50,32,10,.12);border:1px solid rgba(140,100,40,.3);
  border-radius:8px;padding:12px 14px;
}
.eq-gear-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:12px;}
.eq-mid{display:flex;gap:16px;align-items:flex-start;justify-content:center;flex-wrap:wrap;}
.eq-slot{
  width:56px;height:56px;border-radius:7px;position:relative;
  background:rgba(40,24,6,.25);border:1px solid rgba(140,100,40,.5);
  box-shadow:inset 0 1px 5px rgba(0,0,0,.4);
  display:flex;align-items:center;justify-content:center;
}
.eq-slot-label{font-size:10.5px;color:#9a825a;letter-spacing:1px;text-align:center;line-height:1.3;padding:2px;}
.eq-slot.acc{width:34px;height:34px;border-radius:5px;}
.eq-slot.acc .eq-slot-label{font-size:10px;color:#8a7350;}
.eq-slot.carry{width:64px;height:40px;border-radius:6px;}
.eq-slot.carry .eq-slot-label{font-size:10.5px;}
.eq-slot.filled{background:rgba(120,90,30,.4);border-style:solid;}

/* 人体轮廓 */
.eq-silhouette{display:flex;flex-direction:column;align-items:center;gap:4px;}
.eq-silhouette svg{width:110px;height:auto;}
.eq-silhouette svg circle,
.eq-silhouette svg path{
  fill:rgba(90,60,25,.14);stroke:rgba(120,85,35,.75);stroke-width:2;
}
.eq-silhouette svg .eq-dot{
  fill:rgba(240,208,96,.5);stroke:#8a6d1d;stroke-width:1.5;
  animation:eqDot 2.4s ease-in-out infinite;
}
@keyframes eqDot{0%,100%{opacity:.55}50%{opacity:1}}
.eq-sil-tip{font-size:10.5px;color:#9a825a;letter-spacing:1px;}

/* 饰品与携带 */
.eq-acc-wrap{display:flex;flex-direction:column;gap:8px;align-items:center;}
.eq-acc-title{font-size:11.5px;color:#8a7350;letter-spacing:2px;}
.eq-acc-row{display:grid;grid-template-columns:repeat(5,34px);gap:6px;}
.eq-carry-row{display:flex;gap:8px;margin-top:2px;}

@media (max-width:700px){
  .eq-slot{width:48px;height:48px;}
  .eq-acc-row{grid-template-columns:repeat(5,30px);}
  .eq-slot.acc{width:30px;height:30px;}
}


/* ============================================================
   v1.1 · 管理员测试入口
   ============================================================ */
.btn-admin-test{
  margin-top:14px;font-size:13px;letter-spacing:3px;padding:8px 24px;
  color:#6b4c0a;background:rgba(140,100,30,.16);
  border:1px solid rgba(120,85,25,.55);opacity:.9;
}
.btn-admin-test:hover{opacity:1;color:#4a3504;background:rgba(160,118,36,.28);}

/* ============================================================
   v1.2 — 称号 · 履历 · 宫格行囊 · 新纹章
   ============================================================ */
.crest-img{width:118px;height:auto;filter:drop-shadow(0 0 20px rgba(201,162,39,.5));animation:crestGlow 3.2s ease-in-out infinite}
.brand-crest{width:36px;height:auto;object-fit:contain}

/* 角色页选项卡 */
.char-tabs{display:flex;gap:10px;justify-content:center;margin:4px 0 18px;flex-wrap:wrap}
.char-tab{
  font-family:var(--runefont);font-size:16px;letter-spacing:6px;padding:8px 26px 8px 32px;
  color:#7a5f36;background:linear-gradient(180deg,rgba(240,222,168,.55),rgba(214,182,110,.45));
  border:1px solid rgba(140,105,40,.5);border-radius:6px 6px 0 0;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,244,200,.6);transition:all .25s ease;
  clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 100%,0 100%);
}
.char-tab:hover{color:#8a6d1d;border-color:var(--gold);transform:translateY(-2px)}
.char-tab.active{
  color:#3a2410;background:linear-gradient(180deg,#ecd591,#cfa64f);
  border-color:#a97e2c;box-shadow:0 3px 10px rgba(120,85,20,.35),inset 0 1px 0 rgba(255,248,214,.8);
}
.char-tab-panel{animation:tabIn .35s ease both}
@keyframes tabIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  .char-tab-panel{animation:none}
}

/* 履历 */
.log-item{
  display:flex;align-items:center;gap:14px;padding:12px 16px;margin-bottom:10px;
  background:linear-gradient(90deg,rgba(240,222,168,.4),rgba(214,182,110,.18));
  border:1px solid rgba(140,105,40,.35);border-radius:8px;
}
.log-seal{width:34px;height:34px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 3px rgba(60,40,10,.4))}
.log-main{flex:1;min-width:0}
.log-title{font-size:16px;font-weight:700;color:#3a2410;letter-spacing:2px;margin-bottom:3px}
.log-summary{font-size:12.5px;line-height:1.9;color:#6b5133}
.log-status{flex:none;font-size:12px;letter-spacing:2px;padding:4px 12px;border-radius:20px;border:1px solid}
.log-status.doing{color:#8a6d1d;border-color:rgba(160,120,30,.6);background:rgba(216,180,90,.18);animation:logPulse 2s ease-in-out infinite}
.log-status.done{color:#3f6b34;border-color:rgba(90,140,70,.5);background:rgba(120,180,100,.12)}
.log-status.failed{color:#a54545;border-color:rgba(170,80,70,.5);background:rgba(200,110,100,.1)}
@keyframes logPulse{0%,100%{box-shadow:0 0 0 0 rgba(216,180,90,.45)}50%{box-shadow:0 0 10px 2px rgba(216,180,90,.3)}}
.log-empty{text-align:center;color:#a08a5c;letter-spacing:3px;padding:34px 0;font-size:14px}

/* 称号 */
.title-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.title-item{
  display:flex;align-items:center;gap:12px;padding:9px 16px;border-radius:8px;
  border:1px dashed rgba(140,105,40,.45);background:rgba(240,222,168,.25);
}
.title-item.current{border-style:solid;border-color:#a97e2c;background:linear-gradient(90deg,rgba(236,213,145,.55),rgba(207,166,79,.25));box-shadow:0 2px 8px rgba(120,85,20,.2)}
.title-name{flex:1;font-size:14.5px;letter-spacing:2px;color:#5c4510;font-weight:600}
.title-item.current .title-name{color:#3a2410}
.title-wearing{font-size:11px;letter-spacing:2px;color:#8a6d1d;border:1px solid rgba(160,120,30,.55);padding:3px 10px;border-radius:20px;background:rgba(216,180,90,.15)}
.btn-wear{
  font-size:12px;letter-spacing:2px;padding:4px 14px;cursor:pointer;border-radius:6px;
  color:#7a5f36;background:linear-gradient(180deg,rgba(240,222,168,.6),rgba(214,182,110,.4));
  border:1px solid rgba(140,105,40,.55);transition:all .2s ease;
}
.btn-wear:hover{color:#3a2410;border-color:var(--gold);box-shadow:0 2px 8px rgba(160,120,30,.35);transform:translateY(-1px)}

/* 宫格：贴合格 + 跨格道具 */
.bag-grid.flush{gap:0}
.bag-grid.flush .bag-cell{
  width:auto;height:auto;min-width:0;min-height:0;gap:0;border-radius:0;
  outline:1px solid rgba(140,105,40,.4);outline-offset:-1px;
  background:rgba(240,222,168,.18);border:none;margin:0;
}
.inv-item{
  position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:1;
  background:linear-gradient(145deg,rgba(226,199,132,.92),rgba(196,160,86,.92));
  border:1px solid rgba(120,88,28,.65);border-radius:3px;
  box-shadow:inset 0 1px 0 rgba(255,244,200,.55),0 2px 5px rgba(80,55,15,.3);
  cursor:default;transition:filter .2s ease;
}
.inv-item:hover{filter:brightness(1.08)}
.inv-name{
  font-size:10.5px;line-height:1.35;color:#4a3208;letter-spacing:.5px;text-align:center;
  padding:2px 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* 行囊装备双栏 */
.gear-layout{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}
.gear-col{flex:1;min-width:300px}
.gear-col .sheet-section-title{margin-top:14px}
.stash-box{
  max-height:168px;overflow-y:auto;overflow-x:hidden;padding:1px 6px 1px 1px;
  border-radius:6px;
}
.stash-box::-webkit-scrollbar{width:8px}
.stash-box::-webkit-scrollbar-track{background:rgba(60,40,12,.25);border-radius:4px}
.stash-box::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#c9a44f,#8a6d2a);border-radius:4px;border:1px solid rgba(60,40,12,.5)}
.stash-tip{font-size:11px;color:#8a7350;letter-spacing:1px;margin-top:8px;text-align:center}

/* 装备栏 v2：完整人形 + 部位空槽 */
.eq2-panel{display:flex;gap:22px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.eq2-silhouette{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
.eq2-svg{width:210px;height:auto;filter:drop-shadow(0 4px 8px rgba(50,32,8,.35))}
.eq2-svg > ellipse,.eq2-svg > rect,.eq2-svg > path{
  fill:rgba(58,38,14,.22);stroke:rgba(120,90,40,.75);stroke-width:1.6;
}
.eq2-svg .eq2-slot rect{
  fill:rgba(90,60,20,.1);stroke:#9a7a3a;stroke-width:1.4;stroke-dasharray:5 4;rx:6;
}
.eq2-svg .eq2-slot.filled rect{
  fill:rgba(214,178,84,.5);stroke:#8a6d1d;stroke-dasharray:none;stroke-width:1.6;
}
.eq2-svg .eq2-slot text{font-size:10px;fill:#8a7350;letter-spacing:1px}
.eq2-svg .eq2-slot.filled text{font-size:9.5px;fill:#4a3208;font-weight:700}
.eq2-sil-tip{font-size:11px;color:#9a825a;letter-spacing:2px}
.eq2-side{display:flex;flex-direction:column;gap:8px;align-items:center;min-width:240px}
.eq2-acc-row{display:grid;grid-template-columns:repeat(5,42px);gap:6px}
.eq2-acc-row .eq-slot.acc{width:42px;height:42px;border-radius:7px}
.eq2-carry-row{display:flex;gap:10px}
.eq2-carry-row .eq-slot.carry{width:84px;height:48px;border-radius:8px}

/* ============================================================
   v1.3 — 装备挂图：AI 人形轮廓 + 外部槽位 + 引线
   ============================================================ */
.eq2-stage{position:relative;width:min(360px,100%);aspect-ratio:585/1386;margin:0 auto}
.eq2-body{position:absolute;left:11%;top:11%;width:78%;height:78%;display:block;border-radius:12px;box-shadow:0 8px 26px rgba(40,24,6,.45),0 0 0 1px rgba(140,105,40,.5)}
.eq2-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.eq2-lines line{stroke:#d8b45a;stroke-width:1.6;stroke-dasharray:6 4;opacity:.9;vector-effect:non-scaling-stroke}
.eq2-lines circle{fill:#f0dc9a;stroke:rgba(90,60,15,.6);stroke-width:1;vector-effect:non-scaling-stroke}
.eq2-slotbox{
  position:absolute;display:flex;align-items:center;justify-content:center;
  background:rgba(22,13,4,.62);border:1.5px dashed rgba(224,186,96,.85);border-radius:9px;
  color:#dcc084;font-size:10.5px;letter-spacing:1px;text-align:center;line-height:1.3;padding:3px;
  box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,235,180,.15);
  backdrop-filter:blur(1px);transition:all .2s ease;
}
.eq2-slotbox.filled{
  border-style:solid;border-color:#ecd68e;
  background:linear-gradient(145deg,rgba(126,94,32,.9),rgba(84,60,18,.9));
  color:#f6e7b6;font-weight:700;
  box-shadow:0 3px 10px rgba(0,0,0,.55),0 0 12px rgba(216,180,90,.35),inset 0 1px 0 rgba(255,240,200,.3);
}

/* ============================================================
   v1.4 — 格子放大 · 物品拖拽/旋转 · 半透明底色
   ============================================================ */
.inv-item{cursor:grab;touch-action:none}
.inv-item:active{cursor:grabbing}
.inv-item.ghost{opacity:.3}
.inv-item{background:linear-gradient(145deg,rgba(226,199,132,.82),rgba(196,160,86,.72))}
.inv-float{
  position:fixed;z-index:9999;pointer-events:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,rgba(232,205,138,.92),rgba(202,166,92,.85));
  border:1.5px solid rgba(120,88,28,.8);border-radius:5px;box-shadow:0 10px 26px rgba(40,24,4,.5);
  transform:scale(1.06);opacity:.95;
}
.inv-float .inv-name{font-size:12px}
.drop-hint{
  z-index:2;border:2px dashed rgba(200,160,60,.95);border-radius:5px;
  background:rgba(216,180,90,.28);box-shadow:0 0 12px rgba(216,180,90,.4);pointer-events:none;
}
.stash-box{max-height:232px}

/* 饰品 / 携带放大 */
.eq2-acc-row{grid-template-columns:repeat(5,56px);gap:8px}
.eq2-acc-row .eq-slot.acc{width:56px;height:56px;border-radius:9px}
.eq2-acc-row .eq-slot.acc .eq-slot-label{font-size:13px}
.eq2-carry-row{gap:12px}
.eq2-carry-row .eq-slot.carry{width:150px;height:88px;border-radius:10px}
.eq2-carry-row .eq-slot.carry .eq-slot-label{font-size:12px}

/* 装备挂图放大 + 槽位半透明 */
.eq2-stage{width:min(500px,100%)}
.eq2-slotbox{background:rgba(22,13,4,.48);font-size:11.5px}
.eq2-slotbox.filled{background:linear-gradient(145deg,rgba(126,94,32,.82),rgba(84,60,18,.75))}

/* ============================================================
   v2.0 — 冒险者商店
   ============================================================ */
.shop-wrap{max-width:1200px;margin:0 auto;padding:0 18px}
.shop-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center;margin-bottom:18px}
.shop-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.shop-tab{
  font-family:var(--runefont);font-size:14px;letter-spacing:4px;padding:7px 20px 7px 24px;cursor:pointer;
  color:#4a3418;background:linear-gradient(180deg,#efe0b4,#d3b878);
  border:1px solid #a8843c;border-radius:6px;transition:all .22s ease;
  box-shadow:inset 0 1px 0 rgba(255,248,214,.8),0 2px 6px rgba(0,0,0,.35);
}
.shop-tab:hover{color:#2e1f08;border-color:#c9a44f;transform:translateY(-2px)}
.shop-tab.active{color:#3a2410;background:linear-gradient(180deg,#ecd591,#cfa64f);border-color:#a97e2c;box-shadow:0 3px 10px rgba(120,85,20,.35)}
.shop-search{
  min-width:220px;padding:8px 14px;font-size:13.5px;color:#3a2410;letter-spacing:1px;
  background:linear-gradient(180deg,#efe0b4,#dcc48c);border:1px solid #a8843c;border-radius:8px;outline:none;
}
.shop-search::placeholder{color:#8a6d3d}
.shop-search:focus{border-color:var(--gold);box-shadow:0 0 10px rgba(216,180,90,.35)}
.shop-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}
.shop-card{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 10px 12px;cursor:pointer;
  background:linear-gradient(165deg,rgba(46,30,10,.88),rgba(26,16,5,.92));
  border:1px solid rgba(150,112,45,.55);border-radius:10px;
  box-shadow:0 4px 12px rgba(20,12,2,.5),inset 0 1px 0 rgba(255,235,180,.12);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.shop-card:hover{transform:translateY(-4px);border-color:#c9a44f;box-shadow:0 10px 22px rgba(20,12,2,.6),0 0 14px rgba(216,180,90,.25)}
.shop-icon{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden}
.shop-icon img{width:100%;height:100%;object-fit:cover;border-radius:8px;box-shadow:0 0 0 1px rgba(180,140,60,.4)}
.shop-icon.noimg{background:radial-gradient(circle,rgba(90,60,20,.5),rgba(30,18,5,.7))}
.shop-icon-fallback{position:absolute;font-size:30px;color:rgba(216,180,90,.5);display:none}
.shop-icon.noimg .shop-icon-fallback{display:block}
.shop-name{font-size:14.5px;font-weight:700;color:#e8d5a0;letter-spacing:1px;text-align:center}
.shop-sub{font-size:11px;color:#9a825a;letter-spacing:1px}
.shop-price{font-size:13px;color:#f0c75e;letter-spacing:1px;font-weight:600}
.shop-buy{
  margin-top:4px;font-size:12px;letter-spacing:3px;padding:5px 18px 5px 21px;cursor:pointer;border-radius:6px;
  color:#3a2410;background:linear-gradient(180deg,#ecd591,#cfa64f);border:1px solid #a97e2c;transition:all .18s ease;
}
.shop-buy:hover{filter:brightness(1.1);box-shadow:0 3px 10px rgba(200,160,60,.4)}
.shop-buy:disabled{opacity:.6;cursor:default}
.shop-empty{grid-column:1/-1;text-align:center;color:#a08a5c;letter-spacing:3px;padding:40px 0}
.shop-note{text-align:center;font-size:12px;color:#8a7350;letter-spacing:1px;margin:18px 0 30px}

/* 商品详情弹窗 */
.shop-modal{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center}
.shop-modal-mask{position:absolute;inset:0;background:rgba(10,6,2,.72);backdrop-filter:blur(3px)}
.shop-modal-scroll{position:relative;width:min(430px,92vw)}
.shop-modal-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 26px 22px}
.sm-icon{width:150px;height:150px;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px rgba(180,140,60,.5),0 8px 20px rgba(0,0,0,.5)}
.sm-icon img{width:100%;height:100%;object-fit:cover}
.sm-name{font-family:var(--runefont);font-size:26px;letter-spacing:4px;color:#3a2410}
.sm-en{font-size:12px;color:#8a7350;letter-spacing:2px;font-style:italic}
.sm-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sm-chip{font-size:11px;letter-spacing:1px;padding:3px 12px;border-radius:20px;border:1px solid rgba(140,105,40,.5);color:#7a5f36;background:rgba(240,222,168,.35)}
.sm-chip.gold{color:#8a6d1d;border-color:rgba(170,130,40,.65);background:rgba(216,180,90,.18)}
.sm-desc{font-size:13.5px;line-height:2;color:#4a3420;text-align:center;margin:4px 0 8px}
.sm-foot{display:flex;align-items:center;gap:18px;margin-top:6px}
.sm-price{font-size:20px;color:#8a6d1d;font-weight:700;letter-spacing:1px}
.sm-close{position:absolute;top:10px;right:12px;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:14px;color:#7a5f36;background:rgba(240,222,168,.4);border:1px solid rgba(140,105,40,.5)}
.sm-close:hover{color:#a54545;border-color:#a54545}

/* 行囊图标 */
.inv-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:2px;opacity:.9}
.inv-item .inv-name{position:relative;z-index:1;text-shadow:0 1px 2px rgba(255,240,200,.8),0 0 3px rgba(255,240,200,.6)}

/* ============================================================
   v2.1 — 点击式行囊 / 负重 / 行李栏 / 挂载点 / 管理员图鉴修订
   ============================================================ */
.inv-item{cursor:pointer;touch-action:manipulation}
.inv-name{
  position:relative;z-index:1;font-size:13px;font-weight:700;letter-spacing:1px;color:#3d2a0e;
  text-shadow:0 1px 0 rgba(255,240,190,.8),0 0 6px rgba(255,236,180,.6);
  padding:2px 4px;text-align:center;line-height:1.25;pointer-events:none;
}

/* 负重面板 */
.gear-weight{
  margin-bottom:18px;padding:12px 16px 10px;border-radius:8px;
  background:linear-gradient(145deg,rgba(60,40,14,.16),rgba(46,30,10,.22));
  border:1px solid rgba(120,88,28,.5);box-shadow:inset 0 1px 0 rgba(255,244,200,.35);
}
.gw-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.gw-label{font-size:14px;letter-spacing:3px;color:#6b4a1a;font-weight:700}
.gw-num{font-size:14px;color:#4a3410;font-weight:600;letter-spacing:1px}
.enc-badge{
  margin-left:auto;font-size:12px;letter-spacing:2px;padding:3px 12px;border-radius:20px;font-weight:700;
}
.enc-badge.enc-light{background:rgba(120,150,60,.22);color:#5a7020;border:1px solid rgba(120,150,60,.5)}
.enc-badge.enc-mid{background:rgba(200,150,40,.25);color:#8a6010;border:1px solid rgba(200,150,40,.55)}
.enc-badge.enc-heavy{background:rgba(190,90,30,.28);color:#8a3c0c;border:1px solid rgba(190,90,30,.6)}
.enc-badge.enc-over{background:rgba(160,40,30,.32);color:#7a1808;border:1px solid rgba(160,40,30,.65)}
.gw-bar{position:relative;height:14px;border-radius:8px;background:rgba(50,32,8,.35);box-shadow:inset 0 1px 3px rgba(30,18,4,.5);overflow:visible}
.gw-bar i{
  display:block;height:100%;border-radius:8px;transition:width .35s ease;
  background:linear-gradient(90deg,#b8c46a,#d8b45a);
}
.gw-bar i.enc-mid{background:linear-gradient(90deg,#d8b45a,#d08030)}
.gw-bar i.enc-heavy{background:linear-gradient(90deg,#d08030,#b04020)}
.gw-bar i.enc-over{background:linear-gradient(90deg,#b04020,#801008)}
.gw-tick{position:absolute;top:-3px;width:2px;height:20px;background:rgba(60,38,10,.7)}
.gw-ticks{display:flex;justify-content:space-between;margin-top:5px;font-size:11px;color:#8a6d3a;letter-spacing:1px}
.gw-note{margin-top:5px;font-size:11.5px;color:#7a5c2c;letter-spacing:1px}

/* 行李栏与挂载点 */
.luggage-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:6px}
.luggage-box .bag-grid{margin-bottom:4px}
.rack-side{display:flex;flex-direction:column;gap:6px}
.rack-title{font-size:12px;letter-spacing:3px;color:#7a5a22;font-weight:700}
.rack-row{display:flex;gap:10px;flex-wrap:wrap}
.rack-slot{
  width:64px;height:120px;border-radius:8px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:linear-gradient(180deg,rgba(40,26,8,.5),rgba(28,17,5,.55));
  border:1.5px dashed rgba(140,105,40,.65);position:relative;overflow:hidden;
  transition:all .2s;
}
.rack-slot:hover{border-color:#d8b45a;box-shadow:0 0 10px rgba(216,180,90,.35)}
.rack-slot .inv-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;border-radius:6px}
.rack-slot .rack-name{
  position:relative;z-index:1;font-size:11px;letter-spacing:1px;color:#c9b077;
  text-shadow:0 1px 3px rgba(0,0,0,.9);padding:2px;text-align:center;line-height:1.3;word-break:break-all;
}
.rack-slot.filled{border-style:solid;border-color:rgba(170,130,50,.8)}

/* 携带栏可交互 */
.carry-slot{cursor:pointer;flex-direction:column;gap:2px}
.carry-slot .carry-kind{font-size:10px;letter-spacing:2px;color:#9a825a}
.carry-slot .carry-name{font-size:11.5px;color:#5a4020;font-weight:700;letter-spacing:1px}
.carry-slot.filled{background:linear-gradient(145deg,rgba(126,94,32,.55),rgba(84,60,18,.5))}
.carry-slot.filled .carry-name{color:#f0dc9a;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.carry-slot:hover{box-shadow:0 0 0 2px rgba(216,180,90,.5)}
.carry-tip{margin-top:6px;font-size:11px;color:#9a825a;letter-spacing:2px;text-align:center}

/* 悬停详情 */
.inv-tip{
  position:fixed;z-index:12000;max-width:280px;padding:10px 14px;border-radius:8px;pointer-events:none;
  background:linear-gradient(160deg,rgba(30,20,7,.96),rgba(20,13,4,.97));
  border:1px solid rgba(190,150,70,.6);box-shadow:0 10px 30px rgba(0,0,0,.6),0 0 14px rgba(200,160,70,.15);
}
.inv-tip .tip-name{font-size:16px;font-weight:700;color:#f0dc9a;letter-spacing:2px;margin-bottom:4px}
.inv-tip .tip-sub{font-size:11.5px;color:#c9b077;letter-spacing:1px;margin-bottom:5px}
.inv-tip .tip-desc{font-size:12.5px;color:#e6d5a8;line-height:1.6}
.inv-tip .tip-extra{margin-top:5px;font-size:11.5px;color:#d8b45a;letter-spacing:1px}
/* v10.37：可溯代码 —— 悬停详情底部的溯码标注 */
.inv-tip .tip-code{margin-top:6px;padding-top:5px;border-top:1px dashed rgba(190,150,70,.35);font-size:11px;color:#9a8a5f;letter-spacing:2px;font-family:Consolas,monospace}

/* 商店卡补充信息 */
.shop-meta{font-size:11px;color:#9a825a;letter-spacing:1px;margin-top:3px}
.shop-icon-fallback{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  font-family:var(--runefont);font-size:64px;color:#d8b45a;text-shadow:0 0 18px rgba(216,180,90,.5);
}
.shop-icon.noimg .shop-icon-fallback{display:flex}
.shop-icon{position:relative}

/* 管理员图鉴修订 */
.gi-search{
  width:100%;padding:8px 12px;margin-bottom:10px;border-radius:6px;font-family:var(--serif);
  background:rgba(50,34,12,.25);border:1px solid rgba(120,88,28,.6);color:#4a3410;font-size:14px;
}
.gi-search:focus{outline:none;border-color:#a97e2c;box-shadow:0 0 8px rgba(169,126,44,.35)}
.gi-form{padding:10px 12px;margin-bottom:10px;border-radius:8px;background:rgba(90,60,20,.12);border:1px solid rgba(120,88,28,.45)}
.gi-prev{width:72px;height:72px;border-radius:6px;border:1px solid rgba(120,88,28,.6);object-fit:cover;margin:6px 0;background:#1c1206}
.gi-list{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.gi-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:rgba(70,48,16,.14);border:1px solid rgba(120,88,28,.35)}
.gi-icon{width:34px;height:34px;border-radius:5px;object-fit:cover;background:#1c1206;flex-shrink:0}
.gi-info{flex:1;min-width:0}
.gi-name{font-size:14px;color:#4a3410;font-weight:700;letter-spacing:1px}
.gi-meta{font-size:11px;color:#8a6d3a;letter-spacing:1px}
.gi-edit{
  font-size:12px;padding:4px 12px;cursor:pointer;border-radius:4px;letter-spacing:1px;
  background:none;border:1px solid #b39a63;color:#7a5f36;font-family:var(--serif);transition:all .2s;
}
.gi-edit:hover{border-color:var(--gold);color:#8a6d1d}
.gi-more{font-size:12px;color:#8a6d3a;text-align:center;padding:6px;letter-spacing:1px}

/* ============================================================
   v3.0 — 货币 · 出售 · 拍卖行 · 铸造新道具 · 装备数值
   ============================================================ */
.shop-gold{margin-left:auto;font-size:15px;letter-spacing:1px;color:#d8b45a;white-space:nowrap;text-shadow:0 1px 2px rgba(60,40,10,.6)}
.shop-tab-sell{color:#7a4a12;border-color:#b98a3a}
.shop-tab-auc{color:#5a2a6a;border-color:#9a6ab8}
/* v10.8：瑰物书坊 —— 华丽入口 */
.shop-tab-boutique{color:#3a2410;background:linear-gradient(135deg,#f7e3a1 0%,#e8c46a 30%,#c9a44f 55%,#e8c46a 80%,#f7e3a1 100%);border:1px solid #a97e2c;box-shadow:0 0 12px rgba(232,196,106,.45),inset 0 1px 0 rgba(255,255,255,.55);font-weight:700;letter-spacing:3px;position:relative;overflow:hidden}
.shop-tab-boutique:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 0 20px rgba(232,196,106,.75),inset 0 1px 0 rgba(255,255,255,.6)}
.shop-tab-boutique.active{background:linear-gradient(135deg,#ffe9b0,#d8b45a);box-shadow:0 3px 14px rgba(160,120,30,.5),0 0 22px rgba(232,196,106,.6)}
.btq-rune{color:#8a5a12;font-size:11px;text-shadow:0 0 6px rgba(255,230,160,.9)}
.btq-card{border-color:rgba(201,162,63,.8);background:linear-gradient(180deg,rgba(52,34,10,.85),rgba(34,22,7,.85))}
.btq-effect{font-size:11px;color:#b8a67e;letter-spacing:.5px;margin:2px 0;min-height:15px}
/* v10.32：书坊卡片「查看详情 / 购入」双按钮排布 */
.btq-actions{display:flex;gap:6px;margin-top:4px}
.btq-actions .shop-buy{flex:1}
.btq-detail{background:rgba(60,44,16,.9)!important;border:1px solid rgba(201,162,63,.55)!important;color:#d8c48a!important;font-size:12px!important;padding:5px 4px!important}
/* v10.33：后台图标选择实时预览 */
.btq-icon-row{display:flex;align-items:center;gap:8px}
/* v10.39：下拉本体加宽加白底 —— 修「点击后看不到选项」的可读性 */
.btq-icon-row select#btq-icon,.btq-icon-row select#hnr-icon{flex:1;min-width:220px;max-width:320px;background:#fff;color:#2a1f0e;border:1px solid rgba(120,90,40,.5);border-radius:6px;padding:6px 8px;font-size:13px}
.btq-icon-preview{width:38px;height:38px;object-fit:cover;border-radius:6px;border:1px solid rgba(201,162,63,.6);background:rgba(30,20,6,.6);flex:none}
/* ── v10.65：图标选择器 —— 触发钮（图+名+分类）+ 搜索/分类缩略图面板 ── */
.icp{position:relative;display:inline-block;min-width:240px;max-width:100%;vertical-align:top}
.icp-trigger{display:flex;align-items:center;gap:9px;width:100%;padding:6px 10px;background:rgba(30,22,10,.55);border:1px solid rgba(190,150,70,.45);border-radius:6px;color:#f0e2b8;font-size:13px;cursor:pointer;text-align:left;font-family:inherit}
.icp-trigger:hover{border-color:rgba(201,162,63,.85)}
.icp-img{width:34px;height:34px;object-fit:contain;border-radius:5px;background:rgba(20,14,6,.6);border:1px solid rgba(201,162,63,.4);flex:none}
.icp-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:1px}
.icp-arrow{opacity:.6;flex:none;font-size:11px}
.icp-panel{position:absolute;z-index:170;top:calc(100% + 6px);left:0;width:min(470px,92vw);max-height:400px;overflow:auto;background:linear-gradient(170deg,#2c2012,#1a1208);border:1px solid #8a6d3b;border-radius:10px;padding:12px;box-shadow:0 16px 34px rgba(0,0,0,.65);box-sizing:border-box}
.icp-search{width:100%;padding:6px 10px;background:rgba(20,14,6,.7);border:1px solid rgba(190,150,70,.45);border-radius:6px;color:#f0e2b8;font-size:13px;box-sizing:border-box;font-family:inherit}
.icp-search:focus{outline:none;border-color:rgba(201,162,63,.8)}
.icp-cats{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.icp-cat{font-size:11px;padding:2px 9px;border:1px solid rgba(190,150,70,.4);border-radius:11px;color:#cbb98e;cursor:pointer;letter-spacing:1px;user-select:none}
.icp-cat:hover{color:#f0dcae;border-color:rgba(201,162,63,.7)}
.icp-cat.on{background:rgba(201,162,63,.25);color:#f0dcae;border-color:rgba(201,162,63,.85)}
.icp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px}
.icp-it{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 3px;border:1px solid transparent;border-radius:7px;cursor:pointer}
.icp-it:hover{background:rgba(201,162,63,.12);border-color:rgba(201,162,63,.4)}
.icp-it.on{background:rgba(201,162,63,.2);border-color:#c9a23f}
.icp-it img{width:38px;height:38px;object-fit:contain}
.icp-it span{font-size:10.5px;color:#d8c79a;text-align:center;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:keep-all;max-width:100%}
.anila-float{position:fixed;z-index:80;display:flex;flex-direction:row;align-items:flex-end;gap:6px;cursor:grab;user-select:none;filter:drop-shadow(0 8px 18px rgba(0,0,0,.55))}
.anila-float:active{cursor:grabbing}
.btn-wake-anila{margin-top:10px;padding:7px 18px;border:1px solid rgba(214,178,106,.55);border-radius:999px;background:linear-gradient(180deg,rgba(62,46,25,.9),rgba(38,28,16,.92));color:#e8cf9a;font-size:13px;letter-spacing:2px;cursor:pointer;transition:all .25s ease;font-family:inherit}
.btn-wake-anila:hover{border-color:#d6b26a;color:#ffe9b8;box-shadow:0 0 16px rgba(214,178,106,.35);transform:translateY(-1px)}
.anila-img{width:400px;max-width:46vw;height:auto;display:block;animation:anila-bob 5.5s ease-in-out infinite;pointer-events:none;-webkit-user-drag:none}
.anila-x{position:absolute;top:-10px;right:-10px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(30,20,8,.72);border:1px solid #b08d3e;color:#e8d9b0;font-size:11px;cursor:pointer;opacity:.65;transition:opacity .2s;line-height:1}
.anila-x:hover{opacity:1;background:rgba(90,40,20,.9)}
@keyframes anila-bob{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-9px) rotate(.6deg)}}
.anila-bubble{position:relative;max-width:230px;background:linear-gradient(160deg,rgba(250,240,214,.96),rgba(232,214,170,.96));border:1px solid #b08d3e;border-radius:12px;padding:8px 12px;font-size:12.5px;line-height:1.65;color:#4a3a1c;box-shadow:0 4px 14px rgba(40,25,5,.35);letter-spacing:.5px}
.anila-bubble::after{content:'';position:absolute;top:50%;right:-7px;margin-top:-6px;border:6px solid transparent;border-right:none;border-left:8px solid #b08d3e}
.anila-who{display:block;font-size:10px;color:#8a6d1d;letter-spacing:2px;margin-bottom:2px}
.btq-admin-row{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-top:8px;border:1px solid rgba(140,105,40,.5);border-radius:8px;background:rgba(40,26,8,.55)}
.btq-admin-row.off{opacity:.55}
.btq-admin-ico{width:34px;height:34px;object-fit:cover;border-radius:6px;border:1px solid rgba(201,162,63,.5);flex:none}
.btq-admin-info{flex:1;font-size:13px;color:#e8d9b0}
.btq-admin-info span{display:block;font-size:11px;color:#9a8a68}
.btq-admin-ops{display:flex;gap:6px}
.btn-mini{background:none;border:1px solid #8a6d3b;color:#d8b45a;border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;white-space:nowrap}
.btn-mini:hover{background:#8a6d3b33}
.btn-mini.danger{border-color:#8a3a2a;color:#d88a6a}
.btn-mini.danger:hover{background:#8a3a2a33}

/* 出售窗口 */
.sell-tip{font-size:13px;letter-spacing:2px;color:#8a6d1d;margin:4px 0 14px;text-align:center}
.sell-row{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:10px;border:1px solid rgba(140,105,40,.55);border-radius:8px;background:linear-gradient(180deg,rgba(46,28,8,.72),rgba(30,18,5,.72));backdrop-filter:blur(3px)}
.sell-ico{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid rgba(201,162,63,.5);background:rgba(20,12,4,.6);flex:none}
.sell-name{flex:1;font-size:15px;color:#e8d9b0;font-weight:600;letter-spacing:1px;text-shadow:0 1px 2px rgba(20,10,0,.7)}
.sell-price{font-size:14px;color:#8a6d1d;white-space:nowrap}
.sell-btn{flex:none;font-size:13px;letter-spacing:2px;padding:7px 16px;border-radius:6px;border:1px solid #a97e2c;background:linear-gradient(180deg,#e7c877,#c9a44f);color:#3a2410;cursor:pointer;transition:transform .15s,box-shadow .15s}
.sell-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(140,100,30,.4)}

/* 拍卖行 */
.auc-form{display:flex;gap:10px;align-items:center;margin:6px 0 12px;flex-wrap:wrap}
.auc-form select,.auc-form input{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid rgba(140,105,40,.6);border-radius:6px;background:rgba(46,28,8,.75);color:#e8d9b0}
.auc-form input[type=number]{width:110px}
.auc-claim{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px;padding:10px 14px;border:1px solid #b98a2e;border-radius:10px;background:linear-gradient(135deg,rgba(185,138,46,.22),rgba(120,80,20,.28))}
.auc-claim-main{color:#f0d489;font-weight:700}
.auc-claim-main b{color:#ffe9a8}
.auc-claim-items{flex:1 1 100%;font-size:12px;color:#d8c9a3;opacity:.9}
.auc-claim .btn{margin-left:auto}
.auc-note{font-size:12.5px;letter-spacing:1px;color:#8a6d1d;margin:0 0 14px}
.auc-seller{font-size:12px;color:#6a4a1a;letter-spacing:1px}

/* 物品铭牌数值 / 旋转图标 / 图标隐藏文字 */
.inv-icon.rot{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg)}
.inv-item.has-icon .inv-name{display:none}
.tip-stat{display:inline-block;font-size:11px;padding:1px 7px;margin-left:6px;border-radius:8px;letter-spacing:1px;vertical-align:middle}
.tip-stat.atk{background:linear-gradient(180deg,#e7c877,#c9a44f);color:#3a2410}
.tip-stat.def{background:linear-gradient(180deg,#9aa8b8,#6a7a8a);color:#f0f4f8}

/* 装备槽图标与数值 */
.eq2-ico{width:22px;height:22px;object-fit:cover;border-radius:4px;border:1px solid rgba(201,162,63,.5)}
.eq2-slotbox{display:flex;align-items:center;justify-content:center;gap:4px}
.eq-stat{font-size:10px;padding:1px 6px;border-radius:8px;letter-spacing:.5px}
.eq-stat.atk{background:linear-gradient(180deg,#e7c877,#c9a44f);color:#3a2410}
.eq-stat.def{background:linear-gradient(180deg,#9aa8b8,#6a7a8a);color:#f0f4f8}
.carry-ico{width:56px;height:56px;object-fit:contain;border-radius:6px;border:1px solid rgba(201,162,63,.5);filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}

/* 角色页金币行 */
.char-gold-row{margin:6px 0;font-size:14px;color:#7a5c2c;letter-spacing:1px}
.char-gold-row b{color:#c9a227}

/* 仓库满格竖版 */
.stash-box{max-height:none}

/* 铸造新道具表单 */
.gi-new{margin:10px 0}
.gi-numrow{display:flex;gap:10px}
.gi-numrow .field{flex:1}
.gi-numrow .field input{width:100%}
.gi-form select{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid rgba(140,105,40,.6);border-radius:6px;background:rgba(46,28,8,.75);color:#e8d9b0;width:100%}
.gi-sellrow{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#5a3d14;letter-spacing:1px;margin-bottom:16px}
.gi-sellrow input{width:auto!important}

/* 出售/拍卖行：整行列表布局（覆盖商品卡片网格） */
.shop-grid.shop-grid-list{display:flex;flex-direction:column;grid-template-columns:none;gap:0}

/* ============================================================
   v4.0 — 焚毁炉 / 赐予道具 / 金币堆
   ============================================================ */
.destroy-box{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 16px;border:1px dashed rgba(160,60,30,.7);border-radius:8px;background:linear-gradient(180deg,rgba(50,18,6,.65),rgba(30,10,4,.7));cursor:pointer;transition:border-color .2s,box-shadow .2s}
.destroy-box:hover{border-color:#c0392b;box-shadow:0 0 14px rgba(192,57,43,.35)}
.destroy-flame{font-size:22px;color:#d35400;text-shadow:0 0 8px rgba(230,90,20,.8)}
.destroy-word{font-size:14px;letter-spacing:4px;color:#c0392b;font-weight:700}
.destroy-hint{font-size:12px;color:#8a6d4d;letter-spacing:1px}

.gt-list{max-height:320px;overflow-y:auto;margin:10px 0;border:1px solid rgba(140,105,40,.4);border-radius:8px;padding:6px;background:rgba(30,18,5,.35)}
.gt-list::-webkit-scrollbar{width:8px}
.gt-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#c9a44f,#8a6d2a);border-radius:4px}
.gt-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;cursor:pointer;transition:background .15s}
.gt-item:hover{background:rgba(201,162,63,.14)}
.gt-item input[type=checkbox]{width:16px;height:16px;accent-color:#c9a227;flex:none}
.gt-count{font-size:13px;color:#8a6d1d;letter-spacing:1px;margin-left:8px}
.gt-note{font-size:12.5px;letter-spacing:1px;color:#8a6d1d;text-align:center;margin-top:8px}

/* ================= v5.0 ================= */

/* —— 道具品质六档 —— */
.inv-item.q-poor      { box-shadow: inset 0 0 0 3px rgba(141,129,104,1); }
.inv-item.q-common    { box-shadow: inset 0 0 0 3px rgba(230,220,195,.85); }
.inv-item.q-fine      { box-shadow: inset 0 0 0 3px rgba(90,167,255,1),  0 0 10px rgba(90,167,255,.5); }
.inv-item.q-rare      { box-shadow: inset 0 0 0 3px rgba(180,108,255,1), 0 0 10px rgba(180,108,255,.5); }
.inv-item.q-legendary { box-shadow: inset 0 0 0 3px rgba(255,201,77,1),  0 0 12px rgba(255,201,77,.55); }
.inv-item.q-epic      { box-shadow: inset 0 0 0 3px rgba(255,90,90,1),   0 0 12px rgba(255,90,90,.55); }

.shop-card.q-fine, .shop-card.q-rare, .shop-card.q-legendary, .shop-card.q-epic { position:relative; }
.shop-stat { color:#e8c97a; }

.tip-name.q-fine, .tip-name.q-rare, .tip-name.q-legendary, .tip-name.q-epic,
.tip-name.q-poor, .tip-name.q-common { background:none; }
.tip-name.q-poor      { color:#b3a88e; }
.tip-name.q-common    { color:#e8e0cc; }
.tip-name.q-fine      { color:#7db8ff; }
.tip-name.q-rare      { color:#c98fff; }
.tip-name.q-legendary { color:#ffd76a; }
.tip-name.q-epic      { color:#ff7b7b; }

.sm-chip.q-poor, .sm-chip.q-common, .sm-chip.q-fine,
.sm-chip.q-rare, .sm-chip.q-legendary, .sm-chip.q-epic { border:1px solid currentColor; }
.sm-chip.q-poor      { color:#b3a88e; } .sm-chip.q-common { color:#e8e0cc; }
.sm-chip.q-fine      { color:#7db8ff; } .sm-chip.q-rare   { color:#c98fff; }
.sm-chip.q-legendary { color:#ffd76a; } .sm-chip.q-epic   { color:#ff7b7b; }

.shop-refresh { grid-column:1/-1; text-align:center; color:#c9b077; letter-spacing:3px; font-size:14px; padding:6px 0 2px; }
.shop-refresh .q-countdown { color:#e8c97a; }

/* —— 整备页金币 —— */
.gear-gold-row { font-size:15px; letter-spacing:2px; color:#c9b077; margin-bottom:10px; }
.gear-gold-row b { color:#ffd76a; font-size:17px; }
.gear-gold-admin { color:#ff9d5c; font-size:12px; }

/* —— 角色栏左右分栏（左 832×1216 立绘） —— */
.csplit { display:flex; gap:28px; align-items:flex-start; }
.csplit-portrait-col { flex:none; width:300px; }
.csplit-portrait {
  position:relative; width:100%; aspect-ratio:832/1216; max-height:72vh; margin:0 auto;
  border:1px solid rgba(201,176,119,.55); border-radius:6px; overflow:hidden;
  background:radial-gradient(ellipse at 50% 30%, rgba(80,60,30,.5), rgba(20,14,8,.9));
  box-shadow:0 10px 30px rgba(0,0,0,.55), inset 0 0 40px rgba(0,0,0,.5);
}
.csplit-portrait img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.csplit-info { flex:1; min-width:0; }

/* —— 冒险者等级纹章 —— */
.char-rank-row { display:flex; align-items:center; gap:12px; margin:10px 0 14px; flex-wrap:wrap; }
.rank-emblem { position:relative; display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; flex:none;
  background:rgba(255,248,225,.72); border-radius:50%; box-shadow:inset 0 0 0 1px rgba(138,109,29,.45), 0 1px 5px rgba(58,36,16,.35); }
.rank-emblem img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 2px 8px rgba(0,0,0,.7)); }
.rank-emblem b {
  position:relative; z-index:1; font-family:'Cinzel', 'Times New Roman', serif;
  font-size:26px; color:#5a430e; text-shadow:0 1px 0 rgba(255,248,225,.8), 0 0 6px rgba(255,248,225,.6);
}
.rank-emblem.rank-s b { color:#8a6d10; text-shadow:0 0 10px rgba(255,201,77,.9), 0 1px 0 rgba(255,248,225,.8); }
.rank-emblem.mini { width:30px; height:30px; vertical-align:middle; }
.rank-emblem.mini b { font-size:13px; }
.char-rank-name { font-size:18px; letter-spacing:4px; color:#8a6d1d; text-shadow:0 1px 0 rgba(255,248,225,.65); }
.gm-ranks { display:flex; flex-direction:column; gap:12px; }
.gm-rank-row { display:flex; align-items:center; gap:14px; }
.gm-rank-input {
  flex:1; max-width:180px; background:rgba(20,14,8,.7); border:1px solid rgba(201,176,119,.5);
  color:#f0e2c0; padding:7px 10px; border-radius:4px; font-size:15px; letter-spacing:2px;
}
.gm-rank-tip { color:#c9b077; font-size:12px; letter-spacing:2px; margin:4px 0; }

/* —— AI 绘形 —— */
.portrait-warn { margin-top:8px; font-size:12px; line-height:1.7; color:#d8a25a; letter-spacing:1px; }
.portrait-warn b { color:#ffbf6e; }
.art-section { margin-top:18px; border-top:1px dashed rgba(201,176,119,.4); padding-top:14px; }
.art-tip { color:#c9b077; font-size:13px; line-height:1.9; letter-spacing:1px; margin:6px 0 12px; }
.art-tip b { color:#ffbf6e; }
.art-actions { display:flex; gap:12px; flex-wrap:wrap; }
.art-candidates { display:flex; gap:20px; margin-top:16px; flex-wrap:wrap; }
.art-cand {
  position:relative; width:220px; border:2px solid rgba(201,176,119,.5); border-radius:6px;
  overflow:hidden; cursor:pointer; transition:border-color .25s, box-shadow .25s;
  background:#140e08;
}
.art-cand img { width:100%; aspect-ratio:832/1216; object-fit:cover; object-position:top center; display:block; }
.art-cand .art-pick { position:absolute; left:0; right:0; bottom:0; border-radius:0; font-size:13px; letter-spacing:3px; }
.art-cand:hover { border-color:#e8c97a; box-shadow:0 0 18px rgba(232,201,122,.35); }
.art-cand.chosen { border-color:#ffd76a; box-shadow:0 0 24px rgba(255,215,106,.55); }

/* —— 酒馆大堂 —— */
/* v7.9：三栏 —— 左在场冒险者 · 中大堂闲谈 · 右风尘纪行与组队 */
/* v8.0：收窄两侧、加宽聊天；子项允许收缩，杜绝卷轴溢出挡住聊天 */
.tavern-wrap { display:grid; grid-template-columns:320px 1fr 330px; gap:22px; align-items:start; }
.tavern-wrap>*{min-width:0}
/* v5.12：亮羊皮纸面板上的标题/文字全部改深墨棕（原先浅金在亮底上不可见） */
.tavern-sec-title { color:#6b4a12; letter-spacing:4px; font-size:16px; margin:0 0 12px; text-shadow:0 1px 0 rgba(255,250,235,.5); }
.tavern-online { display:flex; flex-direction:column; gap:10px; }
.tavern-user {
  display:flex; align-items:center; gap:10px; padding:8px 10px;
  background:rgba(38,26,12,.78); border:1px solid rgba(201,176,119,.35); border-radius:6px;
}
.tavern-user.me { border-color:rgba(255,215,106,.6); background:rgba(60,44,16,.72); }
.tu-avatar { width:40px; height:40px; border-radius:50%; object-fit:cover; object-position:center 25%; border:1px solid rgba(201,176,119,.6); flex:none; }
/* v10.20：名字与等级同行并排，副本中徽标独占下一行 */
.tu-main { flex:1; min-width:0; display:flex; flex-direction:row; flex-wrap:wrap; align-items:baseline; column-gap:8px; row-gap:2px; }
.tu-name { flex:1 1 auto; min-width:0; color:#f7ecd2; font-size:15px; letter-spacing:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* v10.20：等级与名字同行且永不被截断 */
.tu-lv { flex:none; color:#ffe9a0; font-size:12px; font-weight:700; letter-spacing:.5px; white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.7); }
/* v10.20：称号/徽章/副本中徽标同处一行（满宽），空间不足时徽标自动换行但始终可见 */
.tu-sub { display:flex; align-items:center; flex-wrap:wrap; row-gap:2px; gap:3px; flex-basis:100%; color:#ead9a8; font-size:11px; letter-spacing:.5px; white-space:normal; overflow:visible; }
/* v8.1：名片按钮收窄 —— 等级完整可见 */
.tavern-user .btn { padding:6px 9px; font-size:12px; letter-spacing:1px; }
/* v10.20：按钮纵向堆叠 —— 为名字+等级同行腾出横向空间 */
.tu-actions { display:flex; flex-direction:column; gap:5px; flex:none; align-self:center; }
.tavern-user .tu-view { padding:6px 7px; font-size:11px; }
.tu-view, .tu-invite {
  font-size:12px; padding:5px 10px; letter-spacing:2px;
  background:linear-gradient(180deg,#5a3f1c 0%,#3a2710 100%);
  border:1px solid rgba(255,215,106,.75);
  color:#ffe9a0; text-shadow:0 1px 2px rgba(0,0,0,.8);
  box-shadow:0 2px 6px rgba(0,0,0,.5), inset 0 1px 0 rgba(240,208,96,.35);
}
.tu-view:hover, .tu-invite:hover { border-color:#ffe9a0; color:#fff3c8; filter:brightness(1.15); transform:translateY(-1px); }
.tavern-gate { text-align:center; color:#7a5a20; letter-spacing:3px; padding:30px 0; }

.tavern-right { display:flex; flex-direction:column; gap:18px; min-width:0; }
.tavern-mid { min-width:0; display:flex; flex-direction:column; position:relative; z-index:2; }
.party-panel-scroll { max-height:480px; }
/* v8.0：酒馆两侧卷轴收窄内边距 —— 内容不再撑破栏宽 */
.tavern-left .scroll-body, .tavern-right .scroll-body { padding:36px 26px; }
.party-panel { min-height:120px; }
.party-head { color:#6b4a12; letter-spacing:4px; font-size:16px; margin-bottom:10px; text-shadow:0 1px 0 rgba(255,250,235,.5); }
.party-empty { text-align:center; color:#7a5a20; letter-spacing:3px; padding:24px 0; line-height:2; }
.party-members { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.party-member {
  display:flex; align-items:center; gap:8px; padding:6px 10px;
  background:rgba(38,26,12,.72); border:1px solid rgba(201,176,119,.3); border-radius:5px;
}
.party-member.leader { border-color:rgba(255,215,106,.65); }
/* v9.3：角色栏经验条独占第二行，突破按钮随经验条/技能点下方 */
.char-exp-break { flex-basis:100%; height:0; }
.char-rank-row .char-exp-bar { flex:1; }
/* v9.2：离线灰显 —— 在场冒险者与队伍成员 */
.tavern-user.offline { opacity:.42; filter:grayscale(.65); }
.party-member.offline { opacity:.42; filter:grayscale(.7); }
.tw-offline { display:inline-block; margin-left:6px; padding:1px 7px; font-size:11px; font-weight:700; letter-spacing:1px; color:#9a938a; background:rgba(60,56,50,.55); border:1px solid rgba(140,130,115,.45); border-radius:3px; vertical-align:1px; }
.pm-name { flex:1; color:#f0e2c0; letter-spacing:1px; }
.pm-ready { color:#a8e6a0; font-size:12px; letter-spacing:1px; margin-right:8px; }

/* ——— v5.11：出发提示横幅 ——— */
.depart-banner{
  position:fixed; right:18px; bottom:18px; z-index:95;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; max-width:min(520px, 92vw);
  padding:12px 16px; border-radius:8px;
  background:linear-gradient(180deg, rgba(46,32,14,.96), rgba(28,19,8,.96));
  border:1px solid rgba(255,201,77,.65);
  box-shadow:0 8px 30px rgba(0,0,0,.6), 0 0 22px rgba(255,201,77,.28);
  animation:banner-in .35s ease;
}
.depart-banner.hidden{ display:none; }
@keyframes banner-in{ from{ transform:translateY(16px); opacity:0; } to{ transform:none; opacity:1; } }
.db-text{ color:#ffe9a8; font-size:14px; letter-spacing:1px; }
.depart-banner .btn{ font-size:13px; letter-spacing:2px; padding:6px 14px; }
.db-close{
  position:absolute; top:-8px; right:-8px; width:24px; height:24px; border-radius:50%;
  background:#3a2a12; color:#e8c97a; border:1px solid rgba(232,201,122,.7);
  cursor:pointer; font-size:12px; line-height:1;
}

/* ——— v5.11：角色页更换立绘按钮 ——— */
.btn-portrait-re{ margin-top:10px; width:100%; font-size:13px; letter-spacing:3px; }
.pm-lead { font-size:11px; padding:3px 8px; letter-spacing:1px; }
.party-quest-row { display:flex; gap:10px; align-items:center; margin:8px 0; flex-wrap:wrap; }
.party-select {
  flex:1; min-width:200px; background:rgba(20,14,8,.8); color:#f0e2c0;
  border:1px solid rgba(201,176,119,.5); padding:8px 10px; border-radius:4px; font-size:14px;
}
.party-quest-name { color:#8a6516; letter-spacing:2px; margin:6px 0; font-weight:bold; }
.party-quest-name.doing { color:#3f7a3a; }
.party-wait { color:#7a5a20; font-size:13px; letter-spacing:2px; margin:6px 0; }
.party-invite {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0;
  padding:8px 10px; border:1px dashed rgba(120,85,20,.6); border-radius:5px;
  color:#4a3620; font-size:13px; letter-spacing:1px; background:rgba(255,250,235,.4);
}
.party-invite .btn { font-size:12px; padding:4px 10px; }
.party-leave { margin-top:8px; font-size:12px; letter-spacing:2px; }

.tavern-chat {
  background:rgba(24,16,9,.75); border:1px solid rgba(201,176,119,.4); border-radius:8px;
  overflow:hidden; display:flex; flex-direction:column;
}
.tc-head { padding:10px 14px; color:#e8c97a; letter-spacing:4px; font-size:14px; border-bottom:1px solid rgba(201,176,119,.3); }
.tc-msgs { height:460px; overflow-y:auto; padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.tc-msg { display:flex; gap:8px; font-size:14px; line-height:1.6; }
.tc-msg.sys { color:#9c8a5f; font-size:13px; }
.tc-name { color:#ffd76a; flex:none; letter-spacing:1px; }
.tc-msg.sys .tc-name { color:#9c8a5f; }
.tc-text { color:#e6d9bb; word-break:break-all; }
.tc-input-row { display:flex; gap:10px; padding:10px 12px; border-top:1px solid rgba(201,176,119,.3); }
.tc-input-row input {
  flex:1; background:rgba(20,14,8,.8); border:1px solid rgba(201,176,119,.5);
  color:#f0e2c0; padding:8px 12px; border-radius:4px; font-size:14px;
}
.tc-input-row .btn { font-size:13px; letter-spacing:3px; }

/* v10.74：赞助入口 —— 低调温柔的一行小字 */
.tc-support {
  display:block; text-align:center; padding:6px 12px 9px;
  font-size:12px; letter-spacing:1px; text-decoration:none;
  color:rgba(201,176,119,.55); border-top:1px dashed rgba(201,176,119,.18);
  transition:color .25s ease;
}
.tc-support:hover { color:rgba(232,205,143,.9); }

.tavern-modal { position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center; }
.tavern-modal.hidden { display:none; }
.tm-mask { position:absolute; inset:0; background:rgba(8,5,2,.72); }
/* v10.18：弹窗主体可滚动 —— 履历长了不再被切断 */
.tm-box { position:relative; width:min(680px, 92vw); max-height:86vh; display:flex; flex-direction:column; overflow:hidden; }
.tm-body { display:flex; gap:20px; padding:20px; overflow-x:hidden; overflow-y:auto; max-height:calc(86vh - 52px); }
/* v10.21：加宽到 260px 并按图片自然比例铺满 —— 固定 832×1216 高框会让方图/横图上下大片留白（难看）；
   改 height:auto 后框体随图伸缩：方图就是方框、全身图就是长框，永不裁切（contain 保底） */
.tm-portrait { width:260px; height:auto; max-height:68vh; object-fit:contain; object-position:center; background:rgba(30,22,12,.35); border-radius:6px; border:1px solid rgba(201,176,119,.6); flex:none; align-self:flex-start; }
.tm-info { flex:1; min-width:0; }
/* v10.22：左栏（立绘+履历） —— 方图下方的留白放履历，右栏只留人物信息 */
.tm-left { width:260px; flex:none; display:flex; flex-direction:column; gap:12px; align-self:flex-start; }
.tm-left .tm-log { margin-top:0; }
/* v5.11：羊皮纸底色上的墨色文字（原先浅色字在亮底上完全不可见） */
.tm-name { color:#33200c; font-size:26px; letter-spacing:3px; margin:0 0 6px; text-shadow:0 1px 0 rgba(255,250,235,.6); }
.tm-sub { display:flex; align-items:center; gap:6px; color:#7a5518; font-size:14px; letter-spacing:2px; margin-bottom:10px; font-weight:700; }
.tm-titles { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.tm-title { color:#8a6516; font-size:13px; letter-spacing:2px; border:1px solid rgba(138,101,22,.55); background:rgba(255,248,225,.45); padding:2px 8px; border-radius:3px; }
.tm-origin { color:#43301a; font-size:14px; line-height:1.9; letter-spacing:1px; }
.tm-close {
  position:absolute; top:-6px; right:-6px; width:34px; height:34px; border-radius:50%;
  background:#3a2a12; color:#e8c97a; border:1px solid rgba(232,201,122,.7); cursor:pointer; font-size:15px;
}

@media (max-width: 980px) {
  .csplit { flex-direction:column; }
  .csplit-portrait-col { width:min(300px, 80vw); margin:0 auto; }
  .tavern-wrap { grid-template-columns:1fr; }
  .tm-body { flex-direction:column; }
  .tm-left { width:min(240px, 70vw); margin:0 auto; }
  .tm-left .tm-portrait { width:100%; margin:0; }
}

/* ——— v5.1：商店品质外框（六档描边，替代字条） ——— */
.shop-icon.q-poor      { box-shadow: 0 0 0 3px rgba(141,129,104,.95), inset 0 0 0 1px rgba(141,129,104,.6); }
.shop-icon.q-common    { box-shadow: 0 0 0 3px rgba(230,220,195,.9),  inset 0 0 0 1px rgba(230,220,195,.55); }
.shop-icon.q-fine      { box-shadow: 0 0 0 3px rgba(90,167,255,1),    0 0 16px rgba(90,167,255,.55),  inset 0 0 0 1px rgba(90,167,255,.7); }
.shop-icon.q-rare      { box-shadow: 0 0 0 3px rgba(180,108,255,1),   0 0 16px rgba(180,108,255,.55), inset 0 0 0 1px rgba(180,108,255,.7); }
.shop-icon.q-legendary { box-shadow: 0 0 0 3px rgba(255,201,77,1),    0 0 18px rgba(255,201,77,.6),  inset 0 0 0 1px rgba(255,201,77,.7); }
.shop-icon.q-epic      { box-shadow: 0 0 0 3px rgba(255,90,90,1),     0 0 18px rgba(255,90,90,.6),   inset 0 0 0 1px rgba(255,90,90,.7); }
.shop-icon{margin:3px}

/* ——— v5.1：装备槽方形大图标（只显数值，空槽显部位名） ——— */
.eq2-slotbox{flex-direction:column;gap:1px;padding:3px;border-radius:10px}
.eq2-slotbox .eq2-ico{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid rgba(201,162,63,.55)}
.eq2-slotbox .eq2-txt{font-size:10px;letter-spacing:1px;line-height:1.1;min-height:0}
.eq2-slotbox .eq-stat{font-size:10.5px;padding:0 5px;border-radius:3px}

/* ——— v5.1：装备栏总攻防条 ——— */
.eq2-totalbar{display:flex;gap:14px;align-items:center;margin:2px 0 8px;padding:7px 14px;border-radius:8px;
  background:linear-gradient(120deg,rgba(60,42,14,.75),rgba(30,20,7,.75));
  border:1px solid rgba(190,150,60,.45);box-shadow:inset 0 0 12px rgba(0,0,0,.35)}
.eq2-tb-atk{color:#ffb45e;font-weight:700;letter-spacing:1px;text-shadow:0 0 8px rgba(255,150,60,.35)}
.eq2-tb-def{color:#8fc7ff;font-weight:700;letter-spacing:1px;text-shadow:0 0 8px rgba(90,167,255,.3)}

/* ——— v5.2：整备页金币底框 ——— */
.gear-gold-row{display:inline-block;padding:7px 18px;border-radius:8px;
  background:linear-gradient(120deg,rgba(66,46,14,.88),rgba(38,26,9,.88));
  border:1px solid rgba(214,175,80,.6);box-shadow:inset 0 0 12px rgba(0,0,0,.4),0 0 10px rgba(214,175,80,.15)}
.gear-gold-row b{color:#ffd76a;text-shadow:0 0 8px rgba(255,200,80,.4)}

/* ——— v5.2：tag 与物品名字号放大 ——— */
.sm-chip{font-size:13px;padding:4px 12px;letter-spacing:1px}
.shop-sub{font-size:13.5px}
.shop-name{font-size:16.5px}
.inv-name{font-size:12px}
.tip-sub{font-size:12.5px}
.eq2-slotbox .eq-stat{font-size:12px}

/* ——— v5.2：装备槽图标填满形状格 ——— */
.eq2-slotbox .eq2-ico{width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain;border-radius:8px}

/* ——— v5.2：登录弹窗 ——— */
.modal-mask{position:fixed;inset:0;background:rgba(10,6,2,.72);backdrop-filter:blur(3px);z-index:300;
  display:flex;align-items:center;justify-content:center}
.login-scroll{width:min(460px,92vw);position:relative}
.lm-close{position:absolute;top:10px;right:14px;z-index:2;width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(120,88,28,.6);background:rgba(60,42,14,.15);color:#5a3f16;cursor:pointer;font-size:15px}
.lm-close:hover{background:rgba(60,42,14,.3)}
.lm-tabs{display:flex;gap:8px;margin-bottom:14px}
.lm-tab{flex:1;padding:9px 6px;border-radius:6px;border:1px solid rgba(120,88,28,.55);cursor:pointer;
  background:rgba(60,42,14,.12);color:#6b4c1c;font-size:14px;letter-spacing:1px;transition:all .2s}
.lm-tab.active{background:linear-gradient(140deg,rgba(126,94,32,.85),rgba(84,60,18,.85));color:#ffe9b0;
  box-shadow:0 0 12px rgba(200,160,60,.35);border-color:rgba(200,160,60,.8)}
.lm-tab.tab-gold.active{background:linear-gradient(140deg,#8a6a22,#5c4312);color:#ffe9b0}
.lm-label{display:block;font-size:13px;color:#6b4c1c;letter-spacing:2px;margin:12px 0 5px}
.lm-input{width:100%;padding:10px 12px;border-radius:6px;border:1px solid rgba(120,88,28,.55);
  background:rgba(255,250,235,.75);color:#3a2808;font-size:15px;outline:none;box-sizing:border-box}
.lm-input:focus{border-color:#a37c2a;box-shadow:0 0 0 3px rgba(163,124,42,.2)}
.lm-check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#7a5c26;margin-top:10px;cursor:pointer}
.lm-submit{width:100%;margin-top:18px;letter-spacing:4px}
.lm-hint{font-size:12px;color:#8a6f3a;text-align:center;margin-top:12px;line-height:1.7}
.lm-subtabs{display:flex;gap:8px;margin-bottom:4px}
.lm-subtab{flex:1;padding:7px;border-radius:6px;border:1px solid rgba(120,88,28,.5);cursor:pointer;
  background:rgba(60,42,14,.1);color:#6b4c1c;font-size:13.5px;letter-spacing:2px}
.lm-subtab.active{background:linear-gradient(140deg,rgba(126,94,32,.8),rgba(84,60,18,.8));color:#ffe9b0}
.lm-pane.hidden{display:none}

/* ——— v5.2：金币操作菜单 ——— */
.gold-menu{position:fixed;z-index:400;min-width:170px;padding:8px;border-radius:10px;
  background:linear-gradient(150deg,#f2e3bd,#e0c98f);border:1px solid rgba(120,88,28,.7);
  box-shadow:0 8px 24px rgba(30,18,5,.5)}
.gm-title{font-size:13px;color:#5a3f16;text-align:center;padding:2px 0 8px;border-bottom:1px dashed rgba(120,88,28,.5);margin-bottom:6px;letter-spacing:1px}
.gm-btn{display:block;width:100%;padding:9px 10px;margin:3px 0;border:none;border-radius:7px;cursor:pointer;
  background:rgba(126,94,32,.18);color:#4a3208;font-size:14px;letter-spacing:2px;text-align:left}
.gm-btn:hover{background:linear-gradient(140deg,rgba(126,94,32,.75),rgba(84,60,18,.75));color:#ffe9b0}


/* ============================================================
   v5.6 文字可读性强化 + 形象来源切换 + 属性惩罚标识
   ========================================================= */
/* 绘形提示：加大字号、深色文字、羊皮纸底色框 */
.art-tip{
  font-size:16px;line-height:2.1;color:#432e16;
  background:rgba(90,55,20,.14);border:1px solid rgba(90,55,20,.4);
  border-radius:8px;padding:14px 18px;margin-bottom:16px;
}
.art-tip b{color:#8a2323}
/* 属性说明 */
.attr-tip{font-size:14.5px;line-height:2;color:#553d1f;margin:8px 0 16px}
.attr-tip b{color:#8a2323}
/* 参考图警示 */
.portrait-warn{
  margin-top:10px;font-size:13.5px;line-height:1.9;color:#7a3b12;
  background:rgba(138,59,18,.10);border:1px dashed rgba(138,59,18,.5);
  border-radius:6px;padding:10px 14px;
}
.portrait-warn b{color:#8a2323}
/* 形象来源切换 */
.art-mode-row{display:flex;gap:8px;margin-bottom:12px}
.art-mode-btn{
  flex:1;padding:10px 8px;font-family:var(--serif);font-size:14.5px;letter-spacing:2px;
  color:#6b4f2a;background:rgba(255,248,225,.45);border:1px solid rgba(140,100,40,.45);
  border-radius:6px;cursor:pointer;transition:all .15s ease;
}
.art-mode-btn:hover{background:rgba(255,248,225,.75)}
.art-mode-btn.active{
  color:#3a2410;font-weight:700;
  background:rgba(240,208,96,.35);border-color:var(--gold);
  box-shadow:0 0 10px rgba(201,162,39,.35) inset;
}
/* 属性行：低属性惩罚标识 */
.attr-row-label{font-size:15px}
.attr-btn{width:30px;height:30px;font-size:17px}
.attr-row.penalized{background:rgba(138,35,35,.10);border-color:rgba(138,35,35,.4)}
.attr-row-value.low{color:#8a2323}
.attr-pen{
  font-size:12px;font-weight:700;color:#f5e0b0;background:#8a2323;
  border-radius:4px;padding:2px 7px;letter-spacing:1px;white-space:nowrap;
}
.attr-pool{font-size:14.5px}
/* 撰写结果与绑定说明放大 */
.compose-origin{font-size:16px;line-height:2.15;color:#432e16}
.compose-identity{font-size:18px}
.char-bind-note{font-size:14px}
/* 全局小字放大 + 深色化 */
.gate-hint{font-size:14px;color:#6b4f2a}
.gate-version{font-size:13.5px;color:#4a3a1e}
.hall-sub{font-size:12.5px}
.brand-en{font-size:9.5px}
.user-role{font-size:12px}
.room-theme{font-size:12.5px;color:#7a5c14}
.room-desc{font-size:15px;color:#4a3420}
.room-host{font-size:14px;color:#553d1f}
.room-status{font-size:13px}
.field-label{font-size:14.5px;color:#7a5c14}
.class-name{font-size:17px}
.class-desc{font-size:12.5px;color:#6b4f2a}
.char-sheet-class{font-size:15px}
.admin-panel-desc{font-size:14.5px;color:#553d1f}
.invite-expire{font-size:13px}
.invite-item{font-size:14.5px;color:#4a3420}
.admin-soon{font-size:15.5px}
.portrait-hint{font-size:15px;color:#6b5138}
.portrait-hint em{font-size:12.5px;color:#8a7350}
.quest-rankline,.q-deadline{font-size:12.5px}
.quest-desc{font-size:14px}
.quest-takers,.taker-count{font-size:12.5px}
.char-empty-lore{font-size:18px;color:#4a3420}
.sheet-section-title{font-size:17px}
.art-cand .art-pick{font-size:14px}

/* ── v5.10 重新撰写出身 ── */
.recompose-box{margin-top:16px;border-top:1px dashed rgba(138,109,29,.45);padding-top:14px}
#recompose-text{width:100%;padding:12px 16px;font-family:var(--serif);font-size:15px;line-height:1.9;color:#3a2410;background:rgba(255,248,225,.55);border:1px solid #b39a63;border-radius:4px;outline:none;resize:vertical}
#recompose-text:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.25)}
.recompose-box .compose-result{margin-top:10px}

/* ── v6.0 危险程度标签 ── */
.qd{display:inline-block;margin-left:8px;padding:2px 10px;font-size:12px;font-weight:700;letter-spacing:1px;border-radius:3px;vertical-align:1px}
/* v7.6：亮羊皮纸卷轴上的风险标签 —— 深色半透明底 + 浅色亮字，各档分明 */
.qd.d0{background:rgba(30,22,12,.6);color:#a8d898;border:1px solid rgba(140,200,120,.65)}
.qd.d1{background:rgba(30,22,12,.6);color:#ecd27a;border:1px solid rgba(220,190,90,.65)}
.qd.d2{background:rgba(30,22,12,.6);color:#f0b070;border:1px solid rgba(230,150,70,.65)}
.qd.d3{background:rgba(30,22,12,.62);color:#f09078;border:1px solid rgba(220,100,80,.7)}
.qd.d4{background:rgba(20,10,12,.78);color:#ff9a8a;border:1px solid #a03028;box-shadow:0 0 8px rgba(150,40,40,.5)}

/* ── v7.6：副本徽标 · 经验执掌 ── */
/* v9.22：副本标识不再被长名字的省略号吃掉（v10.20 起为短形「⚔ 副本中」，剧本名见悬停提示） */
.tu-instory{display:block;width:fit-content;max-width:100%;box-sizing:border-box;margin-top:3px;padding:1px 8px;font-size:11px;font-weight:700;letter-spacing:.5px;color:#ffe2a8;background:linear-gradient(180deg,rgba(120,60,20,.85),rgba(70,30,10,.9));border:1px solid #c98a3a;border-radius:3px;box-shadow:0 0 6px rgba(200,120,40,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aexp-info{margin:8px 0;padding:8px 12px;font-size:14px;letter-spacing:1px;color:#5a4020;background:rgba(255,244,214,.6);border:1px dashed rgba(150,110,40,.5);border-radius:4px}
.aexp-custom{width:150px;padding:9px 12px;font-family:var(--serif);font-size:14px;color:#3a2410;background:rgba(255,248,225,.55);border:1px solid #b39a63;border-radius:4px;outline:none}
.aexp-custom:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.25)}

/* ============================================================
   v7.0 职业大厅 · 升级三选一
   ============================================================ */
.halls-wrap { max-width: 1180px; margin: 0 auto; padding: 10px 18px 40px; }
.halls-nav { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 18px; }
.hall-seal {
  position: relative; border: 1px solid rgba(201,162,75,.45); background: linear-gradient(160deg, rgba(46,33,20,.92), rgba(28,20,12,.95));
  color: var(--parch, #d8c39a); padding: 8px 14px 9px; cursor: pointer; font-size: 15px; letter-spacing: 2px;
  border-radius: 3px; transition: transform .28s cubic-bezier(.2,.9,.3,1.4), box-shadow .28s, border-color .28s;
}
.hall-seal small { display: block; font-size: 10px; letter-spacing: 1px; opacity: .55; }
.hall-seal:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 6px 18px rgba(0,0,0,.5), 0 0 14px var(--hall-glow, rgba(201,162,75,.25)); border-color: var(--hall-color, #c9a24b); }
.hall-seal.active {
  border-color: var(--hall-color, #c9a24b); color: #f4e3b8; transform: translateY(-3px) scale(1.06);
  box-shadow: 0 8px 22px rgba(0,0,0,.55), 0 0 22px var(--hall-glow, rgba(201,162,75,.35));
  background: linear-gradient(160deg, rgba(64,46,26,.95), rgba(38,27,16,.97));
}
.hall-seal .hall-seal-lv { position: absolute; top: -7px; right: -6px; background: var(--hall-color, #c9a24b); color: #1c1409;
  font-size: 10px; font-weight: 700; border-radius: 8px; padding: 1px 6px; letter-spacing: 0; }

.halls-stage { position: relative; border: 1px solid rgba(201,162,75,.4); border-radius: 6px; overflow: hidden; min-height: 520px;
  background: radial-gradient(1200px 400px at 50% -10%, var(--hall-glow, rgba(201,162,75,.12)), transparent 60%), linear-gradient(180deg, rgba(24,17,10,.94), rgba(16,11,7,.97));
  transition: box-shadow .6s; }
.halls-bg { position: absolute; inset: 0; pointer-events: none; opacity: .8; transition: opacity .5s;
  background:
    radial-gradient(600px 260px at 12% 8%, var(--hall-glow, rgba(201,162,75,.14)), transparent 70%),
    radial-gradient(500px 300px at 88% 90%, var(--hall-glow, rgba(201,162,75,.1)), transparent 70%);
}
.halls-bg::after { content: ''; position: absolute; inset: 0;
  background-image: repeating-linear-gradient(115deg, transparent 0 46px, rgba(255,255,255,.014) 46px 47px); }
.halls-content { position: relative; padding: 26px 30px 34px; animation: hallIn .55s cubic-bezier(.2,.8,.3,1) both; }
@keyframes hallIn {
  0% { opacity: 0; transform: translateY(18px) scale(.985); filter: blur(3px); }
  100% { opacity: 1; transform: none; filter: none; }
}
.hall-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; border-bottom: 1px solid rgba(201,162,75,.3); padding-bottom: 12px; margin-bottom: 16px; }
.hall-name { font-size: 30px; letter-spacing: 6px; color: #f0dcae; text-shadow: 0 0 22px var(--hall-glow, rgba(201,162,75,.35)); }
.hall-en { font-size: 12px; letter-spacing: 3px; opacity: .5; }
.hall-track { margin-left: auto; font-size: 14px; color: var(--hall-color, #c9a24b); border: 1px solid var(--hall-color, #c9a24b);
  padding: 3px 12px; border-radius: 12px; letter-spacing: 2px; }
.hall-track b { font-size: 17px; }
.hall-desc { font-size: 14px; line-height: 1.9; opacity: .78; margin-bottom: 18px; max-width: 760px; }
.hall-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.hall-tab { border: 1px solid rgba(201,162,75,.35); background: transparent; color: #cbb181; padding: 5px 16px; font-size: 14px;
  letter-spacing: 2px; cursor: pointer; border-radius: 3px; transition: all .25s; }
.hall-tab:hover { border-color: var(--hall-color, #c9a24b); color: #f0dcae; }
.hall-tab.active { background: var(--hall-color, #c9a24b); color: #1c1409; border-color: var(--hall-color, #c9a24b); font-weight: 700; }
.hall-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.spell-card { position: relative; border: 1px solid rgba(201,162,75,.3); border-radius: 4px; padding: 12px 14px;
  background: linear-gradient(165deg, rgba(52,38,22,.75), rgba(30,21,13,.85)); transition: all .25s; }
.spell-card:hover { border-color: var(--hall-color, #c9a24b); box-shadow: 0 4px 16px rgba(0,0,0,.4), 0 0 12px var(--hall-glow, transparent); transform: translateY(-2px); }
.spell-card.locked { opacity: .45; filter: grayscale(.7); }
.spell-card.learned { border-color: #7fae62; }
.spell-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.spell-lv { font-size: 11px; font-weight: 700; color: #1c1409; background: var(--hall-color, #c9a24b); border-radius: 3px; padding: 1px 7px; letter-spacing: 1px; }
.spell-name { font-size: 16px; color: #eedcae; letter-spacing: 1px; }
.spell-daily { margin-left: auto; font-size: 11px; opacity: .6; }
.spell-desc { font-size: 13px; line-height: 1.75; opacity: .8; }
.spell-req { font-size: 12px; color: var(--hall-color, #c9a24b); margin-top: 6px; }
.spell-card .btn-learn { margin-top: 8px; font-size: 13px; padding: 4px 14px; }
.school-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.school-tab { border: 1px solid rgba(201,162,75,.3); background: transparent; color: #bfa26e; font-size: 12px; padding: 3px 12px;
  border-radius: 12px; cursor: pointer; letter-spacing: 1px; transition: all .2s; }
.school-tab.active { background: #c9a24b; color: #1c1409; font-weight: 700; }
.hall-locked-tip { font-size: 13px; color: #b98a5a; margin: 4px 0 12px; }

/* 法术/战技栏（整备 + 角色页共用） */
.sslot-row { display: flex; gap: 10px; flex-wrap: wrap; margin: 8px 0 14px; }
.sslot { width: 148px; min-height: 64px; border: 1px dashed rgba(201,162,75,.5); border-radius: 4px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 6px;
  background: rgba(40,29,17,.5); transition: all .25s; }
.sslot:hover { border-color: #e3c26a; box-shadow: 0 0 10px rgba(201,162,75,.25); }
.sslot.filled { border-style: solid; background: linear-gradient(165deg, rgba(56,40,23,.8), rgba(32,23,14,.9)); }
.sslot-name { font-size: 13px; color: #eedcae; letter-spacing: 1px; }
.sslot-meta { font-size: 11px; opacity: .55; }
.sslot-empty { font-size: 12px; opacity: .4; letter-spacing: 2px; }

/* 升级三选一 */
.levelup-box { max-width: 620px; }
.levelup-sub { text-align: center; font-size: 14px; opacity: .75; margin: 4px 0 14px; }
.levelup-opts { display: flex; gap: 10px; margin-bottom: 12px; }
.lu-opt { flex: 1; border: 1px solid rgba(201,162,75,.4); border-radius: 4px; padding: 14px 10px; text-align: center; cursor: pointer;
  background: rgba(36,26,15,.6); transition: all .25s; }
.lu-opt:hover { transform: translateY(-2px); border-color: #e3c26a; }
.lu-opt.sel { border-color: #e3c26a; background: linear-gradient(165deg, rgba(70,50,26,.85), rgba(40,29,15,.9));
  box-shadow: 0 0 16px rgba(201,162,75,.3); }
.lu-opt h4 { font-size: 17px; letter-spacing: 3px; color: #f0dcae; margin-bottom: 6px; }
.lu-opt p { font-size: 12px; line-height: 1.7; opacity: .65; }
.levelup-detail { border: 1px solid rgba(201,162,75,.3); border-radius: 4px; padding: 12px; max-height: 260px; overflow: auto;
  background: rgba(24,17,10,.6); margin-bottom: 12px; }
.lu-pick { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; cursor: pointer;
  border-bottom: 1px solid rgba(201,162,75,.15); font-size: 14px; transition: background .2s; }
.lu-pick:hover { background: rgba(201,162,75,.1); }
.lu-pick.sel { background: rgba(201,162,75,.18); color: #f0dcae; }
.lu-pick small { opacity: .55; display: block; font-size: 11px; margin-top: 2px; }
.lu-attr-row { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.lu-attr b { font-size: 18px; display: block; color: #f0dcae; }
.lu-attr span { font-size: 12px; opacity: .65; }

/* 特长栏 */
.feat-chip { display: inline-block; border: 1px solid rgba(201,162,75,.45); border-radius: 14px; padding: 4px 14px; margin: 0 6px 8px 0;
  font-size: 14px; color: #eedcae; cursor: help; background: rgba(46,33,20,.6); letter-spacing: 1px; }
.class-title-badge { display: inline-block; margin-left: 8px; font-size: 13px; color: #1c1409;
  background: linear-gradient(120deg, #e3c26a, #c9a24b); border-radius: 3px; padding: 2px 10px; letter-spacing: 2px; }
.char-levelup-btn { margin-left: 10px; border: 1px solid #e3c26a; color: #1c1409; background: linear-gradient(120deg, #f0dcae, #d9b25f);
  font-size: 13px; font-weight: 700; border-radius: 3px; padding: 3px 14px; cursor: pointer; letter-spacing: 2px;
  animation: lvupPulse 1.6s ease-in-out infinite; }
@keyframes lvupPulse {
  0%, 100% { box-shadow: 0 0 6px rgba(227,194,106,.5); }
  50% { box-shadow: 0 0 18px rgba(227,194,106,.95); }
}
.attr-plus-note { font-size: 11px; color: #8fbf6a; margin-top: 2px; }
.attr-bonus-note { font-size: 10px; color: #7fae62; }

/* ============================================================
   v7.1 — 突破卷轴弹窗 / 职业大厅圣环 / 气泡法术 / 金色经验
   ============================================================ */

/* ── 通用羊皮纸弹窗遮罩 ── */
.overlay{
  position:fixed;inset:0;z-index:170;display:flex;align-items:center;justify-content:center;
  background:rgba(12,8,4,.74);backdrop-filter:blur(4px);padding:18px;
  animation:ovFade .25s ease;
}
@keyframes ovFade{from{opacity:0}to{opacity:1}}
.lm-box{
  width:min(640px,96vw);max-height:88vh;overflow:auto;position:relative;
  color:#3a2a16;padding:34px 38px 28px;border-radius:4px;
  background:
    radial-gradient(340px 90px at 50% 0%, rgba(120,80,30,.16), transparent 70%),
    radial-gradient(300px 80px at 50% 100%, rgba(120,80,30,.18), transparent 70%),
    linear-gradient(90deg, rgba(96,60,22,.28) 0%, transparent 7%, transparent 93%, rgba(96,60,22,.28) 100%),
    linear-gradient(180deg,#eedcae 0%,#e4cf9d 45%,#d9c28c 100%);
  box-shadow:0 24px 60px rgba(0,0,0,.65), inset 0 0 0 1px rgba(96,60,22,.45), inset 0 0 0 6px rgba(255,248,225,.35), inset 0 0 0 7px rgba(96,60,22,.3);
}
.lm-box::before,.lm-box::after{
  content:'';position:absolute;left:14px;right:14px;height:8px;pointer-events:none;
}
.lm-box::before{top:7px;border-top:2px solid rgba(96,60,22,.4);border-radius:50%}
.lm-box::after{bottom:7px;border-bottom:2px solid rgba(96,60,22,.4);border-radius:50%}
.lm-title{
  font-family:var(--runefont);font-size:30px;letter-spacing:8px;text-align:center;color:#5c4510;
  margin:0 0 4px;text-shadow:0 1px 0 rgba(255,248,225,.7);
}
.lm-actions{display:flex;justify-content:center;gap:14px;margin-top:16px}
/* 突破三选一： parchment 化 */
.levelup-sub{text-align:center;font-size:14px;color:#7a5f36;margin:2px 0 18px;letter-spacing:1px}
.levelup-opts{display:flex;gap:14px;margin-bottom:14px}
.lu-opt{
  flex:1;border:2px solid rgba(96,60,22,.4);border-radius:6px;padding:18px 12px 14px;text-align:center;cursor:pointer;
  background:linear-gradient(180deg,rgba(255,250,235,.5),rgba(214,186,132,.35));
  transition:all .25s;position:relative;
}
.lu-opt:hover{transform:translateY(-3px);border-color:#8a6420;box-shadow:0 8px 18px rgba(60,40,10,.3)}
.lu-opt.sel{
  border-color:#8a6420;background:linear-gradient(180deg,#f6ead0,#e8d3a4);
  box-shadow:0 0 0 3px rgba(201,162,75,.35), 0 8px 20px rgba(60,40,10,.35);
}
.lu-opt h4{font-family:var(--runefont);font-size:20px;letter-spacing:4px;color:#5c4510;margin:0 0 8px}
.lu-opt p{font-size:12.5px;line-height:1.8;color:#6b5232;margin:0}
.levelup-detail{
  border:1px solid rgba(96,60,22,.4);border-radius:6px;padding:12px;max-height:280px;overflow:auto;
  background:rgba(255,252,242,.55);margin-bottom:6px;
}
.levelup-detail .log-empty{color:#7a5f36;font-size:13px;padding:10px 0}
.lu-pick{
  display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;
  border-bottom:1px solid rgba(96,60,22,.2);font-size:14.5px;color:#3a2a16;transition:background .2s;border-radius:4px;
}
.lu-pick:hover{background:rgba(201,162,75,.18)}
.lu-pick.sel{background:rgba(201,162,75,.28);color:#3a2a16;box-shadow:inset 0 0 0 1px rgba(138,100,32,.5)}
.lu-pick small{opacity:.6;display:block;font-size:11.5px;margin-top:2px}
.lu-attr-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.lu-attr{
  min-width:64px;border:1.5px solid rgba(96,60,22,.35);border-radius:6px;padding:10px 8px;text-align:center;cursor:pointer;
  background:rgba(255,252,242,.5);transition:all .2s;
}
.lu-attr:hover{border-color:#8a6420}
.lu-attr.sel{border-color:#8a6420;background:#f2e3bc;box-shadow:0 0 0 2px rgba(201,162,75,.4)}
.lu-attr b{font-size:22px;display:block;color:#5c4510;font-family:var(--latin)}
.lu-attr span{font-size:12px;color:#7a5f36}
/* 升级弹窗按钮适配羊皮纸底色 */
#levelup-modal .btn-gold{color:#2a1e0c}
/* 突破按钮（角色页）：火漆金印风 */
.char-levelup-btn{
  margin-left:10px;border:1.5px solid #8a6420;color:#2a1e0c;
  background:linear-gradient(160deg,#f4e3b2,#dcb96a 55%,#c9a24b);
  font-family:var(--runefont);font-size:15px;border-radius:4px;padding:4px 18px;cursor:pointer;letter-spacing:4px;
  box-shadow:0 3px 8px rgba(60,40,10,.4), inset 0 1px 0 rgba(255,248,225,.8);
  animation:lvupPulse 1.6s ease-in-out infinite;transition:transform .15s;
}
.char-levelup-btn:hover{transform:translateY(-2px) scale(1.04)}
/* 经验条：金色 */
.char-exp-bar{
  height:12px;border-radius:6px;overflow:hidden;margin-top:6px;
  background:rgba(30,22,12,.75);border:1px solid rgba(201,162,75,.5);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.5);
}
.char-exp-bar i{
  display:block;height:100%;border-radius:5px;
  background:linear-gradient(90deg,#9a7420,#e9c860 45%,#ffe9a0 55%,#d9b25f);
  box-shadow:0 0 10px rgba(233,200,96,.7), inset 0 1px 0 rgba(255,255,255,.55);
  transition:width .5s ease;
}

/* ── 职业大厅：可拖拽圣环 ── */
.halls-wrap{position:relative}
.hall-ring-wrap{position:relative;height:190px;margin:6px auto 4px;perspective:900px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.hall-ring{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;cursor:grab}
.hall-ring.dragging{cursor:grabbing}
.hall-node{
  position:absolute;left:-58px;top:-52px;width:116px;height:104px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  transition:opacity .3s;user-select:none;pointer-events:auto;
}
.hall-node .hn-place{font-size:11px;letter-spacing:2px;color:#bfa26e;white-space:nowrap}
.hall-node .hn-name{
  font-family:var(--runefont);font-size:19px;letter-spacing:3px;color:#e8cf8a;white-space:nowrap;
  padding:3px 14px;border:1px solid transparent;border-radius:20px;transition:all .3s;
}
.hall-node .hn-lv{font-size:10px;color:var(--hall-color,#c9a24b);letter-spacing:1px;min-height:12px}
.hall-node.front .hn-name{
  color:#f6e7bd;border-color:var(--hall-color,#c9a24b);
  background:color-mix(in srgb,var(--hall-color,#c9a24b) 18%, transparent);
  box-shadow:0 0 16px var(--hall-glow,rgba(201,162,75,.3));
  text-shadow:0 0 10px var(--hall-glow,rgba(201,162,75,.5));
}
.hall-node.front .hn-place{color:#e8d5a8}
.hall-ring-hint{text-align:center;font-size:11.5px;letter-spacing:2px;color:#8a7a55;margin-bottom:10px}
.hall-ring-hint svg{vertical-align:-2px;margin-right:4px;opacity:.7}
/* 舞台背景：职业色 + 巨大半透明纹章 */
.halls-stage{transition:background .8s ease}
.hall-emblem{
  position:absolute;right:-60px;top:50%;transform:translateY(-50%);
  width:480px;height:480px;pointer-events:none;opacity:.09;z-index:0;
  transition:opacity .8s ease;color:var(--hall-color,#c9a24b);
}
.hall-emblem svg{width:100%;height:100%}
.halls-content{position:relative;z-index:1}
/* 大厅头部：地点在上，职业名在下 */
.hall-head{flex-direction:column;align-items:flex-start;gap:2px}
.hall-head .hall-place{font-size:15px;letter-spacing:5px;color:var(--hall-color,#c9a24b)}
.hall-head .hall-name{font-family:var(--runefont);font-size:30px;letter-spacing:6px;color:#f0dcae;line-height:1.2}
.hall-head .hall-track{font-size:13px;color:#bfa26e;letter-spacing:1px}
.hall-head .hall-track b{color:var(--hall-color,#c9a24b);font-size:17px;font-family:var(--latin)}
/* 技能气泡卡 */
.hall-list{display:flex;flex-direction:column;gap:12px}
.spell-card{
  border-radius:18px;padding:14px 18px;
  background:linear-gradient(165deg, rgba(52,38,22,.82), rgba(34,25,15,.9));
  border:1px solid rgba(201,162,75,.35);
  box-shadow:0 4px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(240,220,174,.12);
  transition:all .25s;
}
.spell-card:hover{border-color:var(--hall-color,#c9a24b);transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.45), 0 0 14px var(--hall-glow,transparent)}
.spell-card.locked{opacity:.5;filter:grayscale(1)}
.spell-card.learned{border-color:#7fae62;box-shadow:0 4px 14px rgba(0,0,0,.35), inset 0 0 0 1px rgba(127,174,98,.35)}
.spell-card-head .spell-lv{border-radius:10px}
.hall-locked-tip{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#a08c62;margin-top:8px}
.hall-locked-tip svg{flex:none;opacity:.8}

/* 载具栏 */
.veh-slot-row{display:flex;gap:12px;align-items:center;margin:10px 0 14px;flex-wrap:wrap}
.veh-slot{
  width:120px;min-height:78px;border:1.5px dashed rgba(201,162,75,.5);border-radius:6px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;
  background:rgba(40,29,17,.5);transition:all .25s;
}
.veh-slot:hover{border-color:#e3c26a;box-shadow:0 0 10px rgba(201,162,75,.25)}
.veh-slot.filled{border-style:solid;background:linear-gradient(165deg,rgba(56,40,23,.85),rgba(32,23,14,.92))}
.veh-slot img{max-width:96px;max-height:56px;object-fit:contain}
.veh-slot-name{font-size:13px;color:#eedcae;letter-spacing:1px;text-align:center}
.veh-slot-sub{font-size:11px;opacity:.55}
.veh-hint{font-size:12px;color:#8a7a55;line-height:1.8}

/* ── v7.2：圣环左右箭头 + 整页职业色背景 ── */
.hall-arrow{position:absolute;top:76px;z-index:40;width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  color:#e9c860;background:rgba(26,18,10,.82);border:1px solid #6b5a35;
  box-shadow:0 2px 10px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,233,160,.14);
  transition:all .22s ease;}
.hall-arrow:hover{color:#ffe9a0;border-color:#c9a84c;box-shadow:0 0 16px rgba(233,200,96,.4), inset 0 1px 0 rgba(255,233,160,.25);transform:scale(1.08)}
.hall-arrow:active{transform:scale(.94)}
.hall-arrow-l{left:2px}.hall-arrow-r{right:2px}
.page-halls{--hall-color:#8a5a2b;position:relative;background:
  radial-gradient(900px 480px at 50% -80px, color-mix(in srgb, var(--hall-color) 26%, transparent), transparent 70%),
  radial-gradient(700px 620px at 88% 32%, color-mix(in srgb, var(--hall-color) 14%, transparent), transparent 72%),
  radial-gradient(700px 620px at 8% 62%, color-mix(in srgb, var(--hall-color) 10%, transparent), transparent 72%) !important;
  transition:background .7s ease;}

/* ── v7.2：接取委托风险告示 ── */
.qr-box{max-width:460px;text-align:center}
.qr-quest{font-size:19px;font-weight:700;color:#3a2a15;margin:6px 0 12px;letter-spacing:1px}
.qr-danger-row{font-size:14px;color:#6b5433;margin-bottom:10px}
.qr-danger{font-size:14px !important;padding:3px 14px !important;margin-left:6px !important;vertical-align:0 !important}
.qr-hint{font-size:15px;line-height:1.9;color:#5a4426;background:rgba(201,162,39,.1);border:1px dashed rgba(160,120,50,.45);border-radius:6px;padding:12px 16px;margin:4px 0 14px}

/* ── v7.2：AI 物品登记册 ── */
.aci-list{margin-top:12px;max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.aci-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid rgba(160,120,50,.3);border-radius:8px;background:rgba(255,248,230,.35)}
.aci-icon{width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(160,120,50,.35);border-radius:6px;background:rgba(26,18,10,.5);overflow:hidden}
.aci-icon img{max-width:36px;max-height:36px}
.aci-noicon{font-size:11px;color:#8a7a55}
.aci-main{flex:1;min-width:0;display:flex;flex-direction:column}
.aci-name{font-size:14px;color:#3a2a15}
.aci-meta{font-size:11.5px;color:#8a7350;font-style:normal}

/* ── v7.2：头像编辑器 ── */
.av-box{max-width:440px;text-align:center}
.av-tip{font-size:13px;color:#8a7350;margin:4px 0 10px}
.av-stage{display:flex;justify-content:center;margin-bottom:12px}
#avatar-canvas{border:1px solid rgba(160,120,50,.5);border-radius:8px;background:#14100b;cursor:move;touch-action:none}
.forge-avatar-row{display:flex;align-items:center;gap:10px;margin-top:8px}
.forge-avatar-prev{width:52px;height:52px;border-radius:8px;border:1px solid rgba(160,120,50,.5);object-fit:cover;background:rgba(26,18,10,.6)}
.char-sheet-avatar{width:44px;height:44px;border-radius:50%;border:2px solid #c9a84c;object-fit:cover;box-shadow:0 0 8px rgba(233,200,96,.4)}

/* ── v7.2：装备贴身大图标 ── */
.eq2-slotbox .eq2-ico{width:88%;height:88%;object-fit:contain;border:none;background:transparent;box-shadow:none}
.eq2-slotbox{overflow:visible}

/* v7.3：装备图标再放大 / 仓库整理 / 管理员等级 */
.eq2-slotbox .eq2-ico{width:94%;height:94%;object-fit:contain;border:none;background:transparent;box-shadow:none}
.stash-sort-btn{font-size:11px;font-weight:700;color:#6b4f16;background:linear-gradient(160deg,#f0dfae,#dcc27f);border:1px solid #8a6420;border-radius:6px;padding:2px 8px;margin-left:8px;cursor:pointer;vertical-align:2px}
.stash-sort-btn:hover{background:#f8ecc4;box-shadow:0 2px 6px rgba(80,55,10,.3)}
.char-lv-adm{width:22px;height:22px;line-height:1;font-size:14px;font-weight:800;color:#5c4510;background:linear-gradient(160deg,#f0dfae,#dcc27f);border:1px solid #8a6420;border-radius:50%;cursor:pointer;margin-left:4px;vertical-align:2px;padding:0}
.char-lv-adm:hover{background:#f8ecc4;box-shadow:0 2px 6px rgba(80,55,10,.35)}

/* v7.3：货车货厢 + 挽具位 */
.cargo-box{display:inline-block;background:rgba(40,28,12,.35);border:1px solid #7a5c22;border-radius:8px;padding:8px;margin:6px 0}
.cargo-box .bag-grid.flush{background:transparent;border:none}
.hitch-row{display:flex;align-items:center;gap:10px;margin:8px 0 4px;flex-wrap:wrap}
.hitch-title{font-size:13px;font-weight:800;color:#5c431a;letter-spacing:4px}
.hitch-slot{width:96px;height:96px}
.hitch-tip{font-size:11px;color:#8a6c33}

/* v7.4 技能点 */
.char-sp-badge{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:10px;font-size:12px;letter-spacing:1px;color:#ffe9b0;
  background:linear-gradient(160deg,rgba(120,84,20,.55),rgba(70,48,12,.6));border:1px solid rgba(214,178,84,.55);cursor:help}
.hall-sp{margin-left:12px;padding:2px 10px;border-radius:10px;font-size:12px;color:#ffe9b0;letter-spacing:1px;
  background:rgba(120,84,20,.4);border:1px solid rgba(214,178,84,.45);cursor:help}

/* v7.4 职业等级徽章 */
.class-lv-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.class-lv-chip{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;letter-spacing:1px;font-weight:600}
.class-lv-none{font-size:12px;color:#9a825a;letter-spacing:1px}
.tm-class{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.tm-class-title{display:inline-block;align-self:center;padding:2px 10px;border-radius:9px;font-size:13px;font-weight:700;letter-spacing:2px;color:#4a3208;background:linear-gradient(160deg,rgba(222,186,96,.85),rgba(178,138,52,.85));border:1px solid #8a6420;box-shadow:0 1px 3px rgba(60,40,10,.35);text-shadow:0 1px 0 rgba(255,240,200,.5)}

/* v9.12 风尘纪行进行中徽标 */
.solo-live{display:inline-block;padding:3px 12px;border-radius:10px;font-size:12px;font-weight:700;letter-spacing:2px;color:#3f6d1f;background:rgba(150,200,90,.28);border:1px solid rgba(90,150,50,.6)}

/* v7.4 登记册编辑面板 */
.aci-editor{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 16px;margin:0 0 10px 52px;background:rgba(40,30,18,.55);border:1px solid rgba(214,178,106,.4);border-radius:8px}
.aci-editor label{display:flex;align-items:center;gap:6px;color:#e8d9b0;font-size:14px}
.aci-in{background:rgba(20,14,8,.8);border:1px solid rgba(214,178,106,.5);color:#f3e6c2;border-radius:5px;padding:5px 8px;font-size:14px;width:130px}
.aci-in-wide{width:230px}
.aci-in-num{width:58px}
.aci-ed-btns{display:flex;gap:8px;width:100%}
.aci-tip{width:100%;color:#b39d72;font-size:12px}

/* v7.5 风尘纪行入口卡 */
.solo-card{margin:0 0 12px;padding:14px 16px;background:linear-gradient(135deg,rgba(46,38,22,.75),rgba(28,22,12,.75));border:1px solid rgba(214,178,106,.5);border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.35)}
.solo-head{font-size:17px;font-weight:700;color:var(--gold-hi,#e8c877);letter-spacing:1px}
.solo-tag{font-size:11px;font-weight:400;color:#b39d72;border:1px solid rgba(214,178,106,.45);border-radius:20px;padding:2px 10px;margin-left:8px;vertical-align:2px}
.solo-desc{font-size:13px;color:#cbb98f;margin:8px 0 10px;line-height:1.6}
.solo-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}
.solo-stam{font-size:13px;color:#e8d9b0;white-space:nowrap;flex:none}.solo-stam b{color:var(--gold-hi,#e8c877);font-size:15px}
#solo-go{white-space:nowrap;flex-shrink:0}
#solo-go:disabled{opacity:.45;cursor:not-allowed}


/* v9.4：酒馆详情弹窗 · 履历 */
.tm-log { margin-top: 12px; border-top: 1px dashed rgba(201,162,75,.3); padding-top: 10px; }
.tm-log-title { font-size: 13px; color: #c9b077; letter-spacing: 3px; margin: 0 0 8px; }
.tm-log-item { position: relative; padding: 6px 10px; margin-bottom: 6px; background: rgba(30,22,12,.45); border: 1px solid rgba(201,162,75,.18); border-radius: 4px; font-size: 12px; }
.tm-log-item b { color: #eedcae; font-weight: 600; letter-spacing: 1px; }
.tm-log-rank { margin-left: 8px; font-size: 11px; color: #c9b077; border: 1px solid rgba(201,162,75,.35); border-radius: 3px; padding: 0 4px; }
.tm-log-item i { font-style: normal; margin-left: 6px; font-size: 11px; opacity: .7; }
.tm-log-item p { margin: 4px 0 0; color: #b9a67e; font-size: 11.5px; line-height: 1.6; }


/* v9.17：冒险者页「回到冒险」入口 */
#char-return-box{margin:0 0 12px}
.char-return-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid #8a6b3c;border-radius:8px;background:rgba(138,107,60,.18);color:#ecd9a0;font-size:15px}


/* v9.20：酒馆三栏防溢出加固 —— 闲谈/名片不再互相遮盖 */
.tavern-wrap{grid-template-columns:minmax(0,320px) minmax(0,1fr) minmax(0,330px)}
.tavern-left,.tavern-mid,.tavern-right{min-width:0;max-width:100%}
.tavern-chat{width:100%;max-width:100%}
.tavern-user{flex-wrap:wrap}
.tc-msgs{overflow-x:hidden}


/* v9.21：闲谈过滤条 */
.tc-filter{display:flex;gap:6px;padding:2px 10px 6px}
.tc-filter .tcf{flex:1;background:rgba(0,0,0,.25);border:1px solid rgba(201,169,98,.25);color:#b8a888;font-size:12px;padding:3px 0;border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s}
.tc-filter .tcf:hover{color:#e8d5a8}
.tc-filter .tcf.on{background:rgba(201,169,98,.22);color:#e8d5a8;border-color:rgba(201,169,98,.6)}


/* v9.23：体力不足的出发按钮 —— 暗色提示但可点击（返回收束不受限） */
#solo-go.dim{opacity:.55;filter:grayscale(.4)}

/* v10.0：冒险者盟友栏 */
/* v10.17：盟友栏深色系配色 —— 该面板渲染在羊皮纸浅色底上，旧浅色字几乎不可读 */
.ally-panel{margin:12px 16px;padding:12px 14px;border:1px solid rgba(122,92,192,.45);border-radius:10px;background:rgba(122,92,192,.08)}
.ally-head{font-weight:700;color:#5a3d99;margin-bottom:6px;font-size:15px}
.bond-head{margin-top:12px;color:#8a6420}
.ally-hint{font-weight:400;font-size:11px;color:#7a6a96;margin-left:6px}
.ally-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-top:1px dashed rgba(122,92,192,.35);font-size:13px;flex-wrap:wrap;color:#3f2f1b}
.ally-row.invited{background:rgba(122,92,192,.15);border-radius:6px}
.ally-kind{font-size:11px;color:#6a4fb0;border:1px solid rgba(122,92,192,.5);padding:0 6px;border-radius:8px}
.ally-name{color:#4a2f92}
.ally-title{color:#6a5a86}
.ally-origin{color:#8a7a5a;font-size:12px}
.ally-story{color:#5d4c33;font-size:12px;flex:1 1 200px}
.bond-favor{color:#8a6420;font-size:12px;font-weight:600}
.ally-inv{margin-left:auto;font-size:12px;padding:3px 12px}

/* ─────────── v10.38：秘构手记 ─────────── */
.hn-entry{padding:10px 4px 2px}
.hn-desc{font-size:12.5px;color:#6d5c3a;line-height:1.7;margin:6px 0 10px}
.hn-mylist{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.hn-empty{font-size:12px;color:#9a8a5f;font-style:italic;padding:6px 2px}
.hn-row{display:flex;align-items:center;gap:8px;padding:6px 9px;background:rgba(60,45,20,.25);border:1px solid rgba(190,150,70,.35);border-radius:6px}
.hn-type{flex:none;font-size:11px;color:#d8b45a;letter-spacing:2px;border:1px solid rgba(190,150,70,.5);border-radius:4px;padding:1px 6px}
.hn-title{font-size:13px;color:#e6d5a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hn-status{font-size:11px;color:#9a8a5f;margin-left:auto;flex:none}
.hn-status.hn-pending{color:#d8b45a}
.hn-status.hn-ok{color:#7fc97f}
.hn-status.hn-no{color:#d97f6a}
.hn-box{max-width:560px;width:94%}
.hn-tip{font-size:12.5px;color:#6d5c3a;line-height:1.7;margin:6px 0 12px}
.hn-editor label{display:block;margin:7px 0;font-size:13px;color:#e8cf9a;letter-spacing:1px}
.hn-editor .aci-in{background:rgba(30,22,10,.55);border:1px solid rgba(190,150,70,.45);color:#f0e2b8;border-radius:6px;padding:6px 9px;font-size:13px}
.hn-editor textarea{background:rgba(30,22,10,.5);border:1px solid rgba(190,150,70,.4);color:#e6d5a8;border-radius:6px;padding:7px 9px;font-size:13px;width:100%;resize:vertical}


/* ─────────── v10.49：秘构手记独立页 + 鉴定回廊 ─────────── */
.handnote-wrap{display:flex;gap:22px;max-width:1180px;margin:0 auto;padding:10px 18px 40px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.page-handnote .hn-box{max-width:640px;width:100%;background:linear-gradient(180deg,rgba(46,32,14,.92),rgba(30,20,9,.94));border:1px solid rgba(190,150,70,.4);border-radius:12px;padding:22px 26px;color:#e8cf9a;box-shadow:0 18px 30px rgba(0,0,0,.5)}
.hn-side{max-width:420px;width:100%;min-height:200px;background:linear-gradient(180deg,rgba(46,32,14,.88),rgba(30,20,9,.92));border:1px solid rgba(190,150,70,.35);border-radius:12px;padding:18px 20px;color:#e8cf9a}
.page-handnote .hn-tip{color:#b49c68}
.ap-wrap{max-width:1000px;margin:0 auto;padding:10px 18px 46px}
.ap-desc{font-size:14px;color:#c9b077;line-height:1.9;letter-spacing:1px;max-width:760px;margin:0 auto 22px;text-align:center}
.ap-desc b{color:#e8cf9a}
.ap-stage{display:flex;gap:26px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.ap-box{width:300px;height:300px;flex:0 0 auto;border:2px dashed rgba(201,176,119,.55);border-radius:14px;background:radial-gradient(220px 220px at 50% 40%,rgba(110,70,25,.35),rgba(24,16,7,.75));cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .25s ease,box-shadow .25s ease;box-shadow:inset 0 0 40px rgba(0,0,0,.55)}
.ap-box:hover{border-color:rgba(232,207,154,.9);box-shadow:inset 0 0 40px rgba(0,0,0,.55),0 0 22px rgba(201,176,119,.22)}
.ap-box-inner{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;text-align:center}
.ap-box-plus{font-size:42px;color:rgba(232,207,154,.6);line-height:1}
.ap-box-text{font-size:14px;color:#c9b077;letter-spacing:2px;line-height:1.8}
.ap-box-name{font-size:20px;color:#f0e2b8;letter-spacing:2px;font-weight:700}
.ap-box-quality{font-size:15px;letter-spacing:3px;padding:3px 14px;border-radius:20px;border:1px solid currentColor}
.ap-result{flex:1;min-width:280px;max-width:430px;min-height:180px;border:1px solid rgba(190,150,70,.35);border-radius:12px;background:linear-gradient(180deg,rgba(46,32,14,.88),rgba(30,20,9,.92));padding:20px 22px;color:#e8cf9a}
.ap-verdict{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;font-size:15px}
.ap-verdict b{font-size:19px;letter-spacing:2px;color:#f0e2b8}
.ap-comment{margin-top:12px;font-size:13.5px;color:#b49c68;line-height:1.8;font-style:italic}
.ap-hint{margin-top:14px;font-size:13px;color:#8f7c50;letter-spacing:1px}
.ap-picker{max-width:1000px;margin:20px auto 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.ap-empty{grid-column:1/-1;text-align:center;color:#a08a5c;letter-spacing:2px;font-size:13.5px;padding:26px 0;border:1px dashed rgba(190,150,70,.3);border-radius:10px}
.ap-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 10px 12px;background:linear-gradient(180deg,rgba(52,36,16,.9),rgba(32,22,10,.94));border:1px solid rgba(190,150,70,.4);border-radius:10px;cursor:pointer;color:#e8cf9a;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.ap-item:hover:not(:disabled){transform:translateY(-3px);border-color:rgba(232,207,154,.85);box-shadow:0 12px 20px rgba(0,0,0,.45)}
.ap-item:disabled{opacity:.55;cursor:default}
.ap-item-icon{width:44px;height:44px;background-size:contain;background-position:center;background-repeat:no-repeat;background-color:rgba(20,14,6,.6);border-radius:8px;border:1px solid rgba(190,150,70,.3)}
.ap-item-name{font-size:14px;letter-spacing:1px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-item-meta{font-size:11.5px;color:#a08a5c;letter-spacing:1px}

/* ================= v10.58：纪念册 ================= */
.mem-head-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 12px;flex-wrap:wrap}
.mem-title{font-size:15px;letter-spacing:2px;color:#e8cf9a;font-weight:700}
.mem-hint{font-style:normal;font-size:11.5px;color:#a08a5c;letter-spacing:.5px;margin-left:8px;font-weight:400}
.mem-list{display:flex;flex-direction:column;gap:12px}
.mem-item{background:rgba(26,18,8,.55);border:1px solid rgba(190,150,70,.28);border-radius:10px;padding:10px 12px}
.mem-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mem-icon{width:34px;height:34px;object-fit:contain;background:rgba(20,14,6,.6);border:1px solid rgba(190,150,70,.3);border-radius:8px;padding:3px;flex:none}
.mem-noicon{display:inline-flex;align-items:center;justify-content:center;color:#c9a45c;font-size:15px}
.mem-name{font-size:14.5px;letter-spacing:1px;font-weight:700}
.mem-q{font-size:10.5px;letter-spacing:1px;border:1px solid;border-radius:20px;padding:1px 8px;opacity:.9}
.mem-del{margin-left:auto;background:none;border:1px solid rgba(200,120,90,.4);color:#c98a6a;border-radius:6px;width:24px;height:24px;font-size:11px;cursor:pointer;line-height:1}
.mem-del:hover{background:rgba(200,120,90,.15)}
.mem-text{width:100%;min-height:64px;resize:vertical;background:rgba(14,10,4,.65);border:1px solid rgba(190,150,70,.25);border-radius:8px;color:#e6d9b8;font-size:13px;line-height:1.7;padding:8px 10px;font-family:inherit;box-sizing:border-box}
.mem-text:focus{outline:none;border-color:rgba(232,207,154,.7)}
.mem-foot{display:flex;justify-content:flex-end;margin-top:8px}
.mem-picker{display:flex;flex-wrap:wrap;gap:8px;background:rgba(20,14,6,.7);border:1px dashed rgba(190,150,70,.4);border-radius:10px;padding:10px;margin-bottom:12px}
.mem-pick{display:inline-flex;align-items:center;gap:8px;background:rgba(30,22,10,.8);border:1px solid rgba(190,150,70,.35);border-radius:8px;color:#e6d9b8;padding:6px 10px;cursor:pointer;font-size:13px}
.mem-pick:hover{border-color:rgba(232,207,154,.85)}
.mem-pick img{width:26px;height:26px;object-fit:contain}
.mem-pick i{font-style:normal;font-size:11px;color:#a08a5c}
/* 他人详情弹窗的只读纪念 */
/* v10.62：纪念册双列 + 深色卡片衬底（品质色名字直接躺在金色弹窗底上完全看不清，玩家实名反馈） */
/* v10.64：纪念册移出 260px 窄栏，整行通栏 + 自适应多列铺满；标题加衬底；防丑换行 */
.tm-body{flex-wrap:wrap}
.tm-mem{flex:0 0 100%;width:100%;margin-top:14px;border-top:1px dashed rgba(201,162,75,.3);padding-top:12px}
.tm-mem .tm-log-title{display:inline-block;font-size:15px;color:#f0dcae;letter-spacing:4px;margin:0 0 10px;padding:5px 14px;background:rgba(24,17,8,.78);border:1px solid rgba(201,162,75,.45);border-radius:6px;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.tm-mem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tm-mem-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:rgba(24,17,8,.72);border:1px solid rgba(190,150,70,.28);border-radius:8px;box-shadow:inset 0 1px 0 rgba(255,235,190,.06)}
.tm-mem-item:last-child{border-bottom:none}
.tm-mem-icon{width:34px;height:34px;object-fit:contain;background:rgba(20,14,6,.6);border:1px solid rgba(190,150,70,.3);border-radius:7px;padding:2px;flex:none}
.tm-mem-noicon{display:inline-flex;align-items:center;justify-content:center;color:#c9a45c;font-size:13px}
.tm-mem-main{flex:1;min-width:0}
.tm-mem-main b{display:block;font-size:14px;letter-spacing:1px;line-height:1.5;word-break:keep-all;overflow-wrap:break-word}
.tm-mem-main p{margin:4px 0 0;font-size:12.5px;color:#e0d0a4;line-height:1.8;white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word}

/* ================= v10.59：归旅之厅 ================= */
.memorial-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;padding:6px 4px 24px}
.mm-card{background:linear-gradient(170deg,rgba(32,24,12,.92),rgba(18,13,6,.94));border:1px solid rgba(190,150,70,.32);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 26px rgba(0,0,0,.4)}
.mm-card.dead{border-color:rgba(140,140,150,.4)}
.mm-portrait-wrap{position:relative;width:100%;aspect-ratio:3/4;max-height:380px;background:rgba(10,8,4,.8);overflow:hidden}
.mm-portrait{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.mm-noimg{display:flex;align-items:center;justify-content:center;font-size:52px;color:#5c4a28}
.mm-greyveil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(120,120,128,.45),rgba(40,40,46,.72));backdrop-filter:grayscale(.9);pointer-events:none}
.mm-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.mm-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mm-kind{font-size:11px;letter-spacing:2px;border-radius:20px;padding:2px 10px;border:1px solid}
.mm-kind.retired{color:#a8c88a;border-color:rgba(150,190,120,.5)}
.mm-kind.dead{color:#b0b4c0;border-color:rgba(150,155,170,.5)}
.mm-name{font-size:17px;letter-spacing:2px;color:#ead9ac;font-weight:700}
.mm-lv{font-size:11.5px;color:#a08a5c}
.mm-rank{font-size:11px;color:#c9a45c;border:1px solid rgba(190,150,70,.4);border-radius:4px;padding:0 5px}
.mm-title-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mm-title{font-size:12.5px;color:#d8bd85}
.mm-class-title{font-size:12px;color:#9fb8d8}
.mm-deed{font-size:12px;color:#9aa0ae;border-left:3px solid rgba(150,155,170,.45);padding-left:8px;line-height:1.6}
.mm-reason{font-size:12.5px;color:#c4b28a;border-left:3px solid rgba(150,190,120,.45);padding-left:8px;line-height:1.6}
.mm-story{margin:2px 0 0;font-size:13px;line-height:1.9;color:#d6c9a6;white-space:pre-wrap;flex:1}
.mm-sample-tag{font-size:10.5px;color:#8a7648;letter-spacing:1px}
.mm-admin{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
#retire-reason{width:100%;min-height:96px;resize:vertical;background:rgba(14,10,4,.65);border:1px solid rgba(190,150,70,.3);border-radius:8px;color:#e6d9b8;font-size:13px;line-height:1.7;padding:8px 10px;font-family:inherit;box-sizing:border-box;margin:8px 0}
#retire-reason:focus{outline:none;border-color:rgba(232,207,154,.7)}
.mm-editor{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center}
.mm-editor-card{width:min(560px,92vw);max-height:88vh;overflow:auto;background:linear-gradient(170deg,#2b2113,#17110a);border:1px solid rgba(190,150,70,.5);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.mm-editor-card h3{margin:0 0 8px;font-size:16px;color:#e8cf9a;letter-spacing:2px}
.mm-editor-card label{font-size:12px;color:#a08a5c;margin-top:6px}
.mm-editor-card input,.mm-editor-card textarea{background:rgba(14,10,4,.65);border:1px solid rgba(190,150,70,.3);border-radius:6px;color:#e6d9b8;font-size:13px;padding:7px 9px;font-family:inherit}
.mm-editor-card textarea{min-height:140px;resize:vertical;line-height:1.7}
.mm-editor-card input:focus,.mm-editor-card textarea:focus{outline:none;border-color:rgba(232,207,154,.7)}
.mm-editor-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
/* v10.60：归旅之厅编辑器封面立绘 */
.mme-cover{display:flex;gap:12px;align-items:flex-start}
.mme-cover-preview{width:96px;height:128px;border-radius:8px;border:1px solid rgba(190,150,70,.35);background:rgba(14,10,4,.65);overflow:hidden;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.mme-cover-preview img{width:100%;height:100%;object-fit:cover;display:block}
.mme-cover-none{color:#6b5a36;font-size:22px}
.mme-cover-btns{display:flex;flex-direction:column;gap:8px}

/* ═══ v10.87 匠人名录 ═══ */
.artisan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:10px}
.artisan-card{background:rgba(30,24,14,.55);border:1px solid #4a3b22;border-radius:8px;padding:12px 14px}
.artisan-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.artisan-name{font-weight:700;font-size:16px}
.artisan-name.q-common{color:#e8e0cc}
.artisan-name.q-fine{color:#7db8ff}
.artisan-name.q-rare{color:#c98fff}
.artisan-name.q-epic{color:#ff7b7b}
.artisan-name.q-legendary{color:#ffd76a}
.artisan-tier{font-size:12px;border:1px solid currentColor;border-radius:10px;padding:1px 8px;line-height:1.5}
.artisan-job{color:#b8a67a;font-size:13px}
.artisan-meta{font-size:12px;color:#8a7a55;margin-top:6px}
.artisan-story{font-size:13px;line-height:1.7;color:#d8c9a8;margin-top:8px;border-top:1px dashed #4a3b22;padding-top:8px}
.artisan-actions{margin-top:10px}
.artisan-actions .btn{font-size:12px;padding:5px 12px}
.artisan-empty{color:#8a7a55;text-align:center;padding:30px 10px;line-height:1.8}

/* v10.92 匠人技艺进度 */
.artisan-prog{height:4px;background:#241d10;border-radius:3px;margin-top:6px;overflow:hidden}
.artisan-prog i{display:block;height:100%;background:linear-gradient(90deg,#8a6a2f,#c9a24b);border-radius:3px}

/* v10.94 纹章兜底：图标缺失/404 时降级为淡色纹章，不再是空白 */
.icon-fallback{opacity:.4;filter:grayscale(1)}

/* ═══ v10.97 整备改版 ═══ */
#char-tab-gear .eq2-panel{zoom:1.08}
.stash-full-title{margin-top:16px}
.stash-box.stash-full{width:100%;overflow-x:auto}
.destroy-fab{position:fixed;right:0;top:55%;z-index:60;background:linear-gradient(180deg,#3a2c17,#241a0c);border:1px solid #6b5326;border-right:none;border-radius:8px 0 0 8px;padding:12px 8px;cursor:pointer;color:#e8d9a8;font-size:13px;writing-mode:vertical-rl;letter-spacing:4px;box-shadow:-2px 0 12px rgba(0,0,0,.5);user-select:none}
.destroy-fab:hover{background:linear-gradient(180deg,#4a3a1f,#2e2210)}
.destroy-fab i{font-style:normal}
.destroy-drawer{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:61;width:300px;background:#1c160c;border:1px solid #6b5326;border-right:none;border-radius:10px 0 0 10px;padding:14px 16px;box-shadow:-4px 0 18px rgba(0,0,0,.6)}
.destroy-drawer.hidden{display:none}
.destroy-drawer-head{display:flex;justify-content:space-between;align-items:center;font-family:'Ma Shan Zheng',serif;font-size:17px;color:#e8d9a8;margin-bottom:12px}
.destroy-close{background:none;border:none;color:#8a7a55;font-size:15px;cursor:pointer}
.destroy-close:hover{color:#e8d9a8}
.destroy-drawer-tip{font-size:12px;color:#8a7a55;margin-top:10px;line-height:1.6}

/* ═══ v11.10 名录淡忘 ═══ */
.ally-row,.artisan-card{position:relative}
.npc-forget-btn{position:absolute;top:8px;right:8px;width:22px;height:22px;line-height:20px;padding:0;border-radius:50%;border:1px solid #4a3b22;background:rgba(30,24,14,.7);color:#8a7a55;font-size:12px;cursor:pointer;z-index:2}
.npc-forget-btn:hover{color:#ff8a8a;border-color:#7a4444;background:rgba(50,20,16,.85)}
.artisan-actions .npc-forget-btn{position:static;margin-left:8px}

/* ═══ v11.11 盟友阵亡 ═══ */
.ally-row.ally-dead{opacity:.55}
.ally-dead-badge{color:#ff8a8a;font-size:12px;margin-left:8px}
