:root{
  --ink:#3b2416;
  --muted:#7a5840;
  --cream:#fff6e6;
  --paper:#ffeecb;
  --gold:#f4c45a;
  --gold-deep:#d48a24;
  --wood:#c56a2e;
  --red:#e24b3c;
  --jade:#2db89a;
  --sky:#7ec8e8;
  --line:#f0c56a;
}
*{box-sizing:border-box}
html,body{height:100%;max-height:100%;overflow:hidden}
html:not(.embedded),html:not(.embedded) body{
  height:100%;
  max-height:100dvh;
  overflow:hidden;
}
body{
  margin:0;
  min-height:100%;
  color:var(--ink);
  font:15px/1.45 "PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.55), transparent 26%),
    radial-gradient(circle at 12% 14%, rgba(70,210,190,.28), transparent 24%),
    linear-gradient(180deg,#7ec8e8 0%,#b9e4f4 16%,#ffe7b0 46%,#f3c57a 100%);
}
.app{
  position:relative;
  width:100%;
  max-width:480px;
  height:100%;
  margin:auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:
    radial-gradient(circle at 90% 0, rgba(255,248,220,.7), transparent 32%),
    radial-gradient(circle at 8% 12%, rgba(255,255,255,.35), transparent 22%),
    linear-gradient(180deg,#8fd3ee 0 92px,#f7d7a4 92px 100%);
}
html.embedded .app{max-width:none}
html:not(.embedded) .app{
  max-width:none;
  height:100%;
  height:100dvh;
}
@media(min-width:760px){
  html:not(.embedded) .app{
    max-width:640px;
    box-shadow:0 0 0 3px rgba(243,196,90,.85), 0 18px 40px rgba(80,30,10,.22);
  }
}
html:not(.embedded):fullscreen .app,
html:not(.embedded):-webkit-full-screen .app,
html:not(.embedded).immersive .app,
html:not(.embedded).standalone-mobile .app{
  max-width:none;
  border:0;
  box-shadow:none;
}
button{font:inherit;border:0;cursor:pointer;background:none;color:inherit}
img{max-width:100%}
.ico{width:22px;height:22px;object-fit:contain;flex:none;display:inline-block;vertical-align:middle}

.landing,.game{flex:1;min-height:0;width:100%}
.landing[hidden],.game[hidden],.view[hidden],.modal-mask[hidden],.toast[hidden]{display:none!important}
.zxsj-auth-bar{display:none!important}

.landing{
  padding:10vh 24px 28px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.brand-mark{
  width:86px;height:86px;
  display:grid;place-items:center;
  background:radial-gradient(circle at 50% 40%,#fff8d8,#ffd27a);
  border:3px solid #fff;
  box-shadow:0 6px 0 #e09a3a, 0 10px 18px rgba(140,60,20,.2);
  border-radius:50%;
}
.brand-mark img{width:64px;height:64px;object-fit:contain}
.eyebrow{font-size:11px;letter-spacing:2px;color:#b06020;margin:22px 0 6px;font-weight:700}
.landing h1{font-size:clamp(42px,12vw,60px);line-height:.98;margin:0;letter-spacing:3px;color:#3b1f10;text-shadow:0 2px 0 #fff3c8}
.landing h1 em{font-style:normal;color:#d94838}
.intro{color:var(--muted);max-width:26em;margin:18px 0}
.notice{
  width:100%;padding:12px 14px;
  border:2px solid #f0c56a;border-radius:16px;
  background:linear-gradient(#fff8e6,#ffe7b8);
  box-shadow:0 4px 0 #e0a24a;
  display:grid;gap:2px;
}
.notice b{color:#c43a28}
.notice span,.login-note{font-size:12px;color:var(--muted)}
.landing-actions{display:grid;gap:10px;width:100%;margin-top:auto;padding-top:36px}
.site-back,.open-standalone{
  display:inline-block;margin-top:12px;color:#8a4a12;font-size:13px;font-weight:700;text-decoration:none;
  border-bottom:1px dashed rgba(138,74,18,.45);
}
.login-note{width:100%;text-align:center;margin:12px 0 0}

.primary,.ghost{
  min-height:52px;border-radius:16px;font-weight:800;letter-spacing:.5px;
}
.primary{
  background:linear-gradient(#ffe98a,#f0b43a);
  color:#5a2e08;
  border:2px solid #fff3c4;
  box-shadow:0 4px 0 #c47a18, 0 8px 14px rgba(140,60,20,.18);
}
.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #c47a18}
.primary:disabled,.tiny:disabled{opacity:.45;cursor:not-allowed;transform:none}
.ghost{
  border:2px solid #f0c56a;
  background:linear-gradient(#fffdf6,#ffe9c2);
  color:var(--ink);
  box-shadow:0 3px 0 #e0a84a;
}

.game{display:flex;flex-direction:column;overflow:hidden;background:transparent}
.view{flex:1;min-height:0;overflow:auto;padding-bottom:8px}
.tabbar{flex-shrink:0}

.topbar{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px 8px;
  background:linear-gradient(#fff6dc,#ffdba8);
  border-bottom:3px solid #e8b050;
  box-shadow:0 4px 0 rgba(200,120,30,.18);
  flex-shrink:0;
}
.avatar{
  width:44px;height:44px;flex:0 0 44px;padding:0;
  border-radius:50%;overflow:hidden;
  background:#fff3c8;border:3px solid #fff;
  box-shadow:0 3px 0 #e09a3a;
}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.frame-bronze{border-color:#c47a32;box-shadow:0 0 0 2px #8a4a12,0 3px 0 #e09a3a}
.avatar.frame-silver{border-color:#d8e4f0;box-shadow:0 0 0 2px #6a7a8a,0 3px 0 #e09a3a}
.avatar.frame-gold{border-color:#ffe08a;box-shadow:0 0 0 2px #c48a12,0 3px 0 #e09a3a}
.avatar.frame-jade{border-color:#8fe0c8;box-shadow:0 0 0 2px #1a7a5a,0 3px 0 #e09a3a}
.avatar.frame-crimson{border-color:#ff8a7a;box-shadow:0 0 0 2px #a32222,0 3px 0 #e09a3a}
.avatar.frame-night{border-color:#6a5ab0;box-shadow:0 0 0 2px #2a1a5a,0 3px 0 #e09a3a}
.topbar .who{min-width:0;flex:1 1 72px;overflow:hidden}
.topbar b,.topbar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar b{display:flex;align-items:center;gap:4px;min-width:0;font-size:15px;color:#3b1f10}
.topbar small{display:block;font-size:11px;color:var(--muted)}
.topbar #nickname{min-width:0;overflow:hidden;text-overflow:ellipsis}
.title-tag{
  flex:0 0 auto;display:inline-block;padding:1px 6px;border-radius:99px;
  background:linear-gradient(#fff4d0,#f0c56a);color:#8a4a12;font-size:10px;font-style:normal;font-weight:800;
  line-height:1.4;
}
.settings{margin-left:0;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:linear-gradient(#fff8e6,#ffdca8);border:2px solid #f0c56a;position:relative}
.settings img{width:22px;height:22px;object-fit:contain;display:block;margin:auto}
.mail-badge{
  position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;
  border-radius:8px;background:#e24b3c;color:#fff;font-size:10px;font-style:normal;font-weight:800;
  line-height:16px;text-align:center;box-shadow:0 1px 0 #9a2018;
}
.fs-btn{font-size:18px;line-height:1;color:#8a4a12;font-weight:800}
.bgm-btn{font-size:20px;line-height:1;color:#8a4a12;font-weight:900}
.bgm-player{position:fixed;left:-9999px;bottom:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.bgm-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.bgm-option{min-height:48px;padding:8px 7px;border:2px solid #dfb45b;border-radius:11px;background:linear-gradient(#fffdf6,#ffe9bd);color:#6f3b18;font-weight:800;line-height:1.25}
.bgm-option.active{border-color:#b84325;background:linear-gradient(#fff8d8,#ffc778);box-shadow:inset 0 0 0 1px #fff5bd}
@media (max-width:360px){.bgm-options{grid-template-columns:1fr}.topbar{gap:6px;padding-left:7px;padding-right:7px}}
html.fs-active .topbar,html.immersive .topbar,html.standalone-mobile .topbar{
  padding-top:max(8px, env(safe-area-inset-top, 0px));
}
html.immersive,html.immersive body,html.immersive .app,
html:fullscreen,html:fullscreen body,html:fullscreen .app,
html:-webkit-full-screen,html:-webkit-full-screen body{
  width:100%;height:100%;max-width:none;max-height:none;
}

.mini-res{margin-left:auto;display:flex;gap:4px;flex:0 1 auto;max-width:58%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.mini-res::-webkit-scrollbar{display:none}
.mini-res span{
  display:inline-flex;align-items:center;gap:3px;
  min-height:28px;padding:2px 7px 2px 3px;
  background:linear-gradient(#fffdf4,#ffe7b4);
  border:2px solid #f0c56a;border-radius:999px;
  box-shadow:0 2px 0 #e09a3a;
  color:#8a4a12;font-size:11px;font-weight:800;white-space:nowrap;
}
.mini-res img{width:18px;height:18px;object-fit:contain}

.hero-card{
  margin:14px 14px 10px;
  padding:14px 16px;
  display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;
  border:3px solid #fff2c4;border-radius:22px;
  background:linear-gradient(135deg,#ff8a62,#e24b3c 55%,#c43a32);
  box-shadow:0 6px 0 #a32a22, 0 12px 18px rgba(140,30,20,.18);
  color:#fff;
}
.hero-card img.hero-ico{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 4px 0 rgba(0,0,0,.18))}
.hero-card p{margin:0;color:#ffe7a8;letter-spacing:2px;font-size:11px;font-weight:700}
.hero-card h2{font-size:26px;margin:2px 0 4px;text-shadow:0 2px 0 rgba(0,0,0,.18)}
.hero-card span{color:#ffe8d2;font-size:13px;display:block}
.hero-card .hall-rank-btn{
  display:inline-flex;align-items:center;margin-top:8px;
  background:rgba(255,248,220,.2);color:#fff;border:2px solid #ffe7a8;
  border-radius:999px;padding:4px 12px;font-size:12px;font-weight:800;
}
.hero-card .hall-rank-btn:active{transform:translateY(1px)}
.office-board{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.office-board li{
  display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;
  padding:8px 10px;border-radius:14px;
  background:linear-gradient(#fffdf6,#ffe7b4);border:2px solid #f0c56a;
}
.office-board li.me{border-color:#e24b3c;background:linear-gradient(#fff3e0,#ffd0a8)}
.office-board li.marshal{box-shadow:inset 0 0 0 1px #c43a28}
.office-board .no{font-size:15px;color:#c43a28}
.office-board .who-line{min-width:0}
.office-board .who-line b,.office-board .who-line small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-board .who-line small{font-size:11px;color:var(--muted);margin-top:2px}
.office-board em{font-style:normal;font-weight:800;color:#8a4a12;font-size:13px;text-align:right}

.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 14px}
.quick-actions button{
  padding:8px 2px 10px;
  background:linear-gradient(#fffdf6,#ffe7b4);
  color:var(--ink);
  border:3px solid #f3c45a;
  border-radius:18px;
  box-shadow:0 4px 0 #d4922a;
  font-size:12px;font-weight:800;
}
.quick-actions button:active{transform:translateY(2px);box-shadow:0 2px 0 #d4922a}
.nav-ico{width:28px;height:28px;object-fit:contain;display:block;margin:0 auto 4px;pointer-events:none;filter:drop-shadow(0 2px 0 rgba(0,0,0,.12))}
.quick-actions .nav-ico{width:56px;height:56px;margin-bottom:4px}

.panel{
  margin:12px 14px;
  padding:14px;
  border:3px solid #f3c45a;border-radius:20px;
  background:linear-gradient(#fffaf0,#ffe9c0);
  box-shadow:0 5px 0 #e09a3a;
}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:2px dashed rgba(212,138,36,.35)}
.panel h3{margin:0;font-size:16px;color:#3b1f10}
.panel-head span{font-size:12px;color:#c43a28;font-weight:800;background:#fff3c8;border:2px solid #f0c56a;border-radius:999px;padding:2px 8px}
.panel-head h3{display:flex;align-items:center;gap:8px}
.panel-head h3 img,.modal h2 img{width:28px;height:28px;object-fit:contain}

.resource-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding-top:12px}
.resource{
  padding:10px 4px 8px;text-align:center;
  background:linear-gradient(#fff,#ffe7b0);
  border:2px solid #f0c56a;border-radius:16px;
  box-shadow:inset 0 2px 0 #fff, 0 3px 0 #e0a84a;
}
.resource img{width:44px;height:44px;object-fit:contain;display:block;margin:0 auto 4px;pointer-events:none}
.resource b{display:block;color:#c43a28;font-size:16px}
.resource small{display:block;color:var(--muted);font-size:11px}
.panel-actions{padding-top:12px}
.panel-actions .primary,.campaign-actions .primary{width:100%}
.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.form-actions .primary,.form-actions .ghost{width:100%}

.warrior-list{display:flex;gap:10px;padding-top:12px;overflow:auto}
.warrior{
  position:relative;
  flex:0 0 104px;min-height:148px;padding:6px 6px 10px;
  display:flex;flex-direction:column;
  border-radius:16px;text-align:center;
  background:linear-gradient(#fffdf8,#ffe7b8);
  border:3px solid #f3c45a;
  box-shadow:0 4px 0 #d4922a;
  color:var(--ink);
}
.warrior b{display:block;font-size:14px;margin-top:2px}
.warrior small{color:#c43a28;font-size:11px;font-weight:800}
.dev-note{padding:4px 22px 18px;color:var(--muted);font-size:12px;text-align:center}

.tiny{
  min-height:34px;padding:0 12px;border-radius:12px;font-size:12px;font-weight:800;
  background:linear-gradient(#fff8e6,#ffd27a);color:#8a4a12;border:2px solid #f0c56a;
}
.hint{margin:10px 0 0;color:var(--muted);font-size:12px}
.chips{display:flex;gap:6px;padding-top:12px;flex-wrap:wrap}
.chips button{
  min-height:34px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;
  background:#fff6e0;color:var(--muted);border:2px solid #f0c56a;
}
.chips button.on{color:#fff;background:linear-gradient(#ff8a62,#e24b3c);border-color:#fff2c4;box-shadow:0 2px 0 #a32a22}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:12px}
.wcard{
  position:relative;
  min-height:148px;padding:8px 6px;border-radius:16px;text-align:center;
  border:3px solid #f3c45a;color:var(--ink);
  background:linear-gradient(#fffdf8,#ffe7b8);
  box-shadow:0 4px 0 #d4922a;
}
.wcard.locked{opacity:.55;filter:grayscale(.2) brightness(.96)}
.wcard .mark{width:42px;height:54px;margin:0 auto 6px;display:grid;place-items:center;border-radius:10px;font-weight:800;font-size:20px;color:#fff}
.wcard b{display:block;font-size:14px}
.wcard small{display:block;color:#c43a28;font-size:11px;margin-top:4px;font-weight:700}
.wcard.tired,.warrior.tired{border-color:#c43a28}
.rarity-tag{
  position:absolute;top:6px;left:6px;z-index:4;
  padding:1px 6px;border-radius:999px;border:1px solid #fff;
  font-size:10px;font-style:normal;font-weight:800;line-height:1.35;
  pointer-events:none;letter-spacing:.5px;
}
.rarity-tag.epic{background:linear-gradient(#c9a6ff,#7b4bb8);color:#fff;box-shadow:0 1px 0 #4a2278}
.rarity-tag.rare{background:linear-gradient(#8ec8ff,#2b6cb0);color:#fff;box-shadow:0 1px 0 #1a4a80}
.rarity-tag.inline{position:static;display:inline-flex;align-items:center;margin:0;pointer-events:auto}
.wcard.rarity-epic,.warrior.rarity-epic,.fslot.rarity-epic,.pick-w.rarity-epic,.draw-card.rarity-epic{
  border-color:#9b6dff;
  background:linear-gradient(#fbf4ff,#ead6ff);
  box-shadow:0 4px 0 #6b3aa8;
}
.wcard.rarity-rare,.warrior.rarity-rare,.fslot.rarity-rare,.pick-w.rarity-rare,.draw-card.rarity-rare{
  border-color:#5aa0e8;
  background:linear-gradient(#f4f9ff,#d4e8ff);
  box-shadow:0 4px 0 #2b6cb0;
}
.wcard.rarity-epic > b,.warrior.rarity-epic > b,.fslot.rarity-epic b,.pick-w.rarity-epic b,.draw-card.rarity-epic b{color:#5a2a9a}
.wcard.rarity-rare > b,.warrior.rarity-rare > b,.fslot.rarity-rare b,.pick-w.rarity-rare b,.draw-card.rarity-rare b{color:#1f4f8a}
.wcard.rarity-epic .portrait,.warrior.rarity-epic .portrait,.fslot.rarity-epic .portrait,.pick-w.rarity-epic .portrait,.draw-card.rarity-epic .portrait{
  background:linear-gradient(#c9a8ff,#fff0d0);
}
.wcard.rarity-rare .portrait,.warrior.rarity-rare .portrait,.fslot.rarity-rare .portrait,.pick-w.rarity-rare .portrait,.draw-card.rarity-rare .portrait{
  background:linear-gradient(#8ec8f0,#fff1c8);
}
.wcard.tired.rarity-epic,.warrior.tired.rarity-epic,.fslot.tired.rarity-epic,.pick-w.tired.rarity-epic{border-color:#c43a28}
.gear-line{
  display:flex;flex-direction:column;gap:1px;
  margin-top:4px;width:100%;min-width:0;text-align:left;
}
.gear-line em{
  display:block;font-style:normal;font-size:10px;font-weight:800;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fat-wait{
  display:block;margin-top:3px;font-size:10px;line-height:1.3;
  color:#8a1c14;font-style:normal;font-weight:800;
}
.pick-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
  max-height:52vh;overflow:auto;margin:8px 0 12px;padding:2px;
}
.pick-w{
  position:relative;
  min-height:132px;padding:6px 4px 8px;border-radius:14px;text-align:center;
  border:3px solid #f3c45a;color:var(--ink);
  background:linear-gradient(#fffdf8,#ffe7b8);box-shadow:0 3px 0 #d4922a;
}
.pick-w.on{border-color:#c43a28;box-shadow:0 3px 0 #8a1c14}
.pick-w.tired{border-color:#c43a28;background:linear-gradient(#fff4ea,#ffd4b8)}
.pick-w b{display:block;font-size:13px;margin-top:2px}
.pick-w small{display:block;color:#c43a28;font-size:10px;font-weight:800;line-height:1.3}
.wcard[data-faction="魏"] .mark{background:#3d6cad}
.wcard[data-faction="蜀"] .mark{background:#3f9a55}
.wcard[data-faction="吴"] .mark{background:#d25a42}
.wcard[data-faction="群"] .mark{background:#7a5aa8}

.formation{display:grid;gap:8px;padding-top:12px}
.form-row{display:grid;gap:8px}
.form-row.front{grid-template-columns:1fr 1fr;padding:0 12%}
.form-row.back{grid-template-columns:repeat(3,1fr)}
.fslot{
  position:relative;
  min-height:118px;padding:6px 4px;overflow:visible;
  border:2px dashed #e0a84a;border-radius:16px;
  background:rgba(255,255,255,.35);
  display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted);font-size:12px;
}
.fslot b{color:var(--ink);display:block;font-size:14px}
.fslot small{display:block;font-size:10px;line-height:1.25;color:#c43a28;font-weight:800}
.fslot.on{border-style:solid;border-color:#f3c45a;background:linear-gradient(#fffdf8,#ffe7b8);box-shadow:0 3px 0 #d4922a}
.fslot.on.rarity-epic{
  border-color:#9b6dff;
  background:linear-gradient(#fbf4ff,#ead6ff);
  box-shadow:0 4px 0 #6b3aa8;
}
.fslot.on.rarity-rare{
  border-color:#5aa0e8;
  background:linear-gradient(#f4f9ff,#d4e8ff);
  box-shadow:0 4px 0 #2b6cb0;
}
.fslot.tired{border-color:#c43a28;background:linear-gradient(#fff4ea,#ffd4b8)}
.fslot .gear-line em,.warrior .gear-line em,.pick-w .gear-line em{font-size:9px}
.fslot .rarity-tag,.warrior .rarity-tag,.pick-w .rarity-tag,.draw-card .rarity-tag{top:4px;left:4px;font-size:9px;padding:0 5px}

.beast-card{
  margin:14px;padding:10px 16px 16px;display:grid;gap:6px;
  border-radius:22px;border:3px solid #fff2c4;
  background:linear-gradient(145deg,#ff8a62,#c43a32);
  box-shadow:0 6px 0 #a32a22;
  color:#fff;text-align:center;
}
.beast-card h2{margin:4px 0 10px}
.beast-diffs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 4px}.beast-diffs button{min-height:42px;padding:4px 2px;border:1px solid rgba(255,239,176,.7);border-radius:9px;background:rgba(90,20,16,.35);color:#fff7dc;font-size:11px;font-weight:900}.beast-diffs button small{display:block;margin-top:2px;color:#ffe2a6;font-size:8px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.beast-diffs button.on{background:#fff0ba;color:#8c251d;box-shadow:inset 0 0 0 1px #fff}.beast-diffs button.on small{color:#ae4a22}.beast-diffs button.locked{opacity:.55;filter:grayscale(.45)}.beast-traits{color:#fff2c9}
.beast-card .beast-art{
  width:100%;height:158px;object-fit:contain;justify-self:center;
  filter:drop-shadow(0 6px 0 rgba(0,0,0,.22));
}
.boss-hero{margin:-4px -4px 8px;text-align:center}
.boss-hero .boss-art{
  width:100%;height:168px;object-fit:contain;
  filter:drop-shadow(0 8px 10px rgba(180,40,10,.35));
}
.hpbar{height:12px;border-radius:99px;background:rgba(0,0,0,.28);overflow:hidden;border:2px solid rgba(255,255,255,.35)}
.hpbar i{display:block;height:100%;background:linear-gradient(90deg,#ffe98a,#f0b43a)}
.beast-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;color:#ffe8d2;font-size:12px}
.beast-meta span{display:inline-flex;align-items:center;gap:4px}
.beast-meta img{width:18px;height:18px}
.boss-board{margin:12px 0 0;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.18);color:#ffe8d2}
.boss-board h4,.boss-rewards h4{margin:0 0 8px;font-size:13px;color:#ffe98a}
.boss-board.last{background:rgba(80,30,10,.28)}
.boss-rank{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.boss-rank li{display:grid;grid-template-columns:28px 1fr auto;grid-template-rows:auto auto;gap:0 8px;align-items:center;font-size:12px}
.boss-rank b{grid-row:1 / span 2;width:24px;height:24px;border-radius:99px;display:grid;place-items:center;background:#c43a28;color:#fff;font-size:11px}
.boss-rank span{font-weight:800;color:#fff6e8}
.boss-rank em{font-style:normal;color:#ffe98a}
.boss-rank small{grid-column:2 / span 2;color:#ffd0b8;font-size:11px}
.boss-rewards{margin:12px 0 0;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.18);color:#ffe8d2;display:grid;gap:6px}
.boss-rewards div{display:flex;justify-content:space-between;gap:8px;font-size:12px;align-items:flex-start}
.boss-rewards b{flex:0 0 auto;color:#ffe98a}
.boss-rewards span{text-align:right}
.floor-mod{
  margin:8px 0 0;padding:8px 10px;border-radius:12px;
  background:rgba(0,0,0,.22);color:#ffe8d2;font-size:12px;line-height:1.45;
}
.floor-mod b{display:block;color:#ffe98a;margin-bottom:2px}
.floor-mod.warn{color:#ffd0b8;background:rgba(160,40,20,.28)}
.fatigue-tag{
  position:absolute;top:4px;right:4px;padding:1px 5px;border-radius:99px;
  background:#c43a28;color:#fff;font-size:10px;font-style:normal;line-height:1.4;
}
.campaign-actions{padding:0 14px 8px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.campaign-actions .ghost{width:auto;min-width:118px;position:relative}
#milestoneBtn{position:relative}
.ms-dot{
  position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 5px;
  border-radius:99px;background:#c43a28;color:#fff;font-size:10px;font-style:normal;
  display:grid;place-items:center;box-shadow:0 2px 0 #8a1c14
}
.ms-list{display:grid;gap:8px;margin:10px 0 14px;max-height:48vh;overflow:auto}
.ms-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:14px;background:#fff6e8;border:2px solid transparent}
.ms-row.ready{border-color:#f0b43a;background:#fff4d4}
.ms-row.claimed{opacity:.62}
.ms-row div{min-width:0}
.ms-row b,.ms-row small{display:block}
.ms-row small{color:#8a5a32;font-size:12px;margin-top:3px}
.ms-row em{font-size:12px;color:#8a5a32;flex-shrink:0;font-style:normal}
.energy-bar{margin-top:10px}
.energy-bar .energy-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px}
.energy-bar .energy-head strong{font-variant-numeric:tabular-nums}
.energy-bar .track{height:10px;border-radius:99px;background:rgba(0,0,0,.28);overflow:hidden;border:2px solid rgba(255,255,255,.28);margin-top:4px}
.energy-bar .track i{display:block;height:100%;background:linear-gradient(90deg,#7dffb3,#3ecf7a)}
.energy-bar small{display:block;margin-top:4px;opacity:.88;font-size:11px}
.panel .energy-bar .track{border-color:rgba(90,60,20,.18);background:rgba(0,0,0,.08)}
.idle-pending{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}
.idle-pending span{
  display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;min-width:0;
  background:#fff6e8;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700
}
.idle-pending img{width:18px;height:18px;object-fit:contain;flex:none}
.camp-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.camp-slot{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;
  min-height:92px;padding:6px 4px;border:2px dashed #e8b050;border-radius:14px;
  background:#fffdf8;color:#8a5a32;font:inherit;line-height:1.2
}
.camp-slot.on{border-style:solid;background:#fff4d4}
.camp-slot.empty b{font-size:22px;line-height:1}
.camp-slot small{font-size:10px}
.camp-slot b{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camp-slot .portrait,.camp-portrait{height:56px;margin:0 0 2px;border-radius:10px;width:100%}
.camp-log-head{margin-top:8px}
.camp-log{
  display:grid;gap:6px;margin:6px 0 4px;max-height:min(38vh,280px);
  overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding-right:2px;scrollbar-width:thin;scrollbar-color:#c9a24a transparent;
}
.camp-ev{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:12px;background:#fff6e8;font-size:12px}
.camp-ev.wait{outline:2px solid #f0b43a;background:#fff4d4}
.camp-ev div{display:flex;flex-direction:column;gap:2px;min-width:0}
.camp-ev small{color:#8a5a32}
.camp-ev em{font-size:11px;color:#8a5a32;flex-shrink:0}
.camp-choices{display:grid;gap:8px;margin:8px 0 14px}
.play-hints{margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.6;color:#5a4630}
.play-hints li{margin:2px 0}
.equip-slots{display:grid;gap:6px;margin:10px 0;font-size:13px}
.equip-slot{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff6e8;border-radius:12px;padding:6px 10px}
.equip-row span{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.equip-row.on{outline:2px solid #f0b43a}
.craft-box{margin:12px 0;padding:10px;background:#fff8ee;border-radius:14px}
.craft-auto-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 4px}
.craft-target-group{margin:14px 0 6px;font-size:13px;color:#8a5a32}
.picker-item.craft-target-item{display:grid;gap:4px;text-align:left}
.picker-item.craft-target-item.ready{border-color:#e24b3c;background:linear-gradient(#fff8e8,#ffe0c8)}
.picker-item.craft-target-item em{font-size:11px;font-style:normal}
.picker-item.craft-target-item em.ok{color:#2f7a3a;font-weight:800}
.picker-item.craft-target-item em.miss{color:#c43a28;font-weight:700}
.forge-level-pick{display:grid;gap:6px;margin:8px 14px;font-size:12px;font-weight:800;color:#8a5a32}
.forge-level-pick select{
  width:100%;padding:10px;border-radius:12px;border:2px solid #f0c56a;background:#fffdf8;color:#3b1f10;font:inherit;
}
.craft-mats,.craft-charms{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.craft-charms{grid-template-columns:repeat(2,1fr)}
.craft-add{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:76px;padding:8px 4px;border:2px dashed #e8b050;border-radius:14px;
  background:#fffdf8;color:#8a5a32;font:inherit;line-height:1.2
}
.craft-add b{font-size:18px}
.craft-add small,.craft-add em{font-size:10px;color:#8a5a32}
.craft-add.on{border-style:solid;background:#fff4d4}
.craft-add.charm{min-height:88px}
.craft-add.charm img{width:28px;height:28px;object-fit:contain}
.picker-list{display:grid;gap:8px;max-height:46vh;overflow:auto;margin:8px 0 14px}
.picker-item{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  text-align:left;padding:10px 12px;border-radius:12px;background:#fff6e8;color:#3b1f10;font:inherit
}
.picker-item small{color:#8a5a32;font-size:12px}
.picker-equip-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%}
.equip-score{
  font-style:normal;font-size:14px;font-weight:900;color:#c43a28;flex-shrink:0;
  font-variant-numeric:tabular-nums;
}
.equip-score.better{color:#2f7a3a}
.equip-score.worse{color:#8a5a32;opacity:.85}
.equip-score-line{margin:4px 0;font-size:12px;color:#8a5a32}
.equip-score-line b{color:#c43a28;font-size:15px}
.eq-cell .equip-score{display:block;margin-top:2px;font-size:11px;color:#c43a28}
.hero-equip-board{
  display:grid;
  grid-template-columns:76px minmax(0,1fr) 76px;
  grid-template-rows:78px minmax(140px,1fr) auto;
  gap:6px;margin:0 0 10px
}
.hero-equip-art{grid-column:2;grid-row:1 / 3;min-height:200px;border-radius:16px;overflow:hidden}
.hero-equip-art .modal-portrait{height:100%;margin:0}
.eq-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:5px 4px;border:2px dashed #e8b050;border-radius:12px;background:#fffdf8;
  color:#8a5a32;font:inherit;line-height:1.2;min-height:0
}
.eq-cell.tl{grid-column:1;grid-row:1}
.eq-cell.tr{grid-column:3;grid-row:1}
.eq-cell.ml{grid-column:1;grid-row:2}
.eq-cell.mr{grid-column:3;grid-row:2}
.eq-cell.bc{grid-column:2;grid-row:3;min-height:76px;padding:8px 10px;justify-content:flex-start}
.eq-cell small,.eq-cell b,.eq-cell em,.eq-cell-actions{flex-shrink:0}
.eq-cell small{font-size:9px;opacity:.85}
.eq-cell b{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eq-cell.bc b{white-space:normal;overflow:visible;text-overflow:unset;line-height:1.25;text-align:center}
.eq-cell.empty b{font-size:20px;line-height:1}
.eq-cell.filled{border-style:solid;background:#fff4d4}
.eq-cell-actions{display:flex;gap:4px;margin-top:4px}
.eq-cell-actions .tiny{padding:3px 8px;font-size:11px}
.modal.hero-sheet{width:min(100%,400px);max-height:88vh;overflow:auto;padding:14px}
.hero-skill-summary,.hero-legend-detail{margin:12px 0;border-radius:12px;padding:10px 12px;line-height:1.55}
.hero-skill-summary{background:#fff8e8;border:1px solid rgba(196,122,45,.38);color:#714424}
.hero-skill-summary>b{font-size:12px;color:#9d672c}
.hero-skill-summary p,.hero-legend-detail p{margin:4px 0 0}
.hero-legend-detail{border:2px solid #d4a017;background:linear-gradient(135deg,#fff9df,#fff0c6);color:#5a321d;box-shadow:inset 0 0 16px rgba(212,160,23,.1)}
.hero-legend-detail em{display:block;font-style:normal;font-size:11px;font-weight:800;letter-spacing:.08em;color:#a66a12}
.hero-legend-detail h3{margin:2px 0 3px;color:#8b1e1e;font-size:18px}
.hero-legend-detail p{font-size:13px}
.charm-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;font-size:12px}
.charm-row label{display:inline-flex;align-items:center;gap:4px}
.charm-row img{width:22px;height:22px;object-fit:contain}
.recipe-box{margin-top:12px;font-size:12px}
.recipe-line{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px dashed rgba(90,60,20,.15)}
.equip-warriors{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}

.tabbar{
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0;
  padding:6px 2px calc(8px + env(safe-area-inset-bottom));
  border-top:3px solid #e8b050;
  background:linear-gradient(#fff4d4,#f0c888);
  box-shadow:0 -6px 16px rgba(140,60,20,.12);
}
.tabbar button{background:transparent;color:#8a5a32;font-size:9px;font-weight:700;padding:2px 0;min-width:0}
.tabbar button.on{color:#c43a28}
.tabbar button.on .nav-ico{transform:translateY(-2px) scale(1.06);filter:drop-shadow(0 3px 0 rgba(196,58,40,.25))}
.tabbar .nav-ico{width:32px;height:32px;margin-bottom:1px}
.tabbar .tab-pray .nav-ico{width:34px;height:34px}
.tabbar .tab-pray.on,.tabbar .tab-pray{color:#a03a12}
.tabbar i{display:none}
.panel-head-actions{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}

.has-ico,.tiny.has-ico{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.has-ico img,.tiny.has-ico img{width:32px;height:32px;object-fit:contain;pointer-events:none}
.tiny.has-ico img{width:24px;height:24px}

.bag-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-top:14px}
.bag-item{
  min-height:108px;padding:12px;
  border:3px solid #f3c45a;border-radius:16px;
  background:linear-gradient(#fffdf8,#ffe7b8);
  box-shadow:0 4px 0 #d4922a;
}
.bag-item img{width:52px;height:52px;object-fit:contain;display:block;margin-bottom:6px;pointer-events:none}
.bag-item b,.bag-item strong,.bag-item small{display:block}
.bag-item strong{color:#c43a28;font-size:24px;margin:4px 0}
.bag-item small{color:var(--muted);font-size:11px}

.mail-alert{cursor:pointer}
.mail-alert .panel-head h3{color:#c43a28}
.guide-panel .panel-head{cursor:pointer}
.guide-steps{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.guide-steps li{
  display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;
  padding:10px 12px;border-radius:14px;border:2px solid #f0c56a;
  background:linear-gradient(#fffdf8,#ffe9c4);
}
.guide-steps li b{grid-column:1;font-size:14px}
.guide-steps li small{grid-column:1;color:var(--muted);font-size:12px;line-height:1.45}
.guide-steps li .tiny{grid-column:2;grid-row:1 / span 2}
.guide-steps em{color:#c43a28;font-style:normal;font-weight:800}
.guide-panel.min .guide-steps{display:none}
.guide-panel.min .panel-head span::before{content:"已收起 · "}
.mail-tabs{display:flex;gap:8px;padding:4px 0 0}
.mail-row{width:100%;text-align:left;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:2px dashed rgba(212,138,36,.28);background:transparent}
.mail-row.unread b{color:#c43a28}
.mail-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.mail-row .mail-meta{flex:1;min-width:0}
.mail-dot{flex:none;width:8px;height:8px;margin-top:8px;border-radius:50%;background:#e24b3c}
.mail-body{white-space:pre-wrap;word-break:break-word;margin:10px 0;line-height:1.55}
#view-mail input,#view-mail textarea{
  width:100%;margin:6px 0;padding:10px 12px;border-radius:12px;border:2px solid #f0c56a;
  background:#fffdf8;font:inherit;color:inherit;resize:vertical;
}

.system-content{padding-top:12px}
.empty-system{margin-top:14px;padding:26px 12px;text-align:center;border:2px dashed #e0a84a;border-radius:16px;color:var(--muted);background:rgba(255,255,255,.35)}
.task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:2px dashed rgba(212,138,36,.28)}
.task-row b,.task-row small{display:block}
.task-row small{color:var(--muted);font-size:11px;margin-top:3px}
.pvp-log .pvp-result{font-style:normal;font-size:12px;font-weight:800;flex:0 0 auto}
.pvp-log .pvp-result.win{color:#1f8a5a}
.pvp-log .pvp-result.lose{color:#c43a28}
.claimed{color:#2db89a;font-size:12px;font-weight:800}
.task-progress{color:#c43a28;font-size:12px;font-weight:800}
.forge-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.forge-actions .tiny{display:inline-flex;align-items:center;gap:6px}
.forge-actions img{width:24px;height:24px;object-fit:contain}
.workshop-hero{
  margin:0 0 10px;padding:14px 16px;
  display:grid;gap:8px;
  border:3px solid #fff2c4;border-radius:18px;
  background:linear-gradient(135deg,#c56a2e,#d48a24 55%,#f4c45a);
  color:#fff;box-shadow:0 5px 0 #8a3a12;
}
.workshop-hero p{margin:0;letter-spacing:1px;font-size:11px;font-weight:700;color:#ffe7a8}
.workshop-hero h2{margin:2px 0 4px;font-size:22px;text-shadow:0 2px 0 rgba(0,0,0,.18)}
.workshop-hero span{font-size:13px;color:#fff3d2}
.workshop-meta{display:grid;gap:2px}
.workshop-meta small{color:#fff6dc;font-size:11px}
.forge-slots{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0}
.forge-slot{
  padding:12px;border-radius:16px;border:3px solid #f0c56a;
  background:linear-gradient(#fffdf8,#ffe7b8);box-shadow:0 3px 0 #d4922a;
}
.forge-slot small{display:block;color:#8a5a32;font-size:11px;font-weight:800}
.forge-slot b{display:block;margin:4px 0;color:#3b1f10}
.forge-slot p{margin:4px 0 0;color:var(--muted);font-size:12px}
.forge-slot.empty{opacity:.78;border-style:dashed}
.forge-slot.busy{background:linear-gradient(#fff8e6,#ffd27a)}
.forge-slot.ready{border-color:#e24b3c;background:linear-gradient(#fff6e6,#ffd0c4)}
.forge-bar{height:8px;margin:8px 0 6px;border-radius:99px;background:rgba(140,60,20,.12);overflow:hidden}
.forge-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f4c45a,#e24b3c);border-radius:99px}
.q-基础{color:#8a5a32}
.q-传说{color:#2b6cb0}
.q-史诗{color:#7b4bb8}
.q-神话{color:#c43a28}
.announce{margin:8px 0 0;padding:8px 0;border-bottom:2px dashed rgba(212,138,36,.25)}
.announce b,.announce small{display:block}
.announce small{color:var(--muted);margin-top:4px}
.gift-row{display:flex;gap:8px;align-items:center;margin:12px 0}
.gift-row input{flex:1;padding:10px;border-radius:12px;border:2px solid #f0c56a;background:#fffdf8;font:inherit}
h4{margin:14px 0 6px;font-size:14px;color:#3b1f10}

.modal-mask{position:absolute;inset:0;background:rgba(40,18,8,.55);z-index:10;display:grid;place-items:center;padding:18px}
.modal{
  width:min(100%,380px);padding:20px;
  border:3px solid #f3c45a;border-radius:22px;
  background:linear-gradient(#fffaf0,#ffe7b8);
  box-shadow:0 8px 0 #d4922a, 0 20px 40px rgba(80,30,10,.28);
}
.modal.wide{width:min(100%,420px);max-height:82vh;overflow:auto}
.modal h2{margin:0 0 8px;font-size:22px;display:flex;align-items:center;gap:8px;color:#3b1f10}
.modal p{color:var(--muted);margin:0 0 16px}
.modal .warn{color:#c43a28}
.modal input{
  width:100%;margin:5px 0 14px;padding:13px;border-radius:12px;
  border:2px solid #f0c56a;background:#fffdf8;color:var(--ink);font:inherit;
}
.modal-actions{display:grid;gap:9px}
.modal .close{background:transparent;color:var(--muted);padding:8px}
.draw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:8px 0 16px}
.draw-card{
  position:relative;
  padding:10px 8px;border-radius:16px;text-align:center;
  background:linear-gradient(#fff,#ffe7b0);border:3px solid #f3c45a;
  animation:drawPop .34s cubic-bezier(.2,1.15,.32,1) both;
}
.draw-card:nth-child(1){animation-delay:.02s}
.draw-card:nth-child(2){animation-delay:.08s}
.draw-card:nth-child(3){animation-delay:.14s}
.draw-card:nth-child(4){animation-delay:.2s}
.draw-card:nth-child(5){animation-delay:.26s}
.draw-card.dup{opacity:.8;border-style:dashed}
@keyframes drawPop{
  from{opacity:0;transform:translateY(12px) scale(.92)}
  to{opacity:1;transform:none}
}
.battle-log{max-height:240px;overflow:auto;background:#fff8e8;border:2px solid #f0c56a;border-radius:12px;padding:10px;font-size:12px;color:#5a3a22;line-height:1.55;white-space:pre-wrap}
.modal.battle-stage{
  width:min(100%,420px);max-height:90vh;overflow:auto;padding:12px;
  background:linear-gradient(#1c3a4a 0 42%, #fff6e0 42% 100%);
  border-color:#f3c45a
}
.modal.battle-stage h2{color:#fff8e0;text-shadow:0 2px 0 rgba(0,0,0,.25)}
.modal.battle-stage .bf-end h2{color:#3b1f10;text-shadow:none}
.bf-stage{position:relative}
.bf-top{display:grid;place-items:center;min-height:150px;padding:6px 8px 10px}
.bfight{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:72px}
.bfight.enemy b{color:#fff8e0;font-size:14px}
.bfight.ally b{font-size:11px;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bfight .hpbar{width:76px;height:8px}
.bfight.enemy .hpbar{width:120px;height:10px;border-color:rgba(255,255,255,.45)}
.bfight .hpnum{font-size:10px;color:#ffe8d2}
.bfight.ally .hpnum{color:#8a5a32}
.bfight.dead{filter:grayscale(.8) brightness(.75);opacity:.7}
.bf-boss-art{width:188px;height:148px;display:grid;place-items:center;filter:drop-shadow(0 8px 8px rgba(0,0,0,.4))}
.bf-boss-ico,.bf-boss-sprite{width:188px;height:148px;object-fit:contain}
.bf-portrait{height:72px;width:72px;margin:0;border-radius:12px}
.bfight.enemy .bf-portrait{height:110px;width:110px}
.bf-allies{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:8px 4px 4px}
.bf-caption{
  min-height:40px;margin:0 0 8px;padding:8px 10px;border-radius:12px;
  background:rgba(255,248,232,.92);color:#5a3a22;font-size:13px;text-align:center
}
.bf-controls{display:flex;gap:8px;justify-content:center;margin-top:8px}
.bf-end{margin-top:8px;padding:12px;border-radius:16px;background:linear-gradient(#fffdf8,#ffe7b8);text-align:center}
.bf-end[hidden]{display:none!important}
.bf-fx{position:absolute;inset:0;pointer-events:none;z-index:4}
.bf-float{
  position:absolute;left:50%;top:18%;z-index:5;font-weight:800;font-style:normal;
  font-size:18px;color:#c43a28;text-shadow:0 2px 0 #fff6e0;pointer-events:none;
  animation:bf-float 0.85s ease-out forwards
}
.bf-float.crit{font-size:22px;color:#c43a28;animation-name:bf-crit}
.bf-float.miss{color:#2b6cb0;font-size:16px}
.bf-float.heal{color:#2db89a}
.bf-float.win{color:#f0b43a;font-size:20px}
.bfight.strike{animation:bf-lunge .32s ease}
.bfight.hurt{animation:bf-hurt .32s ease}
.bfight.heal-flash{animation:bf-heal .4s ease}
.scene-play{text-align:center;padding:12px 8px 4px}
.scene-art{height:96px;display:grid;place-items:center;animation:scene-pop .7s ease}
.scene-ico{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 4px 0 rgba(0,0,0,.18))}
.scene-play.trap .scene-art{animation:bf-hurt .5s ease infinite}
.scene-play.treasure .scene-art{animation:scene-pop .8s ease}
.scene-caption{color:#5a3a22}
@keyframes bf-lunge{
  0%{transform:translate(0,0)}
  35%{transform:translate(10px,-8px) scale(1.06)}
  100%{transform:translate(0,0)}
}
@keyframes bf-hurt{
  0%,100%{transform:translate(0,0);filter:none}
  30%{transform:translate(7px,2px);filter:brightness(1.8) saturate(.4)}
}
@keyframes bf-heal{
  0%,100%{filter:none}
  40%{filter:brightness(1.3) saturate(1.4)}
}
@keyframes bf-float{
  0%{opacity:1;transform:translate(-50%,0) scale(1)}
  100%{opacity:0;transform:translate(-50%,-38px) scale(1.15)}
}
@keyframes bf-crit{
  0%{opacity:1;transform:translate(-50%,0) scale(.75)}
  35%{transform:translate(-50%,-8px) scale(1.35)}
  100%{opacity:0;transform:translate(-50%,-42px) scale(1.05)}
}
@keyframes scene-pop{
  0%{transform:scale(.4);opacity:.2}
  55%{transform:scale(1.12)}
  100%{transform:scale(1);opacity:1}
}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.stat-grid div{background:#fff;border:2px solid #f0c56a;border-radius:12px;padding:8px}
.stat-grid b{display:block;color:#c43a28}
.grow-compare{
  margin:10px 0 12px;padding:8px;
  border:2px solid #f0c56a;border-radius:16px;
  background:linear-gradient(#fffdf8,#ffe9c4);
}
.grow-head,.grow-row{
  display:grid;grid-template-columns:52px 1fr 1fr;gap:6px;align-items:center;
}
.grow-head{padding:4px 4px 8px;border-bottom:2px dashed rgba(212,138,36,.35);margin-bottom:4px}
.grow-head b{font-size:12px;color:#8a4a12;text-align:center}
.grow-row{padding:5px 4px;border-bottom:1px dashed rgba(212,138,36,.22)}
.grow-row:last-child{border-bottom:0}
.grow-row span{font-size:12px;color:var(--muted);font-weight:700}
.grow-row b{font-size:14px;text-align:center}
.grow-row b:last-child{color:#c43a28}
.delta{display:inline-block;margin-left:4px;font-size:11px;font-style:normal;font-weight:800}
.delta.up{color:#2db89a}
.delta.down{color:#c43a28}
.delta.same{color:#a08060;font-weight:700}

.toast{
  position:fixed;left:50%;bottom:88px;transform:translateX(-50%);
  width:max-content;max-width:calc(100vw - 40px);
  padding:10px 14px;border-radius:14px;
  background:linear-gradient(#ffe98a,#f0b43a);color:#5a2e08;
  border:2px solid #fff3c4;box-shadow:0 4px 0 #c47a18;
  z-index:20;font-size:13px;font-weight:700;
}

.portrait{position:relative;width:100%;height:96px;margin:0 auto 6px;overflow:hidden;pointer-events:none;border-radius:14px;background:linear-gradient(#9ad7ea,#fff1c8)}
.portrait .mark{position:absolute;inset:0;margin:0;width:100%;height:100%;display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff;z-index:0;border-radius:0}
.portrait-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block;pointer-events:none;filter:drop-shadow(0 2px 0 rgba(0,0,0,.12))}
.portrait:has(.portrait-img) .mark{opacity:0}
.portrait .spine-player{position:absolute!important;inset:0;z-index:2;width:100%;height:100%;background:transparent!important;opacity:0}
.portrait .spine-player-canvas{width:100%!important;height:100%!important;display:block}
.portrait.js-spine-live .spine-player{opacity:1;transition:opacity .28s ease}
.portrait.js-spine-live .mark,.portrait.js-spine-live .portrait-img{opacity:0;transition:opacity .28s ease}
.wcard .portrait{height:102px}
.warrior .portrait{height:88px;margin-bottom:4px}
.fslot .portrait{height:58px;margin-bottom:2px}
.pick-w .portrait{height:72px;margin-bottom:2px}
.modal-portrait{height:236px;margin:0 0 12px;background:linear-gradient(#8fd3ee,#fff1c8)}
.draw-card .portrait{height:112px}
.spine-player-controls,.spine-player-error{display:none!important}
.wcard.locked .portrait{filter:grayscale(.45) brightness(.9)}

@media(max-width:430px){
  .hero-card{margin:10px;padding:12px;grid-template-columns:56px 1fr;gap:10px}
  .hero-card img.hero-ico{width:56px;height:56px}
  .hero-card h2{font-size:22px}
  .quick-actions{gap:6px;padding:0 10px}
  .quick-actions .nav-ico{width:44px;height:44px}
  .panel{margin:10px;padding:12px}
  .resource-list{grid-template-columns:repeat(2,1fr)}
  .tabbar{padding:4px 1px calc(6px + env(safe-area-inset-bottom));gap:0;grid-template-columns:repeat(8,minmax(0,1fr))}
  .tabbar .nav-ico{width:28px;height:28px}
  .tabbar .tab-pray .nav-ico{width:30px;height:30px}
  .tabbar button{font-size:8px;letter-spacing:-0.02em}
}

.conquest-card{
  margin:14px 14px 10px;padding:14px 16px;display:grid;gap:6px;
  border-radius:22px;border:3px solid #fff2c4;
  background:linear-gradient(145deg,#3d6b4a,#1e4a32);
  box-shadow:0 6px 0 #143322;
  color:#fff;
}
.conquest-card h2{margin:2px 0 4px;font-size:20px}
.conquest-card p{margin:0;color:#d7f0dc;font-size:12px}
.conquest-card .cq-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;color:#ffe8d2;font-size:12px}
.conquest-card .cq-go{margin-top:8px}
.cq-root{padding:0 0 12px}
.cq-head{margin:14px 14px 8px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.cq-head h2{margin:0;font-size:20px}
.cq-head small{display:block;color:var(--muted);margin-top:4px}
.cq-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 14px 10px}
.cq-stat{padding:10px 12px;border-radius:14px;background:#fff6e8;border:2px solid #f0c56a}
.cq-stat b,.cq-stat small{display:block}
.cq-stat small{color:#8a5a32;font-size:11px;margin-top:2px}
.cq-troops{margin:0 14px 10px}
.cq-troops .track{height:12px;border-radius:99px;background:#efe0c4;overflow:hidden;border:2px solid #e8b050}
.cq-troops .track i{display:block;height:100%;background:linear-gradient(90deg,#7dffb3,#3ecf7a)}
.cq-map{display:grid;gap:10px;margin:0 14px}
.cq-hud{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 14px 8px}
.cq-hud .gold{font-weight:800;color:#8a4a10;background:#fff4d0;border:2px solid #e8b050;border-radius:99px;padding:4px 10px;font-size:13px}
.cq-run-res{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.cq-run-res span{white-space:nowrap;font-size:11px;font-weight:800;padding:4px 7px;border-radius:99px;border:1px solid #d2a354;background:#fff5d6;color:#78501f}.cq-run-res .intel{background:#e5f2ff;border-color:#82b5df;color:#24577e}.cq-run-res .morale{background:#e9f8de;border-color:#86b85f;color:#386a28}.cq-run-res .morale.low{background:#ffe3d7;border-color:#d47655;color:#97391f}
.cq-chaps{display:flex;gap:6px;align-items:center}
.cq-chaps i{width:10px;height:10px;border-radius:50%;background:#d8c4a0;display:block;border:2px solid #b89050}
.cq-chaps i.on{background:#e8a030;box-shadow:0 0 8px #ffe08a}
.cq-chaps i.done{background:#3ecf7a;border-color:#2a9a58}
.cq-land{
  position:relative;margin:8px 12px 10px;height:520px;
  border-radius:18px;overflow:hidden;
  background:#c4a878 center/cover no-repeat;
  border:3px solid #c9a24a;box-shadow:0 6px 0 #5a3a18;
}
.cq-land::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 52%, rgba(20,10,0,.38) 100%);
}
.cq-land svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.cq-land svg line{stroke:#f6e6b8;stroke-width:.7;stroke-dasharray:1.4 1.6;opacity:.75;filter:drop-shadow(0 0 1px #5a3a18)}
.cq-ding{
  position:absolute;left:8px;top:10px;z-index:4;width:64px;border:0;background:transparent;padding:0;color:#f6e6b8;
  font-size:11px;font-weight:800;text-shadow:0 1px 2px #000;
}
.cq-ding img{width:56px;height:56px;display:block;margin:0 auto;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.cq-spot{
  position:absolute;transform:translate(-50%,-90%);
  width:56px;border:0;background:transparent;padding:0;z-index:2;
  color:#f6e6b8;text-align:center;
}
.cq-spot .cq-mark{
  width:44px;height:44px;display:block;margin:0 auto -4px;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.55));
  pointer-events:none;
}
.cq-spot.open .cq-mark{animation:cqPulse 1.6s ease-in-out infinite}
.cq-spot.boss .cq-mark{width:54px;height:54px}
.cq-spot.final .cq-mark{width:60px;height:60px}
@keyframes cqPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.cq-flag{
  display:inline-block;writing-mode:vertical-rl;letter-spacing:2px;
  background:linear-gradient(#2c1a10,#140c08);color:#f6e6b8;
  border:1px solid #c9a24a;padding:7px 3px;font-size:11px;font-style:normal;font-weight:800;
  box-shadow:0 3px 0 rgba(0,0,0,.35);
}
.cq-spot small{display:block;margin-top:3px;font-size:9px;font-weight:800;color:#fff8dc;text-shadow:0 1px 2px #000}
.cq-spot.cleared{opacity:.55;filter:grayscale(.55)}
.cq-spot.cleared .cq-mark{animation:none}
.cq-spot.skipped{opacity:.38;filter:grayscale(1)}
.cq-spot.fork.open .cq-flag{box-shadow:0 0 0 2px #ffe08a, 0 3px 0 rgba(0,0,0,.35)}
.cq-pin{
  position:absolute;transform:translate(-50%,-50%);
  width:46px;min-height:46px;padding:4px 2px 6px;border-radius:16px;
  border:2px solid #fff2c4;background:linear-gradient(#fffdf4,#ffe7b4);
  color:#3b1f10;box-shadow:0 3px 0 rgba(0,0,0,.25);
  font-size:10px;font-weight:800;line-height:1.15;text-align:center;z-index:1;
}
.cq-map-bar{display:flex;gap:8px;align-items:center;margin:0 14px 8px;flex-wrap:wrap}
.cq-party{display:flex;gap:6px;overflow:auto;margin:0 14px 8px;padding-bottom:4px}
.cq-party-slot{flex:0 0 56px;text-align:center;font-size:10px;font-weight:800;color:#3b1f10}
.cq-party-slot .portrait{width:56px;height:72px;border-radius:10px}
.cq-party-slot b{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cq-party-slot.extra b{color:#1a6b3a}
.cq-party-slot.empty{flex:0 0 56px;height:72px;border:2px dashed #c8a060;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#8a5a32;background:#fff8e8}
.cq-draft{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 14px}
.cq-draft-card{position:relative;padding-bottom:8px}
.cq-draft-card .tiny{width:calc(100% - 16px);margin:6px 8px 0}
.cq-draft-guide{display:flex;gap:8px;align-items:flex-start;margin:0 14px 10px;padding:9px 11px;border:1px solid #cf9740;border-radius:11px;background:linear-gradient(135deg,#fff6d7,#f3d69d);color:#603116;font-size:11px;line-height:1.45}.cq-draft-guide b{flex:0 0 auto;color:#ad4722}.cq-draft-guide span{font-weight:700}.cq-draft-card.keep{border-color:#c79543}.cq-draft-card.replace{border-color:#c04b27;box-shadow:inset 0 0 0 1px #fff0bd}.cq-draft-reason{min-height:31px;margin:5px 8px 0;color:#704625;font-size:10px;line-height:1.4}.cq-draft-card.replace .cq-draft-reason{color:#a43d21;font-weight:800}.cq-draft-card .tiny{font-size:10px;line-height:1.25}
.cq-kind-tag{display:inline-block;padding:3px 8px;border-radius:99px;background:#fff4d0;border:1px solid #e8b050;font-size:12px;font-weight:800}
.cq-giveup{display:grid;align-content:center;min-height:140px;min-width:72px;background:rgba(40,24,12,.72);color:#f6e6b8;border:2px solid #c9a24a;border-radius:14px}
.cq-giveup b,.cq-giveup small{display:block}
.cq-inspect{text-align:center}
.cq-inspect .cq-mark{width:72px;height:72px}
.cq-node{
  display:grid;gap:4px;padding:14px 12px;border-radius:16px;text-align:left;
  border:3px solid #e8b050;background:linear-gradient(#fffdf4,#ffe7b4);
  color:#3b1f10;box-shadow:0 4px 0 #e09a3a;
}
.cq-node b{font-size:16px}
.cq-node small{color:#8a5a32}
.cq-node.elite{background:linear-gradient(#fff4ea,#ffd0a8)}
.cq-node.boss{background:linear-gradient(#ffd0c4,#f08a62);border-color:#c43a28;color:#5a1208}
.cq-node.recruit{background:linear-gradient(#e8f8ff,#c8e4ff)}
.cq-node.shop{background:linear-gradient(#fff8d8,#ffe08a)}
.cq-node.chest{background:linear-gradient(#f4e8ff,#e0c8ff)}
.cq-relics{display:flex;flex-wrap:wrap;gap:6px;margin:8px 14px}
.cq-relics span{padding:4px 8px;border-radius:99px;background:#fff4d0;border:1px solid #f0c56a;font-size:11px;font-weight:700}
.cq-synergies{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 14px 9px}
.cq-synergy{display:flex;align-items:center;gap:4px;min-width:0;padding:5px;border:1px solid #d6b56d;border-radius:9px;background:#f8ecd0;color:#80613c;opacity:.76}
.cq-synergy em{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#c9a24a;color:#fff8dc;font-style:normal;font-size:11px;font-weight:900}
.cq-synergy span{min-width:0;display:block;line-height:1.05}.cq-synergy b,.cq-synergy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cq-synergy b{font-size:10px}.cq-synergy small{font-size:9px}.cq-synergy i{font-style:normal;font-size:12px;font-weight:900;margin-left:auto}
.cq-synergy.lv-1{opacity:1;border-color:#d68432;background:#fff0c2;color:#80400c}.cq-synergy.lv-1 em{background:#df8731}.cq-synergy.lv-2{opacity:1;border-color:#a64a25;background:linear-gradient(135deg,#fff0b0,#ffd083);color:#72210d;box-shadow:inset 0 0 0 1px #fff7d8}.cq-synergy.lv-2 em{background:#b83d24}
.cq-command-dock{margin:10px 14px 0;padding:10px;border:2px solid #c48331;border-radius:13px;background:linear-gradient(135deg,#fff6d7,#f7d28c);box-shadow:0 3px 0 #d89a35}.cq-command-dock>div:first-child{margin:0 2px 8px}.cq-command-dock b,.cq-command-dock small{display:block}.cq-command-dock b{color:#5a2710;font-size:14px}.cq-command-dock small{margin-top:2px;color:#805328;font-size:10px}.cq-command-dock-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.cq-command-dock-actions button{position:relative;min-height:38px;padding:6px;border:1px solid #b97d30;border-radius:9px;background:#fffaf0;color:#4b2815;font-size:11px;font-weight:900}.cq-command-dock-actions button em{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:3px;border-radius:50%;background:#7d3117;color:#ffe8ab;font-size:10px;font-style:normal}.cq-command-dock-actions button i{position:absolute;right:4px;top:3px;color:#b84322;font-size:8px;font-style:normal}.cq-command-dock-actions button.lv-1,.cq-command-dock-actions button.lv-2{border-color:#b53e20;background:#fff0bf}
.cq-command-dock-actions button.recommended{border:2px solid #b74422;background:linear-gradient(#fff9d4,#ffd18a);box-shadow:0 0 0 1px #fff5c5}
.cq-command-head{text-align:center;padding:2px 0 4px}.cq-command-head>span{display:inline-block;padding:3px 10px;border-radius:99px;background:#6a2a12;color:#ffe7a8;font-size:11px;font-weight:800;letter-spacing:.12em}.cq-command-head h2{margin:7px 0 2px}.cq-command-head p,.cq-command-hint{margin:3px 0;color:#79522c;text-align:center;font-size:12px}.cq-command-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.cq-command{position:relative;min-height:145px;padding:12px 10px 28px;border:2px solid #b98a43;border-radius:14px;background:linear-gradient(#fffdf6,#efdbab);color:#3b1f10;text-align:left;box-shadow:0 3px 0 #c4923a}.cq-command:active{transform:translateY(2px);box-shadow:0 1px 0 #c4923a}.cq-command>em{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#6a2a12;color:#ffe8a8;font-size:14px;font-style:normal;font-weight:900}.cq-command b,.cq-command small,.cq-command i{display:block}.cq-command b{margin:7px 0 4px;font-size:15px}.cq-command small{font-size:11px;line-height:1.4;color:#74502a}.cq-command i{position:absolute;right:7px;bottom:7px;left:7px;padding-top:5px;border-top:1px dashed #c9a24a;color:#8a5a20;font-size:10px;font-style:normal;font-weight:800}.cq-command.ready{border-color:#be5924;background:linear-gradient(#fff8d7,#ffd18b);box-shadow:0 3px 0 #a94321,0 0 12px rgba(190,89,36,.18)}.cq-command.lv-2{border-color:#8c2e1c;background:linear-gradient(#fff3ba,#f6b85d)}.cq-command-foot{margin:0;text-align:center;color:#8a5a32;font-size:11px;line-height:1.45}.cq-advice{text-align:left}.cq-advice>em{font-style:normal;color:#b64025;font-weight:900;letter-spacing:.12em}.cq-advice h2{margin:6px 0}.cq-advice p{line-height:1.55;color:#5a3a22}.cq-advice ul{margin:10px 0;padding:10px 10px 10px 27px;border-radius:10px;background:#fff5db;color:#73451e;font-size:12px;line-height:1.65}
.cq-story-head{text-align:center}.cq-story-head span{display:inline-block;padding:3px 10px;border-radius:99px;background:#3c506a;color:#eaf5ff;font-size:11px;font-weight:800;letter-spacing:.12em}.cq-story-head h2{justify-content:center;margin:7px 0}.cq-story-text{padding:11px!important;border-radius:12px;background:#fff6df;color:#5a3a22!important;font-size:13px;line-height:1.65;text-align:left}.cq-story-options{display:grid;gap:8px}.cq-story-options button{position:relative;padding:11px 12px;border:2px solid #c39a53;border-radius:12px;background:linear-gradient(#fffdf6,#f0deb7);color:#432614;text-align:left}.cq-story-options button.advised{border-color:#b54825;background:linear-gradient(#fff8d6,#ffd49a);box-shadow:inset 0 0 0 1px #fff5c8}.cq-story-options b,.cq-story-options small{display:block}.cq-story-options b{font-size:14px}.cq-story-options small{margin-top:5px;color:#734d29;font-size:11px;line-height:1.45}.cq-story-options em{position:absolute;right:8px;top:8px;padding:2px 6px;border-radius:99px;background:#a63d24;color:#fff6d4;font-size:9px;font-style:normal}
.cq-command.recommended,.cq-story-options button.recommended{border-color:#b74422;box-shadow:inset 0 0 0 1px #fff4bc,0 0 0 2px rgba(183,68,34,.1)}.cq-command .cq-rec,.cq-story-options .cq-rec{position:absolute;right:8px;top:8px;padding:2px 6px;border-radius:99px;background:#b74422;color:#fff6d4;font-size:9px;font-style:normal;font-weight:900}.cq-command .cq-reason{display:block;margin:6px 0 25px;padding:5px 6px;border-left:3px solid #c6542e;border-radius:3px;background:#fff0ca;color:#85401f;font-size:10px;line-height:1.4}.cq-story-options .cq-advisor{right:8px;background:#a63d24}.cq-story-options .cq-rec{right:auto;left:8px;background:#b74422}.cq-story-options .cq-impact,.cq-story-options .cq-reason{display:block;margin-top:6px;font-size:10px;line-height:1.4}.cq-story-options .cq-impact{color:#6e421e;font-weight:800}.cq-story-options .cq-reason{padding:5px 6px;border-left:3px solid #c6542e;background:#fff0ca;color:#85401f}.cq-story-options button.recommended b{padding-left:48px}.cq-story-options button.recommended:has(.cq-advisor) b{padding-left:0;padding-right:54px}
.cq-draft button.on{outline:3px solid #3ecf7a}
.cq-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0;align-items:stretch}
.cq-picks button{text-align:left;padding:12px 10px;border-radius:14px;min-height:132px;background:linear-gradient(#fffaf0,#f3d9a0);border:2px solid #c9a24a;color:#3b1f10}
.cq-picks button b,.cq-picks button small{display:block}
.cq-pick-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.modal-mask.cq-sheet-mask{padding:0}
.modal.cq-sheet{
  width:100%;height:100%;max-width:none;max-height:none;overflow:hidden;padding:12px 10px 10px;
  display:flex;flex-direction:column;border-radius:0;
  background:linear-gradient(#f7ead0,#ead4a4);
}
.cq-market{display:grid;grid-template-columns:58px 1fr;gap:8px;min-height:0;flex:1;text-align:left;align-items:stretch}
.cq-market-side{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.cq-market-title{
  writing-mode:vertical-rl;letter-spacing:10px;font-size:26px;font-weight:900;line-height:1;
  color:#c48a22;text-shadow:0 1px 0 #fff6d8, 0 2px 0 #8a5a18;padding:6px 0 2px;
}
.cq-market-tabs{display:flex;flex-direction:column;gap:6px;width:100%}
.cq-market-tabs button{
  writing-mode:horizontal-tb;letter-spacing:0;padding:10px 2px;min-height:44px;
  border:2px solid #b8893a;background:linear-gradient(#efe0c4,#d8c090);color:#3b1f10;font-weight:800;font-size:13px;border-radius:8px;
}
.cq-market-tabs button.on{background:linear-gradient(#ffe98a,#f0b43a);border-color:#e0a020;box-shadow:inset 0 -3px 0 #c98a20}
.cq-market-main{min-width:0;min-height:0;display:flex;flex-direction:column;gap:6px;flex:1}
.cq-market-head{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}
.cq-market-head .gold{
  font-weight:800;color:#8a4a10;background:#fff4d0;border:2px solid #e8b050;border-radius:99px;
  padding:3px 10px 3px 8px;font-size:14px;
}
.cq-market-head .gold::before{content:"";display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ffe9a0,#d4922a 62%,#8a5a10);vertical-align:-1px}
.cq-mx{width:28px;height:28px;padding:0;border-radius:50%;font-size:20px;line-height:1;
  background:#6a2a12;color:#f6e6b8;font-weight:800}
.cq-market-note{margin:8px 0 0;color:#8a5a32;font-size:12px;text-align:center;flex:none}
.cq-market-cards{
  display:grid;grid-template-columns:repeat(auto-fill,140px);justify-content:center;align-content:start;
  gap:12px 10px;flex:1;min-height:0;overflow:auto;padding:4px 2px 8px;
  scrollbar-width:thin;scrollbar-color:#c9a24a transparent;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
.cq-market-cards::-webkit-scrollbar{width:6px;height:6px}
.cq-market-cards::-webkit-scrollbar-thumb{background:#c9a24a;border-radius:99px}
.cq-msku{
  width:140px;appearance:none;-webkit-appearance:none;
  display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;color:#3b1f10;
}
.cq-mcard{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:140px;
  min-height:196px;padding:26px 8px 12px;text-align:center;
  background:linear-gradient(#fffdf6,#f4e2b8);border:2px solid #c9a24a;border-radius:14px;
  box-shadow:0 4px 0 #c4923a;
}
.cq-mkind{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  font-style:normal;font-size:11px;font-weight:800;letter-spacing:1px;
  background:linear-gradient(#7b4bb8,#5a2e90);color:#fff;padding:3px 12px;border-radius:0 0 8px 8px;
}
.cq-mcard b{font-size:17px;line-height:1.2}
.cq-mcard small{
  color:#6a4a28;font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;
  overflow:hidden;min-height:4.4em;flex:1;
}
.cq-mprice{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:76px;
  background:linear-gradient(#3b2416,#5a2a12);color:#f6e6b8;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:800;
}
.cq-mprice em{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe9a0,#d4922a 62%,#8a5a10);flex:none}
.cq-msku.poor .cq-mprice{background:linear-gradient(#6a5840,#4a3a28)}
.cq-msku.sold{opacity:.42;filter:grayscale(.35)}
.cq-mcard .cq-rec{
  position:absolute;left:-2px;top:12px;transform:rotate(-18deg);z-index:1;
  background:#c43a28;color:#fff;font-size:11px;font-style:normal;font-weight:800;padding:3px 10px;
}
.cq-micon{width:56px;height:56px;margin:6px auto 0;display:block;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.cq-mcard .portrait{width:68px;height:84px;margin:6px auto 0;border-radius:10px}
.cq-shop-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px dashed #e8c48a}
.cq-shop-row:last-child{border-bottom:0}
.cq-board li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:6px 0}
.cq-board .me{font-weight:800}


/* —— 祈福 —— */
#view-pray{padding:0;min-height:calc(100vh - 56px)}
.pray-stage{
  position:relative;min-height:calc(100vh - 24px);display:flex;flex-direction:column;justify-content:flex-end;
  background:#140c20 url("assets/pray/pray_bg.webp") center/cover no-repeat;color:#fff8e8;
  border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(20,10,30,.35);
  contain:layout paint;
}
.pray-stage::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,8,24,.2),rgba(12,8,24,.5) 50%,rgba(12,8,24,.82));pointer-events:none}
.pray-back{
  position:absolute;z-index:3;top:10px;left:10px;border:1px solid rgba(240,197,106,.55);
  background:rgba(20,12,28,.72);color:#ffe7a8;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer;
}
.pray-pool,.pray-footer{position:relative;z-index:1}
.pray-pool{padding:52px 14px 8px;display:flex;justify-content:flex-end}
.pray-focus{width:min(46%,210px);background:rgba(20,12,28,.45);border:1px solid rgba(240,197,106,.4);border-radius:14px;padding:10px;backdrop-filter:blur(2px)}
.pray-focus .pray-hero{width:100%;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:transparent}
.pray-focus .pray-hero .portrait-img{object-fit:contain;background:transparent}
.pray-tag{display:inline-block;font-size:11px;letter-spacing:.08em;color:#f0c56a;margin-bottom:6px}
.pray-focus-meta{margin-top:8px}
.pray-focus-meta b{display:block;font-size:15px;margin:4px 0}
.pray-focus-meta p{font-size:11px;line-height:1.4;opacity:.9;margin:6px 0;max-height:4.2em;overflow:hidden}
.pray-footer{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:end;padding:8px 10px 14px}
.pray-meta{display:flex;flex-direction:column;gap:6px;min-width:96px}
.pray-count{background:rgba(0,0,0,.35);border-radius:10px;padding:6px 8px;border:1px solid rgba(255,255,255,.12)}
.pray-count b{display:block;font-size:10px;opacity:.8}
.pray-count strong{font-size:18px;color:#ffe7a8}
.pray-shop{background:rgba(140,28,28,.85);border:1px solid #f0c56a;color:#fff;border-radius:12px;padding:6px 8px;text-align:left;cursor:pointer;font-size:12px}
.pray-shop .ico{width:16px;height:16px;vertical-align:-3px;background:transparent}
.pray-shop small{opacity:.9}
.pray-actions{display:flex;flex-direction:column;gap:4px;align-items:stretch}
.pray-hint{margin:0;text-align:center;font-size:11px;color:#ffe7a8;text-shadow:0 1px 2px #000}
.pray-btns{display:flex;gap:8px}
.pray-btn{flex:1;border:0;border-radius:12px;padding:10px 8px;font-size:14px;font-weight:700;cursor:pointer;color:#3a2208;
  background:linear-gradient(180deg,#ffe3a0,#e8a84a);box-shadow:0 3px 0 #8a4a18,0 6px 14px rgba(0,0,0,.3)}
.pray-btn.ten{background:linear-gradient(180deg,#ffc878,#e07a2a)}
.pray-btn small{display:block;font-weight:600;opacity:.85;margin-top:2px;font-size:11px}
.pray-btn .ico{width:18px;height:18px;vertical-align:-3px;margin-right:2px;background:transparent}
.pray-lamp-bar{display:flex;flex-direction:column;align-items:flex-end;gap:4px;background:rgba(0,0,0,.4);border-radius:12px;padding:6px 8px;border:1px solid rgba(240,197,106,.35);min-width:88px}
.pray-lamp-bar span{display:flex;align-items:center;gap:4px;font-size:12px}
.pray-lamp-bar .ico{width:18px;height:18px;background:transparent}
.pray-pool-list,.pray-ex-list{display:flex;flex-direction:column;gap:10px;max-height:55vh;overflow:auto}
.pray-pool-item,.pray-ex-row{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;background:#fff8e8;border:1px solid #f0c56a}
.pray-pool-item>.portrait.mini{flex:0 0 136px;width:136px;height:96px;margin:0;border-radius:10px}
.pray-pool-item>div:last-child{flex:1;min-width:0}
.pray-pool-item>.portrait.mini .portrait-img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.pray-pool-item.owned{opacity:.72}
.pray-pool-item p{margin:4px 0;font-size:12px;color:#5a3a22}
.pray-buy-list{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.modal .pray-buy-modal{display:flex;flex-direction:column;gap:14px;text-align:center}
.modal .pray-buy-modal h2{margin:0;justify-content:center}
.modal .pray-buy-hero{margin:0;display:flex;flex-direction:column;align-items:center;gap:8px}
.modal .pray-buy-hero img{
  width:min(38vw,132px);height:auto;object-fit:contain;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.22));background:transparent;
}
.modal .pray-buy-stats{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;
  margin:0;padding:6px 12px;border-radius:999px;font-size:13px;color:#5a3a22;
  background:rgba(255,255,255,.55);border:1px solid rgba(240,197,106,.55);
}
.modal .pray-buy-stats i{width:1px;height:12px;background:rgba(90,58,34,.25)}
.modal .pray-buy-stats b{color:#c43a28}
.modal .pray-buy-opts{display:flex;flex-direction:column;gap:10px;margin:0}
.modal .pray-buy-opt{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:56px;padding:12px 16px;border-radius:16px;cursor:pointer;
  border:2px solid #f0c56a;background:linear-gradient(#fffdf8,#ffe7b0);color:#3b1f10;
  box-shadow:0 3px 0 #e0a84a;
}
.modal .pray-buy-opt.hot{
  border-color:#c43a28;background:linear-gradient(#fff4e4,#ffd090);
  box-shadow:0 3px 0 #b06028;
}
.modal .pray-buy-opt:active{transform:translateY(2px);box-shadow:0 1px 0 #e0a84a}
.modal .pray-buy-qty{font-size:24px;font-weight:900;letter-spacing:.02em}
.modal .pray-buy-price{font-size:15px;font-weight:700;color:#8a5a32}
.modal .pray-buy-tag{
  position:absolute;top:-8px;right:12px;padding:2px 8px;border-radius:999px;
  font-size:11px;font-weight:800;color:#fff;background:#c43a28;
}
.modal .pray-buy-custom{
  margin:0;padding:14px;border-radius:16px;text-align:center;
  background:#fff8e8;border:2px dashed #e8b050;
}
.modal .pray-buy-custom-title{font-size:13px;font-weight:800;color:#8a5a32;margin-bottom:10px}
.modal .pray-buy-stepper{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 10px}
.modal .pray-buy-step{
  width:44px;height:44px;flex:0 0 44px;border-radius:12px;font-size:22px;font-weight:900;
  border:2px solid #f0c56a;background:linear-gradient(#fffdf6,#ffe9c2);color:#5a3a22;
  box-shadow:0 2px 0 #e0a84a;
}
.modal .pray-buy-step:active{transform:translateY(1px);box-shadow:0 1px 0 #e0a84a}
.modal .pray-buy-stepper input,
.modal .pray-buy-modal input#prayBuyAmt{
  width:88px !important;margin:0 !important;padding:10px 8px !important;text-align:center;
  border:2px solid #f0c56a;border-radius:12px;font-size:20px;font-weight:900;
  background:#fff;color:#3b1f10;
}
.modal .pray-buy-cost{margin:0 0 12px;font-size:14px;font-weight:700;color:#c43a28}
.modal .pray-buy-confirm{width:100%;min-height:48px}
.modal .pray-buy-cancel{width:100%;min-height:48px;margin-top:2px}
.pray-result h2{text-align:center;color:#c48a18;font-size:26px;margin:0 0 12px;letter-spacing:.12em;text-shadow:0 1px 0 #fff}
.pray-res-grid{display:grid;gap:8px}
.pray-res-grid.ten{grid-template-columns:repeat(5,minmax(0,1fr))}
.pray-res-grid.one{grid-template-columns:1fr;max-width:140px;margin:0 auto}
.pray-res-cell{position:relative;background:linear-gradient(180deg,#3a2818,#241810);color:#fff;border:2px solid #5a4030;border-radius:10px;padding:8px 4px 10px;text-align:center}
.pray-res-cell.hi{border-color:#f0c56a;box-shadow:0 0 10px rgba(240,197,106,.45)}
.pray-res-cell b{display:block;font-size:11px;margin-top:4px;line-height:1.25}
.pray-res-cell .amt{position:absolute;right:4px;bottom:26px;font-size:10px}
.pray-res-cell .perm{position:absolute;left:3px;bottom:26px;font-size:9px;background:rgba(255,255,255,.85);color:#333;padding:1px 3px;border-radius:3px}
.pray-res-cell .dup{display:block;font-size:9px;color:#f0c56a;margin-top:2px}
.pray-res-ico{width:52px;height:52px;margin:0 auto;display:grid;place-items:center;background:transparent}
.pray-res-ico .ico{width:44px;height:44px;object-fit:contain;background:transparent;mix-blend-mode:normal}
.pray-res-art{width:52px;height:52px;margin:0 auto;border-radius:8px;overflow:hidden;background:transparent}
.pray-res-art .portrait-img{object-fit:contain}
.pray-res-actions{display:flex!important;flex-direction:row!important;gap:10px;justify-content:center}
.pray-res-actions button{flex:1;max-width:160px}
@media (max-width:700px){
  .pray-footer{grid-template-columns:1fr;gap:10px}
  .pray-pool{justify-content:center;padding-top:48px}
  .pray-focus{width:min(72%,220px)}
  .pray-pool-item>.portrait.mini{flex-basis:136px;width:136px}
  .pray-btns{flex-direction:row}
  .pray-res-grid.ten{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pray-lamp-bar{flex-direction:row;justify-content:space-between;align-items:center}
}

.rarity-legendary,.warrior.rarity-legendary{box-shadow:inset 0 0 0 2px #d4a017}
.rarity-tag.legendary{background:linear-gradient(90deg,#8b1e1e,#d4a017);color:#fff}

.legend-skill-pop{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(8,4,16,.55);backdrop-filter:blur(2px)}
.legend-skill-pop[hidden]{display:none!important}
.lsp-card{display:flex;gap:12px;align-items:center;max-width:92%;padding:14px 16px;border-radius:16px;border:2px solid #f0c56a;background:linear-gradient(135deg,#2a1520,#4a2810);color:#fff8e8;box-shadow:0 0 28px rgba(240,197,106,.45);animation:lsp-in .28s ease}
.lsp-art{width:72px;height:72px;border-radius:10px;overflow:hidden;flex:0 0 auto}
.lsp-body em{font-style:normal;font-size:11px;color:#f0c56a;letter-spacing:.1em}
.lsp-body h3{margin:2px 0 6px;font-size:22px}
.lsp-body p{margin:0;font-size:13px;line-height:1.45;opacity:.95}
.lsp-body small{opacity:.7;font-size:11px}
.legend-skill-pop.fx-bawang .lsp-card{box-shadow:0 0 36px rgba(255,80,40,.55)}
.legend-skill-pop.fx-lianying .lsp-card{box-shadow:0 0 36px rgba(255,120,20,.55)}
.legend-skill-pop.fx-elai .lsp-card{box-shadow:0 0 36px rgba(180,200,255,.45)}
.legend-skill-pop.fx-wansha .lsp-card{box-shadow:0 0 36px rgba(160,60,220,.55)}
.legend-skill-pop.fx-jizhi .lsp-card{box-shadow:0 0 36px rgba(120,220,200,.5)}
@keyframes lsp-in{from{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}

/* —— 孔明赌坊 · 21 点 —— */
.arena-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:2px 0 14px}
.arena-tile{min-height:94px;padding:14px 12px;border:2px solid #c79c47;border-radius:15px;text-align:left;color:#fff6d6;background:linear-gradient(145deg,#234d38,#132c21);box-shadow:0 4px 0 #102116;cursor:pointer}
.arena-tile.bj{border-color:#e2ba62;background:linear-gradient(145deg,#6a2e17,#233e28);box-shadow:0 4px 0 #351407}
.arena-tile.landlord{border-color:#d89b45;background:linear-gradient(145deg,#273c61,#1b203c);box-shadow:0 4px 0 #11182e}
.arena-tile.static{cursor:default;background:linear-gradient(145deg,#26465d,#1d2b3d)}
.arena-tile b,.arena-tile small{display:block}.arena-tile b{font:800 16px/1.25 serif;letter-spacing:.05em}.arena-tile small{margin-top:6px;color:#f5deb2;font-size:11px;line-height:1.35}
body.bj-open{overflow:hidden}
.bj-overlay{
  position:fixed;z-index:80;inset:0;display:grid;place-items:center;overflow:auto;
  padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
  background:radial-gradient(circle at 50% 35%,rgba(34,100,68,.38),rgba(9,5,4,.94) 72%);
}
.bj-overlay[hidden]{display:none!important}
.bj-open .modal-mask{position:fixed;z-index:120;inset:0;max-height:none}.bj-open .modal{max-height:calc(100vh - 36px);overflow:auto}
.bj-stage{width:min(100%,760px);min-height:min(860px,calc(100vh - 20px));display:grid;place-items:center}
.bj-loading{padding:24px 30px;border-radius:16px;background:#fff8e8;color:#5a3a22;font-weight:800;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.bj-loading .warn{color:#c43a28}
.bj-shell{
  position:relative;isolation:isolate;width:100%;min-height:min(840px,calc(100vh - 20px));overflow:hidden;
  border:2px solid #9a6b28;border-radius:26px;padding:22px 26px 28px;
  background:#123c2e center/cover no-repeat;color:#fff7de;
  box-shadow:0 14px 46px rgba(0,0,0,.7),inset 0 0 0 2px rgba(255,220,124,.3);
}
.bj-shell::before{content:"";position:absolute;z-index:-1;inset:10px;border-radius:18px;background:linear-gradient(180deg,rgba(0,14,7,.1),rgba(0,10,5,.5));pointer-events:none}
.bj-x{
  position:absolute;z-index:8;right:20px;top:18px;width:38px;height:38px;border-radius:50%;border:1px solid #f4ce75;
  background:linear-gradient(#8c2521,#4c110e);color:#ffe9ab;font-size:26px;line-height:32px;cursor:pointer;box-shadow:0 3px 0 #210806;
}
.bj-x:active{transform:translateY(2px);box-shadow:0 1px 0 #210806}
.bj-dealer-wrap{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:8px;min-height:160px;padding:8px 54px 0}
.bj-dealer-wrap.compact{min-height:98px;justify-content:flex-start;padding:0 44px 0 0}
.bj-dealer-spine{
  position:relative;flex:0 0 auto;width:118px;height:148px;overflow:hidden;border-radius:16px 16px 8px 8px;
  background:radial-gradient(ellipse at 50% 85%,rgba(255,203,92,.3),transparent 60%);
  filter:drop-shadow(0 6px 7px rgba(0,0,0,.55));
}
.bj-dealer-wrap.compact .bj-dealer-spine{width:78px;height:96px}
.bj-dealer-spine .portrait{height:100%;background:transparent}
.bj-dealer-spine .portrait-img{object-fit:contain;object-position:center bottom}
.bj-dealer-tag{
  max-width:180px;margin-bottom:10px;padding:7px 12px;border:1px solid rgba(247,204,108,.72);border-radius:10px;
  background:linear-gradient(135deg,rgba(51,16,10,.9),rgba(98,34,15,.82));color:#ffe9a8;text-align:center;font-family:serif;font-weight:900;letter-spacing:.08em;
  text-shadow:0 1px 2px #160500;box-shadow:0 2px 10px rgba(0,0,0,.32);
}
.bj-dealer-tag small{display:block;margin-top:3px;color:#fff1cf;font:11px/1.25 system-ui,sans-serif;letter-spacing:0}
.bj-top{display:flex;gap:10px;align-items:flex-end;justify-content:space-between;min-height:150px}
.bj-top>.bj-hand{flex:1;max-width:330px}.bj-top>.bj-hand.dealer{margin-right:46px}
.bj-msg{position:relative;margin:8px auto 12px;max-width:560px;padding:8px 12px;border-radius:10px;background:rgba(13,36,22,.7);border:1px solid rgba(241,205,113,.46);color:#fff4d4;text-align:center;font-size:13px;line-height:1.4}
.bj-player-zone{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;margin:10px 0 14px}
.bj-hand{
  min-width:0;padding:8px 9px 10px;border:1px solid rgba(255,224,139,.45);border-radius:14px;
  background:linear-gradient(135deg,rgba(5,27,16,.69),rgba(20,53,31,.58));box-shadow:inset 0 1px rgba(255,255,255,.08),0 3px 10px rgba(0,0,0,.18);
}
.bj-hand.on{border-color:#ffdb76;box-shadow:0 0 0 2px rgba(255,212,101,.38),0 0 18px rgba(247,182,55,.3)}
.bj-hand-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px;min-height:39px;padding:0 2px 6px;color:#fff0bd;font-size:12px}
.bj-hand-label{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.bj-hand-label>b{font-family:serif;font-size:14px;letter-spacing:.06em}.bj-hand-label small{width:100%;color:#d7e7cb;font-size:10px}.bj-score{display:flex;align-items:baseline;gap:2px;min-width:54px;padding:2px 5px 1px;border:1px solid rgba(255,225,137,.72);border-radius:8px;background:rgba(15,8,4,.64);color:#fff3c1;line-height:1;box-shadow:inset 0 1px rgba(255,255,255,.12)}.bj-score small{font-size:8px;color:#f5d78d}.bj-score strong{font:900 27px/1 Georgia,serif;color:#fff8df;text-shadow:0 1px 2px #000}.bj-score em{font-size:9px;font-style:normal;color:#bfe8d2}
.bj-cards{display:flex;min-height:104px;align-items:flex-end;padding:0 1px;overflow:visible}
.bj-card{
  position:relative;flex:0 0 72px;width:72px;height:102px;margin-right:-19px;overflow:hidden;border:2px solid #ead8ad;border-radius:7px;
  background:linear-gradient(145deg,#fffdf3,#efe4cf);color:#3a2013;box-shadow:0 3px 7px rgba(0,0,0,.46);transform:rotate(-1deg);animation:bj-deal .25s ease both;
}
.bj-card:nth-child(2n){transform:rotate(1deg)}.bj-card:last-child{margin-right:0}.bj-card.back{background-size:cover;background-position:center;border-color:#cfa95d}
.bj-card-top{position:absolute;z-index:2;top:4px;left:5px;display:grid;line-height:.85;text-align:center;text-shadow:0 1px #fff}.bj-card-top b{font-size:20px}.bj-card-top em{font-size:12px;font-style:normal;font-weight:900}
.bj-card-art{position:absolute;inset:20px 2px 16px;display:grid;place-items:end center;background:radial-gradient(ellipse at 50% 100%,rgba(192,123,47,.18),transparent 67%)}
.bj-card-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 2px 1px rgba(0,0,0,.22))}
.bj-card-name{position:absolute;z-index:2;bottom:2px;left:2px;right:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:9px;font-weight:800;text-shadow:0 1px #fff}
.bj-card.suit-wei .bj-card-top{color:#285ca7}.bj-card.suit-shu .bj-card-top{color:#bc3427}.bj-card.suit-wu .bj-card-top{color:#238659}.bj-card.suit-qun .bj-card-top{color:#7650a6}
.bj-res{margin-left:3px;padding:2px 5px;border-radius:4px;font-size:10px;font-style:normal;font-weight:900}.bj-res.win,.bj-res.blackjack{background:#e9ba44;color:#3a2205}.bj-res.lose,.bj-res.bust{background:#8e2926;color:#fff4dc}.bj-res.push{background:#75877c;color:#fff}
.bj-actions{position:relative;display:flex;justify-content:center;gap:10px;margin:10px auto 0;max-width:460px}.bj-actions button{min-height:44px;flex:1}.bj-actions.play{margin-top:auto}.bj-actions.play .primary{background:linear-gradient(#ffe4a0,#dd8c2a);color:#42210b;box-shadow:0 3px 0 #774014}.bj-actions.play .ghost{border-color:#f0c56a;background:rgba(35,18,9,.8);color:#ffe7a8}.bj-actions button:disabled{filter:grayscale(.8);opacity:.48;cursor:not-allowed}
.bj-bet-panel{position:absolute;bottom:24px;left:50%;width:min(620px,calc(100% - 42px));transform:translateX(-50%);padding:14px;border:1px solid #d9aa50;border-radius:17px;background:linear-gradient(160deg,rgba(28,16,9,.92),rgba(62,30,13,.87));box-shadow:0 8px 22px rgba(0,0,0,.44)}
.bj-bet-panel h3{margin:0 0 5px;color:#ffe59c;font-family:serif;text-align:center;letter-spacing:.13em}.bj-bet-panel .hint{margin:0 0 10px;color:#f5dfb4;text-align:center;font-size:11px;line-height:1.4}
.bj-item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:230px;overflow:auto;padding:2px}.bj-item-grid.modal{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}
.bj-item{
  display:flex;min-height:76px;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:5px;border:1px solid #a77b3e;border-radius:9px;
  background:linear-gradient(#fff4d4,#e9c47d);color:#442715;cursor:pointer;box-shadow:0 2px 0 #6a3c1a;font-size:11px;
}.bj-item .ico{width:23px;height:23px;background:transparent}.bj-item b{font-size:12px}.bj-item small,.bj-item em{font-size:9px;font-style:normal;line-height:1.15}.bj-item em{color:#8a321d}.bj-item.on{border-color:#fff0a7;background:linear-gradient(#fff6bd,#efae3c);box-shadow:0 0 0 2px #f4c75a,0 2px 0 #6a3c1a}.bj-item.capped{filter:saturate(.55)}.bj-item:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}
.bj-leisure{display:flex;justify-content:center;align-items:center;gap:6px;margin:10px 0 6px;color:#f8e6bc;font-size:12px;cursor:pointer}.bj-leisure input{accent-color:#e6b53f}.bj-amount-row{display:flex;align-items:center;justify-content:center;gap:9px;margin:6px 0;color:#f8e6bc;font-size:12px}.bj-amount-row input{width:104px;border:1px solid #e2b75d;border-radius:7px;padding:7px 8px;background:#fff8e8;color:#482816;font-weight:800;text-align:center}
.bj-result-board{margin:0 auto 250px;max-width:520px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.bj-result-board>.bj-hand:last-of-type{grid-column:1/-1}.bj-result-board .bj-msg{grid-column:1/-1;margin:0}.bj-result-board .bj-hand .bj-cards{justify-content:center}
@keyframes bj-deal{from{opacity:0;transform:translate(42px,-26px) rotate(8deg)}to{opacity:1}}
.bj-card.flip-in{transform-origin:center;animation:bj-flip .82s cubic-bezier(.2,.72,.22,1) both}
@keyframes bj-flip{0%{filter:brightness(.7);transform:perspective(420px) rotateY(92deg) scale(.92)}55%{filter:brightness(1.25)}100%{filter:none;transform:perspective(420px) rotateY(0) scale(1)}}
.bj-reveal-msg{animation:bj-reveal-pulse .85s ease-in-out infinite alternate}.bj-reveal-seal{align-self:center;margin-top:auto;padding:8px 22px;border:1px solid #f3c45d;border-radius:99px;background:rgba(65,21,11,.87);color:#ffe9a7;font:800 15px serif;letter-spacing:.15em;box-shadow:0 0 20px rgba(244,180,57,.34)}
@keyframes bj-reveal-pulse{from{box-shadow:0 0 0 rgba(255,211,101,0)}to{box-shadow:0 0 18px rgba(255,211,101,.42)}}
.bj-shell.settled{display:flex;min-height:0;height:min(860px,calc(100vh - 20px));flex-direction:column;padding-top:14px;overflow:auto}
.bj-shell.settled .bj-dealer-wrap{min-height:112px;padding-top:0}.bj-shell.settled .bj-dealer-spine{width:88px;height:108px}.bj-shell.settled .bj-dealer-tag{margin-bottom:4px}
.bj-result-wrap{width:min(560px,100%);margin:0 auto}.bj-shell.settled .bj-result-board{margin:0;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bj-shell.settled .bj-result-board>.bj-hand:last-child{grid-column:1/-1}.bj-shell.settled .bj-result-board .bj-cards{justify-content:center;min-height:88px}.bj-shell.settled .bj-card{flex-basis:62px;width:62px;height:88px}
.bj-outcome{display:flex;align-items:center;justify-content:center;gap:9px;margin:9px auto;padding:8px 12px;border:1px solid #d5af5c;border-radius:11px;background:rgba(24,17,10,.82);text-align:center}.bj-outcome b{font:900 18px serif;letter-spacing:.09em}.bj-outcome span{font-size:12px}.bj-outcome.win b,.bj-outcome.mixed b{color:#ffdd74}.bj-outcome.lose b{color:#ff9585}.bj-outcome.push b{color:#d6e5db}
.bj-shell.settled .bj-bet-panel{position:relative;bottom:auto;left:auto;width:min(620px,100%);transform:none;margin:auto auto 0;flex:none}.bj-shell.settled .bj-item-grid{max-height:190px}
.modal .bj-leisure,.modal .bj-amount-row{color:#3b1f10;font-weight:800}.modal .bj-leisure input{accent-color:#9e3b1f}.modal .bj-item-grid.modal{margin:10px 0}.modal .bj-item-grid.modal .bj-item small{color:#5a351e}
@media(min-width:621px){.bj-stage{width:min(100%,720px)}.bj-shell.play,.bj-shell.reveal{min-height:0;height:min(840px,calc(100vh - 20px))}}
@media(max-width:620px){
  .arena-hub{grid-template-columns:1fr}.arena-tile{min-height:70px}
  .bj-stage{min-height:100%}.bj-shell{min-height:100%;border-radius:16px;padding:12px 13px 18px}.bj-x{right:13px;top:11px}.bj-dealer-wrap{min-height:124px;padding:0 40px 0}.bj-dealer-spine{width:94px;height:118px}.bj-dealer-wrap.compact .bj-dealer-spine{width:62px;height:76px}.bj-dealer-tag{padding:5px 7px;font-size:12px}.bj-top{min-height:120px;gap:4px}.bj-top>.bj-hand{max-width:215px}.bj-top>.bj-hand.dealer{margin-right:40px}.bj-player-zone{grid-template-columns:1fr;gap:8px}.bj-hand{padding:7px}.bj-cards{min-height:92px}.bj-card{flex-basis:62px;width:62px;height:88px;margin-right:-17px}.bj-card-top b{font-size:17px}.bj-card-top em{font-size:10px}.bj-card-art{inset:17px 2px 13px}.bj-card-name{font-size:8px}.bj-bet-panel{position:relative;bottom:auto;left:auto;width:auto;transform:none;margin:10px 0 0}.bj-result-board{margin-bottom:8px;grid-template-columns:1fr}.bj-item-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:250px}.bj-item-grid.modal{grid-template-columns:repeat(2,minmax(0,1fr))}.bj-item{min-height:70px}.bj-shell.play{display:flex;flex-direction:column;min-height:calc(100vh - 20px)}.bj-shell.play .bj-player-zone{flex:1}.bj-actions{margin-top:7px}.bj-shell.settled{height:auto;min-height:100%;overflow:visible}.bj-shell.settled .bj-result-board{grid-template-columns:1fr}.bj-shell.settled .bj-result-board>.bj-hand:last-child{grid-column:auto}.bj-outcome{flex-direction:column;gap:2px}.bj-score strong{font-size:25px}
}

/* —— 三国杀斗地主 —— */
body.landlord-open{overflow:hidden}
.landlord-overlay{position:fixed;z-index:90;inset:0;display:grid;place-items:center;overflow:auto;padding:10px;background:radial-gradient(circle at 50% 32%,rgba(85,55,31,.38),rgba(7,10,19,.95) 70%)}
.landlord-overlay[hidden]{display:none!important}.landlord-stage{width:min(100%,1060px);min-height:min(780px,calc(100vh - 20px));display:grid;place-items:center}.ll-loading{padding:25px 32px;border-radius:16px;background:#fff3d6;color:#4c2613;font-weight:800;box-shadow:0 12px 38px #0008}.ll-loading.warn{color:#a8251d}.ll-loading button{display:block;margin:12px auto 0}
.ll-shell{position:relative;isolation:isolate;width:100%;min-height:min(760px,calc(100vh - 20px));overflow:hidden;border:2px solid #b67a33;border-radius:22px;padding:14px 18px 16px;background:#15291d center/cover no-repeat;color:#ffefd1;box-shadow:0 16px 50px #000b,inset 0 0 0 2px #ffdb8140}.ll-shell::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#06080a4a,#06120cd0);pointer-events:none}.ll-x{position:absolute;z-index:9;right:14px;top:12px;width:36px;height:36px;border:1px solid #f1c66e;border-radius:50%;background:#511914;color:#ffeab4;font-size:25px;line-height:28px;cursor:pointer}.ll-head{display:flex;justify-content:space-between;align-items:center;padding:2px 48px 8px 3px;border-bottom:1px solid #f2cf7a55;text-shadow:0 1px 2px #000}.ll-head b{font:900 19px serif;letter-spacing:.12em;color:#ffe5a1}.ll-head span{font-size:12px;color:#e8d4aa}.ll-foes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:810px;margin:10px auto 5px}.ll-seat{position:relative;min-width:0;border:1px solid #e7bd665c;border-radius:13px;background:linear-gradient(145deg,#08140eb8,#203324a8);box-shadow:inset 0 1px #fff1bc18,0 4px 12px #0004}.ll-seat.foe{display:grid;grid-template-columns:78px minmax(0,1fr);min-height:112px;padding:8px;cursor:pointer}.ll-seat.foe.turn,.ll-seat.targeted{border-color:#ffd774;box-shadow:0 0 0 2px #f3bd4f66,0 0 18px #f3bd4f55}.ll-seat.dead{filter:grayscale(1);opacity:.52}.ll-avatar{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:1px;text-align:center}.ll-avatar img{width:56px;height:56px;object-fit:cover;object-position:center top;border:1px solid #e2bf7388;border-radius:50%;background:#2e1c13}.ll-avatar b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe8af;font:800 13px serif}.ll-avatar small{padding:1px 4px;border-radius:4px;background:#531d1ab8;color:#ffde83;font-size:10px}.ll-seat-info{display:flex;min-width:0;flex-wrap:wrap;align-content:start;gap:3px 8px;padding-top:2px}.ll-seat-info strong{font-size:13px}.ll-seat-info em{font-style:normal;font-size:10px;color:#d7dfcc}.ll-hp{width:100%;color:#ff786e;font-size:15px;letter-spacing:1px;text-shadow:0 1px #4a0808}.ll-hp i{margin-left:5px;color:#ffdfcf;font:10px system-ui;letter-spacing:0}.ll-zones{display:flex;gap:3px;width:100%;min-height:20px;align-items:center}.ll-equip{width:21px;height:28px;overflow:hidden;border:1px solid #f2d17e;border-radius:3px;background:#ead6a5}.ll-equip img{width:100%;height:100%;object-fit:cover}.ll-judge{padding:2px 4px;border:1px solid #c6914e;border-radius:4px;background:#4c2218;color:#ffe0a5;font-size:9px}.ll-hand.hidden{position:absolute;right:5px;bottom:4px;display:flex;max-width:calc(100% - 90px);overflow:hidden}.ll-back{flex:0 0 22px;width:22px;height:35px;margin-left:-12px;border:1px solid #d9b261;border-radius:4px;background:#52221e url('/sanguosha/sanguosha-battle/image/system/card-back.png') center/cover}.ll-back:first-child{margin-left:0}.ll-message{width:min(650px,calc(100% - 18px));margin:6px auto;padding:6px 12px;border:1px solid #e8c36e8a;border-radius:99px;background:#08140db5;color:#fff0c5;text-align:center;font-size:12px;line-height:1.35}.ll-seat.mine{display:grid;grid-template-columns:82px minmax(0,1fr);gap:7px;width:min(910px,100%);min-height:176px;margin:0 auto;padding:9px}.ll-seat.mine .ll-avatar img{width:62px;height:62px}.ll-seat.mine .ll-seat-info{max-height:58px}.ll-hand.own{grid-column:1/-1;display:flex;align-items:flex-end;min-height:96px;padding:1px 4px;overflow-x:auto;overflow-y:visible}.ll-card{position:relative;flex:0 0 66px;width:66px;height:92px;margin-right:-16px;overflow:hidden;border:2px solid #f4ddb1;border-radius:7px;background-color:#efe0b9;background-size:cover;background-position:center;box-shadow:0 3px 7px #0009;transform:rotate(-1deg);transition:transform .16s,filter .16s;cursor:default}.ll-card:last-child{margin-right:0}.ll-card.selectable{cursor:pointer}.ll-card.selectable:hover,.ll-card.selected{z-index:3;transform:translateY(-18px) rotate(0);filter:brightness(1.13);border-color:#ffe78b}.ll-card.selected{box-shadow:0 0 0 2px #ffbc43,0 5px 14px #000b}.ll-card:disabled{opacity:.92}.ll-card-corner{position:absolute;top:2px;left:3px;display:flex;flex-direction:column;padding:2px;border-radius:3px;background:#fff6e4d9;color:#2a221c;font:800 10px serif;text-shadow:0 1px #fff}.ll-card-corner i{font-style:normal;font-size:10px}.ll-card-corner.heart,.ll-card-corner.diamond{color:#b62024}.ll-middle{display:flex;justify-content:center;gap:14px;margin:5px;font-size:10px;color:#d8c49a}.ll-middle span{padding:2px 7px;border:1px solid #efd58b5c;border-radius:20px;background:#0d1710a8}.ll-control{width:min(850px,100%);margin:5px auto 0;padding:9px 12px;border:1px solid #e8bd60a6;border-radius:13px;background:linear-gradient(145deg,#452215e8,#1c130de6);text-align:center;box-shadow:0 5px 14px #0004}.ll-control h3{margin:0;color:#ffe29b;font:900 17px serif}.ll-control p{margin:2px 0 8px;color:#f5e3bd;font-size:12px}.ll-control.urgent{border-color:#ff6f57;background:linear-gradient(145deg,#602018e8,#28110ee8);animation:ll-urgent 1s ease-in-out infinite alternate}.ll-control.waiting{padding:12px}.ll-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.ll-actions button{min-height:34px;padding:7px 12px}.ll-actions button:disabled{opacity:.42;filter:grayscale(1);cursor:not-allowed}.ll-log{position:absolute;z-index:2;left:12px;bottom:12px;width:220px;max-height:103px;overflow:auto;padding:5px 8px;border-left:2px solid #e2b75c;background:#10160ebd;color:#e8d8b9;font-size:10px;line-height:1.36}.ll-log p{margin:0 0 3px}.ll-select{width:min(850px,100%);margin:10px auto;padding:12px;border:1px solid #e8bb60;border-radius:14px;background:#28170fe8;text-align:center}.ll-select h3{margin:0;color:#ffe29b;font:900 20px serif}.ll-select p{margin:4px 0 10px;font-size:12px;color:#f5e1ba}.ll-general-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.ll-general{position:relative;min-height:180px;overflow:hidden;border:1px solid #d8a853;border-radius:8px;background:#362012 center/cover no-repeat;color:#fff3c7;text-align:left;cursor:pointer;box-shadow:0 3px 7px #000a}.ll-general::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#140a06f2,transparent 68%)}.ll-general>*{position:relative;z-index:1;display:block}.ll-general b{padding:70px 6px 0;font:900 17px serif;text-shadow:0 1px 2px #000}.ll-general small{padding:1px 6px;color:#ffdf89;font-size:10px}.ll-general em{padding:2px 6px;color:#ffedb2;font:800 12px serif;font-style:normal}.ll-general span{padding:2px 6px 6px;color:#f3e0bc;font-size:9px;line-height:1.2}.ll-general:hover{border-color:#ffe88f;transform:translateY(-3px)}.ll-lobby-title{margin:70px auto 25px;max-width:500px;text-align:center;text-shadow:0 2px 4px #000}.ll-lobby-title span{color:#f8c86b;font:900 18px serif;letter-spacing:.6em}.ll-lobby-title h2{margin:0;color:#fff0ba;font:900 52px/1.1 serif;letter-spacing:.2em}.ll-lobby-title p{margin:9px;color:#e9d4aa;font-size:14px}.ll-start,.ll-outcome{width:min(540px,calc(100% - 20px));margin:0 auto;padding:20px;border:1px solid #e6bb61;border-radius:16px;background:#20140dde;text-align:center;box-shadow:0 8px 24px #0007}.ll-start>b{display:block;color:#ffe183;font:900 40px/1 Georgia,serif}.ll-start div>b{display:block;color:#ffe183;font:900 40px/1 Georgia,serif}.ll-start div small{display:block;margin:4px;color:#e8d6b3;font-size:12px}.ll-start p,.ll-start>small{display:block;margin:12px 0;color:#f2dfb8;font-size:12px;line-height:1.45}.ll-outcome{margin-top:80px}.ll-outcome b,.ll-outcome span,.ll-outcome strong,.ll-outcome small{display:block}.ll-outcome b{font:900 30px serif;letter-spacing:.13em}.ll-outcome.win b,.ll-outcome.win strong{color:#ffe079}.ll-outcome.lose b,.ll-outcome.lose strong{color:#ff9b86}.ll-outcome span{margin:5px;color:#ead9b8}.ll-outcome strong{font:900 28px Georgia,serif}.ll-outcome small{margin:7px;color:#d9c5a2;font-size:11px}.ll-outcome .ll-actions{margin-top:14px}@keyframes ll-urgent{from{box-shadow:0 0 0 #ff806600}to{box-shadow:0 0 19px #ff806688}}
@media(min-width:701px){.ll-shell.table{height:min(760px,calc(100vh - 20px))}.ll-shell.table .ll-control{position:absolute;right:13px;bottom:12px;width:calc(100% - 260px)}.ll-shell.table .ll-select{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);width:min(850px,calc(100% - 34px))}.ll-shell.table .ll-outcome{position:absolute;z-index:4;top:100px;left:50%;transform:translateX(-50%);margin:0}}
@media(max-width:700px){.landlord-overlay{padding:0}.landlord-stage{min-height:100%;width:100%}.ll-shell{min-height:100vh;border-radius:0;padding:11px 9px 15px}.ll-head{padding-right:38px}.ll-head b{font-size:16px}.ll-head span{font-size:10px;text-align:right}.ll-foes{gap:6px;margin-top:7px}.ll-seat.foe{grid-template-columns:50px minmax(0,1fr);min-height:93px;padding:5px}.ll-avatar img{width:42px;height:42px}.ll-avatar b{font-size:11px}.ll-seat-info{gap:1px 4px}.ll-seat-info strong{font-size:11px}.ll-hp{font-size:11px}.ll-seat.mine{grid-template-columns:56px minmax(0,1fr);min-height:150px;padding:5px}.ll-seat.mine .ll-avatar img{width:47px;height:47px}.ll-seat.mine .ll-seat-info{max-height:50px}.ll-hand.own{min-height:91px}.ll-card{flex-basis:58px;width:58px;height:82px;margin-right:-17px}.ll-card.selectable:hover,.ll-card.selected{transform:translateY(-11px)}.ll-message{font-size:11px}.ll-log{position:relative;left:auto;bottom:auto;width:auto;max-height:72px;margin:7px 2px 0}.ll-control{margin-top:7px}.ll-actions button{min-height:32px;padding:6px 8px;font-size:12px}.ll-general-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ll-general{min-height:155px}.ll-general b{padding-top:53px;font-size:15px}.ll-lobby-title{margin-top:110px}.ll-lobby-title h2{font-size:43px}.ll-outcome{margin-top:70px}.ll-back{flex-basis:18px;width:18px;height:29px;margin-left:-10px}}

/* 斗地主牌桌：固定横屏比例，避免桌面端随容器横向拉伸。 */
.landlord-stage{width:min(1280px,calc(100vw - 28px));min-height:0;aspect-ratio:16/9}.ll-shell.table{box-sizing:border-box;width:100%;height:100%;min-height:0;padding:0;border-radius:18px;background-color:#17271e;background-size:cover}.ll-shell.table::before{background:linear-gradient(180deg,rgba(3,8,7,.16),rgba(5,10,8,.72))}.ll-shell.table .ll-head{position:absolute;z-index:5;left:18px;right:18px;top:10px;padding:0 42px 8px 2px}.ll-shell.table .ll-head b{font-size:clamp(14px,1.55vw,22px)}.ll-shell.table .ll-head span{font-size:clamp(9px,1vw,13px)}.ll-top-seats{position:absolute;z-index:3;top:10%;left:50%;display:flex;gap:clamp(18px,3vw,48px);transform:translateX(-50%)}.ll-shell.table .ll-seat{box-sizing:border-box}.ll-shell.table .ll-seat.foe,.ll-shell.table .ll-seat.mine{display:block;width:clamp(122px,12.2vw,180px);min-height:0;height:clamp(185px,19vw,276px);margin:0;padding:0;overflow:visible;border:2px solid #c99d4a;border-radius:8px;background:#12170de6;cursor:default}.ll-shell.table .ll-seat.foe[data-landlord-target]{cursor:pointer}.ll-seat .ll-general-art{position:absolute;inset:4px 4px 34px;border-radius:5px;background:#332114 center top/cover no-repeat}.ll-seat .ll-general-art::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,7,4,.78),transparent 38%)}.ll-seat-title{position:absolute;z-index:2;left:5px;right:5px;bottom:17px;display:flex;align-items:end;justify-content:space-between;gap:3px;color:#fff0c5;text-shadow:0 1px 2px #000}.ll-seat-title b{font:900 clamp(13px,1.3vw,19px) serif}.ll-seat-title small{font-size:clamp(8px,.75vw,11px);white-space:nowrap;color:#f7d88d}.ll-seat-info{position:absolute;z-index:2;left:6px;right:5px;bottom:2px;display:flex;justify-content:space-between;align-items:center;padding:0!important}.ll-seat-info em{color:#ecdfbd;font-size:clamp(8px,.78vw,11px)}.ll-seat .ll-hp{width:auto;color:#ff6d68;font-size:clamp(12px,1.25vw,18px)}.ll-seat .ll-hp i{font-size:clamp(8px,.72vw,11px)}.ll-equip-overlay{position:absolute;z-index:4;top:3px;left:3px;right:3px;min-height:0}.ll-equip-overlay .ll-zones{width:auto;gap:2px}.ll-equip-overlay .ll-equip{width:clamp(17px,1.8vw,25px);height:clamp(24px,2.5vw,36px)}.ll-equip-overlay .ll-judge{font-size:clamp(7px,.68vw,10px)}.ll-shell.table .ll-hand.hidden{z-index:4;right:-9px;bottom:5px;max-width:43%;padding:2px}.ll-shell.table .ll-back{flex-basis:clamp(15px,1.5vw,23px);width:clamp(15px,1.5vw,23px);height:clamp(25px,2.5vw,38px)}.ll-shell.table .ll-seat.mine{z-index:4;right:clamp(16px,3vw,42px);bottom:clamp(96px,11vw,158px);position:absolute;border-color:#e8c663;box-shadow:0 0 16px #f0bd4655}.ll-shell.table .ll-seat.turn{box-shadow:0 0 0 3px #ffe477aa,0 0 28px #f0bd4688}.ll-shell.table .ll-seat.targeted{border-color:#ff725d;box-shadow:0 0 0 3px #ff725daa,0 0 25px #ff725d99}.ll-skill-panel{position:absolute;z-index:6;top:18%;right:calc(100% + 8px);display:flex;flex-direction:column;gap:5px;min-width:64px}.ll-skill-panel button,.ll-skill-panel span{padding:5px 7px;border:1px solid #e4bd5d;border-radius:4px;background:#2a170fd9;color:#ffe9af;font:800 clamp(9px,.9vw,13px) serif;white-space:nowrap;box-shadow:0 2px 3px #0008}.ll-skill-panel button:disabled{opacity:.45}.ll-center-stage{position:absolute;z-index:2;left:22%;right:23%;top:35%;bottom:29%;display:grid;place-items:center}.ll-shell.table .ll-message{position:absolute;top:4px;left:50%;width:min(520px,90%);transform:translateX(-50%);margin:0;padding:5px 14px;font-size:clamp(9px,.95vw,13px)}.ll-pile{position:absolute;bottom:3px;display:flex;gap:8px;font-size:clamp(8px,.8vw,11px)}.ll-pile span{padding:3px 7px;border:1px solid #f0cb7a77;border-radius:12px;background:#10160fcb}.ll-bottom-hand{position:absolute;z-index:6;bottom:clamp(8px,1.5vw,20px);left:50%;display:flex;align-items:flex-end;max-width:68%;min-height:clamp(100px,13vw,185px);transform:translateX(-50%);overflow:visible}.ll-bottom-hand .ll-card{flex:0 0 clamp(67px,7.2vw,104px);width:clamp(67px,7.2vw,104px);height:clamp(94px,10vw,145px);margin-right:clamp(-31px,-2.2vw,-15px);transform-origin:bottom center}.ll-bottom-hand .ll-card:nth-child(2n){transform:rotate(.6deg)}.ll-bottom-hand .ll-card.selectable:hover,.ll-bottom-hand .ll-card.selected{transform:translateY(clamp(-25px,-2vw,-14px)) rotate(0)}.ll-shell.table .ll-control{position:absolute;z-index:8;right:clamp(16px,3vw,42px);bottom:clamp(8px,1.4vw,17px);width:clamp(190px,22vw,310px);margin:0;padding:7px 10px;border-radius:10px;background:linear-gradient(145deg,#541b13ef,#210e0be9)}.ll-shell.table .ll-control h3{font-size:clamp(12px,1.2vw,17px)}.ll-shell.table .ll-control p{font-size:clamp(8px,.75vw,11px)}.ll-shell.table .ll-actions{gap:4px}.ll-shell.table .ll-actions button{min-height:0;padding:5px 8px;font-size:clamp(9px,.8vw,12px)}.ll-shell.table .ll-log{z-index:7;left:clamp(9px,1.3vw,18px);bottom:clamp(8px,1.3vw,17px);width:clamp(125px,14vw,205px);max-height:clamp(64px,8vw,110px);font-size:clamp(7px,.68vw,10px)}.ll-reveal-board,.ll-card-effect{z-index:7;display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 12px;border:1px solid #f1ca71;border-radius:10px;background:#1b160fdc;color:#ffeab0;text-align:center;font:900 clamp(12px,1.25vw,18px) serif;box-shadow:0 4px 20px #0009}.ll-reveal-board>div{display:flex;align-items:end}.ll-reveal-board .ll-card,.ll-card-effect .ll-card{flex:0 0 clamp(62px,6vw,88px);width:clamp(62px,6vw,88px);height:clamp(87px,8.4vw,126px);margin:0 2px}.ll-reveal-board .ll-card.reveal{cursor:pointer}.ll-reveal-board small{font:normal clamp(8px,.75vw,11px) system-ui;color:#ead9ae}.ll-card-effect{animation:ll-card-pop 1.1s ease both}.ll-card-effect span{color:#ffe077;text-shadow:0 1px 2px #000}@keyframes ll-card-pop{0%{opacity:0;transform:translateY(38px) scale(.7)}22%{opacity:1;transform:translateY(-6px) scale(1.08)}72%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-24px) scale(.94)}}.ll-rotate-note{display:none}
@media(max-width:700px) and (orientation:landscape){.landlord-overlay{padding:0}.landlord-stage{width:100vw;height:100vh;min-height:0;aspect-ratio:auto}.ll-shell.table{border-radius:0}.ll-shell.table .ll-seat.foe,.ll-shell.table .ll-seat.mine{width:18vw;height:28vw}.ll-top-seats{top:8%}.ll-center-stage{left:20%;right:23%;top:33%;bottom:29%}.ll-shell.table .ll-seat.mine{bottom:13vw}.ll-bottom-hand{max-width:64%;min-height:17vw}.ll-bottom-hand .ll-card{flex-basis:9.2vw;width:9.2vw;height:13vw}.ll-shell.table .ll-control{width:27vw}.ll-skill-panel{right:calc(100% + 4px)}}
@media(max-width:700px) and (orientation:portrait){.landlord-overlay{padding:0}.landlord-stage{width:100vw;min-height:100vh;aspect-ratio:auto}.ll-shell.table{min-height:100vh;border-radius:0;filter:blur(3px)}.ll-rotate-note{position:fixed;z-index:99;inset:0;display:grid;place-items:center;padding:35px;background:#07110ee8;color:#ffeab5;font:900 22px/1.6 serif;text-align:center;filter:none}.ll-rotate-note::before{content:"↻";display:block;margin:auto;color:#f2c766;font-size:65px}.ll-rotate-note{pointer-events:auto}}

/* 操作区紧贴手牌上方，符合原版“选牌后确认/取消”的视线顺序。 */
.ll-shell.table .ll-control{left:50%;right:auto;bottom:clamp(105px,13.1vw,188px);width:clamp(300px,35vw,500px);transform:translateX(-50%)}

/* 选将页完全脱离牌桌，不显示未选择武将的黑色占位卡与开局手牌。 */
.ll-draft-screen{box-sizing:border-box;width:100%;min-height:100%;height:100%;padding:0;border-radius:18px;background-color:#17271e;background-size:cover}.ll-draft-screen::before{background:linear-gradient(180deg,#06100a66,#0d0907e8)}.ll-draft-screen .ll-head{position:absolute;z-index:3;left:18px;right:18px;top:11px;padding:0 45px 9px 2px}.ll-draft-main{position:absolute;z-index:2;top:50%;left:50%;width:min(900px,88%);transform:translate(-50%,-44%);padding:clamp(18px,3vw,40px);border:1px solid #dcb55e;border-radius:16px;background:linear-gradient(145deg,#26160eea,#100e0ada);text-align:center;box-shadow:0 10px 34px #000a}.ll-draft-main h2{margin:0;color:#ffe5a0;font:900 clamp(24px,3vw,40px) serif;letter-spacing:.12em}.ll-draft-main p{margin:7px 0 18px;color:#f3dfb9;font-size:clamp(11px,1.2vw,15px)}.ll-draft-main .ll-general-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,1vw,14px)}.ll-draft-main .ll-general{min-height:clamp(190px,24vw,285px)}.ll-draft-seal{display:inline-block;margin-bottom:7px;padding:3px 14px;border:1px solid #edc96f;border-radius:20px;background:#721f16;color:#ffe8a4;font:900 clamp(12px,1.2vw,17px) serif;letter-spacing:.25em}@media(max-width:700px) and (orientation:landscape){.ll-draft-screen{border-radius:0}.ll-draft-main{width:82%;padding:14px;transform:translate(-50%,-43%)}.ll-draft-main h2{font-size:22px}.ll-draft-main p{margin:4px 0 9px;font-size:10px}.ll-draft-main .ll-general{min-height:145px}.ll-draft-main .ll-general b{padding-top:45px}.ll-draft-main .ll-general-grid{gap:6px}}

/* 正式牌桌压缩人物卡，腾出中央展示与交互空间。 */
.ll-shell.table .ll-seat.foe{width:clamp(96px,9.2vw,132px);height:clamp(145px,14vw,198px)}.ll-shell.table .ll-seat.mine{width:clamp(112px,10.8vw,150px);height:clamp(170px,16.5vw,232px);bottom:clamp(98px,11vw,150px)}.ll-top-seats{top:9%;gap:clamp(42px,5vw,78px)}.ll-center-stage{left:15%;right:15%;top:22%;bottom:30%}.ll-seat .ll-general-art{inset:3px 3px 30px}.ll-seat-title b{font-size:clamp(11px,1.05vw,16px)}.ll-seat-title small{font-size:clamp(7px,.62vw,9px)}.ll-equip-overlay .ll-equip{width:clamp(14px,1.35vw,20px);height:clamp(20px,2vw,29px)}.ll-steal-board>div{display:flex;align-items:flex-end;justify-content:center;gap:4px}.ll-steal-back{width:clamp(52px,5.4vw,78px);height:clamp(76px,7.6vw,110px);border:2px solid #d9ae5b;border-radius:6px;background:#361914 url('/sanguosha/sanguosha-battle/image/system/card-back.png') center/cover;color:#ffe9b8;font:800 11px serif;text-shadow:0 1px #000;cursor:pointer}.ll-steal-back.selected{transform:translateY(-12px);border-color:#ffe875;box-shadow:0 0 0 2px #f6c550}

/* 正式对局布局：沿用原版的“左下装备、底部手牌、右下武将、中央交互”信息层级。 */
.ll-shell.table .ll-seat.mine{bottom:clamp(12px,1.8vw,26px)}
.ll-shell.table .ll-seat.mine .ll-equip-overlay{display:none}
.ll-own-equips{position:absolute;z-index:7;left:clamp(8px,1.2vw,18px);bottom:clamp(8px,1.2vw,18px);width:clamp(130px,11vw,164px);display:flex;flex-direction:column;gap:3px;padding:4px;border:1px solid #a57332;border-radius:5px;background:linear-gradient(90deg,#160c09e8,#3b2114d9);box-shadow:0 3px 10px #000a}
.ll-equip-row{box-sizing:border-box;display:grid;grid-template-columns:26px 31px minmax(0,1fr);align-items:center;min-height:27px;border:1px solid #6d4a2c;background:linear-gradient(90deg,#2c1a12d9,#110d0ad4);color:#8d7c64;font:700 clamp(8px,.7vw,10px) serif;line-height:1;overflow:hidden}
.ll-equip-row b{display:grid;align-self:stretch;place-items:center;padding:0 2px;border-right:1px solid #715135;background:#29170fd9;color:#d2b575;font-size:clamp(7px,.6vw,9px);white-space:nowrap}
.ll-equip-row i{grid-column:2/-1;padding-left:5px;font-style:normal;color:#66594d;font-size:clamp(7px,.62vw,9px)}
.ll-equip-row img{width:31px;height:25px;object-fit:contain;background:#17100c}
.ll-equip-row span{overflow:hidden;padding:0 3px;color:#f2dfaf;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px #000}
.ll-equip-row.on{border-color:#cda34e;box-shadow:inset 0 0 7px #e4b64b3d}
.ll-equip-row.judge{border-color:#945447;background:linear-gradient(90deg,#3b1917e8,#1b0d0cd8)}
.ll-equip-row.judge b{background:#4b211d;color:#ffc29e}
.ll-bean-shop{margin:10px auto;padding:8px 10px;border:1px solid #d6ad57;border-radius:10px;background:#130d0bbd;color:#f6dfad}.ll-bean-shop>b,.ll-bean-shop small{display:block}.ll-bean-shop>b{font:900 14px serif;color:#ffe080}.ll-bean-shop small{margin:2px 0 6px;color:#ddc9a7;font-size:11px}.ll-bean-shop div{display:flex;justify-content:center;gap:6px}.ll-bean-shop input{width:104px;padding:5px 7px;border:1px solid #d8ac57;border-radius:5px;background:#fff3d8;color:#4c2415;text-align:center;font:700 13px system-ui}.ll-bean-shop button{min-height:0;padding:5px 12px}
.ll-bottom-hand{left:clamp(150px,13.2vw,205px);max-width:calc(100% - clamp(300px,28vw,400px));transform:none}
.ll-shell.table .ll-control{bottom:clamp(128px,14vw,202px)}
.ll-shell.table .ll-log{z-index:5;left:clamp(150px,13.2vw,205px);bottom:clamp(8px,1.2vw,18px);width:clamp(125px,14vw,190px);opacity:.72;pointer-events:none}
.ll-center-stage{left:18%;right:18%;top:24%;bottom:31%}
.ll-shell.table .ll-message{top:2px;background:#090c08c9;border-color:#be975258}
.ll-shell.table .ll-seat.foe .ll-hand.hidden{right:-8px;bottom:4px}
.ll-shell.table .ll-seat.mine .ll-hand.hidden{right:-6px;bottom:4px;max-width:48%}

@media(max-width:700px) and (orientation:landscape){
  .ll-own-equips{left:5px;bottom:5px;width:122px;gap:2px;padding:3px}
  .ll-equip-row{grid-template-columns:23px 27px minmax(0,1fr);min-height:23px}
  .ll-equip-row img{width:27px;height:21px}.ll-equip-row i{font-size:7px}
  .ll-bottom-hand{left:138px;max-width:calc(100% - 258px);bottom:5px;min-height:14vw}
  .ll-shell.table .ll-seat.mine{right:10px;bottom:6px;width:16vw;height:24vw}
  .ll-shell.table .ll-control{bottom:15vw;width:min(48vw,370px)}
  .ll-shell.table .ll-log{left:138px;bottom:4px;width:112px;max-height:48px;font-size:7px}
  .ll-center-stage{left:19%;right:20%;top:24%;bottom:30%}
}

/* 斗地主信息层级：体力在武将卡上方，敌方手牌数在卡下方；对局日志留在左上空区。 */
body.landlord-open .toast{z-index:110;top:64px;bottom:auto}
.ll-seat-info{display:none!important}
.ll-seat-hp{position:absolute;z-index:7;top:clamp(-23px,-1.55vw,-14px);left:50%;width:max-content;transform:translateX(-50%);padding:1px 5px;border:1px solid #7d3d30;border-radius:10px;background:#160b09e8;white-space:nowrap;line-height:1}
.ll-seat .ll-seat-hp .ll-hp{width:auto;color:#ff746d;font-size:clamp(12px,1.15vw,17px);letter-spacing:0;text-shadow:0 1px #4a0808}.ll-seat .ll-seat-hp .ll-hp i{margin-left:4px;color:#ffdfcf;font:clamp(8px,.68vw,10px) system-ui}
.ll-seat-title{bottom:3px}.ll-seat .ll-general-art{bottom:27px}
.ll-seat-hand-count{position:absolute;z-index:6;left:4px;bottom:clamp(-21px,-1.65vw,-15px);padding:1px 3px;border-radius:3px;background:#100b09e8;color:#ffe2a3;font:800 clamp(8px,.75vw,11px) serif;white-space:nowrap}
.ll-seat.mine .ll-seat-hand-count{display:none}
.ll-shell.table .ll-seat.foe .ll-hand.hidden{right:2px;bottom:clamp(-22px,-1.7vw,-16px);max-width:52%}
.ll-shell.table .ll-seat.mine .ll-hand.hidden{bottom:4px}

/* 官方素材本身是横向装备条（140×19）；完整展示，避免被压成一条线。 */
.ll-equip-row{grid-template-columns:26px minmax(0,1fr);min-height:25px}.ll-equip-row img{grid-column:2;width:100%;height:18px;object-fit:fill;background:transparent}.ll-equip-row span{display:none}.ll-equip-row i{grid-column:2;padding-left:5px}.ll-equip-row.judge img{display:none}.ll-equip-row.judge span{display:block;grid-column:2;padding:0 5px;font-size:9px}

.ll-shell.table .ll-message{z-index:8;top:clamp(53px,8.4vw,108px);left:clamp(10px,1.4vw,20px);width:clamp(155px,17vw,235px);transform:none;margin:0;padding:6px 8px;border-radius:8px;background:#10150fdf;border-color:#c79c4e8a;text-align:left;font-size:clamp(8px,.76vw,11px)}
.ll-shell.table .ll-log{z-index:7;left:clamp(10px,1.4vw,20px);top:clamp(91px,13.1vw,168px);bottom:auto;width:clamp(155px,17vw,235px);max-height:clamp(72px,9vw,118px);padding:6px 8px;opacity:.88;background:#10160ed9;font-size:clamp(8px,.7vw,10px)}
.ll-center-stage{z-index:4;left:20%;right:20%;top:32%;bottom:34%}
.ll-reveal-board,.ll-card-effect{max-width:100%}.ll-steal-board{min-width:min(420px,100%)}.ll-steal-result{animation:none}.ll-table-card{display:flex;flex-direction:column;align-items:center;gap:1px}.ll-table-card small{color:#e6cc94;font:700 clamp(7px,.65vw,10px) system-ui;white-space:nowrap}.table-cards>div{gap:4px}

@media(max-width:700px) and (orientation:landscape){
  body.landlord-open .toast{top:42px;font-size:11px;padding:6px 10px}
  .ll-seat-hp{top:-16px}.ll-seat-hand-count{bottom:-16px;font-size:7px}.ll-shell.table .ll-seat.foe .ll-hand.hidden{bottom:-16px}
  .ll-shell.table .ll-message{top:42px;left:5px;width:120px;padding:4px 5px;font-size:7px}
  .ll-shell.table .ll-log{left:5px;top:76px;width:122px;max-height:45px;font-size:7px}
  .ll-center-stage{left:20%;right:20%;top:31%;bottom:33%}
  .ll-steal-board{min-width:0}.ll-reveal-board{padding:5px 7px}
}
