/* =====================================================================
   界面主题：字号层级、点击尺寸、漆金面板（最后加载，覆盖前面样式）
   ===================================================================== */
:root {
  --fs-xs: 12px; --fs-s: 13px; --fs-m: 15px; --fs-l: 18px; --fs-xl: 22px; --fs-xxl: 28px;
  --tap: 36px;
  --gold-line: #a8844a; --gold-hi: #f1d796; --lacquer: #1a120b; --lacquer2: #2b1e12;
  --paper: 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' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.72 0 0 0 0 0.5 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (pointer: coarse) {
  :root { --fs-xs: 13px; --fs-s: 14px; --fs-m: 16px; --fs-l: 19px; --fs-xl: 23px; --fs-xxl: 28px; --tap: 44px; }
}

/* ---------- 漆金面板 ---------- */
.modal-box, #tilePanel, .mp-box, .lord-card, .hero-detail, .army-side, .rep-row, .rd-head, .dom-box, .te-team {
  background-color: var(--lacquer);
  background-image: var(--paper), linear-gradient(180deg, rgba(60,42,24,0.55), rgba(16,11,7,0.2) 40%, rgba(10,7,4,0.5));
  border: 1px solid var(--gold-line);
  box-shadow: 0 10px 30px rgba(0,0,0,0.55), inset 0 0 0 3px rgba(0,0,0,0.45), inset 0 0 0 4px rgba(168,132,74,0.28);
}
.modal-box, .mp-box { position: relative; }
#tilePanel { position: fixed; }
.modal-box::before, #tilePanel::before, .mp-box::before {
  content: ''; position: absolute; inset: 5px; pointer-events: none; z-index: 1;
  background:
    linear-gradient(var(--gold-hi), var(--gold-hi)) top left / 16px 2px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) top left / 2px 16px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) top right / 16px 2px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) top right / 2px 16px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) bottom left / 16px 2px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) bottom left / 2px 16px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) bottom right / 16px 2px no-repeat,
    linear-gradient(var(--gold-hi), var(--gold-hi)) bottom right / 2px 16px no-repeat;
  opacity: 0.75;
}
#tilePanel { background-color: rgba(20,14,9,0.94); }

/* ---------- 弹窗标题：牌匾 ---------- */
.modal-head { position: relative; justify-content: center; padding: 12px 56px; border-bottom: 1px solid rgba(168,132,74,0.45);
  background: linear-gradient(90deg, rgba(0,0,0,0), rgba(168,132,74,0.22) 30%, rgba(168,132,74,0.22) 70%, rgba(0,0,0,0)); }
#modalTitle { font-size: var(--fs-xl); letter-spacing: 8px; color: var(--gold-hi); text-shadow: 0 2px 0 #2a1808, 0 0 18px rgba(241,215,150,0.25); }
#modalTitle::before, #modalTitle::after { content: '◆'; font-size: 10px; color: var(--gold-line); margin: 0 14px; vertical-align: middle; letter-spacing: 0; }
#modalClose { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: var(--tap); height: var(--tap); border-radius: 50%; font-size: 16px;
  background: radial-gradient(circle at 40% 35%, #4a3520, #1a110a); border: 1px solid var(--gold-line); }

/* ---------- 按钮三级 ---------- */
.btn { min-height: var(--tap); padding: 0 20px; font-size: var(--fs-m); display: inline-flex; align-items: center; justify-content: center; gap: 6px; letter-spacing: 2px;
  border-radius: 2px; border: 1px solid #e6c47a; color: #2a1708;
  background: linear-gradient(180deg, #f6e1a6 0%, #dcb25e 48%, #b7883a 52%, #d7ac58 100%);
  box-shadow: 0 2px 0 #5d3d14, 0 4px 10px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.6); }
.btn.dark { color: var(--gold-hi); border-color: var(--gold-line); background: linear-gradient(180deg, #4b3826, #2a1d12); box-shadow: 0 2px 0 #120b06, inset 0 1px 0 rgba(255,230,170,0.15); }
.btn.red { color: #fff1df; border-color: #e0806a; background: linear-gradient(180deg, #d7684e, #9a2c1d); box-shadow: 0 2px 0 #4f150c, inset 0 1px 0 rgba(255,255,255,0.3); }
.btn.sm { min-height: calc(var(--tap) - 6px); padding: 0 12px; font-size: var(--fs-s); letter-spacing: 1px; }
.btn:active { transform: translateY(1px); }
.chip { min-height: calc(var(--tap) - 4px); padding: 0 14px; font-size: var(--fs-s); display: inline-flex; align-items: center; border-radius: 2px;
  border: 1px solid rgba(168,132,74,0.55); background: linear-gradient(180deg, rgba(60,44,28,0.85), rgba(25,17,10,0.85)); color: #d9c7a0; }
.chip.on { color: #2a1708; border-color: #f0d18b; background: linear-gradient(180deg, #f6e1a6, #c99a45); box-shadow: 0 0 10px rgba(241,215,150,0.3); }

/* ---------- 字号层级 ---------- */
.hint, .tp-sub, .gc-info, .rd-tr, .rr-time, .rr-meta small { font-size: var(--fs-s); }
.tp-row, .tp-def div, .march-opt .mo-info, .rd-stat, .tactic-box p, .stat { font-size: var(--fs-s); }
.tp-sec { font-size: var(--fs-l); }
.tp-title { font-size: var(--fs-xl); }
.tp-brief { font-size: var(--fs-s); }
.march-opt .mo-info b { font-size: var(--fs-m); }
.res b { font-size: var(--fs-m); }
.toast { font-size: var(--fs-m); }
.gen-card .gc-info b { font-size: var(--fs-m); }
.army-tab b { font-size: var(--fs-l); } .army-tab small { font-size: var(--fs-xs); }
.rep-tab { font-size: var(--fs-m); min-height: var(--tap); }
.tp-more { min-height: var(--tap); font-size: var(--fs-s); }
.tp-close { width: var(--tap); height: var(--tap); }

/* ---------- 菜单图标 ---------- */
#menuBar button i, #homeBtn i { display: grid; place-items: center; }
#menuBar button i svg { width: 58%; height: 58%; }
#homeBtn i svg { width: 30px; height: 30px; }
#menuBar button i { background: radial-gradient(circle at 40% 30%, #5d4227, #1e140b 75%); border: 2px solid var(--gold-line);
  box-shadow: 0 3px 10px rgba(0,0,0,0.6), inset 0 0 0 2px rgba(0,0,0,0.5), inset 0 0 0 3px rgba(241,215,150,0.25); color: var(--gold-hi); }
#menuBar button:hover i { border-color: var(--gold-hi); }
#menuBar button span { font-family: var(--font); font-size: var(--fs-s); letter-spacing: 1px; }
#lordbox { cursor: pointer; }

/* ---------- 页内页签 ---------- */
.page-tabs { display: flex; gap: 0; margin: -4px 0 12px; border-bottom: 1px solid rgba(168,132,74,0.35); }
.page-tab { min-height: var(--tap); padding: 0 26px; font-family: var(--font); font-size: var(--fs-l); letter-spacing: 3px; color: #b8a47c;
  background: none; border: none; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.page-tab.on { color: var(--gold-hi); border-bottom-color: #e2bb68; text-shadow: 0 0 12px rgba(241,215,150,0.35); }

/* ---------- 开始界面：大按钮 ---------- */
.st-tabs button { min-height: var(--tap); font-size: var(--fs-l); }
.map-opts { gap: 10px; }
.map-opts .mo-row { gap: 8px; }
.map-opts .mo-label { font-size: var(--fs-l); min-width: 3em; text-align: right; }
.map-opts .chip { font-size: var(--fs-m); min-height: var(--tap); padding: 0 16px; }
.map-opts .mo-seed { font-size: var(--fs-s); }
.lord-card .lc-info b { font-size: var(--fs-xl); }
.lord-card .lc-info p { font-size: var(--fs-s); }
.st-tip { font-size: var(--fs-s); }
.mp-row label { font-size: var(--fs-l); }
.mp-row input { min-height: var(--tap); font-size: var(--fs-m); }
.room-row { min-height: calc(var(--tap) + 12px); font-size: var(--fs-m); }
.mp-size span, .mp-head { font-size: var(--fs-l); }

/* ---------- 手机竖屏：开始界面网格化、按钮加大 ---------- */
@media (max-width: 760px) {
  .ld-title, .st-title { font-size: 42px; letter-spacing: 10px; }
  .st-sub { font-size: var(--fs-s); }
  .st-tabs { width: 100%; }
  .st-tabs button { flex: 1; padding: 0 8px; letter-spacing: 3px; }
  .map-opts { width: 100%; align-items: stretch; }
  .map-opts .mo-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .map-opts .mo-label { grid-column: 1 / -1; text-align: left; font-size: var(--fs-m); }
  .map-opts .chip { justify-content: center; padding: 0 6px; }
  .map-opts .mo-seed { grid-column: 1 / 3; align-self: center; text-align: left; margin: 0; }
  #lordChoices { width: 100%; }
  .lord-card { flex: 1; width: auto; }
  .lord-card .lc-info b { font-size: var(--fs-m); }
  .mp-size { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .mp-size > span:first-child { grid-column: 1 / -1; }
  .mp-size .chip { justify-content: center; }
  .page-tab { flex: 1; padding: 0 8px; }
  #modalTitle::before, #modalTitle::after { margin: 0 8px; }
  .btn { padding: 0 14px; }
  .res b { font-size: var(--fs-s); }
  #speedBtns button { min-width: 32px; min-height: 28px; font-size: var(--fs-xs); }
  #muteBtn { width: 32px; height: 28px; }
  .tc-name { font-size: var(--fs-xs); }
  #menuBar button span { font-size: var(--fs-xs); }
}

/* 弹窗打开时提示移到底部，避免遮挡页签 */
body.modal-open #toasts { top: auto; bottom: calc(18px + env(safe-area-inset-bottom)); }

/* =====================================================================
   地块弹层：牌匾在上，信息在左，操作在右（锚定在所选地块上）
   ===================================================================== */
#tilePanel { position: fixed; left: 0 !important; top: 0 !important; right: auto !important; bottom: auto !important; width: 0 !important; height: 0 !important;
  padding: 0 !important; max-height: none !important; background: none !important; border: none !important; box-shadow: none !important; overflow: visible; display: block; z-index: 8; }
#tilePanel::before { display: none; }
.tp-anchor { position: absolute; left: 0; top: 0; }
.tp-plaque { position: absolute; left: 0; bottom: 58px; transform: translateX(-50%); white-space: nowrap; padding: 6px 42px;
  background: linear-gradient(90deg, rgba(18,12,8,0), rgba(18,12,8,0.94) 16%, rgba(18,12,8,0.94) 84%, rgba(18,12,8,0));
  border-top: 1px solid var(--gold-line); border-bottom: 1px solid var(--gold-line); }
.tp-plaque::before, .tp-plaque::after { content: '◆'; position: absolute; top: 50%; transform: translateY(-50%); color: var(--gold-line); font-size: 10px; }
.tp-plaque::before { left: 18px; } .tp-plaque::after { right: 18px; }
.tp-plaque .tp-title { font-size: var(--fs-xl); padding: 0; justify-content: center; margin: 0; letter-spacing: 3px; color: var(--gold-hi); }
.tp-info, .tp-acts { position: absolute; top: -40px; padding: 10px 12px; max-height: 60vh; overflow: auto;
  background-color: rgba(18,12,8,0.94); background-image: var(--paper); border: 1px solid var(--gold-line);
  box-shadow: 0 8px 24px rgba(0,0,0,0.55), inset 0 0 0 3px rgba(0,0,0,0.45), inset 0 0 0 4px rgba(168,132,74,0.28); }
.tp-info { right: 70px; width: 240px; }
.tp-acts { left: 70px; width: 290px; overflow: visible; }
.tp-acts .tp-actions { max-height: 52vh; overflow: auto; }
.tp-acts .tp-close { position: absolute; top: -16px; right: -16px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #4a3520, #1a110a); }
.tp-info .tp-brief { font-size: var(--fs-m); line-height: 1.8; color: #e9d9b6; margin: 0; }
.tp-acts .tp-sec:first-child { margin-top: 0; }
/* 操作行：像按钮一样整行 */
.tp-acts .march-opt { background: linear-gradient(90deg, rgba(120,32,22,0.55), rgba(40,14,10,0.6)); border: 1px solid rgba(224,128,106,0.45); }
.tp-acts .march-opt .btn { min-width: 72px; }

/* 部队头像：右侧小地图下方 */
#teamPanel.chips { left: auto !important; right: calc(14px + env(safe-area-inset-right)); top: calc(var(--hud-top) + env(safe-area-inset-top) + 190px); align-items: center; }
.tc-home { left: auto; right: calc(var(--chip) + 8px); }

@media (max-width: 760px), (max-height: 520px) {
  #teamPanel.chips { top: calc(var(--hud-top) + env(safe-area-inset-top) + 8px); }
}
/* 手机竖屏：信息在上、操作在下 */
@media (max-width: 760px) {
  .tp-plaque { bottom: 46px; padding: 5px 34px; }
  .tp-plaque .tp-title { font-size: var(--fs-l); }
  .tp-info { right: auto; left: 0; transform: translateX(-50%); top: auto; bottom: 96px; width: min(84vw, 320px); padding: 8px 10px; max-height: 30vh; }
  .tp-info .tp-brief { font-size: var(--fs-s); line-height: 1.6; }
  .tp-acts { left: 0; transform: translateX(-50%); top: 44px; width: min(92vw, 360px); padding: 8px; }
  .tp-acts .tp-actions { max-height: 34vh; }
}
/* 手机横屏：左右排布但更窄 */
@media (max-height: 520px) and (min-width: 761px) {
  .tp-info { width: 190px; right: 60px; top: -60px; max-height: 50vh; }
  .tp-acts { width: 240px; left: 60px; top: -60px; }
  .tp-acts .tp-actions { max-height: 48vh; }
}

/* 修正：牌匾按内容取宽，不折行；手机上弹层避开右侧部队栏 */
.tp-plaque { width: max-content; }
.tp-plaque .tp-title { flex-wrap: nowrap; gap: 8px; }
@media (max-width: 760px) {
  .tp-info { width: min(calc(100vw - 100px), 320px); }
  .tp-acts { width: min(calc(100vw - 96px), 340px); }
}

/* ---------- 地块筛选 ---------- */
#fieldBtn { position: fixed; z-index: 9; left: calc(10px + env(safe-area-inset-left)); top: calc(var(--hud-top) + env(safe-area-inset-top) + 10px);
  width: 46px; height: 46px; border-radius: 50%; padding: 0; color: var(--gold-hi); display: grid; place-items: center;
  background: radial-gradient(circle at 40% 30%, #5d4227, #1e140b 75%); border: 2px solid var(--gold-line); box-shadow: 0 3px 10px rgba(0,0,0,0.6); }
#fieldBtn svg { width: 24px; height: 24px; }
#fieldBtn.active { border-color: #ffd27a; box-shadow: 0 0 14px rgba(255,200,100,0.6); }
#fieldPanel { position: fixed; z-index: 12; left: calc(64px + env(safe-area-inset-left)); top: calc(var(--hud-top) + env(safe-area-inset-top) + 10px); width: 300px; padding: 12px;
  background-color: rgba(18,12,8,0.95); background-image: var(--paper); border: 1px solid var(--gold-line);
  box-shadow: 0 10px 28px rgba(0,0,0,0.6), inset 0 0 0 3px rgba(0,0,0,0.45), inset 0 0 0 4px rgba(168,132,74,0.28); }
.ff-sec { font-family: var(--font); color: var(--gold-hi); font-size: var(--fs-l); margin: 2px 0 8px; letter-spacing: 2px; }
.ff-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 12px; }
.ff-grid.four { grid-template-columns: repeat(2, 1fr); }
.ff-b { min-height: var(--tap); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: var(--fs-m); color: #d9c7a0;
  background: linear-gradient(180deg, rgba(60,44,28,0.9), rgba(22,15,9,0.9)); border: 1px solid rgba(168,132,74,0.5); }
.ff-b i { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 12px; color: #1a120a; font-family: var(--font); }
.ff-b.on { color: #2a1708; background: linear-gradient(180deg, #f6e1a6, #c99a45); border-color: #f0d18b; }
.ff-check { display: flex; align-items: center; gap: 10px; min-height: var(--tap); font-size: var(--fs-m); color: #e9d9b6; cursor: pointer; }
.ff-check input { width: 22px; height: 22px; accent-color: #d8b46a; }
.ff-clear { width: 100%; min-height: calc(var(--tap) - 6px); margin-top: 6px; background: none; border: 1px dashed rgba(168,132,74,0.5); color: var(--dim); font-size: var(--fs-s); }

/* ---------- 贼寇营地 ---------- */
.camp-label { display: flex; align-items: center; gap: 4px; position: relative; padding: 1px 8px 4px; font-size: 11px; color: #ffe3d0; white-space: nowrap; pointer-events: none;
  background: rgba(40,8,6,0.85); border: 1px solid #b8402c; }
.camp-label b { font-family: var(--font); font-size: 13px; font-weight: normal; }
.camp-label span { color: #ffb38a; }
.camp-label em { font-style: normal; color: #d9b8a0; font-size: 10px; }
.camp-label i { position: absolute; left: 0; bottom: 0; height: 3px; background: #e0533c; }
.camp-label.boss { background: rgba(60,4,2,0.92); border-color: #ff5a3a; box-shadow: 0 0 12px rgba(255,60,30,0.6); }
.camp-label.boss b { font-size: 15px; color: #ffd0b0; }
.camp-plaque { border-color: #b8402c !important; }
.camp-plaque .tp-title { color: #ffd0b0 !important; }
.camp-info .ci-row { display: flex; justify-content: space-between; font-size: var(--fs-s); padding: 3px 0; color: #e9d9b6; }
.camp-info .ci-row b { color: #fff0d0; font-weight: 500; }
.rw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 5px; margin-bottom: 6px; }
.rw { display: flex; align-items: center; gap: 5px; padding: 4px 6px; background: rgba(0,0,0,0.35); border: 1px solid rgba(168,132,74,0.35); }
.rw i { width: 18px; height: 18px; border-radius: 50%; background: var(--rc); display: grid; place-items: center; font-style: normal; font-size: 11px; color: #1a120a; font-family: var(--font); flex-shrink: 0; }
.rw b { font-size: var(--fs-xs); color: #fff0d0; font-weight: 600; }

/* ---------- 邀请链接 ---------- */
.invite-link { display: flex; align-items: center; gap: 8px; margin: 4px 0 6px; }
.invite-link span { font-family: var(--font); color: var(--gold-hi); white-space: nowrap; }
.invite-link input { flex: 1; min-height: var(--tap); background: rgba(0,0,0,0.45); border: 1px solid var(--gold-line); color: #fff0d0; padding: 0 10px; font-size: var(--fs-s); }

@media (max-width: 760px) {
  #fieldPanel { left: 10px; right: 10px; width: auto; top: calc(var(--hud-top) + env(safe-area-inset-top) + 62px); }
  .mp-fac .portrait { aspect-ratio: 3/3.4; }
}

.tp-info.camp-info { overflow-x: hidden; }

/* 地块筛选：电脑端放在小地图左侧 */
@media (min-width: 761px) and (min-height: 521px) {
  #fieldBtn { left: auto; right: calc(232px + env(safe-area-inset-right)); top: calc(var(--hud-top) + env(safe-area-inset-top) + 10px); }
  #fieldPanel { left: auto; right: calc(232px + env(safe-area-inset-right)); top: calc(var(--hud-top) + env(safe-area-inset-top) + 64px); }
}

/* 圆形头像：以脸部（立绘中 x≈46.7%、y≈46%）为中心裁切 */
.tc-ava .portrait { width: 153% !important; height: 204% !important; left: -21.5% !important; top: -44% !important; }
#lordPortrait .portrait { width: 200% !important; height: 266% !important; left: -43.4% !important; top: -66% !important; }

/* ---------- 独立招募按钮（右下角最外侧） ---------- */
#recruitBtn { position: fixed; z-index: 9; right: calc(10px + env(safe-area-inset-right)); bottom: calc(8px + env(safe-area-inset-bottom));
  width: 84px; height: 96px; padding: 0; background: none; border: none; display: flex; flex-direction: column; align-items: center; gap: 2px; color: var(--gold-hi); font-family: var(--font); }
#recruitBtn i { width: 78px; height: 78px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle at 40% 30%, #8a3a24, #3a120a 72%); border: 3px solid #e2bb68;
  box-shadow: 0 4px 16px rgba(0,0,0,0.65), inset 0 0 0 3px rgba(0,0,0,0.45), inset 0 0 0 4px rgba(241,215,150,0.35), 0 0 18px rgba(226,120,60,0.35); }
#recruitBtn i svg { width: 46px; height: 46px; }
#recruitBtn span { font-size: var(--fs-m); letter-spacing: 4px; text-shadow: 0 1px 2px #000, 0 0 6px #000; margin-top: -14px;
  background: linear-gradient(180deg, #4b2a14, #24120a); border: 1px solid #e2bb68; padding: 0 10px; }
#recruitBtn:hover i { filter: brightness(1.15); }
#recruitBtn .rb-dot { position: absolute; top: 4px; right: 8px; width: 14px; height: 14px; border-radius: 50%; background: #e2412e; border: 2px solid #ffe3c0; display: none; }
#recruitBtn.ready .rb-dot { display: block; }
#recruitBtn.ready i { animation: rbGlow 1.6s ease-in-out infinite alternate; }
@keyframes rbGlow { from { box-shadow: 0 4px 16px rgba(0,0,0,0.65), 0 0 10px rgba(255,170,80,0.3); } to { box-shadow: 0 4px 16px rgba(0,0,0,0.65), 0 0 26px rgba(255,170,80,0.75); } }
#menuBar { right: calc(108px + env(safe-area-inset-right)) !important; }
@media (max-width: 760px), (max-height: 520px) {
  #recruitBtn { width: 64px; height: 76px; }
  #recruitBtn i { width: 58px; height: 58px; } #recruitBtn i svg { width: 34px; height: 34px; }
  #recruitBtn span { font-size: var(--fs-s); letter-spacing: 2px; padding: 0 6px; margin-top: -10px; }
  #menuBar { right: calc(80px + env(safe-area-inset-right)) !important; }
}
@media (max-width: 420px) { #menuBar { gap: 3px !important; } :root { --menu-btn: 38px; } }

/* 招募按钮文字置于图标之上 */
#recruitBtn i { position: relative; z-index: 1; }
#recruitBtn span { position: relative; z-index: 2; margin-top: -8px !important; }

/* ---------- 多路诸侯：紧凑卡片网格 ---------- */
#lordChoices.many { display: grid; grid-template-columns: repeat(5, 132px); gap: 10px; justify-content: center; }
#lordChoices.many .lord-card { width: auto; border-color: var(--fc); }
#lordChoices.many .lord-card .portrait { aspect-ratio: 3/3.2; }
#lordChoices.many .lord-card .lc-info { padding: 6px 8px; }
#lordChoices.many .lord-card .lc-info b { font-size: var(--fs-m); }
#lordChoices.many .lord-card .lc-info p { display: none; }
.mp-facs.many { grid-template-columns: repeat(5, 1fr); gap: 8px; }
.mp-facs.many .mp-fac .portrait { aspect-ratio: 3/2.6; }
.mp-facs.many .mf-info { padding: 6px; gap: 4px; }
.mp-facs.many .mf-info b { font-size: var(--fs-s); }
.mp-facs.many .mf-who { font-size: var(--fs-xs); }
.mp-facs.many .btn.sm { min-height: 28px; padding: 0 8px; }
@media (max-width: 760px) {
  #lordChoices.many { grid-template-columns: repeat(3, 1fr); }
  .mp-facs.many { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- 手机竖屏：地块弹层改为底部面板 ---------- */
@media (max-width: 760px) {
  #tilePanel.sheet .tp-anchor { position: fixed; left: calc(10px + env(safe-area-inset-left)); right: calc(10px + env(safe-area-inset-right));
    bottom: calc(92px + env(safe-area-inset-bottom)); top: auto; display: flex; flex-direction: column; max-height: 56dvh;
    background-color: rgba(18,12,8,0.96); background-image: var(--paper); border: 1px solid var(--gold-line);
    box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 0 0 3px rgba(0,0,0,0.45), inset 0 0 0 4px rgba(168,132,74,0.28); }
  #tilePanel.sheet .tp-plaque, #tilePanel.sheet .tp-info, #tilePanel.sheet .tp-acts {
    position: static; transform: none; width: auto; max-height: none; left: auto; right: auto; top: auto; bottom: auto;
    background: none; border: none; box-shadow: none; }
  #tilePanel.sheet .tp-plaque { padding: 10px 52px 6px 14px; border-bottom: 1px solid rgba(168,132,74,0.35); }
  #tilePanel.sheet .tp-plaque::before, #tilePanel.sheet .tp-plaque::after { display: none; }
  #tilePanel.sheet .tp-plaque .tp-title { justify-content: flex-start; font-size: var(--fs-l); }
  #tilePanel.sheet .tp-info { padding: 6px 14px 0; overflow: visible; }
  #tilePanel.sheet .tp-info .tp-brief { display: inline; }
  #tilePanel.sheet .tp-info .tp-brief br { display: none; }
  #tilePanel.sheet .tp-acts { padding: 4px 10px 10px; overflow: auto; flex: 1; min-height: 0; }
  #tilePanel.sheet .tp-acts .tp-actions { max-height: none; overflow: visible; }
  #tilePanel.sheet .tp-acts .tp-close { position: absolute; top: 6px; right: 8px; }
  #tilePanel.sheet .camp-info { max-height: 22dvh; overflow: auto; }
}

.tp-info .bsep { display: block; height: 0; overflow: hidden; }
@media (max-width: 760px) { #tilePanel.sheet .tp-info .bsep { display: inline; height: auto; overflow: visible; color: var(--dim); } }
