/* 遊戲中介面：沿用單機版 idle-lineage-class 的 afk-lmui.js（天堂M風格，手機直式優先）。
   數值、配色照原檔；選擇器改成這個專案自己的 DOM（原檔要掛在單機版核心畫面上，不能直接搬）。
   頂端安全區照 afk-banner：--orig-bar-h＝env(safe-area-inset-top)（iPhone 瀏海）。 */
:root {
  --orig-bar-h: env(safe-area-inset-top, 0px);
  --m-nav-h: 62px;          /* 底部工具列＋經驗條（JS 量實際高度覆寫） */
  --lmui-vit: 50px;         /* AUTO 那一列 */
  --lmui-band: 46px;        /* 裝飾帶（嵌體力／魔力條） */
  --lmui-line: rgba(214,190,140,.45);
  --lmui-ptop: var(--orig-bar-h);   /* 彈出視窗上緣＝畫面頂端（只讓開瀏海安全區），蓋住頭像列、線上名單 */
  --lmui-pop-b: 340px;      /* 彈出視窗下緣離畫面底多遠＝龍頭帶上緣，蓋住快捷列、地名（hud.js measureLayout 量實際的覆寫，聊天框換高度跟著動） */
  --lmui-lower-h: 320px;    /* 下方介面（AUTO 列＋裝飾帶＋快捷列＋聊天視窗）多高（同上） */
  --lmui-ptabs-h: 40px;
  --lmui-col: min(calc(var(--vw1, 1vw) * 100), 520px);   /* 桌機：下方 HUD、視窗收成一欄置中 */
}

#game { position: fixed; inset: 0; background: #05080c; }
/* 手機：長按按鈕不要選到字、不要跳系統選單；連點不要縮放（按鈕才不會看起來像壞掉） */
#lmui-hud, #m-nav, #lmui-win { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
#lmui-say { -webkit-user-select: text; user-select: text; }
#game button, #game select { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
#cv { position: absolute; left: 0; right: 0; top: var(--orig-bar-h); bottom: var(--m-nav-h); width: 100%; height: calc(100% - var(--orig-bar-h) - var(--m-nav-h));
  display: block; image-rendering: pixelated; touch-action: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
/* 挨到大的一擊（≥ 最大體力 10%）畫面震一下：幅度、時間照單機版 @keyframes vfxShake／.vfx-shake（main.js shakeView） */
@keyframes vfxShake {
  0%, 100% { transform: translate(0, 0); }
  15% { transform: translate(-5px, 3px); }   30% { transform: translate(5px, -3px); }
  45% { transform: translate(-4px, -2px); }  60% { transform: translate(4px, 2px); }
  80% { transform: translate(-2px, 1px); }
}
#cv.vfx-shake { animation: vfxShake .45s ease-in-out; }
/* 打怪拿到的東西飛到身上（loot.js）：在場景上、HUD 底下，不吃點擊 */
#loot-fx { position: fixed; inset: 0; z-index: 40; pointer-events: none; overflow: hidden; }
/* 開著視窗（背包、能力、NPC…）不畫撿到東西的飛行圖示（站長 2026-10-29「看得到金幣」：手機上金幣飛過血盟頁） */
body.lmui-cover #loot-fx { display: none; }
/* iPhone Safari：祖先 user-select:none 會讓視窗裡的輸入框打不了字（站長同日「無法打字」） */
#lmui-win input, #lmui-win textarea { -webkit-user-select: text; user-select: text; }
#loot-fx .loot-fly { position: fixed; width: 32px; height: 32px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 0 3px rgba(255,220,140,.9)) drop-shadow(0 1px 2px #000); will-change: transform, opacity; }

/* ── HUD 外框：釘在場景上，本身不吃點擊 ── */
#lmui-hud { position: fixed; left: 0; right: 0; top: var(--orig-bar-h); bottom: var(--m-nav-h); z-index: 50; pointer-events: none;
  color: #eee; text-shadow: 0 1px 2px #000, 0 0 2px #000; font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }
#lmui-hud button { font-family: inherit; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
#lmui-hud .lmui-hit { pointer-events: auto; }

/* 左上：頭像＋數值 */
#lmui-tl { position: absolute; top: 4px; left: 5px; display: flex; gap: 5px; align-items: flex-start; }
#lmui-face { position: relative; width: 44px; flex: none; display: flex; flex-direction: column; align-items: center; }
#lmui-face .pic { width: 42px; height: 42px; border: 2px solid #d8b062; border-radius: 3px; background: radial-gradient(circle at 50% 35%, #2a2218, #0a0806); overflow: hidden; cursor: pointer;
  box-shadow: inset 0 0 0 1px #2a1c08, inset 0 0 8px rgba(0,0,0,.8), 0 0 0 1px #3a280c, 0 0 0 2px #9c7535, 0 2px 6px #000; }
#lmui-face img { width: 100%; height: 100%; object-fit: contain; object-position: center; padding: 4px; box-sizing: border-box; }
#lmui-align { margin-top: 4px; width: 48px; padding: 0 0 1px; display: flex; flex-direction: column; align-items: center; font-size: 11px; line-height: 1.2; white-space: nowrap;
  border: 1px solid #9c7535; border-radius: 3px; background: linear-gradient(rgba(28,22,14,.92), rgba(10,8,5,.92)); box-shadow: inset 0 1px 0 rgba(255,220,150,.15), 0 1px 3px #000; }
#lmui-align b { color: #fff; font-weight: 700; }
#lmui-stats { position: relative; display: flex; flex-direction: column; gap: 0; line-height: 1.3; padding: 1px 22px 2px 9px; margin-left: 2px; font-size: 13px;
  background: linear-gradient(90deg, rgba(12,9,6,.82), rgba(12,9,6,.6) 70%, rgba(12,9,6,0)); }
#lmui-stats::before, #lmui-stats::after { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, #c9a050, rgba(201,160,80,.5) 70%, rgba(201,160,80,0)); }
#lmui-stats::before { top: 0; } #lmui-stats::after { bottom: 0; }
#lmui-stats .row { display: flex; gap: 9px; align-items: baseline; white-space: nowrap; }
#lmui-stats .k { color: #bdbdbd; margin-right: 3px; }
#lmui-stats b { color: #fff; font-weight: 600; }
#lmui-gold b { color: #f5d77b; }
#lmui-name { white-space: nowrap; font-size: 15px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px #000; max-width: 150px; overflow: hidden; text-overflow: ellipsis; }

/* 左側：線上玩家（頭像列下方；清單最低到地名上方，聊天視窗變高時跟著縮短：--lmui-lower-h 由 hud.js 量） */
#lmui-who { position: absolute; left: 5px; top: 76px; z-index: 6; width: 132px; display: flex; flex-direction: column; }
#lmui-whobtn { align-self: flex-start; display: flex; align-items: center; gap: 5px; padding: 2px 8px; font-size: 13px; color: #f0e2bf; border: 1px solid rgba(214,180,110,.75); border-radius: 11px;
  background: #0b0d10; box-shadow: 0 1px 4px rgba(0,0,0,.6); text-shadow: 0 1px 2px #000; }   /* 不透明：場景裡的名字（畫在畫布上）不會透出來疊在字上 */
#lmui-whobtn b { font-weight: 700; } #lmui-whobtn span { color: #fff; font-weight: 700; }
#lmui-whobtn i { font-style: normal; font-size: 11px; color: #c9b88f; transition: transform .15s; }
#lmui-who.off #lmui-whobtn i { transform: rotate(-90deg); }
#lmui-wholist { margin-top: 3px; max-height: calc(calc(var(--dvh1, 1dvh) * 100) - var(--orig-bar-h) - var(--m-nav-h) - 76px - 26px - var(--lmui-lower-h) - 34px - var(--lmui-pt-h, 0px));
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; display: flex; flex-direction: column; gap: 2px; }
#lmui-who.off #lmui-wholist { display: none; }
#lmui-whobtn[hidden], #lmui-wholist[hidden] { display: none !important; }
#lmui-wholist .lw-hd { padding: 2px 6px; font-size: 11px; color: #c9b88f; }
.lw-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 4px; align-items: center; width: 100%; padding: 3px 5px; text-align: left;
  font-family: inherit; color: #eee; background: linear-gradient(90deg, #120e09, #1a140d); border: 0; border-left: 2px solid #9c7535; border-radius: 2px; cursor: pointer; text-shadow: 0 1px 2px #000; }
.lw-row:active { background: #4a3a22; }
/* 左側隊員欄（hud.js setParty）：線上名單上面，一列＝職業圖、名字、等級、血條；隊長的列左邊框金色 */
#lmui-ptbar { display: flex; flex-direction: column; gap: 2px; margin-bottom: 4px; }
#lmui-ptbar[hidden] { display: none; }
.pt-side { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 4px; row-gap: 2px; align-items: center; width: 100%; padding: 3px 5px 4px; text-align: left;
  font-family: inherit; color: #eee; background: linear-gradient(90deg, #0d150e, #141a10); border: 0; border-left: 2px solid #4ade80; border-radius: 2px; cursor: pointer; text-shadow: 0 1px 2px #000; }
.pt-side.lead { border-left-color: #fde047; }
.pt-side:active { background: #22402a; }
.pt-side img, .pt-side > i { grid-row: 1 / span 2; width: 18px; height: 18px; object-fit: contain; }
.pt-side .nm { font-size: 13px; font-weight: 700; color: #86efac; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-side .lv { font-size: 12px; color: #f5d77b; }
.pt-side .hp { grid-column: 2 / span 2; display: block; height: 5px; border-radius: 3px; background: rgba(0,0,0,.7); box-shadow: 0 0 0 1px #2f3a28; overflow: hidden; }
.pt-side .hp i { display: block; height: 100%; background: #4ade80; }
.pt-side .hp.mid i { background: #facc15; } .pt-side .hp.low i { background: #ef4444; }
/* 點隊員跳出的魔法選單（party.js castMenu） */
.cl-ov .pt-cast { display: flex; flex-direction: column; gap: 6px; max-height: calc(var(--vh1, 1vh) * 60); overflow-y: auto; }
.cl-ov .pt-cast .opt { display: flex; align-items: center; justify-content: flex-start; gap: 10px; padding: 0 12px; }
.cl-ov .pt-cast .opt img { width: 28px; height: 28px; object-fit: contain; flex: none; }
.cl-ov .pt-cast .opt span { flex: 1; text-align: left; }
.cl-ov .pt-cast .opt small { flex: none; font-size: 12px; color: #93c5fd; }
.cl-ov .pt-cast .pt-go { border-color: #d6b25e; }
.cl-ov .pt-cast .pt-go small { color: #f5d77a; }
.cl-ov .pt-cast .pt-nogo { font-size: 13px; color: #b9ab8f; padding: 4px 2px 6px; }
.lw-row img { grid-row: 1 / span 2; width: 18px; height: 18px; object-fit: contain; }
.lw-row .nm { font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lw-row .lv { font-size: 12px; color: #f5d77b; }
.lw-row .mp { grid-column: 2 / span 2; display: flex; align-items: center; min-width: 0; font-size: 11px; color: #c9b88f; }
.lw-row .mp span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lw-row .mp em { flex: none; font-style: normal; margin-left: 4px; padding: 0 3px; font-size: 10px; color: #0b0907; background: #c9a050; border-radius: 2px; text-shadow: none; }

/* 右上：狀態圖示（同單機版 #status-icon-bar：從右往左排、28px、黑底用 screen 去掉；hud.js paintEffects）、小地圖
   最多三行：top 6 ＋ 28×3 ＋ 2×2 ＝ 94，停在小地圖（top 96）上面；寬度 hud.js 照頭像數值區右緣算 */
#lmui-status { position: absolute; top: 6px; right: 6px; max-width: 62%; max-height: 88px; overflow: hidden; display: flex; flex-flow: row-reverse wrap; gap: 2px; }
#lmui-status .lmui-st { position: relative; flex: none; width: var(--st, 28px); height: var(--st, 28px); cursor: pointer; }   /* --st：效果太多時 hud.js 縮小 */
#lmui-status .lmui-st img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 去背過的狀態圖示（.cut，public/state-icons/*.png）照原色畫，加一圈 1px 暗邊（白色圖案在亮的地面上才看得清楚）；
   借用的魔法、道具圖示（沒有去背的）維持改前的 screen */
#lmui-status .lmui-st img.cut { filter: drop-shadow(0 0 1px rgba(0,0,0,.9)); }
#lmui-status .lmui-st img:not(.cut) { mix-blend-mode: screen; }
/* 道具圖當狀態圖示（誘捕：漂浮之眼肉、胡蘿蔔）：外面一圈跟狀態圖示（誘捕.png 那種）一樣的深色框，裡面透明、道具圖照原色 */
#lmui-status .lmui-st.framed { box-sizing: border-box; border: calc(var(--st, 28px) * .12) solid #1c1a14; box-shadow: inset 0 0 0 1px rgba(150,140,110,.45); }
#lmui-status .lmui-st.framed img { object-fit: contain; }
#lmui-status .lmui-st .nm { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: calc(var(--st, 28px) * .4); line-height: 1; color: #f0e2bf; background: #2a2218; }
#lmui-status .lmui-st.ending img { animation: lmuiStBlink .8s ease-in-out infinite; }   /* 剩 10 秒內：閃＋圖上倒數（同單機版 status-icon--ending） */
#lmui-status .lmui-st .cd { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font: 700 calc(var(--st, 28px) * .54)/1 sans-serif;
  text-shadow: 0 0 2px #000, 0 0 3px #000, 1px 1px 0 #000, -1px -1px 0 #000; pointer-events: none; }
@keyframes lmuiStBlink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
#lmui-stip { position: fixed; z-index: 2147483000; display: none; max-width: calc(var(--vw1, 1vw) * 70); padding: 6px 10px; border: 1px solid #6b5636; border-radius: 6px; background: rgba(20,16,12,.96);
  color: #f1e6cf; font-size: 15px; line-height: 1.4; box-shadow: 0 4px 12px rgba(0,0,0,.6); pointer-events: none; white-space: nowrap; }
/* 第 324 項：框框畫在畫布上（外層只排版），本區掉寶排在框框底下、不再蓋住地圖；.big＝放大（框加倍） */
.afk-tm-mm { position: absolute; right: 6px; top: 96px; z-index: 6; width: 130px; display: flex; flex-direction: column; align-items: center; gap: 4px;
  cursor: pointer; -webkit-tap-highlight-color: transparent; pointer-events: auto; }
.afk-tm-mm canvas { display: block; box-sizing: border-box; width: 130px; height: 98px; border: 1px solid rgba(214,180,110,.75); border-radius: 8px;
  background: rgba(6,8,10,.62); box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.afk-tm-mm.big { width: 258px; }
.afk-tm-mm.big canvas { width: 258px; height: 194px; }
.afk-tm-mm i { display: none; }
.afk-tm-mm.off { width: 34px; height: 34px; border: 1px solid rgba(214,180,110,.75); border-radius: 50%; background: rgba(6,8,10,.62); box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.afk-tm-mm.off canvas { display: none; }
.afk-tm-mm.off i { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: #f0dca8; }
.afk-tm-mm.off i svg { width: 18px; height: 18px; }

/* ── 下方（由上到下）：右下一排鈕（掛機紀錄、AUTO、⊞，不佔高度）→ 快捷列 → 地名＋龍頭帶 → 聊天視窗 ── */
#lmui-lower { position: absolute; bottom: 0; left: 50%; width: var(--lmui-col); transform: translateX(-50%); display: flex; flex-direction: column; }
#lmui-vit { position: relative; height: 0; z-index: 3; }   /* 右下一排鈕的定位點（下方介面最上緣），鈕都往上長 */
/* ⊞ 的選單開著：直式的 #lmui-lower 有 transform（自成一層），選單往上長到小地圖（6）那裡會被蓋住、點不到第一項 → 開著時整個下方介面提到小地圖上面（hud.js 加 body.lmui-fn-open） */
body.lmui-fn-open #lmui-lower { z-index: 7; }
/* 系統、掉落訊息（hud.js floatMsg）：浮在右下那排鈕（AUTO、⊞）再上面，透明底、描邊字，新的在下面；左下角「訊息▾」收折 */
#lmui-flt { position: relative; height: 0; z-index: 2; }
#lmui-flt .list { position: absolute; left: 8px; right: 22%; bottom: 58px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; pointer-events: none; }
#lmui-flt .list > div { max-width: 100%; font-size: 14px; line-height: 1.3; color: #fff4cf; overflow-wrap: anywhere;
  text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 0 0 4px #000; animation: lmuiFltIn .18s ease-out; transition: opacity .6s; }
#lmui-flt .list > div.out { opacity: 0; }
#lmui-flt.off .list { display: none; }
#lmui-flt .list.held { visibility: hidden; }   /* 新手任務完成的特效放的時候（hud.js holdFloats）：浮著的先藏，放完再出來 */
#lmui-flt .tg { position: absolute; left: 6px; bottom: 8px; height: 22px; padding: 0 7px; border: 1px solid rgba(201,164,99,.55); border-radius: 11px; background: rgba(15,11,8,.55);
  color: #e8cf8f; font: 700 12px/20px "Microsoft JhengHei", "PingFang TC", sans-serif; cursor: pointer; pointer-events: auto; }
#lmui-flt.off .tg { color: #9a8a6a; }
body.lmui-cover #lmui-flt { display: none; }   /* 彈出視窗開著：那塊被視窗蓋住 */
@keyframes lmuiFltIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* 地名＋夥伴列：龍頭帶正上方、貼著血條（直式時龍頭帶上面留一點空給它，見 #lmui-band 的 margin-top） */
#lmui-mapline { position: absolute; left: 8px; right: 8px; bottom: calc(100% - 9px); z-index: 5; display: flex; align-items: flex-end; gap: 10px; pointer-events: none; }
#lmui-mapname { flex: 0 1 auto; min-width: 0; display: flex; align-items: baseline; gap: 6px; max-width: 60%; padding: 0; border: 0; background: none;
  color: #f0e2bf; text-shadow: 0 1px 2px #000, 0 0 3px #000, 1px 0 0 #000, -1px 0 0 #000; cursor: pointer; pointer-events: auto; }
#lmui-mapname b { font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.lmui-cover #lmui-mapline { visibility: hidden; }   /* 彈出視窗開著：視窗下緣在龍頭帶上緣，地名、夥伴列伸進龍頭帶那截會露出來 → 整個藏（hud.js syncCover） */
/* 彈出視窗開著（工具列、頭像、⊞ 裡的功能、夥伴、NPC、道具、強化、更新紀錄都一樣）：聊天視窗（訊息、分頁）和輸入列整個藏起來，全部關掉才回來
   （站長 2026-10-18「有其他視窗時候對話視窗、輸入框隱藏，關閉視窗時才恢復」；直式、橫式都一樣，橫式只藏介面列左欄）。
   直式：龍頭帶落到底部工具列正上方，視窗從畫面頂端一路到龍頭帶上緣（--lmui-pop-b 由 hud.js syncCover 馬上重量）。⊞ 的小選單本身不算（它長在右下那排鈕上） */
body.lmui-cover #lmui-bottom { display: none; }
/* 夥伴列（照單機版 afk-lmui #lmui-comp）：一隻一格、下緣一條紅色血條，底邊對齊血條管子上緣（龍頭帶 y17）；點任一格開「夥伴」視窗 */
#lmui-comp { flex: 1 1 0; min-width: 0; display: flex; flex-wrap: wrap-reverse; gap: 3px; margin-bottom: -8px; }
#lmui-comp:empty { display: none; }
.lmui-cp { position: relative; flex: none; width: 26px; height: 26px; padding: 0; border: 1px solid rgba(214,190,140,.6); border-radius: 3px; background: rgba(0,0,0,.65);
  box-shadow: 0 1px 3px #000; cursor: pointer; pointer-events: auto; -webkit-tap-highlight-color: transparent; }
.lmui-cp img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 1px 1px 4px; box-sizing: border-box; }
.lmui-cp i { position: absolute; left: 1px; right: 1px; bottom: 1px; height: 3px; background: #3b0a0a; }
.lmui-cp i b { display: block; height: 100%; background: #ef4444; transition: width .25s; }
.lmui-cp:active { filter: brightness(1.3); }
#lmui-zone { font-style: normal; font-size: 12px; font-weight: 700; white-space: nowrap; color: #d6d3d1; }
#lmui-zone.z1 { color: #86efac; } #lmui-zone.z2 { color: #fca5a5; }
/* 功能鈕（⊞）：右下一排最右邊；按了在上面彈出選單（樣式同單機版 #my-mail-btn／#my-fn-menu） */
#lmui-skbtn { position: absolute; right: 8px; bottom: 100%; margin-bottom: 8px; width: 40px; height: 40px; padding: 0; border: 1px solid #9c7a40; border-radius: 6px;
  background: linear-gradient(#3a2e20, #140f09); display: flex; align-items: center; justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,220,150,.18), 0 1px 4px #000; }
#lmui-skbtn svg { width: 72%; height: auto; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
#lmui-skbtn:active { filter: brightness(1.25); }
#lmui-skbtn.open { border-color: #f0cd7a; box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), 0 0 0 1px #3a280c, 0 0 10px rgba(240,190,90,.55); }
/* 強制攻擊鈕（手機；hud.js）：⊞ 正上方、同寬；只有觸控裝置顯示（電腦按住 Ctrl）。亮著（.on）＝紅底、金邊、發光脈動，跟 AUTO 開著同一套顏色。
   ⊞ 的選單開著時選單蓋在同一個位置 → 先藏起來 */
#lmui-force { display: none; position: absolute; right: 8px; bottom: 100%; margin-bottom: 56px; width: 40px; height: 40px; padding: 0; border: 1px solid #9c7a40; border-radius: 6px;
  background: linear-gradient(#3a2e20, #140f09); color: #d9c9a3; flex-direction: column; align-items: center; justify-content: center; gap: 0;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,220,150,.18), 0 1px 4px #000; }
@media (pointer: coarse) { #lmui-force { display: flex; } }
/* 電腦版面也有（站長 2026-10-22「電腦版上面沒有強制鍵可以按，會直接攻擊到其他玩家，幫我新增一下」）：位置同手機（⊞ 正上方，10 級前 ⊞ 藏起來時補到 ⊞ 的位置）；Ctrl 照舊 */
body.pcui #lmui-force { display: flex; }
#lmui-force img { width: 20px; height: auto; image-rendering: pixelated; pointer-events: none; filter: grayscale(.5) brightness(.85); }
#lmui-force span { font-size: 10px; line-height: 11px; font-weight: 700; letter-spacing: 1px; text-shadow: 0 1px 1px #000; pointer-events: none; }
#lmui-force:active { filter: brightness(1.25); }
#lmui-force.on { border: 2px solid #f0cd7a; color: #fff3d6; background: radial-gradient(circle at 45% 35%, #ff6b5b, #c81e1e 50%, #5a0606 85%); animation: lmuiForce 1.2s ease-in-out infinite; }
#lmui-force.on img { filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
@keyframes lmuiForce { 0%, 100% { box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), 0 0 0 1px #4a3110, 0 0 6px 1px rgba(255,90,60,.55); } 50% { box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), 0 0 0 1px #4a3110, 0 0 14px 4px rgba(255,90,60,.9); } }
body.lmui-fn-open #lmui-force { visibility: hidden; }
#lmui-fnmenu { position: absolute; right: 8px; bottom: 100%; margin-bottom: 56px; z-index: 6; display: flex; flex-direction: column; gap: 4px;
  pointer-events: auto; transform-origin: 100% 100%; animation: lmFnPop .2s cubic-bezier(.2,.9,.3,1.25) both; }   /* 外框見檔尾「3.5 視窗外框」 */
#lmui-fnmenu button { position: relative; display: flex; align-items: center; gap: 8px; min-width: 112px; padding: 8px 14px 8px 10px; border: 1px solid #5a4630; border-radius: 5px;
  background: linear-gradient(#2c2218, #18120c); color: #f0e2bf; font-size: 15px; font-weight: 700; text-align: left; cursor: pointer; animation: lmFnItem .24s ease-out both; }
#lmui-fnmenu button svg { flex: none; width: 20px; height: 20px; fill: none; stroke: #e2bd6b; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 1px #000); }
#lmui-fnmenu button:active { filter: brightness(1.3); }
#lmui-fnmenu button:nth-child(2) { animation-delay: .05s; } #lmui-fnmenu button:nth-child(3) { animation-delay: .1s; } #lmui-fnmenu button:nth-child(4) { animation-delay: .15s; }
#lmui-fnmenu.closing { animation: lmFnOut .14s ease-in both; } #lmui-fnmenu.closing button { animation: none; }
@keyframes lmFnPop { from { opacity: 0; transform: scale(.55) translateX(14px); } to { opacity: 1; transform: none; } }
@keyframes lmFnOut { from { opacity: 1; transform: none; } to { opacity: 0; transform: scale(.7) translateX(10px); } }
@keyframes lmFnItem { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
/* AUTO：右下一排、⊞ 左邊（AUTO 鈕本身在這格正中間） */
#lmui-bars { position: absolute; right: 54px; bottom: 100%; margin-bottom: 4px; width: 48px; height: 48px; }
/* AUTO 目前在做什麼（hud.js setAuto）：鈕正上方、右邊對齊鈕往左長；不接觸控（不擋操作）。卡住的（.warn）紅底白字慢慢閃 */
#lmui-astate { position: absolute; right: 0; bottom: calc(100% + 2px); max-width: calc(var(--vw1, 1vw) * 60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; pointer-events: none;
  padding: 2px 8px; border-radius: 10px; font-size: 12px; line-height: 16px; font-weight: 700; color: #f0e2bf; background: rgba(18,14,10,.78); border: 1px solid #6b5636;
  text-shadow: 0 1px 1px #000; }
#lmui-astate.warn { color: #fff; background: rgba(185,28,28,.92); border-color: #fca5a5; animation: lmuiAstate 1.6s ease-in-out infinite; }
@keyframes lmuiAstate { 0%, 100% { box-shadow: 0 0 0 0 rgba(248,113,113,0); } 50% { box-shadow: 0 0 10px 2px rgba(248,113,113,.75); } }
#lmui-astate[hidden] { display: none; }
/* 裝飾帶：用戶端 431 上緣切五塊排成一列（高度 1:1 不縮）：band-end-l 左端小龍 28px｜左段橫條＝體力｜band-d 龍頭 51px｜右段橫條＝魔力｜band-end-r 右端小龍 24px。
   兩段橫條照原寬比例（141:136）分掉剩下的寬度、只有橫向拉（手機直式約 1.04 倍、橫放 520px 欄約 1.5 倍）；上面透明、看得到後面的畫面。
   平常畫面、狩獵場／NPC 面板、放大聊天框都在，放大聊天框時就是聊天框的上緣 */
#lmui-band { position: relative; flex: none; display: flex; height: var(--lmui-band); margin-top: 12px; z-index: 2; pointer-events: none; image-rendering: pixelated; }
#lmui-band > i { flex: none; height: 46px; background: no-repeat 0 0 / 100% 100%; }
#lmui-band .bl { width: 28px; background-image: url("/data/ui/band-end-l.png"); }
#lmui-band .bd { position: relative; z-index: 4; width: 51px; height: 48px; background-image: url("/data/ui/band-d.png"); }
#lmui-band .br { width: 24px; background-image: url("/data/ui/band-end-r.png"); }
/* 體力＝左段、魔力＝右段橫條本身：底＝431 原本的暗色管子（band-hp／band-mp），i＝同一段上了色的（bar-<編號>，左段 141×20、右段 136×20，
   疊在 y19、跟底一起橫向拉，所以金色繩紋對得上）照 --r 裁：體力從左（小龍那頭）往龍頭填、魔力從右往龍頭填。
   沒了的部分：站長 2026-10-18「損失的體力魔力應該是空白的，而不是黑的」→ 底換成管子挖空的 band-*-hollow（body.lmui-hollow：hud.js 探測到圖才加），
   看得到後面的畫面；沒有那兩張圖時照舊露出 431 的暗色管子。
   用哪張（中毒、麻痺、冰凍、封印換色）由 hud.js 的 BAR_LOOK 決定、設在 --bar；數字疊在管子（y26–38）正中間（黑描邊，空白底上也看得清楚） */
.lmui-bar { --r: 1; position: relative; flex: 141 1 0; min-width: 0; height: 46px; background: url("/data/ui/band-hp.png") no-repeat 0 0 / 100% 100%; }
#lmui-mp { flex-grow: 136; background-image: url("/data/ui/band-mp.png"); }
body.lmui-hollow #lmui-hp { background-image: url("/data/ui/band-hp-hollow.png"); }
body.lmui-hollow #lmui-mp { background-image: url("/data/ui/band-mp-hollow.png"); }
/* 扣掉的那段＝空的玻璃管（站長選的半透明灰玻璃 A75：中灰、不透明度 75～90%，地面只隱約透一點）：挖空的帶子底下墊 bar-white-*（檔名沿用白色那版；
   管子形狀、帶明暗，tools/client-ui.mjs 產）；body.lmui-white：hud.js 探測到圖才加 */
body.lmui-hollow.lmui-white #lmui-hp { background: url("/data/ui/band-hp-hollow.png") no-repeat 0 0 / 100% 100%, url("/data/ui/bar-white-hp.png") no-repeat 0 19px / 100% 20px; }
body.lmui-hollow.lmui-white #lmui-mp { background: url("/data/ui/band-mp-hollow.png") no-repeat 0 0 / 100% 100%, url("/data/ui/bar-white-mp.png") no-repeat 0 19px / 100% 20px; }
.lmui-bar i { position: absolute; left: 0; right: 0; top: 19px; height: 20px; background: var(--bar, url("/data/ui/bar-468.png")) no-repeat 0 0 / 100% 100%;
  clip-path: inset(0 calc((1 - var(--r)) * 100%) 0 0); transition: clip-path .25s; }
#lmui-mp i { background-image: var(--bar, url("/data/ui/bar-460.png")); clip-path: inset(0 0 0 calc((1 - var(--r)) * 100%)); }
.lmui-bar span { position: absolute; left: 0; right: 0; top: 25px; height: 15px; z-index: 3; display: flex; align-items: center; justify-content: center; font: 700 13px/1 Consolas, "Courier New", monospace; letter-spacing: .3px;
  color: #fff; text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 0 0 #000, -1px 0 0 #000, 0 1px 0 #000, 0 -1px 0 #000, 0 0 3px #000; }   /* 八方向黑邊：淺色的空管上也看得清楚 */
/* 挨到大的一擊（≥ 最大體力 10%，同單機版門檻）：體力條那段管子紅光閃一下（同單機版 .vfx-hurt／@keyframes vfxHurt；hud.js hurtFlash）。
   單機版的條是暗底，紅光看得到；這裡的條本身就是紅的 → 剩下的那段再一起亮一下，不然紅光疊紅條看不出來 */
.lmui-bar.vfx-hurt::after { content: ""; position: absolute; left: 0; right: 0; top: 19px; height: 20px; z-index: 2; pointer-events: none; animation: lmuiHurt .5s ease-out; }
.lmui-bar.vfx-hurt i { animation: lmuiHurtFill .5s ease-out; }
@keyframes lmuiHurt { 0%, 100% { box-shadow: inset 0 0 0 0 rgba(220,38,38,0); } 42% { box-shadow: inset 0 0 32px 6px rgba(220,38,38,.55); } }
@keyframes lmuiHurtFill { 0%, 100% { filter: none; } 42% { filter: brightness(1.9) saturate(1.2); } }
/* data/ui 沒有圖（hud.js 探測不到 bar-468.png）：帶子改深色條、純色血條、原生捲軸 */
body.lmui-noui #lmui-band { background: linear-gradient(transparent 24px, #3a3238 24px, #141116 46px); }
body.lmui-noui #lmui-band > i, body.lmui-noui .lmui-bar { background: none; }
body.lmui-noui .lmui-bar::before { content: ""; position: absolute; left: 2px; right: 2px; top: 26px; height: 13px; border-radius: 7px; background: #2b272e; box-shadow: 0 0 0 1px #6b5636; }
body.lmui-noui .lmui-bar i { left: 2px; right: 2px; top: 26px; height: 13px; border-radius: 7px; background: linear-gradient(#d04848, #6a1212); }
body.lmui-noui #lmui-mp i { background: linear-gradient(#4a7ed0, #12306a); }
body.lmui-noui #lmui-sb { display: none !important; }
body.lmui-noui #lmui-lines { scrollbar-width: thin; }
body.lmui-noui #lmui-input { background: #2b272e; }
#lmui-auto { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 4; width: 44px; height: 44px; }
#lmui-auto, #lmui-autofloat { padding: 0; border-radius: 50%; border: 2px solid #f0cd7a;
  background: radial-gradient(circle at 45% 35%, #ff6b5b, #c81e1e 50%, #5a0606 85%); color: #fff3d6;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), inset 0 -4px 8px rgba(0,0,0,.45), 0 0 0 2px #4a3110, 0 0 0 3px #b8893a, 0 1px 5px #000; display: flex; align-items: center; justify-content: center; }
:is(#lmui-auto, #lmui-autofloat) svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); pointer-events: none; }
:is(#lmui-auto, #lmui-autofloat):active { filter: brightness(1.25); }
:is(#lmui-auto, #lmui-autofloat).off { border-color: #9a9184; background: radial-gradient(circle at 45% 35%, #4b4b4b, #262626 55%, #0d0d0d 90%); color: #e5e5e5; }
/* AUTO 被試煉儀式、每日簽到蓋住時浮在最上面那顆（hud.js syncAutoFloat：位置、大小照 #lmui-auto 量；玩家自己開的視窗蓋住不浮）：試煉儀式（200）上面、斷線接回（300）底下 */
#lmui-autofloat { position: fixed; z-index: 210; box-sizing: border-box; margin: 0; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none; user-select: none; font-family: inherit; }
#lmui-autofloat[hidden] { display: none; }

#lmui-bottom { position: relative; display: flex; flex-direction: column; pointer-events: auto; }   /* 聊天視窗：緊貼在龍頭帶下面（同用戶端 431） */
#lmui-hot { display: grid; grid-template-columns: repeat(6, 1fr) 24px; gap: 3px; flex: none; padding: 0 4px; margin: 2px 0; pointer-events: auto; }
#lmui-hot[data-mode="0"] .lmui-slot.r2, #lmui-hot[data-mode="1"] .lmui-slot.r1 { display: none; }
#lmui-hot[data-mode="2"] .lmui-slot { max-height: 40px; }
#lmui-hot[data-mode="2"] #lmui-hotmode { grid-row: 1 / span 2; max-height: none; }
#lmui-hotmode { grid-column: 7; grid-row: 1; padding: 0; border: 1px solid #5d4c33; border-radius: 4px; background: linear-gradient(#2a2119, #0f0c09); color: #f0e2bf; font-size: 13px; line-height: 1.1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; max-height: 54px; }
#lmui-hotmode b { font-size: 15px; }
.lmui-slot { position: relative; aspect-ratio: 1; max-height: 44px; border: 1px solid #5d4c33; background: linear-gradient(#1d1813, #0a0806); box-shadow: inset 0 0 6px #000; padding: 0;
  display: flex; align-items: center; justify-content: center; }
.lmui-slot .fk { position: absolute; left: 1px; top: 1px; padding: 0 3px; font-size: 11px; line-height: 11px; color: #f0e2bf; background: rgba(0,0,0,.7); border: 1px solid #6b5636; border-radius: 6px; z-index: 2; }
.lmui-slot img { width: 78%; height: 78%; object-fit: contain; filter: drop-shadow(0 1px 1px #000); pointer-events: none; }
/* 站長 2026-10-31「藥水怎又大小瓶」：快捷格同選單那套（第 2 輪）——單機版的圖（64 畫布、圖只佔一半）放大、用戶端的小圖縮小，兩種實際的瓶子一樣大 */
.lmui-slot img[src^="/assets/icons/"] { flex: none; width: 130%; height: 130%; }
.lmui-slot img[src^="/icon/"] { width: 65%; height: 65%; image-rendering: pixelated; }
.lmui-slot .nm { font-size: 10px; line-height: 1.1; color: #e9dcc0; padding: 0 2px; overflow: hidden; max-height: 3.3em; pointer-events: none; }
.lmui-slot .cnt { position: absolute; right: 2px; bottom: 1px; font: 800 11px/1 Arial, sans-serif; color: #d5a94f; text-shadow: 1px 1px 1px #000; pointer-events: none; }
.lmui-slot.none img, .lmui-slot.none .nm { filter: grayscale(1) brightness(.45); }
.lmui-slot.sel { border-color: #f2c14e; box-shadow: inset 0 0 6px #000, 0 0 0 2px #f2c14e; z-index: 1; }   /* 電腦版滾輪選中的快捷格（中鍵點目標用這格） */
/* 聊天視窗：一直在（快捷列下面），長成 3.5 用戶端主介面（431）中間那塊：石紋底（ch-stone 重複貼，不縮放）、兩側金屬框邊、用戶端零件的捲軸、
   最下面輸入列（431 最下面那條）。分頁一排；訊息區高度三段（小／中／大，hud.js layoutChat 照螢幕高度算行數設 #lmui-linesbox 的高） */
#lmui-chat { flex: none; position: relative; isolation: isolate; display: flex; flex-direction: column; padding-top: 3px; overflow: hidden; }
#lmui-chat::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("/data/ui/ch-stone.png") 0 0 / 300px auto repeat, #3a363c;
  box-shadow: inset 3px 0 0 #141116, inset 5px 0 0 #6d6672, inset 7px 0 0 #2b272e, inset -3px 0 0 #141116, inset -5px 0 0 #6d6672, inset -7px 0 0 #2b272e; }
#lmui-tabs { display: flex; flex: none; padding: 0 9px 2px; }
#lmui-tabs .row { flex: 1; display: flex; gap: 3px; align-items: stretch; min-width: 0; }
#lmui-tabs button { flex: 1 1 0; min-width: 0; padding: 2px 0; font-size: 13px; font-family: inherit; white-space: nowrap; color: #d6cfc4; text-shadow: 0 1px 1px #000;
  background: linear-gradient(#5d5762, #3b363f 55%, #29252c); border: 1px solid #141116; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.12); }
#lmui-tabs button.on { color: #f3d48a; background: linear-gradient(#6e6372, #463d4a 55%, #322b35); border-color: #8a6a2e; box-shadow: inset 0 1px 0 rgba(255,230,170,.2), 0 0 4px rgba(243,212,138,.3); }
#lmui-tabs .more { flex: 0 0 28px; color: #f3d48a; }
#lmui-linesbox { display: flex; flex: none; height: 64px; padding: 0 8px 2px; position: relative; }
#lmui-lines { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; padding: 2px 6px;
  font-size: 13px; line-height: 1.4; scrollbar-width: none; }
#lmui-lines::-webkit-scrollbar { display: none; }
#lmui-lines > div { margin: 0; padding: 0; white-space: normal; overflow-wrap: anywhere; text-shadow: 0 1px 1px #000, 0 0 2px #000; }
/* 捲軸：上鈕（sb-up）、桿（ch-track 直向重複）、圓鈕（sb-knob，拖曳中換 sb-knob-on）、下鈕（sb-down） */
#lmui-sb { flex: none; width: 16px; display: flex; flex-direction: column; align-items: center; padding: 2px 0; }
#lmui-sb button { flex: none; width: 16px; height: 16px; padding: 0; border: 0; background: url("/data/ui/sb-up.png") center / 100% 100% no-repeat; image-rendering: pixelated; cursor: pointer; }
#lmui-sb button.dn { background-image: url("/data/ui/sb-down.png"); }
#lmui-sb button.up:active { background-image: url("/data/ui/sb-up-on.png"); } #lmui-sb button.dn:active { background-image: url("/data/ui/sb-down-on.png"); }
#lmui-sb .trk { flex: 1 1 auto; position: relative; width: 14px; margin: 2px 0; background: url("/data/ui/ch-track.png") center top / 14px auto repeat-y; image-rendering: pixelated; touch-action: none; cursor: pointer; }
#lmui-sb .trk i { position: absolute; left: 0; top: 0; width: 14px; height: 14px; background: url("/data/ui/sb-knob.png") center / 100% 100% no-repeat; image-rendering: pixelated; touch-action: none; }
#lmui-sb .trk i.on { background-image: url("/data/ui/sb-knob-on.png"); }
#lmui-lines .c-say { color: #f1f1f1; } #lmui-lines .c-shout { color: #ffb36b; } #lmui-lines .c-world { color: #ffe27a; }
#lmui-lines .c-party { color: #86efac; } #lmui-lines .c-clan { color: #93c5fd; } #lmui-lines .c-whisper { color: #ff9ad5; }
#lmui-lines .c-sys { color: #8fd3ff; } #lmui-lines .c-npc { color: #e8d7b0; } #lmui-lines .c-drop { color: #f5d77a; }
/* 輸入列：431 最下面那條（data/ui/ch-input.png：上面一條深色刻線＋石紋），九宮格重複貼、不縮放 */
#lmui-input { display: flex; gap: 4px; align-items: center; margin: 0 3px 3px; padding: 1px 2px 0; flex: none; border-style: solid; border-width: 3px 4px 2px; border-color: #2b272e; border-image: url("/data/ui/ch-input.png") 3 4 2 4 fill round; }
#lmui-ch { flex: none; padding: 2px 1px; border: 1px solid #141116; border-radius: 3px; background: linear-gradient(#5d5762, #3b363f 55%, #29252c); color: #e6dfd4; font-size: 16px; font-family: inherit; outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12); }
#lmui-say { flex: 1; min-width: 0; padding: 4px 8px; border: 1px solid #141116; border-radius: 2px; background: rgba(10,8,12,.55); color: #f1ece4; font-size: 17px; line-height: 1.1; font-family: inherit; outline: none;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.8); }   /* 16px 以上：iOS 聚焦才不會整頁放大 */
#lmui-say::placeholder { color: #9a9198; font-size: 14px; }
#lmui-send { flex: none; padding: 4px 10px; border: 1px solid #141116; border-radius: 3px; background: linear-gradient(#6e6372, #463d4a 55%, #322b35); color: #f3d48a; font-size: 14px; font-family: inherit;
  text-shadow: 0 1px 1px #000; box-shadow: inset 0 1px 0 rgba(255,230,170,.2); }
#lmui-send:active { filter: brightness(1.25); }
/* 狩獵場彈出視窗：傳送點（同單機版 #lmui-maps）、地監一座座／各樓層、此地圖 NPC（同單機版 #afk-npclist）同一種卡片（站長：要有一致性）——
   兩欄，欄寬、間距跟上面兩個分頁鈕一樣（這個視窗的分頁鈕等寬、間距 4px，內容區左右留白＝分頁列的 2px），所以卡片左右邊緣對齊分頁鈕；
   卡片固定高度，名字＋第二行小字靠左；目前所在的整張亮起（同分頁鈕選中的底色） */
#lmui-win[data-w="battle"] .lm-tabs { gap: 4px; }
#lmui-win[data-w="battle"] .lm-tabs button { flex: 1 1 0; }
#lmui-win[data-w="battle"] #lmui-wbody { padding: 6px 2px; }
.lm-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; align-content: start; }
.lm-card { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 2px; height: 56px; min-width: 0; padding: 0 8px; text-align: left; font-family: inherit; cursor: pointer;
  background: linear-gradient(#2c2318, #17120c); border: 1px solid #5a4630; border-radius: 4px; box-shadow: inset 0 1px 0 rgba(255,220,150,.06), 0 1px 3px rgba(0,0,0,.6); text-shadow: 0 1px 1px #000; }
.lm-card b, .lm-card small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-card b { font-size: 16px; font-weight: 700; color: #f0e2bf; }
.lm-card small { font-size: 13px; color: #c9b88f; }
/* 傳送點卡片：第一行 名字＋價錢（價錢靠右、不被擠掉），第二行建議等級可以折兩行（站長 2026-10-19：「+0 裝…」被切掉看不到） */
.lm-card.lm-tp { height: auto; min-height: 56px; padding: 5px 8px; }
.lm-card .lm-hd { display: flex; align-items: baseline; gap: 6px; width: 100%; min-width: 0; }
.lm-card .lm-hd b { flex: 1 1 auto; min-width: 0; white-space: normal; line-height: 1.2; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }   /* 「正義神殿（妖精森林）」這種長名字折兩行，不被價錢擠成「…」 */
.lm-card .lm-hd em { flex: none; font-style: normal; font-size: 13px; color: #e8cf8f; }
.lm-card.lm-tp small { white-space: normal; line-height: 1.25; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lm-card.cur { background: linear-gradient(#7a5f35, #3f2f18); border-color: #e8cf8f; }
.lm-card.cur b { color: #fff6dc; } .lm-card.cur small { color: #f3dfa6; }
.lm-card:active { filter: brightness(1.25); }
/* 點進某座地監之後最上面：「← 地監」＋地監名，跟分頁鈕同高、同框（沒選中的分頁鈕那種），也是兩欄對齊 */
.lm-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; margin-bottom: 4px; }
.lm-bar > * { min-width: 0; padding: 3px 4px; font-size: 16px; font-family: inherit; line-height: 21px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: #c9b88f; background: linear-gradient(#3b3022, #1c160e); border: 1px solid #4d3e29; border-radius: 2px; }
.lm-bar b { font-weight: 700; color: #f0e2bf; }
.lm-back { cursor: pointer; }
.lm-back:active { filter: brightness(1.25); }
/* 傳送點最上面的分類鈕「村莊｜外圍｜地監」：三顆等寬、同分頁鈕的樣子，選中的亮起（同 .lm-tabs button.on） */
.lm-kinds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lm-kinds button { cursor: pointer; }
.lm-kinds button.on { color: #fff6dc; background: linear-gradient(#7a5f35, #3f2f18); border-color: #b8955a; }

/* 橫的畫面（寬 ≥ 高，手機橫放、電腦）用電腦版面：public/pcui.css（js/pcui.js 加 body.pcui），這個檔是直式 */

/* ── 彈出視窗（能力／魔法／背包／設定／狩獵場、頭像的裝備）：浮在遊戲畫面上，畫面頂端到龍頭帶上緣（--lmui-pop-b），
   龍頭帶、聊天視窗照常看得到；外框見檔尾「3.5 視窗外框」，內容不夠高就是石紋底、太長在視窗裡捲 ── */
#lmui-win { position: fixed; z-index: 60; top: var(--lmui-ptop); bottom: var(--lmui-pop-b); left: 50%; width: min(calc(var(--lmui-col) + 52px), calc(calc(var(--vw1, 1vw) * 100) - 4px)); transform: translateX(-50%);
  display: flex; flex-direction: column; color: #e9dcc0; font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }
#lmui-win.hidden { display: none; }
#lmui-whead { flex: none; height: 28px; display: flex; align-items: center; justify-content: center; }
#lmui-whead b { font-size: 17px; font-weight: 700; letter-spacing: .3em; }
.lm-tabs { display: flex; gap: 2px; padding: 3px 2px; flex: none; background: linear-gradient(#1a1612, #0b0907); border-bottom: 1px solid #4a3f30; }
.lm-tabs button { flex: 1 1 auto; min-width: 0; padding: 3px 4px; font-size: 16px; white-space: nowrap; font-family: inherit; color: #c9b88f; background: linear-gradient(#3b3022, #1c160e);
  border: 1px solid #4d3e29; border-radius: 2px; cursor: pointer; }
.lm-tabs button.on { color: #fff6dc; background: linear-gradient(#7a5f35, #3f2f18); border-color: #b8955a; }
#lmui-wbody { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 6px; }
body.lmui-win-open #lmui-vit { visibility: hidden; }
.lmui-soon { padding: 40px 10px; text-align: center; color: #8a8070; font-size: 15px; }

/* 能力：六圍兩欄方塊＋明細列（樣式同單機版能力頁） */
.ab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ab-grid > div { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border: 1px solid #4a3c29; border-radius: 4px; background: #18120d; }
.ab-grid em { font-style: normal; font-size: 15px; }
.ab-grid b { font-size: 17px; }
.ab-grid .ab-hid { margin-left: 2px; font-size: 12px; font-weight: 400; opacity: .85; white-space: nowrap; }   /* 魅力後面的（隱藏＋6） */
/* 六圍各一色（同單機版能力頁）：力量紅、智力藍、敏捷綠、精神紫、體質橘、魅力粉 */
.ab-str em, .ab-str b { color: #f08a7a; } .ab-int em, .ab-int b { color: #8fb4ff; } .ab-dex em, .ab-dex b { color: #7fd6a0; }
.ab-wis em, .ab-wis b { color: #b9a0ff; } .ab-con em, .ab-con b { color: #f2a65a; } .ab-cha em, .ab-cha b { color: #f49ac1; }
.ab-list { margin-top: 8px; border: 1px solid #4a3c29; border-radius: 4px; background: rgba(15,11,8,.75); }
.ab-list > div { display: flex; justify-content: space-between; padding: 6px 10px; border-bottom: 1px solid rgba(74,60,41,.6); font-size: 15px; }
.ab-list > div:last-child { border-bottom: 0; }
.ab-list span { color: #c9bfae; }
.ab-list b { color: #fff; font-weight: 600; }
/* 負重門檻（hud.js weightLook）：黃＝體力／魔力不會自然恢復，紅＝不能攻擊施法、拿不動；能力頁的負重那列＋底下一句，裝備頁的負重 % */
.ab-list > .wt-warn b, .ld2-xp .wt-warn, .wt-note.wt-warn { color: #facc15; }
.ab-list > .wt-over b, .ld2-xp .wt-over, .wt-note.wt-over { color: #f87171; }
.ab-list > .wt-warn span, .ab-list > .wt-over span { color: inherit; }
/* 能力頁「負重程度」「飽食程度」兩條量表（hud.js renderStats；量表本身同背包負重條 .bw-bar） */
.ab-gauges { margin-top: 8px; padding: 8px 10px; border: 1px solid #4a3c29; border-radius: 4px; background: rgba(15,11,8,.75); display: flex; flex-direction: column; gap: 8px; }
.ab-gauges:empty { display: none; }
.ag-txt { display: flex; justify-content: space-between; margin-bottom: 4px; font-size: 15px; }
.ag-txt span { color: #c9bfae; } .ag-txt b { color: #fff; font-weight: 600; }
.ab-gauge.wt-warn .ag-txt b { color: #facc15; } .ab-gauge.wt-warn .bw-bar i { background: linear-gradient(#facc15, #b8860b); }
.ab-gauge.wt-over .ag-txt b { color: #f87171; } .ab-gauge.wt-over .bw-bar i { background: linear-gradient(#f87171, #b91c1c); }
.wt-note { margin-top: 4px; padding: 0 10px; text-align: right; font-size: 14px; font-weight: 700; text-shadow: 0 1px 2px #000; }
#lmui-doll .wt-note { text-align: center; font-size: 13px; margin-top: 0; }

/* 背包：5 欄方格（樣式同單機版背包） */
.bag-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; align-content: start; }
.bag-cell { position: relative; aspect-ratio: 1; border: 1px solid #6b5636; border-radius: 4px; background: linear-gradient(#2a241c, #14110d); box-shadow: inset 0 0 0 1px rgba(0,0,0,.8), 0 1px 2px #000;
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bag-cell.empty { border-color: #2e271e; background: #0d0b09; box-shadow: inset 0 0 6px #000; }
.bag-cell img { width: 66%; height: 66%; object-fit: contain; filter: drop-shadow(0 1px 1px #000); }
.bag-cell .nm { position: absolute; left: 2px; right: 2px; top: 50%; transform: translateY(-50%); font-size: 11px; line-height: 1.15; text-align: center; color: #e9dcc0; overflow: hidden; max-height: 3.5em; }
.bag-cell .cnt { position: absolute; right: 3px; bottom: 2px; font: 800 13px/1 Arial, sans-serif; color: #d5a94f; text-shadow: 1px 1px 1px #000; }
.bag-cell .en { position: absolute; left: 3px; top: 2px; font: 800 15px/1 Arial, sans-serif; color: #39a9ff; text-shadow: 0 0 3px #0b4f99, 1px 1px 1px #000; }
/* 法書（魔法書、精靈水晶、黑暗精靈水晶、技術書）格子上緣寫括號裡的魔法名（hud.js bookTag，站長 2026-10-21）：深底一條；
   完整名稱（站長「一行短名，需顯示完整名稱」「字體大小需要一致」「可以放第二行」）：每格字一樣大＝照格子寬放得下 5 個字（cqw 不支援的瀏覽器照 font 的 9px），最大 11px；
   細細一條、圖示照一般大小只往下挪一點，數量在右下不擋 */
.bag-cell { container-type: inline-size; }
.bag-cell .bk { position: absolute; left: 0; right: 0; top: 0; z-index: 1; padding: 1px 1px 0; border-bottom: 1px solid rgba(201,164,99,.45); border-radius: 3px 3px 0 0;
  background: rgba(10,8,5,.72); color: #f6e7bd; font: 700 9px/1.2 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;
  font-size: min(11px, calc((100cqw - 4px) / 5)); text-align: center; white-space: nowrap; overflow: hidden; text-shadow: 0 1px 1px #000; pointer-events: none; }
.bag-cell.has-bk img { margin-top: 16%; width: 60%; height: 60%; }
/* 6 個字以上平均分兩行（站長「可以放第二行」）：字一樣大；圖示再往下挪、小一點，不被字蓋到 */
.bag-cell.has-bk2 img { margin-top: 32%; width: 50%; height: 50%; }
/* 穿在身上的道具（強化視窗的道具格；背包格子不列穿著的）：格子下緣一條「使用中」金字深底；強化數字在左上不擋 */
.eq-tag { position: absolute; left: 0; right: 0; bottom: 0; padding: 1px 0 2px; border-top: 1px solid rgba(201,164,99,.55); border-radius: 0 0 3px 3px; background: rgba(12,9,5,.85);
  color: #f3d48a; font: 700 11px/1.15 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; letter-spacing: 1px; text-align: center; text-shadow: 0 1px 1px #000; pointer-events: none; }
.bag-cell:not(.empty) { cursor: pointer; }
.bag-cell, .ld-cell { touch-action: manipulation; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }   /* 點兩下＝用道具：手機不要拿去放大畫面 */
.bag-cell.pick { border-color: #7fd6a0; box-shadow: 0 0 8px rgba(127,214,160,.7); }
.bag-pick { margin-bottom: 6px; padding: 6px 8px; border: 1px solid #4f7a5c; border-radius: 4px; background: rgba(20,40,26,.85); color: #c8f0d2; font-size: 14px; text-align: center; }
/* 背包上方的負重條（hud.js bagWeight）：數字＋一條；黃＝不會自然恢復（≥120/242）、紅＝不能攻擊（≥197/242），條上那道線＝197 的位置 */
.bag-wt { margin-bottom: 8px; }
.bw-txt { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px; margin-bottom: 4px; font-size: 14px; color: #e9dcc0; text-shadow: 0 1px 2px #000; }
.bw-txt b { font-weight: 700; }
.bw-txt em { font-style: normal; font-weight: 700; font-size: 13px; }
.bw-bar { position: relative; height: 10px; border: 1px solid #4a3c29; border-radius: 5px; background: #0d0b09; box-shadow: inset 0 1px 3px #000; overflow: hidden; }
.bw-bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px 0 0 5px; background: linear-gradient(#c9a463, #8a6a33); }
.bw-mark { position: absolute; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: rgba(248,113,113,.85); }
.bag-wt.wt-warn .bw-txt b, .bag-wt.wt-warn .bw-txt em { color: #facc15; }
.bag-wt.wt-warn .bw-bar i { background: linear-gradient(#facc15, #b8860b); }
.bag-wt.wt-over .bw-txt b, .bag-wt.wt-over .bw-txt em { color: #f87171; }
.bag-wt.wt-over .bw-bar i { background: linear-gradient(#f87171, #b91c1c); }
/* 防禦（站長 2026-10-18「背包新增防禦力顯示」）：負重那行最右邊；放在上面兩條後面，太重時的黃／紅字不會套到它 */
.bag-wt .bw-txt .bw-ac { margin-left: auto; color: #e9dcc0; }
.bag-wt .bw-txt .bw-ac b { color: #fff; }
/* 「背包整理」鈕（站長 2026-10-18）：負重和防禦中間的空白處；兩邊 margin-left:auto 平分空白，鈕落在中間。手機直式一行放得下，字不換行 */
.bag-wt .bw-txt b, .bag-wt .bw-txt .bw-ac { white-space: nowrap; }
.bag-wt .bw-txt .bw-sort { margin-left: auto; padding: 0 9px; line-height: 20px; font-size: 12px; font-weight: 700; color: #e9dcc0; text-shadow: none; white-space: nowrap; background: rgba(40,32,22,.92); border: 1px solid #6b5636; border-radius: 4px; cursor: pointer; align-self: center; }
.bag-wt .bw-txt .bw-sort:active { background: rgba(86,66,38,.95); }
.bag-wt .bw-txt { gap: 2px 6px; }
@media (max-width: 380px) { .bag-wt .bw-txt { font-size: 13px; gap: 2px 4px; } .bag-wt .bw-txt .bw-sort { padding: 0 6px; font-size: 11px; } }
@media (max-width: 340px) { .bag-wt .bw-txt { font-size: 12px; gap: 2px 3px; } .bag-wt .bw-txt .bw-sort { padding: 0 4px; font-size: 10px; } }
/* 背包最下面一列（hud.js bagFoot，站長 2026-10-19）：左「魔法娃娃」「自動賣出」分頁鈕、右「背包整理」；貼在捲動區最底下，捲到哪都看得到 */
.bag-foot { position: sticky; bottom: -6px; z-index: 2; display: flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 0 6px;
  background: linear-gradient(rgba(14,11,8,0), rgba(14,11,8,.96) 30%); }
.bag-foot .bf-l { display: flex; gap: 6px; min-width: 0; }
.bag-foot button { padding: 4px 12px; font-weight: 700; font-size: 14px; line-height: 1.3; font-family: inherit; color: #e9dcc0; text-shadow: 0 1px 1px #000; white-space: nowrap; cursor: pointer;
  background: linear-gradient(#3b3022, #1c160e); border: 1px solid #6b5636; border-radius: 4px; }
.bag-foot button.on { color: #fff6dc; background: linear-gradient(#7a5f35, #3f2f18); border-color: #e8cf8f; }
.bag-foot button:active { filter: brightness(1.25); }
.bag-foot .bw-sort { margin-left: auto; }
@media (max-width: 360px) { .bag-foot button { padding: 4px 8px; font-size: 13px; } }
.lmui-tabicon { margin-left: 4px; font-size: 13px; opacity: .85; }

/* 裝備（紙娃娃）：樣式同單機版 #lmui-doll／.ld2-* */
#lmui-win.w-doll #lmui-wbody { display: flex; flex-direction: column; }
#lmui-doll { --ld-c: clamp(32px, min(calc((min(calc(var(--vw1, 1vw) * 100), 520px) - 190px) / 4), calc((calc(var(--dvh1, 1dvh) * 100) - 470px) / 8)), 52px); flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; padding: 8px;
  background: radial-gradient(ellipse at 50% 35%, #2a2520, #0f0c09 75%); border: 1px solid #6b5636; border-radius: 6px; box-shadow: inset 0 0 18px #000; color: #e9dcc0; }
.ld2-title { display: flex; align-items: baseline; justify-content: center; gap: 10px; font-size: 20px; font-weight: 700; color: #f1e3c4; text-shadow: 0 1px 2px #000; letter-spacing: 1px; }
.ld2-title .lv, .ld2-title .cl { font-size: 17px; color: #e8cf8f; }
.ld2-xp { margin-top: -4px; text-align: center; font-size: 13px; color: #c9b88f; }
.ld2-body { position: relative; flex: 1 1 auto; display: flex; gap: 6px; align-items: stretch; }
.ld2-fig { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; z-index: 0;
  image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated; }   /* 畫布跟螢幕差一點點像素時也不要被抹糊 */
/* 左右各一排 8 格（頭到腳），中間整塊給人物 */
.ld2-col { position: relative; z-index: 1; flex: 0 0 auto; display: grid; grid-template-columns: var(--ld-c); grid-template-rows: repeat(8, var(--ld-c)); gap: 4px; align-content: center; }
.ld2-mid { position: relative; z-index: 1; flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; }
.ld2-bars { display: flex; gap: 6px; }
.ld2-bars .ld2-bar { flex: 1 1 0; min-width: 0; }
.ld2-bar { position: relative; height: 18px; border: 1px solid #6b5636; border-radius: 3px; background: #120a08; overflow: hidden; }
.ld2-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; }
.ld2-bar.hp i { background: linear-gradient(#ff7a6a, #c81e1e 40%, #6a0b0b); }
.ld2-bar.mp i { background: linear-gradient(#7aa8ff, #2453c8 40%, #0c2468); }
.ld2-bar span { position: relative; z-index: 1; display: block; text-align: center; font: 700 12px/18px Consolas, "Courier New", monospace; color: #fff; white-space: nowrap;
  text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000; }
.ld2-stats { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #4a3c29; border-radius: 4px; background: rgba(0,0,0,.35); }
.ld2-stats > div { display: flex; align-items: center; justify-content: space-between; padding: 5px 9px; border-bottom: 1px solid rgba(110,90,60,.3); }
.ld2-stats > div:nth-child(3n+2) { border-left: 1px solid rgba(110,90,60,.3); border-right: 1px solid rgba(110,90,60,.3); }
.ld2-stats > div:nth-last-child(-n+3) { border-bottom: 0; }
.ld2-stats em { font-style: normal; font-size: 14px; color: #c9b88f; }
.ld2-stats b { font-size: 16px; color: #fff; }
.ld-cell { position: relative; aspect-ratio: 1; border: 1px solid #4a3c29; border-radius: 3px; background: radial-gradient(circle at 50% 40%, #2a241c, #0e0b08 75%);
  box-shadow: inset 0 0 0 1px #000, inset 0 0 10px rgba(0,0,0,.9); display: flex; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; }
.ld-cell.is-filled { border-color: #c9a463; box-shadow: inset 0 0 0 1px #000, inset 0 0 10px rgba(0,0,0,.8), 0 0 6px rgba(230,180,90,.45); }
.ld-cell img { width: 78%; height: 78%; object-fit: contain; filter: drop-shadow(0 1px 2px #000); }
.ld-cell .nm { font-size: 10px; line-height: 1.1; text-align: center; color: #e9dcc0; padding: 0 2px; }
.ld-cell.is-empty span { font-size: 12px; color: rgba(230,210,170,.45); white-space: nowrap; }
.ld-cell.is-empty:active { border-color: #8a7350; }
/* 點空的裝備格：能穿在這一格的清單 */
#lmui-slotpick .box { height: auto; max-height: 100%; }
#lmui-slotpick .opt { width: 100%; min-height: 44px; cursor: pointer; font-family: inherit; }
#lmui-slotpick .opt img { width: 32px; height: 32px; }
#lmui-slotpick .sp-none { padding: 18px 8px; text-align: center; color: #c9b88f; font-size: 15px; }
/* 第 448 項：武器格清單裡照職業推薦的象牙塔武器（hud.js slotPick REC_WPN）：綠框＋右邊「推薦」小牌（同設定自動變身的推薦色） */
#lmui-slotpick .opt.sp-rec { border-color: #8fd47f; }
#lmui-slotpick .opt .sp-rec-t { margin-left: auto; flex: none; font-style: normal; font-size: 12px; line-height: 16px; padding: 0 5px; border: 1px solid rgba(143,212,127,.75); border-radius: 3px; color: #d4f7cb; background: rgba(90,170,70,.25); white-space: nowrap; }
.ld-en { position: absolute; left: 2px; top: 1px; font: 800 12px/1 Arial, sans-serif; color: #39a9ff; text-shadow: 0 0 3px #0b4f99, 1px 1px 1px #000; }
.ld-cnt { position: absolute; right: 2px; bottom: 1px; font: 800 11px/1 Arial, sans-serif; color: #d5a94f; text-shadow: 1px 1px 1px #000; }
/* 祝福的名字顏色（照單機版 css/style.css .c-blessed；詛咒的 .c-cursed 2026-10-19 拿掉）；圖示光效在檔尾「道具圖示光效」 */
/*   商店名字（#npc-window .npw-nm）、建立物品數量視窗標題（.lmui-ov .hd）自己有顏色 → 同權重以上才蓋得過 */
.c-blessed, #npc-window .npw-nm.c-blessed, .lmui-ov .hd.c-blessed { color: #facc15; }

/* 魔法書（樣式同單機版 .lsk2） */
.lsk2 { display: flex; flex-direction: column; gap: 6px; height: 100%; box-sizing: border-box; color: #d8cfc2; }
.lsk2-tabs { display: flex; gap: 2px; flex: none; padding: 3px 2px; margin: -6px -6px 0; background: linear-gradient(#1a1612, #0b0907); border-bottom: 1px solid #4a3f30; }
.lsk2-tabs button { flex: 1 1 auto; min-width: 0; padding: 3px 4px; font-size: 16px; white-space: nowrap; font-family: inherit; color: #c9b88f; background: linear-gradient(#3b3022, #1c160e);
  border: 1px solid #4d3e29; border-radius: 2px; cursor: pointer; }
.lsk2-tabs button.on { color: #fff6dc; background: linear-gradient(#7a5f35, #3f2f18); border-color: #b8955a; }
.lsk2-side .gap { flex: 0 0 8px; }
.lsk-cell { cursor: pointer; }
.lsk-cell.is-empty { cursor: default; }
.lsk-cell .nm { font-size: 11px; line-height: 1.15; text-align: center; padding: 0 2px; color: #e9dcc0; }
.lsk-cell.sel { border-color: #f0cd7a; box-shadow: 0 0 8px rgba(240,205,122,.7); }
.lsk2-info { flex: none; }
.lsk2-info:empty { display: none; }
/* 魔法說明框（版面同單機版 buildSkillTipHTML：名字、種類・階、需求／消耗／持續／冷卻、對象、效果） */
.sk-tip { padding: 6px 8px; border: 1px solid #4d443b; border-radius: 4px; background: #0b0908; font-size: 13px; line-height: 1.45; color: #d6cdbd; }
.sk-tip b { font-size: 16px; margin-right: 6px; } .sk-tip em { font-style: normal; font-size: 12px; color: #9c8f78; }
.sk-tip .tc-atk { color: #67e8f9; } .sk-tip .tc-heal { color: #86efac; } .sk-tip .tc-buff { color: #d8b4fe; }
.sk-tip .eff { color: #fda4af; }
.lsk2-body { flex: 1 1 auto; min-height: 0; display: flex; gap: 6px; }
.lsk2-side { flex: 0 0 38px; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; scrollbar-width: none; }
.lsk2-side::-webkit-scrollbar { display: none; }   /* 電腦版原生白色捲動條會蓋住階數鈕（站長 2026-10-22 截圖）；滾輪、手指照常捲 */
.lsk2-side button { flex: 0 0 40px; border: 1px solid #4d443b; border-radius: 4px; background: linear-gradient(#3d3732, #211e1b); color: #a59a8c; font: 700 19px/1 Georgia, serif; text-shadow: 0 1px 2px #000; }
.lsk2-side button.on { border-color: #b8955a; color: #fff6dc; background: linear-gradient(#5a5047, #2f2a25); }
.lsk2-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; border: 1px solid #3a332d; border-radius: 3px; background: #0e0c0a; padding: 3px; }
.lsk2-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.lsk-cell { position: relative; aspect-ratio: 1; border: 1px solid #3d3630; border-radius: 2px; background: #15120f; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.lsk-cell img { width: 100%; height: 100%; object-fit: contain; }
.lsk-cell.is-empty { background: #0b0908; }
.lsk-cell.is-unlearned img { filter: grayscale(1) brightness(.35); }
.lsk-cell.is-unlearned::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.45); pointer-events: none; }
/* 施法冷卻（hud.js setCastLock 設 body 的 --castcd＝還剩幾成）：快捷列的魔法格、魔法視窗學會的格子蓋一層灰，從上往下退；快捷鍵字（.fk）在遮罩上面 */
.lmui-slot.sk::after, .lsk-cell:not(.is-unlearned):not(.is-empty)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: calc(var(--castcd, 0) * 100%);
  background: rgba(8,6,4,.68); pointer-events: none; z-index: 1; }
.lsk2-foot { flex: none; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 4px 2px 0; font-size: 16px; color: #c9bfb0; }
.lsk2-foot b { min-width: 52px; padding: 2px 6px; border: 1px solid #4d443b; background: #0b0908; color: #fff; font-weight: 400; text-align: right; }
/* 花金幣學魔法（hud.js learnAsk，伺服器第 68 項）：能學的格子跟其他沒學的一樣暗，上面標價錢；等級沒到的標 LvN；說明框下面一顆學習鈕；確認框左邊放魔法圖示
   （站長 2026-10-21：原本能學的格子金框、比較亮、價錢在下面 → 改成一樣暗、價錢放上面） */
.lsk-cell .lk-tag { position: absolute; left: 0; right: 0; top: 0; z-index: 2; padding: 2px 0 1px; font: 700 11px/1.1 Arial, sans-serif; text-align: center; color: #cbbfa8;
  background: rgba(0,0,0,.72); pointer-events: none; }
.lsk-cell .lk-tag.lk-buy { color: #fde047; }
.sk-tip .sk-how { color: #e8c46a; }
.sk-learn { display: flex; justify-content: flex-end; margin-top: 6px; }
.sk-learn button { padding: 7px 14px; border: 1px solid #b8955a; border-radius: 6px; background: linear-gradient(#5a4526, #2c2010); color: #fde68a; font-weight: 700; font-size: 14px;
  cursor: pointer; font-family: inherit; }
.cl-ov .lk-ask { display: flex; align-items: center; justify-content: center; gap: 12px; text-align: left; }
.cl-ov .lk-ask img { flex: none; width: 44px; height: 44px; object-fit: contain; }

/* ── 底部工具列（狩獵場／聊天／能力／魔法／背包／設定）＋經驗條 ── */
#m-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; background: linear-gradient(#2b2b2b, #141414 45%, #0a0a0a); border-top: 1px solid #5a5a5a;
  box-shadow: 0 -2px 6px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.08); padding-bottom: env(safe-area-inset-bottom, 0px);
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }
#lmui-nav { display: flex; flex-wrap: wrap; align-items: stretch; gap: 2px; padding: 2px 2px 6px; max-width: var(--lmui-col); margin: 0 auto; }
.lmui-tool { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 4px 0; background: transparent; border: 1px solid transparent; border-radius: 3px;
  cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; font-family: inherit; }
.lmui-tool span { font-size: 16px; font-weight: 600; color: #d8cbb0; white-space: nowrap; letter-spacing: .5px; text-shadow: 0 1px 1px #000; }
.lmui-tool:active { background: rgba(255,255,255,.08); }
.lmui-tool.on { background: linear-gradient(#e7c56f, #a8822f); border-color: #f0d58c; box-shadow: inset 0 1px 0 rgba(255,250,220,.5), 0 0 6px rgba(231,197,111,.35); }
.lmui-tool.on span { color: #1d1407; font-weight: 700; text-shadow: none; }
#lmui-exp { position: relative; flex: 0 0 100%; order: 9; height: 17px; margin: 1px 0 0; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
#lmui-exp::before { content: ""; position: absolute; inset: 0; background: linear-gradient(#f3d58a, #a77a2c 45%, #6b4a17 55%, #d6ac57);
  clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 10px 100%, 0 50%); }
#lmui-exp::after { content: ""; position: absolute; inset: 2px 3px; background: linear-gradient(#120d07, #24190d);
  clip-path: polygon(8px 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 8px 100%, 0 50%); }
#lmui-exp i { position: absolute; left: 11px; top: 3px; bottom: 3px; width: 0; max-width: calc(100% - 22px); z-index: 1; background: linear-gradient(#d9b45a, #a37624 50%, #6e4a12); }
#lmui-exp span { position: relative; z-index: 2; display: flex; align-items: baseline; justify-content: center; gap: 8px; font-weight: 700; font-size: 12px; line-height: 1; color: #fff; letter-spacing: .5px;
  text-shadow: 1px 0 0 #000, -1px 0 0 #000, 0 1px 0 #000, 0 -1px 0 #000, 1px 1px 0 #000, -1px -1px 0 #000; }
#lmui-exp em { font-style: normal; }

/* 設定（樣式同單機版設定頁上半） */
.st-box { padding: 10px 12px; border: 1px solid #4a3c29; border-radius: 6px; background: rgba(15,11,8,.75); display: flex; flex-direction: column; gap: 10px; }
.st-row { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
/* 系統頁第一排（回選角、更新紀錄、每日簽到）：手機直式放不下三顆，第三顆超出框外被切掉 → 換行（電腦版面 pcui.css 原本就這樣） */
#lmui-wbody > .st-box:first-child > .st-row:first-child { flex-wrap: wrap; }
.st-row > select { min-width: 0; }   /* 藥水名字長、視窗窄（外框佔掉 64px）時下拉選單縮，不要把「HP < __%」擠出框外 */
.st-btn { padding: 7px 18px; font-size: 15px; font-weight: 700; font-family: inherit; color: #f1ead9; background: linear-gradient(#4a3a26, #241a10); border: 1px solid #8a6a3a; border-radius: 3px;
  box-shadow: inset 0 1px 0 rgba(255,230,180,.15), 0 1px 2px #000; cursor: pointer; }
.st-snd { padding-top: 8px; border-top: 1px solid rgba(110,90,60,.35); font-size: 15px; font-weight: 700; color: #f0e2bf; }
.st-snd input[type=checkbox] { width: 18px; height: 18px; accent-color: #c9a463; }
.st-snd span { white-space: nowrap; }
.st-snd input[type=range] { flex: 1; min-width: 0; accent-color: #c9a463; }
.st-box + .st-box { margin-top: 10px; }
.st-box select, .st-box input[type=number] { font-family: inherit; font-size: 16px; color: #f0e2bf; background: #0b0908; border: 1px solid #5a4630; border-radius: 4px; padding: 5px 8px; }
.st-box input[type=number] { width: 58px; text-align: center; margin: 0 3px; }
.st-box .st-wide { width: 100%; }
.st-sp { flex: 1; }
.st-sub { font-size: 14px; color: #a99d86; padding-bottom: 4px; border-bottom: 1px solid rgba(110,90,60,.35); }
.st-sep { padding-top: 8px; border-top: 1px solid rgba(110,90,60,.35); }
.st-row b { font-size: 15px; }
.c-atk { color: #22d3ee; } .c-heal { color: #4ade80; } .c-hp { color: #fb7185; } .c-haste { color: #86efac; } .c-brave { color: #d8b4fe; } .c-blue { color: #93c5fd; }
.st-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.st-grid .st-span { grid-column: 1 / -1; margin-top: 4px; }
.st-chk { display: flex; align-items: center; gap: 6px; font-size: 15px; color: #e9dcc0; min-width: 0; }
.st-chk input { width: 18px; height: 18px; accent-color: #c9a463; flex: none; }
.st-chk span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 掛機紀錄鈕：右下一排、AUTO 左邊；只在 AUTO 開著時出現 */
#lmui-huntbtn { position: absolute; right: 108px; bottom: 100%; margin-bottom: 15px; padding: 4px 14px; white-space: nowrap; font-size: 14px; font-weight: 700; color: #f0e2bf;
  background: linear-gradient(#3a2e20, #140f09); border: 1px solid #9c7a40; border-radius: 14px; box-shadow: 0 1px 4px #000; z-index: 5; }
#lmui-huntbtn.hidden { display: none; }
/* 有還沒看的「離開期間」結算（hud.js setAwayLog）：右上角紅點，點開那份就熄 */
#lmui-huntbtn.has-new::after { content: ""; position: absolute; top: -4px; right: -4px; width: 10px; height: 10px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 0 2px #140f09; pointer-events: none; }
#lmui-huntlog .mi-stats, #lmui-offlog .mi-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; font-size: 15px; padding: 4px 2px 8px; }
#lmui-huntlog .mi-stats span, #lmui-offlog .mi-stats span { flex-wrap: wrap; }
#lmui-huntlog .mi-stats small, #lmui-offlog .mi-stats small { flex-basis: 100%; text-align: right; font-size: 12px; color: #a8997a; }
/* 實賺（hud.js goldStat）：虧錢的轉紅；有買賣才能點（數字旁 ▸），點了在那格底下（最右欄）展開明細，視窗的 .net-open 決定開關（即時更新不會收起來） */
#lmui-huntlog .mi-stats b.neg, #lmui-offlog .mi-stats b.neg { color: #ff8f80; }
.mi-gold { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.mi-gold .mi-tw::before { content: '▸'; display: inline-block; margin-left: 5px; font-style: normal; font-size: 16px; line-height: 1; color: #e8c375; transition: transform .15s; }
.net-open .mi-gold .mi-tw::before { transform: rotate(90deg); }
#lmui-huntlog .mi-netd, #lmui-offlog .mi-netd { display: none; grid-column: -2 / -1; margin-top: -2px; padding: 4px 8px; border: 1px solid #4a3f30; border-radius: 6px; background: #17120c; font-size: 13px; }
#lmui-huntlog.net-open .mi-netd, #lmui-offlog.net-open .mi-netd { display: block; }
.mi-netd > div { display: flex; justify-content: space-between; gap: 8px; white-space: nowrap; line-height: 1.6; }
.mi-netd > div > b { font-weight: 500; color: #e9dcc0; }
.mi-netd > .sum { margin-top: 2px; padding-top: 2px; border-top: 1px solid #4a3f30; }
.mi-netd > .sum > b { font-weight: 700; color: #fff; }
.mi-netd > .sum.neg > b { color: #ff8f80; }
#lmui-huntlog .mi-map, #lmui-offlog .mi-map { font-size: 15px; color: #f0e2bf; padding: 2px 2px 0; }
/* 上次離線掛機（hud.js showOfflineLog）：起訖時刻、結束原因（回村原因）整列；掛機紀錄的「結果」也是整列（長的回村原因放在兩欄裡會撐出框外） */
#lmui-offlog .mi-when { font-size: 13px; color: #a8997a; padding: 2px 2px 0; }
#lmui-huntlog .mi-why, #lmui-offlog .mi-why { display: flex; gap: 8px; align-items: baseline; padding: 0 2px 8px; font-size: 15px; }
#lmui-huntlog .mi-why i, #lmui-offlog .mi-why i { flex: none; font-style: normal; color: #9c8f78; }
#lmui-huntlog .mi-why b, #lmui-offlog .mi-why b { flex: 1 1 auto; min-width: 0; color: #fde68a; font-weight: 600; overflow-wrap: anywhere; }
/* 獲得道具／用掉：照單機版——標題右邊一條細線；一排 5 格（手機直式也 5 格，格子跟著縮）；方框裡圖示、右下角白色粗體數量，框下名字（長就換行）；底下金色「確認」（掛機紀錄的獲得道具也用這套） */
#lmui-huntlog .ofl-h, #lmui-offlog .ofl-h { display: flex; align-items: center; gap: 10px; margin: 6px 2px 0; font-size: 16px; font-weight: 700; color: #e8c375; }
#lmui-huntlog .ofl-h::after, #lmui-offlog .ofl-h::after { content: ''; flex: 1 1 auto; height: 1px; background: #6b5636; }
#lmui-huntlog .ofl-grid, #lmui-offlog .ofl-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 6px; padding: 6px 2px 8px; }
#lmui-huntlog .ofl-cell, #lmui-offlog .ofl-cell { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
#lmui-huntlog .ofl-ic, #lmui-offlog .ofl-ic { position: relative; width: 100%; max-width: 64px; aspect-ratio: 1; border: 1px solid #4a3f30; border-radius: 8px; background: #17120c; display: flex; align-items: center; justify-content: center; }
#lmui-huntlog .ofl-ic img, #lmui-offlog .ofl-ic img { width: 74%; height: 74%; object-fit: contain; }
#lmui-huntlog .ofl-ic img.ic35, #lmui-offlog .ofl-ic img.ic35 { image-rendering: pixelated; }
#lmui-huntlog .ofl-ic b, #lmui-offlog .ofl-ic b { position: absolute; right: 4px; bottom: 1px; font-size: 13px; font-weight: 800; color: #fff; text-shadow: 0 1px 2px #000, 0 0 3px #000; }
#lmui-huntlog .ofl-nm, #lmui-offlog .ofl-nm { width: 100%; font-size: 13px; line-height: 1.25; color: #e9dcc0; text-align: center; overflow-wrap: anywhere; }
#lmui-offlog .ft { justify-content: center; }
/* 掛機紀錄底下的鈕（重置、離開期間、上次離線掛機）：寬度照字分，詞不從中間斷；真的擠不下，「上次離線掛機」只在「上次／離線掛機」中間換行（hud.js 那裡有 <wbr>） */
#lmui-huntlog .ft button { flex: 1 1 auto; word-break: keep-all; }
#lmui-offlog .ft .ofl-ok { flex: 0 0 auto; min-width: 48%; padding: 10px 24px; border: 1px solid #f6dc95; border-radius: 8px; background: linear-gradient(#f2d68e, #c79a42); color: #3a2a10;
  font-size: 18px; font-weight: 800; letter-spacing: 8px; text-indent: 8px; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 2px 6px rgba(0,0,0,.6); }
#lmui-offlog .ft .ofl-ok:active { filter: brightness(1.1); }
.as-off { align-self: center; }   /* 掛機設定頁「上次離線掛機」：開始／停止掛機底下 */
/* AUTO 設定新增的列（同單機版設定頁）：變身卷軸＋形態、迴避對象、自動購買 */
.c-arrow { color: #fdba74; }
.st-poly { display: flex; align-items: center; gap: 8px; }
.st-poly .st-chk { flex: none; }
.st-poly select { flex: 1 1 auto; min-width: 0; }
.st-poly .st-link { flex: 0 1 auto; min-width: 0; }
.st-tele { display: flex; align-items: center; gap: 4px; font-size: 15px; white-space: nowrap; }
.st-tele .st-chk { flex: none; }
.st-box .st-tele input[type=number] { margin: 0 2px 0 0; }
.st-buy { display: flex; flex-direction: column; gap: 6px; }
.st-buy .st-chk span { white-space: normal; }
.st-chk.st-off { color: #7a7060; }
.st-chk.st-off span { white-space: normal; }
.st-link { justify-self: start; max-width: 100%; padding: 3px 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-family: inherit; color: #bae6fd;
  background: rgba(14,11,9,.8); border: 1px solid #3f5a6b; border-radius: 12px; cursor: pointer; }
.st-link:disabled { color: #7a7060; border-color: #4a3f30; cursor: default; }
#lmui-bosspick .box { height: auto; max-height: 100%; }
/* 「寵物」區塊、背包「自動賣出」：下拉＋金色「新增」（同單機版 afk-lmui .lmas），寵物卡片沿用夥伴視窗的 .cw-card */
.lmas { display: flex; flex-direction: column; gap: 8px; padding: 8px 6px; }
.lmas-add { display: flex; gap: 8px; align-items: center; }
.lmas-add select, .st-box .lmas-add select { flex: 1 1 auto; min-width: 0; height: 40px; padding: 0 10px; border: 1.5px solid #e9e2d4; border-radius: 8px; background: #0e0b09; color: #f1e6cf; font-size: 16px; font-family: inherit; }
.lmas-add button { flex: none; height: 40px; padding: 0 16px; border: 1px solid #d9b25c; border-radius: 8px; background: linear-gradient(#c49a46, #8a6424); color: #fff4d6; font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer; }
.lmas-add button:disabled { opacity: .45; cursor: default; }
.lmas-q { height: 38px; padding: 0 12px; border: 1px solid #5a4630; border-radius: 8px; background: #0e0b09; color: #f1e6cf; font-size: 16px; font-family: inherit; outline: none; }   /* 自動賣出：打字篩選下拉 */
.lmas-q:focus { border-color: #c9a25a; }
.lmas-row { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border: 1px solid #4a3f30; border-radius: 8px; background: #1a1612; }
.lmas-ico { flex: none; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; }
.lmas-ico img { max-width: 40px; max-height: 40px; object-fit: contain; }
.lmas-name { flex: 1 1 auto; min-width: 0; font-size: 17px; color: #f1e6cf; overflow-wrap: anywhere; }
.lmas-name small { display: block; margin-top: 2px; font-size: 12px; color: #a8997a; }
.lmas-name small.del { color: #f87171; }   /* 沒有收購・直接刪除 */
/* 自動賣出、掛機紀錄、離線明細的祝福道具名字（.c-blessed 寫得比 .lmas-name、.ofl-nm 早或權重低，蓋不過，這裡補） */
.lmas-name.c-blessed, #lmui-huntlog .ofl-nm.c-blessed, #lmui-offlog .ofl-nm.c-blessed { color: #facc15; }
.lmas-del { flex: none; padding: 6px 2px; border: 0; background: none; color: #b9ad98; font-size: 15px; font-family: inherit; cursor: pointer; }
.lmas-empty { padding: 24px 8px; text-align: center; color: #8a8070; font-size: 15px; }
.pc-del { flex: none; padding: 4px 2px 4px 6px; border: 0; background: none; color: #b9ad98; font-size: 14px; font-family: inherit; cursor: pointer; }
.st-box .cw-set { font-size: 14px; }
.st-box .cw-set select { height: 28px; padding: 0 4px; font-size: 15px; }   /* .st-box select 的上下 padding 會把字切掉 */
/* ── 設定「掛機輔助」六頁（照站長給的內掛選單截圖）：每頁上面紅色大鈕＝AUTO 開關；一列一個設定（圖示／文字／右邊大勾選框，「使用＋下拉」的勾選框在左） ── */
.as { display: flex; flex-direction: column; gap: 8px; padding: 2px 0 10px; }
.as-go { flex: none; height: 46px; margin-bottom: 4px; border: 1px solid #d9b25c; border-radius: 12px; font-family: inherit; font-size: 18px; font-weight: 700; letter-spacing: 6px; color: #ffe7c0;
  text-shadow: 0 1px 2px #000; background: linear-gradient(#e2554b, #b61c1f 45%, #7d0b0f); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 4px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.6); cursor: pointer; }
.as-go.on { color: #fde68a; background: linear-gradient(#5b4a35, #33281b 50%, #1e170f); }   /* 掛機中：按了停止 */
.as-go:active { filter: brightness(1.2); }
.as-h { margin-top: 8px; text-align: center; font-size: 16px; font-weight: 700; letter-spacing: 1px; color: #f3d48a; text-shadow: 0 1px 2px #000; }
.as-row { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 6px 10px; border: 1px solid #5c4830; border-radius: 8px; background: linear-gradient(#2c2117, #1b140d); color: #f1e6cf; font-size: 15px; }
.as-row.off { opacity: .6; }
.as-row.off small { color: #f87171; }
.as-wrap, .as-use { flex-wrap: wrap; }
.as-pct > span:last-child { flex: 1 1 0; min-width: 5em; }   /* 「% 時不施法，改用普通攻擊」窄的時候在自己那格換行 */
.as-wrap > select { flex: 1 1 100%; }
.as-ico { flex: none; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #6b5636; border-radius: 6px; background: #0e0b09; }
.as-ico img { max-width: 34px; max-height: 34px; object-fit: contain; image-rendering: pixelated; }
.as-ico img.pic { max-width: 40px; max-height: 40px; }
.as-auto { font: italic 700 12px/1 Georgia, serif; color: #f3d48a; }
.as-mid { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.as-mid b { font-size: 16px; font-weight: 700; color: #f1e6cf; }
.as-mid b em { font-style: normal; font-size: 13px; color: #fcd34d; }
.as-mid small { font-size: 13px; color: #b9ad98; }
.as-mid small span { display: inline-block; }   /* 一段一段換行 */
.as-mid .st-link { align-self: flex-start; }
.as-inl { display: flex; flex-direction: row; align-items: center; gap: 6px; flex-wrap: wrap; }
.as-mid input[type=range] { width: 100%; margin: 2px 0; accent-color: #f0a83a; }
.as-cb { flex: none; display: flex; padding: 4px; margin: -4px; cursor: pointer; }
/* 第 269 項（站長 2026-10-26「設定頁一律統一用系統頁的按鈕」）：狩獵／補給／魔法／召喚頁的勾選框改成系統頁那種左右滑的開關（同 .sy-sw，顏色、大小一樣） */
.as-cb input, #lmui-wbody .st-chk input, #lmui-wbody .cw-green input { flex: none; -webkit-appearance: none; appearance: none; position: relative; width: 46px; height: 26px; margin: 0; border: 1px solid #6b5636; border-radius: 13px;
  background: #120e0a; box-shadow: inset 0 1px 3px rgba(0,0,0,.8); cursor: pointer; transition: background .15s, border-color .15s; }
.as-cb input::before, #lmui-wbody .st-chk input::before, #lmui-wbody .cw-green input::before { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(#8a7a64, #5c4f3e);
  box-shadow: 0 1px 2px rgba(0,0,0,.8); transition: transform .15s, background .15s; }
.as-cb input:checked, #lmui-wbody .st-chk input:checked, #lmui-wbody .cw-green input:checked { background: linear-gradient(#b8893f, #7d5a22); border-color: #e0bd72; }
.as-cb input:checked::before, #lmui-wbody .st-chk input:checked::before, #lmui-wbody .cw-green input:checked::before { transform: translateX(20px); background: linear-gradient(#fff4d6, #e6c785); }
.as-cb input:focus-visible, #lmui-wbody .st-chk input:focus-visible, #lmui-wbody .cw-green input:focus-visible { outline: 2px solid #f3d48a; outline-offset: 2px; }
.as-cb input:disabled, #lmui-wbody .st-chk input:disabled, #lmui-wbody .cw-green input:disabled { opacity: .35; cursor: default; }
/* 一格塞好幾個的（輔助魔法、寵物卡的自動復活／叫出）用小一號 */
#lmui-wbody .st-chk input, #lmui-wbody .cw-green input { width: 34px; height: 20px; border-radius: 10px; }
#lmui-wbody .st-chk input::before, #lmui-wbody .cw-green input::before { width: 14px; height: 14px; }
#lmui-wbody .st-chk input:checked::before, #lmui-wbody .cw-green input:checked::before { transform: translateX(14px); }
body.pcui .as-cb input { width: 38px; height: 22px; }
body.pcui .as-cb input::before { width: 16px; height: 16px; }
body.pcui .as-cb input:checked::before { transform: translateX(16px); }
.as-lbl { flex: none; font-weight: 700; white-space: nowrap; }
.as-val { color: #fcd34d; }
.as-use select { flex: 1 1 120px; min-width: 0; }
.as-pct { gap: 6px; font-weight: 700; }
.as select, .as input[type=number] { height: 38px; font-family: inherit; font-size: 16px; color: #f0e2bf; background: #0b0908; border: 1px solid #6b5636; border-radius: 6px; padding: 0 8px; }
.as input[type=number] { width: 60px; padding: 0 4px; text-align: center; }
.as .cw-set { font-size: 14px; }
.as .cw-set select { height: 30px; padding: 0 4px; font-size: 15px; }
.as-note { padding: 0 6px; text-align: center; font-size: 13px; line-height: 1.6; color: #b9ad98; }
.as-none { text-align: center; font-size: 14px; color: #8a8070; }
.as-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; padding: 10px 12px; border: 1px solid #5c4830; border-radius: 8px; background: linear-gradient(#2c2117, #1b140d); }
.as-ig { min-height: 44px; justify-content: space-between; }
.as-ig b { font-size: 16px; }
/* 設定頁改版（2026-10-20）：一列＝左邊圖示框（金框＋▾＝點了開選單）｜名稱＋拉條（旁邊的數字跟著跳）＋一行小字｜右邊開關 */
.as-pk { position: relative; padding: 0; font-family: inherit; cursor: pointer; border-color: #c9a25a; box-shadow: inset 0 0 0 1px rgba(201,162,90,.25); }
.as-pk::after { content: "▾"; position: absolute; right: 1px; bottom: -1px; font-size: 11px; line-height: 1; color: #f3d48a; text-shadow: 0 1px 1px #000; }
.as-pk:active { filter: brightness(1.25); }
.as-pk:disabled { border-color: #4a3f30; box-shadow: none; opacity: .5; cursor: default; }
.as-pk:disabled::after { content: none; }
.as-row .as-mid b em { display: inline-block; margin-left: 6px; white-space: nowrap; }   /* 選的東西（強力治癒藥水、燃燒的火球）整個換到下一行，不拆字 */
.as-v { color: #fcd34d; }
.as-sl { display: flex; align-items: center; flex-wrap: wrap; gap: 0 8px; font-size: 14px; font-weight: 700; color: #d8ccb4; }
.as-sl > span { flex: none; white-space: nowrap; }
.as-mid .as-sl input[type=range] { flex: 1 1 100px; width: auto; min-width: 90px; }
/* 狩獵頁的卡（站長 2026-10-29「邊框大小不一 看起來好礙眼 幫我統一大小 文字不要切到 能不往下滑就不往下滑」，hud.js AS_PAGE.狩獵）：
   一張＝圖示框｜標題一行＋第二行（拉條／迴避鈕／一行小字）｜開關；grid 1fr＝每張一樣高（哪張在窄螢幕換了行，其他張跟著一樣高，不切字）。
   價錢、大陸不瞬移、巡邏範圍從哪算併在最下面兩行（huntNote）。iPhone 13 直式（扣掉瀏海、底部橫條）連「上次離線掛機」一頁放得下 */
.as-hunt { display: grid; grid-auto-rows: 1fr; gap: 6px; }
.as-hunt > .as-row { min-height: 0; padding: 6px 10px; }
.as-hunt .as-mid { gap: 3px; }
.as-hunt .as-mid b { line-height: 20px; }
.as-hunt .as-mid small { line-height: 18px; }
.as-hunt .as-mid input[type=range] { height: 20px; margin: 0; }
.as-hunt .as-mid .st-link { padding: 1px 10px; line-height: 16px; }
.as-hunt + .as-note { line-height: 1.5; }
@media (max-width: 374px) { .as .as-row { gap: 6px; padding-left: 6px; padding-right: 6px; } }   /* 360 寬的手機：左右間距縮一點，狩獵頁「體力低於 30% 時回村」、補給頁「被木乃伊時用聖潔之光」這種長標題才不會換行（狩獵頁換了每張都跟著變高） */
#lmui-aspick .box { height: auto; max-height: 100%; }
#lmui-aspick .grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }   /* 手機一欄（技能名字不會被切成「燃燒的…」），電腦兩欄 */
#lmui-aspick .opt { min-height: 46px; cursor: pointer; font-family: inherit; }
#lmui-aspick .opt img { width: 32px; height: 32px; }
/* 站長 2026-10-31「藥水圖片大小不一」：道具圖有兩種——單機版的（/assets/icons/，64×64 畫布、圖只佔中間一半）、用戶端的（/icon/，16×24 之類原尺寸）；
   原本都塞進同一個 32 框 → 單機版的被縮成一半、用戶端的被放大，一小一大。改成同一個比例：單機版的畫 48（框外多的是透明邊）、用戶端的原尺寸放大 1.5 倍。
   選藥水／解毒的選單（aspick）、快捷格選單（slotpick）、設定頁的圖示框（.as-ico，只動道具圖，技能圖照舊） */
#lmui-aspick .opt img[src^="/assets/icons/"], #lmui-slotpick .opt img[src^="/assets/icons/"] { width: 48px; height: 48px; margin: -8px; }
#lmui-aspick .opt img[src^="/icon/"], #lmui-slotpick .opt img[src^="/icon/"] { width: auto; height: auto; max-width: none; max-height: none; transform: scale(1.5); image-rendering: pixelated; }
.as-ico img[src^="/assets/icons/"] { width: 48px; height: 48px; max-width: none; max-height: none; }
.as-ico img[src^="/icon/"] { max-width: none; max-height: none; transform: scale(1.5); }
#lmui-aspick .opt small { flex: none; margin-left: auto; white-space: nowrap; font-size: 13px; }
/* 召喚頁：每隻夥伴一張卡（2026-10-20 站長：夥伴視窗的喝水列搬來這裡）——頭像＋名字、體力低於 N% 時喝什麼、喝綠水／自動復活／自動呼叫 */
.as-card { display: flex; flex-direction: column; gap: 8px; padding: 8px 10px 10px; border: 1px solid #5c4830; border-radius: 8px; background: linear-gradient(#2c2117, #1b140d); color: #f1e6cf; font-size: 15px; }
.as-card-hd { display: flex; align-items: center; gap: 10px; min-width: 0; }
.as-card-hd b { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; font-weight: 700; }
.as-card-hd b em { margin-left: 6px; font-style: normal; font-size: 14px; color: #fcd34d; }
.as-card-hd small { flex: none; font-size: 13px; color: #b9ad98; }
.as-card-hd small.dead { color: #f87171; }
.as-card-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-weight: 700; }
.as-card-row select { flex: 1 1 5.5em; min-width: 0; }   /* 放得下就跟「體力低於 N % 時」同一行 */
.as .as-card-row input[type=number] { width: 52px; }
.as-card-chk { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px; padding-top: 2px; }
.as-card-chk .st-chk { gap: 6px; font-size: 14px; font-weight: 700; }
.as-card-chk .st-chk input { width: 20px; height: 20px; margin: 0; }   /* 預設的外距會把第三個勾擠到下一行（iPhone 13） */
.as-card-opt { display: inline-flex; align-items: center; gap: 6px; }
.as .as-card-opt select { height: 32px; padding: 0 4px; font-size: 15px; }

/* 有新版本按鈕、更新紀錄／更新內容視窗（update.js；樣式同單機版 afk-pwa.js updStyle：頭像列下方置中的金色膠囊鈕，視窗深棕底、金框、右上 ✕）。
   遊戲中（update.js 加 .ingame）同其他彈出視窗：畫面頂端到龍頭帶上緣整片；登入畫面照舊置中 */
#lmui-upd { position: fixed; top: calc(var(--orig-bar-h, 0px) + 70px); left: 50%; transform: translateX(-50%); z-index: 125; display: flex; align-items: center; gap: 6px; padding: 8px 18px;
  border-radius: 999px; border: 1px solid #e0b04a; background: linear-gradient(#5a3d12, #2a1b07); color: #ffe6a8; font-size: 15px; font-weight: 700; letter-spacing: 1px; white-space: nowrap;
  box-shadow: 0 2px 10px rgba(0,0,0,.7), 0 0 12px rgba(240,190,80,.45); cursor: pointer; -webkit-tap-highlight-color: transparent; font-family: inherit; animation: lmuiUpdGlow 1.6s ease-in-out infinite; }
#lmui-upd:active { filter: brightness(1.2); }
#lmui-upd .short { display: none; }
/* 擋到視窗（update.js place）：縮成「🔄 更新」貼在那個視窗外框上緣的左邊（left／top 由 update.js 量好寫上）；按的範圍往外加大 */
#lmui-upd.dock { transform: none; gap: 3px; height: 18px; padding: 0 9px 0 6px; font-size: 12px; line-height: 1; letter-spacing: 0; box-shadow: 0 1px 4px rgba(0,0,0,.8), 0 0 8px rgba(240,190,80,.5); }
#lmui-upd.dock .full { display: none; }
#lmui-upd.dock .short { display: inline; }
#lmui-upd.dock::after { content: ""; position: absolute; inset: -6px -6px -8px; }
@keyframes lmuiUpdGlow { 50% { box-shadow: 0 2px 10px rgba(0,0,0,.7), 0 0 20px rgba(255,210,110,.85); } }
#lmui-updwin { position: fixed; inset: 0; z-index: 130; display: flex; align-items: center; justify-content: center; padding: calc(var(--orig-bar-h, 0px) + 16px) 4px 16px; background: rgba(0,0,0,.6);
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }
#lmui-updwin .box { width: min(100%, 484px); max-height: 100%; display: flex; flex-direction: column; color: #e9dcc0; }   /* 外框見檔尾「3.5 視窗外框」 */
#lmui-updwin.ingame { bottom: var(--lmui-pop-b, 0px); padding: var(--orig-bar-h, 0px) 4px 0; }
#lmui-updwin.ingame .box { height: 100%; }
#lmui-updwin .hd { flex: none; height: 28px; display: flex; align-items: center; justify-content: center; font-size: 17px; font-weight: 700; letter-spacing: .2em; }
#lmui-updwin .bd { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 10px 14px; }
#lmui-updwin .bd:empty { display: none; }
#lmui-updwin .day { margin: 2px 0 4px; font-size: 13px; color: #c9a463; }
#lmui-updwin ul { margin: 0 0 10px; padding-left: 20px; list-style: disc; }
#lmui-updwin li { margin: 3px 0; font-size: 15px; line-height: 1.5; list-style: disc; }
#lmui-updwin li::marker { color: #c9a463; }
#lmui-updwin .ft { flex: none; padding: 10px 14px 14px; display: flex; justify-content: center; }
#lmui-updwin .go { min-width: 60%; padding: 10px 18px; border-radius: 6px; border: 1px solid #e0b04a; background: linear-gradient(#7a5a1e, #3f2c0c); color: #ffe6a8; font-size: 16px; font-weight: 700;
  letter-spacing: 1px; cursor: pointer; font-family: inherit; }
#lmui-updwin .go:active { filter: brightness(1.2); }

/* 蓋在畫面上的視窗：快捷格選單、掉寶、掛機紀錄、道具視窗（樣式同單機版 #lmui-hotpick／#lmui-mapdrops）；同彈出視窗畫面頂端到龍頭帶上緣整片，
   只有道具視窗（疊在背包上的說明卡）照內容高度、置中 */
.lmui-ov { position: fixed; inset: 0; top: var(--orig-bar-h, 0px); bottom: var(--lmui-pop-b, 0px); z-index: 120; background: rgba(0,0,0,.6); display: flex; align-items: center; justify-content: center; padding: 0 4px;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; -webkit-user-select: none; user-select: none; }
.lmui-ov .box { width: 100%; max-width: 444px; height: 100%; display: flex; flex-direction: column; color: #eee; }   /* 外框見檔尾「3.5 視窗外框」 */
#lmui-itemwin .box { height: auto; max-height: 100%; }
/* 夥伴視窗（hud.js openCompWin；排版照單機版 openCompanionPanel：一隻一張卡）。輸入框、選單 16px：iOS 聚焦才不會整頁放大 */
.cw-card { flex: none; display: flex; flex-direction: column; gap: 6px; padding: 6px 8px; border: 1px solid #4a3f30; border-radius: 6px; background: rgba(26,20,14,.92); }
.cw-top { display: flex; align-items: center; gap: 8px; }
.cw-pic { flex: none; width: 60px; height: 56px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: rgba(0,0,0,.35); border-radius: 4px; }
.cw-pic img { flex: none; width: 36px; }
.cw-pic img.pic { width: 52px; height: 48px; object-fit: contain; image-rendering: pixelated; }
.cw-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.cw-name { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; overflow: hidden; }
.cw-name b { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 16px; color: #f1f5f9; }
.cw-name em { font-style: normal; font-size: 14px; color: #fcd34d; }
.cw-name small { margin-left: auto; font-size: 12px; color: #a8997a; }
/* 召喚、迷魅還剩多少時間（hud.js cwLeftHtml，伺服器本機改動第 96 項）：剩 1 分鐘內紅字 */
.cw-name .cw-left { flex: none; font-size: 13px; font-weight: 700; color: #a5d8ff; font-variant-numeric: tabular-nums; }
.cw-name .cw-left.low { color: #f87171; }
.cw-bar { position: relative; height: 15px; overflow: hidden; background: #1b1410; border: 1px solid #3a2e20; border-radius: 3px; }
.cw-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: linear-gradient(90deg, #dc2626, #f87171); }
.cw-bar.mp i { background: linear-gradient(90deg, #2563eb, #60a5fa); }
.cw-bar.food i { background: linear-gradient(90deg, #a16207, #facc15); }   /* 寵物飽食度：琥珀色；低於 50 警告色 */
.cw-bar.food.low i { background: linear-gradient(90deg, #c2410c, #fb923c); }
.cw-bar span { position: relative; display: block; text-align: center; font-size: 11px; line-height: 13px; color: #fff; text-shadow: 0 1px 1px #000; }
.cw-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }   /* 召喚類沒有武器、防具：只剩「寄放」靠右 */
.cw-gear { flex: 1 1 150px; min-width: 0; display: flex; gap: 4px; }   /* 手機擠不下：武器、防具自己一排，收集／寄放／解散整組換到下一排 */
.cw-cmd { flex: none; display: flex; gap: 4px; }
.cw-btn { flex: 1 1 0; min-width: 0; padding: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; font-family: inherit;
  color: #b9ad98; background: #17120c; border: 1px solid #5a4630; border-radius: 5px; cursor: pointer; }
.cw-btn.on { color: #fcd34d; border-color: #b7791f; }
.cw-btn[data-a="stash"], .cw-btn[data-a="getitem"], .cw-btn[data-a="dismiss"], .cw-btn[data-a="feed"] { flex: none; padding: 6px 12px; color: #f0e2bf; }
.cw-btn.danger { color: #fecaca; background: #5b1414; border-color: #dc2626; }
/* 寵物態勢（攻擊模式…警戒）：五顆連成一排、現在的那顆填滿；字照這一排的寬度縮（一顆五分之一、最長四個字＝一個字最多 1/20 再扣邊框）——
   原本跟螢幕寬縮，電腦版面的視窗是窄的（4:3 舞台 257 寬再整塊縮 .65，一顆只剩 50），13px 四個字 52 被切成「攻擊…」「防禦…」。
   不認得 cqw 的瀏覽器（iOS 15 以前）照原本跟螢幕寬縮 */
.cw-mode { display: flex; container-type: inline-size; }
.cw-mode .cw-btn { padding: 6px 0; font-size: min(13px, calc(var(--vw1, 1vw) * 3.3)); font-size: min(13px, calc(5cqw - 1px)); border-radius: 0; }
.cw-mode .cw-btn + .cw-btn { margin-left: -1px; }
.cw-mode .cw-btn:first-child { border-radius: 5px 0 0 5px; }
.cw-mode .cw-btn:last-child { border-radius: 0 5px 5px 0; }
.cw-mode .cw-btn.on { position: relative; color: #fde68a; background: #5a3d12; border-color: #d69e2e; }
.cw-btn:active { filter: brightness(1.3); }
.cw-set { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 12px; font-size: 13px; color: #b9ad98; }
.cw-set span { display: inline-flex; align-items: center; white-space: nowrap; }
.cw-set input[type="text"] { width: 2.4em; height: 26px; margin: 0 2px; padding: 0 2px; text-align: center; font-size: 16px; font-family: inherit; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 4px; }
.cw-set select { height: 26px; margin-left: 2px; font-size: 16px; font-family: inherit; color: #f0e2bf; background: #0e0b09; border: 1px solid #5a4630; border-radius: 4px; }
.cw-green { display: inline-flex; align-items: center; gap: 3px; color: #86efac; cursor: pointer; white-space: nowrap; }
.cw-green input { width: 16px; height: 16px; margin: 0; }
.cw-empty { padding: 24px 0; text-align: center; color: #8a8070; }
/* 夥伴視窗每張卡底下的設定（第 83 項③：設定 → 召喚 搬過來，hud.js cwCfgHtml）：體力低於 N% 時喝什麼、自動加速、自動復活、自動呼叫；
   收在項圈的另外一段（.cw-sec）；最底下魔力門檻、說明。輸入框、選單 16px：iOS 聚焦才不會整頁放大 */
#lmui-compwin .cw-cfg { display: flex; flex-direction: column; gap: 6px; padding-top: 6px; border-top: 1px dashed #4a3f30; font-size: 14px; color: #d8ccb4; }
#lmui-compwin .cw-cfg-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-weight: 700; }
#lmui-compwin .cw-cfg input[type=number], #lmui-compwin .cw-foot input[type=number] { width: 52px; height: 32px; padding: 0 4px; text-align: center; font-size: 16px; font-family: inherit;
  color: #f0e2bf; background: #0b0908; border: 1px solid #6b5636; border-radius: 6px; }
#lmui-compwin .cw-cfg select { flex: 1 1 5.5em; min-width: 0; height: 32px; padding: 0 4px; font-size: 16px; font-family: inherit; color: #f0e2bf; background: #0b0908; border: 1px solid #6b5636; border-radius: 6px; }
#lmui-compwin .cw-opt { display: inline-flex; align-items: center; gap: 6px; }
#lmui-compwin .cw-opt select { flex: none; }
#lmui-compwin .cw-chk { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; white-space: nowrap; }
#lmui-compwin .cw-chk input { width: 20px; height: 20px; margin: 0; accent-color: #f0a83a; }
#lmui-compwin .cw-name small.dead { color: #f87171; }
#lmui-compwin .cw-sec { flex: none; margin-top: 4px; text-align: center; font-size: 15px; font-weight: 700; letter-spacing: 1px; color: #f3d48a; }
#lmui-compwin .cw-foot { flex: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; padding: 4px; font-size: 14px; font-weight: 700; color: #d8ccb4; }
#lmui-compwin .cw-note { flex: none; padding: 0 6px 4px; text-align: center; font-size: 13px; line-height: 1.6; color: #b9ad98; }
/* 設定 → 召喚「打開夥伴視窗」 */
.as-compbtn { flex: none; height: 44px; border: 1px solid #d9b25c; border-radius: 8px; background: linear-gradient(#c49a46, #8a6424); color: #fff4d6; font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer; }
.as-compbtn:active { filter: brightness(1.2); }
/* 寵物裝備清單（點「武器」「防具」；照單機版 petGearOpen）：照內容高度、置中；標題「杜賓狗：寵物武器」、「目前：」一行，一件一列，卸下那列紅框 */
#lmui-compgear .box { height: auto; max-height: 100%; max-width: 380px; }
#lmui-compgear .cg-cur { padding: 0 2px; font-size: 14px; color: #a8997a; }
#lmui-compgear .cg-cur b { color: #fcd34d; }
#lmui-compgear .grid { grid-template-columns: 1fr; }
#lmui-compgear .opt { min-height: 40px; }
#lmui-compgear .opt.cg-off { border-color: #b91c1c; background: #1f0a0a; color: #fecaca; font-weight: 700; }
/* 寵物穿上／卸下的那句（hud.js gearEcho）：綠字，同單機版；夥伴視窗開著時也寫在標題下面（聊天、提示被視窗蓋住） */
#lmui-lines .c-pet, #lmui-flt .list > div.c-pet { color: #86efac; }
#lmui-compwin .cw-msg { margin: 0 8px 2px; padding: 6px 10px; border: 1px solid #3f6b4a; border-radius: 6px; background: rgba(16,36,22,.92); color: #86efac; font-size: 15px; line-height: 1.35; text-align: center; overflow-wrap: anywhere; }

/* 建立物品指令（站長自訂，hud.js itemPick）：搜尋清單同其他視窗整片；數量視窗照內容高度、置中 */
#lmui-gmpick .gm-note { padding: 0 8px 4px; font-size: 13px; color: #c9b88f; text-align: center; }
.lmui-ov .opt small { margin-left: 4px; font-size: 11px; color: #a8997a; }
#lmui-gmqty .box { height: auto; max-height: 100%; max-width: 360px; }
#lmui-gmqty .hd img { width: 28px; height: 28px; object-fit: contain; }
#lmui-gmqty .bd input { width: 100%; padding: 8px 10px; font-size: 22px; font-family: inherit; text-align: center; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 6px; outline: none; }
#lmui-gmqty .bd input:focus { border-color: #c9a25a; }
/* 第 365 項：選強化值（hud.js openGmEnch）：照內容高度、置中，+0～+15 一排四個 */
#lmui-gmench .box { height: auto; max-height: 100%; max-width: 360px; }
#lmui-gmench .hd img { width: 28px; height: 28px; object-fit: contain; }
#lmui-gmench .grid { grid-template-columns: repeat(4, 1fr); }
#lmui-gmench .opt { justify-content: center; min-height: 40px; font-size: 17px; font-weight: 700; color: #fde68a; }
/* 提煉魔石（hud.js stonePick）：照內容高度、置中，一顆一列 */
#lmui-stonepick .box { height: auto; max-height: 100%; max-width: 320px; }
#lmui-stonepick .gm-note { padding: 0 8px 4px; font-size: 13px; color: #c9b88f; text-align: center; }
#lmui-stonepick .grid { grid-template-columns: 1fr; }
#lmui-stonepick .opt span { flex: 1 1 auto; }
#lmui-stonepick .opt small { margin-left: auto; font-size: 13px; color: #f0e2bf; }
/* 記憶座標（hud.js bookmarkHtml／bookmarkAdd／bookmarkPick）：設定 → 系統最底下的清單一個一列、後面「刪除」；新增的名稱視窗、祝福的瞬間移動卷軸選飛哪裡都照內容高度、置中 */
.st-bm .bm-list { display: flex; flex-direction: column; gap: 4px; }
.st-bm .bm-row { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 4px 0 8px; border: 1px solid #4a3f30; border-radius: 6px; background: #1a1612; }
.st-bm .bm-row span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: pre; font-size: 16px; color: #f1e6cf; }
.st-bm .bm-del { flex: none; padding: 8px 8px; border: 0; background: none; color: #fca5a5; font-size: 15px; font-family: inherit; cursor: pointer; }
#lmui-bmadd .box, #lmui-bmpick .box { height: auto; max-height: 100%; max-width: 360px; }
#lmui-bmadd .bm-in { display: block; width: 100%; box-sizing: border-box; padding: 8px 10px; font-size: 18px; font-family: inherit; text-align: center; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 6px; outline: none;
  -webkit-user-select: text; user-select: text; }
#lmui-bmadd .bm-in:focus { border-color: #c9a25a; }
#lmui-bmadd .bm-err { min-height: 20px; font-size: 14px; color: #fca5a5; text-align: center; }
/* 第 95 項：字的顏色。清單名字前面的色點（點了改顏色）、新增／改顏色視窗的一排色塊（選中的外框加亮） */
.st-bm .bm-dot { flex: none; width: 22px; height: 22px; padding: 0; border: 2px solid #4a3f30; border-radius: 50%; cursor: pointer; }
.bm-sw { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; padding: 4px 0; }
.bm-swb { width: 28px; height: 28px; padding: 0; border: 2px solid #3a2e20; border-radius: 50%; cursor: pointer; }
.bm-swb.on { border-color: #fff; box-shadow: 0 0 0 2px #c9a25a; }
#lmui-bmcolor .box { height: auto; max-height: 100%; max-width: 360px; }
#lmui-bmcolor .hd span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#lmui-bmpick .bd { gap: 6px; }
#lmui-bmpick .grid { grid-template-columns: 1fr; }   /* 名稱最長 12 個字：一個一列才不會被切掉 */
#lmui-bmpick .opt { min-height: 42px; }
#lmui-bmpick .bm-rand { flex: none; justify-content: center; color: #bae6fd; border-color: #3f5a6b; }
#lmui-mapdrops .box { max-width: 484px; }
/* 製作工匠（craft.js）：上面地區下拉＋NPC 一顆一顆（照單機版製作工匠），下面一列一個配方；材料顏色照單機版 craftReqHtml（綠夠、黃可合成、紅做不出來） */
#lmui-craft .box { max-width: 484px; }
#lmui-craft .cf-top { display: flex; flex-direction: column; gap: 6px; padding: 4px 8px 6px; border-bottom: 1px solid #4a3f30; }
#lmui-craft .cf-area { align-self: flex-start; max-width: 100%; padding: 5px 8px; font: 700 14px/1.2 inherit; font-family: inherit; color: #f0e2bf; background: #17120c; border: 1px solid #6b5636; border-radius: 6px; }
#lmui-craft .cf-npcs { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 4px; max-height: calc(var(--vh1, 1vh) * 30); overflow-y: auto; }
#lmui-craft .cf-npcs button { padding: 6px 4px; border: 1px solid #5a4630; border-radius: 6px; background: #1a1612; color: #d9cbb0; font: 700 14px/1.25 inherit; font-family: inherit; cursor: pointer; overflow-wrap: anywhere; }
#lmui-craft .cf-npcs button.on { border-color: #e0b54d; background: #4a3716; color: #fde68a; box-shadow: 0 0 6px rgba(224,181,77,.45); }
#lmui-craft .cf-row { display: flex; flex-direction: column; gap: 5px; padding: 8px; border: 1px solid #4a3f30; border-radius: 8px; background: #17120c; }
#lmui-craft .cf-head { display: flex; align-items: center; gap: 6px; }
#lmui-craft .cf-ic { flex: none; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; }
#lmui-craft .cf-ic img { width: 28px; height: 28px; object-fit: contain; }
#lmui-craft .cf-out { min-width: 0; font-size: 16px; color: #f5ecd8; overflow-wrap: anywhere; }
#lmui-craft .cf-max { flex: none; font-size: 12px; color: #86efac; }
#lmui-craft .cf-ctl { margin-left: auto; flex: none; display: flex; align-items: center; gap: 6px; }
#lmui-craft .cf-qty { width: 48px; padding: 5px 2px; font-size: 15px; text-align: center; color: #fff; background: #2b2a33; border: 1px solid #4a4a55; border-radius: 4px; outline: none; }
#lmui-craft .cf-go { padding: 7px 14px; font: 700 15px/1 inherit; font-family: inherit; color: #eee7dc; border: 1px solid #6f7390; border-radius: 6px; background: linear-gradient(180deg, #3b3f5c, #262840); cursor: pointer; }
#lmui-craft .cf-go:disabled, #lmui-craft .cf-qty:disabled { opacity: .4; cursor: default; }
#lmui-craft .cf-mats { display: flex; flex-wrap: wrap; gap: 3px 14px; padding-left: 34px; }
#lmui-craft .cf-mat { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
#lmui-craft .cf-mat.ok { color: #4ade80; } #lmui-craft .cf-mat.mid { color: #fbbf24; } #lmui-craft .cf-mat.no { color: #f87171; }
#lmui-craft .cf-mat i { font-style: normal; font-size: 12px; }
#lmui-craft .cf-mat em { font-style: normal; font-weight: 400; font-size: 12px; color: #a8a29e; margin-left: 4px; }
#lmui-craft .cf-lack { padding-left: 34px; font-size: 13px; color: #fca5a5; }
#lmui-craft .cf-cond { padding-left: 34px; font-size: 13px; color: #a8997a; }
#lmui-craft .cf-cond.bad { color: #f87171; }
#lmui-craft .cf-msg { padding: 8px 10px; border: 1px solid #6a5232; border-radius: 6px; background: #1d1710; font-size: 15px; line-height: 1.4; color: #f5ecd8; }
#lmui-craft .cf-none { padding: 24px 0; text-align: center; color: #94a3b8; }
#lmui-craft .cf-note { font-size: 13px; color: #a8997a; }
/* 矮的畫面（手機橫放，電腦版面的視窗只有兩百多高）：地區下拉和 NPC 擠成一排、NPC 左右滑，配方才看得到兩三列。
   只動製作工匠視窗裡面，跟版面無關；直式的手機都比 500 高，碰不到 */
@media (max-height: 500px) {
  #lmui-craft .cf-top { flex-direction: row; align-items: center; }
  #lmui-craft .cf-area { flex: none; align-self: center; }
  #lmui-craft .cf-npcs { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: nowrap; overflow-x: auto; max-height: none; }
  #lmui-craft .cf-npcs button { flex: none; white-space: nowrap; padding: 6px 12px; }
}
.lmui-ov .hd { display: flex; justify-content: center; align-items: center; gap: 8px; padding: 2px 8px 6px; font-weight: 700; font-size: 17px; }
.lmui-ov .bd { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.lmui-ov .tabs { display: flex; gap: 4px; padding: 6px 8px 0; }
.lmui-ov .tabs button { flex: 1; padding: 7px; border: 1px solid #5a4630; border-radius: 6px 6px 0 0; background: #17120c; color: #b9ad98; font-weight: 700; font-size: 14px; cursor: pointer; font-family: inherit; }
.lmui-ov .tabs button.on { background: #3a2c1a; color: #fde68a; border-color: #b7791f; }
.lmui-ov .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 4px; }
.lmui-ov .opt { display: flex; align-items: center; gap: 6px; padding: 4px 6px; border: 1px solid #4a3f30; border-radius: 6px; background: #1a1612; color: #eee; font-size: 15px; text-align: left;
  cursor: pointer; min-width: 0; font-family: inherit; }
.lmui-ov .opt.on { border-color: #fde68a; box-shadow: 0 0 6px rgba(253,230,138,.6); }
.lmui-ov .opt img { width: 26px; height: 26px; object-fit: contain; flex: none; }
.lmui-ov .opt span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lmui-ov .none { color: #94a3b8; font-size: 12px; }
.lmui-ov .ft { display: flex; gap: 6px; padding: 8px; border-top: 1px solid #4a3f30; }
.lmui-ov .ft button { flex: 1; padding: 9px 8px; border: 1px solid #6b5636; border-radius: 6px; background: #1a1612; color: #f0e2bf; font-weight: 700; font-size: 15px; cursor: pointer; font-family: inherit; }
.lmui-ov .ft button.danger { border-color: #b4483a; background: #3a1410; color: #ffd8cf; }
/* 道具視窗 */
#lmui-itemwin { touch-action: manipulation; }   /* 背包格點兩下：第二下按在剛彈出的視窗上（hud.js dblUse），手機不要拿去放大畫面 */
#lmui-itemwin .hd { justify-content: flex-start; }
#lmui-itemwin .iw-ic { flex: none; width: 40px; height: 40px; border: 1px solid #6b5636; border-radius: 4px; background: linear-gradient(#2a241c, #14110d); display: flex; align-items: center; justify-content: center; }
#lmui-itemwin .iw-ic img { width: 80%; height: 80%; object-fit: contain; }
#lmui-itemwin .iw-tt { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 2px; }
#lmui-itemwin .iw-nm { flex: 0 1 auto; min-width: 0; max-width: 100%; font-size: 16px; overflow-wrap: anywhere; }
/* 法書學不了的原因（hud.js bookBtn：精靈屬性不合）：說明列下面一條 */
#lmui-itemwin .iw-why { padding: 6px 10px; border: 1px solid #7a4a2a; border-radius: 6px; background: rgba(60,28,10,.55); color: #fcd9a8; font-size: 14px; line-height: 1.4; text-align: center; }
#lmui-itemwin .iw-why[hidden] { display: none; }
/* 換裝比較（js/equipdiff.js cmpHtml）：說明列上面。上＝「身上」那件（兩件＝一起脫、虛線「空」＝那格空著、戒指兩格滿＝點選跟哪只比）→「換上」這件；
   中＝幾項變好、幾項變差；下＝每項 原本（暗）→ 換上後（亮）＋▲▼差多少的小徽章（變好綠、變差紅）。數字一個 grid 對齊；底色、金框同強化視窗 */
#lmui-itemwin .iw-cmp { position: relative; flex: none; padding: 16px 10px 10px; border: 1px solid #7a5f33; border-radius: 8px;
  background: linear-gradient(180deg, rgba(46,35,21,.94), rgba(16,12,8,.96) 60%); box-shadow: inset 0 1px 0 rgba(243,212,138,.14), inset 0 0 18px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.45);
  animation: cmpIn .3s ease-out both; }
@keyframes cmpIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
#lmui-itemwin .cmp-top { display: flex; align-items: stretch; gap: 6px; }
#lmui-itemwin .cmp-side { position: relative; flex: 1 1 0; min-width: 0; display: flex; align-items: flex-start; gap: 5px; padding: 13px 4px 7px; border: 1px solid #5c4a2c; border-radius: 7px;
  background: radial-gradient(110% 80% at 50% 0%, rgba(90,68,34,.28), rgba(0,0,0,0) 70%), rgba(6,5,3,.55); }
#lmui-itemwin .cmp-side.two { flex-grow: 2; }
#lmui-itemwin .cmp-side.now { border-color: #a07c3c; box-shadow: inset 0 0 12px rgba(243,212,138,.1); }
#lmui-itemwin .cmp-cap { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); padding: 0 9px; border: 1px solid #5c4a2c; border-radius: 9px; background: #1c150d;
  font-size: 12px; line-height: 16px; letter-spacing: .12em; text-indent: .12em; color: #bfae86; white-space: nowrap; }
#lmui-itemwin .now .cmp-cap { border-color: #a07c3c; color: #f3d48a; }
#lmui-itemwin .cmp-card { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; }
#lmui-itemwin .cmp-ic { position: relative; flex: none; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border: 1px solid #8a6a2e; border-radius: 6px;
  background: radial-gradient(#2c2418, #0d0a07); box-shadow: inset 0 0 10px rgba(0,0,0,.8); }
#lmui-itemwin .now .cmp-ic { border-color: #c9a24d; box-shadow: inset 0 0 10px rgba(0,0,0,.8), 0 0 8px rgba(243,212,138,.3); }
#lmui-itemwin .cmp-ic img { width: 34px; height: 34px; object-fit: contain; }
#lmui-itemwin .cmp-en { position: absolute; left: 3px; top: 2px; font: 800 12px/1 Arial, sans-serif; color: #39a9ff; text-shadow: 0 0 3px #0b4f99, 1px 1px 1px #000; }   /* 強化值（同紙娃娃、強化視窗的藍字） */
#lmui-itemwin .cmp-nm { max-width: 100%; font-size: 12px; line-height: 1.3; text-align: center; color: #e8dcc0; word-break: keep-all; overflow-wrap: break-word; overflow-wrap: anywhere; }   /* 先在「+3 」的空白斷行，名字本身放不下才從中間斷 */
#lmui-itemwin .cmp-nm.c-blessed { color: #facc15; }
#lmui-itemwin .cmp-card.is-empty .cmp-ic { border: 1px dashed #6b5636; background: rgba(0,0,0,.3); box-shadow: none; }
#lmui-itemwin .cmp-card.is-empty i { font-style: normal; font-size: 14px; color: #8a7a5c; }
#lmui-itemwin .cmp-card.is-empty .cmp-nm { color: #7d6f55; }
#lmui-itemwin .cmp-plus { flex: none; margin-top: 12px; font-size: 13px; font-weight: 700; color: #a07c3c; }
#lmui-itemwin .cmp-arw { flex: none; align-self: flex-start; width: 26px; height: 26px; margin-top: 22px; display: flex; align-items: center; justify-content: center; border: 1px solid #a07c3c; border-radius: 50%;
  background: radial-gradient(#3d2e16, #120d07); color: #f3d48a; box-shadow: 0 0 8px rgba(243,212,138,.3); }
#lmui-itemwin .cmp-arw svg { width: 15px; height: 15px; }
/* 戒指兩格都滿：點哪只就跟哪只比（radio 藏起來，label 點了切換；沒選的那只淡掉、選的那只金框發光） */
#lmui-itemwin .cmp-k { display: none; }
#lmui-itemwin label.cmp-card { cursor: pointer; -webkit-tap-highlight-color: transparent; transition: opacity .15s; }
#lmui-itemwin #cmp-k0:checked ~ .cmp-top .k1, #lmui-itemwin #cmp-k1:checked ~ .cmp-top .k0 { opacity: .45; }
#lmui-itemwin #cmp-k0:checked ~ .cmp-top .k0 .cmp-ic, #lmui-itemwin #cmp-k1:checked ~ .cmp-top .k1 .cmp-ic { border-color: #f3d48a; box-shadow: inset 0 0 10px rgba(0,0,0,.8), 0 0 10px rgba(243,212,138,.6); }
#lmui-itemwin #cmp-k0:checked ~ .cmp-pane.p1, #lmui-itemwin #cmp-k1:checked ~ .cmp-pane.p0 { display: none; }
/* 幾項變好、幾項變差：左右兩條金色細線夾著 */
#lmui-itemwin .cmp-sum { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 10px 0 0; font-size: 13px; font-weight: 700; }
#lmui-itemwin .cmp-sum::before, #lmui-itemwin .cmp-sum::after { content: ""; flex: 1 1 0; min-width: 8px; height: 1px; background: linear-gradient(90deg, rgba(160,124,60,0), #a07c3c); }
#lmui-itemwin .cmp-sum::after { background: linear-gradient(90deg, #a07c3c, rgba(160,124,60,0)); }
#lmui-itemwin .cmp-sum span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
#lmui-itemwin .cmp-sum .up { color: #86efac; } #lmui-itemwin .cmp-sum .dn { color: #fca5a5; }
#lmui-itemwin .cmp-same { margin-top: 10px; padding: 6px 10px; border: 1px solid #3e3018; border-radius: 6px; background: rgba(5,4,3,.5); text-align: center; font-size: 14px; color: #bfae86; }
/* 每一列：能力｜原本｜→｜換上後｜▲▼差多少（整塊一個 grid，數字直的對齊；列＝display:contents，分隔線畫在每格上緣，所以欄距用 padding 不用 gap，線才連得起來） */
#lmui-itemwin .cmp-rows { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; margin-top: 8px; padding: 0 9px; border: 1px solid #3e3018; border-radius: 6px;
  background: rgba(4,3,2,.55); font-variant-numeric: tabular-nums; }
#lmui-itemwin .cmp-r { display: contents; }
#lmui-itemwin .cmp-r > span { display: flex; align-items: center; min-height: 29px; border-top: 1px solid rgba(138,106,46,.2); animation: cmpIn .3s ease-out both; animation-delay: calc(var(--i, 0) * 40ms + 60ms); }
#lmui-itemwin .cmp-r > span + span { padding-left: 6px; }
#lmui-itemwin .cmp-r > .cmp-d { padding-left: 9px; }
#lmui-itemwin .cmp-r:first-child > span { border-top: 0; }
#lmui-itemwin .cmp-l { font-size: 14px; line-height: 1.25; color: #c9bfae; overflow-wrap: anywhere; }
#lmui-itemwin .cmp-a { justify-content: flex-end; font-size: 14px; color: #8a7f6c; }
#lmui-itemwin .cmp-x { color: #6b5636; } #lmui-itemwin .cmp-x svg { width: 12px; height: 12px; }
#lmui-itemwin .cmp-b { justify-content: flex-end; font-size: 15px; font-weight: 700; color: #f8efd9; }
#lmui-itemwin .cmp-d b { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 3.4em; padding: 2px 7px; border: 1px solid; border-radius: 999px;
  font-size: 13px; font-weight: 700; line-height: 16px; white-space: nowrap; }
#lmui-itemwin .up .cmp-d b { color: #86efac; background: rgba(34,197,94,.13); border-color: rgba(74,222,128,.38); }
#lmui-itemwin .dn .cmp-d b { color: #fca5a5; background: rgba(239,68,68,.13); border-color: rgba(248,113,113,.38); }
/* ▲▼ 用 CSS 畫（中文字型的 ▲ 是全形、各家大小不一） */
#lmui-itemwin .cmp-d b::before, #lmui-itemwin .cmp-sum span::before { content: ""; flex: none; width: 0; height: 0; border-left: 4.5px solid transparent; border-right: 4.5px solid transparent; }
#lmui-itemwin .up .cmp-d b::before, #lmui-itemwin .cmp-sum .up::before { border-bottom: 7px solid currentColor; }
#lmui-itemwin .dn .cmp-d b::before, #lmui-itemwin .cmp-sum .dn::before { border-top: 7px solid currentColor; }
@media (prefers-reduced-motion: reduce) { #lmui-itemwin .iw-cmp, #lmui-itemwin .cmp-r > span { animation: none; } }
@media (max-width: 359px) { #lmui-itemwin .two .cmp-nm { font-size: 11px; } }   /* 320 寬的手機：兩件並排的名字（「滅魔戒指」「蕾雅戒指」）才不會黏在一起 */
.iw-lines { border: 1px solid #4a3c29; border-radius: 4px; background: rgba(15,11,8,.75); }
.iw-lines > div { display: flex; justify-content: space-between; gap: 10px; padding: 5px 10px; border-bottom: 1px solid rgba(74,60,41,.6); font-size: 14px; }
.iw-lines > div:last-child { border-bottom: 0; }
.iw-lines span { color: #c9bfae; white-space: nowrap; } .iw-lines b { color: #fff; font-weight: 600; text-align: right; }
/* 賣出（hud.js refreshSell）：資訊表最後一列「售價」、按鈕列的「賣出」、確認框 */
.iw-sell b { color: #fde047; } .iw-sell b.no { color: #94a3b8; }
.lmui-ov .ft button[hidden] { display: none; }
.lmui-ov .ft button:disabled { opacity: .45; cursor: default; }
@media (max-width: 480px) { #lmui-itemwin .ft.ft4 { flex-wrap: wrap; } #lmui-itemwin .ft.ft4 button { flex: 1 1 calc(50% - 6px); } }   /* 四顆按鈕：手機直式排兩列，不擠 */
#lmui-sellyn .sl-qty { display: flex; gap: 6px; align-items: center; justify-content: center; padding: 6px 0 0; }
#lmui-sellyn .sl-qty button { min-width: 44px; min-height: 40px; padding: 0 10px; border: 1px solid #6b5636; border-radius: 6px; background: #1a1612; color: #f0e2bf; font-size: 18px; font-weight: 700; font-family: inherit; cursor: pointer; }
#lmui-sellyn .sl-qty button[data-q="0"] { font-size: 14px; }
#lmui-sellyn .sl-qty input { width: 96px; min-height: 40px; padding: 0 8px; font-size: 20px; font-family: inherit; text-align: center; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 6px; outline: none; }
#lmui-sellyn .sl-qty input:focus { border-color: #c9a25a; }
#lmui-sellyn .sl-note { padding: 0 6px 8px; text-align: center; font-size: 13px; color: #fcd34d; }
.iw-drop { padding: 8px 10px; border: 1px solid #7a3a30; border-radius: 4px; background: rgba(58,20,16,.6); color: #ffd8cf; font-size: 14px; display: flex; flex-direction: column; gap: 6px; }
.iw-drop[hidden] { display: none; }
.iw-drop input { width: 90px; padding: 4px 6px; font-size: 16px; background: #0b0908; color: #fff; border: 1px solid #6b5636; border-radius: 3px; }
/* 掉寶（樣式同單機版 .mi-*） */
#lmui-mapdrops .md-mob { border: 1px solid #4a3f30; border-radius: 8px; background: #17120c; padding: 8px; }
.mi-hd { display: flex; align-items: baseline; gap: 8px; padding-bottom: 6px; border-bottom: 1px solid #3d3121; }
.mi-name { font-size: 17px; font-weight: 700; color: #fff; }
.mi-lv { font-size: 14px; color: #e8b04a; }
.mi-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px 8px; font-size: 13px; margin: 4px 0 6px; }
.mi-stats span { display: flex; justify-content: space-between; gap: 4px; white-space: nowrap; }
.mi-stats i { font-style: normal; color: #9c8f78; } .mi-stats b { color: #fff; font-weight: 600; }
.mi-drop { display: flex; align-items: center; gap: 6px; padding: 4px 2px; border-bottom: 1px solid rgba(90,70,48,.35); font-size: 14px; }
.mi-drop img { width: 24px; height: 24px; object-fit: contain; flex: none; }
.mi-drop .nm { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mi-drop .rt { flex: none; color: #d6c7a5; font-family: Consolas, monospace; font-size: 13px; }
.mi-none { font-size: 14px; color: #8d7c5c; padding: 6px 0; }

/* 提示訊息：場景中間偏上（正中間是主角站的地方，不要蓋住） */
#lmui-toast { position: fixed; left: 50%; top: 26%; transform: translate(-50%, -50%); z-index: 130; padding: 8px 16px; border: 1px solid #6b5636; border-radius: 6px;
  background: rgba(20,15,10,.95); color: #ecdcb6; font-size: 15px; pointer-events: none; opacity: 0; transition: opacity .2s; max-width: calc(var(--vw1, 1vw) * 86); text-align: center;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }
#lmui-toast.on { opacity: 1; }

/* ── NPC 視窗（npc.js）：商店照單機版 #town-interaction-container＋renderShopItems 的列；倉庫照單機版 #warehouse-window 的 whx-* ── */
#npc-window { position: fixed; inset: 0; top: var(--orig-bar-h, 0px); bottom: var(--lmui-pop-b, 0px); z-index: 95; display: flex; align-items: center; justify-content: center; padding: 0 4px; background: rgba(0,0,0,.55); }
#npc-window[hidden] { display: none; }
#npc-window .npw-panel { width: min(584px, 100%); height: 100%; display: flex; flex-direction: column;
  color: #ddd8d2; font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }   /* 外框見檔尾「3.5 視窗外框」 */
#npc-window .npw-head { flex: none; display: flex; justify-content: space-between; align-items: center; gap: 6px; min-height: 28px; padding: 0 4px 4px; }
#npc-window .npw-heading { display: flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; white-space: nowrap; }
#npc-window .npw-name { margin: 0; font-size: 18px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
#npc-window .npw-title { font-size: 17px; font-weight: 700; }
#npc-window .npw-goldh { margin-left: 6px; font-size: 17px; font-weight: 700; color: #f5d77b; }
#npc-window .npw-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 8px; }
#npc-window .npw-tabs { flex: none; }
#npc-window .npw-list { display: flex; flex-direction: column; gap: 6px; }
/* 一列（單機版商店列＋天堂M 介面的改法）：圖示＋名字／價錢一行，數量＋按鈕下一行靠右 */
#npc-window .npw-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px; border: 1px solid #4a3c29; border-radius: 6px; background: rgba(26,20,14,.92); }
#npc-window .npw-ic { flex: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: #0f0b08; border: 1px solid #4a3c29; border-radius: 4px; }
#npc-window .npw-ic img { width: 38px; height: 38px; object-fit: contain; }
#npc-window .npw-main { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
#npc-window .npw-nm { font-size: 17px; font-weight: 700; line-height: 1.15; color: #f1f5f9; overflow-wrap: anywhere; }
#npc-window .npw-price { font-size: 16px; font-weight: 700; line-height: 1; color: #facc15; }
/* 寵物保管員（npc.js keepHtml）：名字後面的等級、在身邊的寵物 */
#npc-window .npw-lv { font-style: normal; font-size: 14px; color: #fcd34d; }
#npc-window .npw-here { font-size: 14px; line-height: 1; color: #86efac; }
#npc-window .npw-ctl { flex: 1 1 100%; display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
#npc-window .npw-ctl .npw-qty { width: 52px; padding: 5px 2px; font-size: 16px; text-align: center; color: #fff; background: #2b2a33; border: 1px solid #4a4a55; border-radius: 4px; outline: none; }
#npc-window .npw-btn { flex: none; padding: 8px 12px; font-size: 15px; font-weight: 700; font-family: inherit; white-space: nowrap; color: #eee7dc; border: 1px solid #6f7390; border-radius: 6px; cursor: pointer;
  background: linear-gradient(180deg, #34364a 0%, #24263a 54%, #181a28 100%); box-shadow: inset 0 1px rgba(200,205,240,.12), 0 2px 6px rgba(0,0,0,.42); }
#npc-window .npw-btn:active { filter: brightness(1.25); }
#npc-window .npw-empty { padding: 28px 8px; text-align: center; font-size: 15px; color: #a8997a; }
/* 血盟（clan.js）：血盟執行人的分頁、能力視窗「血盟」分頁、申請加入／同意的小視窗 */
#npc-window .cl-npc { display: flex; flex-direction: column; gap: 10px; padding: 8px 2px; }
#npc-window .cl-npc-t { font-size: 17px; font-weight: 700; color: #f5e3b0; text-align: center; }
#npc-window .cl-npc .npw-btn { width: 100%; padding: 11px 12px; }
#npc-window .cl-npc .cl-danger { border-color: #b4483a; background: linear-gradient(180deg, #4a1d18 0%, #3a1410 60%, #2a0d0a 100%); color: #ffd8cf; }
#npc-window .cl-npc .npw-short { text-align: center; }
/* 魔法商人（npc.js bsHtml）：兩組增益共同的那幾種，一句寫在清單上面 */
#npc-window .npw-tip { margin: 6px 2px 8px; font-size: 14px; line-height: 1.5; color: #e9dcc0; }
/* 精靈屬性（艾利溫，npc.js elfHtml；第 117 項重做）：還沒選＝一句說明＋四張屬性卡（火焰、水波、旋風、岩土）＋點了的那一系魔法預覽＋「選定○屬性」；
   選了＝屬性徽記＋那一系的魔法清單（要幾級、學過沒、去哪拿）＋去除精靈力（按第一下變確認＋警告）。每系的顏色用 --ec（主色）、--eg（光暈）、--et（字） */
#npc-window .elf-npc { display: flex; flex-direction: column; gap: 12px; padding: 6px 2px; }
#npc-window .elf-c-f { --ec: #ff8a3d; --eg: rgba(255,110,30,.38); --et: #ffe0c8; }
#npc-window .elf-c-w { --ec: #55aaff; --eg: rgba(60,140,255,.36); --et: #d8ecff; }
#npc-window .elf-c-a { --ec: #5fd39a; --eg: rgba(70,210,140,.32); --et: #d8f8e6; }
#npc-window .elf-c-e { --ec: #dcaa4e; --eg: rgba(215,160,70,.34); --et: #f7e6c2; }
#npc-window .elf-tip { margin: 0; font-size: 15px; line-height: 1.5; color: #e9dcc0; text-align: center; }
#npc-window .elf-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 10px; }
#npc-window .elf-card { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 120px; padding: 10px 6px 8px;
    font-family: inherit; cursor: pointer; border: 1px solid #7a5e34; border-radius: 6px; color: var(--et);
    background: radial-gradient(circle at 50% 42%, var(--eg) 0%, rgba(0,0,0,0) 62%), linear-gradient(180deg, #2b2219 0%, #17110c 100%);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.85), inset 0 0 0 3px rgba(122,94,52,.35), 0 2px 6px rgba(0,0,0,.5); transition: transform .15s, box-shadow .15s, border-color .15s; }
#npc-window .elf-card .elf-mk { display: block; width: 62px; height: 62px; filter: drop-shadow(0 0 6px var(--eg)); }
#npc-window .elf-card .elf-mk svg { display: block; width: 100%; height: 100%; }
#npc-window .elf-card .elf-cn { font-size: 21px; font-weight: 700; letter-spacing: 2px; text-shadow: 0 0 6px var(--ec), 0 1px 0 #000; }
#npc-window .elf-card.on { border-color: var(--ec); transform: translateY(-2px);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.85), inset 0 0 0 3px var(--eg), 0 0 14px var(--eg), 0 2px 6px rgba(0,0,0,.5); }
#npc-window .elf-card.on .elf-mk { animation: elf-mk-on 1.6s ease-in-out infinite; }
#npc-window .elf-card.elf-c-f.on .elf-mk { animation-name: elf-mk-flame; animation-duration: .9s; transform-origin: 50% 90%; }
#npc-window .elf-card.elf-c-a.on .elf-mk { animation-name: elf-mk-spin; animation-duration: 2.4s; animation-timing-function: linear; }
@keyframes elf-mk-on { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes elf-mk-flame { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(.95, 1.07); } }
@keyframes elf-mk-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }
#npc-window .elf-prev { display: flex; flex-direction: column; gap: 8px; padding: 8px; border: 1px solid var(--ec); border-radius: 6px; background: rgba(0,0,0,.32); box-shadow: inset 0 0 18px var(--eg); }
#npc-window .elf-go { width: 100%; padding: 12px; font-size: 17px; border-color: var(--ec); color: var(--et); text-shadow: 0 0 6px var(--ec);
    background: radial-gradient(ellipse at 50% 0%, var(--eg) 0%, rgba(0,0,0,0) 70%), linear-gradient(180deg, #2f251a, #18120c); }
#npc-window .elf-list { display: flex; flex-direction: column; gap: 6px; }
#npc-window .elf-sk { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 5px 8px; border: 1px solid #4a3c29; border-radius: 6px; background: rgba(26,20,14,.92); }
#npc-window .elf-sk .npw-ic { width: 40px; height: 40px; }
#npc-window .elf-sk .npw-ic img { width: 34px; height: 34px; }
#npc-window .elf-skm { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
#npc-window .elf-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
#npc-window .elf-meta .npw-price { font-size: 15px; }
#npc-window .elf-skc { flex: none; display: flex; align-items: center; }
#npc-window .elf-sk.learned { border-color: rgba(134,239,172,.35); }
#npc-window .elf-sk.learned .npw-nm { color: #d9f7e2; }
#npc-window .elf-done { font-size: 14px; font-weight: 700; color: #86efac; }
#npc-window .elf-drop { font-size: 14px; color: #c9b88f; }
#npc-window .elf-buy { font-size: 14px; color: #93d7ff; }
#npc-window .elf-crest { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px; border: 1px solid var(--ec); border-radius: 8px;
    background: radial-gradient(ellipse at 50% 50%, var(--eg) 0%, rgba(0,0,0,0) 70%), linear-gradient(180deg, #2b2219, #15100b); box-shadow: inset 0 0 0 3px rgba(0,0,0,.45); }
#npc-window .elf-crest .elf-mk { display: block; width: 54px; height: 54px; filter: drop-shadow(0 0 8px var(--eg)); }
#npc-window .elf-crest .elf-mk svg { display: block; width: 100%; height: 100%; }
#npc-window .elf-crest b { font-size: 22px; letter-spacing: 2px; color: var(--et); text-shadow: 0 0 8px var(--ec), 0 1px 0 #000; }
#npc-window .elf-has.fresh .elf-crest { animation: elf-crest-in 1.4s ease-out; }
@keyframes elf-crest-in { 0% { transform: scale(.85); } 40% { transform: scale(1.04); box-shadow: inset 0 0 0 3px rgba(0,0,0,.45), 0 0 28px var(--ec); } 100% { transform: scale(1); } }
#npc-window .elf-init { width: 100%; display: flex; justify-content: center; align-items: baseline; gap: 10px; padding: 11px 12px; }
#npc-window .elf-init.danger { border-color: #b4483a; background: linear-gradient(180deg, #4a1d18 0%, #3a1410 60%, #2a0d0a 100%); color: #ffd8cf; }
#npc-window .elf-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#npc-window .elf-two .npw-btn { padding: 11px 8px; }
#npc-window .elf-warn { font-size: 14px; line-height: 1.5; color: #f87171; text-align: center; }
/* 矮的畫面（手機橫放）：四張卡排一列、卡和徽記變小，清單先露出來 */
@media (max-height: 500px) {
    #npc-window .elf-npc { gap: 8px; padding-top: 2px; }
    #npc-window .elf-cards { grid-template-columns: repeat(4, 1fr); gap: 6px; }
    #npc-window .elf-card { min-height: 0; padding: 6px 4px; gap: 2px; }
    #npc-window .elf-card .elf-mk { width: 36px; height: 36px; }
    #npc-window .elf-card .elf-cn { font-size: 16px; }
    #npc-window .elf-crest { padding: 4px 8px; gap: 8px; }
    #npc-window .elf-crest .elf-mk { width: 30px; height: 30px; }
    #npc-window .elf-crest b { font-size: 17px; }
    #npc-window .elf-sk { min-height: 0; padding: 3px 6px; }
}
.cl-none { padding: 30px 12px; text-align: center; color: #c9bfae; font-size: 15px; line-height: 1.6; }
.cl-none b { display: block; margin-bottom: 8px; font-size: 17px; color: #f5e3b0; }
.cl-none p { margin: 4px 0; }
.cl-wrap { display: flex; flex-direction: column; gap: 6px; }
.cl-info { margin-top: 0; }
.cl-sub { margin-top: 4px; font-size: 14px; color: #a8997a; }
.cl-list { border: 1px solid #4a3c29; border-radius: 4px; background: rgba(15,11,8,.75); }
.cl-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; min-height: 42px; padding: 5px 8px; border-bottom: 1px solid rgba(74,60,41,.6); font-size: 15px; }
.cl-row:last-child { border-bottom: 0; }
.cl-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #4b5563; box-shadow: 0 0 0 1px #000; }
.cl-dot.on { background: #4ade80; box-shadow: 0 0 0 1px #000, 0 0 5px rgba(74,222,128,.7); }
.cl-who { flex: 1 1 120px; min-width: 0; display: flex; flex-direction: column; gap: 1px; }   /* 名字至少留 120px，擠不下時按鈕換到下一行（靠右） */
.cl-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #f1ead9; }
.cl-meta { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: #a8997a; }
.cl-row.off .cl-nm { color: #9a8f7c; }
.cl-rk { flex: none; padding: 1px 6px; border-radius: 3px; font-size: 13px; color: #d6c8a8; background: #2a2219; border: 1px solid #4a3c29; }
.cl-rk.r3 { color: #93c5fd; border-color: #36507a; }
.cl-rk.r4 { color: #fde047; border-color: #7a6420; }
.cl-btns { flex: none; display: flex; gap: 4px; margin-left: auto; }
.cl-btns button, .cl-ft button { padding: 6px 9px; border: 1px solid #6b5636; border-radius: 6px; background: #1a1612; color: #f0e2bf; font-weight: 700; font-size: 13px; cursor: pointer; font-family: inherit; }
.cl-btns button.danger, .cl-ft button.danger { border-color: #b4483a; background: #3a1410; color: #ffd8cf; }
.cl-empty { padding: 16px; text-align: center; color: #a8997a; font-size: 14px; }
/* 血盟戰爭戰況（伺服器第 455 項，clan.js warBox）：三欄＝我方｜中間標題｜對方，第一列中間是倒數 */
.cl-wgrid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; gap: 2px 12px; padding: 4px 10px 8px; border-bottom: 1px solid rgba(74,60,41,.6); text-align: center; font-size: 14px; color: #e7dcc4; }
.cl-wgrid:last-child { border-bottom: 0; }
.cl-wgrid > :nth-child(-n+3) { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl-wgrid b { font-size: 22px; line-height: 1.1; }
.cl-wme { color: #86efac; }
.cl-wfoe { color: #f87171; }
.cl-wlb { color: #a8997a; font-size: 12px; }
.cl-wgrid .cl-wleft { color: #fde68a; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cl-ft { display: flex; justify-content: flex-end; margin-top: 6px; }
.cl-ft button { padding: 9px 14px; font-size: 14px; }
/* 組隊（js/party.js）：能力視窗「隊伍」分頁的隊員血條（外框沿用血盟的 .cl-row）、點玩家選單的驅逐鈕 */
.pt-row .cl-nm { color: #86efac; }
.pt-hp { display: block; height: 6px; margin-top: 3px; max-width: 180px; border-radius: 3px; background: rgba(0,0,0,.6); box-shadow: 0 0 0 1px #3a2f22; overflow: hidden; }
.pt-hp i { display: block; height: 100%; background: #4ade80; }
.pt-hp.mid i { background: #facc15; } .pt-hp.low i { background: #ef4444; }
.cl-ov .opt.pt-danger { color: #ffb4a6; }
.cl-ov .box { height: auto; max-height: 100%; max-width: 360px; }
.cl-ov .cl-ask { padding: 14px 6px; text-align: center; font-size: 16px; line-height: 1.5; color: #f1ead9; }
.cl-ov .cl-ask b { color: #fde047; }
#lmui-logreset .cl-ask { text-wrap: balance; }   /* 窄手機（320）折行時不要剩「算。」一個字 */
.cl-ov .cl-tip { padding: 4px 2px; font-size: 13px; color: #a8997a; }
/* 呼喚盟友／援護盟友的選人視窗（clan.js callPick）：一位成員一列，離線的灰掉點不了；人多時自己捲 */
.cl-ov .cl-pick { max-height: calc(var(--vh1, 1vh) * 52); overflow-y: auto; }
.cl-pickrow { display: flex; width: 100%; box-sizing: border-box; background: none; border: 0; border-bottom: 1px solid rgba(74,60,41,.6); color: inherit; font-family: inherit; text-align: left; cursor: pointer; }
.cl-pickrow:last-child { border-bottom: 0; }
.cl-pickrow:not(:disabled):active { background: rgba(201,162,77,.18); }
.cl-pickrow:disabled { cursor: default; opacity: .65; }
.cl-ov .opt { width: 100%; min-height: 44px; cursor: pointer; font-family: inherit; justify-content: center; }
.cl-input { width: 100%; box-sizing: border-box; }
.cl-ov .cl-input { padding: 8px 10px; font-size: 18px; font-family: inherit; text-align: center; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 6px; outline: none; }
.cl-ov .cl-input:focus { border-color: #c9a25a; }
/* 製作（npc.js makeHtml）：成品一行，材料一項一行（背包有幾個／要幾個：夠綠、不夠紅），條件小字，數量＋「製作」靠右 */
#npc-window .npw-short { font-size: 15px; font-weight: 700; line-height: 1; color: #f87171; }
#npc-window .npw-cond { font-size: 14px; line-height: 1.2; color: #c4b5fd; }
#npc-window .npw-mats { flex: 1 1 100%; display: flex; flex-direction: column; gap: 3px; padding: 6px 8px; border-radius: 4px; background: #0f0b08; }
#npc-window .npw-mat { display: flex; align-items: center; gap: 6px; font-size: 15px; line-height: 1.2; }
#npc-window .npw-mat .mi { flex: none; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; }
#npc-window .npw-mat .mi img { width: 26px; height: 26px; object-fit: contain; }
#npc-window .npw-mat .mn { flex: 1 1 auto; min-width: 0; color: #e8dcc0; overflow-wrap: anywhere; }
#npc-window .npw-mat .mc { flex: none; font-weight: 700; font-variant-numeric: tabular-nums; }
#npc-window .npw-mat.ok .mc { color: #86efac; }
#npc-window .npw-mat.no .mc { color: #f87171; }
/* 伺服器算的（同製作工匠）：不夠但能先用別的配方做出來＝黃「（可合成）」、倉庫有的小字「倉庫 N」、做不出來的下面一行「還缺：最底層材料」 */
#npc-window .npw-mat.mid .mc, #npc-window .npw-mat .mn i { color: #fbbf24; }
#npc-window .npw-mat .mn i { font-style: normal; font-size: 13px; }
#npc-window .npw-mat .mn em { font-style: normal; font-size: 12px; color: #a8a29e; margin-left: 4px; }
#npc-window .npw-lack { flex: 1 1 100%; font-size: 14px; line-height: 1.4; color: #fca5a5; }
#npc-window .npw-btn:disabled { opacity: .4; cursor: default; }
#npc-window .npw-mkmsg { padding: 8px 10px; border: 1px solid #6a5232; border-radius: 6px; background: #1d1710; font-size: 15px; line-height: 1.4; color: #f5ecd8; }
/* 寵物商：買的那隻在清單下面（捲下去了）結果也看得到 → 結果那句黏在上緣 */
#npc-window .npw-mkmsg.npw-stick { position: sticky; top: -10px; z-index: 2; box-shadow: 0 4px 10px rgba(0,0,0,.7); }
/* 第 138 項 旅館：租好了、退好了寫綠的；底下一行提示（怎麼進房間）不要像空白頁那樣留大空白 */
#npc-window .npw-mkmsg.inn-ok { border-color: #3f7a45; color: #b9f0b0; }
#npc-window .npw-empty.inn-tip { padding: 12px 8px 4px; font-size: 14px; }
/* 點道具圖示看資訊（iteminfo.js）：商店、NPC 製作、製作工匠的道具圖示是按鈕（右下角小 i 表示點得到），名字那塊、材料那行也點得到；買、賣、製作照原本那一列的按鈕 */
#npc-window button.npw-info, #lmui-craft button.cf-info { padding: 0; font: inherit; color: inherit; cursor: pointer; position: relative; }
#npc-window .npw-ic.npw-info::after, #lmui-craft .cf-ic.cf-info::after { content: 'i'; position: absolute; right: -5px; bottom: -5px; width: 15px; height: 15px; border-radius: 50%;
  background: #c9a25a; color: #1a1209; font: italic 700 11px/15px Georgia, "Times New Roman", serif; text-align: center; box-shadow: 0 0 0 1px #000; pointer-events: none; }
#npc-window button.npw-info:active, #lmui-craft .cf-info:active { filter: brightness(1.35); }
#npc-window .npw-main[data-info], #npc-window .npw-mat[data-info] { cursor: pointer; }
#npc-window .npw-mat button.mi { background: none; border: 0; }
/* 製作工匠（待整理）的村莊分頁（craft.js）：一排村莊鈕（放不下換行），下面這村莊的製作 NPC（名字＋小字職稱）；不在身邊的上面一句去哪找 */
#lmui-craft .cf-vils { display: flex; flex-wrap: wrap; gap: 4px; }
#lmui-craft .cf-vils button { flex: 0 0 auto; padding: 4px 7px; border: 1px solid #5a4630; border-radius: 6px; background: #17120c; color: #b9ad98; font-weight: 700; font-size: 13px; line-height: 1.2;
  font-family: inherit; cursor: pointer; }
#lmui-craft .cf-vils button.on { background: #3a2c1a; color: #fde68a; border-color: #b7791f; }
#lmui-craft .cf-npcs button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 400; color: #a8997a; }
#lmui-craft .cf-npcs button.on small { color: #e7c977; }
#lmui-craft button.cf-ic { width: 32px; height: 32px; background: #0f0b08; border: 1px solid #4a3c29; border-radius: 4px; }
#lmui-craft .cf-mat.cf-info { display: inline-flex; align-items: center; gap: 3px; cursor: pointer; }
#lmui-craft .cf-mi { flex: none; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; }
#lmui-craft .cf-mi img { width: 20px; height: 20px; object-fit: contain; }
#lmui-craft .cf-away { padding: 7px 10px; border: 1px solid #6a5232; border-radius: 6px; background: #241a0e; font-size: 15px; line-height: 1.4; color: #fde68a; }
@media (max-height: 500px) {   /* 矮的畫面（同上面製作工匠那條：手機橫放＝電腦版面，只看高度） */
  #lmui-craft .cf-top { flex-direction: column; align-items: stretch; gap: 4px; }
  #lmui-craft .cf-vils { flex-wrap: nowrap; overflow-x: auto; }
  #lmui-craft .cf-vils button { white-space: nowrap; }
}
/* 倉庫（照單機版 #warehouse-window-frame／whx-*）：標題列左邊放寶箱、名字兩側金線；外框同其他視窗 */
#npc-window .whx-chest { display: none; }
#npc-window.wh .npw-head { padding: 0 60px; height: 64px; justify-content: center; }
#npc-window.wh .whx-chest { display: block; position: absolute; left: 19px; top: 49px; transform: translateY(-50%); width: 70px; height: 52px; pointer-events: none; }   /* 框內頂端（17）＋標題列一半（32） */
#npc-window.wh .npw-heading { overflow: visible; }
#npc-window.wh .npw-name { display: inline-flex; align-items: center; gap: 12px; font-size: 24px; letter-spacing: .25em; text-indent: .25em; }
#npc-window.wh .npw-name::before, #npc-window.wh .npw-name::after { content: ''; width: 40px; height: 2px; background: linear-gradient(90deg, transparent, #c9a25a); }
#npc-window.wh .npw-name::after { transform: scaleX(-1); }
#npc-window.wh .npw-title { display: none; }
#npc-window.wh .npw-body { padding: 10px; color: #e8dcc0; }
#npc-window .whx { display: flex; flex-direction: column; gap: 10px; min-height: 100%; }
#npc-window .whx svg { width: 1.25em; height: 1.25em; fill: currentColor; flex: none; }
#npc-window .whx-gold { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid #6a5232; border-radius: 8px; background: linear-gradient(#211b16, #18130f); }
#npc-window .whx-gold-sum { flex: 1 0 auto; display: flex; align-items: center; gap: 8px; font-size: 15px; line-height: 1.5; color: #e8dcc0; }
#npc-window .whx-gold-sum b { color: #f2c94c; margin-left: 4px; }
#npc-window .whx-coins { width: 36px; height: 33px; flex: none; }
#npc-window .whx-gold-ctl { flex: 1 1 250px; display: flex; gap: 8px; }
#npc-window .whx-input { height: 40px; min-width: 0; padding: 0 10px; border: 1px solid #5a4630; border-radius: 6px; background: #0e0b09; color: #f5ecd8; font-size: 16px; }
#npc-window #wh-gold-amt { flex: 1 1 60px; width: 60px; }
#npc-window .whx-btn, #npc-window .whx-act { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; padding: 0 12px;
  border: 1px solid #e3c27a; border-radius: 6px; background: linear-gradient(#c49a46, #8a6424 55%, #6b4c19); color: #fff4d6; font-size: 15px; font-weight: 700; font-family: inherit;
  white-space: nowrap; cursor: pointer; text-shadow: 0 1px 1px rgba(0,0,0,.6); box-shadow: inset 0 1px 0 rgba(255,235,180,.35); }
#npc-window .whx-act { padding: 0 10px; gap: 4px; }
#npc-window .whx-tabs { display: flex; gap: 10px; }
#npc-window .whx-tabs button { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border: 1px solid #5a4630; border-radius: 8px;
  background: linear-gradient(#2a231d, #1a1511); color: #d8ccb4; font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer; }
#npc-window .whx-tabs button svg { width: 1.4em; height: 1.4em; color: #a8977c; }
#npc-window .whx-tabs button.on { border-color: #f0d08a; background: linear-gradient(#cfa24c, #94692a 60%, #7a5520); color: #fff; box-shadow: 0 0 10px rgba(230,180,90,.35); }
#npc-window .whx-tabs button.on svg { color: #fff1cc; }
#npc-window .whx-cats { display: flex; border-bottom: 1px solid #4a3f30; }
#npc-window .whx-cats button { flex: 1 1 0; height: 42px; border: 0; border-bottom: 3px solid transparent; background: none; color: #a8977c; font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer; }
#npc-window .whx-cats button.on { color: #f6e6c0; border-bottom-color: #d9b25c; }
#npc-window .whx-panel { flex: 1 0 auto; display: flex; flex-direction: column; gap: 8px; min-height: 220px; padding: 8px; border: 1px solid #6a5232; border-radius: 8px; background: #120f0c; }
#npc-window .whx-list { display: flex; flex-direction: column; gap: 8px; }
#npc-window .whx-row { display: flex; align-items: center; gap: 8px; padding: 8px; border: 1px solid #5a4630; border-radius: 8px; background: linear-gradient(#251f1a, #1a1612); }
#npc-window .whx-icon { flex: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid #c9a25a; border-radius: 4px; background: #0e0b09; box-shadow: 0 0 6px rgba(230,180,90,.35); }
#npc-window .whx-icon img { width: 38px; height: 38px; object-fit: contain; pointer-events: none; }
#npc-window .whx-name { flex: 1 1 auto; min-width: 0; font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }
#npc-window .whx-cnt { margin-left: 6px; color: #f0e6d0; white-space: nowrap; }
#npc-window .whx-qty { flex: none; width: 56px; height: 40px; padding: 0 8px; border: 1px solid #5a4630; border-radius: 6px; background: #0e0b09; color: #f5ecd8; font-size: 16px; }
#npc-window .whx-empty { padding: 24px 0; text-align: center; color: #8a8070; }
#npc-window .whx-dim { opacity: .55; }
#npc-window .whx-nostore { flex: none; font-size: 13px; color: #94a3b8; }

/* ── 強化視窗（照單機版 css/style.css 的 #enh-window：顏色、尺寸照抄；開著時浮動提示先藏，結果寫在視窗裡） ── */
#enh-window { position: fixed; inset: 0; top: var(--orig-bar-h, 0px); bottom: var(--lmui-pop-b, 0px); z-index: 100; display: flex; align-items: center; justify-content: center; padding: 0 4px; background: rgba(0,0,0,.72); }
#enh-window[hidden] { display: none; }
body.enh-open #lmui-toast { display: none; }
#enh-window .enh-panel { position: relative; width: min(524px, 100%); height: 100%; display: flex; flex-direction: column;
  color: #e8dcc0; font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; }   /* 外框見檔尾「3.5 視窗外框」 */
#enh-window .enh-head { flex: 0 0 auto; height: 28px; display: flex; align-items: center; justify-content: center; }
#enh-window .enh-title { font-size: 17px; font-weight: 900; letter-spacing: .3em; padding-left: .3em; }
#enh-window .enh-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 10px 10px; display: flex; flex-direction: column; gap: 6px; }
#enh-window .enh-body > :not(.enh-grid) { flex-shrink: 0; }
#enh-window .enh-slots { display: flex; align-items: flex-start; justify-content: center; gap: 8px; }
#enh-window .enh-slot { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; flex: 0 1 auto; min-width: 90px; }
#enh-window .enh-slot.cycle { cursor: pointer; }
#enh-window .enh-slot-box { position: relative; width: 62px; height: 62px; display: flex; align-items: center; justify-content: center; background: radial-gradient(#2c2418, #0d0a07); border: 2px solid #b08a3e; border-radius: 6px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.8), 0 0 10px rgba(243,212,138,.25); }
#enh-window .enh-slot-box.empty { border-color: #5a4826; box-shadow: inset 0 0 12px rgba(0,0,0,.8); }
#enh-window .enh-slot-img { width: 48px; height: 48px; object-fit: contain; }
#enh-window .enh-noimg { font-size: 11px; line-height: 1.2; text-align: center; padding: 2px; word-break: break-all; }
#enh-window .enh-slot-name { max-width: 100%; padding: 1px 8px; border: 1px solid #5a4826; border-radius: 4px; background: #0d0a07; font-size: 12px; font-weight: 700; text-align: center; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#enh-window .enh-slot-name.dim { color: #7d6f55; font-weight: 400; }
#enh-window .enh-slot-name.blessed { color: #facc15; }   /* 同 .c-blessed */
#enh-window .enh-cycle-tip { font-size: 10px; line-height: 1; color: #a8997a; }
#enh-window .enh-plus { font-size: 24px; font-weight: 900; color: #f3d48a; text-shadow: 0 0 12px rgba(243,212,138,.7); margin-top: 16px; }
#enh-window .enh-en { position: absolute; left: 3px; top: 1px; font: 800 15px/1 Arial, sans-serif; color: #39a9ff; text-shadow: 0 0 3px #0b4f99, 1px 1px 2px #000; }
#enh-window .enh-slot-box .enh-en { font-size: 16px; }
#enh-window .enh-cnt { position: absolute; right: 3px; bottom: 1px; font-size: 11px; font-weight: 700; color: #fff; text-shadow: 0 0 2px #000, 0 0 2px #000, 0 0 2px #000; }
#enh-window .enh-info { display: grid; grid-template-columns: 1fr 1.2fr; background: linear-gradient(#1a140c, #0d0a07); border: 1px solid #8a6a2e; border-radius: 6px; }
#enh-window .enh-info-cell { padding: 4px; text-align: center; }
#enh-window .enh-info-cell + .enh-info-cell { border-left: 1px solid #3e3018; }
#enh-window .enh-info-label { font-size: 11px; color: #bfae86; }
#enh-window .enh-info-val { margin-top: 1px; font-size: 17px; font-weight: 900; color: #f3d48a; white-space: nowrap; }
#enh-window .enh-info-val.danger { color: #f87171; }
#enh-window .enh-info-val.safe { color: #86efac; }
#enh-window .enh-note { margin-top: -2px; text-align: center; font-size: 12px; color: #a8997a; }
#enh-window .enh-stats { display: flex; flex-direction: column; gap: 1px; padding: 4px 12px; background: #0d0a07; border: 1px solid #3e3018; border-radius: 6px; }
#enh-window .enh-stat-row { display: grid; grid-template-columns: 5em 1fr auto 1fr; align-items: center; gap: 6px; font-size: 13px; }
#enh-window .enh-stat-label { color: #bfae86; }
#enh-window .enh-stat-old { text-align: right; color: #d6c9ab; }
#enh-window .enh-stat-arrow { color: #8a6a2e; }
#enh-window .enh-stat-new { color: #d6c9ab; }
#enh-window .enh-stat-new.up { color: #86efac; font-weight: 700; }
#enh-window .enh-result { text-align: center; font-size: 13px; font-weight: 700; padding: 3px 6px; border-radius: 6px; }
#enh-window .enh-result.good { color: #fde68a; background: rgba(202,138,4,.18); border: 1px solid #a16207; }
#enh-window .enh-result.bad { color: #fca5a5; background: rgba(127,29,29,.35); border: 1px solid #991b1b; }
#enh-window .enh-result.mid { color: #cbd5e1; background: rgba(51,65,85,.35); border: 1px solid #475569; }
#enh-window .enh-go { align-self: center; min-width: 62%; padding: 7px 18px; font-size: 17px; font-weight: 900; letter-spacing: .3em; color: #f3d48a; background: linear-gradient(#24356b, #13204a);
  border: 2px solid #c9a24d; border-radius: 8px; box-shadow: 0 0 14px rgba(243,212,138,.35), inset 0 0 10px rgba(0,0,0,.6); cursor: pointer; text-shadow: 0 1px 0 #000; font-family: inherit; }
#enh-window .enh-go:active { transform: translateY(1px); }
#enh-window .enh-go:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; }
#enh-window .enh-auto { display: flex; justify-content: center; gap: 6px; }
#enh-window .enh-auto-tip { margin-top: -4px; text-align: center; font-size: 12px; color: #a8997a; }
#enh-window .enh-auto-btn, #enh-window .enh-auto-sel { padding: 4px 10px; font-size: 13px; font-weight: 700; color: #cfe0ff; background: #14203d; border: 1px solid #3b5a9a; border-radius: 6px; font-family: inherit; }
#enh-window .enh-tabs { flex: 0 0 auto; display: flex; gap: 6px; margin-top: 2px; border-bottom: 1px solid #5a4826; }
#enh-window .enh-tab { flex: 1; padding: 5px 0; font-size: 14px; font-weight: 700; color: #a8997a; background: #15100a; border: 1px solid #3e3018; border-bottom: none; border-radius: 6px 6px 0 0; cursor: pointer; font-family: inherit; }
#enh-window .enh-tab.on { color: #f3d48a; background: #2a2013; border-color: #8a6a2e; }
#enh-window .enh-grid { flex: 1 1 auto; min-height: 150px; overflow-y: auto; align-content: start; display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 6px; padding-top: 2px; }
#enh-window .enh-cell { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 0; background: none; border: 0; cursor: pointer; min-width: 0; color: #e8dcc0; font-family: inherit; }
#enh-window .enh-cell-box { position: relative; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: radial-gradient(#211a12, #0b0906); border: 1px solid #4a3a1c; border-radius: 5px; }
#enh-window .enh-cell.sel .enh-cell-box { border: 2px solid #f3d48a; box-shadow: 0 0 10px rgba(243,212,138,.6); }
#enh-window .enh-cell-img { width: 42px; height: 42px; object-fit: contain; }
#enh-window .enh-cell-name { width: 100%; font-size: 11px; line-height: 1.25; text-align: center; word-break: break-all; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#enh-window .enh-empty { grid-column: 1 / -1; padding: 18px 0; text-align: center; color: #7d6f55; font-size: 13px; }
/* ── 📢 強化全服廣播跑馬燈（照單機版 css/style.css 的 #enh-broadcast；enhbc.js）：字從右跑到左；壓過所有視窗，不擋點擊。
   位置：頭像、右上狀態圖示那一列的下面（top／left／right 由 enhbc.js place() 量版面設，名單、小地圖重疊時讓開；這裡是量不到時的預設） ── */
#enh-broadcast { position: fixed; left: 0; right: 0; top: calc(var(--orig-bar-h, 0px) + 70px); z-index: 140; height: 24px; overflow: hidden; pointer-events: none;
  background: linear-gradient(90deg, rgba(20,14,6,0), rgba(20,14,6,.88) 12%, rgba(20,14,6,.88) 88%, rgba(20,14,6,0));
  border-top: 1px solid rgba(201,162,77,.55); border-bottom: 1px solid rgba(201,162,77,.55); }
#enh-broadcast.hidden { display: none !important; }
#enh-broadcast .enh-bc-track { position: absolute; left: 0; top: 0; height: 100%; display: flex; align-items: center; white-space: nowrap; will-change: transform; }
#enh-broadcast .enh-bc-text { font: 700 14px/1 "Microsoft JhengHei", system-ui, sans-serif; color: #f3e3bd; text-shadow: 0 1px 0 #000, 0 0 4px #000; }
#enh-broadcast .enh-bc-name { color: #7fd0ff; }
#enh-broadcast .enh-bc-en { color: #ffe38a; text-shadow: 0 0 6px rgba(255,214,100,.85), 0 1px 0 #000; }
#enh-broadcast.fail { border-color: rgba(220,80,80,.6); }
#enh-broadcast .enh-bc-boom { color: #ff8a8a; text-shadow: 0 0 6px rgba(255,80,80,.75), 0 1px 0 #000; }
/* ── 強化動畫（照單機版 css/style.css 的 enh-fx*：蓄力 → 成功／失敗消失／強化值降低／沒有變化各一套；enhance.js playCharge／outcomeFx）── */
#enh-window .enh-fx { position: absolute; inset: 0; pointer-events: none; z-index: 5; overflow: hidden; }
/* 蓄力：兩格發光脈動、＋旋轉放大 */
#enh-window.enh-charging .enh-slot.eq .enh-slot-box, #enh-window.enh-charging .enh-slot.sc .enh-slot-box { animation: enhCharge .65s ease-in forwards; }
#enh-window.enh-charging .enh-plus { animation: enhPlusSpin .65s ease-in forwards; }
@keyframes enhCharge { 0% { box-shadow: inset 0 0 12px rgba(0,0,0,.8), 0 0 10px rgba(243,212,138,.25); } 100% { box-shadow: inset 0 0 18px rgba(255,236,170,.6), 0 0 26px 6px rgba(255,220,130,.85); border-color: #ffe9a8; } }
@keyframes enhPlusSpin { 0% { transform: rotate(0) scale(1); } 100% { transform: rotate(360deg) scale(1.5); text-shadow: 0 0 18px #fff, 0 0 30px #f3d48a; } }
/* 結果特效：以裝備格中心為原點，--s＝格子寬 */
#enh-window .enh-fx-at { position: absolute; width: 0; height: 0; }
#enh-window .enh-fx-at > * { position: absolute; left: 0; top: 0; }
#enh-window .enh-fx-at img { max-width: none; max-height: none; }   /* 全站 img{max-width:100%}：錨點寬 0 會把圖壓成 0 寬 */
#enh-window .enh-fx-flash { width: calc(var(--s) * 2.6); height: calc(var(--s) * 2.6); margin: calc(var(--s) * -1.3) 0 0 calc(var(--s) * -1.3); border-radius: 50%; opacity: 0; }
#enh-window .ok .enh-fx-flash   { background: radial-gradient(closest-side, rgba(255,250,220,1), rgba(255,215,110,.75) 40%, rgba(255,200,80,0)); animation: enhFlash .8s ease-out forwards; }
#enh-window .boom .enh-fx-flash { background: radial-gradient(closest-side, rgba(255,255,255,1), rgba(220,230,245,.85) 35%, rgba(255,60,60,.35) 65%, rgba(255,0,0,0)); animation: enhFlash .7s ease-out forwards; }
#enh-window .none .enh-fx-flash { background: radial-gradient(closest-side, rgba(200,210,225,.6), rgba(150,160,175,0)); animation: enhFlash .6s ease-out forwards; }
#enh-window .down .enh-fx-flash { background: radial-gradient(closest-side, rgba(190,120,255,.7), rgba(120,40,200,0)); animation: enhFlash .7s ease-out forwards; }
@keyframes enhFlash { 0% { opacity: 0; transform: scale(.3); } 25% { opacity: 1; } 100% { opacity: 0; transform: scale(1.25); } }
#enh-window .enh-fx-rays { width: calc(var(--s) * 3.4); height: calc(var(--s) * 3.4); margin: calc(var(--s) * -1.7) 0 0 calc(var(--s) * -1.7); border-radius: 50%;
  background: repeating-conic-gradient(rgba(255,228,150,.75) 0 6deg, rgba(255,228,150,0) 6deg 24deg);
  -webkit-mask: radial-gradient(circle, transparent 18%, #000 30%, transparent 70%); mask: radial-gradient(circle, transparent 18%, #000 30%, transparent 70%); animation: enhRays 1.1s ease-out forwards; }
@keyframes enhRays { 0% { opacity: 0; transform: rotate(0) scale(.4); } 25% { opacity: 1; } 100% { opacity: 0; transform: rotate(60deg) scale(1.2); } }
#enh-window .enh-fx-spark { width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #fff6c8; box-shadow: 0 0 8px 3px rgba(255,214,100,.9); opacity: 0; animation: enhSpark .9s ease-out var(--t) forwards; }
@keyframes enhSpark { 0% { opacity: 1; transform: rotate(var(--a)) translateX(0) scale(1); } 100% { opacity: 0; transform: rotate(var(--a)) translateX(calc(var(--s) * var(--d))) scale(.3); } }
#enh-window .enh-fx-icon { width: calc(var(--s) * .76); height: calc(var(--s) * .76); margin: calc(var(--s) * -.38) 0 0 calc(var(--s) * -.38); object-fit: contain; }
#enh-window .ok .enh-fx-icon   { animation: enhIconOk 1s ease-out forwards; }
#enh-window .none .enh-fx-icon, #enh-window .down .enh-fx-icon { animation: enhIconWobble .6s ease-in-out forwards; }
@keyframes enhIconOk { 0% { transform: scale(1); filter: brightness(1); } 30% { transform: scale(1.35); filter: brightness(1.9) drop-shadow(0 0 10px #ffe08a); } 100% { transform: scale(1); filter: brightness(1); opacity: 0; } }
@keyframes enhIconWobble { 0%,100% { transform: rotate(0); opacity: 1; } 20% { transform: rotate(-12deg); } 45% { transform: rotate(10deg); } 70% { transform: rotate(-5deg); } 100% { opacity: 0; } }
/* 失敗：先銀白發光，再碎片往外飛＋旋轉＋淡出 */
#enh-window .enh-fx-shard { width: calc(var(--s) * .76); height: calc(var(--s) * .76); margin: calc(var(--s) * -.38) 0 0 calc(var(--s) * -.38); object-fit: contain; animation: enhShard 1.15s cubic-bezier(.2,.6,.3,1) forwards; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)); }
@keyframes enhShard {
  0%   { transform: none; filter: brightness(1); opacity: 1; }
  30%  { transform: none; filter: brightness(3) grayscale(1) drop-shadow(0 0 8px #fff); opacity: 1; }
  75%  { opacity: .85; }
  100% { transform: rotate(var(--a)) translateX(calc(var(--s) * 1.5)) rotate(var(--r)); filter: brightness(2) grayscale(1); opacity: 0; }
}
#enh-window .enh-fx-smoke { width: calc(var(--s) * 1.2); height: calc(var(--s) * .7); margin: calc(var(--s) * -.2) 0 0 calc(var(--s) * -.6); border-radius: 50%; background: radial-gradient(closest-side, rgba(170,170,180,.6), rgba(120,120,130,0)); animation: enhSmoke 1s ease-out forwards; }
@keyframes enhSmoke { 0% { opacity: 0; transform: translateY(0) scale(.5); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(calc(var(--s) * -.6)) scale(1.4); } }
/* 結果大字：視窗水平置中、壓在兩格那一列 */
#enh-window .enh-fx-text { position: absolute; transform: translate(-50%,-50%); white-space: nowrap; padding: 6px 18px; border-radius: 8px; background: rgba(8,6,4,.72); font: 900 26px/1 "Microsoft JhengHei", sans-serif; letter-spacing: .12em; opacity: 0; animation: enhText 1.25s ease-out forwards; }
#enh-window .enh-fx-text span { margin-left: .35em; color: #7fd0ff; }
#enh-window .enh-fx-text.ok   { color: #ffe38a; text-shadow: 0 0 6px #b45309, 0 2px 0 #000, 0 0 16px rgba(255,214,100,.85); box-shadow: 0 0 18px rgba(255,214,100,.35); }
#enh-window .enh-fx-text.boom { color: #ff8a8a; text-shadow: 0 0 6px #7f1d1d, 0 2px 0 #000, 0 0 16px rgba(255,80,80,.75); box-shadow: 0 0 18px rgba(255,80,80,.3); }
#enh-window .enh-fx-text.none, #enh-window .enh-fx-text.down { font-size: 20px; color: #d6dbe3; text-shadow: 0 2px 0 #000; }
#enh-window .enh-fx-text.down { color: #d8b4fe; }
@keyframes enhText { 0% { opacity: 0; transform: translate(-50%,-50%) scale(.5); } 16% { opacity: 1; transform: translate(-50%,-50%) scale(1.15); } 28% { transform: translate(-50%,-50%) scale(1); } 80% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%,-50%) scale(1); } }
#enh-window .enh-panel.enh-shake { animation: enhShake .35s linear .25s; }
@keyframes enhShake { 0%,100% { transform: translate(0,0); } 20% { transform: translate(-6px,2px); } 40% { transform: translate(5px,-2px); } 60% { transform: translate(-4px,1px); } 80% { transform: translate(3px,0); } }

/* ── 3.5 視窗外框：所有彈出視窗共用（用戶端 Sprite.pak 562，背包 549、角色 563c 也是這個框：深色石紋底、金色繩紋邊框、
   右邊直立金色捲軸、右上角 Close 牌子；data/ui/win.png 257×336）。
   九宮格：上 64（含 Close 牌子、捲軸上端圓鈕和接圓鈕的金色尾巴）、右 60（捲軸＋內框右緣圓角）、下 60（捲軸下端圓鈕和尾巴）、左 26（內框左側圓角）；
   四角原樣，四邊重複貼（不拉伸），1 個 CSS 像素＝1 個用戶端像素。框畫在 ::before，框的粗細跟內容的留白分開算。
   win.png 的內框裡面是挖空的（內框石紋有明暗，跟著四邊重複會一格一格看得到接縫）：底下 ::after 鋪無接縫的 win-stone.png，範圍＝挖空處 x16–209、y20–312。
   內容放進圖上的內框（x13–210、y17–315）→ 留白上 17、右 49、下 21、左 15。外框寬度比原本多 64px，裡面的版面寬度不變（手機上是畫面寬度扣掉外框）。
   標題＝框內頂端的金色字（不另外一條標題列）；Close 牌子＝關閉鈕（各視窗原本的 ✕ 鈕改成透明、疊在牌子上，按的範圍 48×34）。
   內容要捲時，捲軸上疊一顆金色圓鈕（js/frame.js）；原生捲動條藏起來，手指照常滑 ── */
#lmui-win, .lmui-ov .box, #lmui-updwin .box, #npc-window .npw-panel, #enh-window .enh-panel, #lmui-fnmenu {
  isolation: isolate; min-width: 96px; min-height: 128px; padding: 17px 49px 21px 15px; border: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
#lmui-win::before, .lmui-ov .box::before, #lmui-updwin .box::before, #npc-window .npw-panel::before, #enh-window .enh-panel::before, #lmui-fnmenu::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-style: solid; border-width: 64px 60px 60px 26px;
  border-image: url("/data/ui/win.png") 64 60 60 26 / 64px 60px 60px 26px repeat; image-rendering: pixelated; filter: drop-shadow(0 4px 10px rgba(0,0,0,.75)); }
#lmui-win::after, .lmui-ov .box::after, #lmui-updwin .box::after, #npc-window .npw-panel::after, #enh-window .enh-panel::after, #lmui-fnmenu::after {
  content: ""; position: absolute; inset: 20px 47px 23px 16px; z-index: -2; pointer-events: none; background: url("/data/ui/win-stone.png") 0 0 / 160px 232px repeat; image-rendering: pixelated; }
.lmui-ov .box, #lmui-updwin .box, #npc-window .npw-panel { position: relative; }
/* 標題：框內頂端金色字 */
#lmui-whead b, .lmui-ov .hd, #lmui-updwin .hd, #enh-window .enh-title, #npc-window .npw-name, #npc-window .npw-title {
  color: #f3d48a; text-shadow: 0 1px 0 #000, 0 0 8px rgba(243,212,138,.35); }
/* 關閉：右上角那塊牌子就是 562 原圖的（形狀、大小、邊框、底色、位置都不動）；tools/client-ui.mjs 只把牌子上的英文「Close」用牌子底色補掉，
   這裡在同一塊牌子裡寫「關閉」：牌子裡面 x226–249、y3–15（離右緣 7px、24×13），字照原本 Close 的樣子（白字、暗邊），盡量大但不超出牌子。
   按的範圍：整顆鈕 52×44 透明往外加大（看不出來）；各視窗原本的 ✕／關閉鈕都套這個 */
#lmui-whead button, .lmui-ov .hd button[data-x], #lmui-updwin .hd button, #npc-window .npw-close, #enh-window .enh-x, #lmui-fnmenu .l35-x {
  position: absolute; z-index: 5; top: 0; right: 0; left: auto; bottom: auto; transform: none; width: 52px; min-width: 0; height: 44px; margin: 0; padding: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; font-size: 0; color: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; animation: none; }
#lmui-whead button::after, .lmui-ov .hd button[data-x]::after, #lmui-updwin .hd button::after, #npc-window .npw-close::after, #enh-window .enh-x::after, #lmui-fnmenu .l35-x::after {
  content: "關閉"; position: absolute; top: 3px; right: 7px; width: 24px; height: 13px; display: flex; align-items: center; justify-content: center; overflow: visible; pointer-events: none;
  font: 500 13px/13px "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; letter-spacing: 0; white-space: nowrap; color: #ececec;
  transform: scaleX(.9); text-shadow: 1px 1px 0 #000, 0 0 2px rgba(0,0,0,.9); }
#lmui-whead button:active::after, .lmui-ov .hd button[data-x]:active::after, #lmui-updwin .hd button:active::after, #npc-window .npw-close:active::after, #enh-window .enh-x:active::after, #lmui-fnmenu .l35-x:active::after {
  color: #f3d48a; }
/* 捲動鈕：捲軸在圖上 x222–227（中心離右緣 32.5px），上下圓鈕之間滑（上端讓開關閉鈕，js/frame.js TOP）；鈕本身 12px，按的範圍 32px */
.l35-knob { position: absolute; z-index: 3; right: 16px; top: 24px; width: 32px; height: 32px; background: url("/data/ui/win-knob.png") center / 12px 12px no-repeat;
  image-rendering: pixelated; touch-action: none; cursor: grab; }
.l35-knob.on { cursor: grabbing; filter: brightness(1.35); }
.l35-knob[hidden] { display: none; }
#lmui-wbody, #lmui-wbody .lsk2-scroll, .lmui-ov .bd, #lmui-updwin .bd, #npc-window .npw-body, #enh-window .enh-body, #enh-window .enh-grid { scrollbar-width: none; }
#lmui-wbody::-webkit-scrollbar, #lmui-wbody .lsk2-scroll::-webkit-scrollbar, .lmui-ov .bd::-webkit-scrollbar, #lmui-updwin .bd::-webkit-scrollbar,
#npc-window .npw-body::-webkit-scrollbar, #enh-window .enh-body::-webkit-scrollbar, #enh-window .enh-grid::-webkit-scrollbar { display: none; }

/* ── 道具圖示光效（站長 2026-10-18「依照單機版的設定」：數值照抄 idle-lineage-class css/style.css，判斷 items.js glowCls 照 js/08 getGlowClass） ──
   套在道具圖示 <img> 上，格子邊框照一般的。寫成 img.xxx、放檔尾：.bag-cell img、.ld-cell img 自己有 drop-shadow，同權重後寫的贏。
   動的只有祝福（呼吸）跟第 5 段屬性（3.5 只到 3 段＝不會出現）；屬性是靜態（詛咒的暗紅 2026-10-19 拿掉）。視窗關了元素就不在，動畫跟著停 */
/* 屬性：同色系光、段數越高越亮（第 5 段呼吸） */
img.attr-glow-fr1 { filter: drop-shadow(0 0 3px rgba(252,165,165,0.7)); }
img.attr-glow-fr2 { filter: drop-shadow(0 0 4px rgba(248,113,113,0.8)); }
img.attr-glow-fr3 { filter: drop-shadow(0 0 6px rgba(239,68,68,0.9)); }
img.attr-glow-fr4 { filter: drop-shadow(0 0 7px rgba(220,38,38,1)) drop-shadow(0 0 14px rgba(220,38,38,0.55)); }
@keyframes attrGlowFire { 0%,100% { filter: drop-shadow(0 0 5px rgba(220,38,38,0.8)); } 50% { filter: drop-shadow(0 0 10px rgba(239,68,68,1)) drop-shadow(0 0 20px rgba(220,38,38,0.7)); } }
img.attr-glow-fr5 { animation: attrGlowFire 2s infinite ease-in-out; }
img.attr-glow-wa1 { filter: drop-shadow(0 0 3px rgba(147,197,253,0.7)); }
img.attr-glow-wa2 { filter: drop-shadow(0 0 4px rgba(96,165,250,0.8)); }
img.attr-glow-wa3 { filter: drop-shadow(0 0 6px rgba(59,130,246,0.9)); }
img.attr-glow-wa4 { filter: drop-shadow(0 0 7px rgba(37,99,235,1)) drop-shadow(0 0 14px rgba(37,99,235,0.55)); }
@keyframes attrGlowWater { 0%,100% { filter: drop-shadow(0 0 5px rgba(37,99,235,0.8)); } 50% { filter: drop-shadow(0 0 10px rgba(59,130,246,1)) drop-shadow(0 0 20px rgba(37,99,235,0.7)); } }
img.attr-glow-wa5 { animation: attrGlowWater 2s infinite ease-in-out; }
img.attr-glow-wi1 { filter: drop-shadow(0 0 3px rgba(134,239,172,0.7)); }
img.attr-glow-wi2 { filter: drop-shadow(0 0 4px rgba(74,222,128,0.8)); }
img.attr-glow-wi3 { filter: drop-shadow(0 0 6px rgba(34,197,94,0.9)); }
img.attr-glow-wi4 { filter: drop-shadow(0 0 7px rgba(22,163,74,1)) drop-shadow(0 0 14px rgba(22,163,74,0.55)); }
@keyframes attrGlowWind { 0%,100% { filter: drop-shadow(0 0 5px rgba(22,163,74,0.8)); } 50% { filter: drop-shadow(0 0 10px rgba(34,197,94,1)) drop-shadow(0 0 20px rgba(22,163,74,0.7)); } }
img.attr-glow-wi5 { animation: attrGlowWind 2s infinite ease-in-out; }
img.attr-glow-ea1 { filter: drop-shadow(0 0 3px rgba(214,178,133,0.7)); }
img.attr-glow-ea2 { filter: drop-shadow(0 0 4px rgba(193,149,99,0.8)); }
img.attr-glow-ea3 { filter: drop-shadow(0 0 6px rgba(169,123,68,0.9)); }
img.attr-glow-ea4 { filter: drop-shadow(0 0 7px rgba(143,99,48,1)) drop-shadow(0 0 14px rgba(143,99,48,0.55)); }
@keyframes attrGlowEarth { 0%,100% { filter: drop-shadow(0 0 5px rgba(143,99,48,0.8)); } 50% { filter: drop-shadow(0 0 10px rgba(169,123,68,1)) drop-shadow(0 0 20px rgba(143,99,48,0.7)); } }
img.attr-glow-ea5 { animation: attrGlowEarth 2s infinite ease-in-out; }
/* 祝福（站長 2026-10-26「我覺得現在邊框不自然」）：原本貼圖案的 1px 硬金邊＋整張圖亮暗閃 → 改成貼著輪廓的柔和金色光暈、圖微微偏暖，不閃（也省電）
   屬性＋祝福：光暈再亮一點、往外多一層 */
img.bless-glow { filter: brightness(1.06) sepia(.08) drop-shadow(0 0 1px rgba(255, 226, 140, .95)) drop-shadow(0 0 3px rgba(255, 196, 80, .6)); }
img.bless-glow-strong { filter: brightness(1.1) sepia(.1) drop-shadow(0 0 1px rgba(255, 240, 190, 1)) drop-shadow(0 0 3px rgba(255, 210, 100, .85)) drop-shadow(0 0 7px rgba(255, 180, 60, .5)); }

/* 系統設定「減少動態效果」（手機省電）：祝福、第 5 段屬性不跑動畫，停在亮的那一格 */
@media (prefers-reduced-motion: reduce) {
  img.attr-glow-fr5, img.attr-glow-wa5, img.attr-glow-wi5, img.attr-glow-ea5 { animation: none; }
  img.attr-glow-fr5 { filter: drop-shadow(0 0 8px rgba(239, 68, 68, 1)) drop-shadow(0 0 16px rgba(220, 38, 38, .6)); }
  img.attr-glow-wa5 { filter: drop-shadow(0 0 8px rgba(59, 130, 246, 1)) drop-shadow(0 0 16px rgba(37, 99, 235, .6)); }
  img.attr-glow-wi5 { filter: drop-shadow(0 0 8px rgba(34, 197, 94, 1)) drop-shadow(0 0 16px rgba(22, 163, 74, .6)); }
  img.attr-glow-ea5 { filter: drop-shadow(0 0 8px rgba(169, 123, 68, 1)) drop-shadow(0 0 16px rgba(143, 99, 48, .6)); }
}

/* 變身外型選單（hud.js polyMenu：變形術、變形卷軸、掛機設定的自動變身）：搜尋框固定在上面（不跟著捲），下面照等級分組——
   每組一條「LvNN」標題（捲動時黏在最上面）＋兩欄卡片；卡片第一行名字、第二行標示（遠距離／不能用魔法／會脫下防具／裝備不合），
   沒有標示的也留那一行，每張一樣高、名字都在同一個高度；現在的金框（.opt.on）。.bd 當 offsetParent（打開時捲到金框那張） */
#lmui-polymenu .box { height: auto; max-height: 100%; max-width: 420px; }
#lmui-polymenu .pm-top { flex: none; padding: 2px 8px 6px; }
#lmui-polymenu .pm-q { display: block; width: 100%; box-sizing: border-box; padding: 8px 10px; font-size: 16px; font-family: inherit; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 6px; outline: none; }
#lmui-polymenu .pm-q:focus { border-color: #c9a25a; }
#lmui-polymenu .bd { position: relative; padding: 0 8px 8px; }
#lmui-polymenu .pm-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
#lmui-polymenu .pm-lv { grid-column: 1 / -1; position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 8px; margin-top: 4px; padding: 5px 2px 4px;
  font-size: 14px; font-weight: 700; letter-spacing: .5px; color: #f3d48a; background: #16110b; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
#lmui-polymenu .pm-lv:first-child { margin-top: 0; }
#lmui-polymenu .pm-lv::after { content: ""; flex: 1 1 auto; border-top: 1px solid rgba(138,106,58,.75); }   /* 用框線不用 1px 漸層：電腦 4:3 舞台縮放時漸層線會不見 */
#lmui-polymenu .pm-c { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2px; min-height: 48px; padding: 5px 8px; }
#lmui-polymenu .pm-c .pm-n { font-size: 15px; line-height: 19px; }
#lmui-polymenu .pm-c .pm-t { display: flex; flex-wrap: wrap; gap: 3px; min-height: 16px; overflow: visible; white-space: normal; }
#lmui-polymenu .pm-c .pm-t i { font-style: normal; font-size: 11px; line-height: 14px; padding: 0 4px; border: 1px solid rgba(232,162,92,.45); border-radius: 3px; color: #f0b06a; background: rgba(232,162,92,.12); white-space: nowrap; }
#lmui-polymenu .pm-rand { grid-column: 1 / -1; min-height: 40px; justify-content: center; }
#lmui-polymenu .pm-rand .pm-t { display: none; }
#lmui-polymenu .sp-none { grid-column: 1 / -1; padding: 16px 0; text-align: center; color: #a8997a; }
/* 手機橫式（畫面矮）：視窗只有一百多 px 高 → 搜尋框收起來（打字時鍵盤也會蓋掉整個畫面）、標題列和卡片縮一點，多看得到一列 */
@media (max-height: 430px) {
  #lmui-polymenu .pm-top { display: none; }
  #lmui-polymenu .pm-lv { margin-top: 2px; padding: 2px 2px 3px; font-size: 13px; }
  #lmui-polymenu .pm-c { min-height: 42px; padding: 4px 7px; }
  #lmui-polymenu .pm-c .pm-n { font-size: 14px; line-height: 17px; }
}
/* 掛機設定「變身消失時自動使用」的形態鈕（外觀同下拉，按了開上面的選單） */
.as-pick { flex: 1 1 120px; min-width: 0; height: 38px; display: flex; align-items: center; gap: 6px; padding: 0 10px; font-family: inherit; font-size: 16px; color: #f0e2bf; text-align: left;
  background: #0b0908; border: 1px solid #6b5636; border-radius: 6px; cursor: pointer; }
.as-pick span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.as-pick::after { content: "›"; flex: none; font-size: 22px; line-height: 1; color: #c9a25a; }
.as-pick:active { filter: brightness(1.2); }
/* 設定 → 補給：自動購買含稅幾 %（hud.js taxNote）——小字靠右，不搶版面 */
.as-tax { margin: -2px 2px 4px; text-align: right; font-size: 12px; line-height: 1.3; color: #a8997a; }
/* 道具視窗比較框：身上那件、換上那件可以點（hud.js openItem、iteminfo.js；equipdiff.js data-cmpid／data-cmpnow） */
.cmp-card.cmp-go { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cmp-card.cmp-go:active .cmp-ic { filter: brightness(1.3); }

/* AUTO 鈕（站長 2026-10-23 選 A 符文魔法陣；hud.js AUTO_STYLE＝a）：圖示分兩層（.as-ring 外圈、.as-core 中間＋AUTO 字），開著才動。
   只動 transform／opacity（圖層合成，不重畫）；.as-halo 外圈光、.as-clip 光芒掃過（b）、.as-wave 波紋（c）。關著＝灰石、不動 */
:is(#lmui-auto, #lmui-autofloat)[data-as] > svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; filter: none; }   /* 寬高寫死：iPhone（WebKit）沒寫會照 SVG 預設大小，兩層對不齊 */
:is(#lmui-auto, #lmui-autofloat)[data-as] > .as-core { filter: drop-shadow(0 1px 1px rgba(0,0,0,.85)); }
:is(#lmui-auto, #lmui-autofloat) > i { position: absolute; border-radius: 50%; pointer-events: none; }
:is(#lmui-auto, #lmui-autofloat) > .as-halo { inset: -6px; opacity: 0; box-shadow: 0 0 10px 3px var(--as-glow, #ffd36a), inset 0 0 5px 1px var(--as-glow, #ffd36a); }
:is(#lmui-auto, #lmui-autofloat) > .as-clip { inset: 0; overflow: hidden; }
:is(#lmui-auto, #lmui-autofloat) > .as-clip > b { position: absolute; top: -20%; bottom: -20%; left: 0; width: 40%; opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255,248,214,.85) 50%, transparent); transform: translateX(-130%) skewX(-22deg); }
:is(#lmui-auto, #lmui-autofloat) > .as-wave { inset: -2px; border: 2px solid var(--as-glow, #ffd36a); opacity: 0; }
:is(#lmui-auto, #lmui-autofloat).off > .as-ring { color: #8d8576; opacity: .55; }
:is(#lmui-auto, #lmui-autofloat).off > .as-core { color: #d8d4cc; }
/* a 符文魔法陣：深紫底、金色符文環慢轉、紫金光脈動 */
:is(#lmui-auto, #lmui-autofloat)[data-as="a"]:not(.off) { --as-glow: #c99cff; color: #fff1c9;
  background: radial-gradient(circle at 45% 35%, #8f63e0, #4a2499 50%, #170842 88%); }
:is(#lmui-auto, #lmui-autofloat)[data-as="a"]:not(.off) > .as-ring { color: #ffd779; animation: asSpin 9s linear infinite; }
:is(#lmui-auto, #lmui-autofloat)[data-as="a"]:not(.off) > .as-halo { animation: asPulse 1.8s ease-in-out infinite; }
@keyframes asSpin { to { transform: rotate(360deg); } }
@keyframes asPulse { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  :is(#lmui-auto, #lmui-autofloat) > *, :is(#lmui-auto, #lmui-autofloat) > i > b { animation: none !important; }
  :is(#lmui-auto, #lmui-autofloat):not(.off) > .as-halo { opacity: .9; }
}
/* 血盟第 111 項（js/clan.js、js/npc.js）：盟徽、分頁底下多顆按鈕、更換盟徽視窗、倉庫的「個人／血盟」切換 */
.cl-emb { width: 16px; height: 12px; margin-right: 5px; vertical-align: -1px; image-rendering: pixelated; box-shadow: 0 0 0 1px rgba(0,0,0,.8); }
.cl-ft { flex-wrap: wrap; gap: 6px; }
.cl-ov .cl-embbox { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 14px 6px; }
.cl-embpv { display: flex; align-items: center; justify-content: center; width: 144px; height: 108px; border: 1px solid #5a4630; border-radius: 4px; background: #0e0b09; color: #a8997a; font-size: 14px; }
.cl-embpv .cl-emb { width: 128px; height: 96px; margin: 0; }
.cl-embfile { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border: 1px solid #6b5636; border-radius: 6px; background: #1a1612; color: #f0e2bf; font-weight: 700; font-size: 15px; cursor: pointer; }
#npc-window .whx-src { margin-bottom: 8px; }
#npc-window .whx-src button { height: 40px; }
#npc-window .npw-empty .npw-btn { margin-top: 12px; }
/* 第 112 項 血盟倉庫紀錄（npc.js logPanel）：一列＝圖示、名字＋數量、下一行誰＋時間、右邊存入／取出 */
#npc-window .whx-log { align-items: center; }
#npc-window .whx-log-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#npc-window .whx-log-sub { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 13px; color: #a8977c; }
#npc-window .whx-log-who { color: #d8c9a6; font-weight: 700; overflow-wrap: anywhere; }
#npc-window .whx-log-when { white-space: nowrap; }
#npc-window .whx-log-act { flex: none; min-width: 40px; padding: 0 2px; font-size: 14px; font-weight: 700; text-align: center; white-space: nowrap; }
#npc-window .whx-log-act.in { color: #9fd486; }   /* 純文字，不像按鈕（同一列的「取出」鈕在倉庫分頁） */
#npc-window .whx-log-act.out { color: #f0a868; }
#npc-window .whx-tabs3 { gap: 6px; }   /* 血盟倉庫多一個「紀錄」：三個分頁擠得下（窄視窗不換行） */
#npc-window .whx-tabs3 button { min-width: 0; padding: 0 6px; gap: 4px; white-space: nowrap; }
#npc-window .whx-tabs3 button svg { display: none; }
#npc-window .whx-tabs3 .whx-logtab { flex: 0 0 auto; padding: 0 14px; }

/* 狀態圖示說明框（hud.js paintStip；站長 2026-10-23「電腦比過去顯示該圖示能力，手機也一樣」）：名稱列＝視窗標題那種金字暗金底，
   效果一句一行（菱形點），剩餘時間在最下面；寬度跟著內容、最多 280px（窄螢幕夾在畫面內），長句自己換行 */
#lmui-stip { width: max-content; max-width: min(280px, calc(var(--vw1, 1vw) * 100 - 12px)); padding: 0; overflow: hidden; white-space: normal; font-size: 14px; line-height: 1.45;
  border: 1px solid #8a6a2e; border-radius: 6px; background: linear-gradient(#211a11, #110d08); box-shadow: 0 0 0 1px #000, inset 0 0 0 1px rgba(243,212,138,.1), 0 6px 16px rgba(0,0,0,.7); }
#lmui-stip .sh { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-bottom: 1px solid #5c4a2c; background: linear-gradient(#3a2c1a, #1f170d); }
#lmui-stip .sh:last-child { border-bottom: 0; }
#lmui-stip .sh i { flex: none; display: flex; width: 26px; height: 26px; overflow: hidden; border: 1px solid #6b5636; border-radius: 4px; background: #0b0907; }
#lmui-stip .sh i img { width: 100%; height: 100%; object-fit: cover; }
#lmui-stip .sh i.framed img { object-fit: contain; }
#lmui-stip .sh b { min-width: 0; color: #f3d48a; font-size: 15px; font-weight: 700; text-shadow: 0 1px 0 #000; overflow-wrap: anywhere; }
#lmui-stip ul { margin: 0; padding: 6px 10px; list-style: none; }
#lmui-stip li { position: relative; padding-left: 12px; color: #efe4cc; }
#lmui-stip li::before { content: ''; position: absolute; left: 1px; top: .6em; width: 4px; height: 4px; background: #c9a24d; transform: rotate(45deg); }
#lmui-stip .tm { padding: 0 10px 7px; color: #b8a98a; font-size: 13px; }
#lmui-stip .sh + .tm { padding-top: 6px; }
#lmui-stip .tm[hidden] { display: none; }
/* 快捷格長按（hud.js .hold）：按住 0.5 秒打開「F? 要放什麼？」，下緣一條金色進度跟著長；一按就放開的前 0.1 秒看不出來，短按不會閃 */
.lmui-slot.hold::before { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: #f2c14e; box-shadow: 0 0 4px #f2c14e; transform-origin: left center; z-index: 3; pointer-events: none; animation: lmuiHotHold .5s linear forwards; }
.lmui-slot.hold { box-shadow: inset 0 0 0 1px rgba(242,193,78,.7), inset 0 0 6px #000; }
@keyframes lmuiHotHold { 0% { transform: scaleX(0); opacity: 0; } 20% { opacity: 1; } 100% { transform: scaleX(1); opacity: 1; } }
/* 召喚術（summon.js）：魔法說明框裡「現在會召喚」那行；召喚表／挑怪清單（站長 2026-10-23「請精緻化」：卡片式、畫怪的站姿）。
   .sm-card：.cur＝現在會叫的（金框、光暈）、.lock＝等級不夠（變暗、標解鎖等級）、.past＝等級已經超過的自動召喚、.pk＝挑怪清單裡點得了的；
   .sm-bar＝「你的魅力」量條（刻度＝多叫一隻要到的魅力）；.sm-heads＝叫得出幾隻（亮的人頭） */
.sk-tip .sm-now { color: #fcd34d; }
#lmui-summon .box { height: auto; max-height: 100%; max-width: 460px; }
#lmui-summon .bd { padding: 6px 8px 10px; gap: 8px; }
#lmui-summon .sm-tabs { flex: none; display: flex; gap: 4px; margin: 0 8px 4px; padding: 3px; border: 1px solid #4a3a26; border-radius: 8px; background: linear-gradient(#0d0a07, #17110b); box-shadow: inset 0 1px 3px rgba(0,0,0,.8); }
#lmui-summon .sm-tabs button { flex: 1 1 0; min-width: 0; padding: 7px 4px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #a8997a; font-family: inherit; font-size: 14px; font-weight: 700; line-height: 1.2; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#lmui-summon .sm-tabs button.on { color: #fde68a; border-color: #b7862f; background: linear-gradient(#4a3618, #2a1e0f); box-shadow: 0 0 8px rgba(242,193,78,.25), inset 0 1px 0 rgba(255,230,160,.25); text-shadow: 0 0 6px rgba(242,193,78,.5); }
/* 卡片 */
#lmui-summon .sm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 7px; }
#lmui-summon .sm-card { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 4px 4px 6px; border: 1px solid #4d3e2a; border-radius: 7px;
  background: linear-gradient(#1d1610, #120d09); box-shadow: inset 0 1px 0 rgba(255,220,150,.08), 0 2px 4px rgba(0,0,0,.5); color: #d6cdbd; min-width: 0; }
#lmui-summon .sm-pic { position: relative; height: 92px; border-radius: 5px; overflow: hidden; border: 1px solid #2c2318; background: #0a0806; }
#lmui-summon .sm-pic canvas { display: block; width: 100%; height: 100%; }
#lmui-summon .sm-req, #lmui-summon .sm-lockt { position: absolute; left: 3px; top: 3px; padding: 1px 5px; border-radius: 4px; font-size: 11px; line-height: 15px; background: rgba(10,8,6,.78); color: #c9b58a; border: 1px solid rgba(138,106,58,.6); }
#lmui-summon .sm-lockt { display: inline-flex; align-items: center; gap: 3px; color: #e5d3a8; }
#lmui-summon .sm-lockt svg { width: 10px; height: 10px; fill: currentColor; }
#lmui-summon .sm-curt { position: absolute; right: 3px; top: 3px; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 700; line-height: 15px; color: #1a1206;
  background: linear-gradient(#fde68a, #e0a93b); box-shadow: 0 0 8px rgba(242,193,78,.7); }
#lmui-summon .sm-nm { display: flex; align-items: baseline; gap: 4px; min-width: 0; padding: 0 2px; }
#lmui-summon .sm-nm b { font-size: 14px; color: #f0e2c0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
#lmui-summon .sm-nm small { flex: none; font-size: 11px; color: #9c8f78; }
#lmui-summon .sm-cost { display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 0 2px; font-size: 11px; color: #9c8f78; }
#lmui-summon .sm-cost > span { white-space: nowrap; }
#lmui-summon .sm-cost b { margin: 0 1px; font-size: 13px; color: #f2c14e; }
#lmui-summon .sm-heads { display: inline-flex; align-items: center; gap: 1px; }
#lmui-summon .sm-heads span { display: inline-flex; width: 11px; height: 11px; color: #4a3f30; }
#lmui-summon .sm-heads span.on { color: #fcd34d; filter: drop-shadow(0 0 2px rgba(242,193,78,.6)); }
#lmui-summon .sm-heads svg { width: 100%; height: 100%; fill: currentColor; }
#lmui-summon .sm-heads em { font-style: normal; font-size: 11px; color: #e38b6f; margin-left: 2px; }
/* 「你的魅力」量條 */
#lmui-summon .sm-bar { position: relative; height: 6px; margin: 2px 2px 0; border-radius: 3px; background: #0a0806; border: 1px solid #3a2e20; box-shadow: inset 0 1px 2px rgba(0,0,0,.8); }
#lmui-summon .sm-bar > b { position: absolute; left: 0; top: 0; bottom: 0; max-width: 100%; border-radius: 2px; background: linear-gradient(90deg, #8a5a1c, #f2c14e); box-shadow: 0 0 5px rgba(242,193,78,.45); }
#lmui-summon .sm-bar > i { position: absolute; top: -2px; bottom: -2px; width: 2px; margin-left: -1px; background: #6b5537; border-radius: 1px; }
#lmui-summon .sm-bar > i.ok { background: #fff3c4; box-shadow: 0 0 3px #f2c14e; }
#lmui-summon .sm-bar.big { height: 9px; margin: 3px 4px 16px; border-radius: 5px; }
#lmui-summon .sm-bar.big > i em { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); font-style: normal; font-size: 10px; color: #9c8f78; white-space: nowrap; }
#lmui-summon .sm-bar.big > i.ok em { color: #fcd34d; }
/* 目前會召喚的：金框、光暈（慢慢呼吸） */
#lmui-summon :is(.sm-card, .sm-hero).cur { border-color: #e6b54a; background: linear-gradient(#33240f, #160f08);
  box-shadow: 0 0 0 1px rgba(253,230,138,.35), 0 0 14px rgba(242,193,78,.45), inset 0 0 12px rgba(242,193,78,.15); animation: smGlow 2.4s ease-in-out infinite; }
#lmui-summon :is(.sm-card, .sm-hero).cur .sm-pic { border-color: #8a6a2a; }
@keyframes smGlow { 0%, 100% { box-shadow: 0 0 0 1px rgba(253,230,138,.35), 0 0 10px rgba(242,193,78,.35), inset 0 0 10px rgba(242,193,78,.12); }
  50% { box-shadow: 0 0 0 1px rgba(253,230,138,.6), 0 0 20px rgba(242,193,78,.65), inset 0 0 16px rgba(242,193,78,.22); } }
#lmui-summon .sm-card.lock .sm-pic canvas { filter: grayscale(.75) brightness(.72); }
#lmui-summon .sm-card.lock :is(.sm-nm, .sm-cost, .sm-bar) { opacity: .5; }
#lmui-summon .sm-card.past { opacity: .62; }
/* 自動召喚：大卡 */
#lmui-summon .sm-hero { display: flex; gap: 10px; padding: 6px; border: 1px solid #4d3e2a; border-radius: 9px; background: linear-gradient(#1d1610, #120d09); }
#lmui-summon .sm-hero .sm-pic { flex: none; width: 128px; height: 128px; }
#lmui-summon .sm-hinfo { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; padding-top: 2px; }
#lmui-summon .sm-hero .sm-nm b { font-size: 18px; color: #fde68a; text-shadow: 0 0 8px rgba(242,193,78,.35); }
#lmui-summon .sm-hero .sm-nm small { font-size: 12px; }
#lmui-summon .sm-hsub { font-size: 13px; color: #d6cdbd; }
#lmui-summon .sm-hsub b { color: #fcd34d; font-size: 15px; }
#lmui-summon .sm-hero .sm-cost { font-size: 12px; flex-wrap: wrap; justify-content: flex-start; gap: 2px 10px; }
#lmui-summon .sm-hero .sm-heads span { width: 15px; height: 15px; }
#lmui-summon .sm-blab { margin-top: 2px; font-size: 12px; color: #9c8f78; }
#lmui-summon .sm-blab b { color: #f0e2c0; font-size: 14px; }
/* 自動召喚：等級進度軸 */
#lmui-summon .sm-axis { display: flex; gap: 3px; padding: 12px 4px 0; }
#lmui-summon .sm-seg { position: relative; flex: 1 1 0; min-width: 0; }
#lmui-summon .sm-seg > i { display: block; height: 7px; border-radius: 4px; background: #241b12; border: 1px solid #3d3021; }
#lmui-summon .sm-seg.past > i { background: linear-gradient(90deg, #4a3518, #6b4c1f); border-color: #6b4c1f; }
#lmui-summon .sm-seg.cur > i { background: linear-gradient(90deg, #b07a22, #fde68a); border-color: #fde68a; box-shadow: 0 0 8px rgba(242,193,78,.75); }
#lmui-summon .sm-seg > u { position: absolute; top: -9px; width: 0; height: 0; margin-left: -5px; border: 5px solid transparent; border-top: 7px solid #fff3c4; border-bottom: 0; filter: drop-shadow(0 0 3px #f2c14e); }
#lmui-summon .sm-seg > em { display: block; margin-top: 3px; font-style: normal; font-size: 10px; color: #7d705b; text-align: left; white-space: nowrap; }
#lmui-summon .sm-seg.cur > em { color: #fcd34d; font-weight: 700; }
#lmui-summon .sm-next { padding: 0 4px 2px; font-size: 13px; color: #b9ad98; }
#lmui-summon .sm-next b { color: #f0e2c0; }
/* 召喚控制戒指：戴沒戴、篩選、照要求等級分組 */
#lmui-summon .sm-ringst { padding: 6px 10px; border-radius: 7px; border: 1px dashed #5a4630; color: #b9ad98; font-size: 13px; background: rgba(10,8,6,.5); }
#lmui-summon .sm-ringst.on { border-style: solid; border-color: #b7862f; color: #fde68a; background: linear-gradient(#2e2210, #1a130a); }
#lmui-summon .sm-filt { display: flex; gap: 6px; flex-wrap: wrap; }
#lmui-summon .sm-filt .sm-any { margin-left: auto; }   /* 第 440 項：設定選單的「不指定」靠右 */
#lmui-summon .sm-filt button { display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border-radius: 999px; border: 1px solid #5a4630; background: #17120c; color: #b9ad98; font-family: inherit; font-size: 13px; font-weight: 700; line-height: 1.2; cursor: pointer; }
#lmui-summon .sm-filt button small { padding: 0 6px; border-radius: 999px; background: #2a2118; color: #9c8f78; font-size: 11px; font-weight: 400; }
#lmui-summon .sm-filt button.on { border-color: #e6b54a; color: #fde68a; background: linear-gradient(#4a3618, #2a1e0f); box-shadow: 0 0 6px rgba(242,193,78,.3); }
#lmui-summon .sm-filt button.on small { background: #f2c14e; color: #1a1206; }
#lmui-summon .sm-grp { display: flex; align-items: center; gap: 8px; margin-top: 2px; color: #e8c46a; font-size: 13px; font-weight: 700; }
#lmui-summon .sm-grp::after { content: ""; flex: 1 1 auto; border-top: 1px solid rgba(138,106,58,.75); }
#lmui-summon .sm-grp.lock { color: #7d705b; }
#lmui-summon .sm-empty { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 22px 8px; color: #9c8f78; font-size: 13px; border: 1px dashed #3d3021; border-radius: 8px; }
#lmui-summon .sm-empty svg { width: 13px; height: 13px; fill: currentColor; }
/* 挑怪清單：點得了的卡片可以按；按下去金光一閃再關；叫不了的抖一下，下面那行說為什麼 */
#lmui-summon .sm-card.pk { cursor: pointer; transition: transform .12s, border-color .12s; }
#lmui-summon .sm-card.pk:hover { border-color: #b7862f; }
#lmui-summon .sm-card.pk:active { transform: scale(.97); }
#lmui-summon[data-mode="pick"] .sm-card[data-s]:not(.pk) { cursor: not-allowed; }
#lmui-summon .sm-card.sm-go { border-color: #fde68a; animation: smGo .52s ease-out forwards; }
#lmui-summon .sm-card.sm-go .sm-pic::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 70%, rgba(255,243,196,.9), rgba(242,193,78,.35) 40%, transparent 70%); animation: smFlash .52s ease-out forwards; }
@keyframes smGo { 0% { transform: scale(1); box-shadow: 0 0 0 rgba(242,193,78,0); } 35% { transform: scale(1.06); box-shadow: 0 0 26px rgba(242,193,78,.95); } 100% { transform: scale(1); box-shadow: 0 0 12px rgba(242,193,78,.5); } }
@keyframes smFlash { 0% { opacity: 0; } 30% { opacity: 1; } 100% { opacity: 0; } }
#lmui-summon .sm-card.sm-no { animation: smNo .32s ease-in-out; }
@keyframes smNo { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }
#lmui-summon .sm-msg { flex: none; margin: 0 8px 6px; padding: 6px 10px; border-radius: 6px; text-align: center; font-size: 13px; color: #fca5a5; background: rgba(40,10,8,.85); border: 1px solid #6b2a20; }
#lmui-summon .sm-msg.good { color: #1a1206; font-weight: 700; background: linear-gradient(#fde68a, #e0a93b); border-color: #fde68a; box-shadow: 0 0 12px rgba(242,193,78,.6); }
#lmui-summon .sm-msg[hidden] { display: none; }
/* 窄（360 以下）：卡片兩欄、大卡的圖小一點 */
@media (max-width: 360px) {
  #lmui-summon .sm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #lmui-summon .sm-hero .sm-pic { width: 104px; height: 112px; }
}
/* 手機橫放（電腦版面縮小，body.pcui-sm）：視窗很矮，大卡、卡片的圖矮一點，多露出一點下面的軸跟卡片 */
body.pcui-sm #lmui-summon .sm-hero .sm-pic { width: 100px; height: 100px; }
body.pcui-sm #lmui-summon .sm-card .sm-pic { height: 80px; }


/* 第 117 項：選定精靈屬性的那一刻，畫面中間播一次（npc.js elfBurst，約 2.4 秒自己拿掉，不擋點擊）：光暈、兩圈衝擊波、屬性意象放大、粒子
   火＝火星往上竄、水＝水珠往外濺、風＝氣流繞圈飛出、地＝碎石往上噴再落下 */
.elf-burst { position: fixed; inset: 0; z-index: 200; pointer-events: none; display: flex; align-items: center; justify-content: center; overflow: hidden;
    background: radial-gradient(circle at 50% 50%, rgba(0,0,0,.78) 0%, rgba(0,0,0,.55) 38%, rgba(0,0,0,0) 72%); animation: elfb-dim 2.4s ease-out forwards; }
@keyframes elfb-dim { 0% { opacity: 0; } 12%, 75% { opacity: 1; } 100% { opacity: 0; } }
.elf-burst.elfb-f { --ec: #ff8a3d; --eg: rgba(255,110,30,.55); --et: #ffe0c8; }
.elf-burst.elfb-w { --ec: #55aaff; --eg: rgba(60,140,255,.5); --et: #d8ecff; }
.elf-burst.elfb-a { --ec: #5fd39a; --eg: rgba(70,210,140,.45); --et: #d8f8e6; }
.elf-burst.elfb-e { --ec: #dcaa4e; --eg: rgba(215,160,70,.5); --et: #f7e6c2; }
.elf-burst > div { position: absolute; left: 50%; top: 50%; }
.elf-burst .elfb-glow { width: 80vmin; height: 80vmin; margin: -40vmin 0 0 -40vmin; border-radius: 50%; background: radial-gradient(circle, var(--eg) 0%, rgba(0,0,0,0) 65%); animation: elfb-glow 2.4s ease-out forwards; }
.elf-burst .elfb-ring { width: 40vmin; height: 40vmin; margin: -20vmin 0 0 -20vmin; border-radius: 50%; border: 3px solid var(--ec); box-shadow: 0 0 18px var(--ec), inset 0 0 18px var(--eg); opacity: 0; animation: elfb-ring 1.3s ease-out .15s forwards; }
.elf-burst .elfb-ring.r2 { animation-delay: .5s; }
.elf-burst .elfb-mark { width: min(34vmin, 180px); height: min(34vmin, 180px); margin: calc(min(34vmin, 180px) / -2) 0 0 calc(min(34vmin, 180px) / -2); filter: drop-shadow(0 0 14px var(--ec)); animation: elfb-mark 2.4s ease-out forwards; }
.elf-burst .elfb-mark svg { display: block; width: 100%; height: 100%; }
.elf-burst .elfb-txt { width: 92vw; margin-left: -46vw; margin-top: calc(min(17vmin, 90px) + 16px); text-align: center; font-size: 20px; font-weight: 700; color: var(--et); text-shadow: 0 0 8px var(--ec), 0 2px 2px #000; opacity: 0; animation: elfb-txt 2.4s ease-out forwards; }
.elf-burst .elfb-parts { width: 0; height: 0; }
.elf-burst .elfb-parts i { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--et); box-shadow: 0 0 10px 3px var(--ec); opacity: 0;
    animation: elfb-out 1.5s ease-out forwards; animation-delay: calc(var(--i) * 45ms + .1s); }
.elfb-f .elfb-parts i { border-radius: 50% 50% 50% 50% / 65% 65% 35% 35%; background: #ffe7a3; animation-name: elfb-rise; animation-duration: 1.4s; }
.elfb-a .elfb-parts i { width: 34px; height: 34px; left: -17px; top: -17px; background: none; box-shadow: none; border: 3px solid transparent; border-top-color: var(--ec); filter: drop-shadow(0 0 4px var(--ec)); animation-name: elfb-swirl; animation-duration: 1.6s; }
.elfb-e .elfb-parts i { border-radius: 2px; background: linear-gradient(135deg, #f3d79b, #7a5418); box-shadow: 0 0 6px rgba(220,170,78,.8); clip-path: polygon(50% 0, 100% 40%, 80% 100%, 10% 85%, 0 30%); width: 14px; height: 14px; animation-name: elfb-rock; animation-duration: 1.5s; animation-timing-function: cubic-bezier(.3,.6,.6,1); }
@keyframes elfb-glow { 0% { transform: scale(.3); opacity: 0; } 20% { opacity: 1; } 100% { transform: scale(1.25); opacity: 0; } }
@keyframes elfb-ring { 0% { transform: scale(.2); opacity: 1; } 100% { transform: scale(2); opacity: 0; } }
@keyframes elfb-mark { 0% { transform: scale(.2) rotate(-12deg); opacity: 0; } 22% { transform: scale(1.18) rotate(3deg); opacity: 1; } 34% { transform: scale(1) rotate(0); } 78% { transform: scale(1.04); opacity: 1; } 100% { transform: scale(1.3); opacity: 0; } }
@keyframes elfb-txt { 0%, 25% { opacity: 0; transform: translateY(8px); } 40%, 80% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; } }
@keyframes elfb-out { 0% { transform: rotate(var(--r)) translateY(0) scale(1); opacity: 1; } 100% { transform: rotate(var(--r)) translateY(calc(var(--d) * -2.2)) scale(.3); opacity: 0; } }
@keyframes elfb-rise { 0% { transform: translate(calc((var(--i) - 7.5) * 12px), 60px) scale(1.4); opacity: 1; } 100% { transform: translate(calc((var(--i) - 7.5) * 8px), calc(var(--d) * -2.6)) scale(.25); opacity: 0; } }
@keyframes elfb-swirl { 0% { transform: rotate(var(--r)) translateX(20px) scale(.6); opacity: 1; } 100% { transform: rotate(calc(var(--r) + 420deg)) translateX(calc(var(--d) * 2)) scale(1.6); opacity: 0; } }
@keyframes elfb-rock { 0% { transform: translate(0, 30px) rotate(0); opacity: 1; } 45% { transform: translate(calc((var(--i) - 7.5) * 14px), calc(var(--d) * -1.8)) rotate(200deg); opacity: 1; } 100% { transform: translate(calc((var(--i) - 7.5) * 20px), 90px) rotate(420deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .elf-burst .elfb-parts, .elf-burst .elfb-ring { display: none; } #npc-window .elf-card.on .elf-mk { animation: none; } }


/* 第 119 項（月卡）：背包上方「格數 n/上限」（滿了變紅）；自動賣出頁沒月卡的那一句、每列「賣出｜刪除」切換 */
.bag-wt .bw-txt .bw-slots { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; padding: 0 8px; border: 1px solid #3d6a8a; border-radius: 10px; background: rgba(30,60,90,.5); color: #b8e0ff; font-size: 13px; line-height: 20px; }
.bag-wt .bw-txt .bw-slots svg { width: 13px; height: 13px; fill: #b8e0ff; stroke: #b8e0ff; stroke-width: 1.4; }
.bag-wt .bw-txt .bw-slots b { color: #e6f4ff; font-variant-numeric: tabular-nums; }
.bag-wt .bw-txt .bw-slots.warn { border-color: #c2741c; background: rgba(110,60,10,.55); color: #fdba74; }
.bag-wt .bw-txt .bw-slots.warn svg { fill: #fdba74; stroke: #fdba74; }
.bag-wt .bw-txt .bw-slots.warn b { color: #fed7aa; }
.bag-wt .bw-txt .bw-slots.full { border-color: #b91c1c; background: rgba(110,20,20,.6); color: #fca5a5; }
.bag-wt .bw-txt .bw-slots.full svg { fill: #fca5a5; stroke: #fca5a5; }
.bag-wt .bw-txt .bw-slots.full b { color: #fecaca; }
.lmas-card { padding: 8px 10px; border: 1px solid #8a6a32; border-radius: 8px; background: rgba(60,40,14,.6); color: #ffe9a8; font-size: 14px; line-height: 1.45; }
.lmas-mode { width: max-content; margin-top: 5px; display: flex; border: 1px solid #5a4630; border-radius: 7px; overflow: hidden; }
.lmas-mode button { padding: 5px 8px; border: 0; background: #14100b; color: #8d8574; font-size: 13px; font-family: inherit; cursor: pointer; white-space: nowrap; }
.lmas-mode button + button { border-left: 1px solid #5a4630; }
.lmas-mode button.on { background: linear-gradient(#4a3518, #241a0c); color: #ffe9a8; font-weight: 700; }
.lmas-mode button[data-m="d"].on, .lmas-mode button.armed { background: linear-gradient(#7a2020, #401010); color: #fecaca; font-weight: 700; }
/* ── 右側直排方框鈕（js/rcol.js；站長 2026-10-23 商城移到右側中間）：外觀同強制鈕（方形、暗底、金框、圖示加小字）。
   由下往上 ⊞ → 強制 → 主城（data-rslot 1）→ 商城（data-rslot 2）；right／margin-bottom 由 rcol.js 照空位設，這裡只給預設值。
   ⊞ 的選單開著時選單蓋在同一直排 → 一起藏（同強制） ── */
.lmui-rbtn { position: absolute; right: 8px; bottom: 100%; margin-bottom: 104px; width: 40px; height: 40px; padding: 0; border: 1px solid #9c7a40; border-radius: 6px;
  background: linear-gradient(#3a2e20, #140f09); color: #d9c9a3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,220,150,.18), 0 1px 4px #000; -webkit-tap-highlight-color: transparent; }
.lmui-rbtn svg { width: 18px; height: 18px; flex: none; pointer-events: none; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.lmui-rbtn svg .f { fill: #d6ac58; } .lmui-rbtn svg .s { fill: none; stroke: #f0d48c; stroke-width: 2; stroke-linecap: round; }
.lmui-rbtn span { font-size: 10px; line-height: 11px; font-weight: 700; letter-spacing: 1px; text-shadow: 0 1px 1px #000; pointer-events: none; white-space: nowrap; }
.lmui-rbtn:active { filter: brightness(1.25); }
body.lmui-fn-open .lmui-rbtn { visibility: hidden; }
body.pcui.pcui-sm .lmui-rbtn { width: 32px; height: 32px; }
body.pcui.pcui-sm .lmui-rbtn svg { width: 15px; height: 15px; }
body.pcui.pcui-sm .lmui-rbtn span { font-size: 9px; line-height: 10px; }
/* 回主城鈕（本機改動第 126 項，hud.js；位置照上面右側直排 rcol.js）：AUTO 開著按第一下＝.arm（金框發亮、字變「確定」），3 秒內再按才傳 */
#lmui-home.arm { border: 2px solid #f0cd7a; color: #fff3d6; background: linear-gradient(#7a5a1c, #2a1d08); box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), 0 0 0 1px #4a3110, 0 0 10px 2px rgba(240,190,90,.7); }

/* 第 124 項：倉庫「取出」下面的手續費 */
#npc-window .whx-outc { flex: none; display: flex; flex-direction: column; align-items: center; gap: 3px; }
#npc-window .whx-fee { font-size: 12px; line-height: 1; color: #c9b48a; white-space: nowrap; }


/* 第 127 項 魔法商人（npc.js bsHtml）：共同六種一格一個（技能圖示、名字、效果、持續時間）、多加的兩種是卡片（選一張，顏色用 --ec／--eg／--et 同艾利溫）、
   底下黏著購買列（選了哪種或結果、價錢、大「購買」；金幣不夠變灰、寫還差多少）；買好了購買列寫「已施加」、六格依序亮一下（.fresh） */
#npc-window .bsx { display: flex; flex-direction: column; gap: 10px; padding: 2px 0 0; }
#npc-window .bsx-sec { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; letter-spacing: 3px; color: #e8c77a; text-shadow: 0 1px 0 #000; }
#npc-window .bsx-sec::before, #npc-window .bsx-sec::after { content: ''; flex: 1 1 0; height: 1px; background: linear-gradient(90deg, rgba(201,162,90,0), rgba(201,162,90,.85)); }
#npc-window .bsx-sec::after { background: linear-gradient(90deg, rgba(201,162,90,.85), rgba(201,162,90,0)); }
#npc-window .bsx-sec span::before, #npc-window .bsx-sec span::after { content: '◆'; margin: 0 6px; font-size: 8px; vertical-align: middle; color: #c9a25a; }
#npc-window .bsx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
#npc-window .bsx-tile { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 6px 8px 6px 6px; border: 1px solid #4a3c29; border-radius: 6px;
    background: linear-gradient(180deg, rgba(42,33,22,.95) 0%, rgba(20,15,10,.95) 100%); box-shadow: inset 0 1px rgba(255,220,150,.06); }
#npc-window .bsx-ic, #npc-window .bsx-cic { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 4px;
    background: #0d0a07; border: 1px solid #7a5e34; box-shadow: inset 0 0 0 1px #000, 0 0 0 1px rgba(0,0,0,.6); }
#npc-window .bsx-ic img { width: 34px; height: 34px; object-fit: contain; }
#npc-window .bsx-tx { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
#npc-window .bsx-nm { font-size: 15px; line-height: 1.2; color: #f4e6c4; }
#npc-window .bsx-ef { font-size: 13px; line-height: 1.3; color: #cdbf9f; overflow-wrap: anywhere; }
#npc-window .bsx-du { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; line-height: 1.2; color: #9ccbe9; font-variant-numeric: tabular-nums; white-space: nowrap; }
#npc-window .bsx-du svg { width: 12px; height: 12px; flex: none; }
#npc-window .bsx.fresh .bsx-tile { animation: bsx-lit 1.2s ease-out both; }
#npc-window .bsx.fresh .bsx-tile:nth-child(2) { animation-delay: .1s; }
#npc-window .bsx.fresh .bsx-tile:nth-child(3) { animation-delay: .2s; }
#npc-window .bsx.fresh .bsx-tile:nth-child(4) { animation-delay: .3s; }
#npc-window .bsx.fresh .bsx-tile:nth-child(5) { animation-delay: .4s; }
#npc-window .bsx.fresh .bsx-tile:nth-child(6) { animation-delay: .5s; }
#npc-window .bsx.fresh .bsx-card.on { animation: bsx-lit 1.2s ease-out .6s both; }
@keyframes bsx-lit { 0% { box-shadow: inset 0 1px rgba(255,220,150,.06); border-color: #4a3c29; } 30% { box-shadow: 0 0 16px rgba(255,200,90,.75), inset 0 0 14px rgba(255,200,90,.35); border-color: #f5cf7a; }
    100% { box-shadow: inset 0 1px rgba(255,220,150,.06); border-color: #4a3c29; } }
#npc-window .bsx-picks { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
#npc-window .bsx-c-f { --ec: #ff8a3d; --eg: rgba(255,110,30,.36); --et: #ffe0c8; }
#npc-window .bsx-c-a { --ec: #5fd39a; --eg: rgba(70,210,140,.30); --et: #d8f8e6; }
#npc-window .bsx-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ic cn cp" "ic ef du"; column-gap: 10px; row-gap: 3px;
    align-items: center; justify-items: start; min-width: 0; padding: 7px 10px 7px 7px; font-family: inherit; text-align: left; cursor: pointer;
    border: 1px solid #7a5e34; border-radius: 6px; color: var(--et);
    background: radial-gradient(ellipse at 12% 50%, var(--eg) 0%, rgba(0,0,0,0) 55%), linear-gradient(180deg, #2b2219 0%, #17110c 100%);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.85), inset 0 0 0 3px rgba(122,94,52,.35), 0 2px 6px rgba(0,0,0,.5); transition: box-shadow .15s, border-color .15s; }
#npc-window .bsx-card .bsx-cic { grid-area: ic; width: 48px; height: 48px; border-color: var(--ec); box-shadow: inset 0 0 0 1px #000, 0 0 10px var(--eg); }
#npc-window .bsx-card .bsx-cic img { width: 42px; height: 42px; object-fit: contain; }
#npc-window .bsx-cn { grid-area: cn; font-size: 17px; letter-spacing: 1px; white-space: nowrap; text-shadow: 0 0 6px var(--ec), 0 1px 0 #000; }
#npc-window .bsx-card .bsx-ef { grid-area: ef; font-size: 13px; color: var(--et); }
#npc-window .bsx-card .bsx-du { grid-area: du; justify-self: end; }
#npc-window .bsx-cp { grid-area: cp; justify-self: end; display: inline-flex; align-items: center; gap: 4px; font-size: 15px; font-weight: 700; color: #facc15; font-variant-numeric: tabular-nums; white-space: nowrap; }
#npc-window .bsx-coin { width: 18px; height: 18px; object-fit: contain; flex: none; }
#npc-window .bsx-cp .bsx-coin { width: 16px; height: 16px; }
#npc-window .bsx-tick { position: absolute; top: -7px; right: -7px; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%;
    border: 1px solid var(--ec); background: var(--ec); color: #1a1209; box-shadow: 0 0 0 2px #120d08; }
#npc-window .bsx-card:not(.on) .bsx-tick { display: none; }
#npc-window .bsx-tick svg { width: 12px; height: 12px; }
#npc-window .bsx-card.on { border-color: var(--ec);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.85), inset 0 0 0 3px var(--eg), 0 0 14px var(--eg), 0 2px 6px rgba(0,0,0,.5); }
#npc-window .bsx-card.on .bsx-cic { animation: elf-mk-on 1.6s ease-in-out infinite; }
#npc-window .bsx-card:active { filter: brightness(1.2); }
#npc-window .bsx-foot { position: sticky; bottom: -12px; z-index: 2; display: flex; align-items: center; gap: 10px; margin: 2px -12px -12px; padding: 10px 12px 12px;
    border-top: 1px solid #7a5e34; background: linear-gradient(180deg, #1f1810, #0e0a06); box-shadow: 0 -6px 12px rgba(0,0,0,.55); }
#npc-window .bsx-sum { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#npc-window .bsx-what { display: flex; align-items: center; gap: 5px; font-size: 13px; color: #cdbf9f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#npc-window .bsx-what img { width: 18px; height: 18px; object-fit: contain; }
#npc-window .bsx-msg { display: flex; align-items: center; gap: 5px; font-size: 15px; font-weight: 700; line-height: 1.2; }
#npc-window .bsx-msg svg { width: 18px; height: 18px; flex: none; }
#npc-window .bsx-msg.ok { color: #fff1c4; text-shadow: 0 0 8px rgba(255,200,90,.7); animation: bsx-msg-in .5s ease-out; }
#npc-window .bsx-msg.ok svg { color: #86efac; filter: drop-shadow(0 0 4px rgba(134,239,172,.8)); }
#npc-window .bsx-msg.no { color: #fca5a5; font-size: 14px; }
@keyframes bsx-msg-in { 0% { transform: scale(.8); opacity: 0; } 60% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }
#npc-window .bsx-total { display: inline-flex; align-items: center; gap: 5px; font-size: 19px; font-weight: 700; color: #facc15; font-variant-numeric: tabular-nums; text-shadow: 0 1px 0 #000; white-space: nowrap; }
#npc-window .bsx-total .bsx-coin { width: 22px; height: 22px; }
#npc-window .bsx-buy { flex: none; min-width: 150px; padding: 13px 18px; font-size: 18px; letter-spacing: 2px; color: #fff2c8; border-color: #c9a25a; text-shadow: 0 0 6px rgba(255,190,80,.6), 0 1px 0 #000;
    background: radial-gradient(ellipse at 50% 0%, rgba(255,210,120,.35) 0%, rgba(0,0,0,0) 70%), linear-gradient(180deg, #7a5a22 0%, #4a3412 55%, #2e200a 100%);
    box-shadow: inset 0 1px rgba(255,230,170,.3), inset 0 0 0 1px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.6); }
#npc-window .bsx-buy:disabled { opacity: 1; color: #9a907e; border-color: #4f4a42; text-shadow: none; letter-spacing: 0; font-size: 16px; background: linear-gradient(180deg, #34312c, #1e1c19); box-shadow: inset 0 0 0 1px rgba(0,0,0,.6); }
#npc-window .bsx-buy.short:disabled { color: #fca5a5; border-color: #6b2b24; }
@media (max-width: 400px) {
    #npc-window .bsx { gap: 6px; }
    #npc-window .bsx-sec { font-size: 13px; }
    #npc-window .bsx-tx { gap: 1px; }
    #npc-window .bsx-ef { line-height: 1.25; }
    #npc-window .bsx-grid { grid-template-columns: 1fr 1fr; }
    #npc-window .bsx-tile { gap: 6px; padding: 5px 6px 5px 5px; }
    #npc-window .bsx-ic { width: 36px; height: 36px; }
    #npc-window .bsx-ic img { width: 30px; height: 30px; }
    #npc-window .bsx-nm { font-size: 14px; }
    #npc-window .bsx-ef { font-size: 12px; }
    #npc-window .bsx-picks { gap: 6px; }
    #npc-window .bsx-buy { min-width: 128px; padding: 12px 12px; }
}
/* 矮的畫面（手機橫放）：格子、卡片變矮，購買列一直黏在底下 */
@media (max-height: 500px) {
    #npc-window .bsx { gap: 6px; }
    #npc-window .bsx-grid { gap: 4px; }
    #npc-window .bsx-tile { padding: 3px 6px 3px 3px; gap: 6px; }
    #npc-window .bsx-ic { width: 32px; height: 32px; }
    #npc-window .bsx-ic img { width: 28px; height: 28px; }
    #npc-window .bsx-nm { font-size: 14px; }
    #npc-window .bsx-ef { font-size: 12px; }
    #npc-window .bsx-card { padding-top: 4px; padding-bottom: 4px; }
    #npc-window .bsx-card .bsx-cic { width: 38px; height: 38px; }
    #npc-window .bsx-card .bsx-cic img { width: 32px; height: 32px; }
    #npc-window .bsx-foot { padding: 6px 12px 8px; }
    #npc-window .bsx-buy { padding: 9px 18px; }
    #npc-window .bsx-sec { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { #npc-window .bsx.fresh .bsx-tile, #npc-window .bsx.fresh .bsx-card.on, #npc-window .bsx-card.on .bsx-cic, #npc-window .bsx-msg.ok { animation: none; } }
/* 設定 → 系統「顯示魔法娃娃」（伺服器本機改動第 132 項） */
.st-doll select { margin-left: auto; font-family: inherit; font-size: 15px; color: #f0e2bf; background: #0b0908; border: 1px solid #5a4630; border-radius: 4px; padding: 4px 8px; }
/* NPC 商店緊湊列表（npc.js shopHtml；站長 2026-10-23「購買道具的介面太廣、太佔版面」）：
   原本一樣道具一張大卡片（名字、價錢一塊，數量＋按鈕另起一行）→ 一列一行：小圖示｜名字＋價錢｜數量＋按鈕，整份清單一個金邊框、列跟列用細線隔開。
   只套在 .npw-shop（買、賣分頁有東西時才加），傳送、製作、寵物那些 .npw-row 不受影響。手機數量框、按鈕至少 34px 高（好按）；電腦（body.pcui）滑鼠點，壓到 30px。 */
#npc-window .npw-list.npw-shop { gap: 0; border: 1px solid #5a4630; border-top-color: #8a6a32; border-radius: 6px; overflow: hidden;
  background: linear-gradient(180deg, rgba(22,16,10,.96), rgba(12,9,6,.96)); box-shadow: inset 0 1px 0 rgba(255,220,150,.08), 0 1px 4px rgba(0,0,0,.6); }
#npc-window .npw-shop .npw-taxline { margin: 6px auto; }
#npc-window .npw-shop .npw-row { flex-wrap: nowrap; gap: 8px; min-height: 48px; padding: 5px 8px 5px 6px; border: 0; border-radius: 0; border-top: 1px solid rgba(90,70,48,.45); background: transparent; }
#npc-window .npw-shop .npw-row:first-child, #npc-window .npw-shop .npw-taxline + .npw-row { border-top: 0; }
#npc-window .npw-shop .npw-row:nth-child(even) { background: rgba(255,230,170,.025); }
#npc-window .npw-shop .npw-row:hover { background: linear-gradient(90deg, rgba(242,193,78,.12), rgba(242,193,78,.03) 70%); }
#npc-window .npw-shop .npw-ic { width: 36px; height: 36px; border-color: #5a4630; border-radius: 4px; background: radial-gradient(circle at 50% 40%, #2a2016, #0b0806 80%); }
#npc-window .npw-shop .npw-ic img { width: 32px; height: 32px; }
#npc-window .npw-shop .npw-ic.npw-info::after { right: -4px; bottom: -4px; width: 13px; height: 13px; font-size: 10px; line-height: 13px; }
#npc-window .npw-shop .npw-main { gap: 2px; }
#npc-window .npw-shop .npw-nm { font-size: 15px; line-height: 1.2; color: #f3ead6; }
#npc-window .npw-shop .npw-price { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; line-height: 1.2; color: #f5c542; font-variant-numeric: tabular-nums; }
#npc-window .npw-shop .npw-price.short { color: #f87171; }
#npc-window .npw-coin { flex: none; display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff8d0 0, #ffd95a 30%, #c8901e 75%, #7a4e08 100%);
  box-shadow: 0 0 0 1px #3a2408, inset 0 0 0 1.5px rgba(255,240,180,.35); }
#npc-window .npw-shop .npw-price.short .npw-coin { filter: grayscale(.4) brightness(.85); }
#npc-window .npw-shop .npw-ctl { flex: none; gap: 6px; }
#npc-window .npw-shop .npw-ctl .npw-qty { width: 46px; height: 34px; padding: 0 2px; font-size: 16px; color: #fff3d6; background: #0d0a07; border: 1px solid #5a4630; border-radius: 4px;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.8); -moz-appearance: textfield; appearance: textfield; }
#npc-window .npw-shop .npw-ctl .npw-qty::-webkit-inner-spin-button, #npc-window .npw-shop .npw-ctl .npw-qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
#npc-window .npw-shop .npw-ctl .npw-qty:focus { border-color: #f2c14e; box-shadow: inset 0 1px 3px rgba(0,0,0,.8), 0 0 0 1px rgba(242,193,78,.45); }
/* 購買／賣出／學習：金邊暗金底（同城主調稅的鈕）；學不了的（需 Lv、其他職業）灰框淡字，已學會＝綠字不像按鈕 */
#npc-window .npw-shop .npw-btn { min-width: 54px; height: 34px; padding: 0 10px; font-size: 14px; letter-spacing: .05em; color: #fde68a; border-color: #b7791f;
  background: linear-gradient(180deg, #5a3f14 0%, #3a280c 55%, #2a1c08 100%); box-shadow: inset 0 1px 0 rgba(255,220,150,.22), 0 1px 3px rgba(0,0,0,.6); }
#npc-window .npw-shop .npw-btn:hover:not(:disabled) { filter: brightness(1.15); }
#npc-window .npw-shop .npw-btn:disabled { opacity: 1; color: #8d8574; border-color: #3d3326; background: rgba(20,16,12,.7); box-shadow: none; }
#npc-window .npw-shop .npw-btn.npw-bk.done:disabled { color: #86efac; border-color: transparent; background: none; }
body.pcui #npc-window .npw-shop .npw-row { min-height: 44px; padding-top: 4px; padding-bottom: 4px; }
body.pcui #npc-window .npw-shop .npw-ctl .npw-qty, body.pcui #npc-window .npw-shop .npw-btn { height: 30px; }
body.pcui #npc-window .npw-shop .npw-price { font-size: 14px; }
/* 商店清單不可被外層壓扁：外層 .npw-body 是直向 flex＋自己捲動；清單有 overflow:hidden（圓角裁邊）時 flex 會把它縮到視窗高、多的被裁掉 → 整個不能捲（站長 2026-10-23「買道具視窗不能捲動」） */
#npc-window .npw-list.npw-shop { flex: none; }
/* 中間提示搬到 body 底下（hud.js）：要壓過所有彈出視窗（娃娃 120、其他最高 400），才不會開著視窗時看不到 */
#lmui-toast { z-index: 450; }
/* 金幣圖示（icons.js goldIcon，跟背包的金幣同一張；站長 2026-10-23「左上角金幣圖示使用天堂金幣圖，商店金幣購買的物品也都使用金幣圖」）：大小跟著字高 */
img.gold-ic { display: inline-block; flex: none; width: 1.3em; height: 1.3em; object-fit: contain; vertical-align: -0.3em; margin-right: 1px; }
#lmui-stats #lmui-gold .k { margin-right: 2px; }
#lmui-gold .gold-ic { width: 16px; height: 16px; vertical-align: -3px; }
#npc-window .npw-goldh { display: inline-flex; align-items: center; gap: 2px; }
#npc-window .npw-goldh .gold-ic { width: 1.15em; height: 1.15em; }
#npc-window .npw-shop .npw-price { gap: 2px; }
#npc-window .npw-price.short .gold-ic { filter: grayscale(.4) brightness(.85); }
#pcui-left .pl-gold .gold-ic { width: 1.25em; height: 1.25em; vertical-align: -0.28em; }
/* 點玩家（含自己）的小卡：封號、血盟（js/party.js playerMenu，站長 2026-10-24「點自己人物時 顯示名字 封號」） */
#lmui-ptplayer .pt-card { margin: 0 0 8px; min-width: 200px; }
#lmui-ptplayer .pt-card > div { gap: 16px; }
#lmui-ptplayer .pt-card b { display: inline-flex; align-items: center; }
/* 能力頁「封號」入口（js/hud.js renderStats、js/clan.js selfTitleState：沒有血盟、40 級以上自己設封號） */
.ab-stitle { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 0 8px; padding: 7px 10px; border: 1px solid #4a3c29; border-radius: 6px; background: rgba(15,11,8,.75); color: #c9bfae; font-size: 15px; text-align: left; cursor: pointer; }
.ab-stitle b { flex: 1; color: #e8dcb5; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ab-stitle em { font-style: normal; color: #fde68a; border: 1px solid #b7791f; border-radius: 4px; padding: 2px 10px; }

/* 第 148 項 派報少年「消息」分頁（js/npc.js newsHtml）：剛剛說的（亮一點）＋全部 */
#npc-window .nb { display: flex; flex-direction: column; gap: 6px; }
#npc-window .nb-sec { margin-top: 4px; font-size: 14px; color: #a8997a; }
#npc-window .nb-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
#npc-window .nb-list li { padding: 7px 10px; border: 1px solid #4a3c29; border-radius: 6px; background: rgba(26,20,14,.92); font-size: 15px; line-height: 1.4; color: #f5ecd8; overflow-wrap: anywhere; }
#npc-window .nb-recent li { border-color: #8a6a32; background: #2a2114; color: #fde68a; }

/* ── 手機瀏覽器的全螢幕鈕、加到主畫面提示（js/homeapp.js，站長 2026-10-24）：主畫面 App 開的不會有 ── */
#mfs-btn { position: absolute; left: calc(100% + 4px); top: 0; white-space: nowrap; padding: 2px 8px; font: 700 13px/1.3 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;
  color: #f0e2bf; border: 1px solid rgba(214,180,110,.75); border-radius: 11px; background: #0b0d10; box-shadow: 0 1px 4px rgba(0,0,0,.6); text-shadow: 0 1px 2px #000; -webkit-tap-highlight-color: transparent; }
#game > #mfs-btn { position: fixed; left: 141px; top: calc(76px + var(--orig-bar-h, 0px)); z-index: 51; }
#hometip { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,.55); }
#hometip .ht-card { max-width: 320px; padding: 14px 16px; color: #eadcb8; font: 14px/1.6 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;
  background: linear-gradient(#1b150d, #0e0b07); border: 1px solid #a8823f; border-radius: 6px; box-shadow: 0 6px 24px rgba(0,0,0,.7); }
#hometip b { display: block; margin-bottom: 6px; font-size: 16px; color: #ffe3a3; }
#hometip p { margin: 0 0 12px; }
#hometip .ht-btns { display: flex; gap: 8px; justify-content: flex-end; }
#hometip button { padding: 6px 16px; font: 700 14px "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; color: #f0e2bf; background: #2a2013; border: 1px solid #a8823f; border-radius: 4px; }
#hometip button[data-a="install"] { color: #1a1205; background: linear-gradient(#f3d488, #c89a3c); }
/* 狩獵場傳送點：一行一個（站長 2026-10-24，原本兩欄卡片 .lm-card）＋最上面「搜尋掉落物」。
   一行＝左邊名字（底下小字：建議等級、說明，最多兩行）、右邊價錢；目前所在的整行亮起（同 .lm-card.cur）。
   搜尋框黏在清單最上面（捲下去也看得到）；打了字才出現 ✕。iOS：#lmui-win 整個 user-select:none，輸入框要自己開回來，不然打不了字；字 16px 才不會被放大 */
.lm-rows { display: flex; flex-direction: column; gap: 3px; }
.lm-row { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 40px; padding: 4px 10px; text-align: left; font-family: inherit; cursor: pointer; box-sizing: border-box;
  background: linear-gradient(#2c2318, #17120c); border: 1px solid #5a4630; border-radius: 4px; box-shadow: inset 0 1px 0 rgba(255,220,150,.06), 0 1px 3px rgba(0,0,0,.6); text-shadow: 0 1px 1px #000; }
.lm-row .lm-rn { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.lm-row b { font-size: 16px; font-weight: 700; color: #f0e2bf; line-height: 1.25; overflow-wrap: anywhere; }
.lm-row small { font-size: 13px; color: #c9b88f; line-height: 1.25; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.lm-row em { flex: none; font-style: normal; font-size: 13px; color: #e8cf8f; white-space: nowrap; }
.lm-row.cur { background: linear-gradient(#7a5f35, #3f2f18); border-color: #e8cf8f; }
.lm-row.cur b { color: #fff6dc; } .lm-row.cur small { color: #f3dfa6; }
.lm-row:active { filter: brightness(1.25); }
.tpf { position: sticky; top: -6px; z-index: 1; margin: -6px -2px 4px; padding: 6px 2px 4px; background: linear-gradient(#1a1612, #0b0907); }
.tpf-box { position: relative; display: block; }
.tpf-q { display: block; width: 100%; box-sizing: border-box; padding: 7px 34px 7px 10px; font-size: 16px; font-family: inherit; color: #fff; background: #0e0b09; border: 1px solid #5a4630; border-radius: 4px; outline: none;
  -webkit-user-select: text; user-select: text; -webkit-appearance: none; appearance: none; }
.tpf-q::-webkit-search-cancel-button { display: none; }
.tpf-q:focus { border-color: #c9a25a; }
.tpf-x { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); display: none; width: 30px; height: 30px; padding: 0; font-size: 15px; color: #c9b88f; background: none; border: 0; cursor: pointer; }
.tpf.on .tpf-x { display: block; }
.tpf-it img { flex: none; width: 28px; height: 28px; object-fit: contain; }
.tpf-it img.ic35 { image-rendering: pixelated; }
.tpf-it b.c-blessed, .mi-drop .nm.c-blessed { color: #facc15; }
.tpf-sec { margin: 6px 2px 3px; font-size: 13px; color: #b8a47a; }
.tpf-sec:first-child { margin-top: 0; }
.tpf-none { padding: 24px 10px; }
/* 狩獵場頂欄（2026-10-24 站長「分頁按鈕須置頂」）：分類鈕「村莊｜外圍｜島嶼｜地監」、地監裡的「← 地監｜地監名」跟搜尋框一起釘在視窗頂端（.tpf 是 sticky）；
   分類鈕幾顆就分幾等份（伺服器還沒有島嶼時三顆）。名稱「地區｜地點」的地區那段淡色、細線隔開 */
.tpf-nav:empty { display: none; }
.tpf-nav .lm-bar { margin: 4px 0 0; }
.tpf-nav .lm-kinds { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.lm-row b .lm-rg { font-style: normal; font-weight: 400; font-size: 14px; color: #b8a47a; margin-right: 6px; padding-right: 6px; border-right: 1px solid #5a4630; }
.lm-row.cur b .lm-rg { color: #f3dfa6; border-right-color: #b8955a; }
/* 狩獵場傳送點一行（站長 2026-10-24「精緻一點 不會看起來亂亂的」）：第一行［地區牌子］地點名，第二行小標籤（等級、補充、提醒）不折行；右邊價錢固定寬、靠右對齊 */
.lm-tpr { min-height: 50px; padding: 6px 10px 6px 12px; gap: 10px; }
.lm-tpr .lm-rn { gap: 4px; }
.lm-tpr b { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 16px; letter-spacing: .5px; }
.lm-tpr b > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-tpr b .lm-rg { flex: none; width: 4.6em; box-sizing: border-box; text-align: center; margin: 0; padding: 1px 0; border: 1px solid #6b5536; border-radius: 3px; background: rgba(0,0,0,.35); font-size: 12px; font-weight: 400; line-height: 1.35; letter-spacing: 0; color: #c9b88f; }
.lm-tpr.cur b .lm-rg { border-color: #d8b878; color: #fff1cc; background: rgba(0,0,0,.25); }
.lm-tgs { display: flex; flex-wrap: wrap; gap: 3px 5px; min-width: 0; }
.lm-tgs:empty { display: none; }
.lm-tg { flex: none; font-style: normal; font-size: 12px; line-height: 1.4; padding: 0 5px; border-radius: 3px; color: #a8987a; background: rgba(255,230,170,.06); white-space: nowrap; }
.lm-tg.lv { color: #e8cf8f; background: rgba(232,207,143,.12); }
.lm-tg.warn { color: #e89a7a; background: rgba(200,90,60,.14); }
.lm-tpr.cur .lm-tg { color: #f3dfa6; } .lm-tpr.cur .lm-tg.lv { color: #fff6dc; }
.lm-tpr em { min-width: 64px; display: flex; align-items: center; justify-content: flex-end; gap: 3px; font-size: 14px; font-variant-numeric: tabular-nums; }
/* 狩獵場「同牌子一個群組」（站長 2026-10-24「小牌子可以大一點…同牌子一個群組」）：一個地區一張底板，左上一塊牌子（地區名，沒有地區的就是地點名），
   底下一行一個地點（行跟行之間細線，不再一行一個框）；目前所在的那一組牌子亮起 */
.lm-tpgs { display: flex; flex-direction: column; gap: 8px; }
.lm-tpg { border: 1px solid #4a3a26; border-radius: 6px; background: linear-gradient(rgba(60,46,28,.55), rgba(18,14,9,.7)); box-shadow: 0 1px 4px rgba(0,0,0,.6); padding: 0 0 2px; overflow: hidden; }
.lm-tpg-h { padding: 7px 10px 3px; }
.lm-pl { display: inline-block; font-style: normal; font-size: 15px; font-weight: 700; letter-spacing: 2px; line-height: 1.3; padding: 3px 12px 3px 14px; color: #f3dfa6;
  border: 1px solid #8a6c3e; border-radius: 4px; background: linear-gradient(#5a4224, #2a1e10); box-shadow: inset 0 1px 0 rgba(255,225,160,.18), 0 1px 2px rgba(0,0,0,.7); text-shadow: 0 1px 1px #000; }
.lm-tpg.cur .lm-pl { color: #fff6dc; border-color: #e8cf8f; background: linear-gradient(#8a6a38, #4a3418); }
.lm-tpg .lm-rows { gap: 0; padding: 0 6px; }
.lm-tpg .lm-tpr { min-height: 44px; border: 0; border-top: 1px solid rgba(138,108,62,.28); border-radius: 0; background: none; box-shadow: none; padding: 5px 6px 5px 10px; }
.lm-tpg .lm-tpr:first-child { border-top: 0; }
.lm-tpg .lm-tpr.cur { background: linear-gradient(90deg, rgba(232,207,143,.22), rgba(232,207,143,.05)); border-radius: 4px; }
.lm-tpg .lm-tpr b { font-size: 16px; }

/* 設定 → 召喚「魔法娃娃」：地圖上顯示娃娃的下拉（站長 2026-10-24 從系統頁搬來） */
.as-dollshow .as-ico { display: flex; align-items: center; justify-content: center; font-size: 22px; }
.as-dollshow select { flex: none; max-width: 52%; font-family: inherit; font-size: 15px; color: #f0e2bf; background: #0b0908; border: 1px solid #5a4630; border-radius: 4px; padding: 4px 8px; }
/* 設定 → 召喚「沒有娃娃時自動召喚」（伺服器第 153 項）：選的娃娃名字、選單裡的名字照階級上色（同 dollwin.css 的 [data-t]） */
.as-mid b em.as-dt[data-dt="1"], #lmui-aspick .opt[data-t="1"] span { color: #d9dfe8; }
.as-mid b em.as-dt[data-dt="2"], #lmui-aspick .opt[data-t="2"] span { color: #5fe08f; }
.as-mid b em.as-dt[data-dt="3"], #lmui-aspick .opt[data-t="3"] span { color: #5cb2ff; }
.as-mid b em.as-dt[data-dt="4"], #lmui-aspick .opt[data-t="4"] span { color: #c792ff; }
.as-mid b em.as-dt[data-dt="5"], #lmui-aspick .opt[data-t="5"] span { color: #ffab4f; }
.as-mid b em.as-dt[data-dt="6"], #lmui-aspick .opt[data-t="6"] span { color: #ffd862; text-shadow: 0 0 4px rgba(255,90,68,.8); }
#lmui-aspick .opt[data-t] img { object-fit: contain; }
/* 狩獵場「地監」分頁（站長 2026-10-24「地監分頁名稱也用小卡片」）：一座地監一張外圍那種底板（.lm-tpg），左上牌子寫地監名，
   底下一行小標籤「N 層」「Lv…」（每層都一樣的提醒用紅標籤），右邊 › 表示點了進樓層；點進去的樓層也放在同一種底板裡，一行一層 */
.lm-dg { position: relative; display: block; width: 100%; box-sizing: border-box; margin: 0; padding: 0 0 7px; text-align: left; font-family: inherit; color: inherit; cursor: pointer; -webkit-appearance: none; appearance: none; }
.lm-dg .lm-tpg-h { display: block; }
.lm-dg-sub { display: block; padding: 2px 34px 0 12px; }
.lm-dg .lm-tg { font-size: 13px; }
.lm-dg-go { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: 24px; line-height: 1; color: #b8955a; }
.lm-dg:active { filter: brightness(1.25); }
.lm-dg.cur { border-color: #b8955a; }
.lm-dg.cur .lm-tg { color: #f3dfa6; } .lm-dg.cur .lm-tg.lv { color: #fff6dc; } .lm-dg.cur .lm-dg-go { color: #f3dfa6; }
.lm-tpg-fl { padding: 3px 0; }
/* 怪物喊叫（npcchat 表 is_shout）：比一般 NPC 說話醒目；喊叫行首的方向（原版用戶端的圓牌 605～612，tools/client-ui.mjs → data/ui/shout-<n>.png；main.js shoutDir）。
   圖還沒產（body 沒有 lmui-shoutdir）＝箭頭字 */
#lmui-lines .c-npcshout { color: #ff9a4d; font-weight: 700; }
#lmui-lines .c-dir { display: inline-block; margin-right: 3px; font-style: normal; }
body.lmui-shoutdir #lmui-lines .c-dir { width: 1em; height: 1em; vertical-align: -0.12em; line-height: 1em; color: transparent; overflow: hidden;
    background: center / contain no-repeat; image-rendering: pixelated; }
body.lmui-shoutdir #lmui-lines .c-dir.d0 { background-image: url(/data/ui/shout-0.png); } body.lmui-shoutdir #lmui-lines .c-dir.d1 { background-image: url(/data/ui/shout-1.png); }
body.lmui-shoutdir #lmui-lines .c-dir.d2 { background-image: url(/data/ui/shout-2.png); } body.lmui-shoutdir #lmui-lines .c-dir.d3 { background-image: url(/data/ui/shout-3.png); }
body.lmui-shoutdir #lmui-lines .c-dir.d4 { background-image: url(/data/ui/shout-4.png); } body.lmui-shoutdir #lmui-lines .c-dir.d5 { background-image: url(/data/ui/shout-5.png); }
body.lmui-shoutdir #lmui-lines .c-dir.d6 { background-image: url(/data/ui/shout-6.png); } body.lmui-shoutdir #lmui-lines .c-dir.d7 { background-image: url(/data/ui/shout-7.png); }
/* 喊叫方向圓牌改成畫的（站長 2026-10-24「方向圓牌不清楚」：用戶端原圖 12×12，放大就糊）：金框深色圓底＋白色粗箭頭，跟字一樣大、任何縮放都清楚；
   方向照 .d0～.d7（→ ↗ ↑ ↖ ← ↙ ↓ ↘），箭頭圖只畫一張「→」再轉角度 */
#lmui-lines .c-dir { position: relative; display: inline-block; width: 1.5em; height: 1.5em; margin-right: 5px; vertical-align: -0.38em; border-radius: 50%; color: transparent !important; overflow: hidden;
  background: radial-gradient(circle at 35% 30%, #7a5420, #2a1806 70%) !important; border: 2px solid #ffcf6a; box-shadow: 0 0 4px rgba(255,190,80,.8), inset 0 0 2px #000; box-sizing: border-box; }
#lmui-lines .c-dir::after { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath d=%27M3 8.2h8.5V4.5L17.5 10l-6 5.5v-3.7H3z%27 fill=%27%23fff8e6%27 stroke=%27%23000%27 stroke-width=%271%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") center / 92% no-repeat; transform: rotate(var(--dr, 0deg)); }
#lmui-lines .c-dir.d0 { --dr: 0deg; } #lmui-lines .c-dir.d1 { --dr: -45deg; } #lmui-lines .c-dir.d2 { --dr: -90deg; } #lmui-lines .c-dir.d3 { --dr: -135deg; } #lmui-lines .c-dir.d4 { --dr: 180deg; } #lmui-lines .c-dir.d5 { --dr: 135deg; } #lmui-lines .c-dir.d6 { --dr: 90deg; } #lmui-lines .c-dir.d7 { --dr: 45deg; }
/* ⊞ 選單的「商城」（站長 2026-10-24「商城收進去方塊裡面 打開方塊商城閃一下特效」）：選單一打開，商城那格金光由左往右掃過一次＋外框亮一下 */
#lmui-fnmenu button.fn-shine { position: relative; overflow: hidden; animation: fnShineGlow 1.1s ease-out 1; }
#lmui-fnmenu button.fn-shine::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 45%; pointer-events: none;
  background: linear-gradient(100deg, rgba(255,230,150,0) 0%, rgba(255,236,170,.85) 50%, rgba(255,230,150,0) 100%); transform: skewX(-18deg); animation: fnShineSweep .9s ease-out .12s 1 both; }
@keyframes fnShineSweep { from { left: -60%; } to { left: 120%; } }
@keyframes fnShineGlow { 0% { box-shadow: 0 0 0 rgba(255,200,90,0); } 35% { box-shadow: 0 0 12px rgba(255,205,100,.95), inset 0 0 6px rgba(255,220,140,.6); } 100% { box-shadow: 0 0 0 rgba(255,200,90,0); } }
@media (prefers-reduced-motion: reduce) { #lmui-fnmenu button.fn-shine, #lmui-fnmenu button.fn-shine::after { animation: none; } }
/* 魔法延遲倒數（站長 2026-10-24「顯示魔法延遲倒數」；hud.js castTick 設 --castcd＝還剩幾成、--cdtxt＝剩幾秒）：
   原本從上往下退的灰色 → 改成手遊那種時鐘扇形：整格先變暗，從 12 點鐘順時針亮回來；1 秒以上中間顯示剩幾秒。快捷列、魔法視窗同一套 */
.lmui-slot.sk::after, .lsk-cell:not(.is-unlearned):not(.is-empty)::after { top: 0; height: auto;
  background: conic-gradient(transparent calc((1 - var(--castcd, 0)) * 360deg), rgba(8,6,4,.8) 0);
  content: var(--cdtxt, ""); display: flex; align-items: center; justify-content: center;
  font: 800 17px/1 Arial, sans-serif; color: #fff4d6; text-shadow: 0 0 2px #000, 1px 1px 1px #000, -1px -1px 1px #000; }
.lsk-cell:not(.is-unlearned):not(.is-empty)::after { font-size: 20px; }
/* 旅館租房頁最上面的「回魔好處」（站長 2026-10-24「旅館回魔的優勢 想辦法讓玩家知道」） */
#npc-window .inn-perk { display: flex; flex-direction: column; gap: 2px; margin: 4px 2px 8px; padding: 8px 12px; border: 1px solid #8a6c3e; border-radius: 6px; background: linear-gradient(90deg, rgba(70,110,190,.28), rgba(30,40,70,.15)); }
#npc-window .inn-perk b { font-size: 16px; color: #9fd0ff; text-shadow: 0 0 6px rgba(120,180,255,.5); }
#npc-window .inn-perk span { font-size: 13px; color: #d8c9a4; }
/* 狩獵場卡片收折（站長 2026-10-24「小卡片下方默認收折 點擊展開 點另一個小卡片 之前的卡片收折」；地監樓層也收在卡片底下）：
   牌子那列整條是按鈕：牌子＋摘要小標籤（幾個地點／幾層、等級）＋價錢＋右邊箭頭（收折朝右、展開轉朝下）；展開時摘要隱藏（底下就有）、高度不跳 */
.lm-fold { padding: 0; }
.lm-fold-h { display: flex; align-items: center; gap: 8px; width: 100%; box-sizing: border-box; min-height: 44px; margin: 0; padding: 6px 10px; border: 0; background: none; text-align: left;
  font-family: inherit; color: inherit; cursor: pointer; -webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent; }
.lm-fold-h .lm-pl { flex: none; }
/* 牌子裡放等級（站長 2026-10-29）：地名一行、等級一行，牌子加大；摘要只剩「N 層」，價錢不再壓到字 */
.lm-fold-h .lm-pl { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; box-sizing: border-box; min-width: 8.5em; min-height: 46px; font-size: 16px; padding: 5px 14px 4px 16px; }  /* 沒等級的（妖精森林）也一樣大（站長同日「框不一樣大小」） */
.lm-pl2 small { font-size: 12px; font-weight: 700; letter-spacing: 0; line-height: 1.2; color: #e8cf8f; }
.lm-tpg.cur .lm-pl2 small { color: #fff6dc; }
.lm-fold-s { flex: 1 1 auto; min-width: 0; }
.lm-fold-s .lm-tg { font-size: 13px; }
.lm-fold-p { flex: none; display: flex; align-items: center; gap: 3px; font-style: normal; font-size: 14px; color: #c9b88f; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lm-fold-a { flex: none; width: 8px; height: 8px; margin: 0 4px 0 2px; border: solid #b8955a; border-width: 0 2px 2px 0; transform: rotate(-45deg); transition: transform .18s ease; }
.lm-fold-h:active { filter: brightness(1.25); }
.lm-fold.open .lm-fold-a { transform: translateY(-3px) rotate(45deg); border-color: #f3dfa6; }
.lm-fold.open .lm-fold-s, .lm-fold.open .lm-fold-p { visibility: hidden; }
.lm-fold.cur { border-color: #b8955a; }
.lm-fold.cur .lm-fold-s .lm-tg { color: #f3dfa6; } .lm-fold.cur .lm-fold-s .lm-tg.lv { color: #fff6dc; } .lm-fold.cur .lm-fold-a { border-color: #f3dfa6; }
/* 展開動畫：grid 0fr → 1fr（不用量高度；舊瀏覽器不支援轉場就直接開） */
.lm-fold-b { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .18s ease; }
.lm-fold.open .lm-fold-b { grid-template-rows: 1fr; }
.lm-fold-in { min-height: 0; overflow: hidden; }
.lm-fold-in > .lm-rows { padding-bottom: 4px; }
.lm-fold:not(.open) .lm-fold-in { visibility: hidden; transition: visibility 0s .18s; }
@media (prefers-reduced-motion: reduce) { .lm-fold-b, .lm-fold-a, .lm-fold:not(.open) .lm-fold-in { transition: none; } }


/* 主城傳送石閃亮亮（站長 2026-10-24「圖檔用閃亮亮的」；items.js glowCls → img.home-shine、hsFx → .hs-fx）：
   圖上金色光暈慢慢呼吸；格子上每 4 秒一道光從左上掃到右下；三顆小星星輪流閃。掃光、星星疊在格子上，不擋點擊。
   系統「減少動態效果」：只留靜態光暈 */
@keyframes hsGlow {
  0%, 100% { filter: brightness(1.12) drop-shadow(0 0 2px rgba(255, 214, 102, .95)) drop-shadow(0 0 5px rgba(255, 190, 60, .55)); }
  50% { filter: brightness(1.32) drop-shadow(0 0 3px rgba(255, 230, 140, 1)) drop-shadow(0 0 9px rgba(255, 200, 70, .85)); }
}
img.home-shine { animation: hsGlow 2.4s infinite ease-in-out; }
.hs-fx { position: absolute; inset: 0; pointer-events: none; overflow: hidden; border-radius: inherit; }
.hs-fx::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, transparent 42%, rgba(255, 250, 225, .0) 44%, rgba(255, 248, 210, .75) 50%, rgba(255, 250, 225, .0) 56%, transparent 58%);
  background-size: 300% 300%; background-position: 100% 100%; animation: hsSweep 4s infinite ease-in-out; }
@keyframes hsSweep { 0% { background-position: 100% 100%; } 26%, 100% { background-position: 0 0; } }
.hs-fx b { position: absolute; width: 22%; aspect-ratio: 1; background: #fff4c2; opacity: 0;
  clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%); animation: hsTwinkle 2.4s infinite ease-in-out; }
.hs-fx b:nth-child(1) { left: 10%; top: 8%; }
.hs-fx b:nth-child(2) { right: 8%; top: 22%; width: 16%; animation-delay: .8s; }
.hs-fx b:nth-child(3) { left: 52%; bottom: 8%; width: 18%; animation-delay: 1.6s; }
@keyframes hsTwinkle { 0%, 60%, 100% { opacity: 0; transform: scale(.3) rotate(0deg); } 30% { opacity: 1; transform: scale(1) rotate(45deg); } }
#lmui-itemwin .iw-ic { position: relative; overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  img.home-shine { animation: none; filter: brightness(1.22) drop-shadow(0 0 3px rgba(255, 222, 120, 1)) drop-shadow(0 0 7px rgba(255, 196, 64, .7)); }
  .hs-fx { display: none; }
}
/* 設定 → 系統（hud.js systemHtml，站長 2026-10-24「系統分頁裡面內容整理一下 有點亂」）：分區小標題、兩欄功能鈕、切換開關、音量拉條＋數值、回選角最下面分開 */
.sy { display: flex; flex-direction: column; gap: 8px; padding: 2px 2px 12px; }
.sy-h { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 14px; font-weight: 700; letter-spacing: 2px; color: #f3d48a; text-shadow: 0 1px 2px #000; }
.sy-h::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,164,99,.55), rgba(201,164,99,0)); }
.sy > .sy-h:first-child { margin-top: 0; }
.sy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sy-btn { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; height: 46px; padding: 0 8px; font-family: inherit; font-size: 15px; font-weight: 700; color: #f1e6cf;
  background: linear-gradient(#3e3022, #241a10); border: 1px solid #8a6a3a; border-radius: 8px; box-shadow: inset 0 1px 0 rgba(255,230,180,.15), 0 1px 3px rgba(0,0,0,.7); cursor: pointer; }
.sy-btn > i { flex: none; font-style: normal; font-size: 18px; line-height: 1; }
.sy-btn > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sy-btn:active { filter: brightness(1.25); }
.sy-card { display: flex; flex-direction: column; border: 1px solid #5c4830; border-radius: 8px; background: linear-gradient(#2c2117, #1b140d); }
.sy-card > * + * { border-top: 1px solid rgba(110,90,60,.35); }
.sy-sw { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 12px; cursor: pointer; }
.sy-vol .sy-sw { min-height: 42px; }
.sy-lb { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: #f1e6cf; white-space: nowrap; }
.sy-lb > i { flex: none; width: 20px; text-align: center; font-style: normal; font-size: 17px; line-height: 1; }
.sy-sw input[type=checkbox] { flex: none; -webkit-appearance: none; appearance: none; position: relative; width: 46px; height: 26px; margin: 0; border: 1px solid #6b5636; border-radius: 13px;
  background: #120e0a; box-shadow: inset 0 1px 3px rgba(0,0,0,.8); cursor: pointer; transition: background .15s, border-color .15s; }
.sy-sw input[type=checkbox]::before { content: ''; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(#8a7a64, #5c4f3e);
  box-shadow: 0 1px 2px rgba(0,0,0,.8); transition: transform .15s, background .15s; }
.sy-sw input[type=checkbox]:checked { background: linear-gradient(#b8893f, #7d5a22); border-color: #e0bd72; }
.sy-sw input[type=checkbox]:checked::before { transform: translateX(20px); background: linear-gradient(#fff4d6, #e6c785); }
.sy-sw input[type=checkbox]:focus-visible { outline: 2px solid #f3d48a; outline-offset: 2px; }
.sy-rng { display: flex; align-items: center; gap: 10px; padding: 0 12px 10px 40px; }
.sy-rng input[type=range] { flex: 1 1 auto; min-width: 0; margin: 0; accent-color: #c9a463; }
.sy-rng b { flex: none; width: 2.2em; text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; color: #f3d48a; }
.sy-vol:has(> .sy-sw input:not(:checked)) .sy-rng { opacity: .45; }
.sy-bm { display: flex; flex-direction: column; gap: 6px; }
.sy-bm > .sy-btn { width: 100%; }
.sy-end { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(110,90,60,.45); }
.sy-end .sy-btn { width: 100%; color: #fca5a5; background: linear-gradient(#3a2018, #22120d); border-color: #7a3a2a; }
/* 電腦版面的視窗矮（高 336）：系統頁排緊一點，少捲 */
body.pcui .sy { gap: 6px; }
body.pcui .sy-h { margin-top: 2px; font-size: 13px; }
body.pcui .sy-grid { gap: 6px; }
body.pcui .sy-btn { height: 34px; font-size: 14px; gap: 5px; }
body.pcui .sy-btn > i { font-size: 15px; }
body.pcui .sy-sw, body.pcui .sy-vol .sy-sw { min-height: 34px; padding: 0 10px; }
body.pcui .sy-lb { font-size: 14px; }
body.pcui .sy-sw input[type=checkbox] { width: 38px; height: 22px; }
body.pcui .sy-sw input[type=checkbox]::before { width: 16px; height: 16px; }
body.pcui .sy-sw input[type=checkbox]:checked::before { transform: translateX(16px); }
body.pcui .sy-rng { padding: 0 10px 8px 38px; }
body.pcui .sy-end { margin-top: 8px; padding-top: 8px; }
/* 設定 → 系統「顯示傷害」四格（全部／只看攻擊／只看受到／關閉）：標題一行、底下同一排四格，選中那格亮金色 */
.sy-seg-row { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; }
.sy-seg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 3px; gap: 3px; border: 1px solid #6b5636; border-radius: 9px; background: #120e0a; box-shadow: inset 0 1px 3px rgba(0,0,0,.8); }
.sy-seg > button { min-width: 0; height: 34px; padding: 0 2px; border: 1px solid transparent; border-radius: 6px; background: none; font-family: inherit; font-size: 13px; font-weight: 700; color: #b9ad98;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.sy-seg > button.on { color: #2a1a06; background: linear-gradient(#f3d48a, #c9a463 55%, #9a7333); border-color: #fde68a; box-shadow: 0 1px 3px rgba(0,0,0,.7); text-shadow: 0 1px 0 rgba(255,240,200,.5); }
.sy-seg > button:not(.on):active { color: #f1e6cf; }
body.pcui .sy-seg-row { gap: 6px; padding: 7px 10px; }
body.pcui .sy-seg > button { height: 26px; font-size: 12px; }
/* 裝備欄左下的榮耀卡片格（站長 2026-10-24）：裡面放封號小牌（top1.css .t1-tag），縮到放得進格子，多張直排 */
#lmui-doll .ld-card.is-filled { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; overflow: hidden; cursor: pointer; }
#lmui-doll .ld-card .t1-tag { font-size: 9px; padding: 1px 4px; max-width: 100%; white-space: nowrap; }
#lmui-doll .ld-card .t1-tag i { font-size: 9px; }

/* 榮耀卡片（伺服器第 169 項，items.js honorKind／hcTag／glowCls／hsFx）：背包格閃亮亮同主城傳送石，配色照封號（top1.js BADGE：k0 勇者金、k1 冰藍、k2 紫粉）；
   格子左上「使用中」小字（同穿著的裝備那種標記）；裝備欄卡片格（hud.js dollCell 'card'）放卡的圖示＋封號小字，好幾張並排 */
@keyframes hcGlow0 { 0%, 100% { filter: brightness(1.12) drop-shadow(0 0 2px rgba(255, 214, 102, .95)) drop-shadow(0 0 5px rgba(255, 186, 30, .55)); }
  50% { filter: brightness(1.32) drop-shadow(0 0 3px rgba(255, 230, 140, 1)) drop-shadow(0 0 9px rgba(255, 186, 30, .85)); } }
@keyframes hcGlow1 { 0%, 100% { filter: brightness(1.12) drop-shadow(0 0 2px rgba(143, 227, 255, .95)) drop-shadow(0 0 5px rgba(70, 196, 255, .55)); }
  50% { filter: brightness(1.32) drop-shadow(0 0 3px rgba(200, 245, 255, 1)) drop-shadow(0 0 9px rgba(70, 196, 255, .85)); } }
@keyframes hcGlow2 { 0%, 100% { filter: brightness(1.12) drop-shadow(0 0 2px rgba(255, 159, 226, .95)) drop-shadow(0 0 5px rgba(214, 96, 255, .55)); }
  50% { filter: brightness(1.32) drop-shadow(0 0 3px rgba(255, 210, 245, 1)) drop-shadow(0 0 9px rgba(214, 96, 255, .85)); } }
img.hc-shine.k0 { animation: hcGlow0 2.4s infinite ease-in-out; }
img.hc-shine.k1 { animation: hcGlow1 2.4s infinite ease-in-out; }
img.hc-shine.k2 { animation: hcGlow2 2.4s infinite ease-in-out; }
.hs-fx.hc-fx.k1 b { background: #d8f7ff; }
.hs-fx.hc-fx.k2 b { background: #ffe0f6; }
.hc-use { position: absolute; left: 1px; top: 1px; z-index: 2; padding: 1px 3px; border-radius: 3px; background: rgba(20, 60, 24, .9); box-shadow: 0 0 0 1px #5fbf6a;
  color: #b9f5bf; font: 700 10px/1.1 "Microsoft JhengHei", "PingFang TC", sans-serif; letter-spacing: 0; pointer-events: none; white-space: nowrap; }
#lmui-doll .ld-card.ld-hcs { display: flex; flex-direction: row; align-items: stretch; justify-content: center; gap: 1px; padding: 1px; overflow: hidden; }
#lmui-doll .ld-hc { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; }
#lmui-doll .ld-hc-ic { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; flex: 1 1 auto; min-height: 0; overflow: hidden; border-radius: 3px; }
#lmui-doll .ld-hc-ic img { width: 70%; height: 70%; object-fit: contain; }
#lmui-doll .ld-hcs.n2 .ld-hc-ic img, #lmui-doll .ld-hcs.n3 .ld-hc-ic img { width: 90%; height: 90%; }
#lmui-doll .ld-hc > i { flex: none; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: clip; font: 700 9px/1.15 "Microsoft JhengHei", "PingFang TC", sans-serif; font-style: normal; text-shadow: 0 1px 1px #000; }
#lmui-doll .ld-hc.k0 > i { color: #ffd23a; }
#lmui-doll .ld-hc.k1 > i { color: #86ecff; }
#lmui-doll .ld-hc.k2 > i { color: #ff9fe2; }
#lmui-doll .ld-hcs.n2 .ld-hc > i, #lmui-doll .ld-hcs.n3 .ld-hc > i { display: none; }   /* 好幾張：格子太小，只放圖示（滑鼠移上去看名字） */
#lmui-doll .ld-hcs.n2, #lmui-doll .ld-hcs.n3 { flex-wrap: wrap; align-content: center; }
#lmui-doll .ld-hcs.n3 .ld-hc { flex: 0 0 calc(50% - 1px); height: calc(50% - 1px); }
#lmui-doll .ld-hcs.n1 .ld-hc > i { position: absolute; left: 0; right: 0; bottom: 0; padding: 1px 0; background: rgba(0, 0, 0, .72); text-align: center; font-size: 8px; }
#lmui-doll .ld-hcs.n1 .ld-hc-ic img { width: 86%; height: 86%; margin-bottom: 18%; }
@media (prefers-reduced-motion: reduce) {
  img.hc-shine.k0 { animation: none; filter: brightness(1.22) drop-shadow(0 0 3px rgba(255, 222, 120, 1)) drop-shadow(0 0 7px rgba(255, 186, 30, .7)); }
  img.hc-shine.k1 { animation: none; filter: brightness(1.22) drop-shadow(0 0 3px rgba(200, 245, 255, 1)) drop-shadow(0 0 7px rgba(70, 196, 255, .7)); }
  img.hc-shine.k2 { animation: none; filter: brightness(1.22) drop-shadow(0 0 3px rgba(255, 210, 245, 1)) drop-shadow(0 0 7px rgba(214, 96, 255, .7)); }
}
/* 裝備欄榮耀卡片格：格子太小，封號名字會被切掉（站長 2026-10-24「傳說勇者名字都切到了」）→ 只放卡片圖示，名字看滑鼠提示或點開榮耀卡 */
#lmui-doll .ld-card.ld-hcs .ld-hc > i { display: none; }
#lmui-doll .ld-card.ld-hcs.n1 .ld-hc-ic img { width: 90%; height: 90%; margin-bottom: 0; }
/* 能力頁「祝福值」（第 171 項，hud.js AUX_TIP.bless）：電腦移上去、手機點一下看說明（說明框同狀態圖示 #lmui-stip）；名字後面一個小問號表示可以點 */
.ab-list > .ab-tip { cursor: help; -webkit-tap-highlight-color: transparent; }
.ab-list > .ab-tip span::after { content: "?"; display: inline-block; width: 15px; height: 15px; margin-left: 5px; border: 1px solid #8a6a2e; border-radius: 50%; color: #f3d48a; font-size: 11px; line-height: 13px; text-align: center; vertical-align: 1px; }
.ab-list > .ab-tip:hover, .ab-list > .ab-tip:active { background: rgba(243,212,138,.08); }

/* 背包下方改小圖示（hud.js bagFoot）：圖示在上、小字在下；信箱未讀紅點同 ⊞ 選單 */
.bag-foot .bf-l { gap: 5px; }
.bag-foot button.bf-ic { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: 52px; padding: 4px 0 3px; font-size: 10px; line-height: 1.2; }
.bag-foot button.bf-ic svg { width: 20px; height: 20px; fill: none; stroke: #e9cf8f; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.bag-foot button.bf-ic.on svg { stroke: #fff6dc; }
.bag-foot button.bf-ic span { font-weight: 400; letter-spacing: 0; }
.bag-foot button.bf-ic .ml-badge { position: absolute; top: -5px; right: -5px; }

/* 背包下方圖示精緻版：圓角方框、內光、金色漸層線條；信箱紅點（ml-dot，工具列「背包」鈕也用） */
.bag-foot button.bf-ic { width: 54px; padding: 5px 0 3px; border-radius: 7px; border-color: #8a6a3a; background: radial-gradient(ellipse 80% 60% at 50% 25%, rgba(226,189,107,.22), transparent 70%), linear-gradient(#3e3122, #1a130b);
  box-shadow: inset 0 1px 0 rgba(255,230,170,.25), 0 1px 3px rgba(0,0,0,.7); }
.bag-foot button.bf-ic:hover { border-color: #e2bd6b; box-shadow: inset 0 1px 0 rgba(255,230,170,.35), 0 0 8px rgba(226,189,107,.35); }
.bag-foot button.bf-ic svg { width: 22px; height: 22px; stroke: url(#bfg); stroke-width: 1.6; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.bag-foot button.bf-ic svg .f { fill: rgba(242,215,127,.13); }
.bag-foot button.bf-ic svg .s { fill: #f2d77f; stroke: none; }
.bag-foot button.bf-ic span { color: #d8c8a2; font-size: 10px; }
.bag-foot button.bf-ic.on { border-color: #e8cf8f; background: radial-gradient(ellipse 80% 70% at 50% 30%, rgba(255,214,120,.35), transparent 75%), linear-gradient(#6a522c, #2e2312); }
.ml-dot { position: absolute; top: 3px; right: 3px; width: 9px; height: 9px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff8a7a, #d81e10); border: 1px solid #2a0a06; box-shadow: 0 0 6px rgba(255,60,40,.8); pointer-events: none; animation: mlDot 1.6s ease-in-out infinite; }
@keyframes mlDot { 50% { transform: scale(1.25); } }
[data-tool="items"] { position: relative; }
@media (prefers-reduced-motion: reduce) { .ml-dot { animation: none; } }
.bag-foot button.bf-ic .bf-img { width: 26px; height: 23px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 1px 1px rgba(0,0,0,.9)) drop-shadow(0 0 3px rgba(255,214,120,.35)); margin: -1px 0 -2px; }
.bag-foot button.bf-ic .bf-img { width: 18px; height: 16px; margin: 3px 0 1px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.9)); image-rendering: auto; }
/* 魔法娃娃鈕：站長 2026-10-25 選定金色像素版（站長給的圖去背調金色），放大不抹平 */
.bag-foot button.bf-ic .bf-img { width: 27px; height: 24px; margin: -1px 0 -2px; image-rendering: pixelated; filter: drop-shadow(0 1px 1px rgba(0,0,0,.9)) drop-shadow(0 0 3px rgba(255,214,120,.35)); }
/* 站長給的金色圖示：照原圖顏色，不再套漸層線條 */
.bag-foot button.bf-ic .bf-img { width: 26px; height: 26px; margin: -2px 0 -1px; image-rendering: auto; filter: drop-shadow(0 1px 1px rgba(0,0,0,.9)); }

/* 手機直式裝備欄同電腦版（站長 2026-10-25「手機版也一樣做」）：EXP 負重不顯示、名字一行等級職業一行、血魔條放名字底下，空出來的高度給格子 */
body:not(.pcui) #lmui-doll { position: relative; --ld-c: clamp(34px, min(calc((min(calc(var(--vw1, 1vw) * 100), 520px) - 150px) / 4), calc((calc(var(--dvh1, 1dvh) * 100) - 400px) / 8)), 62px); }
body:not(.pcui) #lmui-doll .ld2-xp, body:not(.pcui) #lmui-doll .wt-note { display: none; }
body:not(.pcui) #lmui-doll .ld2-title { position: absolute; z-index: 2; top: 10px; left: calc(var(--ld-c) + 18px); right: calc(var(--ld-c) + 18px); display: block; text-align: center; line-height: 1.25; pointer-events: none; }
body:not(.pcui) #lmui-doll .ld2-title .nm { display: block; font-size: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body:not(.pcui) #lmui-doll .ld2-title .lv, body:not(.pcui) #lmui-doll .ld2-title .cl { font-size: 15px; }
body:not(.pcui) #lmui-doll .ld2-title .cl { margin-left: 6px; }
body:not(.pcui) #lmui-doll .ld2-bars { position: absolute; z-index: 2; top: 62px; left: calc(var(--ld-c) + 18px); right: calc(var(--ld-c) + 18px); flex-direction: column; gap: 4px; }
body:not(.pcui) #lmui-doll .ld2-bars .ld2-bar { flex: none; }
/* NPC 傳送清單＝狩獵場的一行一個（npc.js tele） */
#npc-window .npw-tps { display: flex; flex-direction: column; gap: 6px; padding: 2px 0; }
#npc-window .npw-tpr em { display: inline-flex; align-items: center; gap: 2px; }
/* 等級不符的變灰（第 407 項，例：風木沙漠的次元之門 45 級以上）、要交的道具（第 408 項，例：死亡騎士之印記×1） */
#npc-window .npw-tpr:disabled { opacity: .5; cursor: default; }
#npc-window .npw-tpr .npw-tpit { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
#npc-window .npw-tpr .npw-tpit img { width: 24px; height: 24px; object-fit: contain; }
/* 次元之門（第 407 項，npc.js doorHtml）：上面借艾利溫的屬性徽章（elf-crest、elf-c-*），下面 npw-row＋按鈕 */
#npc-window .dr { display: flex; flex-direction: column; gap: 10px; }
#npc-window .dr .npw-price { font-size: 14px; font-weight: 400; line-height: 1.4; color: #d9c79e; }
#npc-window .dr .dr-cnt { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; color: #f2d48a; }
#npc-window .dr .dr-cnt.ok { color: #86efac; }
#npc-window .dr-go .npw-btn { width: 100%; padding: 11px 12px; font-size: 16px; border-color: var(--ec); box-shadow: inset 0 1px rgba(200,205,240,.12), 0 0 10px var(--eg); }
#npc-window .dr-quit { display: flex; justify-content: flex-end; }
#npc-window .dr-quit .dr-q { padding: 5px 10px; font-size: 13px; font-weight: 400; color: #c9b88f; background: none; border-color: #5a4630; box-shadow: none; }
#npc-window .dr-note { padding: 16px 8px; line-height: 1.5; color: #e2d3b5; }
#npc-window .dr-cf { padding: 12px; border: 1px solid #8a4a32; border-radius: 6px; background: #1d1410; }
#npc-window .dr-cf b { display: block; font-size: 17px; color: #f5ecd8; }
#npc-window .dr-cf p { margin: 8px 0 12px; font-size: 15px; line-height: 1.5; color: #e2d3b5; }
#npc-window .dr-cf-btns { display: flex; justify-content: flex-end; gap: 8px; }
#npc-window .dr-cf .dr-danger { border-color: #c2553a; color: #ffd9cc; background: linear-gradient(180deg, #6a2a1c, #4a1810); }
#lmui-mapdrops .mi-drop[data-md] { cursor: pointer; border-radius: 4px; }
#lmui-mapdrops .mi-drop[data-md]:hover { background: rgba(226,189,107,.12); }
.ab-stitle.lock { cursor: default; opacity: .75; }
.ab-stitle.lock b { color: #a8997a; font-weight: 400; font-size: 13px; }

/* 封號顏色盤（clan.js selfTitle） */
#lmui-clinput .cl-tcolors { display: flex; flex-wrap: nowrap; gap: 5px; margin-top: 10px; justify-content: center; }
#lmui-clinput .cl-tcolors button { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 2px solid rgba(0,0,0,.6); background: var(--c); cursor: pointer; box-shadow: 0 0 0 1px #6b5636; }
#lmui-clinput .cl-tcolors button.on { box-shadow: 0 0 0 2px #fff1c4, 0 0 8px var(--c); }

/* 穿雲箭召集卡（call.js，伺服器第 237 項）：畫面上方中間、不擋操作 */
#call-cards { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 9000; display: flex; flex-direction: column; gap: 6px; width: min(340px, calc(100vw - 32px)); pointer-events: none; }
#call-cards .call-card { pointer-events: auto; position: relative; overflow: hidden; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; background: linear-gradient(180deg, rgba(40,30,18,.96), rgba(22,16,10,.96)); border: 1px solid #a8833f; box-shadow: 0 4px 14px rgba(0,0,0,.6), 0 0 12px rgba(255,190,80,.25); color: #f2e6c8; font-size: 13px; animation: callIn .25s ease-out; }
#call-cards .call-card.k2 { border-color: #5f8fd0; box-shadow: 0 4px 14px rgba(0,0,0,.6), 0 0 12px rgba(100,160,255,.3); }
#call-cards img { width: 32px; height: 32px; flex: none; image-rendering: pixelated; }
#call-cards .call-tx { flex: 1; min-width: 0; line-height: 1.35; }
#call-cards .call-tx b { color: #ffd862; }
#call-cards .call-card.k2 .call-tx b { color: #8fc2ff; }
#call-cards .call-tx small { display: block; color: #bfae8a; font-size: 11px; }
#call-cards .call-bt { display: flex; gap: 6px; flex: none; }
#call-cards button { padding: 6px 10px; border-radius: 5px; border: 1px solid #6b5636; background: #2a2016; color: #e8dcb5; font-size: 13px; cursor: pointer; }
#call-cards button[data-go] { background: linear-gradient(180deg, #c99a3e, #8a6420); color: #fff8e6; border-color: #e0b860; }
#call-cards .call-bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: #e0b860; transform-origin: left; animation: callBar linear forwards; }
#call-cards .k2 .call-bar { background: #7fb0ff; }
@keyframes callIn { from { opacity: 0; transform: translateY(-8px); } }
@keyframes callBar { to { transform: scaleX(0); } }

/* 系統頁省電模式的說明（hud.js systemHtml） */
.sy-note { margin: 0; padding: 0 12px 10px; color: #a8987a; font-size: 12px; line-height: 1.5; }

/* 小地圖框框底下那顆「本區掉寶」（hud.js；收起來的小地圖不顯示；第 324 項起排在框外、不蓋地圖） */
.afk-tm-mm .mm-drops { flex: none; height: 22px; padding: 0 12px; border: 1px solid #f0c96a; border-radius: 11px; background: linear-gradient(180deg, #d9a845, #8a6420); color: #fff8e2; font-size: 12px; font-weight: 700; letter-spacing: 1px; white-space: nowrap; text-shadow: 0 1px 1px rgba(0,0,0,.6); box-shadow: 0 2px 4px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,240,200,.5); cursor: pointer; }
.afk-tm-mm .mm-drops:active { transform: translateY(1px); filter: brightness(.9); box-shadow: 0 1px 2px rgba(0,0,0,.7); }
.afk-tm-mm.off .mm-drops { display: none; }

/* 主城建設官「建設」分頁（npc.js buildHtml，伺服器第 253 項；站長 2026-10-26「建設的視窗用精緻一點」） */
#npc-window .bd-build { display: flex; flex-direction: column; gap: 12px; }
#npc-window .bd-hero { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid #8a6a32; border-radius: 10px;
  background: radial-gradient(circle at 18% 30%, rgba(251,191,36,.22), transparent 60%), linear-gradient(180deg, #2a1f10, #15100a); box-shadow: inset 0 1px 0 rgba(255,230,160,.18); }
#npc-window .bd-emb svg { display: block; width: 52px; height: 58px; filter: drop-shadow(0 0 6px rgba(251,191,36,.45)); }
#npc-window .bd-ht { display: flex; flex-direction: column; gap: 2px; }
#npc-window .bd-ht b { font-size: 20px; letter-spacing: 2px; color: #ffe08a; text-shadow: 0 1px 0 #000, 0 0 10px rgba(255,200,80,.35); }
#npc-window .bd-ht small { font-size: 13px; color: #c9b58a; }
#npc-window .bd-prog { display: flex; flex-direction: column; gap: 6px; }
#npc-window .bd-bar { position: relative; height: 20px; border: 1px solid #7a5c2a; border-radius: 10px; background: linear-gradient(180deg, #0c0805, #1d150c); overflow: hidden; box-shadow: inset 0 2px 4px rgba(0,0,0,.7); }
#npc-window .bd-bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 10px; background: linear-gradient(180deg, #ffe08a, #d9a845 45%, #8a6420); box-shadow: 0 0 10px rgba(255,200,80,.6); }
#npc-window .bd-bar i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent); width: 40%; animation: bdShine 2.4s linear infinite; }
#npc-window .bd-bar span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: #fff8e2; text-shadow: 0 1px 2px #000, 0 0 3px #000; }
@keyframes bdShine { from { transform: translateX(-100%); } to { transform: translateX(260%); } }
#npc-window .bd-num { display: flex; align-items: center; justify-content: flex-end; gap: 4px; color: #c9b58a; font-size: 14px; }
#npc-window .bd-num b { color: #ffe08a; font-size: 16px; }
#npc-window .bd-perk { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; border: 1px solid #4a3c29; border-radius: 8px; background: rgba(26,20,14,.92); color: #c9b58a; font-size: 14px; }
#npc-window .bd-perk b { color: #e8d9b5; }
#npc-window .bd-perk.on { border-color: #4ade80; background: linear-gradient(180deg, rgba(34,90,50,.55), rgba(14,40,22,.8)); box-shadow: 0 0 12px rgba(74,222,128,.35); animation: bdGlow 2s ease-in-out infinite; }
#npc-window .bd-perk.on b { color: #a7f3c0; }
#npc-window .bd-perk.on span { color: #d9f8e3; }
@keyframes bdGlow { 50% { box-shadow: 0 0 18px rgba(74,222,128,.6); } }
#npc-window .bd-in { display: flex; align-items: center; gap: 6px; padding: 6px; border: 1px solid #6a5232; border-radius: 10px; background: #120d08; }
#npc-window .bd-coin { flex: none; display: flex; padding-left: 4px; }
#npc-window .bd-amt { flex: 1; min-width: 0; height: 38px; padding: 0 6px; border: 0; background: transparent; color: #ffe08a; font-size: 17px; font-weight: 700; outline: none; }
#npc-window .bd-amt::placeholder { color: #7a6a4a; font-weight: 400; }
#npc-window .bd-go { flex: none; min-width: 84px; height: 38px; border: 1px solid #f0c96a; border-radius: 8px; background: linear-gradient(180deg, #e2b24f, #8a6420); color: #fff8e2; font-size: 16px; font-weight: 700; letter-spacing: 2px; text-shadow: 0 1px 1px rgba(0,0,0,.6); box-shadow: 0 2px 4px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,240,200,.5); cursor: pointer; }
#npc-window .bd-go:active { transform: translateY(1px); filter: brightness(.92); }
#npc-window .bd-msg { color: #ff9b8a; font-size: 14px; text-align: center; }
#npc-window .bd-rank { border: 1px solid #5a4630; border-radius: 10px; background: linear-gradient(180deg, rgba(34,26,16,.95), rgba(18,13,8,.95)); padding: 10px 12px; }
#npc-window .bd-rh { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid #3e3122; }
#npc-window .bd-rh b { color: #ffe08a; letter-spacing: 1px; }
#npc-window .bd-rh em { font-style: normal; color: #c9b58a; font-size: 13px; }
#npc-window .bd-rank ol { margin: 0; padding: 0; list-style: none; color: #d9cba8; }
#npc-window .bd-rank li { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 6px; }
#npc-window .bd-rank li i { flex: none; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 12px; font-weight: 700; color: #c9b58a; background: #2a2016; }
#npc-window .bd-rank li.gold i { color: #3a2600; background: radial-gradient(circle at 35% 30%, #fff3b0, #e0a82a); box-shadow: 0 0 6px rgba(255,200,60,.6); }
#npc-window .bd-rank li.silver i { color: #222; background: radial-gradient(circle at 35% 30%, #ffffff, #a8b0bc); }
#npc-window .bd-rank li.bronze i { color: #2a1404; background: radial-gradient(circle at 35% 30%, #ffd2a8, #b8733a); }
#npc-window .bd-rank li.gold span { color: #ffe08a; }
#npc-window .bd-rank li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#npc-window .bd-rank li b { color: #e8d9b5; }
#npc-window .bd-rank li.me { background: rgba(255,216,98,.12); box-shadow: inset 0 0 0 1px rgba(255,216,98,.35); }
#npc-window .bd-none { padding: 10px 0; text-align: center; color: #8d7d5c; font-size: 14px; }
/* 第 274 項：娃娃視窗「自動召喚」開關（同系統頁 .sy-sw）＋地圖上顯示娃娃，同一塊 */
#doll-window .dw-set { margin: 8px 0; border: 1px solid #4a3f30; border-radius: 8px; background: rgba(20,15,10,.6); }
#doll-window .dw-set .dw-auto-note { margin: -6px 12px 8px 40px; font-size: 13px; color: #b9ab8e; }
#doll-window .dw-set .dl-show { margin: 0; border-top: 1px solid rgba(110,90,60,.35); }
/* 第 275 項：道具鎖——背包格左下小鎖（右下是數量、左上是強化值，第 277 項從右下搬來）、道具視窗標題列的鎖頭鈕（鎖著＝金色）、說明最上面一行 */
.il-tag { position: absolute; left: 1px; bottom: 1px; z-index: 2; font-size: 11px; line-height: 1; filter: drop-shadow(0 1px 1px #000); pointer-events: none; }
#lmui-itemwin .iw-lock { flex: none; width: 34px; height: 34px; margin-right: 4px; border: 1px solid #5c4d38; border-radius: 6px; background: linear-gradient(#2c241a, #15110c); font-size: 17px; line-height: 1; cursor: pointer; opacity: .75; }
#lmui-itemwin .iw-lock.on { opacity: 1; border-color: #e0bd72; background: linear-gradient(#6b5222, #3a2b10); box-shadow: 0 0 8px rgba(224,189,114,.45); }
#lmui-itemwin .iw-locked { margin-bottom: 6px; padding: 5px 8px; border-radius: 6px; background: rgba(224,189,114,.12); border: 1px solid rgba(224,189,114,.35); color: #f3d48a; font-size: 13px; }


/* ── 第 314 項：血盟招募板（clan.js recListHtml；站長「還是有點樸素…不像娃娃系統那麼強」）──
   階級色同娃娃系統：1 新興銀、2 精英藍、3 強盛紫、4 傳說金紅（--tc 主色、--tg 光暈） */
.rc-card, .rc-crest { --tc: #e8c26a; --tg: rgba(255,190,80,.45); --tb: rgba(200,140,40,.12); }   /* 第 315 項：不分階級，全部同一套金色 */
.rc-hero { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 8px 2px; text-align: center; }
.rc-hero b { font-size: 16px; color: #f5e3b0; letter-spacing: .1em; }
.rc-hero span { font-size: 12.5px; color: #a89f8e; }
.rc { padding: 2px 0 10px; }
/* 標題：交叉雙劍＋金字＋統計 */
.rc-hd { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 10px 0 12px; padding: 10px 8px; border-radius: 8px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.22), transparent 70%), linear-gradient(180deg, rgba(60,40,18,.6), rgba(18,12,6,.7));
  border: 1px solid rgba(217,178,94,.45); box-shadow: inset 0 1px 0 rgba(255,236,190,.15), 0 0 18px rgba(255,180,80,.08); }


.rc-hd-ico { flex: none; width: 30px; height: 30px; color: #f2d77f; filter: drop-shadow(0 0 6px rgba(255,200,90,.7)); }
.rc-hd-ico svg { width: 100%; height: 100%; display: block; }
.rc-hd-t { display: flex; flex-direction: column; align-items: center; line-height: 1.25; }
.rc-hd-t b { font-size: 18px; letter-spacing: .35em; padding-left: .35em; font-family: "Noto Serif TC", "PMingLiU", serif; font-weight: 900;
  background: linear-gradient(#fffbe8 0%, #f5d888 40%, #b47c22 60%, #f8df92 85%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 1px 1px #000); }
.rc-hd-t small { font-size: 11.5px; color: #c9b88e; letter-spacing: .08em; }
.rc-note { position: relative; display: flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 8px 12px; border-radius: 6px; overflow: hidden;
  border: 1px solid rgba(110,231,160,.5); background: linear-gradient(90deg, rgba(46,125,80,.35), rgba(46,125,80,.05)); color: #c8f5da; font-size: 12.5px; }
.rc-note i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #6ee7a0; box-shadow: 0 0 8px #6ee7a0; animation: rc-pulse 1.6s ease-in-out infinite; }
.rc-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 0; color: #8d8473; font-size: 13.5px; }
.rc-empty svg { width: 36px; height: 36px; color: #5c4e35; }
.rc-list { display: flex; flex-direction: column; gap: 12px; }
/* 卡片 */
.rc-card { position: relative; display: grid; grid-template-columns: 58px 1fr; gap: 10px; padding: 12px 10px 10px 10px; border-radius: 10px; isolation: isolate;
  background: radial-gradient(ellipse at 0% 0%, var(--tb), transparent 65%), linear-gradient(165deg, rgba(48,38,26,.92), rgba(14,11,8,.96) 70%);
  border: 1px solid color-mix(in srgb, var(--tc) 38%, #3d3324); box-shadow: inset 0 1px 0 rgba(255,236,190,.08), 0 4px 14px rgba(0,0,0,.55), 0 0 0 0 var(--tg);
  animation: rc-in .4s cubic-bezier(.2,.9,.3,1.2) both; }
.rc-list .rc-card:nth-child(2) { animation-delay: .06s; } .rc-list .rc-card:nth-child(3) { animation-delay: .12s; } .rc-list .rc-card:nth-child(4) { animation-delay: .18s; } .rc-list .rc-card:nth-child(n+5) { animation-delay: .24s; }
.rc-card::before { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: -1; pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(255,240,200,.07) 45%, transparent 55%); background-size: 260% 100%; animation: rc-sheen 6s linear infinite; }
.rc-card[data-t="3"], .rc-card[data-t="4"] { box-shadow: inset 0 1px 0 rgba(255,236,190,.1), 0 4px 14px rgba(0,0,0,.55), 0 0 14px -4px var(--tg); }
.rc-card.on { border-left: 3px solid #6ee7a0; padding-left: 8px; }
.rc-card.low { filter: saturate(.55) brightness(.85); }
/* 人氣：金邊流光＋綬帶 */
.rc-card.hot { border-color: transparent; background-clip: padding-box; }
.rc-card.hot::after { content: ""; position: absolute; inset: -1px; border-radius: 11px; z-index: -2; padding: 1px;
  background: linear-gradient(90deg, #8a6526, #ffe9a6, #d4ac55, #fff6d8, #8a6526); background-size: 300% 100%; animation: rc-flow 3s linear infinite;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.rc-ribbon { position: absolute; top: 8px; right: -30px; z-index: 3; width: 100px; padding: 2px 0; transform: rotate(38deg); text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .3em;
  color: #2a1606; background: linear-gradient(180deg, #ffe9a6, #d4ac55); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.rc-card.hot { overflow: hidden; }
/* 已申請：金框＋朱印 */
.rc-card.mine { border-color: #d9b25e; box-shadow: 0 0 0 1px rgba(217,178,94,.4), 0 0 20px rgba(217,178,94,.3), inset 0 1px 0 rgba(255,236,190,.14); }
.rc-seal { position: absolute; top: 8px; right: 6px; z-index: 2; padding: 2px 7px; border: 2px solid #c8392b; border-radius: 4px; transform: rotate(-8deg);
  color: #ff6b57; font-size: 12px; font-weight: 900; letter-spacing: .15em; font-family: "Noto Serif TC", "PMingLiU", serif; background: rgba(60,8,4,.35); box-shadow: 0 0 8px rgba(200,57,43,.4); }
/* 盾形盟徽：金屬框（階級色）、背後轉動光環（強盛以上）、傳說星火、盟主在線戴王冠 */
.rc-crest { --h: 30; position: relative; width: 56px; height: 62px; display: grid; place-items: center; align-self: start; margin-top: 2px; }
.rc-halo { position: absolute; inset: -6px; border-radius: 50%; opacity: 0; }
.rc-crest .rc-halo { opacity: 1; inset: -4px; background: radial-gradient(circle, var(--tg) 0%, transparent 68%); animation: rc-glow 2.4s ease-in-out infinite; }
.rc-crest[data-t="4"] .rc-halo::after { content: ""; position: absolute; inset: -2px; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0 40%, rgba(255,230,150,.55) 50%, transparent 60%); -webkit-mask: radial-gradient(circle, transparent 58%, #000 60%, #000 66%, transparent 68%); mask: radial-gradient(circle, transparent 58%, #000 60%, #000 66%, transparent 68%); animation: rc-spin 4s linear infinite; }
.rc-shield { position: relative; width: 50px; height: 56px; display: grid; place-items: center;
  clip-path: polygon(50% 0, 100% 12%, 100% 58%, 50% 100%, 0 58%, 0 12%);
  background: linear-gradient(150deg, color-mix(in srgb, var(--tc) 85%, #fff), var(--tc) 40%, color-mix(in srgb, var(--tc) 40%, #000)); }
.rc-shield::before { content: ""; position: absolute; inset: 3px; clip-path: inherit;
  background: radial-gradient(ellipse at 35% 25%, hsl(var(--h) 55% 50%), hsl(var(--h) 60% 22%) 70%, hsl(var(--h) 60% 12%)); }
.rc-shield::after { content: ""; position: absolute; inset: 3px; clip-path: inherit; background: linear-gradient(160deg, rgba(255,255,255,.35), transparent 38%); pointer-events: none; }
/* 有盟徽的不畫盾牌（站長 2026-10-31），盟徽放大一點 */
.rc-shield.bare { clip-path: none; background: none; }
.rc-shield.bare::before, .rc-shield.bare::after { content: none; }
.rc-shield.bare .rc-emb { width: 44px; height: 33px; }
.rc-shield b { position: relative; z-index: 1; font-size: 23px; font-weight: 900; color: #fff6d8; font-family: "Noto Serif TC", "PMingLiU", serif;
  text-shadow: 0 1px 0 rgba(0,0,0,.9), 0 -1px 0 rgba(255,255,255,.25), 0 0 8px rgba(0,0,0,.7); }
.rc-emb { position: relative; z-index: 1; width: 32px; height: 24px; } .rc-emb img { width: 100%; height: 100%; image-rendering: pixelated; }
.rc-crown { position: absolute; top: -9px; left: 50%; width: 20px; height: 20px; margin-left: -10px; color: #ffd862; filter: drop-shadow(0 0 4px rgba(255,200,80,.9)) drop-shadow(0 1px 1px #000); animation: rc-bob 2.4s ease-in-out infinite; }
.rc-crown svg { width: 100%; height: 100%; display: block; }
.rc-ember { position: absolute; bottom: 4px; left: var(--x); width: 3px; height: 3px; border-radius: 50%; background: #ffd862; box-shadow: 0 0 4px 1px #ff8a3c; opacity: 0; animation: rc-ember 2.6s ease-out infinite; animation-delay: var(--d); }
/* 內容 */
.rc-body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rc-name { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-width: 0; }
.rc-card.hot .rc-name, .rc-card.mine .rc-name { padding-right: 44px; }
.rc-name b { min-width: 0; max-width: 100%; font-size: 16px; font-weight: 800; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: "Noto Serif TC", "PMingLiU", serif;
  background: linear-gradient(#fffaf0, color-mix(in srgb, var(--tc) 70%, #f5d888)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 1px 1px #000); }
.rc-tier { flex: none; padding: 0 6px; height: 17px; display: inline-flex; align-items: center; border-radius: 9px; font-size: 10.5px; font-weight: 700; letter-spacing: .1em;
  color: var(--tc); border: 1px solid color-mix(in srgb, var(--tc) 60%, transparent); background: color-mix(in srgb, var(--tc) 14%, transparent); box-shadow: 0 0 6px -1px var(--tg); }
.rc-demo { flex: none; padding: 0 5px; border: 1px solid #5c5240; border-radius: 3px; color: #8d8473; font-size: 10.5px; }
.rc-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.rc-chip { display: inline-flex; align-items: center; gap: 4px; height: 21px; padding: 0 7px; border-radius: 11px; font-size: 11.5px; color: #c9bfae; white-space: nowrap;
  background: rgba(0,0,0,.38); border: 1px solid rgba(125,108,76,.45); }
.rc-chip svg { width: 12px; height: 12px; flex: none; color: #8d8473; }
.rc-chip b { color: #b9f0cf; font-weight: 700; }
.rc-chip.lead.on { color: #f5e3b0; border-color: rgba(255,216,98,.5); } .rc-chip.lead.on svg { color: #ffd862; filter: drop-shadow(0 0 3px rgba(255,200,80,.8)); }
.rc-chip.lv { color: #f2d77f; border-color: rgba(217,178,94,.5); } .rc-chip.lv svg { color: #d9b25e; }
.rc-chip.lv.bad { color: #ff9a7a; border-color: rgba(200,80,60,.6); } .rc-chip.lv.bad svg { color: #ff7a5c; }
.rc-intro { position: relative; padding: 6px 10px 6px 22px; border-radius: 6px; font-size: 12.5px; line-height: 1.45; color: #ede2c8; overflow-wrap: anywhere;
  background: linear-gradient(90deg, rgba(120,90,40,.22), rgba(0,0,0,.2)); border: 1px solid rgba(125,108,76,.3); }
.rc-intro::before { content: "\201C"; position: absolute; left: 6px; top: -3px; font-size: 24px; color: #b8913f; font-family: Georgia, serif; }
.rc-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rc-heat { display: inline-flex; gap: 3px; }
.rc-heat i { width: 9px; height: 13px; clip-path: polygon(50% 0, 85% 45%, 75% 100%, 25% 100%, 15% 45%); background: #3a3226; }
.rc-heat i.on { background: linear-gradient(0deg, #c2410c, #fb923c 55%, #fde68a); filter: drop-shadow(0 0 3px rgba(251,146,60,.85)); animation: rc-flick 1.4s ease-in-out infinite; }
.rc-heat i.on:nth-child(2) { animation-delay: .2s; } .rc-heat i.on:nth-child(3) { animation-delay: .4s; } .rc-heat i.on:nth-child(4) { animation-delay: .1s; } .rc-heat i.on:nth-child(5) { animation-delay: .3s; }
/* 按鈕 */
.rc-btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 30px; padding: 0 14px; border-radius: 5px; cursor: pointer; white-space: nowrap; font-size: 13px; letter-spacing: .08em; }
.rc-btn.go { border: 1px solid #f2d77f; color: #2a1606; font-weight: 800; background: linear-gradient(180deg, #ffe9a6 0%, #d4ac55 45%, #9a7230 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,240,.8), 0 0 12px rgba(255,200,90,.35), 0 2px 6px rgba(0,0,0,.6); text-shadow: 0 1px 0 rgba(255,240,200,.6); }
.rc-btn.go::after { content: ""; position: absolute; top: -50%; bottom: -50%; left: -60%; width: 40%; transform: rotate(25deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent); animation: rc-shine 3s ease-in-out infinite; }
.rc-btn.go span { position: relative; z-index: 1; }
.rc-btn.go:active { transform: translateY(1px) scale(.98); filter: brightness(.95); }
.rc-btn.go:disabled { cursor: default; filter: grayscale(.9) brightness(.55); box-shadow: none; } .rc-btn.go:disabled::after { display: none; }
.rc-btn.ghost { border: 1px solid #7d6c4c; background: rgba(0,0,0,.4); color: #e2bd6b; }
.rc-btn.lock { border: 1px solid #6b3b2e; background: rgba(40,10,6,.5); color: #ff9a7a; cursor: default; }
.rc-btn.lock svg { width: 12px; height: 12px; }
/* 申請儀式：光爆＋星火＋朱印 */
.rc-fx { position: absolute; inset: 0; z-index: 5; pointer-events: none; display: grid; place-items: center; border-radius: inherit; overflow: hidden; }
.rc-burst { position: absolute; width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle, #fff, rgba(255,216,98,.8) 40%, transparent 70%); animation: rc-burst .7s ease-out both; }
.rc-fx > i { position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; margin: -2.5px; background: #fff3c4; transform: rotate(45deg); box-shadow: 0 0 6px 2px #ffd862; animation: rc-spark .8s ease-out both; }
.rc-stamp { position: relative; padding: 4px 14px; border: 3px solid #c8392b; border-radius: 6px; color: #ff6b57; font-size: 18px; font-weight: 900; letter-spacing: .2em;
  font-family: "Noto Serif TC", "PMingLiU", serif; background: rgba(40,6,3,.75); box-shadow: 0 0 18px rgba(200,57,43,.6); animation: rc-stamp 1.5s cubic-bezier(.2,1.4,.4,1) both; }
/* 盟主：登錄區 */
.rc-post { position: relative; margin: 6px 0 14px; padding: 12px; border-radius: 10px; display: flex; flex-direction: column; gap: 10px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.14), transparent 70%), linear-gradient(165deg, rgba(48,38,26,.92), rgba(14,11,8,.96));
  border: 1px solid rgba(217,178,94,.45); box-shadow: inset 0 1px 0 rgba(255,236,190,.1), 0 4px 14px rgba(0,0,0,.5); }
.rc-post.live { border-color: rgba(110,231,160,.55); box-shadow: 0 0 16px rgba(110,231,160,.15), inset 0 1px 0 rgba(255,236,190,.1); }
.rc-post-hd { display: flex; align-items: center; gap: 8px; }
.rc-post-hd .rc-hd-ico { width: 22px; height: 22px; }
.rc-post-hd b { flex: 1; font-size: 15px; letter-spacing: .15em; color: #f2d77f; font-family: "Noto Serif TC", "PMingLiU", serif; }
.rc-state { padding: 1px 9px; border-radius: 10px; font-size: 11.5px; background: rgba(0,0,0,.45); color: #a89f8e; border: 1px solid #5c4e35; }
.rc-post.live .rc-state { color: #c8f5da; border-color: rgba(110,231,160,.55); background: rgba(46,125,80,.3); box-shadow: 0 0 8px rgba(110,231,160,.25); }
.rc-in { box-sizing: border-box; height: 38px; padding: 0 10px; border: 1px solid #5c4e35; border-radius: 5px; background: #0a0806; color: #f0e4c8; font-size: 16px; outline: none; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); }
.rc-in:focus { border-color: #d9b25e; box-shadow: inset 0 2px 4px rgba(0,0,0,.6), 0 0 8px rgba(217,178,94,.35); }
.rc-post > .rc-in { width: 100%; }
.rc-post-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.rc-lvset { display: inline-flex; align-items: center; gap: 4px; color: #c9bfae; font-size: 13px; }
.rc-lvset > svg { width: 14px; height: 14px; color: #d9b25e; margin-right: 2px; }
.rc-lvset button { width: 30px; height: 30px; border-radius: 5px; border: 1px solid #7d6c4c; background: rgba(0,0,0,.4); color: #f2d77f; font-size: 16px; cursor: pointer; }
.rc-lvset .rc-in { width: 50px; height: 30px; text-align: center; padding: 0; -moz-appearance: textfield; }
.rc-lvset .rc-in::-webkit-inner-spin-button, .rc-lvset .rc-in::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.rc-lvset em { font-style: normal; margin-left: 2px; }
.rc-post-btns { display: inline-flex; gap: 8px; margin-left: auto; }
@keyframes rc-in { from { opacity: 0; transform: translateY(10px) scale(.97); } }
@keyframes rc-sheen { from { background-position: 130% 0; } to { background-position: -130% 0; } }
@keyframes rc-flow { to { background-position: -300% 0; } }
@keyframes rc-spin { to { transform: rotate(360deg); } }
@keyframes rc-glow { 50% { transform: scale(1.12); opacity: .65; } }
@keyframes rc-bob { 50% { transform: translateY(-2px); } }
@keyframes rc-pulse { 50% { opacity: .4; } }
@keyframes rc-ember { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(-40px) translateX(4px); } }
@keyframes rc-flick { 50% { transform: scaleY(.85); filter: drop-shadow(0 0 5px rgba(251,146,60,1)); } }
@keyframes rc-shine { 0%, 60% { left: -60%; } 100% { left: 130%; } }
@keyframes rc-burst { 0% { transform: scale(.2); opacity: 1; } 100% { transform: scale(6); opacity: 0; } }
@keyframes rc-spark { 0% { transform: rotate(var(--a)) translateY(0) rotate(45deg); opacity: 1; } 100% { transform: rotate(var(--a)) translateY(calc(-1 * var(--r))) rotate(45deg) scale(.3); opacity: 0; } }
@keyframes rc-stamp { 0% { transform: scale(2.4) rotate(-14deg); opacity: 0; } 25% { transform: scale(.94) rotate(-8deg); opacity: 1; } 35% { transform: scale(1) rotate(-8deg); } 80% { opacity: 1; } 100% { opacity: 0; transform: scale(1) rotate(-8deg); } }
@media (prefers-reduced-motion: reduce) { .rc-card, .rc-card::before, .rc-card.hot::after, .rc-halo, .rc-crown, .rc-ember, .rc-heat i, .rc-btn.go::after, .rc-note i { animation: none !important; } }

/* 第 317 項：盾牌裡放盟徽（盟徽 16×12 放大成像素圖）；沒盟徽不能登錄招募 */
.rc-emb { width: 34px; height: 26px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.rc-need { padding: 8px 10px; border-radius: 6px; border: 1px dashed rgba(217,178,94,.5); color: #e8d6a8; font-size: 13px; text-align: center; background: rgba(0,0,0,.25); }

/* 第 344 項：召喚表月卡說明（只給法師） */
#lmui-summon .sm-mcard { margin: 6px 10px 0; padding: 6px 10px; border-radius: 7px; border: 1px dashed #5a4630; color: #b9ad98; font-size: 13px; line-height: 1.45; background: rgba(10,8,6,.5); }
#lmui-summon .sm-mcard.on { border-style: solid; border-color: #b7862f; color: #fde68a; background: linear-gradient(#2e2210, #1a130a); }
#lmui-summon .sm-mcard b { margin-right: 6px; padding: 0 6px; border-radius: 4px; background: #b7862f; color: #1a130a; font-size: 12px; }
#lmui-summon .sm-mcard em { float: right; font-style: normal; font-weight: 700; }

/* 第 353 項：收購商「全部賣出」（npc.js allSellHtml；按第一下變確定） */
#npc-window .npw-sellall { display: flex; justify-content: flex-end; margin-bottom: 6px; }
#npc-window .npw-sellall .npw-btn.on { color: #ffe9a8; border-color: #c9a24a; background: #5a4317; }

/* ⚔ 血盟戰爭戰況條（伺服器第 455 項，warbar.js；站長 2026-10-29「血盟戰爭畫面上方可收折」）：畫面上方置中、點一下收起／展開。
   位置由 warbar.js place() 量版面設（同試煉獎勵入口：頭像列＋跑馬燈底下，名單、全螢幕鈕、小地圖、試煉獎勵入口擋到就讓開），這裡是量不到時的預設 */
#cw-bar { position: fixed; top: calc(var(--orig-bar-h, 0px) + 104px); left: 25%; z-index: 57; margin: 0; display: flex; flex-direction: column; gap: 4px; max-width: calc(100% - 8px);
  padding: 4px 9px 5px; border: 1px solid rgba(201,162,77,.8); border-radius: 8px; background: rgba(16,11,6,.84); color: #f0e2bf; text-align: left; cursor: pointer;
  font: 700 13px/1.25 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  touch-action: manipulation; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
#cw-bar.folded { flex-direction: row; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 14px; }
#cw-bar .cwb-war { display: flex; flex-direction: column; gap: 1px; }
#cw-bar .cwb-war + .cwb-war { padding-top: 4px; border-top: 1px solid rgba(201,162,77,.35); }
#cw-bar .cwb-top { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
#cw-bar .cwb-x { width: 15px; height: 15px; flex: none; }
#cw-bar b { font-size: 17px; line-height: 1; }
#cw-bar i { font-style: normal; color: #a8997a; }
#cw-bar .cwb-me { color: #86efac; }
#cw-bar .cwb-foe { color: #f87171; }
#cw-bar .cwb-nm { max-width: 7em; overflow: hidden; text-overflow: ellipsis; }
#cw-bar .cwb-t { margin-left: auto; padding-left: 10px; color: #fde68a; font-variant-numeric: tabular-nums; }
#cw-bar.folded .cwb-t { margin-left: 0; padding-left: 0; }
#cw-bar .cwb-fold { flex: none; margin-left: 4px; font-size: 10px; color: #a8997a; }
#cw-bar .cwb-sub { padding-left: 19px; font-size: 12px; font-weight: 400; color: #c9bfae; white-space: nowrap; }
body.lmui-cover #cw-bar { display: none; }   /* 彈出視窗開著：藏起來（hud.js syncCover） */
/* 伺服器第 463 項：掛機紀錄、上次離線掛機最底下「夥伴用掉：…」一行（hud.js petUsedLine） */
#lmui-huntlog .mi-petused, #lmui-offlog .mi-petused { padding: 4px 2px 8px; font-size: 14px; line-height: 1.5; color: #e9dcc0; overflow-wrap: anywhere; }
/* 伺服器第 474 項：輔助魔法同類互斥的提示（hud.js buffTag：「跟○○只能選一個」「同類」） */
.st-chk span .as-bc { display: block; white-space: normal; font-size: 12px; line-height: 1.3; color: #d9b26a; }
/* 掉寶視窗怪物名字旁的種族標籤（hud.js showMapDrops：不死、惡魔） */
.mi-race { align-self: center; font-size: 12px; line-height: 1; padding: 3px 5px; border-radius: 4px; font-weight: 700; white-space: nowrap; }
.mi-race.undead { color: #d8f0ff; background: #2d4a63; border: 1px solid #6f9fc6; }
.mi-race.demon { color: #ffd9d2; background: #5e2020; border: 1px solid #c45a4a; }

/* 名單頁：每隻怪一列，右邊 打｜不打｜瞬移（站長 2026-10-30 合併兩份名單） */
.ms-row { gap: 8px; }
.ms-row b { flex: 1 1 auto; min-width: 0; }
.ms-row b small { font-size: 12px; color: #a8997a; font-weight: normal; }
.ms-seg { flex: none; display: inline-flex; border: 1px solid rgba(217,178,92,.6); border-radius: 8px; overflow: hidden; }
.ms-seg button { min-width: 44px; height: 34px; padding: 0 8px; border: 0; border-left: 1px solid rgba(217,178,92,.35); background: rgba(14,11,9,.7); color: #b8ab90; font-size: 14px; }
.ms-seg button:first-child { border-left: 0; }
.ms-seg button.on.hit { background: #5d4a26; color: #fff4d6; }
.ms-seg button.on.ig { background: #4a4a4a; color: #fff; }
.ms-seg button.on.tp { background: #7a2a22; color: #ffe0d8; }
/* 名單頁加入列：選單＋「不打」「瞬移」兩顆（第 499 項） */
.ms-add button { padding: 0 12px; }
.ms-row .lmas-del { flex: none; }
.ms-add { margin: 2px 0 8px; }

/* 隊伍增益（party.js buffHtml；伺服器第 513 項）：隊伍分頁隊員下面，一種一列——名字＋效果、剩的時間、開／續 1 小時（底下小字價錢） */
.pb-note { margin: 2px 0 6px; font-size: 13px; color: #c98a6b; }
.pb-note.on { color: #8fd18b; }
.pb-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.pb-row { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid #4a3c28; border-radius: 8px; background: linear-gradient(#241c13, #17120c); }
.pb-row.act { border-color: #8a6d35; box-shadow: inset 0 0 8px rgba(226,189,107,.15); }
.pb-who { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pb-who b { font-size: 15px; color: #f5e3b0; }
.pb-who small { font-size: 12px; color: #a8997a; }
.pb-left { flex: none; min-width: 3.6em; text-align: right; font-size: 14px; font-weight: 700; color: #8fd18b; font-variant-numeric: tabular-nums; }
.pb-row button { flex: none; display: flex; flex-direction: column; align-items: center; min-width: 84px; padding: 5px 8px; border: 1px solid rgba(200,160,80,.8); border-radius: 6px;
  background: linear-gradient(180deg, #b8913f, #6e521f); color: #1c1306; font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; }
.pb-row button small { font-size: 11px; font-weight: 600; }
.pb-row button:disabled { background: #2a2419; color: #7d7364; border-color: #4a3f30; cursor: not-allowed; }
.pb-left i { font-style: normal; font-weight: 400; color: #7d7364; }
/* 左側隊員欄下面：隊伍增益在跑的種類＋剩的時間（第 513 項） */
.pt-buffbar { padding: 2px 5px; font-size: 11px; line-height: 1.35; color: #c9b48a; background: rgba(20,14,8,.75); border-radius: 4px; }
.pt-buffbar.on { color: #8fd18b; }
/* 隊伍分頁：隊長的自由招募開關（第 517 項） */
.pt-recruit { margin-bottom: 6px; border: 1px solid #5c4830; border-radius: 8px; background: linear-gradient(#2c2117, #1b140d); }
/* 隊伍分頁沒隊伍時：開隊大按鈕＋招募卡片（party.js recruitHtml；站長 2026-10-31「介面有點鳥」） */
.pr { display: flex; flex-direction: column; gap: 10px; padding: 4px 2px 12px; }
.pr-hero { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 12px 14px; text-align: center; border: 1px solid #6b5636; border-radius: 10px;
  background: radial-gradient(ellipse at 50% 0%, rgba(226,189,107,.18), transparent 70%), linear-gradient(#2c2117, #1b140d); }
.pr-hero b { font-size: 18px; color: #f5e3b0; letter-spacing: 1px; }
.pr-hero p { margin: 0; font-size: 13px; color: #b8a888; }
.pr-go { margin-top: 6px; width: 100%; max-width: 260px; height: 44px; border: 1px solid #e0bd72; border-radius: 8px; background: linear-gradient(180deg, #d9ae55, #8a6424); color: #1c1306;
  font: inherit; font-size: 17px; font-weight: 800; letter-spacing: 3px; cursor: pointer; box-shadow: 0 0 12px rgba(226,189,107,.35), inset 0 1px 0 rgba(255,255,255,.35); }
.pr-go:active { filter: brightness(1.15); }
.pr-go:disabled { opacity: .6; }
.pr-h { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; letter-spacing: 2px; color: #f3d48a; text-shadow: 0 1px 2px #000; }
.pr-h span { min-width: 20px; height: 20px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 10px; background: #5c4419; color: #ffe7a0; font-size: 12px; letter-spacing: 0; }
.pr-h::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,164,99,.55), rgba(201,164,99,0)); }
.pr-list { display: flex; flex-direction: column; gap: 8px; }
.pr-card { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid #5c4830; border-radius: 10px; background: linear-gradient(#2a2017, #18120c); box-shadow: inset 0 1px 0 rgba(255,230,170,.06); }
.pr-logo { flex: none; width: 40px; height: 40px; object-fit: contain; border: 1px solid #6b5636; border-radius: 8px; background: #0e0b09; padding: 3px; box-sizing: border-box; }
.pr-mid { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.pr-nm { display: flex; align-items: baseline; gap: 6px; min-width: 0; font-size: 16px; font-weight: 800; color: #9fe08f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-nm small { flex: none; font-size: 12px; font-weight: 600; color: #c9b48a; }
.pr-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; color: #a8997a; }
.pr-map { padding: 0 6px; border-radius: 4px; background: rgba(120,90,40,.35); color: #e8d5a5; }
.pr-slots { display: flex; align-items: center; gap: 3px; }
.pr-slots i { width: 10px; height: 10px; border-radius: 3px; border: 1px solid #6b5636; background: #120d08; }
.pr-slots i.on { border-color: #e0bd72; background: linear-gradient(#f0d48a, #b58a3a); box-shadow: 0 0 4px rgba(255,210,120,.5); }
.pr-slots em { margin-left: 6px; font-style: normal; font-size: 12px; color: #c9b48a; }
.pr-join { flex: none; width: 64px; height: 40px; border: 1px solid #e0bd72; border-radius: 8px; background: linear-gradient(180deg, #d9ae55, #8a6424); color: #1c1306; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.pr-join:disabled { opacity: .5; }
.pr-empty { padding: 18px 10px; text-align: center; font-size: 14px; color: #8f8370; border: 1px dashed #4a3c28; border-radius: 10px; }
.pt-buffbar span { display: block; white-space: nowrap; }
/* 掉寶視窗怪物名字旁：大型／小型、硬皮、弱點屬性、主動攻擊（站長 2026-10-31） */
.mi-tag { align-self: center; font-size: 12px; line-height: 1; padding: 3px 5px; border-radius: 4px; font-weight: 700; white-space: nowrap; color: #e9dcc0; background: #3a3024; border: 1px solid #7a6440; }
.mi-tag.big { color: #ffe9b0; background: #5a4418; border-color: #c9a25a; }
.mi-tag.hard { color: #e8e8e8; background: #4a4a50; border-color: #9a9aa6; }
.mi-tag.weak { color: #cfeec8; background: #26462a; border-color: #5f9a5c; }
.mi-tag.agro { color: #ffd2c8; background: #5a2a1e; border-color: #c4664a; }
/* 加到主畫面提示（homeapp.js；站長 2026-11-01「內容說明詳細一點」）：好處列表、步驟、小字 */
#hometip .ht-card { max-width: 360px; max-height: calc(100vh - 32px); overflow-y: auto; }
#hometip .ht-why { margin: 0 0 10px; padding-left: 18px; }
#hometip .ht-why li { margin: 2px 0; }
#hometip .ht-h { margin: 6px 0 4px; font-weight: 700; color: #ffe3a3; }
#hometip .ht-steps { margin: 0 0 10px; padding-left: 22px; }
#hometip .ht-steps li { margin: 4px 0; }
#hometip button[data-a="close"] { padding: 8px 22px; }

/* 管理員視窗（js/admin.js，伺服器第 543 項） */
#lmui-admin .ad-note { margin: 6px 8px 0; padding: 6px 10px; border-radius: 6px; background: #1d2a17; border: 1px solid #4d7a3a; color: #cdeab8; font-size: 13px; }
#lmui-admin .ad-muted { margin: 6px 2px; color: #a8997a; font-size: 13px; }
#lmui-admin .ad-big { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
#lmui-admin .ad-big.one { grid-template-columns: 1fr; }
#lmui-admin .ad-big > div { padding: 10px 4px; text-align: center; border: 1px solid #5a4630; border-radius: 8px; background: #17120c; }
#lmui-admin .ad-big b { display: block; font-size: 22px; color: #fde68a; }
#lmui-admin .ad-big span { font-size: 12px; color: #b9ad98; }
#lmui-admin .ad-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
#lmui-admin .ad-tbl th, #lmui-admin .ad-tbl td { padding: 5px 6px; border-bottom: 1px solid #33281b; text-align: left; }
#lmui-admin .ad-tbl th { color: #c9b88f; font-weight: 700; }
#lmui-admin .ad-tbl td:last-child { text-align: right; }
#lmui-admin .ad-tbl tr.sum td { color: #fde68a; font-weight: 700; }
#lmui-admin .ad-tbl small { display: block; color: #a8997a; font-size: 11px; }
#lmui-admin .ad-sub { margin-top: 6px; color: #c9b88f; font-weight: 700; font-size: 13px; }
#lmui-admin .ad-invis { margin-top: 4px; padding: 10px; border: 1px solid #5a4630; border-radius: 8px; background: #17120c; color: #eee; font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; }
#lmui-admin .ad-invis.on { background: #3a2c1a; color: #fde68a; border-color: #b7791f; }
#lmui-admin .ad-search { display: flex; gap: 6px; }
#lmui-admin .ad-q { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid #5a4630; border-radius: 6px; background: #0f0c08; color: #eee; font-size: 15px; font-family: inherit; }
#lmui-admin .ad-go, #lmui-admin .ad-btns button { padding: 7px 12px; border: 1px solid #b7791f; border-radius: 6px; background: #3a2c1a; color: #fde68a; font-weight: 700; font-size: 14px; cursor: pointer; font-family: inherit; }
#lmui-admin .ad-btns button.danger { border-color: #8b2b22; background: #3a1512; color: #ffb4a8; }
#lmui-admin .ad-row { display: flex; gap: 8px; align-items: center; padding: 8px; border: 1px solid #33281b; border-radius: 8px; background: #120e09; }
#lmui-admin .ad-row.banned { border-color: #6b2620; }
#lmui-admin .ad-who { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 12px; color: #b9ad98; }
#lmui-admin .ad-who b { font-size: 15px; color: #fde68a; }
#lmui-admin .ad-who em { font-style: normal; color: #8f8574; }
#lmui-admin .ad-who em.on { color: #8fdc7a; } #lmui-admin .ad-who em.afk { color: #e8c46a; } #lmui-admin .ad-who em.ban { color: #ff8a7a; }
#lmui-admin .ad-btns { display: flex; flex-direction: column; gap: 4px; }

/* 維修倒數浮窗（js/shutdown-ui.js；站長 2026-11-01「倒數秒數時候用浮窗」）：畫面上方中間，點不到（不擋操作） */
#sd-float { position: fixed; left: 50%; top: calc(env(safe-area-inset-top, 0px) + 18%); transform: translateX(-50%); z-index: 2147483000; pointer-events: none;
  display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 180px; padding: 10px 22px 12px; border: 1px solid #c9a463; border-radius: 8px;
  background: rgba(20, 12, 8, .88); box-shadow: 0 0 0 1px #000, 0 6px 24px rgba(0,0,0,.6), 0 0 18px rgba(201,164,99,.25); color: #f0e2c0; font-size: 14px; text-align: center; }
#sd-float[hidden] { display: none; }
#sd-float b { font-size: 40px; line-height: 1.1; color: #ffd27a; text-shadow: 0 0 10px rgba(255,170,60,.6); font-variant-numeric: tabular-nums; }
#sd-float span:last-child { font-size: 12px; color: #c9b48a; }
/* 左側隊員欄：隊長那格第三行寫他在哪張地圖（party.js barList mapName） */
.pt-side .mp { grid-column: 2 / span 2; font-size: 11px; line-height: 1.2; color: #d8cbb0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
