:root {
  --tile-scale: 1;
  --felt: #0d5c3a;
  --felt-dark: #08422a;
  --wood: #5a3218;
  --wood-dark: #3a1e0c;
  --ivory: #f6edd4;
  --ivory-edge: #d9c89a;
  --ink: #1a1208;
  --red: #c41e3a;
  --green: #1f7a3a;
  --gold: #d4af37;
  --gold-2: #f3e0a6;
  --seat-h: 118px;
}
.remember { display: flex; align-items: center; gap: 6px; color: #cbb58a; font-size: 13px; width: 100%; justify-content: flex-start; margin: 0; }
.remember input { width: 16px !important; height: 16px; margin: 0; flex: 0 0 16px; }
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
  background: radial-gradient(ellipse at center, #16120a 0%, #050505 68%);
  color: var(--ivory);
  overflow: hidden;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

#app { height: 100%; width: 100%; position: relative; }

/* ===== 开场 ===== */
.screen {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.hidden { display: none !important; }

.splash {
  flex-direction: column;
  gap: 18px;
  text-align: center;
  overflow: auto;
  align-items: center;
  justify-content: flex-start;
  padding: 72px 16px 28px;
  background:
    radial-gradient(circle at 50% 28%, rgba(212,175,55,.16), transparent 46%),
    linear-gradient(180deg, #0c0c0c 0%, #050505 100%);
}
.site-logo {
  width: min(168px, 42vw);
  height: auto;
  display: block;
  margin: 0 auto 4px;
  border-radius: 50%;
  background: #050505;
}
.brand {
  font-family: "Ma Shan Zheng", "Noto Serif SC", serif;
  font-size: clamp(56px, 12vw, 96px);
  letter-spacing: .18em;
  color: var(--gold-2);
  text-shadow: 0 4px 0 #6a4a14, 0 10px 30px rgba(0,0,0,.6);
}
.brand small {
  display: block;
  font-family: "Noto Serif SC", serif;
  font-size: 16px;
  letter-spacing: .45em;
  margin-top: 6px;
  color: #d4b56a;
  font-weight: 400;
}
.tagline { color: #cbb58a; letter-spacing: .28em; font-size: 13px; }
.menu { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; min-width: 260px; }
.btn {
  appearance: none; border: 1px solid var(--gold);
  background: linear-gradient(180deg, #2a2410, #0a0a0a);
  color: var(--gold-2);
  font-family: inherit;
  font-size: 18px;
  padding: 12px 22px;
  border-radius: 8px;
  cursor: pointer;
  letter-spacing: .2em;
  box-shadow: 0 4px 0 #3a2e10, 0 8px 18px rgba(0,0,0,.45);
}
.btn:hover { filter: brightness(1.08); }
.btn:active { transform: translateY(2px); box-shadow: 0 2px 0 #2a1608; }
.btn.ghost {
  background: transparent;
  color: #e6d3a0;
  box-shadow: none;
}
.hint { font-size: 12px; color: #9a8660; max-width: 360px; line-height: 1.6; }
.user-bar {
  position: absolute; top: 16px; right: 18px;
  display: flex; align-items: center; gap: 10px;
  color: var(--gold-2); font-size: 13px;
}
.auth-box { width: min(320px, 86vw); display: flex; flex-direction: column; gap: 10px; position: relative; z-index: 5; }
.auth-tabs { display: flex; gap: 8px; }
.auth-tab {
  flex: 1; border: 1px solid #3a3a3a; background: #111;
  color: #888; padding: 8px; border-radius: 6px; cursor: pointer;
  font-family: inherit; letter-spacing: .2em;
}
.auth-tab.on { border-color: var(--gold); color: var(--gold-2); background: #1a1608; }
.auth-box input, #online-box input {
  padding: 10px 12px; border-radius: 6px;
  border: 1px solid #3a3220; background: #0a0a0a; color: var(--gold-2);
  font-family: inherit; font-size: 16px;
}
@media (max-height: 560px), (orientation: landscape) and (max-height: 500px) {
  .splash { padding: 8px 12px 12px; gap: 8px; justify-content: flex-start; overflow-y: auto; }
  .brand { font-size: 34px; letter-spacing: .12em; }
  .brand small { font-size: 12px; margin-top: 0; }
  .auth-box { gap: 6px; }
  .auth-box input, .btn { padding: 8px 12px; font-size: 16px; }
}

/* ===== 牌桌 ===== */
.table-stage {
  position: absolute;
  inset: 42px 8px 8px;
}
.mid-row { display: contents; }
.square-table {
  position: absolute;
  left: 50%;
  top: var(--table-y, 46%);
  width: var(--table-size, 520px);
  height: var(--table-size, 520px);
  transform: translate(-50%, -50%);
  border-radius: 16px;
  background:
    radial-gradient(circle at 50% 46%, #18924f 0%, var(--felt) 58%, var(--felt-dark) 100%);
  box-shadow:
    inset 0 0 50px rgba(0,0,0,.32),
    0 0 0 10px #111,
    0 0 0 14px var(--gold);
}
.pile {
  position: absolute;
  width: 64%;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 4;
}
.pile.south { left: 50%; bottom: 2px; transform: translateX(-50%); }
.pile.east { left: auto; right: 128px; top: 50%; width: 34%; transform: translateY(-50%) rotate(-90deg); transform-origin: right center; }
.pile.north { left: 50%; top: 2px; transform: translateX(-50%) rotate(180deg); }
.pile.west { left: 128px; top: 50%; width: 34%; transform: translateY(-50%) rotate(90deg); transform-origin: left center; }
.pile.south .disc-row, .pile.north .disc-row {
  position: absolute;
  left: 50%;
  width: min(68%, 460px);
  transform: translateX(-50%);
}
.pile.south .disc-row { bottom: 128px; }
.pile.north .disc-row { top: 128px; }
.pile-gap { height: 36px; width: 100%; flex: 0 0 36px; }
.seat-col {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  z-index: 6;
}
.square-table { overflow: visible; }
.seat-col.south {
  position: absolute;
  left: 50%;
  right: auto;
  top: calc(100% + 16px);
  bottom: auto;
  transform: translateX(-50%);
  z-index: 12;
  margin: 0;
}
.hand-row {
  display: flex; gap: 4px; align-items: flex-end; justify-content: center;
  min-height: 78px;
  min-width: 0;
  max-width: 96vw;
  overflow: visible;
}
#my-hand, #my-hand .tile { visibility: visible; }
.seat-col.east {
  width: 400px; height: 72px;
  left: calc(100% - 149px); top: 50%; right: auto;
  transform: translateY(-50%) rotate(-90deg);
  margin: 0;
}
.seat-col.west {
  width: 400px; height: 72px;
  left: auto; right: calc(100% - 149px); top: 50%;
  transform: translateY(-50%) rotate(90deg);
  z-index: 7; margin: 0;
}
.seat-col.north { left: 50%; top: auto; bottom: calc(100% + 15px); transform: translateX(-50%) rotate(180deg); z-index: 7; margin: 0; }
.seat-col.south .south-play, .seat-col.north .opp-hand { margin: 0; }
.melds-mini, .table-melds { flex-wrap: nowrap; align-items: flex-end; }
.seat-col .tile, .seat-col .seat-meta { transform: none; }
.opp-hand .tile { --w: 26px; --h: 36px; }
.pile-gap { height: 18px; width: 100%; }
.pile .disc-row { position: absolute; }
.seat-col { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 0; }
.seat-col .opp-hand, .hand-row { display: flex; gap: 2px; justify-content: flex-start; }
.hand-row { min-width: 0; max-width: 96vw; }
.opp-hand { min-width: 380px; min-height: 36px; }
.table-melds, .flowers-row, .melds-mini, .disc-row {
  display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; position: static; transform: none; max-width: 100%;
}
.disc-s, .table-melds { position: static; left: auto; bottom: auto; }
.pile .disc-row { position: absolute !important; }
.seat-meta {
  display: flex; align-items: center; gap: 8px;
  font-size: 18px; color: #f6e7b8;
  font-weight: 700;
  justify-content: center;
  white-space: nowrap;
}
.table-melds, .flowers-row, .melds-mini, .disc-row {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 100%;
}
.disc-row { overflow: visible; }
.avatar {
  width: 36px; height: 36px; border-radius: 50%;
  border: 2px solid #d4af37; object-fit: cover;
  background: #1a1408; flex: 0 0 auto;
}
.chip {
  background: #d7eefc;
  color: #1a3a5c;
  border: 1px solid #8ec4ea;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 18px;
  min-width: 52px;
  text-align: center;
  text-shadow: none;
  box-shadow: none;
}
.turn { outline: none; }
.seat-col.turn { position: absolute; }
.chip-up { background: #b6f5c4; color: #0d4a22; border-color: #3ecf6e; box-shadow: 0 0 8px rgba(62,207,110,.7); }
.chip-down { background: #ffc9c9; color: #8a1020; border-color: #e04545; box-shadow: 0 0 8px rgba(224,69,69,.7); }
.seat-col.turn .outer-pack {
  outline: none;
  position: relative;
}
@property --turn-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.seat-col.turn .outer-pack::after {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 12px;
  padding: 4px;
  background: conic-gradient(from var(--turn-angle), #ff3b3b, #ff9a1f, #ffe14a, #3dff7a, #3ecbff, #7a5cff, #ff4fa3, #ff3b3b);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: rainbow-ccw 2.2s linear infinite;
  pointer-events: none;
  z-index: 8;
}
@keyframes rainbow-ccw { to { --turn-angle: -360deg; } }
@keyframes turn-pulse {
  from { box-shadow: 0 0 8px #ffe14a; }
  to { box-shadow: 0 0 22px #fff, 0 0 8px #ffe14a; }
}
.seat-col.south.turn::before {
  top: -1px;
  right: -12px;
  bottom: -8px;
  left: -12px;
}
.turn .seat-meta { color: #fff4c8; }
.dealer-mark {
  color: #ffd978; font-size: 16px; border: 1px solid #ffd978;
  padding: 1px 7px; border-radius: 4px;
}
.turn-rose {
  position: absolute; left: 50%; top: 54%;
  width: 132px; height: 132px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid rgba(212,175,55,.7);
  background: rgba(0,0,0,.28);
  z-index: 4;
}
.turn-square {
  position: absolute; inset: 22px;
  border-radius: 4px;
}
.turn-square i {
  position: absolute;
  background: rgba(141, 122, 82, .55);
}
.turn-square i[data-d="north"] { left: 8px; right: 8px; top: 0; height: 6px; }
.turn-square i[data-d="south"] { left: 8px; right: 8px; bottom: 0; height: 6px; }
.turn-square i[data-d="west"] { top: 8px; bottom: 8px; left: 0; width: 6px; }
.turn-square i[data-d="east"] { top: 8px; bottom: 8px; right: 0; width: 6px; }
.turn-square i.on {
  background: #ffe14a;
  box-shadow: 0 0 10px #ffe14a;
  animation: edge-flash .45s steps(2) infinite;
}
@keyframes edge-flash { 50% { background: #fff; box-shadow: 0 0 16px #fff; } }
.dealer-bar {
  position: absolute;
  width: 36px;
  height: 7px;
  border-radius: 8px;
  background: #ff4fa3;
  box-shadow: 0 0 8px #ff4fa3;
}
.dealer-bar::after { content: none; }
.dealer-bar.south { left: 50%; bottom: 10px; margin: 0; transform: translateX(-50%); }
.dealer-bar.north { left: 50%; top: 10px; margin: 0; transform: translateX(-50%); }
.dealer-bar.east { top: 50%; right: 10px; left: auto; width: 7px; height: 36px; margin: 0; transform: translateY(-50%); }
.dealer-bar.west { top: 50%; left: 10px; width: 7px; height: 36px; margin: 0; transform: translateY(-50%); }
.table-melds, .melds-mini, .edge-melds, .exposed-row {
  justify-content: center;
  align-items: center;
  width: max-content;
  max-width: 78%;
  margin-left: auto;
  margin-right: auto;
}
.edge-melds {
  position: absolute;
  z-index: 5;
  display: flex;
  gap: 4px;
  justify-content: center;
  align-items: flex-end;
  width: max-content;
  max-width: 62%;
}
.edge-melds.north { top: 6px; left: 50%; transform: translateX(-50%) rotate(180deg); }
.edge-melds.east { right: 6px; top: 50%; transform: translateY(-50%) rotate(-90deg); }
.edge-melds.west { left: 6px; top: 50%; transform: translateY(-50%) rotate(90deg); }
.pile.north, .pile.east, .pile.west {
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
  pointer-events: none;
}
.pile.north .disc-row, .pile.east .disc-row, .pile.west .disc-row {
  position: absolute !important;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-start;
  margin: 0;
}
.pile.north .disc-row { top: 76px; left: 50%; width: 46%; transform: translateX(-50%) rotate(180deg); }
.pile.east .disc-row { top: 50%; right: 76px; left: auto; width: 34%; transform: translateY(-50%) rotate(-90deg); }
.pile.west .disc-row { top: 50%; left: 76px; width: 34%; transform: translateY(-50%) rotate(90deg); }
.seat-col.winner { z-index: 8; }
.seat-col.winner::after {
  content: "胡";
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  background: #ff4fa3;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  padding: 2px 12px;
  border-radius: 999px;
  box-shadow: 0 0 16px #ff4fa3;
  z-index: 9;
}
.winner-banner {
  position: absolute;
  left: 50%;
  top: 28%;
  transform: translateX(-50%);
  z-index: 6;
  padding: 8px 18px;
  border-radius: 999px;
  background: #5a1030;
  color: #fff;
  border: 2px solid #ff4fa3;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .12em;
  box-shadow: 0 0 18px #ff4fa3;
  animation: last-flash .5s steps(2) infinite;
}
#my-melds, .pile.south .exposed-row {
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 1px !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
}
.edge-melds.north {
  top: 1px !important;
  bottom: auto !important;
  left: 50% !important;
  transform: translateX(-50%) rotate(180deg) !important;
  transform-origin: center center !important;
}
.pile.east .disc-row, .pile.west .disc-row {
  width: 78% !important;
  min-width: 420px !important;
  max-width: none !important;
}
.log-body { max-height: 36vh; overflow-y: scroll; }
.edge-melds.east { right: 1px; top: 50%; transform: translateY(-50%) rotate(-90deg); transform-origin: right center; }
.edge-melds.west { left: 1px; top: 50%; transform: translateY(-50%) rotate(90deg); transform-origin: left center; }
.pile.east .disc-row, .pile.west .disc-row { width: 64% !important; max-width: 64% !important; }
.disc-w, .disc-e { max-width: none; }
.tile.last-discard {
  transform: scale(1.4);
  z-index: 6;
  outline: 3px solid #ffe14a;
  box-shadow: 0 0 12px #ffe14a;
  animation: last-flash .45s steps(2) infinite;
}
@keyframes last-flash { 50% { outline-color: #fff; box-shadow: 0 0 16px #fff; } }
.center-tile-slot {
  position: absolute; left: 50%; top: 16%;
  transform: translate(-50%, 0);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  z-index: 3;
}

.felt-core { position: absolute; inset: 36px; pointer-events: none; }
.south-play { display: flex; align-items: flex-end; gap: 12px; flex-wrap: nowrap; justify-content: center; }
.actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 6px;
  justify-content: flex-end;
  min-width: 0;
  flex: 0 0 auto;
  overflow: visible;
}
.hand-clock {
  flex: 0 0 auto;
  width: 31px;
  height: 31px;
  margin-right: 10px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #f6e2a4;
  background: radial-gradient(circle at 40% 35%, #3a2a12, #120c06 70%);
  border: 1px solid #d4af37;
  box-shadow: inset 0 0 0 2px rgba(246, 226, 164, .25), 0 0 8px rgba(212, 175, 55, .35);
}
.hand-clock.hidden { display: none; }
.avatar-row { display: flex; align-items: center; gap: 12px; margin: 10px 0; }
.disc-s, .table-melds, .disc-n, .disc-w, .disc-e { max-width: 560px; }
.pile.north .disc-row { position: absolute !important; top: 76px; left: 50%; width: 46%; transform: translateX(-50%) rotate(180deg); }
.pile.east .disc-row { position: absolute !important; top: 50%; right: 78px; left: auto; width: 64%; max-width: 64%; transform: translateY(-50%) rotate(-90deg); transform-origin: right center; }
.pile.west .disc-row { position: absolute !important; top: 50%; left: 78px; width: 64%; max-width: 64%; transform: translateY(-50%) rotate(90deg); transform-origin: left center; }
.center-tile-slot .tile { --w: calc(52px * var(--tile-scale)); --h: calc(74px * var(--tile-scale)); }
.wall-count {
  margin-top: 2px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #ff4fa3;
  background: rgba(40, 0, 20, .8);
  padding: 4px 12px;
  border-radius: 8px;
  white-space: nowrap;
  text-shadow: 0 0 8px #ff4fa3;
}
.discard-pads {
  position: absolute; inset: 18px 28px;
  display: grid;
  grid-template-rows: 1fr 1.15fr 1fr;
  grid-template-columns: 1fr 1.5fr 1fr;
  pointer-events: none;
  z-index: 1;
}
.disc-row {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  justify-content: center;
  align-content: center;
}
.disc-n { grid-column: 2; grid-row: 1; align-content: start; }
.disc-s { grid-column: 2; grid-row: 3; align-content: end; }
.disc-w, .disc-e {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  max-width: none;
}
.disc-row { gap: 4px 3px; justify-content: center; align-content: flex-start; row-gap: 8px; }
.tile.tiny, .disc-row .tile { --w: var(--disc-w, 36px); --h: var(--disc-h, 52px); }
.edge-hand { overflow: visible; }
.melds-mini { min-height: 40px; }
.meld { display: flex; gap: 2px; position: relative; }
.meld-arrow {
  position: absolute;
  width: 0; height: 0;
  border: 6px solid transparent;
  z-index: 4;
}
.meld-arrow.chi { --c: #ffe14a; }
.meld-arrow.peng { --c: #3ecf6e; }
.meld-arrow.gang { --c: #4aa3ff; }
.meld-arrow.up { top: -8px; left: 50%; transform: translateX(-50%); border-bottom-color: var(--c); }
.meld-arrow.down { bottom: -8px; left: 50%; transform: translateX(-50%); border-top-color: var(--c); }
.meld-arrow.left { left: -10px; top: 50%; transform: translateY(-50%); border-right-color: var(--c); }
.meld-arrow.right { right: -10px; top: 50%; transform: translateY(-50%); border-left-color: var(--c); }
@media (max-width: 600px) {
  .meld-arrow { border-width: 8px; }
  .meld-arrow.up { top: -10px; }
  .meld-arrow.down { bottom: -10px; }
  .meld-arrow.left { left: -11px; }
  .meld-arrow.right { right: -11px; }
}

/* 手牌区 */
.hand-row {
  display: flex; gap: 4px; align-items: flex-end; justify-content: center;
  min-height: 78px;
  min-width: 0;
  max-width: 96vw;
  overflow: visible;
}
.south-left, .south-bar, .south-play { overflow: visible; }
.melds-row { display: flex; gap: 8px; min-height: 28px; }
.flowers-row { display: flex; gap: 3px; }

/* ===== 牌面 ===== */
.tile {
  --w: calc(52px * var(--tile-scale));
  --h: calc(74px * var(--tile-scale));
  width: var(--w); height: var(--h);
  position: relative;
  border-radius: 4px;
  background: transparent;
  border: 0;
  box-shadow: none;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  flex: 0 0 auto;
  transform: none;
  overflow: hidden;
}
.tile .face {
  width: 100%;
  height: 100%;
  object-fit: fill;
  object-position: center;
  pointer-events: none;
  border-radius: 4px;
  background: transparent;
  filter: none;
  image-rendering: auto;
}
.tile::before, .tile::after { content: none; }
.tile.small { --w: calc(40px * var(--tile-scale)); --h: calc(56px * var(--tile-scale)); }
.ting-flag {
  align-self: center;
  flex: 0 0 auto;
  margin-right: 8px;
  padding: 10px 8px;
  border: 2px solid #ffe08a;
  border-radius: 10px;
  background: #5a220c;
  color: #ffe08a;
  font-size: 22px;
  letter-spacing: .2em;
  writing-mode: vertical-rl;
  box-shadow: 0 0 16px rgba(255, 210, 80, .8);
  animation: ting-pulse 0.8s ease-in-out infinite alternate;
}
@keyframes ting-pulse {
  from { transform: scale(1); box-shadow: 0 0 8px rgba(255, 210, 80, .4); }
  to { transform: scale(1.08); box-shadow: 0 0 22px rgba(255, 210, 80, .95); }
}
.hud-btn.clock-urgent {
  color: #ffe14a;
  border-color: #ffe14a;
  animation: clock-flash 0.5s steps(2) infinite;
}
@keyframes clock-flash {
  50% { color: #fff; background: #8a6a10; }
}
.tile.just-drawn {
  margin-left: 14px;
  overflow: visible;
  outline: 3px solid #ffe14a;
  outline-offset: 0;
  box-shadow: 0 0 0 3px #ffe14a;
  z-index: 3;
}
.tile.just-drawn::after {
  content: "摸";
  position: absolute;
  left: 50%;
  bottom: -18px;
  transform: translateX(-50%);
  background: #ffe14a;
  color: #3a2500;
  font-size: 12px;
  line-height: 16px;
  padding: 0 6px;
  border-radius: 8px;
  z-index: 2;
}
.tile.selected {
  transform: translateY(-14px);
  box-shadow: 0 0 0 3px #f3d36a, 0 8px 14px rgba(0,0,0,.35);
  z-index: 4;
}
.tile.claim-pop {
  transform: translateY(-16px);
  box-shadow: 0 0 0 3px #ffe14a, 0 0 16px #ffe14a;
  z-index: 5;
  animation: claim-pop 0.6s ease-in-out infinite alternate;
}
@keyframes claim-pop {
  from { transform: translateY(-12px); }
  to { transform: translateY(-20px); }
}
.tile.win-tile {
  transform: translateY(-10px);
  box-shadow: 0 0 0 3px #ff4fa3, 0 0 16px #ff4fa3;
  z-index: 5;
}
.act.claim-flash {
  animation: claim-btn 0.55s steps(2) infinite;
}
@keyframes claim-btn {
  50% { filter: brightness(1.45); box-shadow: 0 0 16px #ffe14a; }
}
.tile.win-flash {
  box-shadow:
    inset 0 1px 0 #fff,
    0 0 0 2px #ffef9a,
    4px 3px 0 #8a6428,
    5px 6px 0 #5c3e14,
    7px 10px 14px rgba(0,0,0,.4);
}
.tile.back {
  background: var(--tile-back, #1a1208) center / cover no-repeat;
  border-color: #0d3d24;
  box-shadow: none;
}
.tile.back::after { content: none; }
.tile .face { width: 100%; height: 100%; object-fit: fill; pointer-events: none; background: transparent; filter: none; }
.tai-flash {
  display: inline-block;
  margin: 6px 0 10px;
  padding: 4px 14px;
  border-radius: 999px;
  color: #ff4fa3;
  border: 1px solid #ff4fa3;
  background: rgba(80, 0, 36, .55);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: .2em;
  animation: tai-blink .6s steps(2) infinite;
}
@keyframes tai-blink {
  50% { color: #fff; background: #c2185b; }
}

.actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 6px;
  justify-content: flex-end;
  min-width: 0;
  flex: 0 0 auto;
  overflow: visible;
}
.actions .act.pass { order: 0; }
.actions .act { order: 1; }
.act.seal {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  width: 72px;
  height: 72px;
  max-width: 100%;
  border-radius: 0;
  overflow: visible;
  position: relative;
  flex: 0 0 72px;
}
.act.seal img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0;
  display: block;
  pointer-events: none;
}
.act.seal span { display: none !important; }
.act.seal .chi-name {
  display: block !important;
  position: absolute;
  left: 0; right: 0; bottom: 1px;
  font-size: 10px;
  line-height: 1;
  color: #ffe58a;
  text-shadow: 0 1px 2px #000;
  pointer-events: none;
  text-align: center;
}
.act.seal.claim-flash { animation: claim-btn .7s ease-in-out infinite; }
.act.peng {
  background: linear-gradient(180deg, #7ddea0, #1f8a45);
  color: #06210f;
  border-color: #d9ffe6;
  font-weight: 700;
}
.act.chi {
  background: linear-gradient(180deg, #ffe58a, #e2b000);
  color: #3a2a00;
  border-color: #fff1b0;
  font-weight: 700;
}
.act.pass {
  background: #f4f1ea;
  color: #6d675c;
  border-color: #ddd4c4;
  box-shadow: 0 3px 0 #cfc6b6;
}
.act.hu, .act.discard {
  background: linear-gradient(180deg, #f6e2a4, #b8860b);
  color: #2a1a04;
  border-color: #ffe7a8;
  font-weight: 700;
}
.act.pass { color: #ddd; border-color: #888; background: #1a1a1a; }
.act.next { color: #d8ffe4; border-color: #8fd4a8; }

.side-menu {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.logbox {
  width: min(260px, 34vw);
  max-height: 42vh;
  font-size: 12px;
  line-height: 1.5;
  color: #fff4d2;
  background: rgba(12,8,4,.92);
  border-radius: 8px;
  border: 1px solid #d4af37;
  overflow: hidden;
}
.log-toggle {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: #f6e2a4;
  padding: 6px 8px;
  cursor: pointer;
  font-family: inherit;
}
.log-body { max-height: 34vh; overflow: auto; padding: 0 8px 8px; }
.logbox.collapsed .log-body { display: none; }
.pile.south .disc-row, .pile.north .disc-row { width: min(70%, 420px); }
.pile.east .disc-row, .pile.west .disc-row {
  width: var(--side-span, 70%) !important;
  min-width: 0 !important;
  max-width: var(--side-span, 70%) !important;
  max-height: 150px;
}
.hud-btn {
  background: rgba(20,10,4,.55);
  border: 1px solid #c4a35a;
  color: #f3e0a6;
  border-radius: 6px;
  padding: 4px 10px;
  font-family: inherit;
  cursor: pointer;
}

.logbox {
  position: static;
  margin-top: 28px;
  width: min(260px, 34vw);
  max-height: 42vh;
  font-size: 12px;
  line-height: 1.5;
  color: #fff4d2;
  background: rgba(12,8,4,.92);
  border-radius: 8px;
  border: 1px solid #d4af37;
  overflow: hidden;
}
.log-toggle { display: flex; align-items: center; gap: 6px; }
.fold-icon {
  width: 18px; height: 18px; border-radius: 4px;
  background: #d4af37; color: #1a1208;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800;
}
.log-p0 { color: #d4b3ff !important; }
.log-p1 { color: #8dffb8 !important; }
.log-p2 { color: #8fd4ff !important; }
.log-p3 { color: #ffe58a !important; }
.score-rec { border-top: 1px solid #6a5428; margin-top: 6px; padding-top: 6px; color: #ffe9a8; }

.modal {
  position: absolute; inset: 0;
  background: rgba(5,3,1,.78);
  display: flex; align-items: center; justify-content: center;
  z-index: 20;
}
.panel, #modal-body {
  background: #1a1208;
  border: 1px solid #d4af37;
  border-radius: 12px;
  padding: 22px 24px;
  box-shadow: 0 20px 50px rgba(0,0,0,.65);
  opacity: 1;
}
.settle-card {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #d4af37;
  border-radius: 10px;
  background: #2a1c10;
}
.panel.rules, #modal-body {
  width: min(760px, 94vw);
}
#modal-body h3 { margin: 14px 0 6px; color: var(--gold-2); font-size: 16px; }
#modal-body ul { margin: 0 0 8px 18px; line-height: 1.7; }
#modal-body li { margin: 2px 0; }
.panel { width: min(920px, 94vw); max-height: 88vh; overflow: auto; background: #1a1208; }
.win-spread { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-end; max-width: 100%; }
.win-spread .meld { flex-wrap: wrap; max-width: 100%; }
.win-spread .an-ke { position: relative; padding-top: 0; overflow: visible; display: inline-flex; align-items: flex-end; }
.win-spread .an-stack {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 3;
}
.win-spread .an-stack .tile { box-shadow: 0 1px 4px rgba(0,0,0,.45); }
.panel h2 { color: var(--gold-2); letter-spacing: .2em; margin-bottom: 10px; font-weight: 500; }
.settle-card {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #d4af37;
  border-radius: 10px;
  background: #2a1c10;
}
.settle-card.hu-card {
  margin-top: 8px;
  padding: 8px 12px 6px;
}
.settle-card.hu-card h3 {
  margin: 0 0 4px;
}
.settle-head {
  font-size: 18px;
  font-weight: 600;
  color: var(--gold-2);
  letter-spacing: .06em;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  line-height: 1.3;
  margin: 4px 0 2px;
}
.settle-cult {
  font-size: 14px;
  color: #ffd27a;
  margin: 0 0 8px;
  letter-spacing: .08em;
}
.settle-cult-cross {
  color: #ff4fa3 !important;
  font-weight: 800;
  animation: cross-flash 0.6s steps(2) infinite;
}
.cross-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border: 1px solid #ff4fa3;
  border-radius: 999px;
  background: rgba(255,79,163,.15);
  animation: cross-flash 0.6s steps(2) infinite;
}
@keyframes cross-flash {
  50% { color: #fff; background: #c2185b; }
}
.rank-list { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.rank-row { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-bottom: 1px solid #3a2e10; }
.rank-no { width: 24px; color: #d4af37; font-weight: 700; }
.rank-name { flex: 1; }
.rank-title { color: #ffd27a; }
.rank-pts { color: #8dffb8; font-weight: 700; }
.score-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 2px 0;
  font-size: 14px;
  color: #e6d3a8;
}
.score-line.flower-line .flower-space {
  flex: 1;
  min-width: 16px;
}
.settle-card h3 {
  margin: 0 0 8px;
  color: #f6e2a4;
  letter-spacing: .16em;
  font-size: 14px;
  font-weight: 600;
}
.win-spread { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.panel p, .panel li { color: #e6d3a8; font-size: 14px; line-height: 1.7; }
.pay-chip { color: #3dff7a; font-weight: 800; font-size: 1.15em; text-shadow: 0 0 8px rgba(61, 255, 122, .45); }
.hu-num {
  color: #ff4fa3;
  font-size: 2em;
  font-weight: 800;
  letter-spacing: .04em;
  text-shadow: 0 0 8px rgba(255, 79, 163, .55);
}
.hud-select {
  background: rgba(20,10,4,.7);
  border: 1px solid #c4a35a;
  color: #f3e0a6;
  border-radius: 6px;
  padding: 4px 8px;
  font-family: inherit;
  font-size: 13px;
}
.muted { color: #9a8660; font-size: 12px; }

.lobby-seats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  min-width: min(360px, 92vw);
}
.lobby-seat {
  border: 1px solid #c4a35a;
  border-radius: 10px;
  padding: 12px 10px;
  background: rgba(30,18,8,.55);
  color: #cbb58a;
  letter-spacing: .12em;
  line-height: 1.5;
}
.lobby-seat.filled { color: var(--gold-2); background: rgba(80,50,16,.45); }
.lobby-seat em { display: block; font-style: normal; color: #8fd4a8; font-size: 12px; }
.lobby-seat em.host { color: #ffd700; font-weight: bold; }
.toast {
  pointer-events: none;
  position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
  background: rgba(20,10,4,.92); color: #ffe9b0;
  border: 1px solid #c4a35a; border-radius: 8px;
  padding: 8px 16px; z-index: 100000; font-size: 14px; max-width: 92vw; text-align: center;
}

input {
  font-size: 16px;
}

@media (max-width: 820px) {
  html, body, #table-screen { overflow-x: hidden; max-width: 100vw; }
  .table-stage { overflow: hidden; max-width: 100vw; }
  .opp-hand { max-width: calc(100vw - 16px); }
}
  .logbox { position: static; left: auto; right: auto; top: auto; width: min(440px, 80vw); margin-top: 36px; }
@media (max-width: 820px), (max-height: 520px) {
  .hand-row, .opp-hand { min-width: 0; max-width: 96vw; }
  .seat-col.east, .seat-col.west { width: min(240px, 58vw); height: 48px; }
  .seat-col.east { left: calc(100% - 70px); }
  .seat-col.west { right: calc(100% - 70px); }
  .hud { gap: 4px; }
  .hud-btn { padding: 4px 8px; font-size: 12px; }
  .win-spread .tile.small { --w: 26px; --h: 36px; }
  .table-stage { inset: 36px 2px 2px; overflow: hidden; }
  .felt-core { inset: 18px; }
}
@media (max-width: 520px) {
  .square-table .outer-pack { grid-template-rows: auto var(--z12-h) !important; }
  .square-table .z5 {
    height: auto !important;
    max-height: none !important;
    min-height: 40px !important;
    overflow: visible !important;
    align-items: center !important;
  }
  .z5 .act, .actions .act {
    border-radius: 12px !important;
    min-height: 34px;
    height: auto;
    padding: 7px 10px !important;
    line-height: 1.15;
    letter-spacing: .04em;
    box-shadow: 0 2px 0 #5c4316;
    white-space: nowrap;
  }
  html, body, #table-screen { overflow-x: hidden; max-width: 100vw; }
  .table-stage { inset: 34px 0 0; overflow: hidden; width: 100vw; max-width: 100vw; }
  .square-table { max-width: calc(100vw - 8px) !important; }
  .hand-row { max-width: calc(100vw - 8px); transform: none; }
  .win-spread .tile.small { --w: 22px; --h: 31px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .seat-col.south { position: absolute; left: 50%; top: calc(100% + 16px); bottom: auto; transform: translateX(-50%); }
  .seat-col.north { bottom: calc(100% + 4px); }
  .hand-row, .opp-hand { max-width: 70vw; }
  .seat-col.east { left: calc(100% - 46px); }
  .seat-col.west { right: calc(100% - 46px); }
}
@media (max-width: 720px) {
  .felt-core { inset: 18px; }
  .tile { --w: 28px; --h: 40px; }
  .opp-hand .tile { --w: 18px; --h: 26px; }
  .brand { letter-spacing: .12em; font-size: 48px; }
  .actions { min-width: 0; flex-basis: auto; }
  .seat-meta { font-size: 12px; }
  .chip { font-size: 12px; min-width: 36px; padding: 1px 6px; }
  .avatar { width: 22px; height: 22px; }
}

/* ===== 布局锁定：窗口缩放时只认这一套 ===== */
.turn-rose { width: var(--rose, 132px); height: var(--rose, 132px); }
.pile.north, .pile.east, .pile.west, .pile.south {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  transform: none !important;
  pointer-events: none;
}
.edge-melds.north, .edge-melds.east, .edge-melds.west, #my-melds, .pile.south .exposed-row {
  position: absolute !important;
  margin: 0 !important;
  max-width: var(--side-span, 70%) !important;
}
.edge-melds.north {
  top: 1px !important; left: 50% !important; right: auto !important; bottom: auto !important;
  transform: translateX(-50%) rotate(180deg) !important;
  transform-origin: center center !important;
}
.edge-melds.east {
  right: 1px !important; top: 50% !important; left: auto !important; bottom: auto !important;
  transform: translateY(-50%) rotate(-90deg) !important;
  transform-origin: right center !important;
}
.edge-melds.west {
  left: 1px !important; top: 50% !important; right: auto !important; bottom: auto !important;
  transform: translateY(-50%) rotate(90deg) !important;
  transform-origin: left center !important;
}
#my-melds, .pile.south .exposed-row {
  left: 50% !important; bottom: 1px !important; top: auto !important; right: auto !important;
  transform: translateX(-50%) !important;
}
.pile .disc-row {
  position: absolute !important;
  min-width: 0 !important;
  max-height: none !important;
  width: var(--side-span, 70%) !important;
  max-width: var(--side-span, 70%) !important;
}
.pile.north .disc-row {
  top: var(--disc-inset, 72px) !important; left: 50% !important; bottom: auto !important;
  transform: translateX(-50%) rotate(180deg) !important;
}
.pile.south .disc-row {
  bottom: var(--disc-inset, 72px) !important; left: 50% !important; top: auto !important;
  transform: translateX(-50%) !important;
}
.pile.east .disc-row {
  top: 50% !important; right: var(--disc-inset, 72px) !important; left: auto !important;
  transform: translateY(-50%) rotate(-90deg) !important;
  transform-origin: right center !important;
}
.pile.west .disc-row {
  top: 50% !important; left: var(--disc-inset, 72px) !important; right: auto !important;
  transform: translateY(-50%) rotate(90deg) !important;
  transform-origin: left center !important;
}
.seat-col.east, .seat-col.west { width: min(52%, 460px); height: 72px; }
.seat-col.east { left: calc(100% + 16px) !important; right: auto !important; }
.seat-col.west { right: calc(100% + 16px) !important; left: auto !important; }
.opp-hand { min-width: 0; max-width: 96vw; }

/* 最终覆盖：全部相对桌子，窗口变化只跟 --table-size */
.seat-col.south { top: calc(100% + var(--hand-out, 16px)) !important; left: 50% !important; bottom: auto !important; }
.seat-col.north { bottom: calc(100% + var(--hand-out, 16px)) !important; left: 50% !important; top: auto !important; }
.seat-col.east {
  left: auto !important;
  right: calc(var(--hand-out, 16px) * -1) !important;
  top: 50% !important;
  width: min(70%, var(--side-span, 420px)) !important;
  transform: translateY(-50%) rotate(-90deg) !important;
  transform-origin: right center !important;
}
.seat-col.west {
  left: calc(var(--hand-out, 16px) * -1) !important;
  right: auto !important;
  top: 50% !important;
  width: min(70%, var(--side-span, 420px)) !important;
  transform: translateY(-50%) rotate(90deg) !important;
  transform-origin: left center !important;
}
.opp-hand, .hand-row { min-width: 0 !important; max-width: min(96vw, var(--side-span, 760px)); }
.opp-hand .tile { --w: calc(34px * var(--tile-scale)); --h: calc(48px * var(--tile-scale)); }

.seat-meta, .chip, .dealer-mark { font-size: var(--meta-size, 18px) !important; }
.hand-row .tile, .opp-hand .tile, .seat-col .tile {
  --w: calc(52px * var(--tile-scale, 1)) !important;
  --h: calc(74px * var(--tile-scale, 1)) !important;
}

/* 校正：手牌贴桌子外侧，花牌贴内侧，打出的牌在花牌里面，不裁切 */
.table-stage, .square-table, .mid-row { overflow: visible !important; }
.seat-col.south {
  top: calc(100% + 15px) !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--side-span, 70%) !important;
  transform: translateX(-50%) !important;
}
.seat-col.north {
  bottom: calc(100% + 15px) !important;
  left: 50% !important;
  top: auto !important;
  width: var(--side-span, 70%) !important;
  transform: translateX(-50%) rotate(180deg) !important;
}
.seat-col.east {
  left: calc(100% + 15px) !important;
  right: auto !important;
  top: 50% !important;
  width: var(--side-span, 70%) !important;
  height: auto !important;
  transform: translateY(-50%) rotate(-90deg) !important;
  transform-origin: left center !important;
}
.seat-col.west {
  left: auto !important;
  right: calc(100% + 15px) !important;
  top: 50% !important;
  width: var(--side-span, 70%) !important;
  height: auto !important;
  transform: translateY(-50%) rotate(90deg) !important;
  transform-origin: right center !important;
}

/* 五区布局：1手牌外 2花牌内 3中心 4打出 5按钮在手牌右侧 */
.table-stage, .square-table { overflow: visible !important; }
.square-table { top: 50% !important; }
.seat-col.south, .seat-col.north, .seat-col.east, .seat-col.west {
  width: min(78%, var(--side-span)) !important;
  height: auto !important;
}
.seat-col.south {
  top: calc(100% + var(--hand-out, 20px)) !important;
  left: 50% !important; right: auto !important; bottom: auto !important;
  transform: translateX(-50%) !important;
}
.seat-col.north {
  bottom: calc(100% + var(--hand-out, 20px)) !important;
  left: 50% !important; top: auto !important;
  transform: translateX(-50%) rotate(180deg) !important;
}
.seat-col.east {
  left: calc(100% + var(--hand-out, 20px)) !important;
  right: auto !important; top: 50% !important;
  transform: translateY(-50%) rotate(-90deg) !important;
  transform-origin: left center !important;
}
.seat-col.west {
  right: calc(100% + var(--hand-out, 20px)) !important;
  left: auto !important; top: 50% !important;
  transform: translateY(-50%) rotate(90deg) !important;
  transform-origin: right center !important;
}
.south-play, .seat-col .opp-hand { justify-content: center; }
.actions { flex-direction: column !important; }
.edge-melds, #my-melds, .pile.south .exposed-row {
  width: max-content !important;
  max-width: calc(100% - 24px) !important;
  justify-content: center !important;
}
.edge-melds.north { top: 1px !important; left: 50% !important; transform: translateX(-50%) rotate(180deg) !important; transform-origin: center center !important; }
.edge-melds.south, #my-melds, .pile.south .exposed-row { bottom: 1px !important; left: 50% !important; top: auto !important; transform: translateX(-50%) !important; }
.edge-melds.east { right: 1px !important; top: 50% !important; transform: translateY(-50%) rotate(-90deg) !important; transform-origin: right center !important; }
.edge-melds.west { left: 1px !important; top: 50% !important; transform: translateY(-50%) rotate(90deg) !important; transform-origin: left center !important; }
.pile .disc-row {
  width: var(--side-span) !important;
  max-width: var(--side-span) !important;
  max-height: var(--disc-depth, 120px) !important;
  overflow: hidden;
}
.pile.north .disc-row { top: var(--disc-inset) !important; left: 50% !important; transform: translateX(-50%) rotate(180deg) !important; }
.pile.south .disc-row { bottom: var(--disc-inset) !important; left: 50% !important; top: auto !important; transform: translateX(-50%) !important; }
.pile.east .disc-row { top: 50% !important; right: var(--disc-inset) !important; left: auto !important; width: var(--side-span) !important; transform: translateY(-50%) rotate(-90deg) !important; transform-origin: right center !important; }
.pile.west .disc-row { top: 50% !important; left: var(--disc-inset) !important; right: auto !important; width: var(--side-span) !important; transform: translateY(-50%) rotate(90deg) !important; transform-origin: left center !important; }
.turn-rose { width: var(--rose) !important; height: var(--rose) !important; top: 50% !important; }

/* 左右手牌：以桌子边缘为轴，转到面朝中心后居中 */
.seat-col.east {
  left: calc(100% + var(--hand-out, 20px)) !important;
  right: auto !important;
  top: 50% !important;
  width: min(78%, var(--side-span)) !important;
  translate: 0 -50%;
  rotate: -90deg;
  transform: none !important;
  transform-origin: left center !important;
}
.seat-col.west {
  left: auto !important;
  right: calc(100% + var(--hand-out, 20px)) !important;
  top: 50% !important;
  width: min(78%, var(--side-span)) !important;
  translate: 0 -50%;
  rotate: 90deg;
  transform: none !important;
  transform-origin: right center !important;
}

/* 以当前玩家为基准，下家逆时针 90 度，其余依次再转 90 度 */
.seat-anchor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  z-index: 7;
}
.seat-anchor.east { transform: rotate(-90deg); }
.seat-anchor.north { transform: rotate(-180deg); }
.seat-anchor.west { transform: rotate(-270deg); }
.seat-anchor .seat-col {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: calc(var(--table-size) / 2 + var(--hand-out, 20px)) !important;
  bottom: auto !important;
  width: min(78vw, var(--side-span)) !important;
  height: auto !important;
  transform: translateX(-50%) !important;
  translate: none !important;
  rotate: none !important;
  transform-origin: center top !important;
}

.debug-zone { display: none; position: absolute; z-index: 3; pointer-events: none; box-sizing: border-box; }
body.debug-zones .debug-zone { display: block; }
.debug-zone.z-s { left: 50%; bottom: var(--disc-inset, 52px); width: var(--side-span, 70%); height: var(--disc-depth, 120px); transform: translateX(-50%); border: 2px solid #ffe14a; }
.debug-zone.z-n { left: 50%; top: var(--disc-inset, 52px); width: var(--side-span, 70%); height: var(--disc-depth, 120px); transform: translateX(-50%); border: 2px solid #7ec8ff; }
.debug-zone.z-e { top: 50%; right: var(--disc-inset, 52px); width: var(--disc-depth, 120px); height: var(--side-span, 70%); transform: translateY(-50%); border: 2px solid #7dffb2; }
.debug-zone.z-w { top: 50%; left: var(--disc-inset, 52px); width: var(--disc-depth, 120px); height: var(--side-span, 70%); transform: translateY(-50%); border: 2px solid #ff8ad4; }
.seat-col.turn::before { inset: calc(var(--turn-pad, 8px) * -1) !important; border-width: var(--turn-pad, 8px); }

/* 第一区用满窗口边缘到桌边的空档 */
.seat-anchor .seat-col, .seat-col.south, .seat-col.north {
  min-height: var(--hand-band, 80px);
}
.hand-row .tile, .opp-hand .tile, .seat-col .tile {
  --w: calc(52px * var(--tile-scale, 1)) !important;
  --h: calc(74px * var(--tile-scale, 1)) !important;
}

/* 七区：1风名筹 2吃碰杠提示 3手牌 4摸牌 5打出/过/胡 6花吃碰杠 7打出三行 */
.play-pack {
  position: absolute;
  left: 50%;
  top: calc(var(--table-size) / 2 - var(--z7-h, 120px) - var(--z6-h, 48px) - 8px);
  width: min(92%, var(--side-span, 640px));
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 74px 86px;
  grid-template-rows: var(--z7-h, 120px) var(--z6-h, 48px) var(--z3-h, 78px) var(--z12-h, 32px);
  grid-template-areas:
    "d d d"
    "m m m"
    "h draw act"
    "info hint hint";
  gap: 4px;
  z-index: 6;
}
.z7 { grid-area: d; display: flex; flex-wrap: wrap; align-content: flex-end; justify-content: center; gap: 3px; }
.z6 { grid-area: m; display: flex; justify-content: center; align-items: flex-end; gap: 6px; }
.z3 { grid-area: h; display: flex; justify-content: center; align-items: flex-end; gap: 3px; }
.z4 { grid-area: draw; display: flex; align-items: flex-end; justify-content: center; }
.z5 { grid-area: act; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; }
.z1 { grid-area: info; display: flex; align-items: center; gap: 6px; justify-content: flex-start; white-space: nowrap; }
.z2 { grid-area: hint; display: flex; align-items: center; justify-content: flex-end; color: #ffe14a; font-weight: 700; }
.outer-pack { display: contents; }
.seat-col.turn .z1, .seat-col.turn .z2, .seat-col.turn .z3, .seat-col.turn .z4, .seat-col.turn .z5 { box-shadow: none; }
.z7 .tile { --w: var(--disc-w, 28px) !important; --h: var(--disc-h, 40px) !important; }

.play-pack { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.z7 { min-height: var(--z7-h, 108px); max-height: var(--z7-h, 108px); overflow: hidden; }
.z6 { min-height: var(--z6-h, 46px); }
.outer-pack {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 74px 86px;
  grid-template-rows: var(--z3-h, 78px) var(--z12-h, 32px);
  grid-template-areas: "h draw act" "info hint hint";
  gap: 4px;
}
.seat-col.turn .outer-pack { outline: none; outline-offset: 0; box-shadow: none; }

/* 以桌心为轴：6贴内边，7在6内侧，1-5在桌外 */
.table-stage, .square-table { overflow: visible !important; }
.seat-anchor .seat-col {
  top: 0 !important;
  left: 0 !important;
  width: 0 !important;
  min-height: 0 !important;
  transform: none !important;
}
.play-pack {
  position: absolute !important;
  left: 0 !important;
  top: calc(var(--table-size) / 2 - var(--z7-h, 108px) - var(--z6-h, 46px) - 6px) !important;
  width: min(78%, calc(var(--table-size) - 24px)) !important;
  transform: translateX(-50%) !important;
  z-index: 8;
}
.z6, .z7 { width: 100%; }
.z7 { min-height: var(--z7-h, 108px); max-height: var(--z7-h, 108px); }
.z6 { min-height: var(--z6-h, 46px); max-height: var(--z6-h, 46px); }
.debug-zone { display: none !important; }

.hand-row .tile, .opp-hand .tile, .seat-col .tile, .z3 .tile, .z4 .tile, .z6 .tile {
  --w: var(--tile-w, 42px) !important;
  --h: var(--tile-h, 60px) !important;
}

/* 只改 1 2 4 5 7，花牌和手牌不动 */
.ting-flag, .hand-clock { position: absolute; z-index: 9; }
.ting-flag { left: -36px; bottom: 36px; }
.hand-clock { left: -46px; top: 8px; }
.outer-pack {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--tile-w, 42px) 84px !important;
  grid-template-rows: max(var(--z3-h, 78px), 80px) var(--z12-h, 32px) !important;
  grid-template-areas: "h draw act" "info hint hint" !important;
  gap: 6px !important;
  width: 100%;
  overflow: visible;
}
.z5 { grid-area: act; min-width: 80px; min-height: 80px; overflow: visible; align-items: center; justify-content: center; }
.z5 .act { padding: 0; font-size: 14px; }
.z5 .act.seal { width: 76px; height: 76px; flex-basis: 76px; }
.z7 {
  width: 68% !important;
  align-self: center;
  max-height: calc(var(--disc-h, 40px) * 3 + 10px) !important;
  min-height: calc(var(--disc-h, 40px) * 3 + 10px) !important;
  margin-bottom: 10px;
  align-content: end;
}

/* 主界面七区：桌占短边 60%，下家为这套逆时针 90 度 */
.square-table { top: 50% !important; left: 50% !important; overflow: visible !important; }
.seat-anchor { left: 50%; top: 50%; width: 0; height: 0; z-index: 8; }
.seat-anchor.east { transform: rotate(-90deg); }
.seat-anchor.north { transform: rotate(-180deg); }
.seat-anchor.west { transform: rotate(-270deg); }
.seat-anchor .seat-col { top: 0 !important; left: 0 !important; width: 0 !important; transform: none !important; }
.play-pack {
  position: absolute !important;
  left: 0 !important;
  top: calc(var(--table-size) / 2 - var(--z7-h) - var(--z6-h) - 8px) !important;
  width: var(--side-span) !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 6px !important;
}
.z7 {
  height: var(--z7-h) !important;
  min-height: var(--z7-h) !important;
  max-height: var(--z7-h) !important;
  width: 72% !important;
  align-self: center !important;
  display: flex !important;
  flex-wrap: wrap;
  align-content: flex-end;
  justify-content: center;
}
.z6 {
  height: var(--z6-h) !important;
  min-height: var(--z6-h) !important;
  max-height: var(--z6-h) !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center;
  align-items: flex-end;
}
.outer-pack {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--tile-w) 96px !important;
  grid-template-rows: var(--z3-h) var(--z12-h) !important;
  grid-template-areas: "h draw act" "info hint hint" !important;
  gap: 6px !important;
}
.z3 { grid-area: h; }
.z4 { grid-area: draw; }
.z5 { grid-area: act; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; }
.z1 { grid-area: info; max-width: 42%; }
.z2 { grid-area: hint; }
.seat-col.turn .outer-pack { outline: none; box-shadow: none; }
body.debug-zones .z1 { background: rgba(246,226,164,.28); }
body.debug-zones .z2 { background: rgba(255,177,74,.28); }
body.debug-zones .z3 { background: rgba(126,200,255,.22); }
body.debug-zones .z4 { background: rgba(215,166,255,.28); }
body.debug-zones .z5 { background: rgba(255,138,212,.28); }
body.debug-zones .z6 { background: rgba(125,255,178,.22); }
body.debug-zones .z7 { background: rgba(255,225,74,.18); }

/* 校正：各区不叠，打出的牌用自己的尺寸 */
.z1 { max-width: none !important; overflow: hidden; }
.z4, .z5, .z3, .z6, .z7 { overflow: hidden; }
.z5 { overflow: auto; }
.z7 .tile { --w: var(--disc-w) !important; --h: var(--disc-h) !important; }
.hand-clock { left: 0; top: -28px; }
.ting-flag { left: 0; bottom: auto; top: -28px; }
.turn-rose { z-index: 5; }
.play-pack { pointer-events: none; }
.play-pack .z3, .play-pack .z4, .play-pack .z5, .play-pack .z1, .play-pack .z2 { pointer-events: auto; }

/* 终检：1窄于2，倒计时不压花牌，选中的牌不被裁切 */
.outer-pack {
  grid-template-columns: 30% minmax(0, 1fr) var(--tile-w) 96px !important;
  grid-template-areas: "h h draw act" "info hint hint hint" !important;
}
.z3 { overflow: visible !important; }
.z6 { overflow: hidden !important; }
.hand-clock, .ting-flag { top: auto !important; bottom: 4px !important; left: -52px !important; }
.play-pack { gap: 4px !important; top: calc(var(--table-size) / 2 - var(--z7-h) - var(--z6-h) - 4px) !important; }
.z7 { width: 64% !important; }
.z6 { width: 100% !important; }

/* 桌边为界：6、7在内，1-5在外 */
.play-pack {
  top: calc(var(--table-size) / 2) !important;
  height: auto !important;
  overflow: visible !important;
}
.z6 {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: calc(100% + 2px) !important;
  width: 100% !important;
  height: var(--z6-h) !important;
}
.z7 {
  position: absolute !important;
  left: 50% !important;
  bottom: calc(100% + var(--z6-h) + 10px) !important;
  transform: translateX(-50%) !important;
  width: 64% !important;
  height: var(--z7-h) !important;
}
.outer-pack { margin-top: 8px !important; }
.z3 .tile, .z4 .tile { --w: var(--tile-w) !important; --h: var(--tile-h) !important; }
.z6 .tile { --w: var(--meld-w) !important; --h: var(--meld-h) !important; }
.z7 .tile { --w: var(--disc-w) !important; --h: var(--disc-h) !important; }
.outer-pack { grid-template-columns: 30% minmax(0, 1fr) var(--tile-w) var(--act-w, 96px) !important; }
.seat-col.turn .outer-pack { outline: none !important; box-shadow: none !important; }

/* 手牌贴桌外 1px，花牌贴桌内 1px，摸牌不裁切，四家打出区不相交 */
.outer-pack { margin-top: 1px !important; }
.z3 { align-items: flex-start !important; }
.z6 { bottom: calc(100% + 1px) !important; overflow: visible !important; }
.z7 { width: var(--z7-w, 60%) !important; max-width: var(--z7-w, 60%) !important; }
.z4 { overflow: visible !important; min-width: var(--tile-w) !important; min-height: var(--tile-h) !important; }
.z4 .tile { flex: 0 0 auto; }

/* 金边算进桌子。手牌在金边外 1px，花牌在金边内 1px，只在第六区 */
.outer-pack { margin-top: calc(var(--ring, 14px) + 1px) !important; }
.z3, .z4, .z5 { height: var(--z3-h) !important; min-height: var(--z3-h) !important; max-height: var(--z3-h) !important; overflow: visible !important; }
.z6 { bottom: calc(100% - var(--ring, 14px) + 1px) !important; overflow: visible !important; }
.z7 { width: var(--z7-w) !important; max-width: var(--z7-w) !important; }
.z2 { overflow: hidden; }
.z2 .tile { display: none !important; }

/* 花牌在金边内侧 1px，手牌在金边外侧 1px，打出区不交叉 */
.z6 { bottom: calc(100% + 1px) !important; z-index: 4; }
.z3, .z4, .z5 { align-items: flex-end !important; overflow: visible !important; }
.z7 { width: var(--z7-w) !important; max-width: var(--z7-w) !important; clip-path: none !important; }
.outer-pack { margin-top: calc(var(--ring, 14px) + 1px) !important; }

/* 最终定位：金边外 1px 是手牌，金边内 1px 是花牌，打出区按宽度错开 */
.play-pack { top: calc(var(--table-size) / 2) !important; }
.outer-pack { margin-top: calc(var(--ring, 14px) + 1px) !important; }
.z6 { position: absolute !important; left: 0 !important; right: 0 !important; bottom: calc(100% + 1px) !important; height: var(--z6-h) !important; }
.z7 { position: absolute !important; left: 50% !important; bottom: calc(100% + var(--z6-h) + 8px) !important; transform: translateX(-50%) !important; width: var(--z7-w) !important; max-width: var(--z7-w) !important; height: var(--z7-h) !important; overflow: hidden !important; }
.z3, .z4, .z5 { height: var(--z3-h) !important; }

/* 2026-10-09 布局锁：只认这一套 */
.square-table > .seat-anchor { position: absolute !important; left: 50% !important; top: 50% !important; width: 0 !important; height: 0 !important; }
.square-table > .seat-anchor.east { transform: rotate(-90deg) !important; }
.square-table > .seat-anchor.north { transform: rotate(-180deg) !important; }
.square-table > .seat-anchor.west { transform: rotate(-270deg) !important; }
.square-table > .seat-anchor > .seat-col { position: absolute !important; left: 0 !important; top: 0 !important; width: 0 !important; transform: none !important; }
.square-table .play-pack {
  position: absolute !important; left: 0 !important; top: calc(var(--table-size) / 2) !important;
  width: var(--side-span) !important; transform: translateX(-50%) !important;
  display: flex !important; flex-direction: column !important;
}
.square-table .z6 {
  position: absolute !important; left: 0 !important; right: 0 !important; width: 100% !important;
  bottom: calc(100% + 1px) !important; height: var(--z6-h) !important;
}
.square-table .z7 {
  position: absolute !important; left: 50% !important; transform: translateX(-50%) !important;
  bottom: calc(100% + var(--z6-h) + 8px) !important;
  width: var(--z7-w) !important; max-width: var(--z7-w) !important; height: var(--z7-h) !important;
  overflow: hidden !important; clip-path: none !important;
}
.square-table .outer-pack {
  margin-top: calc(var(--ring, 14px) + 1px) !important;
  display: grid !important;
  grid-template-columns: 30% minmax(0, 1fr) var(--tile-w) var(--act-w, 96px) !important;
  grid-template-rows: var(--z3-h) var(--z12-h) !important;
  grid-template-areas: "h h draw act" "info hint hint hint" !important;
}
.square-table .z3 { grid-area: h !important; height: var(--z3-h) !important; }
.square-table .z4 { grid-area: draw !important; height: var(--z3-h) !important; overflow: visible !important; }
.square-table .z5 { grid-area: act !important; height: var(--z3-h) !important; }
.square-table .z1 { grid-area: info !important; }
.square-table .z2 { visibility: hidden !important; }

/* 第一二区同高，花牌区调试时即使没牌也画出范围，牌保持 52:74 */
.z1, .z2 { height: var(--z12-h) !important; min-height: var(--z12-h) !important; }
.z1 { position: relative !important; z-index: 8 !important; }
.z3 { overflow: hidden !important; }
.square-table .z3 { overflow: hidden !important; z-index: 4 !important; }
.z3 .tile, .z4 .tile, .z6 .tile, .z7 .tile { object-fit: contain; aspect-ratio: 52 / 74; }

/* 花牌按桌边定位，不跟第二区走。上下两家加桌子撑满窗口高度 */
.square-table .z6 {
  top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important;
  bottom: auto !important;
  height: var(--z6-h) !important;
}
body.debug-zones .z6::after {
  content: "花牌";
  color: #7dffb2;
  font-size: 12px;
}

/* 花牌在牌桌盒子内侧 1px。手牌在金边外侧 1px。打出的牌两行 */
.square-table .z6 {
  top: calc((var(--z6-h) + 1px) * -1) !important;
  bottom: auto !important;
  height: var(--z6-h) !important;
}
.square-table .outer-pack { margin-top: calc(var(--ring, 14px) + 1px) !important; }
.square-table .z3, .square-table .z4, .square-table .z5 { align-items: flex-start !important; }
.square-table .z7 { height: var(--z7-h) !important; max-height: var(--z7-h) !important; }

/* 花牌从桌心算，贴在桌边内侧 1px。第五区按钮横排。打出的牌两行 */
.square-table .seat-col > .z6 {
  position: absolute !important;
  left: 50% !important;
  top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: var(--side-span) !important;
  height: var(--z6-h) !important;
}
.square-table .seat-col > .z7 {
  position: absolute !important;
  left: 50% !important;
  top: calc(var(--table-size) / 2 - var(--z6-h) - 8px - var(--z7-h)) !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: var(--z7-w) !important;
  height: var(--z7-h) !important;
}
.square-table .play-pack { top: calc(var(--table-size) / 2 + var(--ring, 14px) + 1px) !important; }
.square-table .outer-pack { margin-top: 0 !important; grid-template-columns: 28% minmax(0, 1fr) var(--tile-w) var(--act-w, 168px) !important; }
.square-table .z5 { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; justify-content: flex-end; gap: 4px; }

/* 花牌在桌边内侧，手牌区只留牌高，打出区两行且不相交 */
.square-table, .seat-col, .seat-anchor { overflow: visible !important; }
.square-table .seat-col > .z6 {
  z-index: 9 !important;
  top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important;
  background: rgba(20, 60, 30, .35);
}
.square-table .z3, .square-table .z4, .square-table .z5 {
  height: var(--z3-h) !important;
  min-height: 0 !important;
  max-height: var(--z3-h) !important;
  align-items: flex-start !important;
  padding: 0 !important;
}
.square-table .outer-pack { grid-template-rows: var(--z3-h) var(--z12-h) !important; padding: 0 !important; }

/* 花牌在桌边内侧，手牌区只留牌高，打出区两行且不相交 */
.square-table, .seat-col, .seat-anchor { overflow: visible !important; }
.square-table .seat-col > .z6 {
  z-index: 9 !important;
  top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important;
  background: rgba(20, 60, 30, .35);
}
.square-table .z3, .square-table .z4, .square-table .z5 {
  height: var(--z3-h) !important;
  min-height: 0 !important;
  max-height: var(--z3-h) !important;
  align-items: flex-start !important;
  padding: 0 !important;
}
.square-table .outer-pack { grid-template-rows: var(--z3-h) var(--z12-h) !important; padding: 0 !important; }
.square-table .z3 .tile, .square-table .z4 .tile {
  --w: var(--tile-w) !important;
  --h: var(--tile-h) !important;
  max-height: calc(var(--z3-h) - 6px) !important;
}
.square-table .seat-col > .z6 { z-index: 20 !important; overflow: visible !important; }
.square-table .seat-col > .z6 { top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important; }
.square-table .z3 { width: 100% !important; overflow: visible !important; }
.square-table .seat-col > .z6 { top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important; }
.square-table .outer-pack { column-gap: 10px !important; }
.square-table .z3 { margin-right: 8px !important; }
.square-table .seat-col > .z6 { background: transparent !important; }
.square-table .seat-col > .z6 { background: rgba(20, 60, 30, .35) !important; }
.square-table .seat-col > .z6 { background: rgba(46, 120, 72, .55) !important; }
.square-table .outer-pack { grid-template-columns: minmax(0, 13.5fr) var(--z4-w, 60px) var(--act-w, 168px) !important; }
.square-table .z3 { margin-right: 0 !important; }
.square-table .z4 { width: var(--z4-w) !important; min-width: var(--z4-w) !important; justify-content: center !important; }
.square-table .seat-col > .z6 { background: rgba(46, 120, 72, .5) !important; z-index: 2 !important; }
body.debug-zones .z6::after { content: none !important; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13.5) var(--z4-w, 60px) var(--act-w, 168px) !important; }
.square-table .z3 { width: calc(var(--tile-w) * 13.5) !important; min-width: calc(var(--tile-w) * 13.5) !important; }
.square-table #seat-south > .z6, .square-table .seat-col > .z6 {
  background: rgba(46, 120, 72, .75) !important;
  min-height: var(--z6-h) !important;
  display: flex !important;
}
.square-table .outer-pack {
  gap: 0 !important;
  column-gap: 0 !important;
  grid-template-columns: calc(var(--tile-w) * 13.5) calc(var(--tile-w) * 1.5) var(--act-w, 168px) !important;
}
.square-table .z3, .square-table .z4, .square-table .z5 { margin: 0 !important; }
.square-table .z3 { width: calc(var(--tile-w) * 13.5) !important; min-width: calc(var(--tile-w) * 13.5) !important; }
.square-table .z4 { width: calc(var(--tile-w) * 1.5) !important; min-width: calc(var(--tile-w) * 1.5) !important; }
.turn-rose { z-index: 12 !important; }
.felt-core { z-index: 12 !important; }
.turn-square { inset: 16%; }
.turn-square i[data-d="north"], .turn-square i[data-d="south"] { height: 7px; }
.turn-square i[data-d="east"], .turn-square i[data-d="west"] { width: 7px; }
.square-table #seat-south > .z6 {
  background: #2e7848 !important;
  opacity: 1 !important;
  z-index: 40 !important;
}
.square-table .z3, #my-hand {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-end !important;
  gap: 2px !important;
}
.square-table .z3 .tile { position: static !important; margin: 0 !important; }
.square-table .seat-anchor { z-index: 6 !important; }
.square-table #seat-south > .z6 {
  background: #2e7848 !important;
  opacity: 1 !important;
  z-index: 40 !important;
  min-height: 28px !important;
}
.south-z6-guide {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 1px;
  height: var(--z6-h, 36px);
  background: #2e7848;
  z-index: 8;
  pointer-events: none;
}
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13.5) calc(var(--tile-w) * 1.5) calc(var(--act-w, 168px) * 1.333) !important; }
.square-table .z5 { width: calc(var(--act-w, 168px) * 1.333) !important; min-width: calc(var(--act-w, 168px) * 1.333) !important; background: transparent !important; }
.square-table .z4, .draw-slot { background: transparent !important; box-shadow: none !important; }
.square-table .z4:empty { background: transparent !important; }
.square-table .outer-pack {
  gap: 2px !important;
  column-gap: 2px !important;
  grid-template-columns: calc(var(--tile-w) * 13.5) calc(var(--tile-w) * 1.5) calc(var(--act-w, 168px) * 1.333) !important;
}
.square-table .z3, .square-table .z4, .square-table .z5 { margin: 0 !important; }
.square-table .z4 {
  width: calc(var(--tile-w) * 1.5) !important;
  min-width: calc(var(--tile-w) * 1.5) !important;
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
}
.square-table .z4 .tile { width: var(--tile-w) !important; flex: 0 0 var(--tile-w) !important; }
.square-table .outer-pack { gap: 0 !important; column-gap: 0 !important; }
.square-table .z3, .square-table .z4, .square-table .z5 { margin: 0 !important; }
.square-table .outer-pack {
  gap: 0 !important;
  column-gap: 0 !important;
  width: var(--table-size) !important;
  max-width: var(--table-size) !important;
  grid-template-columns: calc(var(--tile-w) * 13.5) calc(var(--tile-w) * 1.5) var(--act-w) !important;
}
.square-table .z3, .square-table .z4, .square-table .z5 { margin: 0 !important; }
.square-table .outer-pack { gap: 0 !important; column-gap: 0 !important; width: var(--table-size) !important; max-width: var(--table-size) !important; grid-template-columns: calc(var(--tile-w) * 13.5) calc(var(--tile-w) * 1.5) var(--act-w) !important; }
.square-table .z5 { width: var(--act-w) !important; min-width: var(--act-w) !important; max-width: var(--act-w) !important; }
.z6-guide { position: absolute; background: #2e7848; z-index: 8; pointer-events: none; }
.z6-guide.south, .z6-guide.north { left: 18%; right: 18%; height: var(--z6-h, 32px); }
.z6-guide.south { bottom: 1px; }
.z6-guide.north { top: 1px; }
.z6-guide.east, .z6-guide.west { top: 18%; bottom: 18%; width: var(--z6-h, 32px); }
.z6-guide.east { right: 1px; }
.z6-guide.west { left: 1px; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13.5) var(--tile-w) var(--act-w) !important; }
.square-table .z4 { width: var(--tile-w) !important; min-width: var(--tile-w) !important; max-width: var(--tile-w) !important; padding: 0 !important; }
.z6-guide, .south-z6-guide { display: none !important; }
.square-table .seat-col > .z6 {
  background: #2e7848 !important;
  outline: none !important;
  box-shadow: none !important;
  width: 58% !important;
  max-width: 58% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  top: calc(var(--table-size) / 2 - var(--z6-h) - 1px) !important;
  height: var(--z6-h) !important;
  z-index: 8 !important;
}
.square-table .outer-pack {
  gap: 0 !important;
  column-gap: 0 !important;
  grid-template-columns: calc(var(--tile-w) * 13) var(--tile-w) var(--act-w) !important;
}
.square-table .z4 {
  width: var(--tile-w) !important;
  min-width: var(--tile-w) !important;
  max-width: var(--tile-w) !important;
  padding: 0 !important;
  margin: 0 !important;
}
.square-table .z4 .tile { --w: var(--tile-w) !important; --h: var(--tile-h) !important; width: var(--tile-w) !important; height: var(--tile-h) !important; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13) var(--tile-w) var(--act-w) !important; }
.square-table .z4 { width: var(--tile-w) !important; min-width: var(--tile-w) !important; max-width: var(--tile-w) !important; flex: 0 0 var(--tile-w) !important; }
.z6-guide, .south-z6-guide { display: block !important; }
.z6-guide { position: absolute; background: #2e7848; z-index: 8; pointer-events: none; }
.z6-guide.south, .z6-guide.north { left: 21%; right: 21%; height: var(--z6-h, 32px); }
.z6-guide.south { bottom: 1px; }
.z6-guide.north { top: 1px; }
.z6-guide.east, .z6-guide.west { top: 21%; bottom: 21%; width: var(--z6-h, 32px); }
.z6-guide.east { right: 1px; }
.z6-guide.west { left: 1px; }
.square-table .seat-col > .z6 { background: transparent !important; outline: none !important; }
.square-table .outer-pack { display: flex !important; flex-wrap: wrap !important; gap: 0 !important; column-gap: 0 !important; width: max-content !important; max-width: var(--table-size) !important; }
.square-table .z3 { order: 1; width: calc(var(--tile-w) * 13) !important; margin: 0 !important; }
.square-table .z4 { order: 2; width: var(--tile-w) !important; min-width: var(--tile-w) !important; max-width: var(--tile-w) !important; margin: 0 !important; }
.square-table .z5 { order: 3; width: var(--act-w) !important; min-width: 0 !important; max-width: var(--act-w) !important; margin: 0 !important; }
.square-table .z1, .square-table .z2 { flex: 1 0 40%; }
.square-table .outer-pack { display: flex !important; gap: 0 !important; column-gap: 0 !important; }
.square-table .z3, .square-table .z4, .square-table .z5 { margin: 0 !important; padding: 0 !important; }
.square-table .outer-pack { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; gap: 0 !important; width: max-content !important; }
.square-table .z3 { order: 1 !important; width: calc(var(--tile-w) * 13) !important; }
.square-table .z4 { order: 2 !important; width: var(--tile-w) !important; }
.square-table .z5 { order: 3 !important; width: var(--act-w) !important; }
.square-table .z1 { order: 4 !important; flex: 1 0 42% !important; }
.square-table .z2 { order: 5 !important; flex: 1 0 50% !important; }
.square-table .outer-pack {
  display: grid !important;
  grid-template-columns: calc(var(--tile-w) * 13) var(--tile-w) var(--act-w) !important;
  grid-template-areas: "h draw act" "info hint hint" !important;
  gap: 0 !important;
  width: max-content !important;
}
.square-table .z3 { grid-area: h !important; order: 0 !important; width: 100% !important; justify-content: center !important; }
.square-table .z4 { grid-area: draw !important; order: 0 !important; width: var(--tile-w) !important; }
.square-table .z5 { grid-area: act !important; order: 0 !important; width: var(--act-w) !important; }
.square-table .z1 { grid-area: info !important; order: 0 !important; justify-content: flex-start !important; text-align: left !important; }
.square-table .z2 { grid-area: hint !important; order: 0 !important; }
.square-table .seat-col > .z6 { background: transparent !important; outline: none !important; }
.square-table .outer-pack {
  display: grid !important;
  grid-template-columns: calc(var(--tile-w) * 13) var(--tile-w) var(--act-w) !important;
  grid-template-rows: var(--z3-h) var(--z12-h) !important;
  grid-template-areas: "h draw act" "info hint hint" !important;
  gap: 0 !important;
  width: max-content !important;
  max-width: var(--table-size) !important;
}
.square-table .z3 { grid-area: h !important; overflow: hidden !important; }
.square-table .z4 { grid-area: draw !important; overflow: hidden !important; width: var(--tile-w) !important; }
.square-table .z5 { grid-area: act !important; overflow: hidden !important; width: var(--act-w) !important; }
.square-table .z1 { grid-area: info !important; overflow: hidden !important; justify-content: flex-start !important; }
.square-table .z2 { grid-area: hint !important; overflow: hidden !important; }
.square-table .z6, .square-table .z7 { overflow: hidden !important; }
.square-table .z3 { width: calc(var(--tile-w) * 13) !important; overflow: hidden !important; gap: 0 !important; }
.square-table .z3 .tile { --w: var(--tile-w) !important; width: var(--tile-w) !important; min-width: var(--tile-w) !important; max-width: var(--tile-w) !important; margin: 0 !important; position: static !important; }
.square-table .z4 { margin-left: 0 !important; position: relative !important; }
.square-table .z3 { overflow: hidden !important; max-width: calc(var(--tile-w) * 13) !important; }
.square-table .z4 { overflow: hidden !important; max-width: var(--tile-w) !important; position: relative !important; z-index: 2 !important; }
.square-table .z3 .tile { flex: 0 0 var(--tile-w) !important; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13 + 8px) var(--tile-w) var(--act-w) !important; }
.square-table .z3 { width: calc(var(--tile-w) * 13 + 8px) !important; max-width: calc(var(--tile-w) * 13 + 8px) !important; overflow: visible !important; gap: 0 !important; }
.square-table .z4 { margin-left: 0 !important; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13 + 10px) var(--tile-w) var(--act-w) !important; column-gap: 0 !important; }
.square-table .z3 { width: calc(var(--tile-w) * 13 + 10px) !important; max-width: none !important; overflow: visible !important; }
.square-table .z3 .tile { width: var(--tile-w) !important; max-width: var(--tile-w) !important; flex: 0 0 var(--tile-w) !important; }
.square-table .z4 { width: var(--tile-w) !important; margin-left: 0 !important; position: relative !important; }
.debug-zone, body.debug-zones .debug-zone { display: none !important; }
.z6-guide { outline: none !important; }
body.debug-zones .debug-zone { display: block !important; }
.z6-guide { display: block !important; background: #2e7848 !important; }
body.debug-zones .debug-zone.z-s { left: 29%; right: 29%; width: auto; bottom: calc(var(--z6-h, 32px) + 10px); height: 18%; transform: none; }
body.debug-zones .debug-zone.z-n { left: 29%; right: 29%; width: auto; top: calc(var(--z6-h, 32px) + 10px); height: 18%; transform: none; }
body.debug-zones .debug-zone.z-e { top: 29%; bottom: 29%; height: auto; right: calc(var(--z6-h, 32px) + 10px); width: 18%; transform: none; }
body.debug-zones .debug-zone.z-w { top: 29%; bottom: 29%; height: auto; left: calc(var(--z6-h, 32px) + 10px); width: 18%; transform: none; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13 + 10px) calc(var(--tile-w) + 4px) var(--act-w) !important; }
.square-table .z4 { width: calc(var(--tile-w) + 4px) !important; min-width: calc(var(--tile-w) + 4px) !important; max-width: calc(var(--tile-w) + 4px) !important; overflow: visible !important; padding: 0 2px !important; box-sizing: border-box !important; }
.square-table .z4 .tile { width: var(--tile-w) !important; max-width: var(--tile-w) !important; height: var(--tile-h) !important; max-height: none !important; }
.z6-guide { z-index: 2 !important; }
.square-table .seat-anchor { z-index: 8 !important; }
.square-table .seat-col > .z6 { z-index: 12 !important; background: transparent !important; }
.square-table .z7 { clip-path: none !important; }
.debug-zone, body.debug-zones .debug-zone { display: none !important; border: none !important; }
.square-table .outer-pack { grid-template-columns: calc(var(--tile-w) * 13 + 10px) 8px calc(var(--tile-w) + 4px) var(--act-w) !important; grid-template-areas: "h . draw act" "info hint hint hint" !important; }
.square-table .z3 { margin-right: 0 !important; }
.square-table .z4 { margin-left: 0 !important; }
.square-table .z5 {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  gap: 4px !important;
  overflow: hidden !important;
  height: var(--z3-h) !important;
}
.square-table .z5 .act {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  height: 100% !important;
  padding: 0 4px !important;
  font-size: 16px !important;
}
.square-table .z5 { padding: 10% !important; box-sizing: border-box !important; }
.square-table .z5 .act { height: 100% !important; }
.square-table .z7 { clip-path: none !important; }
.debug-zone { display: none !important; }
body.debug-zones .debug-zone { display: block !important; border: 2px solid #ffe14a !important; }
.logbox { width: min(173px, 23vw) !important; display: flex !important; flex-direction: column; }
.square-table .z5 .act {
  border: 1px solid #e6c56a !important;
  border-radius: 10px !important;
  background: linear-gradient(180deg, #3a2a12, #1a1208) !important;
  color: #f8e7b8 !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  box-shadow: inset 0 1px 0 rgba(255,236,180,.35), 0 4px 10px rgba(0,0,0,.35) !important;
}
.square-table .z5 .act.chi { background: linear-gradient(180deg, #f0d56a, #b8860b) !important; color: #2a1c08 !important; }
.square-table .z5 .act.peng { background: linear-gradient(180deg, #7ddea0, #1f8a45) !important; color: #06210f !important; }
.square-table .z5 .act.hu { background: linear-gradient(180deg, #ff8a8a, #c42323) !important; color: #fff !important; }
.square-table .z5 .act.pass { background: linear-gradient(180deg, #4a4a4a, #222) !important; color: #eee !important; border-color: #777 !important; }
.logbox { max-height: 84vh !important; }
.log-body { max-height: 68vh !important; }
.debug-zone, body.debug-zones .debug-zone { display: none !important; }
body.debug-zones .debug-zone { display: block !important; }
.z6-guide { display: block !important; }
body.hide-z6 .z6-guide { display: none !important; }
.seat-col.turn::before, .seat-col.south.turn::before { content: none !important; display: none !important; }
.seat-col.turn .outer-pack { outline: none !important; box-shadow: none !important; }
.seat-col.turn .z1, .seat-col.turn .z2, .seat-col.turn .z3, .seat-col.turn .z4, .seat-col.turn .z5 { box-shadow: none !important; }
.square-table .z7 { clip-path: none !important; }
body.debug-zones .seat-col.turn .outer-pack { outline: 2px solid #ffe14a !important; }
.square-table .z7 {
  width: var(--z7-w) !important;
  max-width: var(--z7-w) !important;
  height: var(--z7-h) !important;
  min-height: var(--z7-h) !important;
  max-height: var(--z7-h) !important;
  clip-path: none !important;
}
.square-table .z7 .tile { --w: var(--disc-w) !important; --h: var(--disc-h) !important; width: var(--disc-w) !important; height: var(--disc-h) !important; }
body.debug-zones .debug-zone { display: block !important; border: 2px solid #ffe14a !important; background: rgba(255, 225, 74, .12) !important; }
body.debug-zones .square-table .z1,
body.debug-zones .square-table .z2,
body.debug-zones .square-table .z3,
body.debug-zones .square-table .z4,
body.debug-zones .square-table .z5,
body.debug-zones .square-table .z7 { outline: 2px solid #ffe14a !important; outline-offset: -2px !important; }
.debug-zone, body.debug-zones .debug-zone { display: none !important; }
body.debug-zones .square-table .z7 { outline: 2px solid #ffe14a !important; }
body.debug-zones .square-table .z7 { outline: none !important; }
body.debug-zones .debug-zone { display: block !important; border: 2px solid #ffe14a !important; background: rgba(255, 225, 74, .12) !important; }
body.debug-zones .debug-zone.z-s { left: 50% !important; right: auto !important; width: var(--z7-w) !important; height: var(--z7-h) !important; bottom: calc(var(--z6-h, 32px) + 8px) !important; transform: translateX(-50%) !important; }
body.debug-zones .debug-zone.z-n { left: 50% !important; right: auto !important; width: var(--z7-w) !important; height: var(--z7-h) !important; top: calc(var(--z6-h, 32px) + 8px) !important; transform: translateX(-50%) !important; }
body.debug-zones .debug-zone.z-e { top: 50% !important; bottom: auto !important; height: var(--z7-w) !important; width: var(--z7-h) !important; right: calc(var(--z6-h, 32px) + 8px) !important; transform: translateY(-50%) !important; }
body.debug-zones .debug-zone.z-w { top: 50% !important; bottom: auto !important; height: var(--z7-w) !important; width: var(--z7-h) !important; left: calc(var(--z6-h, 32px) + 8px) !important; transform: translateY(-50%) !important; }
.debug-zone { display: none !important; }
body.debug-zones .square-table .z7 { outline: 2px solid #ffe14a !important; outline-offset: -2px !important; }
.square-table .z7 { display: flex !important; flex-wrap: wrap !important; align-content: flex-end !important; justify-content: center !important; gap: 4px !important; width: var(--z7-w) !important; height: var(--z7-h) !important; }
.square-table .z7 .tile { --w: var(--disc-w) !important; --h: var(--disc-h) !important; width: var(--disc-w) !important; height: var(--disc-h) !important; }
:root { --ivory: #f6e7b0; --gold: #d4af37; --gold-2: #f0d78a; --ink: #050505; }
body { background: #050505 !important; color: #f0d78a !important; }
.splash { background: #050505 !important; }
.btn { background: #0a0a0a !important; color: #f0d78a !important; border-color: #d4af37 !important; box-shadow: none !important; }
.panel, #modal-body, .settle-card, .logbox { background: #0a0a0a !important; color: #f0d78a !important; }
.auth-box input, #online-box input { background: #050505 !important; color: #f0d78a !important; border-color: #d4af37 !important; }
#room-msg { color: #ff5a5a; font-weight: 700; min-height: 18px; text-align: left; }
.menu-row { display: flex; gap: 8px; align-items: center; }
.luck-on { margin-left: auto; color: #7dffb2; font-weight: 700; }
.z1 { justify-content: flex-start; gap: 8px; }
.square-table .z5 {
  overflow: visible !important;
  padding: 0 !important;
  align-items: center !important;
  justify-content: center !important;
}
.square-table .z5 .act.seal:not(.chi) {
  flex: 0 0 76px !important;
  width: 76px !important;
  height: 76px !important;
  min-width: 76px !important;
  max-width: 76px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.square-table .z5 .chi-stack .act.seal {
  flex: 0 0 auto !important;
  height: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.square-table .z5 .act.seal img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}
.chi-stack {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  justify-content: flex-end;
  align-self: flex-end;
  flex: 0 0 auto;
}
.chi-stack .act.seal {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
.chi-stack .act.seal span {
  font-size: 9px;
  bottom: 0;
}
.square-table .z5 {
  position: relative !important;
  flex-wrap: nowrap !important;
  overflow: visible !important;
  align-items: flex-end !important;
}

.seat-col.turn .outer-pack::after {
  transform: translateY(10px);
}

@media (max-width: 820px) {
  .ting-flag {
    writing-mode: vertical-rl !important;
    text-orientation: upright !important;
    left: auto !important;
    right: 6px !important;
    top: auto !important;
    bottom: 8px !important;
    width: 26px !important;
    height: auto !important;
    padding: 6px 2px !important;
    font-size: 13px !important;
    letter-spacing: .08em !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }
  .winner-banner {
    font-size: 11px !important;
    padding: 4px 10px !important;
    letter-spacing: .06em !important;
  }
  .logbox.collapsed .log-body { display: none !important; }
}

.z6-guide, .south-z6-guide { background: rgba(46, 120, 72, .5) !important; }
.square-table .seat-col > .z6,
.square-table #seat-south > .z6 {
  background: rgba(46, 120, 72, .5) !important;
  opacity: 1 !important;
  z-index: 2 !important;
}
.square-table .seat-col > .z7,
.square-table .z7 {
  z-index: 40 !important;
  overflow: visible !important;
}
.square-table .z7 .tile.last-discard {
  z-index: 50 !important;
  position: relative !important;
}

/* ===== 界面美化 ===== */
.square-table {
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.08), transparent 28%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 7px),
    radial-gradient(circle at 50% 46%, #1a9a58 0%, var(--felt) 58%, var(--felt-dark) 100%) !important;
  box-shadow:
    inset 0 0 60px rgba(0,0,0,.35),
    0 0 0 8px #2a1c0c,
    0 0 0 12px #8a6a2a,
    0 0 0 16px #d4af37,
    0 18px 40px rgba(0,0,0,.45) !important;
}
.square-table::before, .square-table::after {
  content: "";
  position: absolute;
  width: 18px; height: 18px;
  border: 3px solid #c9843a;
  z-index: 2;
  pointer-events: none;
}
.square-table::before { left: 6px; top: 6px; border-right: 0; border-bottom: 0; }
.square-table::after { right: 6px; bottom: 6px; border-left: 0; border-top: 0; }
.turn-rose { width: 108px !important; height: 108px !important; }
.turn-square { inset: 26px !important; }
.tile.last-discard {
  outline: 2px solid #f3e0a6 !important;
  box-shadow: 0 6px 10px rgba(0,0,0,.45), 0 0 8px rgba(243,224,166,.6) !important;
  animation: tile-settle .28s ease-out, last-flash 1.1s ease-in-out infinite !important;
}
@keyframes tile-settle {
  from { transform: scale(1.55) translateY(-6px); }
  to { transform: scale(1.35); }
}
.seat-col.turn .outer-pack::after {
  background: conic-gradient(from var(--turn-angle), #8a1e1e, #f3e0a6, #d4af37, #fff6d8, #d4af37, #f3e0a6, #8a1e1e) !important;
  animation-duration: 6s !important;
}
.seat-col.turn .seat-meta { color: #fff6d0 !important; text-shadow: 0 0 10px rgba(212,175,55,.8); }
.hand-clock { font-variant-numeric: tabular-nums; }
.hand-clock.clock-urgent {
  color: #ffe14a !important;
  animation: edge-flash .5s steps(2) infinite;
}
.act.seal { transition: transform .12s ease; }
.act.seal:active { transform: translateY(2px) scale(.96); }
.claim-flash { animation: claim-once .7s ease-out 1 !important; }
@keyframes claim-once {
  0% { filter: brightness(1.6); }
  100% { filter: none; }
}
.chip { font-variant-numeric: tabular-nums; }
.avatar { border-radius: 50% !important; border: 2px solid #d4af37 !important; }
.slam-seal {
  display: inline-block;
  margin-bottom: 8px;
  padding: 6px 18px;
  border: 2px solid #f3e0a6;
  color: #fff6d0;
  background: linear-gradient(180deg, #8a1e1e, #3a0c0c);
  letter-spacing: .4em;
  font-weight: 800;
}
.tai-flash { color: #ff4fa3; animation: tai-blink 1.1s steps(2) infinite; font-weight: 800; }
.tai-plain { color: #f3e0a6; }
@keyframes tai-blink { 50% { opacity: .45; } }
.logbox { background: rgba(12,8,4,.62) !important; }
.logbox:hover { background: rgba(12,8,4,.92) !important; }
.log-p0 { color: #d4b3ff !important; }
.log-p1 { color: #8dffb8 !important; }
.log-p2 { color: #8fd4ff !important; }
.log-p3 { color: #ffe58a !important; }
.fold-icon { border-radius: 50% !important; width: 20px !important; height: 20px !important; }
.room-card {
  display: flex; align-items: center; gap: 10px;
  text-align: left; padding: 10px 12px;
  border: 1px solid #d4af37; border-radius: 10px;
  background: rgba(20,14,6,.7); color: #f3e0a6;
  font-family: inherit; cursor: pointer;
}
.room-card b { letter-spacing: .12em; }
.room-card em { margin-left: auto; font-style: normal; color: #cbb58a; font-size: 12px; }
.room-lock { width: 22px; text-align: center; color: #d4af37; }
.panel-col, .auth-box, .menu, #online-box {
  width: min(340px, 92vw) !important;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  margin: 0 auto;
}
.panel-col .menu, #online-box .btn, .auth-box .btn { width: 100%; }
.room-row { display: flex; gap: 8px; align-items: center; width: 100%; }
.room-row input { flex: 1; min-width: 0; }
.room-row .btn { width: auto !important; flex: 0 0 auto; padding: 10px 14px; }
.check-line { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #cbb58a; margin: 8px 0; padding-left: 2px; writing-mode: horizontal-tb; white-space: nowrap; }
.check-line input { margin: 0; width: 16px; height: 16px; }
#room-list { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.lobby-brand { font-size: 48px !important; }
.lobby-seats { width: 100%; }
.splash { align-items: center; }
#online-box input, #online-box select { width: 100%; }
@media (max-width: 520px) {
  .ting-flag { writing-mode: vertical-rl !important; }
  .winner-banner { font-size: 11px !important; }
  .table-stage { overflow: hidden; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .table-stage { inset: 28px 4px 4px; }
  .square-table { top: 50% !important; }
}

@media (max-width: 600px) and (orientation: portrait) {
  .ting-flag {
    position: absolute !important;
    left: -64px !important;
    right: auto !important;
    top: 4px !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 6px 8px !important;
    font-size: 16px !important;
    writing-mode: vertical-rl !important;
    z-index: 25 !important;
  }
  .side-menu { gap: 4px !important; }
  .logbox { margin-top: 0 !important; }
  #seat-south .play-pack {
    width: calc(100vw - 16px) !important;
    left: 0 !important;
    margin-left: calc(-1 * (100vw - 16px) / 2) !important;
    transform: none !important;
    overflow: visible !important;
  }
  #seat-south .outer-pack {
    display: grid !important;
    grid-template-columns: auto auto minmax(0, 1fr) !important;
    grid-template-rows: var(--z3-h) 48px !important;
    grid-template-areas: none !important;
    justify-content: start !important;
    width: max-content !important;
    max-width: 90vw !important;
    margin-left: 0 !important;
    position: relative !important;
    box-sizing: border-box !important;
  }
  #seat-south .z3 { grid-column: 1 / 4 !important; grid-row: 1 !important; width: 90vw !important; max-width: 90vw !important; min-width: 90vw !important; overflow: visible !important; padding: 0 0 0 4px !important; margin-left: 0 !important; z-index: 20 !important; pointer-events: auto !important; }
  #seat-south .z3 .tile { width: calc((90vw - 4px) / 13.5) !important; height: calc((90vw - 4px) / 13.5 * 1.42) !important; --w: calc((90vw - 4px) / 13.5) !important; --h: calc((90vw - 4px) / 13.5 * 1.42) !important; min-width: 0 !important; max-width: none !important; flex: 0 0 auto !important; pointer-events: auto !important; }
  #seat-south .play-pack { overflow: visible !important; pointer-events: auto !important; left: 50% !important; transform: none !important; margin-left: -45vw !important; width: 90vw !important; }
  #seat-south .play-pack .z3 { pointer-events: auto !important; }
  .seat-col .z3 { margin: 0 !important; }
  .seat-anchor.east .play-pack, .seat-anchor.west .play-pack { top: calc(var(--table-size) / 2 + 1px) !important; }
  #seat-south .z5 .act.seal { width: 36px !important; height: 36px !important; flex: 0 0 36px !important; }
  .square-table .z7 { gap: 1px !important; }
  #seat-south .z1 { grid-column: 1 !important; grid-row: 2 !important; width: auto !important; max-width: 40% !important; overflow: visible !important; z-index: 10 !important; }
  .seat-col.east .z1, .seat-col.west .z1, .seat-col.north .z1 { position: absolute !important; right: 4px !important; top: 50% !important; transform: translateY(-50%) !important; z-index: 6 !important; background: rgba(12,8,4,.72); border-radius: 6px; padding: 2px 6px; }
  #seat-south .z4 { grid-column: 2 !important; grid-row: 2 !important; width: auto !important; max-width: none !important; overflow: visible !important; margin-top: 8px !important; z-index: 25 !important; }
  #seat-south .outer-pack { width: calc(90vw + 5px) !important; max-width: calc(90vw + 5px) !important; }
  #seat-south .z4 .tile { width: calc(90vw / 13.5 * 1.4) !important; height: calc(90vw / 13.5 * 1.42 * 1.4) !important; --w: calc(90vw / 13.5 * 1.4) !important; --h: calc(90vw / 13.5 * 1.42 * 1.4) !important; max-width: none !important; flex: 0 0 auto !important; }
  #seat-south .z4 .tile.selected { z-index: 30 !important; }
  #seat-south .z5 { grid-column: 3 !important; grid-row: 2 !important; width: auto !important; justify-self: start !important; }
}

@media (max-width: 820px) {
  .logbox { width: min(346px, 46vw) !important; }
  .winner-banner {
    position: fixed !important;
    top: 38% !important;
    left: 50% !important;
    right: auto !important;
    transform: translate(-50%, -50%) !important;
    z-index: 12 !important;
    font-size: 16px !important;
    max-width: 90vw !important;
    text-align: center !important;
    pointer-events: none !important;
  }
  #seat-south .z5 .act[data-k="hu"],
  #seat-south .z5 .act[data-k="review"] {
    position: fixed !important;
    bottom: 18px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 40 !important;
    width: auto !important;
    min-width: 88px !important;
    height: 44px !important;
    font-size: 16px !important;
  }
}
  #seat-south .z5 .act[data-k="review"] {
    width: auto !important;
    min-width: 92px !important;
    height: auto !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
  #seat-south .z1 .seat-line { display: flex; flex-direction: column; align-items: stretch; gap: 2px; }
  #seat-south .z1 .cult-bar { width: 100%; margin: 0; display: block; }
  #seat-south .z4 .tile.selected {
    z-index: 30 !important;
  }
}


.title-marquee {
  position: fixed;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 40;
  padding: 8px 28px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff4fa3, #ffe14a, #ff4fa3);
  color: #2a1a04;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: .08em;
  box-shadow: 0 0 18px #ffe14a;
  white-space: nowrap;
  pointer-events: none;
}
.title-marquee.flash {
  animation: title-flash .6s steps(2) infinite;
}
@keyframes title-flash {
  50% { filter: brightness(1.4); box-shadow: 0 0 28px #ff4fa3; }
}
.title-badge {
  color: #ffd36a;
  font-weight: 700;
  margin-left: 4px;
}
.opp-meta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  white-space: nowrap;
}
.seat-col.east .z1, .seat-col.west .z1, .seat-col.north .z1 {
  position: absolute;
  right: -4px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 6;
  background: rgba(12,8,4,.72);
  border-radius: 6px;
  padding: 2px 6px;
}
.title-book { color: #f3e0a6; }
.title-book h3 { margin: 0 0 8px; }
.title-bar {
  height: 10px;
  background: #2a2010;
  border-radius: 6px;
  overflow: hidden;
  margin: 8px 0;
}
.title-bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #b8860b, #ffe14a);
}
.title-list { max-height: 46vh; overflow: auto; margin-top: 8px; }
.title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 4px;
  border-bottom: 1px solid #3a2a12;
  opacity: .45;
}
.title-row .realm-art { width: 96px; height: 96px; object-fit: contain; flex: 0 0 96px; background: #1a1408; border-radius: 8px; }
@media (max-width: 820px) {
  .title-row .realm-art { width: 72px; height: 72px; flex: 0 0 72px; }
}
.title-row.reached { opacity: 1; }
.title-row.highest { color: #ffe14a; font-weight: 700; }
.title-row em { font-style: normal; color: #ff4fa3; }

.title-book { position: relative; }
.title-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: #5a1030;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
}
.title-row em { font-style: normal; color: #ff4fa3; margin-left: auto; }

.cult-bar {
  display: inline-block;
  width: 36px;
  height: 6px;
  margin-left: 4px;
  background: #2a2010;
  border-radius: 4px;
  overflow: hidden;
  vertical-align: middle;
}
.cult-bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #b8860b, #ffe14a);
}
.seat-line { white-space: nowrap; }

.seat-line { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 6px; }
.realm-logo { height: 36px; width: auto; object-fit: contain; flex: 0 0 auto; }
.profile-realm { display: flex; align-items: center; gap: 12px; margin: 8px 0 12px; }
.realm-logo-lg { width: 144px; height: 144px; object-fit: contain; background: #1a1408; border-radius: 12px; }
.profile-realm span { font-size: 22px; color: #f6e2a4; letter-spacing: .12em; }
.seat-text-wrap { display: flex; flex-direction: column; justify-content: space-between; height: 36px; min-width: 0; }
.seat-text { white-space: nowrap; font-size: 12px; line-height: 1.1; }
.cult-bar { width: 100%; margin: 0; height: 6px; }

.hu-flash {
  color: #ff4fa3;
  font-size: 1.4em;
  font-weight: 800;
  text-shadow: 0 0 8px #ff4fa3;
}

/* 各区互不遮挡：手牌不溢出盖住第一区，第一区在上层 */
.z3, .square-table .z3, #seat-south .z3 { overflow: hidden !important; z-index: 4 !important; }
.z1, .square-table .z1, #seat-south .z1 { position: relative !important; z-index: 10 !important; overflow: visible !important; }


/* ===== 竖屏移动：倒计时顶栏居中 + 座位名防溢出 ===== */
.table-clock.hand-clock {
  position: fixed !important;
  left: 50% !important;
  top: calc(8px + env(safe-area-inset-top, 0px)) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  z-index: 40 !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  font-size: 16px !important;
  pointer-events: none;
}
.table-clock.clock-urgent {
  animation: clock-flash 0.5s steps(2) infinite;
  border-color: #ff5a5a !important;
  color: #fff !important;
}
.share-fab, .phrase-fab {
  position: fixed;
  right: 8px;
  z-index: 35;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid #d4af37;
  background: rgba(28,18,8,.92);
  color: #f6e2a4;
  font-size: 13px;
  box-shadow: 0 2px 10px rgba(0,0,0,.4);
}
.share-fab { bottom: 72px; }
/* 20261019zp：发表情/快捷语缩小并抬高，避开下方手牌与出牌区 */
.phrase-fab {
  width: 30px; height: 30px; font-size: 14px; line-height: 1;
  bottom: calc(118px + env(safe-area-inset-bottom, 0px));
  right: 6px; padding: 0;
  opacity: .92; box-shadow: 0 1px 6px rgba(0,0,0,.35);
}
.emote-btn { font-size: 18px !important; min-width: 32px !important; min-height: 32px !important; padding: 2px !important; }
.emote-row { gap: 4px !important; margin-top: 4px !important; padding-top: 4px !important; }
.share-fab.hidden, .phrase-fab.hidden, .phrase-panel.hidden { display: none !important; }
.phrase-panel {
  position: fixed; right: 12px; bottom: 72px; z-index: 36;
  width: min(240px, 70vw);
  background: rgba(16,10,4,.96);
  border: 1px solid #c4a35a;
  border-radius: 12px;
  padding: 8px;
  display: flex; flex-wrap: wrap; gap: 6px;
}
.phrase-panel button {
  border: 1px solid #8a6a2a; background: #2a1c0c; color: #f6e2a4;
  border-radius: 8px; padding: 6px 8px; font-size: 13px;
}
.phrase-bubbles { position: fixed; inset: 0; pointer-events: none; z-index: 34; }
.phrase-bubble {
  position: absolute;
  max-width: 46vw;
  padding: 6px 10px;
  background: rgba(255,248,220,.95);
  color: #3a2a10;
  border-radius: 12px;
  border: 1px solid #d4af37;
  font-size: 14px;
  animation: bubble-pop .25s ease-out;
  transform: translate(-50%, -100%);
}
@keyframes bubble-pop { from { opacity: 0; transform: translate(-50%, -80%) scale(.9);} to { opacity: 1; transform: translate(-50%, -100%) scale(1);} }
.cult-table-wrap { max-height: 220px; overflow: auto; margin: 8px 0; }
.cult-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cult-table th, .cult-table td { border: 1px solid #6a5428; padding: 4px 8px; text-align: left; }
.cult-rules ul { padding-left: 1.2em; }
.seat-line, .seat-text-wrap, .seat-text {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.opp-meta {
  display: flex; align-items: center; gap: 4px;
  max-width: 100%;
  overflow: hidden;
}
@media (max-width: 520px) {
  .seat-col.east, .seat-col.west {
    width: min(160px, 42vw) !important;
    max-width: 42vw !important;
    height: auto !important;
    min-height: 40px;
  }
  .seat-col.east { left: calc(100% - 8px) !important; }
  .seat-col.west { right: calc(100% - 8px) !important; }
  .seat-meta, .opp-meta { font-size: 11px !important; gap: 4px; }
  .chip { font-size: 11px !important; min-width: 28px; padding: 1px 4px; }
  .avatar { width: 18px; height: 18px; }
  .realm-logo { width: 16px; height: 16px; }
  .seat-col.north { max-width: 92vw; }
  .cult-bar { width: 36px; height: 4px; }
  .hand-clock:not(.table-clock) { display: none !important; }
}

/* ===== 战绩 / 修为榜（墨金风） ===== */
#modal-body.panel-stats, #modal-body.panel-rank {
  width: min(760px, 94vw) !important;
  background: radial-gradient(ellipse at 50% -10%, #2a1d0a 0%, #0d0905 62%) !important;
  border: 1px solid #8a6a2a; border-radius: 14px;
  box-shadow: 0 0 0 1px #2a1d0a inset, 0 18px 50px rgba(0,0,0,.6);
  padding: 22px 22px 18px;
}
.stats-book, .rank-book { position: relative; color: #f3e0a6; font-family: "Noto Serif SC", serif; }
.st-title { font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-size: 34px; font-weight: 400; letter-spacing: .3em; text-align: center; margin: 2px 0 2px; color: #f3e0a6; text-shadow: 0 0 14px rgba(212,175,55,.35); }
.st-sub { text-align: center; color: #a89060 !important; font-size: 12px !important; letter-spacing: .12em; margin: 0 0 14px; }
.st-tabs { display: flex; justify-content: center; gap: 8px; margin-bottom: 16px; }
.st-tab { font-family: "Ma Shan Zheng", serif; font-size: 20px; width: 52px; height: 40px; border-radius: 8px; border: 1px solid #5c4316; background: #120c05; color: #b89c62; cursor: pointer; }
.st-tab.on { background: linear-gradient(180deg, #e8c766, #b88a2a); color: #1a1208; border-color: #f3e0a6; box-shadow: 0 0 12px rgba(212,175,55,.45); }
.st-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.st-card { position: relative; border: 1px solid #4a3812; border-radius: 10px; padding: 12px 10px 10px; text-align: center; background: linear-gradient(180deg, rgba(212,175,55,.08), rgba(0,0,0,.25)); overflow: hidden; }
.st-card::before { content: ""; position: absolute; inset: 4px; border: 1px solid rgba(212,175,55,.14); border-radius: 7px; pointer-events: none; }
.st-card em { display: block; font-style: normal; font-size: 13px; color: #b89c62; letter-spacing: .3em; }
.st-card b { display: block; font-family: "Ma Shan Zheng", serif; font-weight: 400; font-size: 34px; line-height: 1.2; color: #ffe39a; }
.st-card small { font-size: 11px; color: #8f7a4f; }
.st-card.c-pao b, .st-card.c-prate b { color: #ff9a8a; }
.st-card.c-rate b { color: #9ee6b4; }
.st-trend { margin-top: 16px; border-top: 1px dashed #4a3812; padding-top: 10px; }
.st-legend { display: flex; gap: 14px; justify-content: flex-end; font-size: 11px; color: #a89060; }
.st-legend i, .st-col i { display: inline-block; }
.st-legend i { width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
.st-legend i.g, .st-col i.g { background: linear-gradient(180deg, #d4af37, #6a5014); }
.st-legend i.h, .st-col i.h { background: linear-gradient(180deg, #9ee6b4, #2f7a4a); }
.st-bars { display: flex; align-items: flex-end; gap: 6px; height: 120px; margin-top: 6px; }
.st-bar { flex: 1; display: flex; flex-direction: column; align-items: center; min-width: 0; height: 100%; }
.st-col { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.st-col i { width: 38%; min-height: 2px; border-radius: 3px 3px 0 0; }
.st-bar span { font-size: 10px; color: #8f7a4f; margin-top: 3px; white-space: nowrap; }
.st-total { text-align: center; font-size: 12px !important; color: #a89060 !important; margin: 10px 0 0; }

.rk-podium { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 10px; align-items: end; margin: 6px 0 14px; }
.rk-pod { position: relative; text-align: center; border: 1px solid #5c4316; border-radius: 12px; padding: 12px 8px 10px; background: linear-gradient(180deg, rgba(212,175,55,.12), rgba(0,0,0,.35)); }
.rk-pod.rk-p1 { border-color: #f3e0a6; box-shadow: 0 0 22px rgba(255,215,110,.35); padding-top: 18px; }
.rk-pod.rk-p2 { border-color: #c9d1d8; }
.rk-pod.rk-p3 { border-color: #c08a5a; }
.rk-pod.me, .rk-row.me { outline: 2px solid #9ee6b4; outline-offset: 1px; }
.rk-medal { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); width: 30px; height: 30px; line-height: 28px; border-radius: 50%; font-family: "Ma Shan Zheng", serif; font-size: 18px; color: #1a1208; border: 1px solid #fff3c4; }
.rk-p1 .rk-medal { background: linear-gradient(#ffe48a, #c99a22); }
.rk-p2 .rk-medal { background: linear-gradient(#f2f5f7, #9aa4ad); }
.rk-p3 .rk-medal { background: linear-gradient(#f0c39a, #9a5f2e); }
.rk-art { width: 100%; max-width: 150px; aspect-ratio: 1; object-fit: cover; border-radius: 10px; border: 1px solid #4a3812; background: #0a0703; }
.rk-p1 .rk-art { max-width: 180px; }
.rk-name { font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "Ma Shan Zheng", serif; font-weight: 700; font-size: 20px; color: #ffe39a; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: .06em; }
.rk-realm { font-size: 13px; color: #d4af37; }
.rk-pts { font-size: 12px; color: #b89c62; }
.rk-prog { height: 5px; border-radius: 3px; background: #2a1d0a; overflow: hidden; margin: 6px auto 2px; max-width: 160px; }
.rk-prog i { display: block; height: 100%; background: linear-gradient(90deg, #8a6a2a, #ffe39a); }
.rk-tip { display: block; font-size: 10px; color: #8f7a4f; }
.rk-list { display: flex; flex-direction: column; gap: 6px; }
.rk-row { display: grid; grid-template-columns: 34px 46px 1fr auto; align-items: center; gap: 10px; padding: 6px 10px; border: 1px solid #3a2e10; border-radius: 10px; background: rgba(0,0,0,.25); }
.rk-no { font-family: "Ma Shan Zheng", serif; font-size: 20px; color: #b89c62; text-align: center; }
.rk-badge { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; border: 1px solid #d4af37; background: #0a0703; }
.rk-who { min-width: 0; }
.rk-who b { font-weight: 700; color: #f3e0a6; margin-right: 6px; }
.rk-who em { font-style: normal; font-size: 12px; color: #d4af37; }
.rk-who .rk-prog { margin: 4px 0 1px; max-width: none; }
.rk-who .rk-tip { text-align: left; }
.rk-num { font-family: "Ma Shan Zheng", serif; font-size: 22px; color: #ffe39a; }
@media (max-width: 520px) {
  #modal-body.panel-stats, #modal-body.panel-rank { padding: 16px 12px 12px; }
  .st-title { font-size: 28px; }
  .st-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .st-card b { font-size: 28px; }
  .st-bars { height: 96px; gap: 3px; }
  .st-bar span { font-size: 9px; }
  .rk-podium { gap: 6px; }
  .rk-name { font-size: 16px; }
  .rk-realm, .rk-pts { font-size: 11px; }
  .rk-tip { display: none; }
  .rk-row { grid-template-columns: 26px 38px 1fr auto; gap: 8px; padding: 5px 8px; }
  .rk-badge { width: 38px; height: 38px; }
  .rk-who .rk-tip { display: block; }
}
#modal-body .st-title { font-size: 34px !important; font-family: "Ma Shan Zheng", "Noto Serif SC", serif !important; }
@media (max-width: 520px) { #modal-body .st-title { font-size: 28px !important; } }
.st-card b, .rk-num, .rk-no { font-family: "Noto Serif SC", serif !important; font-weight: 700 !important; }
.st-card b { font-size: 30px; }

/* ===== v3 table fixes ===== */
/* 1. 本家信息：行与修为条贴合 */
#seat-south .z1 .seat-text-wrap { height: auto !important; justify-content: center !important; gap: 0 !important; }
#seat-south .z1 .seat-text { line-height: 1.15 !important; margin: 0 !important; padding: 0 !important; display: block; }
#seat-south .z1 .cult-bar { margin: 1px 0 0 !important; }
/* 2. 倒计时进入中央方块 */
.center-clock {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  font: 700 30px/1 "Noto Serif SC", serif; color: #f3d36a;
  text-shadow: 0 0 8px rgba(243,211,106,.55), 0 2px 2px rgba(0,0,0,.6);
  font-variant-numeric: tabular-nums; z-index: 6; pointer-events: none;
}
.center-clock.hidden { display: none !important; }
.center-clock.clock-urgent { color: #ff6b5b; text-shadow: 0 0 10px rgba(255,80,60,.8); animation: cc-pulse .5s ease-in-out infinite alternate; }
@keyframes cc-pulse { to { transform: translate(-50%, -50%) scale(1.12); } }
@media (max-width: 820px) { .center-clock { font-size: 22px; } }
/* 3. 选中/抬起的手牌不被裁切 */
#seat-south, #seat-south .play-pack, #seat-south .outer-pack, #seat-south .z4, .seat-anchor.south { overflow: visible !important; }
#seat-south .z4 .tile.selected, #seat-south .z4 .tile.claim-pop { position: relative; z-index: 60 !important; }
.seat-anchor.south { z-index: 20; }
/* 4. 吃碰杠来源三角上移，不压牌 */
.meld-arrow.up { top: -15px !important; }
.meld-arrow.down { bottom: -15px !important; }
.meld-arrow.left { left: -15px !important; }
.meld-arrow.right { right: -15px !important; }
.melds .meld { margin-top: 6px; }
/* 5. 多个吃选项横排 */
#chi-bar { display: none; }
#chi-bar.on {
  display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; justify-content: center;
  position: absolute; left: 50%; bottom: calc(100% + 26px); transform: translateX(-50%);
  z-index: 70; padding: 6px 8px; border-radius: 10px;
  background: rgba(20,12,4,.86); border: 1px solid rgba(212,175,55,.75);
  box-shadow: 0 6px 18px rgba(0,0,0,.5); max-width: 96vw;
}
.chi-opt {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 4px 6px 3px; border-radius: 8px; cursor: pointer;
  background: linear-gradient(180deg, #3a2a10, #1d1406); border: 1px solid #b8913a; color: #ffe14a;
}
.chi-opt:hover, .chi-opt:active { border-color: #ffe14a; box-shadow: 0 0 10px rgba(255,225,74,.6); }
.chi-tiles { display: flex; gap: 1px; }
.chi-tiles .tile { --w: 26px; --h: 37px; width: 26px !important; height: 37px !important; transform: none !important; }
.chi-tiles .tile.chi-take { box-shadow: 0 0 0 2px #ffe14a; }
.chi-lab { font: 700 13px/1 "Noto Serif SC", serif; letter-spacing: 2px; }
@media (max-width: 520px) {
  #chi-bar.on { gap: 5px; padding: 4px 5px; bottom: calc(100% + 20px); }
  .chi-tiles .tile { --w: 22px; --h: 31px; width: 22px !important; height: 31px !important; }
}
#seat-south #my-hand, #seat-south .z3 { overflow: visible !important; position: relative; z-index: 26 !important; }
#seat-south .z3 .tile.selected, #seat-south .z3 .tile.claim-pop { position: relative; z-index: 60 !important; }
#seat-south .z5 { pointer-events: none !important; }
#seat-south .z5 > * { pointer-events: auto; }
#seat-south .play-pack { z-index: 30 !important; }
/* ===== 大境界头像框 ===== */
.avatar-frame { position: relative; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; flex: 0 0 auto; }
.avatar-frame[class*="frame-"]::after {
  content: ""; position: absolute; inset: -3px; border-radius: 50%; pointer-events: none;
  border: 2px solid var(--fc, #d4af37); box-shadow: 0 0 6px var(--fg, rgba(212,175,55,.6)), inset 0 0 4px var(--fg, rgba(212,175,55,.5));
}
.avatar-frame.big[class*="frame-"]::after { inset: -5px; border-width: 3px; }
.avatar-frame.frame-jindan { --fc: #e8c766; --fg: rgba(232,199,102,.7); }
.avatar-frame.frame-xiantu { --fc: #7fd3ff; --fg: rgba(127,211,255,.7); }
.avatar-frame.frame-shengdao { --fc: #c58bff; --fg: rgba(197,139,255,.75); }
.avatar-frame.frame-zaohua { --fc: #5fe3a1; --fg: rgba(95,227,161,.75); }
.avatar-frame.frame-wuji { --fc: #ffffff; --fg: rgba(255,255,255,.8); }
.avatar-frame.frame-yongheng { --fc: #ff7a59; --fg: rgba(255,122,89,.8); }
.avatar-frame.frame-wushang { --fc: #ffe14a; --fg: rgba(255,90,200,.85); }
.avatar-frame.frame-wushang::after, .avatar-frame.frame-yongheng::after { animation: frame-glow 1.6s ease-in-out infinite alternate; }
@keyframes frame-glow { to { box-shadow: 0 0 14px var(--fg), inset 0 0 6px var(--fg); } }
.major-tag { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 8px; font-size: 11px; line-height: 16px; font-style: normal; color: #1a1208; background: var(--fc, #d4af37); vertical-align: middle; white-space: nowrap; }
.major-tag.frame-jindan { --fc: #e8c766; } .major-tag.frame-xiantu { --fc: #7fd3ff; } .major-tag.frame-shengdao { --fc: #c58bff; }
.major-tag.frame-zaohua { --fc: #5fe3a1; } .major-tag.frame-wuji { --fc: #f2f2f2; } .major-tag.frame-yongheng { --fc: #ff9a7a; } .major-tag.frame-wushang { --fc: #ffe14a; }
.rk-tabs { margin: 4px 0 6px; }
.rk-empty { text-align: center; color: #b89c62; padding: 28px 0; }
@media (max-width: 520px) { .rk-tabs .st-tab { width: auto; padding: 0 10px; font-size: 17px; height: 34px; } }
.rk-tabs .st-tab { width: auto; min-width: 52px; padding: 0 12px; white-space: nowrap; }
.rk-podium:has(> .rk-pod:only-child) { display: flex; justify-content: center; }
.rk-podium:has(> .rk-pod:only-child) .rk-pod { width: min(220px, 60%); }
/* v4: 竖屏 14 张手牌完整放下（含摸牌间隙） */
@media (max-width: 520px) {
  #seat-south .z3 .tile { --hw: var(--hw-fit, calc((100vw - 62px) / 14.3)); width: var(--hw) !important; height: calc(var(--hw) * 1.42) !important; --w: var(--hw) !important; --h: calc(var(--hw) * 1.42) !important; }
  #seat-south .z3 { gap: 1px !important; }
}
/* ===== 天劫局 ===== */
#trib-fx { position: absolute; inset: 0; pointer-events: none; z-index: 3; overflow: hidden; border-radius: inherit; }
.trib-clouds { position: absolute; inset: -20% -10% auto; height: 70%;
  background: radial-gradient(ellipse at 20% 40%, rgba(30,26,48,.92), transparent 55%), radial-gradient(ellipse at 70% 30%, rgba(22,20,40,.95), transparent 60%), radial-gradient(ellipse at 50% 70%, rgba(40,34,70,.8), transparent 60%);
  filter: blur(6px); animation: trib-drift 9s ease-in-out infinite alternate; }
@keyframes trib-drift { to { transform: translateX(6%); } }
#table-screen.tribulation .felt-core, #table-screen.tribulation .square-table { filter: saturate(.7) brightness(.82); }
.trib-bolt { position: absolute; top: 0; width: 6px; height: 46%; background: linear-gradient(#fff, #b8d8ff 60%, transparent);
  clip-path: polygon(50% 0, 100% 30%, 60% 32%, 100% 70%, 30% 40%, 70% 38%, 0 0); opacity: 0; filter: drop-shadow(0 0 8px #9cf); }
.trib-bolt.b1 { left: 28%; animation: trib-bolt 4.2s infinite; }
.trib-bolt.b2 { left: 68%; animation: trib-bolt 5.6s 1.7s infinite; }
@keyframes trib-bolt { 0%, 90%, 100% { opacity: 0; } 91%, 94% { opacity: 1; } 92% { opacity: .2; } }
.trib-flash { position: absolute; inset: 0; background: rgba(200,220,255,.0); animation: trib-flash 4.2s infinite; }
@keyframes trib-flash { 0%, 90%, 100% { background: rgba(200,220,255,0); } 91% { background: rgba(200,220,255,.22); } 93% { background: rgba(200,220,255,.08); } }
.trib-label { position: absolute; left: 50%; top: 2%; transform: translateX(-50%); padding: 3px 12px; border-radius: 999px; white-space: nowrap;
  font: 700 14px/1.4 "Noto Serif SC", serif; color: #dff0ff; background: rgba(20,24,50,.75); border: 1px solid #8fc4ff; box-shadow: 0 0 12px rgba(143,196,255,.6); }
.seat-col.trib-seat .z1::after { content: "⚡天劫"; margin-left: 4px; padding: 0 5px; border-radius: 6px; font-size: 11px; color: #e8f4ff; background: #3a4a8a; box-shadow: 0 0 6px #8fc4ff; white-space: nowrap; }
.thunder-strike { position: fixed; inset: 0; z-index: 200; pointer-events: none; display: flex; align-items: center; justify-content: center; animation: ts-bg 1.8s ease-out forwards; }
.thunder-strike svg { position: absolute; left: 50%; top: 0; width: 120px; height: 62vh; transform: translateX(-50%); }
.thunder-strike polyline { fill: #f4fbff; stroke: #9cd0ff; stroke-width: 3; filter: drop-shadow(0 0 14px #8fc4ff); animation: ts-bolt 1.8s steps(1) forwards; }
.thunder-text { position: relative; top: 8vh; font: 900 44px/1 "Ma Shan Zheng", "Noto Serif SC", serif; color: #fff; text-shadow: 0 0 18px #6cb6ff, 0 0 4px #000; animation: ts-shake .5s ease-in-out 3; }
@keyframes ts-bg { 0% { background: rgba(220,235,255,.85); } 12% { background: rgba(20,30,60,.35); } 20% { background: rgba(220,235,255,.6); } 100% { background: rgba(0,0,0,0); } }
@keyframes ts-bolt { 0% { opacity: 1; } 60% { opacity: 1; } 100% { opacity: 0; } }
@keyframes ts-shake { 25% { transform: translateX(-6px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(2deg); } }
/* v5: 对家/上下家的空动作区(.z5.actions，无内容)在竖屏下压在本家首张手牌上，吃掉点击 → 不接收事件 */
.seat-col:not(#seat-south) .z5.actions { pointer-events: none !important; }
/* v5: 联网面板「不允许访客加入」紧凑行：文字 + 开关 */
#online-box .toggle-line { display: flex !important; align-items: center; justify-content: flex-start; gap: 10px; width: auto !important; margin: 2px 0 4px; cursor: pointer; user-select: none; color: #e9d38c; font-size: 15px; }
#online-box .toggle-line input#room-private { position: absolute; opacity: 0; width: 1px !important; height: 1px; margin: 0; pointer-events: none; }
#online-box .toggle-ui { position: relative; flex: 0 0 auto; width: 42px; height: 24px; border-radius: 999px; background: #2a2010; border: 1px solid #8a6d2a; transition: background .2s; }
#online-box .toggle-ui::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #b89c62; transition: left .2s, background .2s; }
#online-box #room-private:checked + .toggle-ui { background: linear-gradient(180deg, #e8c766, #b88a2a); border-color: #f3e0a6; }
#online-box #room-private:checked + .toggle-ui::after { left: 20px !important; background: #fff6d8 !important; box-shadow: 0 1px 3px rgba(0,0,0,.6); }
#online-box #room-private:focus-visible + .toggle-ui { outline: 2px solid #f3d36a; outline-offset: 2px; }
/* v6: 天劫横幅移到中央方块正上方（不压中央方块、不压对家花牌/弃牌） */
#turn-rose .trib-label { position: absolute; left: 50%; top: auto; bottom: calc(100% + 8px); transform: translateX(-50%); z-index: 7; pointer-events: none; }
@media (max-width: 520px) { #turn-rose .trib-label { font-size: 12px; padding: 2px 9px; bottom: calc(100% + 5px); } }
/* v6: 手机本家境界图放大 2 倍（16→32px），信息行与修为条仍贴合 */
@media (max-width: 520px) {
  #seat-south .z1 .realm-logo { width: 32px !important; height: 32px !important; }
  #seat-south .z1 .avatar-frame.seat { width: 32px; height: 32px; }
  #seat-south .z1 .seat-line { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 4px !important; min-width: 0; }
  #seat-south .z1 .seat-text-wrap { flex: 1 1 auto; min-width: 0; }
  #seat-south .z1 .seat-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
/* ===== 突破仪式 ===== */
.bt-ceremony { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 45%, rgba(60,40,8,.75), rgba(0,0,0,.92)); animation: bt-in .5s ease-out; cursor: pointer; overflow: hidden; }
.bt-ceremony.out { animation: bt-out .4s ease-in forwards; }
@keyframes bt-in { from { opacity: 0; } }
@keyframes bt-out { to { opacity: 0; } }
.bt-rays { position: absolute; left: 50%; top: 45%; width: 220vmax; height: 220vmax; transform: translate(-50%, -50%); background: repeating-conic-gradient(from 0deg, rgba(255,215,110,.16) 0 6deg, transparent 6deg 18deg); animation: bt-spin 14s linear infinite; }
@keyframes bt-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.bt-glow { position: absolute; left: 50%; top: 42%; width: 60vmin; height: 60vmin; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(255,236,160,.85), rgba(255,200,80,.25) 45%, transparent 70%); animation: bt-pulse 1.6s ease-in-out infinite alternate; }
@keyframes bt-pulse { from { transform: translate(-50%, -50%) scale(.85); opacity: .7; } to { transform: translate(-50%, -50%) scale(1.1); opacity: 1; } }
.bt-card { position: relative; text-align: center; width: min(520px, 88vw); animation: bt-rise .9s cubic-bezier(.2,.8,.2,1); }
@keyframes bt-rise { from { transform: translateY(30px) scale(.8); opacity: 0; filter: brightness(3); } }
.bt-art { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 0 40px rgba(255,215,110,.8), 0 0 0 2px #f3d36a; animation: bt-reveal 1.4s ease-out; }
@keyframes bt-reveal { from { clip-path: circle(0% at 50% 50%); filter: brightness(2.5); } to { clip-path: circle(75% at 50% 50%); } }
.bt-title { margin-top: 14px; font: 400 56px/1 "Ma Shan Zheng", "Noto Serif SC", serif; color: #ffe58a; letter-spacing: .3em; text-shadow: 0 0 18px #ffb400, 0 2px 0 #5a3a00; }
.bt-name { margin-top: 8px; font: 700 20px/1.4 "Noto Serif SC", serif; color: #fff2c4; }
.bt-major { display: inline-block; margin-top: 8px; padding: 4px 12px; border-radius: 999px; font-size: 14px; color: #1a1208; background: linear-gradient(90deg, #ffe14a, #f3b23a); }
.bt-tip { margin-top: 12px; font-size: 12px; color: #b89c62; }
@media (max-width: 520px) { .bt-title { font-size: 44px; } .bt-name { font-size: 17px; } }
/* ===== v7 ===== */
/* 本家境界图再放大 1.5 倍：手机 32→48px，桌面 36→54px；天劫文字在修为条下方 */
#seat-south .z1 .realm-logo { width: 54px !important; height: 54px !important; object-fit: contain; }
#seat-south .z1 .avatar-frame.seat { width: 54px; height: 54px; }
@media (max-width: 520px) {
  #seat-south .z1 .realm-logo { width: 48px !important; height: 48px !important; }
  #seat-south .z1 .avatar-frame.seat { width: 48px; height: 48px; }
}
#seat-south .z1 .seat-text-wrap { display: flex !important; flex-direction: column !important; justify-content: center !important; height: auto !important; gap: 0 !important; }
.trib-under { display: block; margin-top: 2px; font-size: 11px; line-height: 1.3; color: #dff0ff; text-shadow: 0 0 6px #6cb6ff; white-space: nowrap; }
#seat-south.trib-seat .z1::after { content: none !important; }
#turn-rose .trib-label { display: none !important; }
/* 修为榜：恢复 da6e175 原版领奖台（方形插画、壹贰叁徽章），头像框改为方形描边 */
.rk-art-wrap { position: relative; display: block; margin: 0 auto; max-width: 150px; border-radius: 10px; }
.rk-p1 .rk-art-wrap { max-width: 180px; }
.rk-pod .rk-art { display: block; width: 100%; height: auto !important; max-width: none; aspect-ratio: 1; object-fit: cover; border-radius: 10px; border: 1px solid #4a3812; background: #0a0703; }
.rk-art-wrap[class*="frame-"]::after { content: ""; position: absolute; inset: -3px; border-radius: 12px; pointer-events: none; border: 2px solid var(--fc, #d4af37); box-shadow: 0 0 8px var(--fg, rgba(212,175,55,.6)); }
.rk-art-wrap.frame-jindan { --fc: #e8c766; --fg: rgba(232,199,102,.7); } .rk-art-wrap.frame-xiantu { --fc: #7fd3ff; --fg: rgba(127,211,255,.7); }
.rk-art-wrap.frame-shengdao { --fc: #c58bff; --fg: rgba(197,139,255,.75); } .rk-art-wrap.frame-zaohua { --fc: #5fe3a1; --fg: rgba(95,227,161,.75); }
.rk-art-wrap.frame-wuji { --fc: #fff; --fg: rgba(255,255,255,.8); } .rk-art-wrap.frame-yongheng { --fc: #ff7a59; --fg: rgba(255,122,89,.8); } .rk-art-wrap.frame-wushang { --fc: #ffe14a; --fg: rgba(255,90,200,.85); }
.rk-row .rk-badge { width: 46px; height: 46px !important; }
@media (max-width: 520px) { .rk-row .rk-badge { width: 38px; height: 38px !important; } }
.rk-podium:has(> .rk-pod:only-child) .rk-pod { width: min(200px, 56%); }
/* 大厅：用户名 = 境界小图 + 名字，点击打开个人资料 */
#hello-name { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
#hello-name .hello-logo { width: 56px; height: 56px; object-fit: contain; border-radius: 50%; }
#hello-name b { font-weight: 700; }
/* 20261020ai 「好友」「勋章」移入个人资料后，手机上也显示「个人资料」按钮（好友申请红点挂在这里）；点用户名同样可进入 */
/* 竖屏左右家：手牌贴近桌边 + 不旋转的紧凑名牌（座风·名字·筹码） */
@media (max-width: 520px) {
  body.side-tags #seat-west .z1, body.side-tags #seat-east .z1 { visibility: hidden !important; }
  body.side-tags #seat-west .z3, body.side-tags #seat-east .z3 { padding-bottom: 9px !important; box-sizing: border-box; }
}
.side-tag { position: fixed; z-index: 15; display: none; align-items: center; gap: 3px; padding: 1px 6px; border-radius: 8px; white-space: nowrap; pointer-events: none;
  font: 600 11px/16px "Noto Serif SC", serif; color: #f3e0a6; background: rgba(12,8,4,.82); border: 1px solid rgba(212,175,55,.6); }
body.side-tags .side-tag { display: inline-flex; }
.side-tag b { color: #ffe39a; font-weight: 700; }
.side-tag i { font-style: normal; color: #cfe3ff; margin-left: 2px; }
.side-tag i.up { color: #7ee09a; } .side-tag i.down { color: #ff8f7a; }
.side-tag.turn { border-color: #ffe14a; box-shadow: 0 0 8px rgba(255,225,74,.7); }
.side-tag em { font-style: normal; color: #9cd0ff; }


/* ===== v8: 规则页签 / 大满贯特效 / 调试面板 / 资料与大厅境界图 ===== */
.avatar-frame.big.profile { width: 144px; height: 144px; }
.avatar-frame.big.profile .realm-logo-lg { width: 144px; height: 144px; }
@media (max-width: 520px) {
  .realm-logo-lg { width: 144px; height: 144px; }
  .avatar-frame.big.profile { width: 144px; height: 144px; }
}

.rules-panel { max-height: min(82vh, 900px); overflow: auto; }
.rules-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 12px; }
.rules-tab {
  border: 1px solid #d4af37; background: #16120a; color: #e6d3a8;
  border-radius: 999px; padding: 6px 14px; font: inherit; cursor: pointer;
}
.rules-tab.on { background: linear-gradient(180deg, #c9a227, #8a6a12); color: #1a1204; font-weight: 700; }
.rules-pane { min-height: 120px; }
.rules-pane.hidden { display: none !important; }

.slam-fx {
  position: fixed; inset: 0; z-index: 220; pointer-events: none;
  display: flex; align-items: center; justify-content: center;
  animation: slam-fade .35s ease-out;
}
.slam-fx.out { animation: slam-out .45s ease-in forwards; }
@keyframes slam-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes slam-out { to { opacity: 0; transform: scale(1.06); } }
.slam-burst {
  position: absolute; inset: -10%;
  background: radial-gradient(circle at 50% 45%, rgba(255,220,120,.35), transparent 55%);
  animation: slam-burst 1.2s ease-out;
}
@keyframes slam-burst { from { opacity: 0; transform: scale(.6); } 40% { opacity: 1; } to { opacity: .55; transform: scale(1.15); } }
.slam-ring {
  position: absolute; width: min(70vw, 420px); height: min(70vw, 420px);
  border-radius: 50%; border: 3px solid rgba(255,225,120,.7);
  box-shadow: 0 0 40px rgba(255,200,80,.45), inset 0 0 30px rgba(255,220,120,.2);
  animation: slam-ring 1.6s ease-out infinite;
}
@keyframes slam-ring { from { transform: scale(.55); opacity: .9; } to { transform: scale(1.25); opacity: 0; } }
.slam-card {
  position: relative; text-align: center; padding: 22px 28px; min-width: min(78vw, 320px);
  border-radius: 16px; border: 2px solid #f3e0a6;
  background: linear-gradient(180deg, rgba(40,20,8,.92), rgba(12,8,4,.95));
  box-shadow: 0 0 28px rgba(255,180,60,.35);
  animation: slam-card .55s cubic-bezier(.2,.85,.2,1);
}
@keyframes slam-card { from { transform: scale(.7) translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
.slam-glyph {
  font: 900 64px/1 "Ma Shan Zheng", "Noto Serif SC", serif;
  color: #ffe14a; text-shadow: 0 0 18px #ffb000, 0 0 4px #000;
  margin-bottom: 6px;
}
.slam-hand { font-size: 28px; font-weight: 800; letter-spacing: .2em; color: #fff6d0; }
.slam-sub { margin-top: 4px; color: #d4af37; font-size: 13px; }
.slam-who { margin-top: 10px; font-size: 18px; color: #ffd36a; font-weight: 700; }

.slam-fx.slam-rainbow .slam-burst { background: conic-gradient(from 0deg, #ff6b6b, #ffe14a, #6bffb8, #6bb5ff, #c58bff, #ff6b6b); opacity: .28; filter: blur(18px); }
.slam-fx.slam-sanyuan .slam-glyph { background: linear-gradient(90deg, #ff4d4d, #3dcf6a, #f5f5f5); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 0 8px #ff8); }
.slam-fx.slam-sixi .slam-ring { border-color: #8fd4ff; box-shadow: 0 0 40px rgba(120,200,255,.5); }
.slam-fx.slam-sixi .slam-glyph { color: #9ad8ff; text-shadow: 0 0 18px #4aa8ff; }
.slam-fx.slam-scatter .slam-card { border-style: dashed; }
.slam-fx.slam-sky .slam-burst { background: radial-gradient(circle at 50% 30%, rgba(255,240,160,.55), transparent 50%); }
.slam-fx.slam-sky .slam-glyph { color: #fff8c8; font-size: 72px; }
.slam-fx.slam-earth .slam-burst { background: radial-gradient(circle at 50% 70%, rgba(180,110,40,.5), transparent 55%); }
.slam-fx.slam-earth .slam-glyph { color: #e0a060; }
.slam-fx.slam-dark { background: rgba(0,0,0,.45); }
.slam-fx.slam-dark .slam-card { background: linear-gradient(180deg, #1a1020, #050308); border-color: #a090c0; }
.slam-fx.slam-dark .slam-glyph { color: #d0c0ff; text-shadow: 0 0 16px #8060ff; }
.slam-fx.slam-elder .slam-glyph { color: #ffe9a0; }
.slam-fx.slam-flower .slam-burst { background: radial-gradient(circle, rgba(255,140,180,.4), transparent 55%); }
.slam-fx.slam-flower .slam-glyph { color: #ff9ec8; text-shadow: 0 0 16px #ff6aa0; }
.slam-fx.soft .slam-glyph { font-size: 52px; opacity: .92; }

.debug-panel {
  position: fixed; right: 10px; top: 52px; z-index: 90;
  width: min(340px, 92vw); max-height: 70vh; overflow: auto;
  background: rgba(12,8,4,.94); border: 1px solid #d4af37; border-radius: 12px;
  padding: 10px 12px; color: #f3e0a6; box-shadow: 0 8px 28px rgba(0,0,0,.45);
}
.debug-panel.hidden { display: none !important; }
.debug-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.debug-sec { margin-top: 10px; }
.debug-sec h4 { margin: 0 0 6px; font-size: 13px; color: #d4af37; }
.debug-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.debug-grid .hud-btn { font-size: 12px; padding: 4px 8px; }
@media (max-width: 520px) {
  .debug-panel { top: auto; bottom: 12px; right: 8px; left: 8px; width: auto; max-height: 42vh; }
  .slam-hand { font-size: 22px; letter-spacing: .12em; }
  .slam-glyph { font-size: 52px; }
}


/* ===== v9：统一关闭钮 / ICP / 友情链接 ===== */
.modal .panel > .title-close { display: none !important; }
.modal .panel > .yc-x {
  position: sticky; top: 0; float: right; z-index: 20; margin: -4px -4px 4px 8px;
  width: 40px; height: 40px; min-width: 40px; border-radius: 50%;
  border: 1px solid #d4af37; background: #5a1030; color: #fff;
  font-size: 24px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
  touch-action: manipulation;
}
.modal .panel > .yc-x:hover { background: #7a1840; }
.icp { margin: 18px 0 10px; text-align: center; font-size: 12px; }
.icp a { color: #9c8658; text-decoration: none; }
.icp a:hover { color: #d4af37; text-decoration: underline; }
.friend-links { width: min(420px, 92vw); margin: 18px auto 0; }
.friend-links.hidden { display: none !important; }
.friend-links h4 { margin: 0 0 8px; color: #d4af37; font-size: 13px; font-weight: 500; text-align: center; letter-spacing: .2em; }
.fl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
.fl-card { display: flex; align-items: center; gap: 8px; padding: 6px 10px; min-height: 40px;
  border: 1px solid #5a4a22; border-radius: 8px; background: rgba(20,14,6,.7); color: #f3e0a6; text-decoration: none; font-size: 13px; }
.fl-card:hover { border-color: #d4af37; }
.fl-card img { width: 24px; height: 24px; object-fit: contain; flex: 0 0 24px; border-radius: 4px; }
.fl-card span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }


/* ===== v11：关键牌型时刻特效 ===== */
.moment-fx { position: fixed; inset: 0; z-index: 210; pointer-events: none; display: flex; align-items: center; justify-content: center; }
.moment-fx.out { animation: mf-out .35s ease-in forwards; }
@keyframes mf-out { to { opacity: 0; transform: scale(1.05); } }
.mf-burst { position: absolute; width: min(60vw,360px); height: min(60vw,360px); border-radius: 50%; opacity: .35; filter: blur(12px); animation: mf-burst .9s ease-out; }
@keyframes mf-burst { from { transform: scale(.4); opacity: 0; } 40% { opacity: .4; } to { transform: scale(1.2); opacity: .15; } }
.mf-card { position: relative; text-align: center; padding: 14px 22px; border-radius: 14px; border: 1px solid #d4af37;
  background: linear-gradient(180deg, rgba(30,20,8,.92), rgba(10,8,4,.94)); box-shadow: 0 0 22px rgba(255,180,60,.28);
  animation: mf-in .4s cubic-bezier(.2,.85,.2,1); }
@keyframes mf-in { from { transform: scale(.75) translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
.mf-name { font-size: 26px; font-weight: 800; letter-spacing: .18em; color: #fff6d0; text-shadow: 0 0 12px #ffb000; }
.mf-who { margin-top: 6px; font-size: 14px; color: #ffd36a; }
.mf-tiny .mf-name { font-size: 16px; letter-spacing: .08em; opacity: .9; }
.mf-tiny .mf-card { padding: 8px 14px; border-color: #7a6a40; box-shadow: none; }
.mf-small .mf-name { font-size: 20px; }
.mf-big .mf-name { font-size: 32px; letter-spacing: .22em; }
.mf-big .mf-burst { background: radial-gradient(circle, rgba(255,220,120,.55), transparent 60%); opacity: .5; }
.mf-ganghua .mf-burst { background: radial-gradient(circle, rgba(255,140,60,.5), transparent 60%); }
.mf-qianggang .mf-burst { background: radial-gradient(circle, rgba(255,80,80,.45), transparent 60%); }
.mf-jinji .mf-burst, .mf-bajinji .mf-burst { background: radial-gradient(circle, rgba(255,230,80,.55), transparent 60%); }
.mf-qingyise .mf-burst, .mf-qingpeng .mf-burst { background: radial-gradient(circle, rgba(120,220,255,.5), transparent 60%); }
.mf-hunyise .mf-burst { background: radial-gradient(circle, rgba(180,140,255,.45), transparent 60%); }
.mf-ziyise .mf-burst { background: radial-gradient(circle, rgba(255,255,255,.4), transparent 60%); }
.mf-duidui .mf-burst { background: radial-gradient(circle, rgba(255,160,100,.4), transparent 60%); }
.mf-sananke .mf-burst { background: radial-gradient(circle, rgba(100,100,160,.5), transparent 60%); }
.mf-zuofeng .mf-name { color: #9ad8ff; }
.mf-jian .mf-name { color: #ff8a8a; }
.mf-zimo .mf-name { color: #ffe14a; }
.mf-dianpao .mf-name { color: #ff9ec8; }
.mf-liuju .mf-name { color: #b0b0b0; letter-spacing: .3em; }
.mf-lianzhuang .mf-name { color: #ffd36a; }
.mf-buhua .mf-card { border-color: #ff9ec8; }
.mf-buhua .mf-name { color: #ff9ec8; font-size: 18px; }


/* ===== v13 表现力 ===== */
.fx-ghost { position: fixed; z-index: 160; pointer-events: none; will-change: transform; }
.fx-ghost .tile { width: 100%; height: 100%; margin: 0 !important; }
.fx-ghost.meld-ghost { display: flex; gap: 1px; }
.fx-ghost.meld-ghost .tile { width: auto; }
.fx-land { animation: fx-land .26s ease-out; }
@keyframes fx-land { 0% { transform: translateY(-3px) scale(1.12); } 60% { transform: translateY(1px) scale(.97); } 100% { transform: none; } }

.hu-card .score-line.pending { opacity: 0; transform: translateX(-10px); }
.hu-card .score-line.in { opacity: 1; transform: none; transition: opacity .18s, transform .22s cubic-bezier(.2,.8,.2,1); }
.roll-head { position: relative; }
.roll-num { font-variant-numeric: tabular-nums; }
.roll-seal { display: inline-block; margin-left: 10px; padding: 2px 10px; border: 3px solid #e0303a; border-radius: 10px; color: #ff4f5a;
  font: 900 24px/1.1 "Ma Shan Zheng", "Noto Serif SC", serif; transform: rotate(-12deg) scale(0); opacity: 0; }
.roll-seal.in { animation: seal-stamp .38s cubic-bezier(.3,1.6,.5,1) forwards; }
@keyframes seal-stamp { 0% { transform: rotate(-12deg) scale(2.4); opacity: 0; } 100% { transform: rotate(-12deg) scale(1); opacity: 1; } }

.win-spread .tile.fan-in { animation: fan-in .3s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--fi) * 28ms + 60ms); }
@keyframes fan-in { from { opacity: 0; transform: translateY(14px) rotate(-8deg) scale(.85); } to { opacity: 1; transform: none; } }
.win-spread .tile.win-tile { animation: fan-in .3s both, win-pop 1s .9s ease-in-out 2; z-index: 2; position: relative; }
@keyframes win-pop { 50% { transform: scale(1.22) translateY(-4px); box-shadow: 0 0 14px #ffe14a; } }
.win-spread .meld.meld-glow { animation: tai-glow .7s ease-in-out 2; border-radius: 6px; }
@keyframes tai-glow { 50% { box-shadow: 0 0 0 2px #ffe14a, 0 0 18px #ffb000; background: rgba(255,225,74,.15); } }

.fx-coin { position: fixed; z-index: 230; width: 18px; height: 18px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle at 35% 35%, #fff3b0, #e3b23c 55%, #8a6412); box-shadow: 0 0 6px rgba(255,200,60,.7); }
.fx-coin::after { content: ""; position: absolute; inset: 5px; border: 1.5px solid rgba(110,70,10,.8); border-radius: 2px; }
.fx-coin-num { position: fixed; z-index: 231; transform: translate(-50%,-100%); pointer-events: none; color: #ffe14a; font-weight: 800; font-size: 20px;
  text-shadow: 0 0 6px #000, 0 0 10px #ffb000; animation: coin-num 1.2s ease-out forwards; }
@keyframes coin-num { to { transform: translate(-50%,-180%); opacity: 0; } }

.fx-emote { position: fixed; z-index: 232; font-size: 34px; pointer-events: none; filter: drop-shadow(0 2px 3px rgba(0,0,0,.5)); }
.fx-emote-hit { position: fixed; z-index: 232; transform: translate(-50%,-50%); font-size: 46px; pointer-events: none; animation: emote-hit .9s ease-out forwards; }
@keyframes emote-hit { 0% { transform: translate(-50%,-50%) scale(.3); opacity: 0; } 25% { transform: translate(-50%,-50%) scale(1.3); opacity: 1; } 100% { transform: translate(-50%,-70%) scale(1); opacity: 0; } }
.fx-hit-bomb { font-size: 60px; }
.emote-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; padding-top: 6px; border-top: 1px solid #3a3220; width: 100%; }
.emote-btn { font-size: 22px; min-width: 40px; min-height: 40px; border-radius: 10px; border: 1px solid #5a4a22; background: #16120a; cursor: pointer; }
.emote-btn.on { border-color: #ffe14a; box-shadow: 0 0 8px #ffb000; }
.emote-targets { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; width: 100%; }
.emote-targets.hidden { display: none; }
.emote-tgt { min-height: 36px; }

.share-overlay { position: fixed; inset: 0; z-index: 260; background: rgba(0,0,0,.78); display: flex; align-items: center; justify-content: center; padding: 12px; }
.share-box { max-width: 420px; width: 100%; text-align: center; }
.share-box img { width: 100%; max-height: 72vh; object-fit: contain; border-radius: 12px; box-shadow: 0 0 24px rgba(212,175,55,.35); -webkit-touch-callout: default; user-select: auto; }
.share-row { display: flex; gap: 8px; justify-content: center; margin-top: 8px; }
.share-row a.btn { text-decoration: none; display: inline-flex; align-items: center; }

@media (prefers-reduced-motion: reduce) {
  .fx-land, .win-spread .tile.fan-in, .win-spread .meld.meld-glow, .roll-seal.in { animation: none !important; }
  .roll-seal.in { transform: rotate(-12deg); opacity: 1; }
}

/* v14: 亮牌区副露保持横排 */
.win-spread .meld { flex-direction: row; flex-wrap: nowrap; width: auto; }

/* v15: 资料页改密提示 */
.auth-msg { min-height: 1.4em; margin: 8px 0 0; font-size: 14px; color: #ff8a8a; font-weight: 600; }

/* v15: 修为榜领奖台昵称用衬线黑体，缺字回退 */
#modal-body .rk-name { font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif !important; font-weight: 700 !important; }

/* ===== v17 战力 ===== */
.zl-book { position: relative; color: #f3e0a6; font-family: "Noto Serif SC", serif; padding: 8px 4px 12px; }
.zl-card { border: 1px solid #5c4316; border-radius: 14px; padding: 16px 14px 14px; background: linear-gradient(160deg, rgba(212,175,55,.14), rgba(0,0,0,.4)); text-align: center; margin-bottom: 12px; }
.zl-badge { display: inline-block; padding: 2px 12px; border-radius: 999px; border: 1px solid #f3e0a6; color: #1a1208; background: linear-gradient(#ffe48a, #c99a22); font-weight: 700; font-size: 13px; letter-spacing: .12em; }
.zl-score { font: 700 52px/1.1 "Noto Serif SC", serif; color: #ffe39a; margin-top: 8px; text-shadow: 0 0 16px rgba(255,200,80,.35); }
.zl-score.eval { font-size: 28px; color: #c9b27a; }
.zl-tier { font-size: 18px; color: #d4af37; letter-spacing: .2em; }
.zl-delta { display: inline-block; margin-left: 8px; font-weight: 800; font-size: 18px; }
.zl-delta.up { color: #7dffb0; } .zl-delta.down { color: #ff8a8a; }
.zl-line { margin-top: 8px; color: #f3e0a6; font-size: 15px; }
.zl-prog-tip { color: #b89c62; margin-top: 6px; }
.zl-next { margin-top: 10px; }
.zl-bar { height: 6px; border-radius: 4px; background: #2a1d0a; overflow: hidden; max-width: 240px; margin: 0 auto 4px; }
.zl-bar i { display: block; height: 100%; background: linear-gradient(90deg, #8a6a2a, #ffe39a); }
.zl-next span { font-size: 12px; color: #8f7a4f; }
.zl-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.zl-charts canvas { width: 100%; height: auto; background: rgba(0,0,0,.25); border: 1px solid #3a2e10; border-radius: 12px; }
.zl-h { margin: 12px 0 6px; color: #d4af37; font-size: 15px; letter-spacing: .15em; }
.zl-inds { display: flex; flex-direction: column; gap: 6px; }
.zl-ind { display: grid; grid-template-columns: 7em 1fr auto; gap: 8px; align-items: center; padding: 6px 10px; border: 1px solid #3a2e10; border-radius: 10px; background: rgba(0,0,0,.25); font-size: 13px; }
.zl-ind b { color: #ffe39a; } .zl-ind em { color: #d4af37; font-style: normal; }
.zl-recent { max-height: 160px; overflow: auto; font-size: 12px; color: #b89c62; }
.zl-rg { padding: 4px 0; border-bottom: 1px dashed #2a1d0a; }
.zl-dist { display: flex; align-items: flex-end; gap: 4px; height: 100px; margin: 8px 0 14px; padding: 8px; border: 1px solid #3a2e10; border-radius: 12px; background: rgba(0,0,0,.25); }
.zl-dist-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 4px; }
.zl-dist-col i { width: 70%; min-height: 2px; border-radius: 3px 3px 0 0; background: linear-gradient(#ffe48a, #8a6a2a); }
.zl-dist-col span { font-size: 9px; color: #8f7a4f; writing-mode: horizontal-tb; white-space: nowrap; transform: scale(.9); }
.zl-list { display: flex; flex-direction: column; gap: 6px; }
.zl-row { display: grid; grid-template-columns: 28px 1fr auto auto; gap: 8px; align-items: center; padding: 6px 10px; border: 1px solid #3a2e10; border-radius: 10px; background: rgba(0,0,0,.25); }
.zl-row.me { outline: 2px solid #9ee6b4; }
.zl-no { color: #b89c62; font-family: "Noto Serif SC", serif; font-weight: 700; text-align: center; }
.zl-row b { color: #f3e0a6; } .zl-row em { color: #d4af37; font-style: normal; font-size: 12px; }
.zl-num { font: 700 18px/1 "Noto Serif SC", serif; color: #ffe39a; }
.settle-zhanli { text-align: center; margin: 4px 0 8px; font: 700 15px/1.4 "Noto Serif SC", serif; color: #f3e0a6; }
.settle-zhanli.up { color: #7dffb0; } .settle-zhanli.down { color: #ff8a8a; }
@media (max-width: 520px) {
  .zl-charts { grid-template-columns: 1fr; }
  .zl-score { font-size: 40px; }
  .zl-ind { grid-template-columns: 5.5em 1fr auto; font-size: 12px; }
}

/* ===== v18 ===== */
/* 1. 胡牌后：看胡牌结算 + 下一局 同一行，置于底部，不被牌河遮挡 */
#next-row { display: none; }
#next-row.on { display: flex; flex-direction: row; gap: 10px; align-items: center; justify-content: center; position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 175;
  padding: 6px 8px; border-radius: 12px; background: #140c04; border: 1px solid rgba(212,175,55,.75); box-shadow: 0 6px 18px rgba(0,0,0,.55); }
#next-row .act { position: static !important; transform: none !important; width: auto !important; min-width: 92px; height: 44px; padding: 0 14px; font-size: 15px; white-space: nowrap; }
#modal:not(.hidden) ~ #next-row, body:has(#modal:not(.hidden)) #next-row { display: none; }
/* 3. 吃选项浮层挂到 body，实底 + 高层级，避免被牌河/其它座位盖住 */
body > #chi-bar.on { position: fixed; transform: translateX(-50%); z-index: 180; background: #140c04; }
.fx-ghost { z-index: 185 !important; }
#next-row .act { background: linear-gradient(180deg, #3a2a10, #1d1406) !important; color: #ffe39a !important; border: 1px solid #d4af37 !important; border-radius: 10px !important; font-family: "Noto Serif SC", serif; font-weight: 700; }
#next-row .act.next { color: #d8ffe4 !important; border-color: #8fd4a8 !important; background: linear-gradient(180deg, #1f4a30, #0f2618) !important; }

/* ===== v21 ===== */
#auth-screen.splash { padding-top: 24px !important; }
#auth-screen .site-logo { margin-top: 0 !important; }
#splash .site-logo { display: none !important; }
@media (max-width: 520px) {
  #auth-screen.splash { padding-top: 10px !important; }
  #splash .user-bar { position: relative !important; top: auto !important; right: auto !important; width: 100%; flex-wrap: wrap; justify-content: flex-end; row-gap: 6px; column-gap: 6px; margin-bottom: 6px; }
  #splash .user-bar #hello-name { margin-right: auto; }
  #splash .user-bar .hud-btn { padding: 4px 8px; font-size: 13px; white-space: nowrap; writing-mode: horizontal-tb; }
}

/* ===== v24 个人资料 ===== */
#profile-box .panel.pf { width: min(560px, 94vw); max-height: 90vh; overflow: auto; padding: 20px 20px 16px; background:
  radial-gradient(ellipse 90% 40% at 50% 0%, rgba(212,175,55,.14), transparent 70%), linear-gradient(180deg, #17110a, #0b0906) !important;
  border: 1px solid rgba(212,175,55,.45); border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
.pf-hero { display: flex; gap: 16px; align-items: center; padding: 4px 36px 14px 0; border-bottom: 1px solid rgba(212,175,55,.2); }
.pf-hero .profile-realm { margin: 0; flex: none; }
.pf-hero .avatar-frame.big.profile, .pf-hero .avatar-frame.big.profile .realm-logo-lg { width: 112px !important; height: 112px !important; }
.pf-id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pf-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pf-name { font-family: "Ma Shan Zheng", serif; font-size: 34px; line-height: 1.1; color: #f6dc8a; text-shadow: 0 0 10px rgba(212,175,55,.35); word-break: break-all; }
.pf-role { font-size: 12px; padding: 1px 8px; border-radius: 999px; border: 1px solid rgba(212,175,55,.5); color: #d9c48a; }
.pf-role.admin { background: #6d1a1a; border-color: #c94; color: #ffe6c0; }
.pf-realm-name { font-size: 15px; color: #e8d5a0; }
.pf-realm-name b { color: #ffd36a; font-size: 18px; letter-spacing: .1em; margin-right: 4px; }
.pf-bar { height: 8px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; border: 1px solid rgba(212,175,55,.25); }
.pf-bar i { display: block; height: 100%; background: linear-gradient(90deg, #a87a22, #ffd36a); box-shadow: 0 0 8px rgba(255,211,106,.6); border-radius: 4px; }
.pf-prog-t { font-size: 12px; color: #b89c62; margin-top: 3px; }
.pf-prog-t b, .pf-streak b { color: #ffd36a; }
.pf-streak { font-size: 12px; color: #c9b07a; }
.pf-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 14px 0 4px; }
.pf-stats > div { background: rgba(0,0,0,.3); border: 1px solid rgba(212,175,55,.22); border-radius: 10px; padding: 8px 4px; text-align: center; display: flex; flex-direction: column; gap: 2px; }
.pf-stats b { font-size: 20px; color: #ffe39a; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.pf-stats b small { font-size: 13px; color: #d9c48a; font-weight: 500; }
.pf-stats span { font-size: 12px; color: #9a8660; }
.pf-sec { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.025); border: 1px solid rgba(212,175,55,.16); }
.pf-sec h3 { margin: 0 0 10px; font-size: 14px; letter-spacing: .2em; color: #d4af37; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.pf-sec h3::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: #d4af37; }
.pf-sec .avatar-row { margin: 0; }
.pf-sec .avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(212,175,55,.5); }
.pf-av-t { flex: 1; display: flex; flex-direction: column; font-size: 14px; color: #e6d3a0; }
.pf-av-t small { font-size: 12px; color: #9a8660; }
.pf-row { display: flex; align-items: center; gap: 12px; }
.pf-row label { color: #e6d3a0; font-size: 14px; flex: none; }
.pf-row select { flex: 1; max-width: 260px; }
.pf-hint { margin: 6px 0 0 !important; font-size: 12px; }
.pf-toggles { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.pf-switch { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(212,175,55,.3); background: rgba(0,0,0,.25); color: #e6d3a0; font-size: 14px; cursor: pointer; }
.pf-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pf-switch i { width: 30px; height: 16px; border-radius: 8px; background: #3a3020; position: relative; transition: background .2s; flex: none; }
.pf-switch i::after { content: ""; position: absolute; left: 2px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #9a8660; transition: transform .2s, background .2s; }
.pf-switch input:checked + i { background: #8a6a1e; }
.pf-switch input:checked + i::after { transform: translateX(14px); background: #ffe39a; }
.pf-switch input:focus-visible + i { outline: 2px solid #ffd36a; }
.pf-flow { max-height: 168px; overflow: auto; font-size: 13px; }
.pf-fl { display: grid; grid-template-columns: 88px 1fr auto 52px; gap: 8px; padding: 4px 2px; border-bottom: 1px dashed rgba(212,175,55,.12); align-items: center; }
.pf-fl time { color: #8d7a52; font-size: 12px; }
.pf-fl span { color: #e6d3a0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-fl b.up { color: #7fdc8f; } .pf-fl b.down { color: #ff8f7a; }
.pf-fl em { font-style: normal; color: #b89c62; text-align: right; }
.pf-pass { display: grid; gap: 8px; }
.pf-pass input { width: 100%; box-sizing: border-box; }
.pf-sec #btn-pass { margin-top: 8px; width: 100%; }
.pf-foot { display: flex; justify-content: center; margin-top: 14px; }
.pf-foot .btn { min-width: 140px; }
@media (max-width: 520px) {
  #profile-box .panel.pf { padding: 16px 12px 12px; max-height: 92vh; }
  .pf-hero { gap: 12px; padding-right: 30px; }
  .pf-hero .avatar-frame.big.profile, .pf-hero .avatar-frame.big.profile .realm-logo-lg { width: 88px !important; height: 88px !important; }
  .pf-name { font-size: 28px; }
  .pf-stats { gap: 6px; }
  .pf-stats b { font-size: 17px; }
  .pf-fl { grid-template-columns: 76px 1fr auto 44px; gap: 6px; }
}
.pf-hero .avatar-frame.big.profile { border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 2px #d4af37, 0 0 18px rgba(212,175,55,.45); background: #120e06; }
.pf-hero .realm-logo-lg { object-fit: cover !important; object-position: center; border-radius: 50% !important; background: #120e06 !important; transform: scale(1.32); object-position: 50% 42% !important; }
.pf-pass input { background: #050505 !important; color: #f0d78a !important; border: 1px solid rgba(212,175,55,.6) !important; border-radius: 8px; padding: 10px 12px; font: inherit; font-size: 16px; }
.pf-pass input::placeholder { color: #7d6a44; }
.pf-sec #btn-avatar { font-size: 14px; padding: 6px 14px; flex: none; letter-spacing: .1em; }
.pf-bar i { min-width: 6px; }

/* ===== v25 分享图保存 ===== */
.share-overlay.sc2 { z-index: 400; background: rgba(0,0,0,.88); overflow-y: auto; align-items: flex-start; padding: 14px 12px 24px; }
.sc2 .share-box { position: relative; max-width: 440px; margin: auto; }
.sc2 .sc-x { position: absolute; right: -4px; top: -6px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(212,175,55,.6); background: #3a0f12; color: #ffe6c0; font-size: 24px; line-height: 1; cursor: pointer; }
.sc2 .sc-img { position: relative; }
.sc2 .sc-img img { display: block; width: 100%; max-height: none; height: auto; border-radius: 12px; box-shadow: 0 0 24px rgba(212,175,55,.35); -webkit-touch-callout: default !important; -webkit-user-select: auto; user-select: auto; pointer-events: auto; }
.sc2 .sc-loading { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); padding: 4px 12px; border-radius: 999px; background: rgba(0,0,0,.7); color: #f3e0a6; font-size: 13px; white-space: nowrap; }
.sc2 .sc-hint { margin: 10px 0 6px; color: #ffd36a; font-size: 15px; letter-spacing: .05em; }
.sc2 .sc-sub { margin: 6px 0 0; color: #b89c62; font-size: 12px; }
.sc2 .share-row { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.sc2 .share-row .btn { min-width: 84px; }

/* v26 服务器更新提示 */
#server-notice { position: fixed; left: 50%; top: calc(env(safe-area-inset-top, 0px) + 8px); transform: translate(-50%, -150%); z-index: 500; max-width: 92vw; padding: 8px 14px; border-radius: 999px; background: rgba(58,15,18,.95); border: 1px solid #d4af37; color: #ffe6c0; font-size: 13px; text-align: center; transition: transform .3s; pointer-events: none; }
#server-notice.on { transform: translate(-50%, 0); }
/* v30 战力页：联网/单机切换 */
.zl-tabs { display: flex; gap: 6px; margin: 4px 0 12px; padding: 4px; border: 1px solid #3a2e10; border-radius: 999px; background: rgba(0,0,0,.3); }
.zl-tab { flex: 1; min-height: 38px; border: 0; border-radius: 999px; background: transparent; color: #b89c62; font: 700 15px/1 "Noto Serif SC", serif; letter-spacing: .12em; cursor: pointer; }
.zl-tab.on { color: #1a1208; background: linear-gradient(#ffe48a, #c99a22); box-shadow: 0 0 10px rgba(255,200,80,.25); }
.zl-pane.hidden { display: none; }
.zl-card.solo { background: linear-gradient(160deg, rgba(110,180,200,.16), rgba(0,0,0,.4)); border-color: #2f5a63; }
.zl-card.solo .zl-badge { background: linear-gradient(#bfefff, #4fa3b8); border-color: #d8f6ff; }
.zl-note { margin: 0 0 8px; font-size: 12px; line-height: 1.6; color: #8f7a4f; text-align: center; }
.zl-ind small { display: block; color: #8f7a4f; font-weight: 400; font-size: 11px; line-height: 1.2; }
.zl-dist-col b { font-size: 10px; color: #d4af37; font-weight: 700; min-height: 12px; }

/* ===== v31 望海村械斗 ===== */
.btn.btn-peak { position: relative; background: linear-gradient(135deg, #3a0d0d, #120404 60%, #2a1a04) !important; border-color: #ffcf5a !important; color: #ffe39a !important; box-shadow: 0 0 14px rgba(255,190,60,.35), inset 0 0 12px rgba(255,120,40,.18) !important; font-weight: 700; letter-spacing: .15em; }
.btn.btn-peak small { margin-left: 8px; font-size: 11px; letter-spacing: .05em; color: #ffb36b; font-weight: 600; }
.pk-badge { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 8px; border-radius: 50%; background: radial-gradient(#ffe48a, #b8801c); color: #3a0d0d; font-size: 13px; vertical-align: -3px; letter-spacing: 0; }
.pk-book { position: relative; color: #f3e0a6; font-family: "Noto Serif SC", serif; padding: 8px 4px 12px; max-width: 520px; margin: 0 auto; }
.pk-book .title-close { position: absolute; top: 0; right: 0; z-index: 2; }
.pk-hero { text-align: center; padding: 18px 10px 12px; border-radius: 16px; border: 1px solid #7a4a12; background: radial-gradient(circle at 50% 0, rgba(255,170,60,.35), rgba(40,8,8,.6) 70%); margin-bottom: 10px; }
.pk-crown { width: 58px; height: 58px; margin: 0 auto 6px; border-radius: 50%; display: grid; place-items: center; font: 800 30px/1 "Noto Serif SC", serif; color: #3a0d0d; background: radial-gradient(#fff2b0, #d49a2a 70%, #8a5a10); box-shadow: 0 0 22px rgba(255,200,80,.6); }
.pk-hero h3 { margin: 4px 0 2px !important; font-size: 24px !important; color: #ffe39a !important; letter-spacing: .4em; }
.pk-hero p { margin: 0; color: #ffb36b; font-size: 13px; letter-spacing: .1em; }
.pk-gate { text-align: center; padding: 8px 10px; border-radius: 10px; font-size: 14px; margin-bottom: 10px; }
.pk-gate.open { background: rgba(60,160,90,.18); border: 1px solid #3f9a62; color: #9dffc2; }
.pk-gate.closed { background: rgba(160,50,40,.2); border: 1px solid #a04030; color: #ffb0a0; }
.pk-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.pk-facts > div { border: 1px solid #5c4316; border-radius: 12px; padding: 8px 10px; background: rgba(212,175,55,.08); display: flex; flex-direction: column; gap: 2px; }
.pk-facts span { font-size: 12px; color: #c9b27a; } .pk-facts b { font-size: 17px; color: #ffe39a; } .pk-facts small { font-size: 11px; color: #a89160; }
.pk-notes { margin: 0 0 12px 18px; padding: 0; font-size: 12px; line-height: 1.7; color: #d8c690; }
.pk-go { width: 100%; margin-bottom: 10px; }
.pk-go:disabled, .pk-room:disabled { opacity: .45; cursor: not-allowed; }
.pk-list { display: grid; gap: 6px; }
.pk-room { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-radius: 10px; border: 1px solid #5c4316; background: #120c04; color: #f3e0a6; font: inherit; cursor: pointer; }
.pk-room em { font-style: normal; font-size: 12px; color: #c9b27a; }
@media (max-width: 420px) { .pk-facts b { font-size: 15px; } .pk-hero h3 { font-size: 21px !important; } }

/* v32: 闯荡江湖面板紧凑分组 */
#online-box { gap: 8px; }
#online-box .room-group { position: relative; margin: 0; padding: 10px 10px 8px; border: 1px solid #8a6d2a; border-radius: 12px; background: linear-gradient(180deg, rgba(40,28,8,.72), rgba(10,8,4,.82)); box-shadow: 0 0 0 1px rgba(212,175,55,.15) inset, 0 4px 14px rgba(0,0,0,.45); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
#online-box .room-group legend { padding: 0 8px; color: #f3d36a; font: 600 15px/1.2 "Noto Serif SC", serif; letter-spacing: .2em; }
#online-box .room-close-old { position: absolute; top: -14px; right: 6px; width: 26px; height: 26px; padding: 0; border-radius: 50%; border: 1px solid #d4af37; background: #140e04; color: #f3d36a; font-size: 17px; line-height: 22px; cursor: pointer; }
#online-box .room-row-main { gap: 6px; }
#online-box .room-row-main input { flex: 1 1 0; min-width: 0; width: auto !important; padding-left: 8px; padding-right: 8px; }
#online-box .room-row-main #btn-random-room { padding: 8px 9px; font-size: 13px; }
#online-box .toggle-line { margin: 0 !important; padding: 0 2px; }
#online-box .room-row-btns { gap: 8px; }
#online-box .room-row-btns .btn { flex: 1 1 0; width: auto !important; padding: 10px 6px; margin: 0; }
#online-box #room-msg:empty { display: none; }
#online-box #room-msg { margin: 0; }
@media (min-width: 700px) { #online-box { width: min(420px, 92vw) !important; } }

/* ===== v33 星星村点火 / 名场面 ===== */
.btn.btn-challenge { position: relative; background: linear-gradient(135deg, #0d2a26, #04120f 60%, #1a2a04) !important; border-color: #7fe8d6 !important; color: #c9fff3 !important; box-shadow: 0 0 12px rgba(127,232,214,.28) !important; font-weight: 700; letter-spacing: .15em; }
.btn.btn-challenge small { margin-left: 8px; font-size: 11px; letter-spacing: .05em; color: #8fe0c9; font-weight: 600; }
.pk-badge.ch-badge { background: linear-gradient(135deg, #7fe8d6, #2a8c7a) !important; color: #04120f !important; }
.ch-widget { width: min(92vw, 380px); margin: 10px auto 0; padding: 10px 12px; border: 1px solid rgba(127,232,214,.45); border-radius: 14px; background: linear-gradient(180deg, rgba(10,40,36,.75), rgba(5,12,10,.85)); color: #dff7ef; font-family: "Noto Serif SC", serif; box-sizing: border-box; }
.chw-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.chw-head b { font-size: 15px; color: #9ff5e2; letter-spacing: .1em; } .chw-head em { font-style: normal; font-size: 11px; color: #8bb8ad; }
.chw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.chw-list li { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 6px; font-size: 13px; padding: 3px 6px; border-radius: 8px; background: rgba(255,255,255,.04); }
.chw-list i { font-style: normal; text-align: center; font-weight: 700; color: #8bb8ad; }
.chw-list li.top1 i { color: #ffd76a; } .chw-list li.top2 i { color: #e0e0e0; } .chw-list li.top3 i { color: #e0a070; }
.chw-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .chw-list em { font-style: normal; color: #ffe39a; font-size: 12px; }
.chw-empty { margin: 4px 0; font-size: 12px; color: #8bb8ad; text-align: center; }
.chw-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; font-size: 12px; color: #a9d6cb; gap: 8px; }
.chw-go { border: 1px solid #7fe8d6; background: rgba(127,232,214,.15); color: #c9fff3; border-radius: 999px; padding: 6px 14px; font-size: 13px; cursor: pointer; min-height: 32px; }
.hl-entry { display: block; margin: 8px auto 0; border: 1px solid rgba(255,200,64,.5); background: rgba(255,200,64,.08); color: #ffd98a; border-radius: 999px; padding: 6px 18px; font-size: 13px; cursor: pointer; font-family: "Noto Serif SC", serif; letter-spacing: .2em; }
.hl-bar { position: absolute; left: 50%; top: calc(env(safe-area-inset-top, 0px) + 8px); transform: translateX(-50%); width: min(94vw, 560px); z-index: 5; display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; background: linear-gradient(90deg, rgba(90,20,10,.95), rgba(40,10,4,.95)); border: 1px solid #ffc840; box-shadow: 0 0 16px rgba(255,200,64,.35); overflow: hidden; box-sizing: border-box; }
.hl-bar.hidden { display: none; }
.hl-tag { flex: none; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #ffc840; color: #3a1004; font-weight: 700; }
.hl-run { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; background: none; border: 0; color: #ffe6b0; font-size: 14px; cursor: pointer; text-align: left; padding: 0; font-family: "Noto Serif SC", serif; }
.hl-run span { display: inline-block; padding-left: 100%; animation: hl-scroll 9s linear forwards; }
@keyframes hl-scroll { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.ch-crown { background: radial-gradient(circle, #7fe8d6, #1d6b5e) !important; color: #04120f !important; }
.ch-best { font-size: 14px !important; }
.ch-tabs { display: flex; gap: 6px; margin: 12px 0 8px; } .ch-tabs button { flex: 1; border: 1px solid #5c4316; background: rgba(212,175,55,.06); color: #c9b27a; border-radius: 10px; padding: 7px 4px; font-size: 13px; cursor: pointer; font-family: inherit; }
.ch-tabs button.on { background: rgba(212,175,55,.22); color: #ffe39a; border-color: #d4af37; }
.ch-rank { list-style: none; margin: 0; padding: 0; max-height: 42vh; overflow: auto; display: grid; gap: 3px; }
.ch-rank li { display: grid; grid-template-columns: 30px 1fr auto; gap: 8px; align-items: center; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,.04); font-size: 14px; }
.ch-rank li b { text-align: center; color: #c9b27a; } .ch-rank li.top1 b { color: #ffd76a; } .ch-rank li.top2 b { color: #e8e8e8; } .ch-rank li.top3 b { color: #e0a070; }
.ch-rank li.me { outline: 1px solid #7fe8d6; background: rgba(127,232,214,.1); }
.ch-rank .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ch-rank em { font-style: normal; color: #ffe39a; font-size: 13px; }
.ch-mine { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; max-height: 36vh; overflow: auto; }
.ch-mine li { display: flex; justify-content: space-between; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,.04); font-size: 13px; } .ch-mine em { font-style: normal; color: #ffe39a; }
.ch-end p { text-align: center; color: #ffe39a; margin: 6px 0 10px; }
.hl-h { margin: 4px 40px 4px 0; color: #ffe39a; }
.hl-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; max-height: 60vh; overflow: auto; }
.hl-list button { width: 100%; text-align: left; display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 10px; border: 1px solid #5c4316; background: rgba(212,175,55,.06); color: #f3e0a6; cursor: pointer; font-family: inherit; }
.hl-list b { font-size: 14px; font-weight: 600; } .hl-list em { font-style: normal; font-size: 11px; color: #a89160; }
@media (max-width: 420px) { .hl-bar { top: calc(env(safe-area-inset-top, 0px) + 6px); } .hl-run { font-size: 13px; } .ch-rank li { font-size: 13px; } }
.modal .panel .ch-book > .title-close, .modal .panel .hl-book > .title-close { display: none !important; }
@media (min-width: 900px) { .hl-bar { left: 16px; transform: none; width: min(40vw, 520px); } }

/* ===== v34：BGM 切歌小图标 ===== */
.hud-btn.bgm-ico { padding: 4px 6px !important; min-width: 0; line-height: 0; display: inline-flex; align-items: center; justify-content: center; }
.hud-btn.bgm-ico svg { display: block; }
.hud-btn.bgm-ico.hidden { display: none !important; }
@media (max-width: 820px) { .hud-btn.bgm-ico { padding: 3px 5px !important; } .hud-btn.bgm-ico svg { width: 12px; height: 12px; } }

/* ===== v34：中央倒计时 数码发光 ===== */
.center-clock {
  font: 700 20px/1 "DIN Alternate", "Bahnschrift", "Roboto Mono", "SF Mono", "Consolas", ui-monospace, monospace !important;
  letter-spacing: 1px; color: #5dff8f !important;
  padding: 3px 6px 2px; border-radius: 6px; background: rgba(0, 20, 8, .38);
  text-shadow: 0 0 4px rgba(93,255,143,.95), 0 0 10px rgba(40,230,110,.75), 0 0 18px rgba(40,230,110,.45) !important;
}
.center-clock.clock-urgent {
  color: #ffef3a !important; background: rgba(30, 24, 0, .42);
  text-shadow: 0 0 4px rgba(255,239,58,.95), 0 0 10px rgba(255,214,0,.8), 0 0 18px rgba(255,200,0,.5) !important;
  animation: cc-pulse2 .5s ease-in-out infinite alternate !important;
}
@keyframes cc-pulse2 { to { transform: translate(-50%, -50%) scale(1.06); } }
@media (max-width: 820px) { .center-clock { font-size: 15px !important; padding: 2px 3px 1px; } }
@media (max-width: 520px) { .rk-tabs { gap: 4px !important; } .rk-tabs .st-tab { padding: 4px 7px !important; font-size: 13px !important; letter-spacing: 0 !important; } }

/* ===== v34：修为榜 · 修为境界 ===== */
.rk-tabs { flex-wrap: wrap; }
.realm-book2 { display: flex; flex-direction: column; gap: 10px; }
.rb-mine { padding: 10px 12px; border: 1px solid #6b5418; border-radius: 12px; background: linear-gradient(135deg, rgba(60,44,8,.55), rgba(0,0,0,.3)); color: #f3e3b0; font-size: 14px; }
.rb-mine b { color: #ffd76a; font-size: 16px; }
.rb-mine small { color: #b9a77a; }
.rb-formula { padding: 12px; border-radius: 12px; border: 1px solid #4f6b3a; background: radial-gradient(120% 140% at 0% 0%, rgba(70,110,50,.35), rgba(0,0,0,.35)); }
.rb-formula h4 { margin: 0 0 8px; color: #c8f2a6; font: 700 16px/1.2 "Noto Serif SC", serif; letter-spacing: 2px; }
.rb-fgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.rb-f { display: flex; flex-direction: column; align-items: center; padding: 6px 4px; border-radius: 10px; background: rgba(0,0,0,.3); border: 1px solid rgba(200,242,166,.18); text-align: center; }
.rb-f b { color: #e9f7d8; font-size: 13px; }
.rb-f span { color: #9dff7a; font: 700 20px/1.2 "Noto Serif SC", serif; }
.rb-f small { color: #a9b99a; font-size: 11px; }
.rb-mults { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.rb-mults span { font-size: 12px; color: #ffe6a6; padding: 3px 8px; border-radius: 999px; background: rgba(120,80,0,.35); border: 1px solid rgba(255,214,110,.25); }
.rb-note { margin: 6px 0 0; font-size: 12px; color: #a9a089; }
.rb-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rb-major { grid-column: 1 / -1; margin-top: 4px; color: #ffd76a; font: 700 15px/1.3 "Noto Serif SC", serif; letter-spacing: 3px; border-bottom: 1px solid rgba(255,215,106,.25); padding-bottom: 3px; }
.rb-major em { font-style: normal; font-size: 12px; color: #d9b45a; letter-spacing: 1px; }
.rb-card { display: grid; grid-template-columns: 88px 1fr; gap: 10px; align-items: center; padding: 8px; border-radius: 12px; border: 1px solid #3a2e10; background: rgba(0,0,0,.28); opacity: .78; }
.rb-card.reached { opacity: 1; border-color: #6b5418; }
.rb-card.cur { opacity: 1; border: 2px solid #9ee6b4; background: linear-gradient(135deg, rgba(40,110,70,.45), rgba(0,0,0,.3)); box-shadow: 0 0 14px rgba(120,230,160,.35); }
.rb-art { width: 88px; height: 88px; border-radius: 12px; overflow: hidden; background: rgba(0,0,0,.35); }
.rb-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rb-card:not(.reached) .rb-art img { filter: grayscale(.55) brightness(.8); }
.rb-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rb-name { color: #ffe9a8; font: 700 16px/1.25 "Noto Serif SC", serif; }
.rb-me { font-style: normal; margin-left: 6px; font-size: 11px; padding: 1px 6px; border-radius: 999px; background: #2f8f57; color: #fff; vertical-align: 2px; }
.rb-need { font-size: 12px; color: #b9a77a; }
.rb-need i { font-style: normal; color: #ffd76a; font-weight: 700; }
.rb-lore { font-size: 12.5px; line-height: 1.5; color: #e6dcc2; }
.rules-pointer { margin: 0 0 8px; padding: 6px 10px; border-left: 3px solid #ffd76a; background: rgba(255,215,106,.08); font-size: 13px; }
@media (max-width: 620px) {
  .rb-list { grid-template-columns: 1fr; }
  .rb-fgrid { grid-template-columns: repeat(2, 1fr); }
  .rb-card { grid-template-columns: 72px 1fr; }
  .rb-art { width: 72px; height: 72px; }
}

/* ===== v35：福利中心 ===== */
.wf-entry { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: min(520px, 92vw); margin: 10px auto 4px; }
.wf-tile { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px 8px; border-radius: 14px; cursor: pointer;
  border: 1px solid rgba(255,215,106,.45); color: #fbe6a8; background: radial-gradient(120% 120% at 50% 0%, rgba(140,90,10,.55), rgba(20,12,4,.85)); box-shadow: inset 0 1px 0 rgba(255,240,190,.2), 0 4px 12px rgba(0,0,0,.35); transition: transform .12s; }
.wf-tile:hover { transform: translateY(-2px); }
.wf-tile i { font: 700 20px/1 "Noto Serif SC", serif; font-style: normal; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #3a1e00; background: radial-gradient(circle at 35% 30%, #fff1b8, #e6a92e 70%, #a8670b); box-shadow: 0 0 10px rgba(255,200,80,.45); }
.wf-tile b { font: 700 15px/1.3 "Noto Serif SC", serif; letter-spacing: 2px; }
.wf-tile small { font-size: 11px; color: #c9b27a; }
.wf-dot { position: absolute; top: 6px; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: #ff5b5b; }
.wf-book { position: relative; max-width: 720px; }
.wf-hero h3 { margin: 0; text-align: center; color: #ffd76a; font: 700 22px/1.3 "Noto Serif SC", serif; letter-spacing: 6px; }
.wf-hero p { margin: 2px 0 8px; text-align: center; color: #c9b27a; font-size: 13px; } .wf-hero b { color: #ffe39a; }
.wf-tabs { display: flex; justify-content: center; gap: 6px; margin-bottom: 10px; }
.wf-tab { padding: 6px 16px; border-radius: 999px; border: 1px solid #6b5418; background: rgba(0,0,0,.3); color: #e8d49a; font: 600 14px/1.2 "Noto Serif SC", serif; cursor: pointer; }
.wf-tab.on { background: linear-gradient(180deg, #ffd76a, #c98f1c); color: #2b1600; border-color: #ffd76a; }
.wf-pane { display: flex; flex-direction: column; gap: 10px; }
.wf-card { padding: 12px; border-radius: 12px; border: 1px solid #4a3a14; background: rgba(0,0,0,.28); }
.wf-card h4 { margin: 0 0 8px; color: #ffe9a8; font: 700 15px/1.3 "Noto Serif SC", serif; } .wf-card h4 small { font: 400 12px/1 sans-serif; color: #b9a77a; margin-left: 6px; }
.wf-card .hint { font-size: 12px; color: #a9a089; margin: 6px 0 0; }
.wf-event { padding: 8px 12px; border-radius: 10px; background: linear-gradient(90deg, rgba(200,40,40,.45), rgba(120,20,60,.3)); color: #ffe6c0; font-size: 13px; border: 1px solid rgba(255,140,120,.4); }
.wf-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.wf-day { display: flex; flex-direction: column; align-items: center; padding: 6px 2px; border-radius: 10px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,215,106,.18); }
.wf-day small { font-size: 10px; color: #b9a77a; } .wf-day b { color: #ffd76a; font: 700 16px/1.3 "Noto Serif SC", serif; } .wf-day em { font-style: normal; font-size: 10px; color: #a9a089; }
.wf-day.big { background: rgba(200,120,0,.22); border-color: #ffb84a; } .wf-day.done { background: rgba(60,140,80,.28); border-color: #6fcf8f; } .wf-day.done em { color: #9ee6b4; }
.wf-day.today { box-shadow: 0 0 10px rgba(120,230,160,.55); }
.wf-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wf-big { font: 700 22px/1.3 "Noto Serif SC", serif; color: #9dff7a; margin-top: 6px; } .wf-big.done { color: #9ee6b4; font-size: 16px; }
.wf-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wf-list li { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; padding: 7px 10px; border-radius: 10px; background: rgba(255,255,255,.04); font-size: 13px; }
.wf-list li b { color: #ffe9a8; } .wf-list li span { color: #b9a77a; font-size: 12px; min-width: 0; } .wf-list li em { font-style: normal; color: #ffd76a; font-weight: 700; white-space: nowrap; }
.wf-list li.done { opacity: .75; } .wf-list li.done em { color: #9ee6b4; }
.wf-deps li { grid-template-columns: auto 1fr auto auto; }
.wf-prog { display: block; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; } .wf-prog i { display: block; height: 100%; background: linear-gradient(90deg, #6fcf8f, #c8f2a6); }
.wf-code { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .wf-code span { color: #b9a77a; font-size: 13px; } .wf-code b { font: 700 22px/1 "Roboto Mono", ui-monospace, monospace; letter-spacing: 4px; color: #ffe39a; }
.wf-row { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.wf-row input, .wf-row select { flex: 1 1 120px; min-width: 0; padding: 8px; border-radius: 8px; border: 1px solid #8a6d2a; background: #100c08; color: #f6e2a4; }
.wf-row .hidden { display: none; }
.wf-achs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.wf-ach { display: grid; grid-template-columns: 36px 1fr; grid-template-rows: auto auto auto; column-gap: 8px; padding: 8px; border-radius: 10px; border: 1px solid #3a2e10; background: rgba(0,0,0,.25); filter: grayscale(.8); opacity: .7; }
.wf-ach.got { filter: none; opacity: 1; border-color: #c9a040; background: linear-gradient(135deg, rgba(120,80,0,.4), rgba(0,0,0,.3)); }
.wf-ach i { grid-row: 1 / 4; font: 700 18px/36px "Noto Serif SC", serif; font-style: normal; text-align: center; width: 36px; height: 36px; border-radius: 50%; color: #3a1e00; background: radial-gradient(circle at 35% 30%, #fff1b8, #e6a92e 70%, #a8670b); align-self: center; }
.wf-ach b { color: #ffe9a8; font-size: 13px; } .wf-ach small { color: #a9a089; font-size: 11px; } .wf-ach em { font-style: normal; color: #ffd76a; font-size: 12px; }
.wf-prods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.wf-prod { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px; border-radius: 10px; border: 1px solid #4a3a14; cursor: pointer; text-align: center; }
.wf-prod input { display: none; } .wf-prod:has(input:checked) { border-color: #ffd76a; background: rgba(200,140,20,.2); box-shadow: 0 0 10px rgba(255,215,106,.3); }
.wf-prod b { color: #ffe9a8; font-size: 14px; } .wf-prod em { font-style: normal; color: #9dff7a; font: 700 16px/1.2 "Noto Serif SC", serif; } .wf-prod small { font-size: 11px; color: #a9a089; }
.wf-bts li { grid-template-columns: 1fr auto; } .wf-bts li div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wf-bts li em { font: 700 18px/1 "Noto Serif SC", serif; color: #ffcf4a; } .wf-bts li em::after { content: " 通宝"; font-size: 11px; color: #b9a77a; }
.wf-bt.claimed em, .wf-bt.expired em { color: #9a8f70; }
.wf-season { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; } .wf-season b { width: 100%; color: #ffe9a8; font-size: 13px; } .wf-season span { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: rgba(120,80,0,.35); color: #ffe6a6; }
.pf-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.wf-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px 3px 3px; border-radius: 999px; background: linear-gradient(135deg, rgba(120,80,0,.5), rgba(0,0,0,.3)); border: 1px solid #c9a040; color: #ffe9a8; font-size: 12px; }
.wf-badge i { font-style: normal; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #3a1e00; font-weight: 700; background: radial-gradient(circle at 35% 30%, #fff1b8, #e6a92e 70%, #a8670b); }
#auth-invite.hidden { display: none; }
.rules-welfare h4 { margin: 12px 0 4px; color: #ffd76a; }
@media (max-width: 520px) {
  .wf-entry { gap: 6px; } .wf-tile { padding: 8px 2px 6px; } .wf-tile i { width: 28px; height: 28px; font-size: 16px; } .wf-tile b { font-size: 13px; letter-spacing: 1px; } .wf-tile small { font-size: 10px; }
  .wf-days { gap: 3px; } .wf-day b { font-size: 14px; }
  .wf-two { grid-template-columns: 1fr; }
  .wf-tab { padding: 5px 12px; }
  .wf-achs { grid-template-columns: 1fr 1fr; }
  .wf-list li { grid-template-columns: 1fr auto; } .wf-list li span { grid-column: 1 / -1; grid-row: 2; }
  .wf-deps li { grid-template-columns: 1fr auto auto; }
}
.wf-book ul.wf-list { padding: 0 !important; margin: 0 !important; }
.wf-book .btn.tiny, .wf-row .btn.tiny { padding: 6px 16px !important; font-size: 14px !important; min-height: 0 !important; width: auto !important; letter-spacing: 1px; flex: 0 0 auto; }
.wf-book .btn.tiny:disabled { opacity: .5; }

/* ===================== v36 牌桌（青山 / 赤霞 / 夜阑） ===================== */
body { --f1: #1f5a3c; --f2: #0d2e1f; --rim: #3a2414; --rim2: #5c3a1e; --acc: #e8c766; --tile-side: #0b3b29; --tile-side2: #062417; --wmc: #e9f4d6; }
body.theme-chixia { --f1: #6a2422; --f2: #2a0b0d; --rim: #2a160c; --rim2: #6b4020; --acc: #f0b860; --tile-side: #7a2a18; --tile-side2: #4a140a; --wmc: #ffe2c8; }
body.theme-yelan { --f1: #1d2c55; --f2: #0a1024; --rim: #141a2e; --rim2: #38406a; --acc: #b9c8ff; --tile-side: #1c2f6a; --tile-side2: #0e1a40; --wmc: #dfe8ff; }
#table-screen.t36 { background: #000; overflow: hidden; }
#table-screen.t36 .table-stage { inset: 0 !important; overflow: hidden !important; }
#table-screen.t36 .felt36 { position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse at 50% 50%, transparent 45%, rgba(0,0,0,.6) 100%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .22 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>"),
    radial-gradient(circle at 50% 46%, var(--f1), var(--f2) 75%);
  box-shadow: inset 0 0 0 8px var(--rim), inset 0 0 0 10px var(--rim2), inset 0 0 40px 14px rgba(0,0,0,.6); }
#table-screen.t36 .wm36 { position: absolute; color: var(--wmc); opacity: .05; pointer-events: none; }
#table-screen.t36 .square-table, #table-screen.t36 .seat-anchor, #table-screen.t36 .seat-col, #table-screen.t36 .play-pack, #table-screen.t36 .outer-pack { display: contents !important; }
#table-screen.t36 .z6-guide, #table-screen.t36 .z2, #table-screen.t36 .z4:not(#my-draw), #table-screen.t36 .z5:not(#actions), #table-screen.t36 #ting-flag { display: none !important; }
#table-screen.t36 .info36 { position: absolute; top: 14px; left: 22px; display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: #d9cfae; opacity: .85; z-index: 3; pointer-events: none; }
#table-screen.t36 .side-menu { z-index: 60; }
#table-screen.t36 .menu36-btn { display: none; }
#table-screen.t36 .phrase-fab, #table-screen.t36 .share-fab { z-index: 70; }

/* 旧版牌桌对各区/牌设过 min/max/flex，统一清掉，尺寸只由 v36 规则与布局决定 */
#table-screen.t36 .tile { min-width: 0 !important; max-width: none !important; min-height: 0 !important; max-height: none !important; flex: 0 0 auto !important; position: relative !important; }
#table-screen.t36 :is(.z1, .z3, .z6, .z7, .z8, #actions, #my-draw, .tp36) { min-width: 0 !important; max-width: none !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; }
/* 牌：厚度与阴影（侧面颜色随主题） */
#table-screen.t36 .tile { --td: 3px; overflow: visible; border-radius: 4px; }
#table-screen.t36 .tile:not(.back) { box-shadow: 0 var(--td) 0 var(--tile-side), 0 var(--td) 0 1px var(--tile-side2), 0 calc(var(--td) * 2) calc(var(--td) * 2.6) rgba(0,0,0,.5); }
#table-screen.t36 .tile.back { border-radius: 4px; box-shadow: 0 2px 0 var(--tile-side2), 0 3px 6px rgba(0,0,0,.45); background: var(--tile-back, linear-gradient(160deg, #2f8a5e, #145238)) center / cover no-repeat; }
#table-screen.t36 .tile .face { border-radius: 4px; }

/* 中央方框 + 倒计时（仅这里有倒计时） */
#table-screen.t36 .felt-core { z-index: 4 !important; pointer-events: none; }
#table-screen.t36 .turn-rose { position: absolute !important; inset: 0 !important; left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; transform: none !important; border-radius: 18px; border: 1px solid rgba(232,199,102,.35); background: radial-gradient(circle, rgba(0,0,0,.55), rgba(0,0,0,.3)); box-shadow: 0 0 30px rgba(0,0,0,.5) inset; }
#table-screen.t36 .turn-square { inset: 0 !important; }
#table-screen.t36 .turn-square i { background: none !important; box-shadow: none !important; animation: none !important; width: auto !important; height: auto !important; font: 400 calc(var(--b36, 140px) * .1)/1 "Noto Serif SC", serif; font-style: normal; color: #cbbd92; }
#table-screen.t36 .turn-square i[data-d="north"] { top: 7% !important; left: 50% !important; right: auto !important; bottom: auto !important; transform: translateX(-50%); }
#table-screen.t36 .turn-square i[data-d="south"] { bottom: 7% !important; left: 50% !important; right: auto !important; top: auto !important; transform: translateX(-50%); }
#table-screen.t36 .turn-square i[data-d="west"] { left: 7% !important; top: 50% !important; bottom: auto !important; right: auto !important; transform: translateY(-50%); }
#table-screen.t36 .turn-square i[data-d="east"] { right: 7% !important; top: 50% !important; bottom: auto !important; left: auto !important; transform: translateY(-50%); }
#table-screen.t36 .turn-square i.on { color: #ffe08a !important; text-shadow: 0 0 8px #ffd76a, 0 0 16px rgba(255,215,106,.6); }
#table-screen.t36 .center-clock { font-size: calc(var(--b36, 140px) * .34) !important; padding: 2px 6px !important; background: none !important; }
#table-screen.t36 .winner-banner { z-index: 30; }

/* 牌河 */
#table-screen.t36 .z7 { display: grid !important; gap: var(--rgap, 5px) 2px !important; align-content: start; justify-content: start; z-index: 5 !important; overflow: visible !important; background: none !important; border: 0 !important; padding: 0 !important; }
#table-screen.t36 .z7 .tile { width: var(--rw) !important; height: var(--rh) !important; --w: var(--rw); --h: var(--rh); --td: 2px; margin: 0 !important; transform: none !important; }
/* v48：被吃/碰/杠拿走的河牌占位——不能只调暗（暗化的白板＝灰色空白牌，会被当成第 5 张白板）。
   改为：半透明 + 虚线框 + 斜纹 + 角标「取」，与白板（白底蓝框）、牌背（深色）明显区分 */
#table-screen.t36 .z7 .tile.claimed { filter: grayscale(1) brightness(.8); opacity: .7; outline: 1.5px dashed rgba(255,225,140,.85); outline-offset: -1.5px; }
#table-screen.t36 .z7 .tile.claimed::after {
  content: "取" !important; position: absolute; inset: 0; display: flex; align-items: flex-start; justify-content: flex-end;
  padding: 0; font-size: 10px; line-height: 1; font-weight: 700; color: #1a1208;
  text-shadow: none;
  background: linear-gradient(225deg, #ffd56a 0 13px, transparent 13px), repeating-linear-gradient(135deg, rgba(0,0,0,.55) 0 3px, rgba(0,0,0,0) 3px 7px);
  border-radius: 4px; pointer-events: none;
}
#table-screen.t36 .z7 .tile.claimed::before { content: none !important; }
#table-screen.t36 .z7 .tile.last-discard { outline: 2px solid #ffd76a !important; outline-offset: 1px; box-shadow: 0 0 0 3px rgba(255,215,106,.35), 0 0 14px 3px rgba(255,215,106,.7) !important; z-index: 2; animation: none !important; }

/* 我的手牌 */
#table-screen.t36 #my-hand { display: flex !important; flex-wrap: nowrap !important; align-items: flex-end !important; gap: var(--hgap, 2px) !important; z-index: 26 !important; overflow: visible !important; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
#table-screen.t36.rows2 #my-hand { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
#table-screen.t36 .hrow36 { display: flex; gap: var(--hgap, 3px); align-items: flex-end; }
#table-screen.t36 #my-hand .tile, #table-screen.t36 #my-draw .tile { width: var(--h36w) !important; height: var(--h36h) !important; --w: var(--h36w); --h: var(--h36h); --td: calc(var(--h36w) * .08); flex: 0 0 auto !important; margin: 0 !important; transition: transform .12s ease, box-shadow .12s ease; }
#table-screen.t36 #my-draw { z-index: 26 !important; overflow: visible !important; background: none !important; border: 0 !important; padding: 0 !important; display: block !important; }
#table-screen.t36 #my-draw .tile.just-drawn { outline: 0 !important; }
#table-screen.t36 #my-draw .tile.just-drawn::after { content: "摸"; left: auto; right: -6px; top: -8px; bottom: auto; transform: none; font-size: 10px; line-height: 14px; padding: 0 4px; border-radius: 7px; background: #ffe14a; color: #3a2500; }
#table-screen.t36 #my-hand .tile.selected, #table-screen.t36 #my-draw .tile.selected { transform: translateY(-22%) !important; box-shadow: 0 var(--td) 0 var(--tile-side), 0 0 18px 4px rgba(255,220,120,.85) !important; z-index: 60 !important; }
#table-screen.t36.rows2 #my-hand .tile.selected, #table-screen.t36.rows2 #my-draw .tile.selected { transform: translateY(-15%) !important; }
#table-screen.t36.rows2 #my-hand .hrow36:last-child .tile.selected, #table-screen.t36.rows2 #my-draw .tile.selected { transform: translateY(-11%) !important; }
#table-screen.t36 #my-hand .tile.claim-pop { transform: translateY(-14%) !important; animation: none !important; box-shadow: 0 var(--td) 0 var(--tile-side), 0 0 0 2px #ffe14a, 0 0 14px #ffe14a !important; }
#table-screen.t36.rows2 #my-hand .tile.claim-pop { transform: translateY(-8%) !important; }

/* 面子 */
#table-screen.t36 .z6 { display: flex !important; flex-wrap: wrap !important; gap: 6px 10px !important; align-items: flex-end !important; z-index: 8 !important; background: none !important; border: 0 !important; padding: 0 !important; overflow: visible; --om: 26px; }
#table-screen.t36.m36 .z6 { --om: 15px; gap: 4px 6px !important; }
#table-screen.t36 #my-melds { flex-wrap: nowrap !important; z-index: 24 !important; }
#table-screen.t36.m36 #my-melds { justify-content: center; scrollbar-width: none; }
#table-screen.t36 .z6 .meld { display: flex !important; gap: 1px !important; position: relative; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; flex: 0 0 auto; }
#table-screen.t36 .z6 .tile { width: var(--om) !important; height: calc(var(--om) * 1.43) !important; --w: var(--om); --h: calc(var(--om) * 1.43); --td: 2px; transform: none !important; margin: 0 !important; }
#table-screen.t36 #my-melds .tile { width: var(--mw) !important; height: var(--mh) !important; --w: var(--mw); --h: var(--mh); --td: 3px; }

/* 对手手牌（背面） */
#table-screen.t36 .z3.opp-hand { display: flex !important; gap: 2px !important; z-index: 6 !important; overflow: visible !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
#table-screen.t36 #seat-north .z3 .tile { width: var(--ob) !important; height: calc(var(--ob) * 1.43) !important; margin: 0 !important; transform: none !important; }
#table-screen.t36 #seat-east .z3, #table-screen.t36 #seat-west .z3 { flex-direction: column !important; }
#table-screen.t36 #seat-east .z3 .tile, #table-screen.t36 #seat-west .z3 .tile { width: calc(var(--ob) * 1.43) !important; height: var(--ob) !important; margin: 0 !important; transform: none !important; }
#table-screen.t36 #seat-west .z3 .tile:not(.back) .face, #table-screen.t36 #seat-east .z3 .tile:not(.back) .face { position: absolute; left: 50%; top: 50%; width: var(--ob); height: calc(var(--ob) * 1.43); transform: translate(-50%, -50%) rotate(90deg); }
#table-screen.t36 #seat-east .z3 .tile:not(.back) .face { transform: translate(-50%, -50%) rotate(-90deg); }
#table-screen.t36 #seat-east .z3 .tile:not(.back), #table-screen.t36 #seat-west .z3 .tile:not(.back) { box-shadow: 0 2px 6px rgba(0,0,0,.5); }

/* 座位卡 */
#table-screen.t36 .z1 { z-index: 12 !important; display: block !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
#table-screen.t36 .sc36 { display: flex; align-items: center; gap: 10px; padding: 6px 14px 6px 6px; border-radius: 40px; background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.22)); border: 1px solid rgba(232,199,102,.25); color: #f3ead2; white-space: nowrap; font-family: "Noto Serif SC", serif; }
#table-screen.t36 #seat-east .sc36 { flex-direction: row-reverse; padding: 6px 6px 6px 14px; background: linear-gradient(270deg, rgba(0,0,0,.55), rgba(0,0,0,.22)); text-align: right; }
#table-screen.t36 .av36 { position: relative; width: 52px; height: 52px; border-radius: 50%; flex: none; display: block; transition: box-shadow .4s; }
#table-screen.t36 .av36 img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: #222; }
#table-screen.t36 .av36::after, #pop36 .av36::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 3px solid var(--fc, #8a7a50); box-shadow: 0 0 8px var(--fg, transparent); pointer-events: none; }
.av36.frame-jindan, .pp-realm.frame-jindan { --fc: #e8c766; --fg: rgba(232,199,102,.7); }
.av36.frame-xiantu, .pp-realm.frame-xiantu { --fc: #7fd3ff; --fg: rgba(127,211,255,.7); }
.av36.frame-shengdao, .pp-realm.frame-shengdao { --fc: #c58bff; --fg: rgba(197,139,255,.75); }
.av36.frame-zaohua, .pp-realm.frame-zaohua { --fc: #5fe3a1; --fg: rgba(95,227,161,.75); }
.av36.frame-wuji, .pp-realm.frame-wuji { --fc: #ffffff; --fg: rgba(255,255,255,.8); }
.av36.frame-yongheng, .pp-realm.frame-yongheng { --fc: #ff7a59; --fg: rgba(255,122,89,.8); }
.av36.frame-wushang, .pp-realm.frame-wushang { --fc: #ffe14a; --fg: rgba(255,90,200,.85); }
#table-screen.t36 .av36.turn { box-shadow: 0 0 18px 8px rgba(255,236,150,.55), 0 0 40px 14px rgba(255,220,120,.25); animation: turn36 1.6s ease-in-out infinite alternate; }
@keyframes turn36 { from { box-shadow: 0 0 10px 4px rgba(255,236,150,.4), 0 0 26px 8px rgba(255,220,120,.18); } to { box-shadow: 0 0 20px 9px rgba(255,236,150,.6), 0 0 44px 16px rgba(255,220,120,.28); } }
#table-screen.t36 .dealer36 { position: absolute; right: -5px; bottom: -5px; width: 20px; height: 20px; border-radius: 50%; background: #b8322a; color: #fff; font: 12px/18px "Noto Serif SC", serif; font-style: normal; text-align: center; border: 1px solid #ffd76a; z-index: 2; }
#table-screen.t36 .sc36-t { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
#table-screen.t36 .nm36 { font-weight: 700; font-size: 15px; }
#table-screen.t36 .wd36 { font-style: normal; color: var(--acc); font-size: 12px; margin-right: 4px; }
#table-screen.t36 .meta36 { font-size: 12px; color: #d9c48a; }
#table-screen.t36 .meta36 b { color: #ffe08a; }
#table-screen.t36 .chip36 { font-size: 11px; color: #cfe8d6; }
#table-screen.t36 .chip36.up { color: #7dffb0; } #table-screen.t36 .chip36.down { color: #ff9a8a; }
#table-screen.t36 .sc36 em { font-style: normal; font-size: 11px; padding: 0 6px; border-radius: 8px; margin-top: 2px; align-self: flex-start; }
#table-screen.t36 .trib36 { color: #c9a7ff; border: 1px solid #9a7aff; } #table-screen.t36 .luck36 { color: #ffd76a; border: 1px solid #ffd76a; }
#table-screen.t36.m36 .sc36 { flex-direction: column !important; gap: 5px; padding: 0 !important; background: none !important; border: 0 !important; text-align: center !important; cursor: pointer; }
#table-screen.t36.m36 .av36 { width: 44px; height: 44px; }
#table-screen.t36.m36 .meta36, #table-screen.t36.m36 .sc36 em { display: none; }
#table-screen.t36.m36 .sc36-t { align-items: center; }
#table-screen.t36.m36 .nm36 { font-size: 11.5px; max-width: 72px; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 1px 2px #000; }
#table-screen.t36.m36 .wd36 { font-size: 10px; margin-right: 2px; }
#table-screen.t36.m36 .chip36 { font-size: 10px; }
#table-screen.t36.m36 .dealer36 { width: 17px; height: 17px; font-size: 10px; line-height: 15px; }

/* 花牌区（座风花单独高亮） */
#table-screen.t36 .z8 { display: flex; gap: 3px; align-items: center; z-index: 9; font-size: 11px; color: #d9c48a; padding-bottom: 12px; }
#table-screen.t36 .z8:empty { display: none; }
#table-screen.t36 .z8 .fl-lab, .s36-fl .fl-lab { margin-right: 2px; }
#table-screen.t36 .fl36, #pop36 .fl36 { width: 22px !important; height: 31px !important; --w: 22px; --h: 31px; --td: 2px; position: relative; }
#table-screen.t36.m36 .fl36 { width: 18px !important; height: 26px !important; }
.tile.fl36.sw { outline: 2px solid #ffd76a; outline-offset: 1px; box-shadow: 0 0 10px 2px rgba(255,215,106,.75) !important; }
.tile .swt { position: absolute; left: 50%; bottom: -14px; transform: translateX(-50%); font-size: 9px; line-height: 11px; padding: 0 3px; border-radius: 5px; background: #b8322a; color: #fff; white-space: nowrap; border: 1px solid #ffd76a; z-index: 3; font-style: normal; }
#table-screen.t36 .fl-chip { font-size: 11px; color: #f3e6bf; background: rgba(0,0,0,.45); border: 1px solid rgba(232,199,102,.5); border-radius: 10px; padding: 1px 7px; white-space: nowrap; cursor: pointer; }
#table-screen.t36.m36 .z8 { cursor: pointer; padding: 3px 5px 13px; border-radius: 10px; background: rgba(0,0,0,.35); }

/* 听牌提示（只用可见牌计数） */
#table-screen.t36 .tp36 { display: flex; gap: 10px; align-items: center; padding: 6px 12px; border-radius: 12px; background: rgba(0,0,0,.6); border: 1px solid rgba(232,199,102,.45); z-index: 28 !important; color: #e6dab4; }
#table-screen.t36 .tp36.hidden { display: none !important; }
#table-screen.t36 .tp36 .tp-lab { font: 400 22px "Ma Shan Zheng", "Noto Serif SC", serif; color: #ffe08a; }
#table-screen.t36 .tp36 .tp-it { position: relative; display: flex; flex-direction: column; align-items: center; font-size: 11px; gap: 4px; }
#table-screen.t36 .tp36 .tile.tp-t { width: 28px !important; height: 40px !important; --w: 28px; --h: 40px; --td: 2px; cursor: default; }
#table-screen.t36 .tp36 .tp-b { position: absolute; top: -7px; right: -9px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: #c33; color: #fff; font: 11px/16px "Noto Serif SC", serif; font-style: normal; text-align: center; border: 1px solid #ffd76a; z-index: 3; }
#table-screen.t36 .tp36 .tp-b.zero { background: #555; }
#table-screen.t36 .tp36 .tp-after { font-size: 11px; color: #bfb38c; max-width: 76px; line-height: 1.3; }
#table-screen.t36 .tp36.m { padding: 3px 12px; border-radius: 14px; border-color: #d9b45a; box-shadow: 0 0 10px rgba(255,215,106,.45); cursor: pointer; }
#table-screen.t36 .tp36.m.open { gap: 12px; padding: 8px 12px 6px; }
#table-screen.t36 .tp36.m .tp-badge { font: 400 18px "Ma Shan Zheng", "Noto Serif SC", serif; color: #ffe08a; }
#table-screen.t36 .tp36.m .tp-badge small { font: 12px "Noto Serif SC", serif; }
#table-screen.t36 .tp36.m .tile.tp-t { width: 24px !important; height: 34px !important; }
#table-screen.t36 .tp36 .tp-fold { font-size: 13px; color: #bfb38c; }

/* 操作按钮：金边圆钮，自下弹出 */
#table-screen.t36 #actions { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 18px !important; align-items: center !important; z-index: 40 !important; pointer-events: none; background: none !important; border: 0 !important; padding: 0 !important; overflow: visible !important; }
#table-screen.t36 #actions > * { pointer-events: auto; }
#table-screen.t36 #actions .act.ab36, #chi-bar .ab36 { position: relative !important; width: 76px !important; height: 76px !important; flex: 0 0 auto !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 50% !important; display: grid !important; place-items: center !important; font: 400 38px/1 "Ma Shan Zheng", "Noto Serif SC", serif !important; color: #fff3cf !important;
  background: radial-gradient(circle at 35% 30%, #3c6b4f, #123222) !important; border: 4px solid #d9b45a !important; box-shadow: 0 0 0 2px #6b4d14, 0 6px 14px rgba(0,0,0,.6), inset 0 2px 6px rgba(255,255,255,.25) !important; animation: pop36 .38s cubic-bezier(.2, 1.5, .4, 1) both !important; cursor: pointer; order: 1; transform: none !important; inset: auto !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; writing-mode: horizontal-tb !important; letter-spacing: 0 !important; }
#table-screen.t36 #actions .act.ab36.chi { order: 2; } #table-screen.t36 #actions .act.ab36.peng { order: 3; } #table-screen.t36 #actions .act.ab36.gang, #table-screen.t36 #actions .act.ab36.angang, #table-screen.t36 #actions .act.ab36.jiagang { order: 4; }
#table-screen.t36 #actions .act.ab36 span { display: block !important; }
#table-screen.t36 #actions .act.ab36.two { font-size: 22px !important; }
#table-screen.t36 #actions .act.ab36.hu { width: 96px !important; height: 96px !important; font-size: 48px !important; background: radial-gradient(circle at 35% 30%, #ff5a45, #8c1010) !important; border-color: #ffd76a !important; box-shadow: 0 0 0 2px #7a4a08, 0 0 28px 8px rgba(255,120,60,.7), 0 0 60px 14px rgba(255,200,80,.35), inset 0 2px 8px rgba(255,255,255,.35) !important; animation: pop36 .38s cubic-bezier(.2, 1.5, .4, 1) both, hu36 1.1s ease-in-out .4s infinite alternate !important; order: 9; }
#table-screen.t36 #actions .act.ab36.pass { width: 58px !important; height: 58px !important; font: 400 22px/1 "Noto Serif SC", serif !important; background: rgba(0,0,0,.55) !important; border: 2px solid #8a7a50 !important; box-shadow: 0 4px 10px rgba(0,0,0,.5) !important; order: 0; }
#table-screen.t36 #actions .act.ab36.discard { font-size: 24px !important; }
#table-screen.t36 #actions .act.ab36:active { scale: .94; }
@keyframes pop36 { from { translate: 0 40px; scale: .4; opacity: 0; } to { translate: 0 0; scale: 1; opacity: 1; } }
@keyframes hu36 { to { box-shadow: 0 0 0 2px #7a4a08, 0 0 38px 12px rgba(255,140,60,.85), 0 0 80px 20px rgba(255,210,90,.45), inset 0 2px 8px rgba(255,255,255,.35); } }
#table-screen.t36.m36 #actions { gap: 10px !important; }
#table-screen.t36.m36 #actions .act.ab36 { width: 58px !important; height: 58px !important; font-size: 30px !important; border-width: 3px !important; }
#table-screen.t36.m36 #actions .act.ab36.two { font-size: 17px !important; }
#table-screen.t36.m36 #actions .act.ab36.hu { width: 72px !important; height: 72px !important; font-size: 38px !important; }
#table-screen.t36.m36 #actions .act.ab36.pass { width: 46px !important; height: 46px !important; font-size: 18px !important; }
body > #chi-bar.on.t36 { background: rgba(10,14,12,.88) !important; border: 1px solid #d9b45a !important; border-radius: 14px; padding: 6px 10px !important; gap: 10px !important; }
#chi-bar.t36 .chi36 { display: flex !important; align-items: center; gap: 6px; background: none !important; border: 0 !important; padding: 2px !important; }
#chi-bar.t36 .ab36.mini { width: 44px !important; height: 44px !important; font-size: 24px !important; border-width: 3px !important; animation: none !important; display: grid !important; }
#chi-bar.t36 .chi-tiles .tile.chi-take { outline: 2px solid #ffd76a; }

/* 弹层：座位 / 花牌 / 设置 */
#pop36.pop36-layer { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; }
#pop36.hidden { display: none !important; }
#pop36 .pop36 { position: relative; min-width: 240px; max-width: min(92vw, 460px); background: rgba(10,14,12,.95); border: 1px solid #d9b45a; border-radius: 14px; padding: 16px 18px 12px; box-shadow: 0 10px 30px rgba(0,0,0,.7); color: #f3ead2; text-align: center; font-family: "Noto Serif SC", serif; animation: pop36 .25s ease-out both; }
#pop36 .av36.big { position: relative; width: 72px; height: 72px; margin: 6px auto 12px; border-radius: 50%; display: block; }
#pop36 .av36.big img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
#pop36 .pp-name { font-weight: 700; font-size: 17px; }
#pop36 .pp-line { margin-top: 6px; font-size: 14px; color: #d9c48a; }
#pop36 .pp-realm { color: var(--fc, #ffe08a); }
#pop36 .pp-zl { color: #ffe08a; font-size: 18px; }
#pop36 .pp-title { font-size: 14px; color: #ffe08a; margin-bottom: 12px; }
#pop36 .pp-title.big { font: 400 26px "Ma Shan Zheng", "Noto Serif SC", serif; }
#pop36 .pp-title small { font-size: 11px; color: #bfb38c; }
#pop36 .pp-flowers { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding-bottom: 16px; }
#pop36 .fl36.big { width: 34px !important; height: 48px !important; }
#pop36 .pp-note { font-size: 11px; color: #bfb38c; line-height: 1.6; text-align: left; }
#pop36 .pop36-close { margin-top: 10px; font-size: 11px; color: #8f8566; cursor: pointer; }
#pop36 .set36 { text-align: left; width: min(92vw, 420px); }
#pop36 .set36-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0 6px; font-size: 15px; flex-wrap: wrap; }
#pop36 .seg36 { display: flex; border: 1px solid #d9b45a; border-radius: 18px; overflow: hidden; }
#pop36 .seg36 button { background: none; border: 0; color: #f3ead2; padding: 6px 14px; font: 14px "Noto Serif SC", serif; cursor: pointer; }
#pop36 .seg36 button.on { background: linear-gradient(#e8c766, #b88a2e); color: #2a1a08; font-weight: 700; }
#pop36 .set36-note { font-size: 11px; color: #bfb38c; line-height: 1.55; padding-bottom: 8px; border-bottom: 1px solid rgba(232,199,102,.18); }
#pop36 .set36-note a { color: #ffe08a; }
#pop36 .set36-done { display: flex; justify-content: center; margin-top: 12px; }
#pop36 .btn36 { padding: 8px 40px; border-radius: 20px; border: 0; background: linear-gradient(#e8c766, #b88a2e); color: #2a1a08; font: 700 15px "Noto Serif SC", serif; cursor: pointer; }

/* 结算：分享卡风格 */
#modal-body.settle36 { position: relative; width: min(900px, 94vw) !important; max-width: 94vw !important; max-height: 92vh; overflow-y: auto; text-align: center; border-radius: 18px !important; padding: 22px 26px 18px !important;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,215,106,.25), transparent 60%), linear-gradient(180deg, #1a1410, #0c0a08) !important; border: 2px solid #d9b45a !important; box-shadow: 0 0 0 6px rgba(0,0,0,.4), 0 20px 60px rgba(0,0,0,.8) !important; color: #f3ead2; }
#modal-body.settle36 .s36-h { font: 400 46px/1.15 "Ma Shan Zheng", "Noto Serif SC", serif; color: #ffe08a; text-shadow: 0 0 18px rgba(255,200,80,.7); margin: 0; }
#modal-body.settle36 .s36-seal { position: absolute; right: 20px; top: 16px; width: 60px; height: 60px; border: 3px solid #c3302a; color: #c3302a; border-radius: 8px; transform: rotate(-12deg); font: 400 22px/1 "Ma Shan Zheng", serif; display: grid; place-items: center; opacity: .9; }
#modal-body.settle36 .settle-head { color: #d9c48a; text-align: center; margin: 4px auto 2px; }
#modal-body.settle36 .settle-cult, #modal-body.settle36 .settle-zhanli { text-align: center; }
#modal-body.settle36 .slam-seal { display: none; }
#modal-body.settle36 .s36-spread { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: flex-end; gap: 22px 14px !important; margin: 30px 0 8px !important; padding: 0 !important; background: none !important; }
#modal-body.settle36 .s36-g { position: relative; display: flex; gap: 2px; padding: 0 !important; border: 0 !important; background: none !important; }
#modal-body.settle36 .s36-g .tile { width: 46px !important; height: 66px !important; --w: 46px; --h: 66px; --td: 4px; box-shadow: 0 4px 0 var(--tile-side), 0 6px 10px rgba(0,0,0,.5); transform: none; }
#modal-body.settle36 .s36-g.tagged .tile { outline: 3px solid #ffd76a; box-shadow: 0 0 16px 4px rgba(255,215,106,.75); }
#modal-body.settle36 .s36-g.exposed:not(.tagged) .tile { filter: brightness(.95); }
#modal-body.settle36 .s36-win .tile { width: 54px !important; height: 77px !important; outline: 3px solid #ffd76a; box-shadow: 0 0 18px 5px rgba(255,215,106,.85) !important; transform: none !important; }
#modal-body.settle36 .s36-tag { position: absolute; top: -21px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11px; background: #b8322a; color: #fff; padding: 1px 6px; border-radius: 8px; border: 1px solid #ffd76a; z-index: 2; }
#modal-body.settle36 .s36-fl { display: flex; justify-content: center; align-items: center; gap: 6px; font-size: 12px; color: #d9c48a; margin: 6px 0 18px; }
#modal-body.settle36 .s36-fl .tile { width: 26px !important; height: 37px !important; position: relative; }
#modal-body.settle36 .s36-cols { background: none !important; border: 0 !important; }
#modal-body.settle36 .s36-cols .roll-head { justify-content: center; font-size: 18px; }
#modal-body.settle36 .s36-grid { display: flex; gap: 34px; justify-content: center; text-align: left; margin-top: 8px; }
#modal-body.settle36 .s36-col { min-width: 200px; }
#modal-body.settle36 .s36-col h4 { font-size: 14px; color: #ffe08a; border-bottom: 1px solid rgba(232,199,102,.4); margin: 0 0 6px; padding-bottom: 3px; }
#modal-body.settle36 .s36-col .score-line { display: flex; justify-content: space-between; gap: 24px; font-size: 13px; line-height: 1.75; }
#modal-body.settle36 .s36-pay { background: rgba(255,255,255,.03) !important; font-size: 13px; }
#modal-body.settle36 .s36-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
#modal-body.settle36 .s36-btns .btn { border-radius: 20px; padding: 8px 22px; }
@media (max-width: 600px) {
  #modal-body.settle36 { padding: 16px 10px 12px !important; }
  #modal-body.settle36 .s36-h { font-size: 32px; }
  #modal-body.settle36 .s36-seal { width: 42px; height: 42px; font-size: 16px; right: 8px; top: 8px; }
  #modal-body.settle36 .s36-spread { gap: 22px 6px !important; margin-top: 26px !important; }
  #modal-body.settle36 .s36-g .tile { width: 24px !important; height: 34px !important; --td: 2px; }
  #modal-body.settle36 .s36-win .tile { width: 30px !important; height: 43px !important; }
  #modal-body.settle36 .s36-grid { gap: 14px; }
  #modal-body.settle36 .s36-col { min-width: 0; flex: 1; }
  #modal-body.settle36 .s36-col .score-line { gap: 8px; font-size: 12px; }
}

/* 手机：菜单折叠成一个按钮 */
#table-screen.t36.m36 .info36 { top: 12px; left: 14px; gap: 12px; }
#table-screen.t36.m36 .menu36-btn { display: block; position: absolute; top: 8px; right: 10px; z-index: 61; padding: 4px 10px; border-radius: 12px; border: 1px solid rgba(232,199,102,.6); background: rgba(0,0,0,.5); color: #f3e6bf; font: 12px "Noto Serif SC", serif; }
#table-screen.t36.m36 .side-menu { display: none !important; }
#table-screen.t36.m36 .side-menu.open36 { display: flex !important; position: absolute !important; top: 40px !important; right: 8px !important; left: auto !important; flex-direction: column; gap: 8px; padding: 10px; background: rgba(10,14,12,.95); border: 1px solid #d9b45a; border-radius: 12px; width: auto !important; max-width: 92vw; }
#table-screen.t36.m36 .side-menu.open36 .menu-row { flex-wrap: wrap; justify-content: flex-end; }
body:has(#modal:not(.hidden)) #table-screen.t36 :is(#my-hand, #my-draw, #actions, #tp36, #chi-bar, #seat-south .z3), body:has(#modal:not(.hidden)) #log-box { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
/* v37 恢复中央方框「亮边」回合指示：面向当前出牌者的那条边点亮；倒计时在框内居中不碰边 */
#winner-banner { display: none !important; }
.turn-square .edge37 { position: absolute; display: block; border-radius: 6px; background: rgba(141,122,82,.45); pointer-events: none; z-index: 2; transition: background .2s, box-shadow .2s; }
.turn-square .edge37[data-d="north"] { left: 12%; right: 12%; top: 0; height: 7px; }
.turn-square .edge37[data-d="south"] { left: 12%; right: 12%; bottom: 0; height: 7px; }
.turn-square .edge37[data-d="west"] { top: 12%; bottom: 12%; left: 0; width: 7px; }
.turn-square .edge37[data-d="east"] { top: 12%; bottom: 12%; right: 0; width: 7px; }
.turn-square .edge37.on { background: var(--edge-on, #ffe14a); box-shadow: 0 0 10px 2px var(--edge-on, #ffe14a), 0 0 22px 6px var(--edge-glow, rgba(255,225,74,.55)); animation: edge37 .9s ease-in-out infinite alternate; }
@keyframes edge37 { from { filter: brightness(1); } to { filter: brightness(1.45); } }
#table-screen:not(.t36) .turn-square .edge37 { display: none; }
#table-screen.t36 .turn-square { inset: 0 !important; border-radius: 18px; }
#table-screen.t36.m36 .turn-square .edge37[data-d="north"], #table-screen.t36.m36 .turn-square .edge37[data-d="south"] { height: 6px; }
#table-screen.t36.m36 .turn-square .edge37[data-d="west"], #table-screen.t36.m36 .turn-square .edge37[data-d="east"] { width: 6px; }
body.theme-chixia { --edge-on: #fff1a8; --edge-glow: rgba(255,240,160,.6); }
body.theme-yelan { --edge-on: #ffd84a; --edge-glow: rgba(255,210,70,.6); }
/* v37 手机结算面板可滚动：牌桌元素不再盖住弹窗；动态视口高度；按钮条吸底；右上角关闭 */
#table-screen.t36 { isolation: isolate; }
#modal { z-index: 150; }
#modal-body.settle36 { max-height: 92vh; max-height: calc(100dvh - 20px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); overflow-y: auto !important; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; touch-action: pan-y; padding-bottom: 0 !important; }
#modal-body.settle36 .s36-btns, #modal-body.settle36 .ch-end { position: sticky; bottom: 0; z-index: 6; margin: 10px -26px 0 !important; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) !important; background: linear-gradient(180deg, rgba(26,18,8,.82), #1a1208 40%); border-top: 1px solid rgba(212,175,55,.45); display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
#modal-body.settle36 .s36-btns[style*="display:none"] { display: none !important; }
#modal-body.settle36 .s36-x { position: sticky; top: 0; float: right; z-index: 7; width: 40px; height: 40px; margin: -10px -14px 0 8px; border-radius: 50%; border: 1px solid #d4af37; background: rgba(90,16,48,.92); color: #fff; font: 400 26px/1 serif; display: grid; place-items: center; cursor: pointer; touch-action: manipulation; }
#modal-body.settle36 .s36-seal { right: 64px; }
@media (max-width: 600px) {
  #modal { align-items: flex-start !important; padding-top: calc(10px + env(safe-area-inset-top, 0px)); }
  #modal-body.settle36 { width: calc(100vw - 16px) !important; max-width: calc(100vw - 16px) !important; padding-left: 14px !important; padding-right: 14px !important; }
  #modal-body.settle36 .s36-btns, #modal-body.settle36 .ch-end { margin: 10px -14px 0 !important; }
  #modal-body.settle36 .s36-x { margin: -10px -6px 0 8px; }
}
/* v37 恢复「东风位」粉色小条：贴在庄家（东风）那一侧内沿、风字旁边，不压亮边、不压倒计时 */
#table-screen.t36 .dealer-bar { display: block !important; position: absolute !important; z-index: 3; margin: 0 !important; border-radius: 6px; background: var(--dealer-pink, #ff4fa3) !important; box-shadow: 0 0 8px var(--dealer-pink, #ff4fa3), 0 0 0 1px rgba(255,255,255,.35) !important; pointer-events: none; transform: none !important; }
#table-screen.t36 .dealer-bar.south { left: 22% !important; right: auto !important; top: auto !important; bottom: 12% !important; width: 16% !important; height: 6px !important; }
#table-screen.t36 .dealer-bar.north { left: 22% !important; right: auto !important; bottom: auto !important; top: 12% !important; width: 16% !important; height: 6px !important; }
#table-screen.t36 .dealer-bar.east { top: 22% !important; bottom: auto !important; left: auto !important; right: 12% !important; height: 16% !important; width: 6px !important; }
#table-screen.t36 .dealer-bar.west { top: 22% !important; bottom: auto !important; right: auto !important; left: 12% !important; height: 16% !important; width: 6px !important; }
body.theme-chixia { --dealer-pink: #ff7fc4; }
body.theme-yelan { --dealer-pink: #ff5fb0; }
/* v37 大厅紧凑布局：去掉「洋产」字标与拼音，顶部不留空，入口 2×2 + 福利 4 宫格 */
#splash.splash { padding: calc(12px + env(safe-area-inset-top, 0px)) 14px calc(18px + env(safe-area-inset-bottom, 0px)) !important; gap: 12px !important; justify-content: flex-start !important; }
#splash > .brand { display: none !important; }
#splash .menu { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px !important; width: min(560px, 100%) !important; margin: 0 !important; }
#splash .menu > .btn { width: auto !important; min-width: 0 !important; margin: 0 !important; min-height: 58px; padding: 8px 6px !important; display: flex !important; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; line-height: 1.2; }
#splash .menu > .btn small { flex-basis: 100%; margin: 0 !important; font-size: 11px; opacity: .85; }
#splash .wf-entry { width: min(560px, 100%) !important; margin: 0 !important; display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 8px !important; }
#splash .wf-entry .wf-tile { width: auto !important; min-width: 0 !important; margin: 0 !important; }
#splash .ch-widget { width: min(560px, 100%) !important; margin: 0 !important; box-sizing: border-box; }
#splash .hl-entry { margin: 0 !important; }
@media (min-width: 521px) {
  #splash.splash { padding-top: 76px !important; justify-content: flex-start !important; }
  #splash .menu > .btn { min-height: 64px; font-size: 19px !important; }
}
@media (max-width: 520px) {
  #splash .user-bar { margin: 0 !important; }
  #splash .menu > .btn { min-height: 54px; font-size: 17px !important; }
  #splash .wf-entry .wf-tile { padding: 8px 2px !important; }
}
/* v38 独立「返回大厅」按钮（菜单左侧） */
#table-screen.t36 #btn-back.back36 { position: absolute !important; left: auto !important; bottom: auto !important; top: 8px; right: 120px; z-index: 62 !important; margin: 0 !important; padding: 5px 14px !important; border-radius: 14px !important; border: 1px solid #e8c766 !important; background: linear-gradient(180deg, rgba(120,84,20,.92), rgba(60,40,8,.92)) !important; color: #fff3cf !important; font: 600 13px/1.2 "Noto Serif SC", serif !important; letter-spacing: .08em; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.45), 0 0 8px rgba(232,199,102,.35) !important; writing-mode: horizontal-tb !important; width: auto !important; height: auto !important; min-width: 0 !important; }
#table-screen.t36.m36 #btn-back.back36 { padding: 4px 10px !important; font-size: 12px !important; border-radius: 12px !important; }
#table-screen:not(.t36) #btn-back.back36 { position: absolute; top: 8px; right: 12px; }
/* v39 大厅「未打完的牌局」提示条 */
#splash .resume-banner { width: min(560px, 100%); box-sizing: border-box; display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 14px; border: 1px solid rgba(232,199,102,.6); border-radius: 12px; background: linear-gradient(90deg, rgba(90,60,12,.55), rgba(30,20,6,.75)); color: #f6e3a8; font: 14px/1.3 "Noto Serif SC", serif; box-shadow: 0 0 12px rgba(212,175,55,.18); }
#splash .resume-banner.hidden { display: none !important; }
#splash .resume-banner .rb-txt { flex: 1; text-align: left; }
#splash .resume-banner button { flex: none; padding: 5px 14px; border-radius: 14px; font: 600 13px/1.2 "Noto Serif SC", serif; cursor: pointer; touch-action: manipulation; }
#splash .resume-banner .rb-go { border: 1px solid #e8c766; background: linear-gradient(180deg, #b8892a, #7a5512); color: #fff8e0; }
#splash .resume-banner .rb-drop { border: 1px solid rgba(232,199,102,.45); background: rgba(0,0,0,.35); color: #d9c690; }

/* v40 新手教程入口 + 首次登录轻提示 */
#splash .hl-row { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
#splash .tut-entry { text-decoration: none; display: inline-block; }
#splash .tut-tip { width: min(560px, 100%); box-sizing: border-box; display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 14px; border: 1px dashed rgba(232,199,102,.7); border-radius: 12px; background: rgba(40,28,8,.72); color: #f6e3a8; font: 13px/1.45 "Noto Serif SC", serif; }
#splash .tut-tip .tt-txt { flex: 1; text-align: left; }
#splash .tut-tip .tt-go { text-decoration: none; border: 1px solid #e8c766; background: #e8c766; color: #2a1c06; border-radius: 999px; padding: 4px 12px; font-weight: 700; white-space: nowrap; }
#splash .tut-tip .tt-no { border: 1px solid rgba(232,199,102,.5); background: transparent; color: #e8d7a0; border-radius: 999px; padding: 4px 10px; white-space: nowrap; cursor: pointer; font: inherit; }
#auth-screen .auth-tut { display: block; margin-top: 10px; text-align: center; color: #e8c766; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }

/* v42 自绘确认弹窗（替代原生 confirm/alert），随牌桌主题 --acc 着色 */
.yc-dlg { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: radial-gradient(ellipse at center, rgba(20,12,4,.55), rgba(4,2,1,.82)); backdrop-filter: blur(2px); animation: ycDlgIn .18s ease-out; }
.yc-dlg.out { opacity: 0; transition: opacity .15s; }
.yc-dlg-card { --dacc: var(--acc, #d4af37); position: relative; width: min(420px, 100%); box-sizing: border-box; padding: 26px 24px 20px; text-align: center;
  color: #f3e6c4; font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
  background: linear-gradient(180deg, #2a1c0e 0%, #1a1208 60%, #140d06 100%);
  border: 1px solid #d4af37; border-radius: 14px;
  box-shadow: 0 0 0 4px rgba(26,18,8,.9), 0 0 0 5px rgba(212,175,55,.45), 0 24px 60px rgba(0,0,0,.7); animation: ycDlgPop .2s ease-out; }
.yc-dlg-orn { position: absolute; left: 50%; top: -1px; width: 120px; height: 3px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, var(--dacc), transparent); }
.yc-dlg-title { margin: 0 0 12px; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: normal; font-size: 28px; letter-spacing: .25em; color: #f5d27a; text-shadow: 0 2px 6px rgba(0,0,0,.6); }
.yc-dlg-title::after { content: ""; display: block; width: 64px; height: 1px; margin: 10px auto 0; background: linear-gradient(90deg, transparent, #d4af37, transparent); }
.yc-dlg-msg p { margin: 6px 0; font-size: 15px; line-height: 1.75; }
.yc-dlg-card.danger .yc-dlg-msg p:nth-child(2) { color: #ffd9a0; padding: 8px 10px; border-radius: 8px; background: rgba(140,40,20,.22); border: 1px dashed rgba(240,150,90,.45); }
.yc-dlg-btns { display: flex; gap: 12px; justify-content: center; margin-top: 18px; }
.yc-dlg-btns button { flex: 1 1 0; max-width: 160px; min-height: 44px; padding: 8px 14px; font-family: inherit; font-size: 16px; letter-spacing: .2em; border-radius: 22px; cursor: pointer; transition: transform .08s, filter .15s; }
.yc-dlg-btns button:active { transform: scale(.97); }
.yc-dlg-cancel { background: transparent; color: #e8d7ad; border: 1px solid rgba(212,175,55,.55); }
.yc-dlg-cancel:hover { background: rgba(212,175,55,.1); }
.yc-dlg-ok { color: #2a1606; font-weight: 700; border: 1px solid #f5d27a; background: linear-gradient(180deg, #f5d27a, #c9962c); box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.yc-dlg-card.danger .yc-dlg-ok { color: #fff3e0; border-color: #e8a060; background: linear-gradient(180deg, #b8452a, #7a1e12); }
.yc-dlg-btns button:hover { filter: brightness(1.08); }
.yc-dlg-btns button:focus-visible { outline: 2px solid #f5d27a; outline-offset: 2px; }
body.theme-chixia .yc-dlg-card { background: linear-gradient(180deg, #3a1612 0%, #24100c 60%, #170906 100%); border-color: #f0b860; }
body.theme-yelan .yc-dlg-card { background: linear-gradient(180deg, #1c2440 0%, #121830 60%, #0a0e1e 100%); border-color: #b9c8ff; box-shadow: 0 0 0 4px rgba(10,14,30,.9), 0 0 0 5px rgba(185,200,255,.4), 0 24px 60px rgba(0,0,0,.7); }
body.theme-yelan .yc-dlg-title { color: #dfe8ff; }
body.theme-yelan .yc-dlg-cancel { color: #dfe8ff; border-color: rgba(185,200,255,.5); }
@keyframes ycDlgIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ycDlgPop { from { transform: translateY(8px) scale(.97); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 480px) { .yc-dlg-card { padding: 22px 18px 16px; } .yc-dlg-title { font-size: 24px; } .yc-dlg-msg p { font-size: 14px; } }

/* ===== v43 江湖称号：图鉴 / 徽记 / 详情 / 获得提示 / 佩戴签 ===== */
.jh-book { position: fixed; inset: 0; z-index: 1200; background: radial-gradient(120% 60% at 50% 0%, #241a0b, #0b0905 70%); display: flex; justify-content: center; }
.jh-book.hidden, .jh-detail.hidden { display: none; }
.jh-page { position: relative; width: 100%; max-width: 1180px; height: 100%; display: flex; flex-direction: column; color: var(--gold-2); font-family: "Noto Serif SC", serif; }
.jh-close { position: absolute !important; top: 10px !important; right: 10px !important; width: 40px !important; height: 40px !important; font-size: 24px !important; z-index: 3; }
.jh-head { padding: 14px 60px 8px 16px; border-bottom: 1px solid rgba(212,175,55,.25); flex: none; }
.jh-head h3 { margin: 0 0 4px; font-size: 20px; letter-spacing: .2em; color: #ffd98a; }
.jh-count { font-size: 13px; color: #cdb98a; } .jh-count b { color: #ffd98a; font-size: 18px; }
.jh-tabs { display: flex; gap: 6px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.jh-tabs button { flex: none; border: 1px solid rgba(212,175,55,.35); background: rgba(255,200,64,.05); color: #d9c48f; border-radius: 999px; padding: 5px 13px; font-size: 13px; cursor: pointer; font-family: inherit; }
.jh-tabs button.on { background: linear-gradient(180deg,#f3cf6a,#b9862a); color: #2a1a04; border-color: #f3cf6a; font-weight: 700; }
.jh-body { flex: 1; overflow-y: auto; padding: 6px 12px 40px; -webkit-overflow-scrolling: touch; }
.jh-sec h4 { margin: 14px 2px 8px; font-size: 15px; color: #f0d690; letter-spacing: .15em; } .jh-sec h4 small { color: #a8956a; letter-spacing: 0; font-weight: 400; }
.jh-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.jh-card { position: relative; min-height: 150px; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 6px 10px; border-radius: 12px; cursor: pointer; font-family: inherit; color: inherit;
  border: 1.5px solid var(--tc, #4a4030); background: radial-gradient(120% 90% at 50% 0%, rgba(255,220,140,.08), rgba(0,0,0,.25)), #15110a; overflow: hidden; }
.jh-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,var(--sheen,0)) 50%, transparent 65%); background-size: 250% 100%; animation: jhSheen 4s ease-in-out infinite; pointer-events: none; }
@keyframes jhSheen { 0% { background-position: 120% 0; } 60%,100% { background-position: -120% 0; } }
.jh-card.off { filter: grayscale(1); opacity: .55; } .jh-card.off::after { display: none; }
.jh-card.worn { box-shadow: 0 0 0 2px #ffd98a inset; }
.jh-nm { font-size: 14px; color: #fff1c9; line-height: 1.2; text-align: center; }
.jh-ln { font-size: 11px; color: #b9a678; line-height: 1.3; text-align: center; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.jh-pg { width: 86%; height: 12px; border-radius: 6px; background: rgba(255,255,255,.08); position: relative; overflow: hidden; margin-top: auto; }
.jh-pg i { position: absolute; left: 0; top: 0; bottom: 0; background: linear-gradient(90deg,#8a6a20,#e8c260); }
.jh-pg em { position: relative; font-size: 9px; font-style: normal; color: #fff; display: block; text-align: center; line-height: 12px; }
.jh-worn { position: absolute; top: 6px; right: -22px; transform: rotate(35deg); background: #b3241c; color: #fff; font-size: 10px; font-style: normal; padding: 1px 24px; }
.tc-bronze { --tc: #b0743e; --tc2: #e0a06a; --sheen: .14; }
.tc-silver { --tc: #aeb7c2; --tc2: #eef2f7; --sheen: .22; }
.tc-gold { --tc: #e6b94a; --tc2: #fff0b0; --sheen: .32; }
.tc-gold.jh-card { box-shadow: 0 0 14px rgba(230,185,74,.35); }
/* 徽记：分类形制（圆/印/八角）+ 档位描边 */
.jh-emb { --s: 64px; position: relative; width: var(--s); height: var(--s); flex: none; display: inline-grid; place-items: center; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--c1), var(--c2) 70%); border: calc(var(--s) * .06) solid var(--tc, #555); box-shadow: 0 2px 8px rgba(0,0,0,.5), inset 0 0 calc(var(--s) * .15) rgba(0,0,0,.45); }
.jh-emb .jh-ring { position: absolute; inset: calc(var(--s) * .08); border-radius: inherit; border: 1px dashed var(--tc2, rgba(255,255,255,.4)); opacity: .7; }
.jh-emb b { position: relative; font-family: "Noto Serif SC", serif; font-size: calc(var(--s) * .46); color: var(--tc2, #ddd); text-shadow: 0 1px 2px rgba(0,0,0,.7); line-height: 1; font-weight: 900; }
.jh-emb.cat-px { border-radius: 16%; --c1: #c8352a; --c2: #6e1410; }               /* 牌型：朱红方印 */
.jh-emb.cat-px .jh-ring { border-style: solid; }
.jh-emb.cat-hf { --c1: #2f8a6a; --c2: #0f3a2c; }                                     /* 胡法：玉璧 */
.jh-emb.cat-zj { --c1: #9a6a2a; --c2: #3a250c; }                                     /* 战绩：铜钱 */
.jh-emb.cat-zj .jh-ring { inset: 34%; border-radius: 3px; border-style: solid; opacity: .35; }
.jh-emb.cat-jh { border-radius: 0; clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); --c1: #3a4f8f; --c2: #141c3a; border: 0; box-shadow: inset 0 0 0 calc(var(--s) * .07) var(--tc, #555); } /* 江湖：八角令 */
.jh-emb.cat-xw { --c1: #7a4ab0; --c2: #26123f; }                                     /* 修为战力：紫气 */
.jh-emb.cat-xw .jh-ring { border-style: double; border-width: 3px; }
.jh-emb.cat-qw { border-radius: 30% 30% 46% 46%; --c1: #c08a2a; --c2: #4a2e08; }    /* 趣味：葫芦印 */
.jh-emb.off { --c1: #555; --c2: #222; border-color: #444; }
.jh-emb.off b { color: #999; }
.jh-emb.glow { animation: jhGlow 2.2s ease-in-out infinite; }
@keyframes jhGlow { 0%,100% { box-shadow: 0 0 10px 2px rgba(255,210,90,.55); } 50% { box-shadow: 0 0 26px 8px rgba(255,220,110,.95); } }
/* 详情 */
.jh-detail { position: fixed; inset: 0; z-index: 1300; background: rgba(0,0,0,.6); display: flex; align-items: center; justify-content: center; padding: 16px; }
.jh-dbox { position: relative; width: min(420px, 100%); max-height: 92vh; overflow-y: auto; text-align: center; padding: 26px 20px 20px; border-radius: 16px; color: var(--gold-2); font-family: "Noto Serif SC", serif;
  background: radial-gradient(100% 60% at 50% 0%, rgba(255,215,120,.16), transparent), #17120a; border: 2px solid var(--tc, #4a4030); box-shadow: 0 10px 40px rgba(0,0,0,.6); }
.jh-dbox .title-close { top: 8px; right: 8px; width: 36px; height: 36px; font-size: 22px; }
.jh-dbox h3 { margin: 12px 0 2px; font-size: 24px; color: #fff1c9; letter-spacing: .15em; }
.jh-cat { font-size: 13px; color: var(--tc2, #b9a678); }
.jh-flavor { font-size: 16px; color: #f3e0a6; margin: 14px 0 6px; }
.jh-cond, .jh-when { font-size: 12px; color: #b9a678; margin: 4px 0; }
.jh-tiers { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin: 8px 0; }
.jh-tiers span { font-size: 12px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--tc); color: var(--tc2); opacity: .45; }
.jh-tiers span.on { opacity: 1; background: rgba(255,255,255,.06); }
.jh-acts { margin-top: 14px; } .jh-acts .btn { min-width: 140px; }
/* 获得提示 */
.jh-unlock { position: fixed; top: 70px; right: 12px; z-index: 1400; display: flex; gap: 10px; align-items: center; padding: 10px 16px 10px 10px; border-radius: 14px; cursor: pointer; max-width: calc(100vw - 24px);
  background: linear-gradient(135deg, #2a1f0c, #120d05); border: 2px solid var(--tc, #b0743e); box-shadow: 0 8px 30px rgba(0,0,0,.6), 0 0 20px rgba(230,185,74,.3); transform: translateX(120%); transition: transform .35s ease; font-family: "Noto Serif SC", serif; }
.jh-unlock.in { transform: translateX(0); }
.jh-unlock small { display: block; font-size: 11px; color: #c9b27a; letter-spacing: .2em; }
.jh-unlock b { display: block; font-size: 20px; color: #fff1c9; letter-spacing: .1em; }
.jh-unlock em { font-style: normal; font-size: 12px; color: var(--tc2, #e0a06a); }
/* 佩戴签 */
.jh-chip { display: inline-block; vertical-align: middle; margin-left: 4px; padding: 0 6px; font-size: 11px; line-height: 17px; border-radius: 4px; white-space: nowrap; font-family: "Noto Serif SC", serif;
  color: var(--tc2, #e0a06a); border: 1px solid var(--tc, #b0743e); background: rgba(0,0,0,.35); font-style: normal; font-weight: 600; }
.jh-chip.glow { box-shadow: 0 0 8px rgba(255,210,90,.9); animation: jhGlow 2.2s ease-in-out infinite; }
.jh-chip.sc { font-size: 10px; line-height: 15px; padding: 0 4px; margin-left: 3px; }
.sc36-t .jh-chip.sc { display: inline-block; max-width: 100%; overflow: visible; }
.jh-chip.pf { font-size: 13px; line-height: 20px; margin-left: 8px; }
/* 20261019n 去佩戴 / 大厅计数 / 新红点 / 金色获得弹窗 / 庆祝条称号 */
.jh-go { display: inline-block; vertical-align: middle; margin-left: 4px; padding: 0 6px; font-size: 11px; line-height: 17px; border-radius: 4px; white-space: nowrap;
  color: #cdb98a; border: 1px dashed rgba(205,185,138,.55); background: rgba(0,0,0,.25); font-family: "Noto Serif SC", serif; cursor: pointer; font-style: normal; }
.jh-go:hover { color: #ffe9b0; border-color: #e8c260; }
.jh-go.pf { font-size: 13px; line-height: 20px; margin-left: 8px; }
.jh-go.sc { font-size: 10px; line-height: 15px; padding: 0 4px; margin-left: 3px; }
.jh-entry { position: relative; }
.jh-meta { margin-left: .35em; font-size: 11px; letter-spacing: 0; opacity: .85; font-family: ui-sans-serif, system-ui, sans-serif; }
.jh-dot { position: absolute; top: -6px; right: -6px; width: 10px; height: 10px; border-radius: 50%; background: #e5483d; box-shadow: 0 0 0 2px rgba(20,10,0,.6); }
.jh-card.off .jh-pg { opacity: 1; filter: none; }
.jh-got-ov { position: fixed; inset: 0; z-index: 100002; display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; background: rgba(0,0,0,.72); animation: lbnIn .25s ease; }
.jh-got-card { position: relative; width: min(92vw, 420px); max-height: 90vh; overflow: auto; box-sizing: border-box; padding: 26px 18px 18px; text-align: center;
  border-radius: 16px; border: 2px solid #f1d27a; background: linear-gradient(160deg, #4a2c08, #1e0f03 70%); color: #ffe9b0;
  box-shadow: 0 0 40px rgba(241,210,122,.45), inset 0 0 24px rgba(241,210,122,.15); font-family: "Noto Serif SC", serif; }
.jh-got-glow { position: absolute; inset: -2px; border-radius: 16px; pointer-events: none; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,120,.35), transparent 55%); }
.jh-got-ico { font-size: 28px; color: #ffe08a; text-shadow: 0 0 12px rgba(255,200,80,.8); }
.jh-got-ttl { font-size: 22px; font-weight: 700; letter-spacing: .15em; margin: 6px 0 14px; color: #fff1c9; }
.jh-got-list { display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; }
.jh-got-row { display: flex; align-items: center; gap: 10px; text-align: left; padding: 8px 10px; border-radius: 10px; background: rgba(0,0,0,.28); border: 1px solid rgba(241,210,122,.25); }
.jh-got-row b { display: block; font-size: 16px; color: #fff1c9; }
.jh-got-row em { font-style: normal; font-size: 12px; color: var(--tc2, #e0a06a); }
.jh-got-row .btn { margin-left: auto; flex: 0 0 auto; }
.jh-got-acts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.jh-got-acts .btn { min-width: 110px; }
.cel-jh { display: inline-block; vertical-align: middle; margin: 0 .25em 0 0; padding: 0 6px; font-size: .85em; line-height: 1.35; border-radius: 4px; white-space: nowrap;
  font-family: "Noto Serif SC", serif; font-weight: 700; color: var(--tc2, #e0a06a); border: 1px solid var(--tc, #b0743e); background: rgba(0,0,0,.35); }
.cel-jh.glow { box-shadow: 0 0 8px rgba(255,210,90,.9); }
.cel-jh.tc-gold { --tc: #e8c260; --tc2: #ffe9a8; }
.cel-jh.tc-silver { --tc: #a8b0bc; --tc2: #e8ecf2; }
.cel-jh.tc-bronze { --tc: #b0743e; --tc2: #e0a06a; }
.pf-jh-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.pf-jh-rare { display: flex; gap: 14px; margin-top: 10px; flex-wrap: wrap; }
.pf-jh-item { display: flex; flex-direction: column; align-items: center; gap: 3px; } .pf-jh-item em { font-style: normal; font-size: 12px; color: #f0d690; }
@media (max-width: 520px) {
  .jh-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .jh-card { min-height: 140px; padding: 10px 4px 8px; }
  .jh-head { padding: 12px 56px 8px 12px; }
}

/* ===== v44 段位徽记 ===== */
.zl-emb { --c1: #7a5a2a; --c2: #3a2a10; --ink: #ffe9b8; --rim: #b8894a; position: relative; display: inline-grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); background: linear-gradient(160deg, var(--rim), var(--c2)); }
.zl-emb::before { content: ""; position: absolute; inset: 2px; clip-path: inherit; background: radial-gradient(circle at 50% 30%, var(--c1), var(--c2) 75%); }
.zl-emb i { position: relative; font: 400 16px/1 "Ma Shan Zheng", "Noto Serif SC", serif; font-style: normal; color: var(--ink); text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.zl-emb.xs { width: 24px; height: 24px; } .zl-emb.xs i { font-size: 13px; }
.zl-emb.sm { width: 34px; height: 34px; } .zl-emb.sm i { font-size: 18px; }
.zl-emb.md { width: 50px; height: 50px; } .zl-emb.md i { font-size: 26px; }
.zl-emb.lg { width: 72px; height: 72px; filter: drop-shadow(0 0 10px rgba(255,200,80,.45)); } .zl-emb.lg i { font-size: 38px; }
.zl-emb.t0 { --c1: #3a3428; --c2: #16130c; --rim: #5c533c; --ink: #9d8f6c; }
.zl-emb.t1 { --c1: #6b4a2a; --c2: #2a1a0c; --rim: #9a6a3a; }
.zl-emb.t2 { --c1: #8a5a2a; --c2: #3a220c; --rim: #c88a4a; }
.zl-emb.t3 { --c1: #8f8f96; --c2: #2c2c33; --rim: #d0d0d8; --ink: #fff; }
.zl-emb.t4 { --c1: #a9b3c0; --c2: #343c48; --rim: #e6eef8; --ink: #fff; }
.zl-emb.t5 { --c1: #c9a23a; --c2: #4a3608; --rim: #ffe08a; --ink: #fff6d6; }
.zl-emb.t6 { --c1: #e0b43c; --c2: #5a3c06; --rim: #fff0a8; --ink: #3a2400; }
.zl-emb.t7 { --c1: #3fa58a; --c2: #0c3a2e; --rim: #9ff0d4; --ink: #eafff6; }
.zl-emb.t8 { --c1: #3f86c8; --c2: #0c2a4a; --rim: #a8dcff; --ink: #f0f8ff; }
.zl-emb.t9 { --c1: #8a52c8; --c2: #2a0c4a; --rim: #e0b8ff; --ink: #fff2ff; }
.zl-emb.t10 { --c1: #e0502a; --c2: #4a0c0c; --rim: #ffd25a; --ink: #fff4c0; }
.zl-emb.t10.lg, .zl-emb.t9.lg { animation: zlEmbGlow 2.6s ease-in-out infinite; }
/* 20261019zi 十段以上：每 10 档一阶，配色更高（赤金→霓虹→星辉→混沌），带流光边 */
.zl-emb.t-hi { background: conic-gradient(from 0deg, var(--rim), #fff6c8, var(--rim), var(--c1), var(--rim)); }
.zl-emb.t-hi::before { inset: 2.5px; background: radial-gradient(circle at 50% 28%, var(--c1), var(--c2) 72%); }
.zl-emb.t-hi.lg, .zl-emb.t-hi.md { animation: zlEmbGlow 2.2s ease-in-out infinite; }
.zl-emb.tx1 { --c1: #ff7a2a; --c2: #5a1000; --rim: #ffe066; --ink: #fff8d0; }
.zl-emb.tx2 { --c1: #ff3fa0; --c2: #3a0040; --rim: #7af0ff; --ink: #ffffff; }
.zl-emb.tx3 { --c1: #5a7bff; --c2: #08083a; --rim: #f6f0ff; --ink: #fffbe0; }
.zl-emb.tx4 { --c1: #1a1a1a; --c2: #000; --rim: #ff4040; --ink: #ffd700; }
.zl-emb.w2 i { font-size: 12px; letter-spacing: -1px; } .zl-emb.w3 i { font-size: 9px; letter-spacing: -1px; }
.zl-emb.xs.w2 i { font-size: 10px; } .zl-emb.xs.w3 i { font-size: 8px; }
.zl-emb.sm.w2 i { font-size: 13px; } .zl-emb.sm.w3 i { font-size: 10px; }
.zl-emb.md.w2 i { font-size: 19px; } .zl-emb.md.w3 i { font-size: 15px; }
.zl-emb.lg.w2 i { font-size: 27px; } .zl-emb.lg.w3 i { font-size: 21px; }
.zl-ind-avg b { color: #ffe39a; }
@keyframes zlEmbGlow { 50% { filter: drop-shadow(0 0 18px rgba(255,170,80,.8)); } }

/* ===== v44 大厅榜单卡片 ===== */
.rk-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: min(100%, 520px); margin: 10px auto 0; }
.rkc { position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 7px 8px 6px; border-radius: 12px; border: 1px solid rgba(212,175,55,.55); color: #f3e0a6; text-align: left; cursor: pointer; font-family: "Noto Serif SC", serif;
  background: radial-gradient(120% 80% at 100% 0, rgba(255,200,80,.16), transparent 60%), linear-gradient(170deg, #22170a, #0d0904); box-shadow: inset 0 0 0 1px rgba(0,0,0,.5), 0 4px 14px rgba(0,0,0,.45); overflow: hidden; }
.rkc::after { content: ""; position: absolute; inset: auto -20% -40% auto; width: 90px; height: 90px; border-radius: 50%; background: radial-gradient(rgba(212,175,55,.12), transparent 70%); pointer-events: none; }
.rkc.rkc-zl { border-color: rgba(127,190,255,.5); background: radial-gradient(120% 80% at 100% 0, rgba(127,180,255,.16), transparent 60%), linear-gradient(170deg, #121a26, #07090d); }
.rkc:hover { border-color: #ffe39a; } .rkc:active { transform: scale(.985); }
.rkc-skel { min-height: 122px; opacity: .5; cursor: default; }
.rkc-h { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.rkc-h i { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; font: 400 13px/1 "Ma Shan Zheng", serif; font-style: normal; color: #2a1a04; background: radial-gradient(#ffe48a, #b8801c); }
.rkc-zl .rkc-h i { background: radial-gradient(#d6efff, #3f86c8); color: #06182a; }
.rkc-h b { font-size: 15px; letter-spacing: .08em; color: #ffe39a; }
.rkc-zl .rkc-h b { color: #cfe8ff; }
.rkc-h small { font-size: 10px; color: #8f7a4f; } .rkc-h em { margin-left: auto; font-style: normal; color: #d4af37; font-size: 18px; line-height: 1; }
.rkc-top { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.rkc-top li { display: grid; grid-template-columns: 16px 26px 1fr auto; align-items: center; gap: 5px; height: 26px; font-size: 12px; }
.rkc-top li.vacant { opacity: .45; }
.rkc-no { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; font-size: 10px; color: #1a1208; background: #8f7a4f; }
.rkc-no.n1 { background: linear-gradient(#fff2b0, #d4a017); box-shadow: 0 0 6px rgba(255,210,90,.7); } .rkc-no.n2 { background: linear-gradient(#f4f6fa, #9aa4b2); } .rkc-no.n3 { background: linear-gradient(#ffd0a0, #a8642c); }
.rkc-av { width: 26px !important; height: 26px !important; }
span.rkc-av:empty { border-radius: 50%; background: rgba(255,255,255,.06); }
.rkc-img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; display: block; }
.rkc-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #f3e0a6; font-weight: 700; }
.rkc-v { color: #ffe39a; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 11px; }
.rkc-zl .rkc-v { color: #bfe2ff; }
.rkc-me { margin-top: 1px; padding-top: 4px; border-top: 1px dashed rgba(212,175,55,.3); font-size: 11px; color: #b89c62; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rkc-me b { color: #9ee6b4; font-size: 13px; }
@media (max-width: 520px) {
  .rk-cards { gap: 6px; margin-top: 8px; }
  .rkc { padding: 6px 6px 5px; }
  .rkc-top li { grid-template-columns: 14px 24px 1fr auto; gap: 4px; height: 24px; font-size: 11.5px; }
  .rkc-av, .rkc-img { width: 24px !important; height: 24px !important; }
  .rkc-h b { font-size: 14px; }
}

/* ===== v44 战力榜 ===== */
.zl-rank-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; font-size: 13px; color: #b89c62; margin: 0 2px 8px; }
.zl-rank-head b { color: #ffe39a; } .zl-mine { color: #f3e0a6; } .zl-mine b { color: #9ee6b4; font-size: 15px; }
.zl-podium { display: grid; grid-template-columns: 1fr 1.15fr 1fr; align-items: end; gap: 8px; margin: 6px 0 12px; padding: 14px 8px 0; border-radius: 14px; background: radial-gradient(70% 90% at 50% 0, rgba(255,200,80,.18), transparent 70%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 80'%3E%3Cpath d='M0 80 L60 30 L110 55 L170 10 L230 50 L290 22 L340 48 L400 18 L400 80Z' fill='%23d4af37' fill-opacity='.08'/%3E%3C/svg%3E") bottom/100% 60% no-repeat; }
.zl-pod { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; text-align: center; }
.zl-pod b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #f3e0a6; font-size: 14px; }
.zl-pod.p1 b { font-size: 16px; color: #ffe39a; }
.zl-pod-sc { font: 700 20px/1 "Noto Serif SC", serif; color: #ffe39a; } .zl-pod.p1 .zl-pod-sc { font-size: 26px; text-shadow: 0 0 12px rgba(255,200,80,.5); }
.zl-pod em { font-style: normal; font-size: 11px; color: #b89c62; }
.zl-pod-base { width: 100%; margin-top: 6px; display: grid; place-items: center; font: 400 22px/1 "Ma Shan Zheng", serif; color: #2a1a04; border-radius: 8px 8px 0 0; background: linear-gradient(#e8c766, #8a6a2a); box-shadow: inset 0 2px 0 rgba(255,255,255,.35); }
.zl-pod.p1 .zl-pod-base { height: 58px; background: linear-gradient(#fff0a8, #c99a22); }
.zl-pod.p2 .zl-pod-base { height: 40px; background: linear-gradient(#eef2f8, #8a94a4); }
.zl-pod.p3 .zl-pod-base { height: 28px; background: linear-gradient(#ffd0a0, #94582a); }
.zl-pod.empty { opacity: .5; } .zl-pod.me b { color: #9ee6b4; }
.zl-ladder { position: relative; list-style: none; margin: 4px 0 8px; padding: 4px 0; display: flex; flex-direction: column; gap: 5px; }
.zl-ladder::before { content: ""; position: absolute; left: 22px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(#ff8a4a, #d4af37 40%, #6b4a2a); opacity: .6; }
.zl-rung { position: relative; display: grid; grid-template-columns: 34px 5.6em 1fr 3.4em; align-items: center; gap: 8px; padding: 4px 10px 4px 5px; border-radius: 10px; border: 1px solid rgba(212,175,55,.18); background: linear-gradient(90deg, rgba(212,175,55,.08), rgba(0,0,0,.25)); }
.zl-rung.r { margin-left: 14px; }
.zl-rung.vacant { opacity: .5; }
.zl-rung-txt { display: flex; flex-direction: column; line-height: 1.15; } .zl-rung-txt b { color: #f3e0a6; font-size: 14px; } .zl-rung-txt small { color: #8f7a4f; font-size: 10px; }
.zl-rung-pop { height: 8px; border-radius: 6px; background: rgba(0,0,0,.4); overflow: hidden; } .zl-rung-pop i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #8a6a2a, #ffe39a); }
.zl-rung-n { text-align: right; font-size: 12px; color: #d4af37; font-weight: 700; }
.zl-rung.mine { border-color: #9ee6b4; background: linear-gradient(90deg, rgba(158,230,180,.2), rgba(0,0,0,.25)); box-shadow: 0 0 12px rgba(158,230,180,.25); }
.zl-you { position: absolute; right: 6px; top: -8px; padding: 0 6px; font-style: normal; font-size: 10px; line-height: 16px; color: #0d2a18; background: #9ee6b4; border-radius: 8px; }
.zl-row { grid-template-columns: 26px 24px 1fr auto auto; }

/* ===== v44 我的战力 ===== */
.zl-hero { display: flex; align-items: center; gap: 14px; justify-content: center; padding: 14px 12px; border-radius: 14px; border: 1px solid #5c4316; background: radial-gradient(90% 120% at 20% 50%, rgba(255,200,80,.18), transparent 60%), linear-gradient(160deg, rgba(212,175,55,.1), rgba(0,0,0,.45)); }
.zl-hero.solo { border-color: #2f5a63; background: radial-gradient(90% 120% at 20% 50%, rgba(127,211,255,.18), transparent 60%), linear-gradient(160deg, rgba(110,180,200,.1), rgba(0,0,0,.45)); }
.zl-hero-main { text-align: left; } .zl-hero-lab { font-size: 12px; color: #b89c62; letter-spacing: .2em; }
.zl-hero .zl-score { margin-top: 0; } .zl-hero .zl-tier { letter-spacing: .3em; }
.zl-step { margin: 10px 0 4px; padding: 8px 10px; border-radius: 12px; border: 1px solid #3a2e10; background: rgba(0,0,0,.28); }
.zl-step-row { display: grid; grid-template-columns: 44px 1fr 48px 1fr 44px; align-items: center; gap: 4px; }
.zl-step-n { display: flex; flex-direction: column; align-items: center; gap: 2px; } .zl-step-n small { font-size: 10px; color: #8f7a4f; } .zl-step-n.cur small { color: #ffe39a; font-weight: 700; } .zl-step-n.past { opacity: .7; }
.zl-step-line { height: 4px; border-radius: 3px; background: #2a1d0a; overflow: hidden; } .zl-step-line i { display: block; height: 100%; background: linear-gradient(90deg, #8a6a2a, #ffe39a); }
.zl-step-line.dim i { background: linear-gradient(90deg, #ffe39a, rgba(255,227,154,.2)); }
.zl-step-tip { margin: 6px 0 0; text-align: center; font-size: 12px; color: #b89c62; } .zl-step-tip b { color: #ffe39a; }
.zl-step.eval span { display: block; text-align: center; font-size: 12px; color: #b89c62; margin-top: 4px; }
.zl-chart { padding: 6px 8px 8px; border: 1px solid #3a2e10; border-radius: 12px; background: rgba(0,0,0,.25); min-width: 0; }
.zl-chart h4 { margin: 0 0 4px; font-size: 13px; color: #d4af37; letter-spacing: .15em; }
.zl-chart canvas { display: block; width: 100%; height: auto; background: none; border: 0; }
.zl-recent { max-height: none; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.zl-rc { display: inline-flex; flex-direction: column; align-items: center; min-width: 34px; padding: 2px 3px; border-radius: 6px; border: 1px solid #3a2e10; line-height: 1.15; }
.zl-rc b { font-size: 11px; } .zl-rc small { font-size: 9px; color: #8f7a4f; }
.zl-rc.zm { border-color: #d4af37; background: rgba(212,175,55,.18); } .zl-rc.zm b { color: #ffe39a; }
.zl-rc.win { border-color: #6fbf8a; background: rgba(111,191,138,.14); } .zl-rc.win b { color: #b8f0c8; }
.zl-rc.pao { border-color: #a04a4a; background: rgba(160,74,74,.16); } .zl-rc.pao b { color: #ff9a9a; }
.zl-rc.none b { color: #8f7a4f; }
.zl-ind { grid-template-columns: 5.6em 6.4em 1fr 2.2em; }
.zl-ind-v { color: #f3e0a6; } .zl-ind-bar { height: 6px; border-radius: 4px; background: #2a1d0a; overflow: hidden; } .zl-ind-bar i { display: block; height: 100%; background: linear-gradient(90deg, #8a6a2a, #ffe39a); }
.zl-ind em { text-align: right; font-weight: 700; }
.zl-mepage .zl-note { margin-top: 8px; }
@media (max-width: 520px) {
  .zl-ind { grid-template-columns: 4.6em 6em 1fr 2em; font-size: 12px; }
  .zl-hero .zl-score { font-size: 40px; }
  .zl-rung { grid-template-columns: 34px 5em 1fr 3.2em; }
}
@media (min-width: 900px) {
  .zl-rankpage .zl-ladder { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: row; }
  .zl-rankpage .zl-ladder::before { display: none; }
  .zl-rankpage .zl-rung.r { margin-left: 0; }
}
#splash .rk-cards { width: min(560px, 100%); margin: 0; box-sizing: border-box; }

/* ===== v47 点赞 / 膜拜 ===== */
@keyframes lkPop { 0% { transform: scale(1); } 35% { transform: scale(1.28); } 100% { transform: scale(1); } }
.lk-pop { animation: lkPop .45s ease-out; }
.win-likes h3 { margin-bottom: 6px; }
.wl-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wl-btn { display: inline-flex; align-items: center; gap: 6px; min-width: 84px; height: 40px; padding: 0 14px; border-radius: 20px; border: 1px solid #b8892c; background: linear-gradient(180deg, rgba(255,214,120,.18), rgba(120,70,10,.25)); color: #ffe7a8; font: 700 15px "Noto Serif SC", serif; cursor: pointer; }
.wl-btn i { font-style: normal; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #d4a017; color: #2a1606; font-size: 13px; }
.wl-btn.fu i { background: #c0392b; color: #fff3e0; }
.wl-btn b { font-variant-numeric: tabular-nums; }
.wl-btn:disabled { cursor: default; opacity: .85; filter: saturate(.8); }
.wl-tip { font-size: 12px; color: #c9b27a; }
.lk-note { position: fixed; left: 50%; top: 64px; transform: translate(-50%, 0); z-index: 9999; display: flex; align-items: center; gap: 8px; max-width: min(92vw, 420px); padding: 8px 14px; border-radius: 22px; background: rgba(28,18,6,.94); border: 1px solid #d4a017; color: #ffe9b0; font: 13px "Noto Serif SC", serif; box-shadow: 0 6px 20px rgba(0,0,0,.45); transition: opacity .5s, transform .5s; }
.lk-note i { font-style: normal; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #d4a017; color: #2a1606; font-weight: 700; flex: none; }
.lk-note.out { opacity: 0; transform: translate(-50%, -12px); }
.hl-li { display: flex; gap: 6px; align-items: stretch; }
.hl-li .hl-open { flex: 1; min-width: 0; }
.hl-like { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: 52px; border-radius: 10px; border: 1px solid #5c4316; background: rgba(212,175,55,.06); color: #f3e0a6; cursor: pointer; font-family: inherit; }
.hl-like i { font-style: normal; font-size: 13px; color: #d4a017; }
.hl-like b { font-size: 12px; font-variant-numeric: tabular-nums; }
.hl-like.on { background: rgba(212,160,23,.28); border-color: #d4a017; }
.hl-like:disabled { cursor: default; }
.uc-link { cursor: pointer; text-decoration: underline dotted rgba(243,224,166,.5); text-underline-offset: 2px; }
.hl-best-in { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; font-size: 12px; color: #f3e0a6; }
.hl-best-in > b { color: #ffd76a; }
.hl-best-in span { padding: 2px 8px; border-radius: 10px; background: rgba(212,160,23,.14); }
.hl-best-in i { font-style: normal; color: #ffd76a; margin-right: 4px; }
.hl-best-in em { font-style: normal; color: #ffe39a; }
.hl-best { border-color: rgba(212,175,55,.5); background: linear-gradient(180deg, rgba(48,32,8,.78), rgba(12,8,3,.88)); }
.hlb-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.hlb-head b { font-size: 15px; color: #ffd76a; letter-spacing: .1em; }
.hlb-head em { font-style: normal; font-size: 11px; color: #b39a62; flex: 1; }
.hlb-more { background: none; border: 0; color: #e8c87a; font: 12px inherit; cursor: pointer; }
.hlb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.hlb-list li { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 6px; font-size: 13px; padding: 3px 6px; border-radius: 8px; background: rgba(255,255,255,.04); color: #f3e0a6; }
.hlb-list li > i { font-style: normal; text-align: center; font-weight: 700; color: #b39a62; }
.hlb-list li.n1 > i { color: #ffd76a; } .hlb-list li.n2 > i { color: #e0e0e0; } .hlb-list li.n3 > i { color: #e0a070; }
.hlb-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlb-t b { cursor: pointer; } .hlb-t small { margin-left: 6px; color: #a89160; font-size: 11px; }
.hlb-n { font-style: normal; color: #ffe39a; font-size: 12px; display: inline-flex; gap: 3px; align-items: center; }
.hlb-n i { font-style: normal; color: #d4a017; }
.mb-btn { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 1px 8px; height: 22px; border-radius: 11px; border: 1px solid #a67c2e; background: rgba(212,160,23,.12); color: #ffe39a; font: 600 11px "Noto Serif SC", serif; cursor: pointer; vertical-align: middle; white-space: nowrap; }
.mb-btn i { font-style: normal; color: #ffb347; }
.mb-btn b { font-variant-numeric: tabular-nums; }
.mb-btn.on { background: rgba(212,160,23,.32); border-color: #ffd76a; }
.mb-btn.self { opacity: .7; }
.mb-btn.sm { margin-left: 0; height: 18px; padding: 0 5px; font-size: 10px; border-radius: 9px; }
.rkc-top li { grid-template-columns: 16px 26px 1fr auto auto; }
.zl-pod .mb-btn { margin: 2px auto 0; }
@media (max-width: 520px) { .rkc-top li { grid-template-columns: 14px 24px 1fr auto auto; } .mb-btn.sm { padding: 0 4px; } }
.panel-ucard { max-width: 420px; }
.uc-book { position: relative; padding: 6px 4px; color: #f3e0a6; font-family: "Noto Serif SC", serif; }
.uc-hero { display: flex; gap: 12px; align-items: center; margin: 4px 0 12px; }
.uc-av { width: 64px; height: 64px; }
.uc-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.uc-name { font-size: 20px; color: #ffe7a8; margin-right: 6px; }
.uc-realm { display: block; font-style: normal; color: #c9b27a; font-size: 13px; margin-top: 2px; }
.uc-likes, .pf-lk-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.uc-total { display: flex; flex-direction: column; align-items: center; }
.uc-total b { font-size: 28px; color: #ffd76a; line-height: 1.1; font-variant-numeric: tabular-nums; }
.uc-total span { font-size: 12px; color: #b39a62; }
.uc-like { display: inline-flex; align-items: center; gap: 6px; }
.uc-like i { font-style: normal; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #2a1606; color: #ffd76a; }
.uc-like.done { opacity: .75; }
.lk-break { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 4px; font-size: 12px; }
.lk-break span { padding: 3px 9px; border-radius: 10px; background: rgba(212,160,23,.12); color: #e8d29a; }
.lk-break b { color: #ffe39a; }
.hl-list .hl-like { width: 52px; flex: none; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 4px 0; }
.hl-list .hl-open { flex: 1 1 auto; width: auto; min-width: 0; }
.hl-list .hl-like.on { background: rgba(212,160,23,.28); border-color: #d4a017; }

/* ===== v49 旗忠村 / 强恕学堂 / 牌桌工具（玄幻江湖风） ===== */
.btn.btn-smithy { position: relative; background: linear-gradient(135deg, #2e1406, #120703 60%, #3a1c04) !important; border-color: #ff9a4a !important; color: #ffe0c2 !important; box-shadow: 0 0 12px rgba(255,140,60,.3) !important; font-weight: 700; letter-spacing: .15em; }
.btn.btn-smithy small { color: #ffb980; }
.pk-badge.sm-badge { background: radial-gradient(#ffd08a, #c2501a) !important; color: #2a0c02 !important; }
.btn.btn-huashan { background: linear-gradient(135deg, #14122e, #07061a 60%, #2a1c3e) !important; border-color: #c9b2ff !important; color: #ece2ff !important; box-shadow: 0 0 12px rgba(180,150,255,.3) !important; font-weight: 700; letter-spacing: .15em; }
.btn.btn-huashan small { color: #c7b6f3; }
.pk-badge.hs-badge { background: radial-gradient(#efe3ff, #6f4fc2) !important; color: #140a2e !important; }
.sm-book { overflow-y: auto; background: radial-gradient(120% 60% at 50% 0%, #3a1a08, #0b0603 70%), #0b0603; }
.sm-book.hidden, .hs-book.hidden { display: none; }
.sm-page { position: relative; width: 100%; max-width: 1100px; padding: 18px 16px 40px; color: #f3dcb8; font-family: "Noto Serif SC", serif; }
.sm-hero { display: flex; gap: 14px; align-items: center; padding: 6px 56px 14px 4px; border-bottom: 1px solid rgba(255,160,80,.28); }
.sm-anvil { width: 58px; height: 58px; flex: none; display: grid; place-items: center; border-radius: 50%; font-size: 28px; color: #2a0c02; background: radial-gradient(circle at 35% 30%, #ffe2a8, #e0782a 55%, #6a2406); box-shadow: 0 0 22px rgba(255,120,40,.55), inset 0 -4px 10px rgba(0,0,0,.35); animation: smForge 2.6s ease-in-out infinite; }
@keyframes smForge { 50% { box-shadow: 0 0 34px rgba(255,150,60,.85), inset 0 -4px 10px rgba(0,0,0,.35); } }
.sm-hero h3 { margin: 0; font-size: 24px; letter-spacing: .3em; color: #ffd9a0; text-shadow: 0 0 10px rgba(255,140,50,.6); }
.sm-hero p { margin: 4px 0 0; font-size: 13px; color: #d7b48c; } .sm-hero p b { color: #ffd98a; font-size: 16px; }
.sm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 16px; }
.sm-card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 14px; border: 1px solid rgba(255,170,90,.4); background: linear-gradient(160deg, rgba(90,40,10,.55), rgba(20,8,3,.9)); box-shadow: inset 0 0 18px rgba(255,140,60,.08), 0 4px 18px rgba(0,0,0,.4); overflow: hidden; }
.sm-card::before { content: ""; position: absolute; inset: -40% -10% auto auto; width: 160px; height: 160px; background: radial-gradient(rgba(255,160,70,.18), transparent 70%); pointer-events: none; }
.sm-card.owned { border-color: #ffd98a; box-shadow: 0 0 0 1px #ffd98a inset, 0 0 18px rgba(255,217,138,.25); }
.sm-seal { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; font-size: 20px; color: #fff3dc; background: linear-gradient(135deg, #b8321a, #5c0f06); border: 1px solid #ffb08a; transform: rotate(-6deg); }
.sm-body h4 { margin: 0 52px 6px 0; font-size: 18px; color: #ffe1b0; letter-spacing: .12em; }
.sm-body p { margin: 0; font-size: 13px; line-height: 1.65; color: #e6cba6; } .sm-body small { display: block; margin-top: 6px; color: #b89670; font-size: 12px; }
.sm-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.sm-price { font-size: 18px; font-weight: 700; color: #ffd98a; }
.sm-own { padding: 4px 12px; border-radius: 999px; background: linear-gradient(180deg,#f3cf6a,#b9862a); color: #2a1a04; font-weight: 700; font-size: 13px; }
.sm-buy { min-width: 96px; }
.sm-note { margin-top: 18px; font-size: 12px; color: #a98c68; line-height: 1.7; }
.sm-tools { position: absolute; right: 10px; bottom: 210px; z-index: 60; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; max-width: 280px; pointer-events: none; }
.sm-tools > * { pointer-events: none; }
.sm-tools > .sm-ah { pointer-events: auto; }
.sm-tools .sm-panel { opacity: .94; }
.sm-ah { border: 1px solid #ffb06a; border-radius: 999px; padding: 8px 16px; font: 700 14px "Noto Serif SC", serif; letter-spacing: .1em; color: #2a0c02; background: linear-gradient(180deg, #ffd08a, #e0782a); box-shadow: 0 0 12px rgba(255,140,60,.55); cursor: pointer; }
.sm-ah.on { color: #ffe0c2; background: linear-gradient(180deg, #5a1c06, #2a0c02); animation: smForge 2s ease-in-out infinite; }
.sm-panel { background: rgba(14,8,4,.88); border: 1px solid rgba(255,190,110,.45); border-radius: 12px; padding: 8px 10px; color: #f3dcb8; font-size: 12px; box-shadow: 0 4px 16px rgba(0,0,0,.45); }
.sm-ptitle { font-weight: 700; color: #ffd98a; letter-spacing: .12em; margin-bottom: 6px; }
.sm-row { display: flex; align-items: center; gap: 8px; padding: 3px 0; border-top: 1px dashed rgba(255,190,110,.15); }
.sm-row:first-of-type { border-top: 0; }
.sm-row .tile.sm-mini, .hs-mini { width: 26px !important; height: 36px !important; flex: none; }
.sm-left { min-width: 42px; font-weight: 700; color: #9ef0c0; } .sm-left.zero { color: #ff8a7a; }
.sm-calc { line-height: 1.45; } .sm-calc b { color: #ffd98a; }
.sm-tip { margin-top: 4px; color: #a98c68; font-size: 11px; }
@media (max-width: 720px) { .sm-tools { bottom: 170px; right: 6px; max-width: 220px; } .sm-grid { grid-template-columns: 1fr; } .sm-hero h3 { font-size: 20px; } }
.hs-book { background: radial-gradient(120% 60% at 50% 0%, #1c1638, #06050f 70%); }
.hs-page { color: #ece2ff; }
.hs-head { padding: 14px 60px 10px 16px; border-bottom: 1px solid rgba(200,180,255,.25); }
.hs-head h3 { margin: 0 0 4px; font-size: 22px; letter-spacing: .3em; color: #e3d4ff; text-shadow: 0 0 12px rgba(160,120,255,.6); }
.hs-stat { font-size: 13px; color: #c7b6f3; } .hs-stat b { color: #fff; }
.hs-bar { height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); margin-top: 8px; overflow: hidden; } .hs-bar i { display: block; height: 100%; background: linear-gradient(90deg,#8f6bff,#f0d0ff); }
.hs-q { flex: 1; overflow-y: auto; padding: 12px 14px 20px; }
.hs-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: #c7b6f3; }
.hs-meta b { color: #fff; font-size: 16px; } .hs-theme { padding: 2px 10px; border-radius: 999px; background: rgba(160,120,255,.25); color: #f0e6ff; }
.hs-meta .ok { color: #9ef0c0; } .hs-meta .bad { color: #ff9a8a; }
.hs-prompt { margin: 10px 0; font-size: 16px; color: #fff; } .hs-prompt small { display: block; font-size: 12px; color: #a99bd0; margin-top: 2px; }
.hs-hand { display: flex; flex-wrap: wrap; gap: 4px; }
.hs-t { padding: 0; border: 2px solid transparent; border-radius: 6px; background: none; cursor: pointer; transition: transform .12s; }
.hs-t:hover { transform: translateY(-6px); } .hs-t .tile { width: 44px; height: 62px; }
.hs-t.ans { border-color: #9ef0c0; box-shadow: 0 0 10px #9ef0c0; } .hs-t.wrong { border-color: #ff8a7a; opacity: .75; }
.hs-fl, .hs-disc { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin-top: 8px; font-size: 12px; color: #a99bd0; }
.hs-disc span, .hs-fl { min-width: 60px; }
.hs-res { margin-top: 14px; padding: 12px; border-radius: 12px; border: 1px solid; } .hs-res.ok { border-color: #9ef0c0; background: rgba(40,120,80,.15); } .hs-res.bad { border-color: #ff8a7a; background: rgba(140,40,30,.15); }
.hs-res h4 { margin: 0 0 6px; color: #fff; } .hs-exp { margin: 0 0 8px; line-height: 1.7; font-size: 13px; }
.hs-tbl { width: 100%; border-collapse: collapse; font-size: 12px; } .hs-tbl th, .hs-tbl td { border-bottom: 1px solid rgba(200,180,255,.15); padding: 4px; text-align: left; } .hs-tbl tr.best td { color: #9ef0c0; font-weight: 700; }
.hs-nav { flex: none; display: flex; gap: 10px; justify-content: center; align-items: center; padding: 10px; border-top: 1px solid rgba(200,180,255,.2); }
.hs-nav select { background: #14102a; color: #ece2ff; border: 1px solid rgba(200,180,255,.4); border-radius: 6px; padding: 6px; }
@media (max-width: 720px) { .hs-t .tile { width: 22px; height: 31px; } .hs-hand { gap: 2px; } }

/* v50 战力榜卡片：江湖榜 / 单机榜 两个入口 */
.rkc-zl { cursor: pointer; }
.rkc-sw { display: flex; gap: 6px; margin-top: 6px; }
.rkc-sw button { flex: 1; padding: 4px 0; border-radius: 6px; border: 1px solid rgba(214,178,96,.55); background: rgba(40,28,12,.35); color: inherit; font: inherit; font-size: 12px; cursor: pointer; }
.rkc-sw button:hover { background: rgba(214,178,96,.22); }
.zl-other { text-align: center; margin: 14px 0 4px; }
/* v50 强恕学堂：开题范围选择 */
.hs-pick { display: grid; gap: 10px; margin: 18px 0; }
.hs-pick button { padding: 12px; font-size: 15px; }
.hs-pick small { display: block; opacity: .75; font-size: 12px; }

/* v52 闭关修炼 · 三档对手选择 */
.sp-card { width: min(460px, 100%); padding: 22px 16px 16px; }
.sp-card .yc-dlg-title { margin-bottom: 4px; }
.sp-lead { margin: 0 0 12px; font-size: 13px; color: #d9c79a; letter-spacing: .08em; }
.sp-list { display: flex; flex-direction: column; gap: 10px; }
.sp-tier { --c: #9fc28a; position: relative; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 10px; width: 100%; padding: 12px 12px; text-align: left; cursor: pointer;
  font-family: inherit; color: #f3e6c4; border-radius: 12px; border: 1px solid rgba(212,175,55,.35);
  background: linear-gradient(135deg, rgba(60,40,18,.65), rgba(18,12,6,.85)); transition: transform .08s, border-color .15s, box-shadow .15s; }
.sp-tier:hover, .sp-tier:focus-visible { border-color: var(--c); box-shadow: 0 0 12px color-mix(in srgb, var(--c) 45%, transparent); outline: none; }
.sp-tier:active { transform: scale(.985); }
.sp-tier.on { border-color: var(--c); box-shadow: 0 0 0 1px var(--c), 0 0 16px color-mix(in srgb, var(--c) 40%, transparent); }
.sp-mid { --c: #7fd3ff; } .sp-high { --c: #ffb347; }
.sp-high { background: linear-gradient(135deg, rgba(90,30,12,.7), rgba(24,10,4,.9)); }
.sp-seal { width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-size: 26px;
  color: #1a1008; background: radial-gradient(circle at 35% 30%, #fff3c8, var(--c) 70%); box-shadow: 0 0 0 2px rgba(0,0,0,.5), 0 0 0 3px var(--c); }
.sp-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sp-name { font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: normal; font-size: 22px; letter-spacing: .15em; color: var(--c); line-height: 1.1; }
.sp-name small { margin-left: 6px; font-family: inherit; font-size: 12px; letter-spacing: .05em; color: #cdbb8e; }
.sp-desc { font-size: 12.5px; line-height: 1.5; color: #e2d3ab; }
.sp-iq i { font-style: normal; font-size: 13px; margin-right: 3px; color: rgba(255,255,255,.18); }
.sp-iq i.on { color: var(--c); text-shadow: 0 0 6px var(--c); }
.sp-mult { display: flex; flex-direction: column; align-items: center; padding: 6px 8px; border-radius: 10px; border: 1px dashed var(--c); color: var(--c); font-weight: 700; font-size: 19px; line-height: 1.1; white-space: nowrap; }
.sp-mult small { font-size: 11px; font-weight: 500; color: #e2d3ab; letter-spacing: .2em; }
.sp-last { position: absolute; top: -8px; right: 10px; font-style: normal; font-size: 11px; padding: 1px 8px; border-radius: 9px; color: #1a1008; background: var(--c); }
.sp-card .yc-dlg-btns { margin-top: 14px; }
@media (max-width: 480px) {
  .sp-card { padding: 18px 10px 12px; }
  .sp-tier { grid-template-columns: 40px 1fr auto; gap: 8px; padding: 10px 9px; }
  .sp-seal { width: 38px; height: 38px; font-size: 21px; }
  .sp-name { font-size: 19px; }
  .sp-desc { font-size: 12px; }
  .sp-mult { font-size: 16px; padding: 4px 6px; }
}
.solo-tier-tag { position: fixed; left: 50%; top: 6px; transform: translateX(-50%); z-index: 30; pointer-events: none; padding: 1px 10px; border-radius: 10px; font-size: 11px; letter-spacing: .1em;
  color: #f3e6c4; background: rgba(10,6,2,.55); border: 1px solid rgba(212,175,55,.35); opacity: .85; }
.solo-tier-tag.st-low { color: #bfe0a8; } .solo-tier-tag.st-mid { color: #a8e2ff; } .solo-tier-tag.st-high { color: #ffc77a; border-color: rgba(255,179,71,.5); }

/* v53：闯荡江湖二级页（全屏覆盖，返回大厅） */
#online-box.online-ov { position: fixed; inset: 0; z-index: 300; width: 100% !important; max-width: none; margin: 0; padding: 0 14px 28px; background: #050505; overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; align-items: center; gap: 12px; }
#online-box.online-ov.hidden { display: none !important; }
#online-box .ov-bar { position: sticky; top: 0; z-index: 2; width: 100%; max-width: 460px; display: flex; align-items: center; justify-content: space-between; padding: 12px 0 8px; background: #050505; }
#online-box .ov-back { width: auto !important; padding: 7px 12px; border-radius: 999px; border: 1px solid #d4af37; background: #140e04; color: #f3d36a; font-size: 14px; cursor: pointer; }
#online-box .ov-title { color: #f3d36a; font: 600 18px/1 "Noto Serif SC", serif; letter-spacing: .25em; }
#online-box .ov-sp { width: 86px; }
#online-box.online-ov .room-group, #online-box.online-ov #room-list { width: 100%; max-width: 460px; box-sizing: border-box; }
#online-box.online-ov #room-list { display: flex; flex-direction: column; gap: 6px; }
@media (min-width: 700px) { #online-box.online-ov { width: 100% !important; padding-top: 30px; } }

/* v53 写轮眼令牌面板 */
.sg-panel { position: fixed; inset: 0; z-index: 900; display: grid; place-items: center; background: rgba(0,0,0,.62); padding: 14px; }
.sg-panel.hidden { display: none; }
.sg-card { position: relative; width: min(360px, 94vw); max-height: 88vh; overflow-y: auto; padding: 18px 16px 14px; border-radius: 16px; border: 1px solid #c4261a; color: #f6e4d0; font-family: "Noto Serif SC", serif; background: radial-gradient(120% 80% at 50% 0, rgba(190,30,20,.35), transparent 60%), linear-gradient(180deg, #1c0807, #070303); box-shadow: 0 0 0 1px rgba(255,120,90,.25) inset, 0 8px 30px rgba(0,0,0,.7), 0 0 26px rgba(200,30,20,.3); display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; }
.sg-x { position: absolute; top: 8px; right: 10px; width: 28px; height: 28px; border-radius: 50%; border: 1px solid #c4261a; background: #140404; color: #ff9d8a; font-size: 17px; line-height: 24px; cursor: pointer; padding: 0; }
.sg-eye { position: relative; width: 46px; height: 46px; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #0a0000 0 16%, #d8281a 17% 70%, #7a0f08 71%); border: 2px solid #3a0505; box-shadow: 0 0 14px rgba(230,40,25,.65); animation: sgPulse 3s ease-in-out infinite; }
.sg-eye i { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #0a0000; left: 19.5px; top: 19.5px; }
.sg-eye i:nth-child(1) { transform: rotate(0deg) translateY(-14px); } .sg-eye i:nth-child(2) { transform: rotate(120deg) translateY(-14px); } .sg-eye i:nth-child(3) { transform: rotate(240deg) translateY(-14px); }
@keyframes sgPulse { 50% { box-shadow: 0 0 22px rgba(255,60,40,.85); } }
.sg-name { font-size: 20px; letter-spacing: .12em; color: #ffd9c4; }
.sg-realm { font-size: 13px; color: #f0c8a8; } .sg-realm b { color: #ff8a70; }
.sg-zl { width: 100%; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 4px 8px; padding: 6px 8px; border-radius: 10px; background: rgba(120,20,12,.28); border: 1px solid rgba(220,70,50,.3); }
.sg-zl > b { font-size: 12px; color: #ffb09a; } .sg-big { font-size: 22px; color: #ffe2cc; font-weight: 700; } .sg-zl em { font-style: normal; font-size: 13px; color: #ff8a70; } .sg-zl small { flex-basis: 100%; font-size: 11px; color: #d8b8a4; } .sg-dim { color: #9a7a6c; font-size: 12px; }
.sg-grid { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.sg-grid > div { padding: 6px 2px; border-radius: 8px; background: rgba(255,255,255,.05); border: 1px solid rgba(220,70,50,.2); display: flex; flex-direction: column; gap: 2px; }
.sg-grid small, .sg-recent small { font-size: 11px; color: #c8a898; } .sg-grid b { font-size: 16px; color: #ffe2cc; }
.sg-recent { width: 100%; display: flex; align-items: center; gap: 8px; justify-content: center; } .sg-recent span { display: inline-flex; gap: 3px; }
.sg-recent i { width: 20px; height: 20px; display: grid; place-items: center; font-style: normal; font-size: 11px; border-radius: 4px; background: #2a1a16; color: #8a6a5c; } .sg-recent i.w { background: #a8281a; color: #fff0e0; } .sg-recent i.f { background: #3a2a52; color: #cfb8ff; }
.sg-foot { margin: 2px 0 0; font-size: 11px; color: #8a6a5c; } .sg-load { color: #d8b8a4; font-size: 13px; }

/* ===================== v55 免费特效（18 项）· 手机竖屏友好：特效层不接收点击、不盖手牌与中央框 ===================== */
.fx55 { position: absolute; inset: 0; z-index: 22; pointer-events: none; overflow: hidden; }
.fx55-it { position: absolute; pointer-events: none; will-change: transform, opacity; }
.fx55-sub { position: absolute; left: 50%; top: 27%; transform: translateX(-50%); padding: 3px 18px; border-radius: 999px; font: 700 22px "Noto Serif SC", serif; letter-spacing: .3em; color: #ffe9b8; background: rgba(20,10,4,.55); border: 1px solid rgba(255,214,140,.55); text-shadow: 0 0 10px rgba(255,170,60,.7); animation: fx55sub 1.5s ease-out both; white-space: nowrap; }
.fx55-sub.gang { color: #ffd0a0; } .fx55-sub.qg { color: #ff9a8a; border-color: rgba(255,120,100,.7); } .fx55-sub.zm { color: #ffe27a; }
.fx55-sub.big { font-size: 26px; border-color: rgba(255,226,140,.9); } .fx55-sub.tint-azure { color: #bfe6ff; border-color: #7cc4ff; text-shadow: 0 0 12px rgba(90,170,255,.8); } .fx55-sub.tint-jade { color: #c7f5d2; border-color: #7bd99a; }
.fx55-sub.flame { color: #ffb066; text-shadow: 0 0 12px #ff6a1a, 0 -4px 14px #ff9a2a; } .fx55-sub.calm { font-size: 15px; letter-spacing: .2em; color: #cfe3e8; border-color: rgba(190,225,235,.5); font-weight: 500; }
@keyframes fx55sub { 0% { opacity: 0; transform: translate(-50%, 8px) scale(.9); } 15% { opacity: 1; transform: translate(-50%, 0) scale(1); } 80% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -6px); } }
.fx55-cap { position: absolute; left: 50%; top: 5px; transform: translateX(-50%); max-width: 90%; padding: 2px 12px; border-radius: 8px; font-size: 12px; letter-spacing: .08em; color: #e9dcc0; background: rgba(15,10,6,.6); border: 1px solid rgba(220,190,130,.3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: fx55cap 4.2s ease both; }
@keyframes fx55cap { 0% { opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { opacity: 0; } }
.fx55-seal { width: 30px; height: 30px; margin: -15px 0 0 -15px; display: grid; place-items: center; border-radius: 4px; background: rgba(190,30,20,.82); color: #ffe9d0; font: 900 20px "Noto Serif SC", serif; box-shadow: 0 0 10px rgba(255,80,50,.7); animation: fx55seal .9s ease-out both; }
@keyframes fx55seal { 0% { opacity: 0; transform: scale(2) rotate(-12deg); } 25% { opacity: .95; transform: scale(1) rotate(-6deg); } 100% { opacity: 0; transform: scale(.95) rotate(-6deg); } }
.fx55-last { padding: 0 6px; font: 700 11px sans-serif; color: #fff; background: #b3261e; border-radius: 6px; white-space: nowrap; animation: fx55rise 1.1s ease-out both; }
@keyframes fx55rise { 0% { opacity: 0; } 20% { opacity: 1; } 100% { opacity: 0; margin-top: -10px; } }
.fx55-petal { width: 9px; height: 12px; margin: 0; border-radius: 80% 0 80% 0; background: #ffb7c8; opacity: 0; animation: fx55petal 1.9s ease-in var(--dl, 0ms) both; }
.fx55-petal.seat { background: #ffd54a; box-shadow: 0 0 6px #ffb300; width: 11px; height: 14px; } .fx55-petal.gold { background: #ffd76a; box-shadow: 0 0 5px #e6a800; }
@keyframes fx55petal { 0% { opacity: 0; transform: translate(0, -10px) rotate(var(--r)); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), 120px) rotate(calc(var(--r) + 260deg)); } }
.fx55-bounce { animation: fx55bounce .6s ease-out; } @keyframes fx55bounce { 40% { transform: scale(1.12); filter: brightness(1.3); } }
.fx55-on .fl36.sw { box-shadow: 0 0 0 2px #ffcf3f, 0 0 10px 2px rgba(255,190,40,.85); border-radius: 4px; }
.fx55-glow { box-shadow: inset 0 0 14px 2px var(--fx55-suit, #fff); transition: box-shadow .4s; border-radius: 6px; animation: fx55glow 1.6s ease-out both; } @keyframes fx55glow { 0% { opacity: .55; } 30% { opacity: 1; } 100% { box-shadow: inset 0 0 0 0 transparent; } }
.fx55-peng { width: 70px; height: 40px; margin: -20px 0 0 -35px; border: 2px solid rgba(255,214,140,.8); border-radius: 8px; animation: fx55peng .7s ease-in both; } @keyframes fx55peng { 0% { transform: scaleX(2.2); opacity: 0; } 30% { opacity: 1; } 100% { transform: scaleX(.8); opacity: 0; } }
.fx55-chi { width: 60px; height: 4px; margin: -2px 0 0 -30px; background: linear-gradient(90deg, transparent, #cfe8ff, transparent); animation: fx55chi .7s ease-out both; } @keyframes fx55chi { 0% { transform: translateX(-60px); opacity: 0; } 40% { opacity: 1; } 100% { transform: translateX(60px); opacity: 0; } }
#table-screen.fx55-shake { animation: fx55shake .5s linear; } @keyframes fx55shake { 10%, 90% { transform: translate(-1px, 1px); } 30%, 70% { transform: translate(3px, -2px); } 50% { transform: translate(-3px, 2px); } }
#table-screen.fx55-dim #my-hand, #table-screen.fx55-dim #my-draw { animation: fx55dim .9s ease both; } @keyframes fx55dim { 0% { filter: brightness(1); } 35% { filter: brightness(.35); } 100% { filter: brightness(1.2); } }
#table-screen.fx55-redflash::before { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(220,30,20,.45)); animation: fx55red .9s ease-out both; } @keyframes fx55red { 0%, 100% { opacity: 0; } 20%, 60% { opacity: 1; } }
#table-screen.fx55-tint .felt36 { transition: filter 1s; } #table-screen.fx55-tint-gold .felt36 { filter: sepia(.7) saturate(1.8) brightness(1.1); } #table-screen.fx55-tint-azure .felt36 { filter: hue-rotate(150deg) saturate(1.4); } #table-screen.fx55-tint-jade .felt36 { filter: hue-rotate(40deg) saturate(1.3); }
.fx55-ring { width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; border: 3px solid rgba(255,230,160,.9); box-shadow: 0 0 14px rgba(255,210,120,.8); animation: fx55ring 1.3s ease-out both; } @keyframes fx55ring { 0% { transform: scale(.4); opacity: 1; } 100% { transform: scale(2.6); opacity: 0; } }
.fx55-spark { width: 6px; height: 6px; margin: -3px; border-radius: 50%; background: #ffd76a; box-shadow: 0 0 8px #ff8a1a; animation: fx55spark 1.4s ease-out var(--dl, 0ms) both; } @keyframes fx55spark { 0% { transform: rotate(var(--a)) translateY(0); opacity: 1; } 100% { transform: rotate(var(--a)) translateY(-70px); opacity: 0; } }
.fx55-flip { width: 26px; height: 36px; margin: -18px 0 0 -13px; perspective: 200px; animation: fx55fade 1.6s ease both; } .fx55-flip i { position: absolute; inset: 0; border-radius: 4px; backface-visibility: hidden; }
.fx55-flip .b { background: linear-gradient(135deg, #ffe27a, #b8860b); border: 1px solid #fff2b0; box-shadow: 0 0 10px rgba(255,210,80,.9); animation: fx55flipb 1.2s ease both; } .fx55-flip .f { background: #fff6e0; border: 1px solid #d9b25a; transform: rotateY(180deg); animation: fx55flipf 1.2s ease both; }
@keyframes fx55flipb { 0% { transform: rotateY(0); } 60%, 100% { transform: rotateY(-180deg); } } @keyframes fx55flipf { 0% { transform: rotateY(180deg); } 60%, 100% { transform: rotateY(0); } } @keyframes fx55fade { 0%, 80% { opacity: 1; } 100% { opacity: 0; } }
.sc36.fx55-hot .av36::after { content: "🔥"; position: absolute; right: -8px; top: -8px; font-size: 14px; filter: drop-shadow(0 0 4px #ff6a1a); animation: fx55flame 1s ease-in-out infinite alternate; } @keyframes fx55flame { to { transform: scale(1.18) translateY(-1px); } }
#round-label.fx55-wall { color: #ff5a4a !important; animation: fx55blink .9s steps(2, jump-none) infinite; } #round-label.fx55-still { animation: none; } @keyframes fx55blink { 50% { opacity: .45; } }
.fx55-pao { margin: 6px 0; padding: 4px 10px; border-radius: 8px; text-align: center; font-size: 13px; color: #ffe3b0; background: rgba(120,70,20,.35); border: 1px dashed rgba(255,200,120,.5); } .fx55-pao b { color: #ffcf6a; }
@media (prefers-reduced-motion: reduce) { .fx55-it, .sc36.fx55-hot .av36::after, #table-screen .fx55-dim { animation: none !important; } }

/* v55 宗师 / 高手 / 初入 单机 flair */
#table-screen.tier-high::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; padding: 3px; background: linear-gradient(90deg, #8a5a00, #ffe27a, #8a5a00, #ffe27a, #8a5a00) 0 0 / 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fx55flow 5s linear infinite; }
@keyframes fx55flow { to { background-position: -300% 0; } }
#table-screen.tier-mid::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; box-shadow: inset 0 0 0 2px rgba(130,190,235,.55); }
#table-screen.tier-low::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; box-shadow: inset 0 0 0 2px rgba(120,190,120,.45); }
.fx55-master-banner { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); z-index: 24; pointer-events: none; padding: 6px 28px; border-radius: 6px; font: 900 26px "Noto Serif SC", serif; letter-spacing: .25em; white-space: nowrap; color: #ffe27a; background: linear-gradient(90deg, transparent, rgba(40,22,2,.78), transparent); text-shadow: 0 0 14px #ffb300; animation: fx55banner 2.2s ease both; } @keyframes fx55banner { 0% { opacity: 0; letter-spacing: .5em; } 30% { opacity: 1; letter-spacing: .25em; } 75% { opacity: 1; } 100% { opacity: 0; } }
#table-screen.tier-high .sc36:not(.me) .av36 { position: relative; } #table-screen.tier-high .sc36:not(.me) .av36::before { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid transparent; border-top-color: #ffd76a; border-right-color: #b8860b; animation: fx55spin 6s linear infinite; pointer-events: none; } @keyframes fx55spin { to { transform: rotate(360deg); } }
#table-screen.tier-high #seat-west .z7 .last-discard, #table-screen.tier-high #seat-east .z7 .last-discard, #table-screen.tier-high #seat-north .z7 .last-discard { animation: fx55glint 1.4s ease-out 1; } @keyframes fx55glint { 0% { filter: brightness(1.9) sepia(1) saturate(3); } 100% { filter: none; } }
.fx55-tier { margin: 6px 0; text-align: center; font-size: 14px; color: #cfe3e8; } .fx55-tier.master.win { color: #ffe27a; font-weight: 700; } .fx55-badge { display: inline-block; padding: 0 8px; border-radius: 10px; color: #3a2400; background: linear-gradient(135deg, #ffe27a, #d19a1a); font-size: 12px; }
.fx55-x { display: inline-block; margin-left: 4px; } .fx55-x.high { color: #ffd23a; font-size: 1.25em; text-shadow: 0 0 8px #ffb300; animation: fx55bnc 1s ease-in-out infinite; } .fx55-x.mid { color: #a8d8ff; } .fx55-x.low { color: #b9e3a6; } @keyframes fx55bnc { 50% { transform: translateY(-4px); } }

/* v55 旗忠村：分组、辅助标记、风向罗盘、局后工具 */
.sm-fair { margin: 8px 4px 0; padding: 6px 10px; border-radius: 8px; font-size: 12px; color: #ffe3b0; background: rgba(120,70,20,.3); border: 1px dashed rgba(255,190,110,.45); } .sm-fair b { color: #ffcf6a; }
.sm-cat { margin: 18px 4px 0; font-size: 15px; letter-spacing: .2em; color: #ffd9a0; border-left: 4px solid #e0782a; padding-left: 8px; } .sm-cat small { margin-left: 8px; font-size: 11px; color: #b99a76; letter-spacing: 0; }
.sm-toolbtns { display: flex; gap: 8px; margin: 10px 4px 0; }
.sm-card.single .sm-body small::after { content: " · 仅单机"; color: #ffcf6a; }
#my-hand .tile.sm-set, #my-draw .tile.sm-set { box-shadow: 0 0 6px 1px rgba(255,230,140,.75); } #my-hand .tile.sm-gap { margin-left: 5px; }
#my-hand .tile.sm-last, #my-draw .tile.sm-last { box-shadow: 0 0 0 2px #ff7a5a, 0 0 10px 2px rgba(255,100,60,.8); }
#my-hand .tile.sm-safe::after, #my-draw .tile.sm-safe::after, #my-hand .tile.sm-risk::after, #my-draw .tile.sm-risk::after { content: ""; position: absolute; left: 50%; top: -5px; width: 7px; height: 7px; margin-left: -3px; border-radius: 50%; border: 1px solid #0006; }
#my-hand .tile.sm-safe::after, #my-draw .tile.sm-safe::after { background: #4cd07a; } #my-hand .tile.sm-risk::after, #my-draw .tile.sm-risk::after { background: #ff9f2e; }
.sm-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin: 0 3px 0 0; } .sm-dot.safe { background: #4cd07a; } .sm-dot.risk { background: #ff9f2e; }
#table-screen .z7 .tile.sm-hit { box-shadow: 0 0 0 2px #5fd3ff, 0 0 8px 2px rgba(95,211,255,.85); position: relative; z-index: 2; }
.sm-wind { position: absolute; left: 6px; top: 34px; z-index: 58; display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; white-space: nowrap; padding: 1px 8px; border-radius: 10px; font-size: 11px; color: #f3dcb8; background: rgba(14,8,4,.78); border: 1px solid rgba(255,190,110,.4); pointer-events: none; } .sm-wind i { font-style: normal; color: #ffd76a; font-weight: 700; } .sm-wind .rose { color: #ffb066; } .sm-wind .dim { color: #b99a76; }
.sm-extra { position: fixed; inset: 0; z-index: 400; display: flex; align-items: center; justify-content: center; background: rgba(5,3,1,.7); } .sm-extra.hidden { display: none; }
.sm-sheet { position: relative; width: min(92vw, 420px); max-height: 82vh; overflow: auto; padding: 16px 14px; border-radius: 14px; color: #f3dcb8; background: linear-gradient(160deg, #2a1206, #0d0603); border: 1px solid rgba(255,190,110,.5); } .sm-sheet h3 { margin: 0 0 6px; color: #ffd9a0; letter-spacing: .2em; }
.sm-keep { margin: 10px 0; padding: 8px; border-radius: 10px; background: rgba(255,255,255,.04); } .sm-keep b { display: block; } .sm-keep span { font-size: 12px; color: #d7b48c; } .sm-kh, .sm-kr > div { display: flex; flex-wrap: wrap; gap: 1px; margin-top: 4px; } .sm-kr small { width: 100%; color: #b99a76; } .sm-keep .tile.sm-mini { width: 20px !important; height: 28px !important; }
.sm-rv-key { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .sm-rv-key span { font-size: 12px; color: #b99a76; width: 100%; } .sm-rv-key em { font-style: normal; font-size: 12px; color: #d7b48c; } .sm-rv p { margin: 6px 0 0; font-size: 13px; }
.sg-recent i.z { background: #7a5200; }

.sm-panel.sm-mini1 { padding: 3px 8px; font-size: 11px; }
.sm-tally { max-width: 200px; }

/* ===== v56 马桥大学（校园风 · 玄幻江湖：墨青底 + 金线 + 玉色点缀；竖屏 390 为准） ===== */
.btn.btn-uni { background: linear-gradient(135deg, #0c2a26, #04100e 60%, #12362f) !important; border-color: #6fe3c4 !important; color: #dffcf1 !important; box-shadow: 0 0 12px rgba(90,230,190,.3) !important; font-weight: 700; letter-spacing: .15em; }
.btn.btn-uni small { color: #8fe9cf; }
.pk-badge.uni-badge { background: radial-gradient(#e6fff6, #2b9e82) !important; color: #031612 !important; }
.uni-page { position: fixed; inset: 0; z-index: 1100; display: flex; flex-direction: column; color: #e9fbf4; font-family: "Noto Serif SC", serif; background: radial-gradient(120% 55% at 50% 0%, #123a33, #061310 62%, #030807), #030807; }
.uni-page.hidden { display: none; }
.uni-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid rgba(212,175,55,.35); background: rgba(3,12,10,.7); }
.uni-head h2 { flex: 1; margin: 0; text-align: center; font-size: 19px; font-weight: 600; letter-spacing: .3em; color: #f3e0a6; text-shadow: 0 0 10px rgba(110,230,190,.45); }
.uni-back { appearance: none; border: 1px solid rgba(212,175,55,.6); background: rgba(212,175,55,.08); color: #f3e0a6; border-radius: 999px; padding: 6px 12px; font-size: 14px; cursor: pointer; }
.uni-tok { min-width: 64px; text-align: right; font-size: 12px; color: #9fe9d2; } .uni-tok b { color: #f3e0a6; font-size: 14px; }
.uni-body { flex: 1; overflow-y: auto; padding: 12px 12px 28px; -webkit-overflow-scrolling: touch; }
.uni-load { text-align: center; color: #8fd9c2; padding: 40px 0; }
.uni-gate { position: relative; text-align: center; padding: 14px 0 6px; }
.uni-roof { height: 34px; margin: 0 auto 6px; width: 78%; background: linear-gradient(#2a8f78, #12493e); clip-path: polygon(6% 100%, 0 55%, 14% 38%, 30% 22%, 50% 0, 70% 22%, 86% 38%, 100% 55%, 94% 100%); filter: drop-shadow(0 0 8px rgba(110,230,190,.5)); border-bottom: 3px solid #d4af37; }
.uni-motto { margin: 0; font-size: 13px; letter-spacing: .25em; color: #c9b36a; }
.uni-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.uni-quick button { appearance: none; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 9px 4px; border-radius: 10px; border: 1px solid rgba(110,230,190,.4); background: rgba(20,70,60,.35); color: #dffcf1; font-size: 13px; cursor: pointer; }
.uni-quick i, .uni-daily i, .uni-colh i { font-style: normal; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: radial-gradient(#fff3c4, #c99a2b); color: #2b1a02; font-weight: 700; font-size: 14px; }
.uni-daily { appearance: none; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 8px; text-align: left; padding: 11px 12px; margin-bottom: 10px; border-radius: 12px; border: 1px solid #d4af37; background: linear-gradient(135deg, rgba(212,175,55,.2), rgba(20,70,60,.45)); color: #fff4cf; cursor: pointer; }
.uni-daily span { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; } .uni-daily b { font-size: 16px; } .uni-daily small { width: 100%; color: #cfe9df; padding-left: 34px; margin-top: -2px; }
.uni-daily em { font-style: normal; padding: 5px 12px; border-radius: 999px; background: #d4af37; color: #2b1a02; font-size: 13px; font-weight: 700; }
.uni-bundle { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin-bottom: 12px; border-radius: 12px; border: 1px dashed rgba(110,230,190,.6); background: rgba(10,50,42,.5); }
.uni-bundle div { flex: 1; } .uni-bundle b { display: block; color: #f3e0a6; font-size: 15px; } .uni-bundle small { display: block; font-size: 12px; color: #b7e8d8; line-height: 1.5; } .uni-bundle u { color: #ffe27a; text-decoration: none; font-weight: 700; }
.uni-bundle.done { justify-content: center; flex-direction: column; text-align: center; }
.uni-col { margin: 12px 0; padding: 10px; border-radius: 14px; border: 1px solid rgba(212,175,55,.3); background: rgba(5,22,19,.72); }
.uni-colh { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .uni-colh div { flex: 1; } .uni-colh h3 { margin: 0; font-size: 17px; color: #f3e0a6; letter-spacing: .2em; } .uni-colh small { font-size: 12px; color: #9fd8c6; }
.uni-colh em { font-style: normal; font-size: 12px; padding: 2px 8px; border-radius: 999px; background: rgba(110,230,190,.18); color: #bff5e2; }
.uc-def .uni-colh i { background: radial-gradient(#ffe0d6, #c4553a); color: #2a0b04; } .uc-eff .uni-colh i { background: radial-gradient(#e6fff6, #2b9e82); color: #031612; } .uc-pra .uni-colh i { background: radial-gradient(#efe3ff, #6f4fc2); color: #140a2e; }
.uni-course { padding: 10px; margin-top: 8px; border-radius: 10px; border: 1px solid rgba(110,230,190,.28); background: rgba(14,52,45,.5); cursor: pointer; }
.uni-course.locked { cursor: default; opacity: .96; border-color: rgba(212,175,55,.35); } .uni-course.hs { border-color: rgba(200,180,255,.5); background: rgba(40,28,80,.45); cursor: default; }
.uni-ch { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } .uni-ch b { font-size: 15px; color: #fff; flex: 1; min-width: 90px; }
.uni-course p { margin: 4px 0 6px; font-size: 12.5px; color: #b9e4d6; line-height: 1.55; }
.uni-lv { font-size: 11px; padding: 1px 7px; border-radius: 4px; background: #2a6f60; color: #eafff7; } .uni-lv.lv1 { background: #3a7f45; } .uni-lv.lv2 { background: #a9741a; } .uni-lv.lv3 { background: #a23a3a; } .uni-lv.lv0 { background: #3b5f8a; }
.uni-free, .uni-own { font-size: 12px; color: #9ef0c0; } .uni-price { font-size: 12.5px; color: #ffe27a; font-weight: 700; }
.uni-st { font-style: normal; font-size: 11px; color: #cfe9df; } .uni-st.ok { color: #9ef0c0; }
.uni-bar { height: 5px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; } .uni-bar i { display: block; height: 100%; background: linear-gradient(90deg, #35c49f, #f3e0a6); }
.uni-buy, .uni-go { display: block; width: 100%; margin-top: 4px; }
.uni-go { margin: 12px 0 6px; padding: 12px; font-size: 16px; } .uni-reset { display: block; width: 100%; margin-top: 10px; }
.uni-foot { margin: 14px 4px 0; font-size: 12px; color: #86bfae; line-height: 1.6; text-align: center; }
.uni-brief { margin: 4px 2px 8px; font-size: 13.5px; color: #cfeee3; line-height: 1.6; }
.uni-stat { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: #b9e4d6; padding: 6px 2px; } .uni-stat b { color: #fff; } .uni-stat .ok { color: #9ef0c0; font-style: normal; }
.uni-stat.big { justify-content: space-around; font-size: 14px; padding: 10px; border: 1px solid rgba(212,175,55,.3); border-radius: 12px; background: rgba(5,22,19,.7); }
.uni-h4 { margin: 12px 2px 6px; font-size: 14px; color: #f3e0a6; letter-spacing: .2em; }
.uni-list { display: flex; flex-direction: column; gap: 6px; }
.uni-row { appearance: none; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 11px 12px; border-radius: 10px; border: 1px solid rgba(110,230,190,.3); background: rgba(14,52,45,.55); color: #f1fff9; font-size: 15px; cursor: pointer; } .uni-row small { color: #9fd8c6; font-size: 12px; }
.uni-prow { display: flex; justify-content: space-between; padding: 6px 4px; font-size: 13px; border-bottom: 1px dashed rgba(255,255,255,.08); color: #d8f3ea; } .uni-prow span { color: #9fd8c6; } .uni-prow span.ok { color: #9ef0c0; }
.uni-lesson p { margin: 8px 2px; font-size: 14.5px; line-height: 1.75; color: #eafff7; }
.uni-demo { margin: 10px 0; padding: 8px; border-radius: 10px; background: rgba(0,0,0,.3); } .uni-demo small { display: block; margin-top: 4px; color: #f3e0a6; text-align: center; }
.uni-rules { margin: 10px 0; padding: 8px 10px; border-radius: 10px; border-left: 3px solid #d4af37; background: rgba(212,175,55,.08); } .uni-rules h4 { margin: 0 0 4px; font-size: 13px; color: #f3e0a6; } .uni-rules p { margin: 4px 0; font-size: 13px; line-height: 1.6; } .uni-rules b { color: #ffe27a; }
.uni-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 12.5px; color: #9fd8c6; } .uni-meta b { color: #fff; font-size: 15px; } .uni-meta .ok { color: #9ef0c0; } .uni-meta .bad { color: #ff9a8a; }
.uni-prompt { margin: 8px 0; font-size: 16px; line-height: 1.55; color: #fff; }
.uni-opp { margin: 6px 0; padding: 6px 8px; border-radius: 8px; background: rgba(170,60,40,.25); font-size: 13px; color: #ffd9cf; }
.uni-hand { display: flex; flex-wrap: wrap; gap: 2px; margin: 6px 0; justify-content: center; }
.uni-mini.tile, .uni-page .tile.uni-mini { width: 24px; height: 34px; margin: 0; flex: none; }
.uni-t { appearance: none; padding: 0; border: 2px solid transparent; border-radius: 6px; background: none; cursor: pointer; line-height: 0; } .uni-t:disabled { cursor: default; }
.uni-t.ans { border-color: #9ef0c0; box-shadow: 0 0 10px #9ef0c0; } .uni-t.wrong { border-color: #ff8a7a; opacity: .75; }
.uni-t.big { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 6px 8px; background: rgba(14,52,45,.6); border-color: rgba(110,230,190,.3); } .uni-t.big .tile { width: 34px; height: 48px; } .uni-t.big small { font-size: 12px; color: #eafff7; line-height: 1.2; }
.uni-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0; } .uni-opts.tiles { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.uni-opt { appearance: none; padding: 12px 8px; border-radius: 10px; border: 1px solid rgba(110,230,190,.4); background: rgba(14,52,45,.6); color: #f1fff9; font-size: 15px; cursor: pointer; } .uni-opt.ans { border-color: #9ef0c0; background: rgba(60,160,110,.35); } .uni-opt.wrong { border-color: #ff8a7a; background: rgba(160,60,50,.3); }
.uni-opt:disabled { cursor: default; }
.uni-ctx { margin: 8px 0; display: flex; flex-direction: column; gap: 4px; } .uni-disc { display: flex; flex-wrap: wrap; align-items: center; gap: 1px; } .uni-disc span { width: 70px; font-size: 11.5px; color: #8fd9c2; } .uni-disc em { font-size: 12px; color: #6d9f90; }
.uni-fl { margin: 4px 0; font-size: 12px; color: #9fd8c6; display: flex; align-items: center; gap: 2px; }
.uni-case { padding: 6px; border-radius: 10px; background: rgba(0,0,0,.28); } .uni-win { display: flex; align-items: center; gap: 6px; justify-content: center; font-size: 12px; color: #f3e0a6; } .uni-win em { font-style: normal; color: #ffb980; }
.uni-count { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 12px 0; } .uni-count input { width: 70px; text-align: center; font-size: 22px; padding: 6px; border-radius: 8px; border: 1px solid #d4af37; background: #06100e; color: #fff; }
.uni-step { appearance: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d4af37; background: rgba(212,175,55,.12); color: #f3e0a6; font-size: 22px; cursor: pointer; }
.uni-res { margin: 12px 0; padding: 10px 12px; border-radius: 12px; border: 1px solid; } .uni-res.ok { border-color: #5fd69a; background: rgba(40,130,80,.22); } .uni-res.bad { border-color: #ff8a7a; background: rgba(150,50,40,.22); }
.uni-res h4 { margin: 0 0 4px; font-size: 16px; } .uni-a { margin: 4px 0; font-size: 14px; } .uni-exp { margin: 6px 0; font-size: 13.5px; line-height: 1.7; color: #e9fbf4; } .uni-reward { margin: 4px 0 0; color: #ffe27a; font-weight: 700; }
.uni-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 6px; } .uni-tbl th, .uni-tbl td { padding: 4px 5px; border-bottom: 1px solid rgba(255,255,255,.1); text-align: left; } .uni-tbl tr.best td { color: #9ef0c0; }
.uni-nav { display: flex; gap: 10px; margin-top: 10px; } .uni-nav .btn { flex: 1; }
.uni-after { margin-top: 12px; } .uni-weak { padding: 10px; border-radius: 12px; border: 1px solid rgba(212,175,55,.35); background: rgba(5,22,19,.72); margin-bottom: 10px; } .uni-weak h4 { margin: 0 0 4px; color: #f3e0a6; } .uni-weak p { margin: 4px 0; font-size: 13.5px; line-height: 1.6; } .uni-tag b { color: #ffe27a; }
.uni-teach, .uni-card { padding: 12px; border-radius: 14px; border: 1px solid rgba(212,175,55,.35); background: rgba(5,22,19,.72); } .uni-teach h4, .uni-card h4 { margin: 0 0 6px; color: #f3e0a6; font-size: 17px; } .uni-teach ul { padding-left: 18px; line-height: 1.8; font-size: 14px; } .uni-card p { margin: 6px 0; font-size: 14px; line-height: 1.6; }
.uni-cert { text-align: center; padding: 18px 12px; margin-bottom: 12px; border-radius: 14px; border: 2px dashed rgba(212,175,55,.5); background: rgba(5,22,19,.72); } .uni-cert.got { border-style: solid; border-color: #d4af37; background: linear-gradient(135deg, rgba(212,175,55,.2), rgba(20,70,60,.5)); box-shadow: 0 0 18px rgba(212,175,55,.35); }
.uni-seal { display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: radial-gradient(#ff8a7a, #9a1f1a); color: #fff1d6; font-size: 28px; font-weight: 700; transform: rotate(-8deg); } .uni-cert h3 { margin: 8px 0 4px; color: #f3e0a6; letter-spacing: .25em; } .uni-cert p { margin: 4px 0; font-size: 13px; color: #cfeee3; line-height: 1.6; }
.uni-badges { display: flex; flex-wrap: wrap; gap: 6px; } .uni-bd { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; background: rgba(110,230,190,.16); border: 1px solid rgba(110,230,190,.4); font-size: 12.5px; } .uni-bd i { font-style: normal; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #d4af37; color: #2b1a02; font-size: 11px; } .uni-bd.t { background: rgba(212,175,55,.2); border-color: #d4af37; color: #ffe9a8; }
.wf-badge.uni-grad { background: linear-gradient(135deg, rgba(212,175,55,.35), rgba(20,70,60,.6)); border-color: #d4af37; } .wf-badge.uni-ttl { border-color: #6fe3c4; }
/* 慢速教学局牌桌：标签 + 理由条 */
.solo-tier-tag.st-teach { top: 44px; left: 8px; right: auto; transform: none; font-size: 11px; max-width: 70%; background: linear-gradient(135deg, #0c2a26, #12362f); border: 1px solid #6fe3c4; color: #dffcf1; }
.teach-note { position: absolute; left: 8px; right: 8px; bottom: 160px; top: auto; z-index: 30; padding: 6px 10px; border-radius: 10px; background: rgba(4,18,15,.88); border: 1px solid rgba(110,230,190,.55); color: #dffcf1; font-size: 13px; line-height: 1.5; pointer-events: none; box-shadow: 0 0 12px rgba(80,220,180,.3); } .teach-note p { margin: 2px 0; } .teach-note b { color: #f3e0a6; }
@media (min-width: 720px) { .uni-body { max-width: 760px; margin: 0 auto; width: 100%; } .uni-mini.tile, .uni-page .tile.uni-mini { width: 32px; height: 45px; } }

/* ===== v57 成神 / 踏天 ===== */
.sp-card { max-height: 90vh; max-height: 90dvh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.sp-god { --c: #b583ff; } .sp-sky { --c: #ff7a45; }
.sp-god { background: linear-gradient(135deg, rgba(58,20,110,.82), rgba(14,6,34,.94) 70%), repeating-linear-gradient(115deg, transparent 0 14px, rgba(190,150,255,.07) 14px 15px); box-shadow: inset 0 0 18px rgba(150,90,255,.28); }
.sp-god .sp-seal { color: #f4eaff; background: radial-gradient(circle at 35% 30%, #d6b8ff, #6a2cc4 72%); animation: sp57thunder 2.6s ease-in-out infinite; }
.sp-sky { background: linear-gradient(135deg, rgba(120,24,10,.85), rgba(40,10,4,.95) 60%, rgba(70,38,0,.9)); box-shadow: inset 0 0 18px rgba(255,120,40,.3); }
.sp-sky .sp-seal { color: #fff3d6; background: radial-gradient(circle at 35% 30%, #ffd98a, #e2461c 72%); animation: sp57fire 1.8s ease-in-out infinite; }
.sp-sky .sp-name { background: linear-gradient(90deg, #ffd76a, #ff6a3a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sp-god .sp-name { text-shadow: 0 0 10px rgba(170,110,255,.7); }
@keyframes sp57thunder { 0%, 100% { box-shadow: 0 0 0 2px rgba(0,0,0,.5), 0 0 0 3px var(--c); } 50% { box-shadow: 0 0 0 2px rgba(0,0,0,.5), 0 0 0 3px var(--c), 0 0 14px 4px rgba(190,140,255,.8); } }
@keyframes sp57fire { 0%, 100% { box-shadow: 0 0 0 2px rgba(0,0,0,.5), 0 0 0 3px var(--c); } 50% { box-shadow: 0 0 0 2px rgba(0,0,0,.5), 0 0 0 3px var(--c), 0 0 14px 4px rgba(255,120,50,.85); } }
.sp-prog { display: flex; flex-direction: column; gap: 2px; margin-top: 3px; }
.sp-bar { display: block; height: 5px; border-radius: 3px; background: rgba(255,255,255,.14); overflow: hidden; }
.sp-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--c, #ffd76a), #fff1b8); border-radius: 3px; }
.sp-pt { font-size: 11.5px; color: #e6d7ad; }
.sp-tier.locked { filter: grayscale(1); opacity: .62; background: linear-gradient(135deg, rgba(60,60,60,.6), rgba(20,20,20,.9)); box-shadow: none; }
.sp-tier.locked .sp-seal { animation: none; background: #6b6b6b; color: #ddd; font-size: 20px; }
.sp-tier.locked .sp-name { background: none; color: #aaa; text-shadow: none; -webkit-background-clip: initial; }
.sp-iq i { margin-right: 2px; }
@media (max-width: 480px) { .sp-iq i { font-size: 12px; margin-right: 1px; } .sp-desc { font-size: 11.5px; } .sp-list { gap: 8px; } }
/* 牌桌：档位标签、边框 flair、开场横幅、AI 头像光环 */
.solo-tier-tag.st-god { color: #d8bcff; border-color: rgba(181,131,255,.65); box-shadow: 0 0 8px rgba(160,100,255,.55); }
.solo-tier-tag.st-sky { color: #ffb08a; border-color: rgba(255,122,69,.7); box-shadow: 0 0 8px rgba(255,100,40,.6); }
#table-screen.tier-god::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; padding: 3px; background: linear-gradient(90deg, #3a1a78, #c9a4ff, #5a2cb0, #e7d4ff, #3a1a78) 0 0 / 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fx55flow 3.6s linear infinite, fx57flash 5s ease-in-out infinite; }
#table-screen.tier-sky::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; padding: 4px; background: linear-gradient(90deg, #7a1500, #ffcc4a, #ff4a1c, #fff0a0, #7a1500) 0 0 / 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fx55flow 2.4s linear infinite; }
@keyframes fx57flash { 0%, 90%, 100% { opacity: .85; } 93% { opacity: 1; filter: brightness(1.8); } 96% { opacity: .6; } }
.fx55-master-banner.god { color: #ecdcff; text-shadow: 0 0 16px #a56bff, 0 0 30px #6a2cc4; background: linear-gradient(90deg, transparent, rgba(30,10,70,.85), transparent); }
.fx55-master-banner.sky { color: #ffe9b0; text-shadow: 0 0 16px #ff6a2a, 0 0 30px #ff2a00; background: linear-gradient(90deg, transparent, rgba(80,16,0,.85), transparent); font-size: 28px; }
#table-screen.tier-god .sc36:not(.me) .av36, #table-screen.tier-sky .sc36:not(.me) .av36 { position: relative; }
#table-screen.tier-god .sc36:not(.me) .av36::before { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid transparent; border-top-color: #cfa8ff; border-left-color: #7a3ce0; box-shadow: 0 0 10px 2px rgba(170,110,255,.7); animation: fx55spin 3.4s linear infinite; pointer-events: none; }
#table-screen.tier-sky .sc36:not(.me) .av36::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid transparent; border-top-color: #ffd76a; border-right-color: #ff4a1c; box-shadow: 0 0 12px 3px rgba(255,100,40,.75); animation: fx55spin 2.2s linear infinite; pointer-events: none; }
/* 思考中…（只标明哪位电脑在算，不含任何牌面信息） */
#table-screen[data-think~="s1"] .sc36[data-seat="1"] .av36::after, #table-screen[data-think~="s2"] .sc36[data-seat="2"] .av36::after, #table-screen[data-think~="s3"] .sc36[data-seat="3"] .av36::after { content: "思考中…"; position: absolute; left: 50%; bottom: -15px; transform: translateX(-50%); z-index: 6; white-space: nowrap; font-size: 10px; line-height: 1; padding: 2px 6px; border-radius: 8px; color: #fff; background: rgba(40,20,90,.88); border: 1px solid rgba(190,150,255,.8); animation: fx57think 1s ease-in-out infinite; pointer-events: none; }
#table-screen.tier-sky[data-think] .sc36 .av36::after { background: rgba(110,24,6,.9) !important; border-color: rgba(255,150,80,.9) !important; }
@keyframes fx57think { 50% { opacity: .45; } }
/* 结算：击败成神 / 踏天登顶 */
.fx55-tier.v57.win { font-weight: 700; font-size: 15px; }
.fx57-badge { display: inline-block; padding: 0 9px; border-radius: 10px; font-size: 12px; color: #fff; }
.fx57-badge.god { background: linear-gradient(135deg, #b583ff, #5a2cb0); box-shadow: 0 0 8px rgba(170,110,255,.8); }
.fx57-badge.sky { background: linear-gradient(135deg, #ffcc4a, #e2461c); color: #3a1000; box-shadow: 0 0 8px rgba(255,110,40,.8); }
.fx55-tier.v57.god.win { color: #d9c0ff; } .fx55-tier.v57.sky.win { color: #ffcf8a; }
.fx57-prog { margin: 4px 0 8px; padding: 6px 10px; text-align: center; font-size: 12.5px; line-height: 1.6; color: #e2d3ab; border: 1px dashed rgba(212,175,55,.4); border-radius: 8px; }
.fx57-prog.hidden { display: none; }
.fx57-prog .sp-bar { margin-top: 4px; --c: #ffd76a; }
.fx55-x.god { color: #cfa8ff; font-size: 1.25em; text-shadow: 0 0 8px #8a4cff; animation: fx55bnc 1s ease-in-out infinite; } .fx55-x.sky { color: #ffb36a; font-size: 1.3em; text-shadow: 0 0 10px #ff4a1c; animation: fx55bnc .8s ease-in-out infinite; }

/* ===== v58 结算页美化（玄幻黑金）+ 有趣内容 + 分享海报 ===== */
#modal-body.settle36 { background: radial-gradient(ellipse at 50% -10%, rgba(255,215,106,.28), transparent 55%), radial-gradient(ellipse at 100% 100%, rgba(120,80,200,.14), transparent 50%), radial-gradient(ellipse at 0% 70%, rgba(40,160,150,.10), transparent 45%), linear-gradient(180deg, #17120c, #080606) !important; border: 2px solid #d9b45a !important; box-shadow: 0 0 0 5px rgba(0,0,0,.5), 0 0 0 6px rgba(217,180,90,.25), 0 0 46px rgba(217,180,90,.18), 0 24px 70px rgba(0,0,0,.85) !important; }
#modal-body.settle36 .s36-h { background: linear-gradient(180deg, #fffbe6, #ffd76a 55%, #c88a1e); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 0 14px rgba(255,200,80,.55)); letter-spacing: .08em; }
#modal-body.settle36 .settle-head { color: #e9d49a; letter-spacing: .08em; }
#modal-body.settle36 .settle-cult { color: #ffd76a; text-shadow: 0 0 10px rgba(255,200,80,.35); }
#modal-body.settle36 .settle-card { background: linear-gradient(180deg, rgba(32,24,12,.85), rgba(14,11,7,.88)); border: 1px solid rgba(217,180,90,.5); border-radius: 14px; box-shadow: inset 0 0 22px rgba(217,180,90,.07); }
#modal-body.settle36 .s36-cols { background: none !important; border: 0 !important; box-shadow: none; }
#modal-body.settle36 .settle-card h3 { color: #ffe08a; letter-spacing: .2em; }
#modal-body.settle36 .s36-col h4 { color: #ffd76a; letter-spacing: .3em; border-bottom: 1px solid rgba(217,180,90,.5); }
#modal-body.settle36 .s36-seal { box-shadow: 0 0 0 2px rgba(255,214,190,.5) inset, 0 6px 16px rgba(0,0,0,.6); background: rgba(120,16,12,.35); }
#modal-body.settle36 .s36-btns .btn { border-radius: 22px; }
#modal-body.settle36 #btn-share-card { background: linear-gradient(180deg, #ffe596, #d9a636); color: #2a1a02; border-color: #ffd76a; font-weight: 700; }
.fun-sec { margin: 12px 0 0; border: 1px solid rgba(217,180,90,.55); border-radius: 14px; background: linear-gradient(180deg, rgba(48,34,12,.72), rgba(14,10,6,.9)); box-shadow: inset 0 0 26px rgba(255,200,80,.08), 0 0 18px rgba(217,180,90,.1); text-align: left; overflow: hidden; }
.fun-sec > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; font: 400 22px/1.2 "Ma Shan Zheng", "Noto Serif SC", serif; color: #ffe08a; letter-spacing: .25em; background: linear-gradient(90deg, rgba(217,180,90,.22), rgba(217,180,90,0)); touch-action: manipulation; }
.fun-sec > summary::-webkit-details-marker { display: none; }
.fun-sec > summary em { font: 500 11px/1 "Noto Serif SC", serif; font-style: normal; color: #a8925f; letter-spacing: .05em; }
.fun-body { padding: 4px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.fun-quote { text-align: center; font: 400 24px/1.4 "Ma Shan Zheng", "Noto Serif SC", serif; color: #fff1c8; text-shadow: 0 0 12px rgba(255,200,80,.4); padding: 4px 0; }
.fun-tags { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.fun-tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 12px 3px 4px; border: 1px solid rgba(217,180,90,.6); border-radius: 999px; background: rgba(0,0,0,.4); color: #f3e2b0; font-size: 13px; }
.fun-tag i { font-style: normal; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(180deg, #ffe596, #c98f22); color: #2a1a02; font: 700 14px/1 "Noto Serif SC", serif; }
.fun-tag b { color: #ffd76a; font-size: 12px; }
.fun-fortune { display: flex; align-items: center; gap: 10px; justify-content: center; color: #e6d3a8; font-size: 13.5px; }
.fun-lv { padding: 2px 12px; border-radius: 6px; background: #8f1d16; color: #ffe9bd; border: 1px solid #f0c987; font: 700 14px/1.5 "Noto Serif SC", serif; letter-spacing: .15em; }
.fun-facts { list-style: none; margin: 0 !important; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.fun-facts li { margin: 0 !important; padding: 5px 8px; border-radius: 8px; background: rgba(255,255,255,.04); font-size: 12.5px; line-height: 1.5; color: #e6d3a8; display: flex; align-items: center; gap: 6px; }
.fun-facts li i { font-style: normal; flex: none; width: 20px; height: 20px; border-radius: 4px; display: grid; place-items: center; background: rgba(217,180,90,.2); color: #ffd76a; font-size: 12px; }
.fun-facts li b { color: #ffd76a; }
.fun-tip { font-size: 12.5px; line-height: 1.6; color: #cdbb8a; padding: 6px 10px; border-left: 3px solid #d9b45a; background: rgba(217,180,90,.07); border-radius: 0 8px 8px 0; }
.fun-tip b { display: block; color: #ffe08a; letter-spacing: .15em; font-size: 12px; margin-bottom: 2px; }
.fun-share { text-align: center; font-size: 12px; color: #a8925f; }
@media (max-width: 520px) { .fun-facts { grid-template-columns: 1fr; } .fun-quote { font-size: 21px; } }
/* 分享海报弹层 */
.sc3 .sc3-box { max-width: 460px; }
.sc3 .sc3-img { aspect-ratio: 1080 / 1920; max-height: 70vh; margin: 0 auto; background: #0c0905; border-radius: 12px; overflow: hidden; }
.sc3 .sc3-img img { width: 100%; height: 100%; object-fit: contain; border-radius: 12px; }
.sc3 .sc3-load { position: absolute; inset: 0; transform: none; left: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: radial-gradient(circle, rgba(60,42,14,.9), rgba(10,7,4,.95)); color: #f3e0a6; border-radius: 12px; font-size: 14px; letter-spacing: .15em; }
.sc3 .sc3-load[hidden], .sc3 img[hidden], .sc3 .sc3-pick[hidden] { display: none; }
.sc3-spin { width: 44px; height: 44px; border-radius: 50%; border: 3px solid rgba(217,180,90,.25); border-top-color: #ffd76a; border-right-color: #ffd76a; animation: sc3spin .9s linear infinite; box-shadow: 0 0 18px rgba(255,200,80,.3); }
.sc3-spin.sm { width: 24px; height: 24px; border-width: 2px; }
@keyframes sc3spin { to { transform: rotate(360deg); } }
.sc3-styles { display: flex; gap: 8px; justify-content: center; margin: 0 40px 10px 0; }
.sc3-st { flex: 1; max-width: 160px; padding: 7px 10px; border-radius: 999px; border: 1px solid rgba(217,180,90,.5); background: rgba(0,0,0,.5); color: #d9c48a; font: 600 14px/1.2 "Noto Serif SC", serif; cursor: pointer; touch-action: manipulation; }
.sc3-st.on { background: linear-gradient(180deg, #ffe596, #d9a636); color: #2a1a02; border-color: #ffd76a; }
.sc3-pick { position: absolute; inset: 0; background: rgba(8,6,3,.96); border-radius: 12px; display: flex; flex-direction: column; justify-content: center; padding: 14px; color: #e6d3a8; }
.sc3-pick p { margin: 0 0 12px; letter-spacing: .2em; color: #ffd76a; }
.sc3-pick-row { display: flex; gap: 10px; justify-content: center; }
.sc3-pk { flex: 1; display: flex; flex-direction: column; gap: 4px; align-items: center; padding: 8px; border-radius: 12px; border: 1px solid rgba(217,180,90,.4); background: rgba(255,255,255,.04); color: #f3e2b0; cursor: pointer; touch-action: manipulation; }
.sc3-pk.on { border-color: #ffd76a; box-shadow: 0 0 14px rgba(255,200,80,.4); }
.sc3-pk b { font-size: 14px; } .sc3-pk em { font-style: normal; font-size: 11px; color: #a8925f; }
.sc3-th { width: 100%; aspect-ratio: 1080 / 1920; display: grid; place-items: center; background: #0c0905; border-radius: 8px; overflow: hidden; }
.sc3-th img { width: 100%; height: 100%; object-fit: cover; }
.sc3 .sc3-btns .btn { min-width: 92px; }
.sc3 .sc3-btns .btn:disabled { opacity: .5; }
@media (max-height: 760px) { .sc3 .sc3-img { max-height: 62vh; } }
/* 结算后不再有粉色闪烁文字：胡数/台数/跨境压制统一为金色静态（数字滚动动画保留） */
#modal-body .hu-flash { color: #ffd76a !important; text-shadow: 0 0 12px rgba(255,200,80,.6) !important; animation: none !important; }
#modal-body .tai-flash { color: #ffe6a0 !important; border-color: #d9b45a !important; background: rgba(120,80,10,.4) !important; animation: none !important; text-shadow: 0 0 10px rgba(255,200,80,.5); }
#modal-body .settle-cult-cross, #modal-body .cross-tag { color: #ffd76a !important; background: transparent; border-color: #d9b45a; animation: none !important; }
#modal-body .cross-tag { background: rgba(217,180,90,.15); }

/* v60 强恕学堂：解析面板浮动显示（固定定位，始终在屏内） */
.hs-res { position: fixed !important; left: 50%; transform: translateX(-50%); bottom: calc(76px + env(safe-area-inset-bottom, 0px)); width: min(94vw, 640px); max-height: 56vh; overflow: auto; z-index: 1300; margin: 0 !important; background: #120d26 !important; box-shadow: 0 8px 30px rgba(0,0,0,.65); animation: ycDlgPop .18s ease-out; }
.hs-res-x { position: sticky; float: right; top: 0; border: 1px solid rgba(200,180,255,.5); background: rgba(255,255,255,.08); color: #ece2ff; border-radius: 999px; padding: 2px 12px; font-size: 13px; cursor: pointer; }
/* v60 叫牌音量滑块 */
.vol-row { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.vol-row input[type=range] { flex: 1; min-width: 0; }
.vol-row b { min-width: 44px; text-align: right; }
.sp-mult .sp-cost{font-size:10px;letter-spacing:0;color:#f0c674;margin-top:3px}

/* v64 名场面「最佳/全部」页签；大厅顶部「每日最佳」+榜单卡片 */
.hl-tabs{display:flex;gap:8px;margin:8px 0}
.hl-tab{flex:1;min-height:40px;border:1px solid #6b5420;background:#16120a;color:#c9b27a;border-radius:8px;font-size:15px}
.hl-tab.on{background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-weight:700}
.hl-pane.hidden{display:none}
.hl-empty{text-align:center;padding:18px 8px}
.hl-book .hlb-list{margin:0;padding:0;list-style:none}
@media (max-width:480px){.hl-book{max-height:82vh;overflow:auto}.hl-tab{min-height:44px}}

/* ===== v65 友好村祝福：玄幻深色 + 金 ===== */
.bless-wall{display:flex;align-items:center;gap:8px;margin:8px auto;max-width:520px;padding:6px 8px;border:1px solid #6b5420;border-radius:12px;background:linear-gradient(135deg,#1b1030,#0a0612)}
.bless-wall.hidden{display:none}
.bl-entry{flex:none;display:flex;flex-direction:column;align-items:center;min-width:76px;min-height:48px;padding:4px 8px;border-radius:10px;border:1px solid #d6a843;background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-weight:700;cursor:pointer}
.bl-entry i{font-style:normal;font-size:18px}.bl-entry small{font-size:10px;opacity:.8}
.bl-marq{flex:1;overflow:hidden;white-space:nowrap;color:#f3e0a6;font-size:13px;min-width:0}
.bl-track{display:inline-block;animation:blmq 40s linear infinite}
.bl-static .bl-track{animation:none;overflow:auto}
.bl-track span{margin-right:28px}.bl-track b{color:#e8c766}
.bl-none{color:#b39a62}
@keyframes blmq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.bl-book{color:#f3e0a6;max-width:520px;margin:0 auto;padding:8px 6px 14px;position:relative;overflow:hidden}
.bl-h{margin:4px 0;text-align:center;color:#f1d27a;letter-spacing:4px;font-family:"Noto Serif SC",serif}
.bl-sub{text-align:center;font-size:12px;color:#b39a62;margin:0 0 8px}
.bl-stat{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-size:13px;margin-bottom:10px}.bl-stat b{color:#f1d27a}
.bl-badge{padding:1px 8px;border-radius:10px;border:1px solid #d6a843;color:#e8c766;font-size:12px}.bl-star{background:#d6a843;color:#2a1d04}
.bl-card{border:1px solid #d6a843;border-radius:14px;padding:16px;text-align:center;background:radial-gradient(circle at 50% 0,#33204f,#0d0817);box-shadow:0 0 18px rgba(214,168,67,.25)}
.bl-seal{width:72px;height:72px;line-height:72px;margin:6px auto;border-radius:50%;font-size:36px;color:#2a1d04;background:linear-gradient(#f1d27a,#b8902f)}
.bl-cat{font-size:15px;color:#e8c766}.bl-cat i{font-style:normal;display:inline-block;width:28px;height:28px;line-height:28px;border-radius:50%;background:#d6a843;color:#2a1d04;margin-right:6px}.bl-cat em{margin-left:8px;font-style:normal;font-size:12px;color:#f08a6a}
.bl-text{font-size:19px;line-height:1.7;margin:12px 4px;color:#fff1c4;font-family:"Noto Serif SC",serif}
.bl-extra{list-style:none;margin:6px 0;padding:0;font-size:13px;color:#d9c486}.bl-extra b{color:#f1d27a}
.bl-draw,.bl-share,.bl-go{min-height:44px;padding:8px 18px;border-radius:10px;border:1px solid #d6a843;background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;display:inline-block}
.bl-h4{margin:14px 0 6px;color:#e8c766;font-size:14px}
.bl-send{display:flex;gap:8px;align-items:stretch}.bl-send select,.bl-send input{flex:1;min-width:0;min-height:44px;background:#16120a;color:#f3e0a6;border:1px solid #6b5420;border-radius:8px;padding:0 10px;font:inherit}.bl-send input::placeholder{color:#8a7350}
.bl-wall,.bl-inbox{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;max-height:180px;overflow:auto}
.bl-wall li,.bl-inbox li{padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.05)}.bl-wall b,.bl-inbox b{color:#e8c766}
.bl-poster{text-align:center;margin-top:10px}.bl-poster img{max-width:100%;border-radius:10px;border:1px solid #d6a843}
.bl-rain{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}
.bl-rain i{position:absolute;top:-20px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff2b0,#d6a843 60%,#8a6418);animation:blfall linear forwards}
@keyframes blfall{to{transform:translateY(560px) rotate(360deg);opacity:.2}}
@media (max-width:480px){.bl-text{font-size:17px}.bless-wall{margin:6px 8px}}

/* ===== v66 马桥电影院：金色大卡 + 名局卡片（手机竖屏优先） ===== */
.cin-lobby{width:calc(100% - 24px);max-width:520px;min-width:0;box-sizing:border-box;margin:8px auto;padding:0 2px;overflow:hidden}
.cin-lobby.hidden{display:none}
.cin-card-btn{width:100%;display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 14px;border-radius:16px;border:2px solid #f1d27a;background:linear-gradient(135deg,#e8c766,#b8902f 55%,#8a6418);color:#2a1d04;cursor:pointer;box-shadow:0 0 22px rgba(241,210,122,.35);text-align:left}
.cin-ico{flex:none;width:48px;height:48px;line-height:48px;text-align:center;font-size:26px;font-weight:800;border-radius:12px;background:#2a1d04;color:#f1d27a}
.cin-ti{flex:1;display:flex;flex-direction:column;min-width:0}.cin-ti b{font-size:20px;letter-spacing:3px;font-family:"Noto Serif SC",serif}.cin-ti small{font-size:12px;opacity:.85}
.cin-card-btn em{font-style:normal;font-size:26px}
.cin-strip{overflow:hidden;white-space:nowrap;margin-top:6px;border-radius:10px;background:#0d0a05;border:1px solid #6b5420;padding:6px 0}
.cin-strack{display:inline-block;animation:cinmq 50s linear infinite}
.cin-static .cin-strack{animation:none;overflow:auto;display:block}
@keyframes cinmq{to{transform:translateX(-50%)}}
.cin-th{display:inline-flex;flex-direction:column;margin:0 14px;vertical-align:top}.cin-th small{color:#e8c766;font-size:11px;margin-top:2px}
.cin-none{margin:0;padding:4px 10px;color:#b39a62;font-size:12px}
.cin-hand{display:flex;flex-wrap:wrap;gap:1px;align-items:flex-end}.cin-m{display:inline-flex;margin-right:6px}
.cin-tt{width:16px;height:auto;display:block}.cin-t{width:calc((100% - 20px)/14);max-width:28px;min-width:20px;height:auto;display:block}
.cin-book{color:#f3e0a6;max-width:560px;margin:0 auto;padding:8px 6px 14px;position:relative}
.cin-h{margin:4px 0;text-align:center;color:#f1d27a;letter-spacing:4px;font-family:"Noto Serif SC",serif}
.cin-sub{text-align:center;font-size:12px;color:#b39a62;margin:0 0 8px}
.cin-tabs{display:flex;gap:8px;margin:8px 0}.cin-tab{flex:1;min-height:44px;border:1px solid #6b5420;background:#16120a;color:#c9b27a;border-radius:8px;font-size:15px}.cin-tab.on{background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-weight:700}
.cin-list{display:grid;gap:10px}
.cin-card{border:1px solid #6b5420;border-radius:12px;padding:10px;background:linear-gradient(160deg,#1a2214,#0a0c08)}
.cin-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.cin-pat{color:#f1d27a;font-size:16px}.cin-top em{margin-left:auto;font-style:normal;font-size:12px;color:#d9c486}
.cin-tag{padding:1px 8px;border-radius:10px;font-size:11px;border:1px solid #d6a843;color:#e8c766}.cin-solo{border-color:#6fa8dc;color:#9cc7ef}.cin-big{background:#d6a843;color:#2a1d04}
.cin-open{display:block;width:100%;background:transparent;border:0;padding:4px 0;cursor:pointer}
.cin-who{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:#c9b27a;margin:6px 0}.cin-who b{color:#f3e0a6;font-size:14px}
.cin-act{display:flex;gap:8px;align-items:center}
.cin-share,.cin-moreb{min-height:44px;padding:6px 14px;border-radius:10px;border:1px solid #d6a843;background:#16120a;color:#e8c766;font-size:14px;cursor:pointer}
.cin-like{min-height:44px;min-width:44px;padding:6px 8px;border:0;border-radius:0;background:transparent;color:#ff2d55;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;box-shadow:none;-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none}
.cin-like.on{background:transparent;color:#ff1744}.cin-like i{font-style:normal;margin-right:0}
.cin-like .hrt{font-size:22px;color:#ff2d55;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45));line-height:0}
.cin-like.on .hrt{color:#ff1744}.cin-like b{color:#e8c766;font-weight:700;font-size:13px}.cin-like.on b{color:#ffb0c8}
.cin-moreb{display:block;width:100%;margin:10px 0}.cin-empty{text-align:center;padding:16px 6px}
@media (max-width:480px){.cin-ti b{font-size:18px}.cin-book{max-height:86vh;overflow:auto}.cin-t{min-width:18px}}

/* v66 大厅内容变多后，PC 大屏居中会把顶部裁掉：改为从顶部排列并可滚动 */
#splash { justify-content: flex-start !important; }

/* v66 战力榜卡：单机优先 · 领奖台 + 各档胜局徽章（与修为榜的名次列表明显不同） */
.rkc-solo .szl-pod{list-style:none;margin:6px 0 4px;padding:0;display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:4px;align-items:end}
.szl-col{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 4px;border-radius:10px 10px 4px 4px;background:rgba(127,180,255,.10);border:1px solid rgba(127,190,255,.35);min-width:0;text-align:center}
.szl-col.p1{padding-top:12px;background:linear-gradient(#35507a,#13203a);border-color:#9fd0ff}.szl-col.p2{min-height:96px}.szl-col.p3{min-height:88px}
.szl-col.vacant{opacity:.45}.szl-no{font-size:12px;color:#06182a;background:#9fd0ff;border-radius:50%;width:18px;height:18px;line-height:18px}
.szl-nm{font-size:12px;color:#e3f1ff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.szl-sc{font-size:18px;font-weight:800;color:#bfe2ff}.p1 .szl-sc{font-size:22px;color:#fff1a8}
.szl-sub{font-size:10px;color:#9db8d6;line-height:1.3}
.szl-chips{display:flex;gap:4px;margin:6px 0 2px}
.szl-chip{flex:1;display:flex;flex-direction:column;align-items:center;padding:3px 0;border-radius:8px;background:rgba(0,0,0,.3);border:1px dashed rgba(127,190,255,.3);color:#7f94ad}
.szl-chip em{font-style:normal;font-size:10px}.szl-chip b{font-size:14px}.szl-chip.on{border-style:solid;color:#d8ecff;background:rgba(127,180,255,.18)}
@media (max-width:480px){.szl-sub{font-size:9px}.szl-sc{font-size:16px}.p1 .szl-sc{font-size:19px}}

/* v66 每日最佳：当日前三轮播（与马桥电影院共用数据） */
.bst-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;scrollbar-width:none}
.bst-row::-webkit-scrollbar{display:none}
.bst-card{flex:0 0 100%;scroll-snap-align:start;box-sizing:border-box;border:1px solid #6b5420;border-radius:12px;padding:8px;background:linear-gradient(160deg,#1a2214,#0a0c08);text-align:left}
.bst-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.bst-top em{margin-left:auto;font-style:normal;font-size:12px;color:#d9c486}
.bst-rank{width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:linear-gradient(#f1d27a,#b8902f);color:#2a1d04;font-weight:800;font-size:12px}
.bst-t{max-width:24px;min-width:16px}.bst-likes i{font-style:normal;color:#ff2d55;margin-right:0}
.bst-dots{display:flex;gap:6px;justify-content:center;margin-top:6px}.bst-dots i{width:7px;height:7px;border-radius:50%;background:#4a3a18}.bst-dots i.on{background:#f1d27a}

/* ===== v66 好友 + 约牌 ===== */
.fr-entry{position:relative}
.fr-dot{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;line-height:18px;border-radius:9px;background:#e5483d;color:#fff;font-size:11px;font-style:normal;text-align:center;padding:0 4px}
.fr-book{color:#f3e0a6;max-width:520px;margin:0 auto;padding:8px 6px 14px;position:relative}
.fr-h{margin:4px 0;text-align:center;color:#f1d27a;letter-spacing:4px;font-family:"Noto Serif SC",serif}.fr-sub{text-align:center;font-size:12px;color:#b39a62;margin:0 0 8px}
.fr-tabs{display:flex;gap:8px;margin:8px 0}.fr-tab{flex:1;min-height:44px;border:1px solid #6b5420;background:#16120a;color:#c9b27a;border-radius:8px;font-size:15px}.fr-tab.on{background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-weight:700}.fr-tab em{font-style:normal;background:#e5483d;color:#fff;border-radius:9px;padding:0 6px;font-size:11px}
.fr-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:55vh;overflow:auto}
.fr-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid #3a2e12}
.fr-n{flex:1;min-width:0;display:flex;flex-direction:column}.fr-n b{color:#f3e0a6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-n small{color:#b39a62;font-size:11px}
.fr-btns{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.fr-b{min-height:38px;padding:4px 10px;border-radius:8px;border:1px solid #d6a843;background:linear-gradient(#e8c766,#b8902f);color:#2a1d04;font-size:13px;font-weight:700;cursor:pointer}.fr-b.ghost{background:#16120a;color:#e8c766}.fr-b:disabled{opacity:.45}
.fr-st{width:9px;height:9px;border-radius:50%;background:#555;flex:none}.fr-st.on{background:#4cd964;box-shadow:0 0 6px #4cd964}
.fr-empty{padding:14px;text-align:center}
.fr-invs{margin:6px 0}.fr-inv{padding:8px;border:1px solid #d6a843;border-radius:10px;margin-bottom:6px;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fr-ucard{display:flex;align-items:center;gap:8px;margin:8px 0;flex-wrap:wrap}.fr-ou{font-size:12px;color:#b39a62}.fr-ucard .btn{min-height:44px}
.fr-banner{position:fixed;left:8px;right:8px;top:calc(8px + env(safe-area-inset-top,0px));z-index:9999;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#1b1030;border:1px solid #f1d27a;color:#f3e0a6;box-shadow:0 6px 24px rgba(0,0,0,.6);max-width:520px;margin:0 auto}
.fr-banner span{flex:1;min-width:140px}
@media (max-width:480px){.fr-row{flex-wrap:wrap}.fr-btns{width:100%;justify-content:flex-start}}

/* v66 修为榜前三名境界图标按名次递减：金色光晕 / 银边 / 铜边 / 第4名起统一小尺寸 */
.rkc-cult .rkc-top { gap: 4px; }
.rkc-cult .rkc-top li { height: auto; min-height: 26px; }
.rkc-cult .rkc-top li.rkc-r1 { grid-template-columns: 18px 44px 1fr auto auto; min-height: 46px; }
.rkc-cult .rkc-top li.rkc-r2 { grid-template-columns: 18px 36px 1fr auto auto; min-height: 38px; }
.rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 18px 31px 1fr auto auto; min-height: 33px; }
.rkc-cult .rkc-r1 .rkc-av, .rkc-cult .rkc-r1 .rkc-img { width: 44px !important; height: 44px !important; }
.rkc-cult .rkc-r2 .rkc-av, .rkc-cult .rkc-r2 .rkc-img { width: 36px !important; height: 36px !important; }
.rkc-cult .rkc-r3 .rkc-av, .rkc-cult .rkc-r3 .rkc-img { width: 31px !important; height: 31px !important; }
.rkc-cult .rkc-r1 .rkc-av { border-radius: 50%; box-shadow: 0 0 10px 2px rgba(255,214,102,.75), 0 0 0 2px #f1d27a; }
.rkc-cult .rkc-r2 .rkc-av { border-radius: 50%; box-shadow: 0 0 0 2px #cfd6e0; }
.rkc-cult .rkc-r3 .rkc-av { border-radius: 50%; box-shadow: 0 0 0 2px #b8763a; }
.rkc-cult .rkc-r1 .rkc-n { font-size: 13px; }
.rkc-cult .rkc-n, .rkc-cult .rkc-v { min-width: 0; }
@media (max-width: 520px) {
  .rkc-cult .rkc-top li.rkc-r1 { grid-template-columns: 14px 34px 1fr auto auto; min-height: 36px; }
  .rkc-cult .rkc-top li.rkc-r2 { grid-template-columns: 14px 29px 1fr auto auto; min-height: 31px; }
  .rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 14px 26px 1fr auto auto; min-height: 28px; }
  .rkc-cult .rkc-r1 .rkc-av, .rkc-cult .rkc-r1 .rkc-img { width: 34px !important; height: 34px !important; }
  .rkc-cult .rkc-r2 .rkc-av, .rkc-cult .rkc-r2 .rkc-img { width: 29px !important; height: 29px !important; }
  .rkc-cult .rkc-r3 .rkc-av, .rkc-cult .rkc-r3 .rkc-img { width: 26px !important; height: 26px !important; }
}
.rk-p1 .rk-art-wrap { max-width: 180px; box-shadow: 0 0 18px 4px rgba(255,214,102,.6), 0 0 0 2px #f1d27a; }
.rk-p2 .rk-art-wrap { max-width: 146px; box-shadow: 0 0 0 2px #cfd6e0; }
.rk-p3 .rk-art-wrap { max-width: 122px; box-shadow: 0 0 0 2px #b8763a; }
.nm36 .bot36 { font-style: normal; font-size: 9px; line-height: 1; margin-left: 4px; padding: 1px 3px; border-radius: 3px; border: 1px solid rgba(160,190,220,.55); color: #a9c4de; vertical-align: middle; font-weight: 400; letter-spacing: 0; flex: none; }

/* v66 闭关修炼入口：金光流动边框（慢速循环；手机减弱；关闭特效=静态金边；不遮挡内容） */
#btn-solo { position: relative; isolation: isolate; box-shadow: 0 0 0 1px rgba(241,210,122,.55), 0 0 8px rgba(241,210,122,.22); }
#btn-solo::after { content: ""; position: absolute; inset: -2px; border-radius: inherit; padding: 2px; pointer-events: none; z-index: 2;
  background: linear-gradient(135deg, #f1d27a, #b8862b 40%, #f1d27a 70%, #b8862b);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); opacity: .75; }
@property --soloAng { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
body.fx-lobby #btn-solo::after { background: conic-gradient(from var(--soloAng), rgba(184,134,43,.55), #fff2b0 12%, rgba(184,134,43,.55) 28%, rgba(184,134,43,.55) 60%, #ffe08a 74%, rgba(184,134,43,.55) 88%); opacity: 1; animation: soloSpin 9s linear infinite; }
body.fx-lobby #btn-solo { animation: soloGlow 4.5s ease-in-out infinite; }
@keyframes soloSpin { to { --soloAng: 360deg; } }
@keyframes soloGlow { 0%,100% { box-shadow: 0 0 6px rgba(241,210,122,.18); } 50% { box-shadow: 0 0 14px rgba(241,210,122,.42); } }
@media (max-width: 520px) { body.fx-lobby #btn-solo::after { animation-duration: 13s; opacity: .8; } body.fx-lobby #btn-solo { animation-name: soloGlowM; } @keyframes soloGlowM { 0%,100% { box-shadow: 0 0 4px rgba(241,210,122,.14); } 50% { box-shadow: 0 0 8px rgba(241,210,122,.28); } } }
@media (prefers-reduced-motion: reduce) { body.fx-lobby #btn-solo, body.fx-lobby #btn-solo::after { animation: none; } }

/* v66 每日一花（矢量 SVG；动画只在 .fl-anim 下运行，关闭特效即静态） */
.fl-box { width: min(var(--fs, 300px), 100%); aspect-ratio: 1; margin: 0 auto; line-height: 0; }
.fl-box .fl-svg { width: 100%; height: auto; display: block; border-radius: 12px; }
.fl-box.fl-mini .fl-svg { border-radius: 8px; }
.bl-flower { text-align: center; margin: 6px 0 10px; }
.bl-fl-note { margin: 6px 0 0; font-size: 13px; color: #e8d49a; }
.bl-in { display: flex; gap: 8px; align-items: center; }
.bl-in .fl-box { flex: none; width: 44px; }
.bl-in > span { min-width: 0; overflow-wrap: anywhere; }
.fl-anim .fl-sway { transform-origin: 320px 285px; animation: flSway 6s ease-in-out infinite; }
.fl-anim .fl-halo { animation: flHalo 5s ease-in-out infinite; transform-origin: 320px 285px; }
.fl-anim .fl-up { animation: flUp var(--t, 7s) linear infinite; animation-delay: var(--d, 0s); transform-box: fill-box; }
.fl-anim .fl-tw { animation-name: flUp, flTw; animation-duration: var(--t, 7s), 2.6s; animation-iteration-count: infinite; animation-timing-function: linear, ease-in-out; animation-delay: var(--d, 0s); }
.fl-box:not(.fl-anim) .fl-sway, .fl-box:not(.fl-anim) .fl-up, .fl-box:not(.fl-anim) .fl-halo { animation: none; }
.fl-mini .fl-up, .fl-mini:not(.fl-lobby) .fl-sway { animation: none !important; }
@keyframes flSway { 0%,100% { transform: rotate(-1.6deg); } 50% { transform: rotate(1.6deg); } }
@keyframes flHalo { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes flUp { 0% { transform: translateY(40px); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translateY(-190px); opacity: 0; } }
@keyframes flTw { 0%,100% { filter: brightness(.8); } 50% { filter: brightness(1.5); } }
@media (prefers-reduced-motion: reduce) { .fl-anim .fl-sway, .fl-anim .fl-up, .fl-anim .fl-halo { animation: none; } }
.bl-sendcard { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,.6); display: grid; place-items: center; padding: 16px; }
.bl-sc-in { width: min(340px, 100%); border: 2px solid #d6a843; border-radius: 16px; padding: 14px; background: linear-gradient(170deg, #1b1030, #07040d); text-align: center; color: #f3e0a6; box-sizing: border-box; }
.bl-sc-to { margin: 8px 0 2px; font-size: 15px; } .bl-sc-tx { margin: 4px 0; font-size: 17px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.bl-sc-warm { margin: 6px 0; font-size: 13px; color: #ffd76a; } .bl-sc-in .bl-go { margin-top: 8px; min-height: 40px; }
@media (max-width: 480px) { .fl-box { --fs: 260px; } }
.cin-tag.cin-pick { background: linear-gradient(#ffe9a0, #d4a017); color: #3a2600; border-color: #ffe9a0; font-weight: 700; }

/* v67 大厅祝福卡：左侧显示当天的花（可轻摇，受特效开关控制） */
.bl-entry { flex-direction: row !important; align-items: center; gap: 8px; min-width: 0; padding: 4px 12px 4px 6px !important; text-align: left; }
.bl-entry .fl-box { flex: none; width: 76px; border-radius: 10px; box-shadow: 0 0 10px rgba(255,214,102,.55); }
.bl-et { display: flex; flex-direction: column; line-height: 1.25; } .bl-et b { font-size: 15px; letter-spacing: .1em; } .bl-et small { font-size: 10.5px; }
@media (max-width: 480px) { .bl-entry .fl-box { width: 64px; } .bl-et b { font-size: 14px; } }

/* v67 修为榜：行距加大、每行金色渐变底、更大的名字/修为数字、前三名更突出 */
.rkc-cult .rkc-top { gap: 8px; margin-top: 4px; }
.rkc-cult .rkc-top li { padding: 4px 8px 4px 6px; border-radius: 10px; border: 1px solid rgba(214,168,67,.35); background: linear-gradient(100deg, rgba(120,84,12,.55), rgba(214,168,67,.16) 55%, rgba(30,20,4,.35)); box-shadow: inset 0 1px 0 rgba(255,236,170,.18); }
.rkc-cult .rkc-top li.vacant { background: rgba(255,255,255,.04); border-style: dashed; }
.rkc-cult .rkc-top li.rkc-r1 { border-color: #f1d27a; background: linear-gradient(100deg, rgba(190,138,20,.8), rgba(255,214,102,.3) 55%, rgba(60,40,6,.4)); box-shadow: 0 0 12px rgba(255,214,102,.35), inset 0 1px 0 rgba(255,246,200,.35); }
.rkc-cult .rkc-top li.rkc-r2 { border-color: #cfd6e0; background: linear-gradient(100deg, rgba(120,128,142,.55), rgba(220,226,236,.16) 55%, rgba(30,32,38,.4)); }
.rkc-cult .rkc-top li.rkc-r3 { border-color: #c98a4a; background: linear-gradient(100deg, rgba(140,84,36,.6), rgba(214,140,70,.18) 55%, rgba(40,24,10,.4)); }
.rkc-cult .rkc-n { font-size: 14px; letter-spacing: .04em; text-shadow: 0 1px 2px #000a; }
.rkc-cult .rkc-r1 .rkc-n { font-size: 16px; color: #fff0b8; }
.rkc-cult .rkc-v { font-size: 14px; color: #ffe08a; text-shadow: 0 1px 2px #000a; }
.rkc-cult .rkc-r1 .rkc-v { font-size: 17px; color: #fff0b8; }
@media (max-width: 520px) {
  .rkc-cult .rkc-top { gap: 6px; }
  .rkc-cult .rkc-top li { padding: 3px 5px 3px 4px; }
  .rkc-cult .rkc-n { font-size: 12.5px; letter-spacing: 0; } .rkc-cult .rkc-r1 .rkc-n { font-size: 13.5px; }
  .rkc-cult .rkc-v { font-size: 12.5px; } .rkc-cult .rkc-r1 .rkc-v { font-size: 14px; }
}
/* 排行榜弹窗里第 4 名起的行 */
.rk-list { gap: 12px; }
.rk-row { padding: 10px 14px; border-radius: 14px; border: 1px solid rgba(214,168,67,.5); background: linear-gradient(100deg, rgba(122,86,14,.6), rgba(214,168,67,.14) 55%, rgba(28,18,4,.5)); box-shadow: inset 0 1px 0 rgba(255,236,170,.16); }
.rk-row .rk-who b { font-size: 18px; letter-spacing: .05em; color: #ffe9a8; }
.rk-row .rk-num { font-size: 22px; font-weight: 800; color: #ffd76a; text-shadow: 0 1px 3px #000a; }
.rk-row .rk-no { font-size: 20px; font-weight: 800; color: #f1d27a; }
@media (max-width: 520px) { .rk-list { gap: 10px; } .rk-row { padding: 8px 10px; } .rk-row .rk-who b { font-size: 15.5px; } .rk-row .rk-num { font-size: 18px; } .rk-row .rk-no { font-size: 16px; } }

/* v67 手机大厅防左右晃动：祝福卡限制在视口内，大厅容器禁横向滚动 */
#splash { overflow-x: hidden; touch-action: pan-y; }
.bless-wall { flex: none; box-sizing: border-box; width: calc(100% - 16px); max-width: 520px; min-width: 0; overflow: hidden; }
.bless-wall .bl-marq { min-width: 0; max-width: 100%; overflow: hidden; }
.bless-wall .bl-track { will-change: transform; }
@media (max-width: 480px) {
  .bless-wall { width: calc(100% - 20px); gap: 6px; padding: 5px 6px; }
  .bl-entry .fl-box { width: 56px; }
  .bl-et b { font-size: 13px; letter-spacing: .04em; } .bl-et small { font-size: 10px; }
  .bl-marq { font-size: 12px; }
}
.bl-autoset { display: flex; gap: 8px; align-items: center; font-size: 13px; color: #e8d49a; margin: 8px 4px 0; }
.bl-autocard .bl-sc-in { position: relative; overflow: hidden; }
.bl-autocard .bl-cat { justify-content: center; margin: 8px 0 2px; }
.bl-autocard .bl-extra { text-align: left; margin: 6px 0; padding-left: 18px; font-size: 13px; color: #ffd76a; }
.bl-autocard .bl-go { min-width: 120px; min-height: 44px; font-size: 16px; }

/* ===== v68 闭关修炼选档：右侧限宽换行；修为榜两行排版 ===== */
.sp-card { max-width: 100%; box-sizing: border-box; }
.sp-list, .sp-tier { min-width: 0; max-width: 100%; box-sizing: border-box; }
.sp-tier { grid-template-columns: 48px minmax(0,1fr) minmax(64px, 112px); }
.sp-main, .sp-name, .sp-desc { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.sp-mult { min-width: 0; max-width: 112px; white-space: normal; text-align: center; box-sizing: border-box; overflow-wrap: anywhere; word-break: break-word; }
.sp-mult small { letter-spacing: .08em; line-height: 1.35; }
.sp-mult .sp-cost { display: block; font-size: 10.5px; letter-spacing: 0; color: #cdbb8e; margin-top: 3px; font-weight: 400; }
@media (max-width: 480px) {
  .sp-tier { grid-template-columns: 38px minmax(0,1fr) minmax(56px, 84px); gap: 7px; }
  .sp-mult { max-width: 84px; font-size: 15px; }
  .sp-mult .sp-cost { font-size: 10px; }
}
/* 大厅修为榜：每人两行（名次+图标+名字 / 修为数字+境界） */
.rkc-cult .rkc-top li, .rkc-cult .rkc-top li.rkc-r1, .rkc-cult .rkc-top li.rkc-r2, .rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 20px auto minmax(0,1fr); grid-template-rows: auto auto; column-gap: 8px; row-gap: 1px; align-items: center; min-height: 0; padding: 6px 10px 6px 8px; }
.rkc-cult .rkc-top li .rkc-no { grid-column: 1; grid-row: 1; }
.rkc-cult .rkc-top li .rkc-av { grid-column: 2; grid-row: 1; }
.rkc-cult .rkc-top li .rkc-n { grid-column: 3; grid-row: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rkc-cult .rkc-top li .rkc-v { grid-column: 2 / -1; grid-row: 2; min-width: 0; display: flex; align-items: baseline; gap: 8px; overflow: hidden; white-space: nowrap; font-weight: 700; }
.rkc-cult .rkc-v small { font-size: 11px; font-weight: 400; color: #e8d6a0; opacity: .85; overflow: hidden; text-overflow: ellipsis; }
.rkc-cult .rkc-top li.rkc-r1 { padding: 9px 12px 9px 8px; }
.rkc-cult .rkc-r1 .rkc-n { font-size: 17px; } .rkc-cult .rkc-r1 .rkc-v { font-size: 19px; }
.rkc-cult .rkc-top li.vacant { grid-template-rows: auto; }
.rkc-cult .rkc-top li.vacant .rkc-v { display: none; }
/* 榜单弹窗 */
.rk-row.rk2 { display: flex; flex-direction: column; align-items: stretch; gap: 3px; padding: 10px 12px; min-width: 0; overflow: hidden; }
.rk2 .rk-l1 { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rk2 .rk-l1 .rk-who { flex: 1; min-width: 0; display: block; }
.rk2 .rk-l1 .rk-who b { display: block; font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk2 .rk-l2 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding-left: 44px; min-width: 0; }
.rk2 .rk-num { font-size: 20px; font-weight: 800; color: #ffe08a; text-shadow: 0 1px 2px #000a; }
.rk2 .rk-num small { margin-left: 4px; font-size: 11px; font-weight: 400; color: #d9c79a; }
.rk2 .rk-l2 em { font-style: normal; font-size: 13px; color: #f1d27a; }
.rk2 .rk-l3 { padding-left: 44px; min-width: 0; }
@media (max-width: 520px) { .rk2 .rk-l2, .rk2 .rk-l3 { padding-left: 36px; } .rk2 .rk-l1 .rk-who b { font-size: 15.5px; } .rk2 .rk-num { font-size: 18px; } .rk-row.rk2 { padding: 8px 9px; } }
.rk-podium { grid-template-columns: minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr); }
.rk-pod { min-width: 0; box-sizing: border-box; overflow: hidden; }
.rk-pod .rk-name, .rk-pod .rk-realm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.rank-book { overflow-x: hidden; }
.rkc-cult .rkc-top li, .rkc-cult .rkc-top li.rkc-r1, .rkc-cult .rkc-top li.rkc-r2, .rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 20px auto minmax(0,1fr) auto; }
.rkc-cult .rkc-top li .rkc-v { grid-column: 2 / -1; }
.rkc-cult .rkc-top li .mb-btn { grid-column: 4; grid-row: 1; justify-self: end; margin: 0; }
.rk2 .rk-l1 .rk-who { display: flex; align-items: center; gap: 8px; }
.rk2 .rk-l1 .rk-who b { flex: 0 1 auto; min-width: 0; }
.rk2 .rk-l1 .rk-who .mb-btn { flex: none; }
.rk-pod { overflow: visible; }

/* ===== v69 修为榜昵称完整显示：按字数分档缩字、可换行，不省略；膜拜移到第二行靠右 ===== */
.rkc-cult .rkc-top li .rkc-n, .rk2 .rk-l1 .rk-who b, .rk-pod .rk-name { overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: anywhere; word-break: break-all; line-height: 1.2; }
.rkc-cult .rkc-n.nl-b, .rk2 .rk-who b.nl-b { font-size: 13px; } .rkc-cult .rkc-n.nl-c, .rk2 .rk-who b.nl-c { font-size: 11.5px; } .rkc-cult .rkc-n.nl-d, .rk2 .rk-who b.nl-d { font-size: 10.5px; letter-spacing: 0; }
.rkc-cult .rkc-r1 .rkc-n.nl-a { font-size: 17px; } .rkc-cult .rkc-r1 .rkc-n.nl-b { font-size: 14px; } .rkc-cult .rkc-r1 .rkc-n.nl-c { font-size: 12px; } .rkc-cult .rkc-r1 .rkc-n.nl-d { font-size: 10.5px; }
.rk-pod .rk-name.nl-b { font-size: 13px; } .rk-pod .rk-name.nl-c { font-size: 11px; } .rk-pod .rk-name.nl-d { font-size: 10px; letter-spacing: 0; }
.rkc-cult .rkc-top li .mb-btn { grid-column: 4; grid-row: 2; justify-self: end; }
.rkc-cult .rkc-top li, .rkc-cult .rkc-top li.rkc-r1, .rkc-cult .rkc-top li.rkc-r2, .rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 20px auto minmax(0,1fr) auto; }
.rkc-cult .rkc-top li .rkc-v { grid-column: 2 / 4; }
.rkc-cult .rkc-top li .rkc-n { grid-column: 3 / -1; }
.rk2 .rk-l2 .mb-btn { margin-left: auto; flex: none; }
.rk2 .rk-l1 .rk-who { display: block; }
.rk2 .rk-l1 .rk-who b { display: block; flex: none; }
@media (max-width: 520px) { .rk-pod .rk-name.nl-a { font-size: 13px; letter-spacing: 0; } .rk-pod .rk-name.nl-b { font-size: 11.5px; } .rk-pod .rk-name.nl-c { font-size: 10.5px; } .rk-pod .rk-name.nl-d { font-size: 10px; } }
@media (min-width: 521px) {
  .rk2 .rk-who b.nl-b { font-size: 16px; } .rk2 .rk-who b.nl-c { font-size: 14.5px; } .rk2 .rk-who b.nl-d { font-size: 13px; }
  .rk-pod .rk-name.nl-b { font-size: 15px; } .rk-pod .rk-name.nl-c { font-size: 13px; } .rk-pod .rk-name.nl-d { font-size: 11.5px; }
  .rkc-cult .rkc-n.nl-c { font-size: 12.5px; } .rkc-cult .rkc-n.nl-d { font-size: 11.5px; }
}

/* ===== v70 星星村点火榜：放大卡片、玄幻金边、详情面板 ===== */
.ch-rank { list-style: none; margin: 0; padding: 2px 0 8px; max-height: 52vh; overflow: auto; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ch-rank .ch-row { display: grid; grid-template-columns: 44px minmax(0,1fr) 18px; gap: 10px; align-items: center; padding: 12px 12px 12px 10px; border-radius: 14px; border: 1px solid rgba(214,168,67,.35); background: linear-gradient(120deg, rgba(28,18,6,.92), rgba(12,10,6,.88) 55%, rgba(40,28,10,.55)); box-shadow: inset 0 1px 0 rgba(255,236,170,.12), 0 4px 14px rgba(0,0,0,.35); cursor: pointer; min-width: 0; box-sizing: border-box; transition: border-color .15s, box-shadow .15s, transform .08s; }
.ch-rank .ch-row:hover, .ch-rank .ch-row:focus-visible { border-color: #f1d27a; box-shadow: 0 0 14px rgba(255,214,102,.28), inset 0 1px 0 rgba(255,246,200,.2); outline: none; }
.ch-rank .ch-row:active { transform: scale(.985); }
.ch-rank .ch-row.me { outline: 2px solid #7fe8d6; outline-offset: 1px; }
.ch-rank .ch-row.top1 { border-color: #f1d27a; background: linear-gradient(120deg, rgba(120,84,12,.75), rgba(60,40,8,.7) 50%, rgba(20,14,4,.9)); box-shadow: 0 0 16px rgba(255,214,102,.3), inset 0 1px 0 rgba(255,246,200,.3); }
.ch-rank .ch-row.top2 { border-color: #cfd6e0; background: linear-gradient(120deg, rgba(90,96,108,.55), rgba(30,32,38,.85)); }
.ch-rank .ch-row.top3 { border-color: #c98a4a; background: linear-gradient(120deg, rgba(110,64,28,.55), rgba(36,20,8,.85)); }
.ch-no { display: grid; place-items: center; }
.ch-no i { font-style: normal; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font-weight: 800; font-size: 16px; color: #1a1208; background: linear-gradient(#d4b46a, #8f7a4f); box-shadow: 0 0 0 2px rgba(0,0,0,.4); }
.ch-row.top1 .ch-no i { background: linear-gradient(#fff2b0, #d4a017); box-shadow: 0 0 10px rgba(255,210,90,.7); font-size: 18px; width: 40px; height: 40px; }
.ch-row.top2 .ch-no i { background: linear-gradient(#f4f6fa, #9aa4b2); }
.ch-row.top3 .ch-no i { background: linear-gradient(#ffd0a0, #a8642c); }
.ch-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; overflow: hidden; }
.ch-l1 { display: flex; align-items: baseline; gap: 8px; min-width: 0; flex-wrap: wrap; }
.ch-nm { font-size: 16px; font-weight: 700; color: #ffe9a8; letter-spacing: .04em; text-shadow: 0 1px 2px #000a; overflow-wrap: anywhere; word-break: break-word; }
.ch-row.top1 .ch-nm { font-size: 18px; color: #fff0b8; }
.ch-tt { font-size: 12px; color: #d4af37; letter-spacing: .06em; }
.ch-l2 { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; }
.ch-sc { display: inline-flex; align-items: baseline; gap: 2px; color: #ffe08a; }
.ch-sc b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; text-shadow: 0 1px 2px #000a; }
.ch-sc small { font-size: 11px; color: #d9c79a; }
.ch-sc.miss { font-size: 14px; color: #b8a88a; }
.ch-l3 { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 12px; color: #cbb98a; min-width: 0; }
.ch-l3 em { font-style: normal; }
.ch-stars { color: #ffd76a; letter-spacing: 1px; text-shadow: 0 0 6px rgba(255,200,80,.45); }
.ch-go { color: #d4af37; font-size: 22px; opacity: .7; }
.ch-book { position: relative; min-width: 0; overflow-x: hidden; }
.ch-pane { min-width: 0; overflow-x: hidden; }
@media (max-width: 480px) {
  .ch-rank { gap: 8px; max-height: 48vh; }
  .ch-rank .ch-row { grid-template-columns: 36px minmax(0,1fr) 14px; gap: 8px; padding: 10px 9px; }
  .ch-no i { width: 30px; height: 30px; font-size: 14px; }
  .ch-row.top1 .ch-no i { width: 34px; height: 34px; font-size: 15px; }
  .ch-nm { font-size: 14.5px; } .ch-row.top1 .ch-nm { font-size: 15.5px; }
  .ch-sc b { font-size: 17px; }
  .ch-l3 { font-size: 11px; gap: 3px 8px; }
}
/* 详情面板 */
.ch-detail { position: absolute; inset: 0; z-index: 8; display: grid; place-items: center; padding: 12px; background: rgba(0,0,0,.62); box-sizing: border-box; }
.chd-card { position: relative; width: min(420px, 100%); max-height: min(78vh, 640px); overflow: auto; padding: 18px 16px 14px; border-radius: 16px; border: 1px solid #d4a843; background: linear-gradient(165deg, #2a1c08, #100c06 60%, #1a1408); box-shadow: 0 12px 40px #000c, inset 0 1px 0 rgba(255,236,170,.2); box-sizing: border-box; min-width: 0; }
.chd-x { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; border: 1px solid #a67c2e; background: rgba(0,0,0,.45); color: #ffe39a; font-size: 20px; cursor: pointer; }
.chd-hero { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 10px; margin-bottom: 12px; padding-right: 28px; }
.chd-hero i { font-style: normal; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font-weight: 800; background: linear-gradient(#d4b46a, #8f7a4f); color: #1a1208; }
.chd-hero.top1 i { background: linear-gradient(#fff2b0, #d4a017); }
.chd-hero.top2 i { background: linear-gradient(#f4f6fa, #9aa4b2); }
.chd-hero.top3 i { background: linear-gradient(#ffd0a0, #a8642c); }
.chd-hero b { font-size: 20px; color: #fff0b8; overflow-wrap: anywhere; }
.chd-hero em { font-style: normal; color: #d4af37; font-size: 13px; }
.chd-score { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: baseline; margin-bottom: 14px; padding: 10px 12px; border-radius: 12px; border: 1px dashed rgba(214,168,67,.45); background: rgba(255,214,102,.06); }
.chd-score span { display: inline-flex; align-items: baseline; gap: 3px; color: #ffe08a; }
.chd-score b { font-size: 26px; font-weight: 800; }
.chd-score small { font-size: 12px; color: #d9c79a; }
.chd-score .miss { font-size: 16px; color: #b8a88a; }
.chd-dl { margin: 0; display: grid; gap: 6px; }
.chd-dl > div { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(214,168,67,.15); min-width: 0; }
.chd-dl dt { margin: 0; color: #a89468; font-size: 12px; }
.chd-dl dd { margin: 0; color: #f3e6c4; font-size: 14px; overflow-wrap: anywhere; word-break: break-word; }
.chd-note { margin: 12px 0 0; font-size: 11.5px; color: #8f7a4f; letter-spacing: .04em; }
/* 大厅小部件略放大 */
.chw-list { gap: 6px; }
.chw-list li { padding: 7px 8px; grid-template-columns: 26px minmax(0,1fr) auto; font-size: 13.5px; border: 1px solid rgba(127,232,214,.18); }
.chw-nm { display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.chw-nm small { font-size: 10.5px; color: #8bb8ad; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chw-list em b { font-size: 15px; color: #ffe39a; }
.bst-dots[hidden] { display: none !important; }
.bst-row.one { overflow-x: hidden; scroll-snap-type: none; }
/* v72 通用关闭钮 yc-x 已覆盖面板右上角：面板内部各自的 × 一律隐藏，避免两个叠在一起 */
.modal .panel:has(> .yc-x) .title-close { display: none !important; }
/* v72 修为榜大厅卡：境界小字不再被挤成竖条/省略，放不下就换行 */
.rkc-cult .rkc-top li .rkc-v { flex-wrap: wrap; row-gap: 0; overflow: visible; white-space: normal; }
.rkc-cult .rkc-v small { flex: none; white-space: nowrap; overflow: visible; text-overflow: clip; }

/* v73 马桥电影院·大厅海报墙 */
.cin-lobby{margin-top:10px;min-width:0;max-width:100%}
.cin-screen{position:relative;overflow:hidden;box-sizing:border-box;border-radius:16px;padding:12px 10px 12px;border:1px solid #6b5420;background:radial-gradient(120% 90% at 50% 0,#1a2818 0%,#0e120a 48%,#080805 100%);box-shadow:inset 0 0 28px rgba(0,0,0,.65),0 0 16px rgba(212,175,55,.18)}
.cin-curtain{position:absolute;inset:0 0 auto 0;height:26px;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(212,175,55,.42) 0 12px,rgba(26,40,28,.7) 12px 24px),linear-gradient(90deg,#2a2410,#0f1a14,#2a2410);border-bottom:2px solid #c9a24a;opacity:.85;z-index:0}
.cin-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:22px;min-width:0}
.cin-neon{margin:0;font-size:22px;letter-spacing:4px;color:#ffe9a8;text-shadow:0 0 4px #ffd36a,0 0 12px #ffb52e,0 0 26px #ff8a00;animation:cinNeon 3.2s ease-in-out infinite;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes cinNeon{0%,100%{opacity:1}48%{opacity:.82}50%{opacity:1}54%{opacity:.7}56%{opacity:1}}
.cin-static .cin-neon{animation:none}
.cin-enter{flex:none;border:1px solid #f1d27a;background:rgba(241,210,122,.12);color:#f1d27a;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
.cin-cnt{position:relative;z-index:1;margin:2px 0 6px;font-size:12px;color:#c9a97a;text-align:left}
.cin-rtabs{position:relative;z-index:1;display:flex;gap:6px;margin-bottom:8px}
.cin-rt{border:1px solid #6b5420;background:#12180f;color:#d9c486;border-radius:999px;padding:4px 14px;font-size:13px;cursor:pointer}
.cin-rt.on{background:linear-gradient(#f1d27a,#b8902f);color:#2a1d04;font-weight:700;border-color:#f1d27a}
.cin-reel{position:relative;z-index:1;display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scroll-snap-type:x proximity;padding:2px 2px 8px;scrollbar-width:thin;max-width:100%}
.cin-poster{flex:0 0 124px;width:124px;min-height:196px;box-sizing:border-box;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:8px;border:2px solid #c9a24a;background:linear-gradient(170deg,#1a2214,#0a0c08 70%);color:#f3e2b3;cursor:pointer;position:relative;text-align:center;font:inherit}
.cin-poster.pick{border-color:#7fe8d6;box-shadow:0 0 12px rgba(127,232,214,.35)}
.cp-badge{align-self:flex-start;font-size:10px;padding:1px 6px;border-radius:4px;background:#c9a24a;color:#2a1d04;font-weight:700}
.cp-pat{font-size:15px;font-weight:800;color:#ffe9a8;line-height:1.15;overflow-wrap:anywhere;max-width:100%}
.cp-tai{font-size:11px;color:#d9c486}.cp-tai b{font-size:22px;color:#ffd36a;margin-right:2px}
.cin-ph{display:flex;flex-wrap:wrap;justify-content:center;gap:1px;max-width:100%}
.cin-pt{width:15px;height:auto;display:block}.cin-pm{opacity:.85}
.cp-who{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:auto}
.cp-like{font-size:12px;color:#ff2d55}.cp-like i{font-style:normal;color:#ff2d55;margin-right:0}
.cin-more{justify-content:center;border-style:dashed;background:transparent}.cp-more{font-size:18px;color:#ffe9a8;line-height:1.4}.cin-more em{font-style:normal;font-size:30px;color:#f1d27a}
.cin-lobby .cin-none{margin:8px 0;font-size:13px;color:#c9a97a;white-space:normal;text-align:left}
#cin-lobby{overflow:hidden}

/* v73 星星村点火回放 */
.chd-rpb{display:block;width:100%;margin:10px 0 6px;padding:10px;border-radius:10px;border:1px solid #f1d27a;background:linear-gradient(#3a2a0a,#1c1405);color:#ffe9a8;font-size:15px;cursor:pointer}
.chd-rp{min-width:0}.chd-rp[hidden]{display:none}
.chrp-none{margin:6px 0;text-align:center;color:#c9a97a;font-size:13px}
.chrp{border:1px solid #6b5420;border-radius:10px;padding:8px;background:#0d0a05;min-width:0}
.chrp-sum{margin:0 0 6px;color:#ffd36a;font-weight:700;font-size:14px;text-align:center;overflow-wrap:anywhere}
.chrp-stage{display:flex;flex-direction:column;gap:6px;align-items:center;min-height:90px}
.chrp-hand,.chrp-melds,.chrp-fl{display:flex;flex-wrap:wrap;justify-content:center;gap:1px;max-width:100%}
.chrp-m{display:inline-flex;margin:0 4px;padding:1px;border-radius:4px;background:rgba(241,210,122,.12)}
.chrp-fl small{color:#c9a97a;font-size:11px;margin-right:4px;align-self:center}
.chrp-t{width:24px;height:auto;display:block}.chrp-t.sm{width:18px}
.chrp-line{margin:8px 0;text-align:center;color:#f3e2b3;font-size:14px;display:flex;align-items:center;justify-content:center;gap:4px;min-height:30px;flex-wrap:wrap}
.chrp-line b.me{color:#ffd36a}.chrp-line b.ot{color:#9fb4d8}
.chrp-bar{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
.chrp-bar button{border:1px solid #6b5420;background:#1a1408;color:#f1d27a;border-radius:8px;padding:6px 10px;font-size:13px;cursor:pointer}
.chrp-bar button:disabled{opacity:.4}.chrp-no{font-size:12px;color:#c9a97a;min-width:44px;text-align:center}
@media(max-width:420px){.chrp-t{width:21px}.chrp-t.sm{width:16px}.chrp-bar button{padding:6px 8px}}
#cin-lobby{flex:0 0 auto}.cin-lobby.hidden{display:none}

/* v73 海报：拆成「打开」与「赞」两个按钮，赞区域加大 */
.cin-poster{cursor:default;padding:6px 6px 6px}
.cp-open{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;flex:1;cursor:pointer;color:inherit;min-width:0}
.cp-open:focus-visible{outline:2px solid #f1d27a;border-radius:6px}
.cin-more{flex:0 0 124px;width:124px;min-height:196px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px;border-radius:8px;border:2px dashed #c9a24a;background:transparent;color:#f3e2b3;cursor:pointer;scroll-snap-align:start}
.lk-btn{position:relative;z-index:2;min-height:40px;min-width:44px;padding:4px 6px;border-radius:0;border:0;background:transparent;color:#ff2d55;font-size:13px;cursor:pointer;font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:3px;box-shadow:none;appearance:none;-webkit-appearance:none}
.lk-btn i{font-style:normal;color:#ff2d55;margin-right:0}
.lk-btn .hrt{font-size:20px;color:#ff2d55;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45));line-height:0}
.lk-btn.on{background:transparent;border:0}.lk-btn.on .hrt{color:#ff1744}.lk-btn b{color:#e8c766;font-weight:700}.lk-btn.on b{color:#ffb0c8}
.lk-btn.off:not(.on){opacity:.85}
.cin-poster .cp-like{margin-top:2px;width:100%}
.bst-likes.lk-btn{min-width:72px;padding:6px 14px}

/* v73 大厅布局：主玩法置顶、顶栏单行、规则移底部、间距收紧、金边高速流动 */
#splash .user-bar{flex-wrap:nowrap !important;gap:6px !important;min-width:0;width:100%;box-sizing:border-box;justify-content:flex-end;overflow:hidden}
#splash .user-bar #hello-name{flex:1 1 0;min-width:0;margin-right:0 !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
#splash .user-bar .hud-btn{flex:0 0 auto;white-space:nowrap}
@media (max-width:520px){#splash .user-bar{gap:4px !important}#splash .user-bar .hud-btn{padding:4px 6px !important;font-size:12px !important}}
@media (max-width:380px){#splash .user-bar{gap:3px !important}#splash .user-bar .hud-btn{padding:4px 5px !important;font-size:11.5px !important}}
@media (min-width:521px){#splash .user-bar{position:absolute !important;top:16px;right:18px;width:auto;max-width:calc(100% - 36px)}}
#splash.splash{gap:8px !important}
#splash .bless-wall,#splash .cin-lobby,#splash .hl-best,#splash .rk-cards,#splash .menu,#splash .wf-entry,#splash .ch-widget{margin-top:0 !important;margin-bottom:0 !important}
#splash .cin-lobby,#splash .bless-wall,#splash .hl-best{width:min(560px,100%) !important;max-width:560px;box-sizing:border-box;margin-left:auto !important;margin-right:auto !important}
#splash .menu-main{margin-top:2px !important}
#splash .menu-main > .btn{min-height:66px !important;font-size:20px !important}
.lobby-foot{display:flex;justify-content:center;margin-top:6px}
.lobby-foot .hud-btn{padding:6px 28px;font-size:13px;opacity:.85}
/* 金边：一圈 ≈2.4s，亮度+光晕加强（受特效开关 body.fx-lobby 控制） */
#btn-online{position:relative;isolation:isolate}
#btn-online::after{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;pointer-events:none;z-index:2;background:linear-gradient(135deg,#f1d27a,#b8862b 40%,#f1d27a 70%,#b8862b);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:.7}
@keyframes soloSpin2{to{--soloAng:360deg}}
@keyframes soloGlow2{0%,100%{box-shadow:0 0 8px rgba(241,210,122,.3),inset 0 0 6px rgba(241,210,122,.12)}50%{box-shadow:0 0 22px rgba(255,226,140,.8),0 0 40px rgba(241,210,122,.35),inset 0 0 12px rgba(241,210,122,.25)}}
@keyframes soloGlowM2{0%,100%{box-shadow:0 0 6px rgba(241,210,122,.25)}50%{box-shadow:0 0 15px rgba(255,226,140,.65)}}
body.fx-lobby #btn-solo::after,body.fx-lobby #btn-online::after{border-radius:inherit;background:conic-gradient(from var(--soloAng),rgba(184,134,43,.25) 0,#fffbe0 7%,#ffd36a 14%,rgba(184,134,43,.25) 30%,rgba(184,134,43,.25) 50%,#fffbe0 57%,#ffd36a 64%,rgba(184,134,43,.25) 80%);opacity:1;animation:soloSpin2 2.4s linear infinite;filter:drop-shadow(0 0 4px rgba(255,226,140,.9))}
body.fx-lobby #btn-solo,body.fx-lobby #btn-online{animation:soloGlow2 1.6s ease-in-out infinite}
@media (max-width:520px){body.fx-lobby #btn-solo::after,body.fx-lobby #btn-online::after{animation-duration:3.2s;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,226,140,.8))}body.fx-lobby #btn-solo,body.fx-lobby #btn-online{animation-name:soloGlowM2}}
@media (prefers-reduced-motion:reduce){body.fx-lobby #btn-solo,body.fx-lobby #btn-online,body.fx-lobby #btn-solo::after,body.fx-lobby #btn-online::after{animation:none}}
#splash.splash > *{flex-shrink:0}
#splash .user-bar{overflow:visible !important}

/* v73 碧江广场 */
.rs-book{min-width:0;max-width:100%;box-sizing:border-box;overflow-x:hidden}
.rs-h{margin:0;text-align:center;color:#ffd36a;letter-spacing:4px}.rs-subt{margin:2px 0;text-align:center;color:#c9a97a;font-size:12px}.rs-rule{margin:2px 0 8px;text-align:center;color:#9aa;font-size:12px}
.rs-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.rs-tab{border:1px solid #6b5420;background:#1a1408;color:#d9c486;border-radius:999px;padding:5px 14px;font-size:13px;cursor:pointer}.rs-tab.on{background:linear-gradient(#f1d27a,#b8902f);color:#2a1d04;font-weight:700}
.rs-new{margin-left:auto;border:1px solid #ff9acb;background:rgba(255,154,203,.12);color:#ffc4de;border-radius:999px;padding:5px 14px;font-size:13px;cursor:pointer}
.rs-list{display:flex;flex-direction:column;gap:10px;min-width:0}
.rs-card{border:1px solid #5a4620;border-radius:12px;padding:10px;background:linear-gradient(160deg,#1b1424,#0c0810);min-width:0}
.rs-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rs-top em{margin-left:auto;font-style:normal;font-size:11px;color:#8a8a8a}
.rs-tag{padding:1px 8px;border-radius:999px;background:#8a2a2a;color:#ffe0e0;font-size:12px}.rs-nm{color:#f3e2b3;font-size:13px;overflow-wrap:anywhere}
.rs-text{margin:6px 0;color:#fff2d0;font-size:15px;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;text-align:left}
.rs-sum{margin:4px 0}.rs-res{display:inline-block;font-size:12px;padding:1px 8px;border-radius:6px;background:#2a2a3a;color:#c9d2ff;margin-bottom:4px}
.rs-tiles{display:flex;flex-wrap:wrap;gap:1px;max-width:100%}.rs-m{display:inline-flex;margin-right:4px}.rs-t{width:20px;height:auto;display:block}
.rs-rxs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.rs-rx{min-height:38px;min-width:76px;padding:6px 12px;border-radius:999px;border:1px solid #6b5420;background:rgba(241,210,122,.08);color:#f1d27a;font-size:13px;cursor:pointer;font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.rs-rx i{font-style:normal;margin-right:2px}.rs-rx.on{background:rgba(255,154,203,.2);border-color:#ff9acb;color:#ffc4de}.rs-rx.off:not(.on){opacity:.55}
.rs-over{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
.rs-form{position:relative;width:min(420px,100%);max-height:92vh;overflow:auto;box-sizing:border-box;background:#14100a;border:1px solid #c9a24a;border-radius:14px;padding:14px;color:#f3e2b3}
.rs-form h4{margin:0 0 8px;color:#ffd36a}.rs-x{position:absolute;right:8px;top:6px;border:0;background:none;color:#f1d27a;font-size:24px;cursor:pointer;min-width:40px;min-height:40px}
.rs-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.rs-tg{border:1px solid #6b5420;background:#1a1408;color:#d9c486;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.rs-tg.on{background:#8a2a2a;border-color:#ff9a9a;color:#fff}
#rs-txt{width:100%;box-sizing:border-box;background:#0b0905;color:#fff2d0;border:1px solid #6b5420;border-radius:8px;padding:8px;font-size:15px;font-family:inherit;resize:none}
.rs-cnt{text-align:right;font-size:12px;color:#c9a97a}.rs-chk{display:block;margin:6px 0;font-size:13px}.rs-hint{font-size:12px;color:#9a9a8a;margin:6px 0}
.rs-act{display:flex;gap:8px;justify-content:flex-end}.rs-err{color:#ff8a8a;font-size:13px;min-height:18px;margin:4px 0 0}
@media(max-width:420px){.rs-t{width:18px}}

/* ===== v74 统一「影院霓虹」标题语言（金/红/橙三色主题）；动画受特效开关 body.fx-lobby 控制 ===== */
.yc-neon{letter-spacing:.16em;font-weight:800;margin:0;text-shadow:0 0 3px var(--nc1),0 0 10px var(--nc2),0 0 22px var(--nc3)}
.yc-neon-gold{--nc1:#ffd36a;--nc2:#ffb52e;--nc3:#ff8a00;color:#ffe9a8 !important}
.yc-neon-roast{--nc1:#ff9acb;--nc2:#ff4f8b;--nc3:#c4123f;color:#ffd6e6 !important}
.yc-neon-fire{--nc1:#ffb15c;--nc2:#ff6a1a;--nc3:#d62a00;color:#ffe3c2 !important}
body.fx-lobby .yc-neon{animation:ycNeon 3.2s ease-in-out infinite}
body.fx-lobby .yc-neon-roast{animation-duration:3.8s}body.fx-lobby .yc-neon-fire{animation-duration:2.6s}
@keyframes ycNeon{0%,100%{opacity:1}48%{opacity:.84}50%{opacity:1}54%{opacity:.72}56%{opacity:1}}
@media (prefers-reduced-motion:reduce){body.fx-lobby .yc-neon{animation:none}}
.hlb-head b.yc-neon{font-size:19px}.chw-head b.yc-neon{font-size:16px}
.pk-hero h3.yc-neon{font-size:22px}
/* 每日最佳：金色深色影院边框，与马桥电影院同源 */
.hl-best{border-color:#c9a24a !important}
.rs-lobby{width:min(560px,100%);max-width:560px;margin:0 auto !important;box-sizing:border-box;flex:0 0 auto;min-width:0}
.rs-lobby.hidden{display:none}
.rs-lob{box-sizing:border-box;border-radius:16px;padding:12px 10px;border:1px solid #7a1c3c;background:radial-gradient(120% 90% at 50% 0,#3a0a24 0,#1a0510 55%,#0b0206 100%);box-shadow:inset 0 0 30px rgba(0,0,0,.7),0 0 18px rgba(196,18,63,.3);min-width:0;overflow:hidden}
.rs-lob-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rs-lob-head h4{font-size:22px}
.rs-lob-new{flex:none;border:1px solid #ff9acb;background:rgba(255,154,203,.12);color:#ffd6e6;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
.rs-lob-sub{margin:2px 0 6px;font-size:12px;color:#d9a6bd}
.rs-lob-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.rs-lob-list .rs-card{margin:0}
.rs-lob-all{display:block;width:100%;margin-top:8px;min-height:40px;border:1px solid #ff9acb;background:rgba(255,154,203,.1);color:#ffd6e6;border-radius:10px;font-size:14px;cursor:pointer}
/* 全屏战报（每日最佳 / 马桥电影院详情） */
.share-overlay.sc-full{padding:0;overflow:hidden;align-items:stretch;justify-content:stretch;background:#080503}
.sc-full::before{content:"";position:absolute;inset:-20px;background:var(--scbg,none) center/cover no-repeat;filter:blur(28px) brightness(.4);pointer-events:none}
.sc-full .share-box.sc3-box{position:relative;max-width:none;width:100%;height:100dvh;margin:0;box-sizing:border-box;display:flex;flex-direction:column;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.sc-full .sc-x{position:absolute;right:10px;top:10px;z-index:5}
.sc-full .sc3-styles{margin:0 52px 8px 0;flex:0 0 auto}
.sc-full .sc3-img{flex:1 1 auto;min-height:0;width:100%;max-height:none;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:0}
.sc-full .sc3-img img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.sc-full .sc-hint{flex:0 0 auto;margin:6px 0 4px;font-size:13px;text-align:center}
.sc-full .sc3-btns{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
@media (max-height:760px){.sc-full .sc3-img{max-height:none}}

/* ===== v75 星星村点火详情：固定全屏遮罩（不再随长弹窗滚到屏外）；大厅榜行同款卡片（紧凑） ===== */
.ch-detail{position:fixed !important;inset:0;z-index:420 !important;overflow:auto}
.chd-card{max-height:min(88dvh,680px)}
.ch-rank.chw-rank{max-height:none;overflow:visible;gap:6px;padding:2px 0 4px}
.chw-rank .ch-row{padding:8px 10px 8px 8px;gap:8px;grid-template-columns:36px minmax(0,1fr) 14px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,214,102,.25)}
.chw-rank .ch-no i{width:30px;height:30px;font-size:14px}.chw-rank .ch-row.top1 .ch-no i{width:34px;height:34px;font-size:15px}
.chw-rank .ch-body{gap:2px}.chw-rank .ch-sc b{font-size:16px}.chw-rank .ch-l3{font-size:11px;gap:2px 8px}
.chw-rank .ch-tt{padding:1px 7px;border-radius:999px;background:rgba(212,175,55,.18);border:1px solid rgba(212,175,55,.55);color:#ffe08a;font-weight:700}
.ch-rank .ch-row .ch-tt{padding:1px 7px;border-radius:999px;background:rgba(212,175,55,.18);border:1px solid rgba(212,175,55,.55);color:#ffe08a;font-weight:700}

/* ===== v75 两个入口边带差异化：闭关修炼=金紫、顺时针、较慢；闯荡江湖=青红、逆时针、较快（均受特效开关 body.fx-lobby 控制） ===== */
#btn-solo::after{background:linear-gradient(135deg,#f1d27a,#8a4fd0 45%,#f1d27a 75%,#6b3aa8);opacity:.75}
#btn-online::after{background:linear-gradient(135deg,#3fe0e0,#e0405a 45%,#3fe0e0 75%,#b02840);opacity:.75}
@keyframes soloSpinCW{to{--soloAng:360deg}}
@keyframes soloSpinCCW{from{--soloAng:360deg}to{--soloAng:0deg}}
@keyframes glowGoldViolet{0%,100%{box-shadow:0 0 8px rgba(241,210,122,.3),0 0 14px rgba(138,79,208,.25)}50%{box-shadow:0 0 20px rgba(255,226,140,.75),0 0 38px rgba(138,79,208,.55)}}
@keyframes glowCyanRed{0%,100%{box-shadow:0 0 8px rgba(63,224,224,.3),0 0 14px rgba(224,64,90,.25)}50%{box-shadow:0 0 20px rgba(80,240,240,.75),0 0 38px rgba(224,64,90,.55)}}
@keyframes glowGoldVioletM{0%,100%{box-shadow:0 0 5px rgba(241,210,122,.25)}50%{box-shadow:0 0 13px rgba(150,95,220,.6)}}
@keyframes glowCyanRedM{0%,100%{box-shadow:0 0 5px rgba(63,224,224,.25)}50%{box-shadow:0 0 13px rgba(224,64,90,.6)}}
body.fx-lobby #btn-solo::after{background:conic-gradient(from var(--soloAng),rgba(106,58,168,.3) 0,#fff0b0 8%,#f1d27a 15%,rgba(138,79,208,.9) 30%,rgba(106,58,168,.3) 50%,#fff0b0 58%,#b98cff 70%,rgba(106,58,168,.3) 85%);opacity:1;animation:soloSpinCW 2.8s linear infinite;filter:drop-shadow(0 0 4px rgba(170,120,255,.85))}
body.fx-lobby #btn-online::after{background:conic-gradient(from var(--soloAng),rgba(176,40,64,.3) 0,#c8ffff 8%,#3fe0e0 15%,rgba(224,64,90,.95) 30%,rgba(176,40,64,.3) 50%,#c8ffff 58%,#ff7a8c 70%,rgba(176,40,64,.3) 85%);opacity:1;animation:soloSpinCCW 1.9s linear infinite;filter:drop-shadow(0 0 4px rgba(80,240,240,.85))}
body.fx-lobby #btn-solo{animation:glowGoldViolet 2.4s ease-in-out infinite}
body.fx-lobby #btn-online{animation:glowCyanRed 1.4s ease-in-out infinite}
@media (max-width:520px){body.fx-lobby #btn-solo::after{animation-duration:3.6s}body.fx-lobby #btn-online::after{animation-duration:2.6s}body.fx-lobby #btn-solo{animation-name:glowGoldVioletM}body.fx-lobby #btn-online{animation-name:glowCyanRedM}}
@media (prefers-reduced-motion:reduce){body.fx-lobby #btn-solo,body.fx-lobby #btn-online,body.fx-lobby #btn-solo::after,body.fx-lobby #btn-online::after{animation:none}}

/* ===== v75 每日最佳 / 马桥电影院：牌面放大 + 一行紧凑 + 境界徽章 + 台数只一处 ===== */
.cin-grid{display:grid;grid-template-columns:repeat(var(--c,7),minmax(0,1fr));gap:2px;width:100%;box-sizing:border-box}
.cin-grid img{width:100%;height:auto;max-width:64px;justify-self:center;display:block}
.cin-grid .cg-m{filter:brightness(.88)}
.rm-badge{flex:none;display:inline-block;padding:1px 9px;border-radius:999px;background:linear-gradient(#ffe9a0,#d4a017);color:#3a2600;font-weight:800;font-size:12px;line-height:1.5;border:1px solid #ffe9a0;box-shadow:0 0 8px rgba(255,200,80,.45);white-space:nowrap;max-width:7.5em;overflow:hidden;text-overflow:ellipsis}
.tai-pill{flex:none;display:inline-flex;align-items:baseline;gap:1px;white-space:nowrap;padding:0 10px;border-radius:999px;background:rgba(241,210,122,.14);border:1px solid #f1d27a;color:#ffd36a;font-size:12px;font-weight:700}
.tai-pill b{font-size:18px;font-weight:800;color:#fff1b0;text-shadow:0 0 6px rgba(255,200,80,.6)}
.tai-pill.big{font-size:16px;padding:0 14px}.tai-pill.big b{font-size:30px}
/* 每日最佳卡片 */
.bst-card{padding:8px 8px 6px}
.bst-top{flex-wrap:nowrap;gap:8px;margin-bottom:4px;min-width:0}
.bst-top .cin-pat{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:20px;font-weight:800;color:#ffe9a8;text-shadow:0 0 8px rgba(255,180,50,.55)}
.bst-open{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}
.bst-who{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;margin-top:4px;font-size:12px;color:#d9c486}
.bst-who .bw-nm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f3e0a6;font-size:14px}
.bst-who em{flex:none;font-style:normal;white-space:nowrap}.bst-who .cin-tag{flex:none;white-space:nowrap}
.bst-who .bst-likes.lk-btn{flex:none;min-width:58px;padding:4px 10px}
/* 海报墙 */
.cin-poster{flex:0 0 190px;width:190px;min-height:0;gap:3px;padding:7px 6px}
.cp-row1{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;flex-wrap:nowrap}
.cp-pat{font-size:18px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-shadow:0 0 8px rgba(255,180,50,.5)}
.cp-who{display:flex;align-items:center;gap:5px;width:100%;min-width:0;flex-wrap:nowrap;margin-top:2px}
.cp-who b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;text-align:left}
.cp-open{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
/* 电影院列表卡 */
.cin-top{flex-wrap:nowrap;min-width:0}.cin-top .cin-pat{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:19px;font-weight:800}
.cin-who{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden}.cin-who b{overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.cin-who span{flex:none}
.cin-open{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}
/* 全屏战报 */
.cin-rep{position:fixed;inset:0;z-index:390;display:flex;align-items:center;justify-content:center;padding:calc(10px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom));box-sizing:border-box;background:radial-gradient(120% 90% at 50% 0,#1a2818 0%,#0e120a 48%,#080805 100%);overflow:auto}
.cin-rep-x{position:absolute;right:10px;top:calc(8px + env(safe-area-inset-top));z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid rgba(212,175,55,.7);background:#3a0f12;color:#ffe6c0;font-size:24px;cursor:pointer}
.cin-rep-in{width:min(100%,760px);display:flex;flex-direction:column;gap:14px;align-items:stretch;min-width:0}
.cr-head{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:nowrap;min-width:0;padding:0 46px}
.cr-pat{font-size:clamp(26px,7vw,44px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cr-g{gap:4px}.cr-g img{max-width:110px}
.cr-who{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;min-width:0;white-space:nowrap;color:#d9c486;font-size:14px}
.cr-who .cr-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#f3e0a6;font-size:20px}
.cr-who em{font-style:normal;flex:none}.cr-who .cin-tag{flex:none}
.cr-act{display:flex;justify-content:center;gap:12px}
.cr-poster{min-height:48px;min-width:120px;padding:8px 22px;border-radius:12px;border:1px solid #f1d27a;background:rgba(241,210,122,.12);color:#ffe9a8;font-size:16px;cursor:pointer}
.cr-like.lk-btn{min-height:48px;min-width:56px;padding:6px 10px;border:0;border-radius:0;background:transparent;font-size:16px}
.cr-like.lk-btn .hrt{font-size:26px}.cr-like.lk-btn.on{background:transparent;border:0}
.cr-like.lk-btn.off:not(.on){opacity:.85}
.cin-static .cr-pat{animation:none}

/* v78 吃什么牌不能打什么牌：被禁牌灰显 */
.tile.chi-banned{opacity:.38;filter:grayscale(.9);cursor:not-allowed;position:relative}
.tile.chi-banned::after{content:"禁";position:absolute;right:2px;top:2px;font-size:10px;line-height:1;background:#7a1f1f;color:#fff;border-radius:3px;padding:1px 2px}

/* v78 设置面板可滚动 + 清晰关闭按钮（手机竖屏小屏） */
#pop36.pop36-layer { overflow: hidden; padding: 12px; box-sizing: border-box; }
#pop36 .pop36 { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; touch-action: pan-y; box-sizing: border-box; }
#pop36 .pop36-x { position: sticky; top: 0; float: right; z-index: 3; width: 38px; height: 38px; margin: -8px -10px 0 0; border-radius: 50%; border: 1px solid #d9b45a; background: rgba(40,30,10,.95); color: #ffe08a; font-size: 18px; line-height: 1; cursor: pointer; padding: 0; }
#pop36 .pop36-close { padding: 6px 0 4px; }

/* v79 大厅左上角：名字 + 通宝两行，总高 = 境界图 56px */
#hello-name { align-items: center; gap: 8px; }
#hello-name .hello-txt { display: flex; flex-direction: column; justify-content: space-between; height: 56px; min-width: 0; flex: 1 1 auto; overflow: hidden; padding: 4px 0; box-sizing: border-box; }
#hello-name .hello-nm { display: block; font-size: 17px; line-height: 22px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#hello-name .hello-tok { display: block; font-style: normal; font-size: 13px; line-height: 18px; color: #ffe08a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#hello-name .hello-logo { flex: 0 0 56px; }

/* v79 关闭按钮不占文档流：去掉 float（float 会让相邻的 flex/grid/overflow 块被挤窄），改为 sticky + 负下边距，净占高 0、不改宽 */
.modal .panel > .yc-x { float: none !important; position: sticky; top: 6px; display: flex; margin: -4px -4px -36px auto !important; align-self: flex-end; }
#modal-body.settle36 .s36-x { float: none !important; margin: -10px -14px -30px auto !important; }
@media (max-width: 600px) { #modal-body.settle36 .s36-x { margin: -10px -6px -30px auto !important; } }
#pop36 .pop36-x { float: none !important; display: flex; align-items: center; justify-content: center; margin: -8px -10px -30px auto !important; }

/* v79 吐槽 → 那局结算（只读） */
.rs-card { cursor: pointer; }
.rs-card.rs-has:hover { border-color: #e8c766; }
.rs-foot { margin-top: 6px; font-size: 12px; color: #bfb38c; }
.rs-card.rs-has .rs-sethint { color: #ffe08a; }
.rs-set .rs-setbox { width: min(94vw, 460px); max-height: calc(100dvh - 24px); overflow-y: auto; position: relative; text-align: left; }
.rs-setsub { margin: 2px 0 8px; font-size: 12px; color: #bfb38c; }
.rs-sethead { font: 700 20px/1.3 "Noto Serif SC", serif; color: #ffe08a; margin: 6px 0; }
.rs-settotal { font-size: 15px; margin-bottom: 8px; } .rs-settotal b { color: #ffd23a; font-size: 20px; }
.rs-setcols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rs-set h5 { margin: 10px 0 4px; font-size: 13px; color: #e8c766; }
.rs-sl { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 2px 0; border-bottom: 1px dashed rgba(232,199,102,.2); }
.rs-sl .up { color: #7be07b; } .rs-sl .dn { color: #ff8a7a; }
.rs-setchips { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 14px; }
.rs-set .rs-tiles { display: flex; flex-wrap: wrap; gap: 2px; align-items: flex-end; }
.rs-set .rs-t { width: 26px; height: auto; }

/* v79 电影院：自费送入的展示左上角加「自费」 */
.cin-self { position: absolute; left: 0; top: 0; z-index: 4; font-style: normal; font-size: 11px; line-height: 1; padding: 3px 7px; border-radius: 8px 0 8px 0; background: linear-gradient(135deg,#ffb347,#ff7a18); color: #3a1500; font-weight: 700; pointer-events: none; }
.cin-poster, .cin-card, .bst-card, .cin-rep-in { position: relative; }

/* v79 星星村点火：入口与榜单合并为同一张卡 */
.ch-widget.ch-merged { display: block; }
.ch-widget.ch-merged > .btn-challenge { width: 100%; margin: 0 0 8px; box-sizing: border-box; }
.ch-widget.ch-merged .ch-board:empty { display: none; }

/* v81 A 结算界面：我的筹码行 / 胡牌绿·出冲粉红 / 牌面放大 */
.settle-chips { text-align: center; margin: 2px 0 4px; font-size: 18px; font-weight: 700; color: #d9c48a; letter-spacing: .04em; }
.settle-chips b { font-size: 24px; }
.settle-chips small { font-size: 12px; font-weight: 400; opacity: .8; }
.settle-chips.up b { color: #3dff7a; text-shadow: 0 0 10px rgba(61,255,122,.4); }
.settle-chips.down b { color: #ff7a8a; }
.pay-hu { color: #3dff7a; font-weight: 800; text-shadow: 0 0 8px rgba(61,255,122,.35); }
.pay-chong { color: #ff7eb6; font-weight: 800; text-shadow: 0 0 8px rgba(255,126,182,.35); }
.win-spread .tile.small { --w: 48px; --h: 67px; }
#modal-body.settle36 .s36-g .tile { width: 56px !important; height: 80px !important; --w: 56px; --h: 80px; }
#modal-body.settle36 .s36-win .tile { width: 66px !important; height: 94px !important; --w: 66px; --h: 94px; }
#modal-body.settle36 .s36-fl .tile { width: 34px !important; height: 48px !important; }
@media (max-width: 600px) {
  .win-spread .tile.small { --w: 30px; --h: 42px; }
  #modal-body.settle36 .s36-g .tile { width: 29px !important; height: 41px !important; --w: 29px; --h: 41px; }
  #modal-body.settle36 .s36-win .tile { width: 36px !important; height: 51px !important; --w: 36px; --h: 51px; }
  #modal-body.settle36 .s36-fl .tile { width: 26px !important; height: 37px !important; }
  .settle-chips { font-size: 16px; } .settle-chips b { font-size: 21px; }
}

/* v81 D 令牌提示：右下角两个按钮（自动胡牌令 / 展开折叠）+ 水平提示条放在牌河底边与吃碰杠按钮行之间的空带，绝不盖牌河 */
.sm-tools { position: fixed !important; right: 6px !important; left: auto !important; top: auto !important; max-width: 70vw !important; z-index: 61; display: flex; flex-direction: row-reverse; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px; pointer-events: none; }
.sm-tools > * { pointer-events: auto; }
.sm-fold-h { border: 1px solid rgba(255,190,110,.6); border-radius: 999px; background: rgba(20,12,5,.92); color: #ffd9a0; font: 700 12px "Noto Serif SC", serif; padding: 7px 12px; cursor: pointer; letter-spacing: .06em; white-space: nowrap; }
.sm-strip { position: fixed; left: 8px; right: 8px; z-index: 59; display: flex; flex-direction: row; gap: 8px; align-items: stretch; overflow: auto; overscroll-behavior: contain; padding: 2px; pointer-events: auto; }
.sm-strip.hidden { display: none; }
.sm-strip .sm-panel { display: flex; flex-direction: row; align-items: center; gap: 6px; flex: 0 0 auto; margin: 0; padding: 4px 8px; opacity: .96; }
.sm-strip .sm-ptitle { writing-mode: horizontal-tb; white-space: nowrap; font-size: 11px; margin: 0 4px 0 0; }
.sm-strip .sm-row { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; padding: 2px 6px; border: 1px solid rgba(255,190,110,.25); border-radius: 8px; font-size: 11px; white-space: nowrap; }
.sm-strip .sm-tip { display: none; }
@media (min-width: 721px) { .sm-strip { left: 220px; right: 220px; } }

/* v81 牌桌左上信息：第一行局数/余牌，第二行通宝 */
#table-screen.t36 .info36 .i36r { display: flex; gap: 18px; white-space: nowrap; }
#table-screen.t36 .info36 .tok36 { color: #ffd76a; font-weight: 600; }
#table-screen.t36.m36 .info36 .i36r { gap: 10px; }
#table-screen.t36.m36 .info36 { font-size: 12px; }

/* v81 PC：花牌放大（仅 PC；手机 m36 保持原样） */
@media (min-width: 901px) {
  #table-screen.t36:not(.m36) .z8 { font-size: 16px; gap: 5px; padding-bottom: 16px; }
  #table-screen.t36:not(.m36) .fl36 { width: 34px !important; height: 48px !important; --w: 34px; --h: 48px; }
  #table-screen.t36:not(.m36) .z8 .fl-lab { font-size: 17px; font-weight: 600; color: #f3e0a6; }
  #table-screen.t36:not(.m36) #seat-south .z8 { translate: 0 -18px; }
  #table-screen.t36:not(.m36) #seat-north .z8 { translate: 0 26px; }
  #table-screen.t36:not(.m36) #seat-east .z8, #table-screen.t36:not(.m36) #seat-west .z8 { translate: 0 6px; }
  #table-screen.t36:not(.m36) .tile .swt { font-size: 12px; line-height: 14px; bottom: -17px; }
}

/* v81 点火榜预览行：胡牌场面直接显示 */
.ch-row .chs-wrap { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; width: 100%; min-width: 0; }
.ch-row .chs-tiles { display: flex; flex-wrap: nowrap; align-items: flex-end; gap: 4px; width: 100%; min-width: 0; }
.ch-row .chs-h, .ch-row .chs-m { display: flex; flex-wrap: nowrap; min-width: 0; gap: 1px; }
.ch-row .chs-h { flex: 1 1 0; }
.ch-row .chs-m { flex: 0 1 auto; }
.ch-row .chs-w { flex: 0 0 auto; display: flex; margin-left: 4px; }
.ch-row .chs-t { flex: 1 1 0; min-width: 0; width: auto; max-width: 34px; aspect-ratio: 52 / 74; height: auto; object-fit: contain; display: block; }
.ch-row .chs-w .chs-t, .ch-row .chs-m .chs-t { flex: 0 0 auto; width: clamp(14px, 4.6vw, 30px); max-width: 30px; }
.ch-row .chs-t.win { outline: 2px solid #ffd76a; border-radius: 3px; }
.ch-row .chs-info { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 12px; color: #d9c48a; }
.ch-row .chs-info b { color: #ffe08a; font-weight: 600; } .ch-row .chs-info em { font-style: normal; }
.ch-row .chs-none { font-size: 11px; color: #8f7a4f; }
.ch-row .chs-rp { align-self: flex-start; flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #d4af37; background: rgba(0,0,0,.4); color: #ffd76a; font-size: 12px; cursor: pointer; padding: 0; }
.ch-row { cursor: default; }
.ch-row .ch-body { min-width: 0; flex: 1 1 auto; }

/* v82 暂停令遮罩 */
#pause-mask { position: absolute; inset: 0; z-index: 90; background: rgba(0,0,0,.72); display: grid; place-items: center; }
#pause-mask .pm-box { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 22px 30px; border: 2px solid #d9b45a; border-radius: 16px; background: rgba(18,24,20,.95); color: #f3e0a6; }
#pause-mask .pm-box b { font: 400 34px "Ma Shan Zheng", "Noto Serif SC", serif; }
#pause-mask .pm-box span { font-size: 14px; color: #cbb58a; }
#pause-mask .pm-box button { padding: 10px 34px; border-radius: 24px; border: 2px solid #d9b45a; background: #1d3b2b; color: #fff3cf; font-size: 20px; cursor: pointer; }
/* v82 暂停令按钮：固定在牌桌左上（通宝行下方），手机/PC 都在屏内，不挤 HUD 条 */
#btn-pause { position: fixed !important; left: 14px; top: 60px; z-index: 62; padding: 4px 10px; font-size: 13px; background: rgba(0,0,0,.55); border: 1px solid #d9b45a; border-radius: 14px; color: #ffe08a; }
#btn-pause.hidden { display: none !important; }

/* v83 点火榜胡牌预览：趣味文字 + 未胡/无牌面兜底 */
.ch-row .chs-quip { color: #ffcf6b; font-style: normal; }
.ch-row .chs-wt { color: #ffe9a8; font-style: normal; }
.ch-row .chs-pat { background: rgba(212,175,55,.18); border: 1px solid rgba(212,175,55,.5); border-radius: 8px; padding: 0 6px; }
.ch-row .chs-missrow .chs-tiles { opacity: .72; filter: saturate(.7); }
.ch-row .chs-text { margin-top: 4px; padding: 3px 6px; border-radius: 8px; background: rgba(0,0,0,.25); border: 1px dashed rgba(212,175,55,.35); }
.ch-row .chs-old { color: #8f7a4f; font-size: 11px; }

/* v83b 吐槽卡片内的本人牌面（不溢出：容器内收缩，手机竖屏/PC 都不横向滚动） */
.rs-card .rs-mine{min-width:0;max-width:100%;margin-top:4px}
.rs-card .rs-tiles{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:3px;width:100%;min-width:0}
.rs-card .rs-h{display:flex;flex:1 1 0;min-width:0;gap:1px}
.rs-card .rs-h .rs-t{flex:1 1 0;min-width:0;width:auto;max-width:26px;aspect-ratio:52/74;object-fit:contain}
.rs-card .rs-m,.rs-card .rs-w{display:inline-flex;flex:0 1 auto;min-width:0;margin-right:0}
.rs-card .rs-m .rs-t,.rs-card .rs-w .rs-t{flex:0 1 auto;width:clamp(12px,3.8vw,22px);max-width:22px;aspect-ratio:52/74;object-fit:contain}
.rs-card .rs-t.win{outline:2px solid #ffd76a;border-radius:3px}
.rs-card .rs-fl{opacity:.9}.rs-card .rs-flc{font-size:11px;color:#ffd1e0;font-style:normal;white-space:nowrap}

/* v20261017c 友好村祝福：多行错开滚动（更慢），不溢出 */
.bless-wall .bl-marq { display: flex; flex-direction: column; justify-content: center; gap: 4px; white-space: normal; }
.bless-wall .bl-row { overflow: hidden; white-space: nowrap; max-width: 100%; line-height: 1.5; }
.bless-wall .bl-track { display: inline-block; white-space: nowrap; }
.bless-wall.bl-static .bl-track { animation: none; }
.bless-wall.bl-static .bl-row { overflow: hidden; text-overflow: ellipsis; }
@media (prefers-reduced-motion: reduce) { .bless-wall .bl-track { animation: none; } }

/* v20261017d 电影院评论：列表只显示小图标+条数；详情评论区在牌面下方，输入框贴底 */
.cm-ic{display:inline-flex;align-items:center;gap:3px;flex:none;min-height:28px;padding:2px 6px;border:0;background:transparent;color:#d9c486;font-size:12px;cursor:pointer;font-family:inherit;touch-action:manipulation}
.cm-ic b{font-weight:600}.cm-ic svg{display:block}
.cin-act .cm-ic{min-height:44px;font-size:14px}
.bst-who .cm-ic{padding:2px 4px}
.cin-rep{flex-direction:column;align-items:center;justify-content:flex-start}.cin-rep-in{margin:auto 0;flex:none;width:min(100%,760px)}.cin-rep .cm-bar{flex:none;margin-top:auto}
.cm-box{width:100%;box-sizing:border-box;border-top:1px solid rgba(241,210,122,.25);padding-top:10px}
.cm-h{margin:0 0 6px;font-size:15px;color:#f1d27a}.cm-h em{font-style:normal;color:#d9c486;font-size:13px}
.cm-it{padding:6px 0;border-bottom:1px solid rgba(241,210,122,.1);font-size:14px;line-height:1.5;color:#f3e6c0;word-break:break-all}
.cm-nm{color:#f1d27a;margin-right:8px;font-weight:600}
.cm-none{margin:6px 0;color:#bda86a;font-size:13px}
.cm-all{margin-top:6px;min-height:40px;width:100%;border-radius:10px;border:1px solid #8a6a2a;background:rgba(241,210,122,.1);color:#f1d27a;font-size:14px;cursor:pointer}
.cm-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:8px;width:min(100%,760px);box-sizing:border-box;margin:10px auto 0;padding:8px 0 4px;background:linear-gradient(transparent,#0b0204 28%)}
.cm-in{flex:1 1 auto;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;border-radius:10px;border:1px solid #8a6a2a;background:#1a0f0a;color:#fff3cf;font-size:16px}
.cm-cnt{flex:none;font-size:11px;color:#bda86a}
.cm-send{flex:none;min-height:44px;min-width:64px;border-radius:10px;border:1px solid #f1d27a;background:linear-gradient(#f1d27a,#b8902f);color:#2a1d04;font-size:15px;cursor:pointer}

/* v20261017e 碧江广场卡片紧凑化：头部合并（标签/昵称/结果/时间同一行）、底部表情+结算提示同一行、手牌放大并自适应 */
.rs-card{padding:6px 8px}
.rs-card .rs-top{flex-wrap:nowrap;gap:5px;min-width:0}
.rs-card .rs-top .rs-nm{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.rs-card .rs-top .rs-tag,.rs-card .rs-top .rs-res,.rs-card .rs-top em{flex:none;white-space:nowrap}
.rs-card .rs-top .rs-res{margin:0;font-size:11px;padding:0 6px;line-height:18px}
.rs-card .rs-top .rs-tag{font-size:11px;padding:0 7px;line-height:18px}
.rs-card .rs-top em{margin-left:0;font-size:11px}
.rs-card .rs-text{margin:3px 0;font-size:14px;line-height:1.35}
.rs-card .rs-sum{margin:2px 0}
.rs-card .rs-mine{margin-top:2px}
.rs-card .rs-mine{container-type:inline-size}
.rs-card .rs-tiles{gap:4px;--tw:min(44px,calc((100cqw - var(--g,1)*4px - 2px) / var(--n,14)))}
.rs-card .rs-h{gap:0;flex:0 0 auto}
.rs-card .rs-h .rs-t,.rs-card .rs-m .rs-t,.rs-card .rs-w .rs-t{width:var(--tw);max-width:none;min-width:0;flex:0 0 auto;height:auto}
.rs-card .rs-m,.rs-card .rs-w{flex:0 0 auto;margin-right:0}
.rs-card .rs-rxs{margin-top:4px;gap:5px;flex-wrap:nowrap;align-items:center}
.rs-card .rs-rx{min-height:36px;min-width:0;padding:3px 9px;font-size:12px;flex:none}
.rs-card .rs-foot{margin:0 0 0 auto;font-size:11px;white-space:nowrap;flex:none}
@media(max-width:420px){.rs-card .rs-top .rs-res{max-width:96px;overflow:hidden;text-overflow:ellipsis}.rs-card .rs-rx{padding:3px 7px}}

/* v20261017e 战力榜/我的战力：右下角「战力构成 · 公式」入口与弹层 */
.zl-formula-row{display:flex;justify-content:flex-end;margin-top:10px}
.zl-formula-btn{border:1px solid #8a6d2a;background:rgba(212,175,55,.1);color:#f1d27a;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;font-family:inherit;min-height:34px}
.zl-fover{position:fixed;inset:0;z-index:2100;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:10px;box-sizing:border-box}
.zl-fbox{position:relative;width:min(560px,100%);max-height:calc(100dvh - 20px);overflow:auto;box-sizing:border-box;background:#14100a;border:1px solid #c9a24a;border-radius:14px;padding:14px;color:#f3e2b3;font-size:13px;line-height:1.55}
.zl-fx{position:absolute;right:6px;top:4px;border:0;background:none;color:#f1d27a;font-size:24px;min-width:40px;min-height:40px;cursor:pointer}
.zl-formula h3{margin:0 0 6px;color:#ffd36a;font-size:16px;padding-right:36px}
.zl-f-sub{margin:0 0 8px;color:#c9b77f}
.zl-f-tb{width:100%;border-collapse:collapse;font-size:12px}
.zl-f-tb th,.zl-f-tb td{border:1px solid rgba(212,175,55,.25);padding:4px 5px;text-align:left;vertical-align:top}
.zl-f-tb th{color:#e8c766;background:rgba(212,175,55,.08)}
.zl-f-steps{margin:8px 0 0;padding-left:20px}.zl-f-steps li{margin:3px 0}

/* v20261017g 手机大厅友好村祝福：左侧只留花团；滚动字 2/3；昵称按哈希亮色（仅手机，PC 不变） */
@media (max-width: 480px) {
  .bless-wall .bl-et { display: none; }
  .bless-wall .bl-entry { padding: 3px !important; min-width: 0; background: transparent; border-color: transparent; }
  .bless-wall .bl-marq { font-size: 8px; }
  .bless-wall .bl-row { line-height: 1.5; }
  .bless-wall .bl-track b { color: var(--nc, #e8c766); }
}
/* v20261017g 大厅左上：名字 + 「马桥通宝 N」紧贴，总高仍 56px */
#hello-name .hello-txt { justify-content: center; padding: 0; gap: 0; }
#hello-name .hello-nm { line-height: 28px; height: 28px; display: flex; align-items: flex-end; }
#hello-name .hello-tok { line-height: 22px; height: 22px; margin-top: 0; }

/* ===== 20261018a 马桥文化土鳖榜（竹简卷轴 + 金色名牌） ===== */
.ms-lobby{width:calc(100% - 24px);max-width:520px;min-width:0;box-sizing:border-box;margin:8px auto;padding:0 2px}
.ms-lobby.hidden{display:none}
#splash .ms-lobby{width:min(560px,100%) !important;max-width:560px;box-sizing:border-box;margin:0 auto !important;flex:0 0 auto}
.ms-card{position:relative;box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden;border-radius:14px;padding:10px 10px 8px;border:1px solid #8a6a22;background:linear-gradient(90deg,rgba(0,0,0,.28) 0,transparent 6%,transparent 94%,rgba(0,0,0,.28) 100%),repeating-linear-gradient(90deg,#3b2c14 0 22px,#33260f 22px 23px),#2a1e0c;box-shadow:inset 0 0 26px rgba(0,0,0,.65),0 0 14px rgba(212,175,55,.2)}
.ms-card::before,.ms-card::after{content:"";position:absolute;left:0;right:0;height:7px;background:linear-gradient(#e9c867,#9a741c 60%,#5c4210);box-shadow:0 1px 3px rgba(0,0,0,.6)}
.ms-card::before{top:0}.ms-card::after{bottom:0}
.ms-head{display:flex;align-items:center;gap:8px;margin:8px 0 8px;min-width:0}
.ms-head h4{margin:0;font-size:20px;letter-spacing:4px;color:#ffe9a8;text-shadow:0 0 8px rgba(255,181,46,.55);white-space:nowrap}
.ms-head em{font-style:normal;font-size:12px;color:#c9a97a;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ms-seal{flex:none;width:28px;height:28px;border-radius:6px;background:#b3201f;color:#ffe9c0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:17px;border:1px solid #e9a06a;transform:rotate(-5deg)}
.ms-ptabs,.ms-mtabs{display:flex;gap:6px;min-width:0;margin-bottom:6px}
.ms-pt,.ms-mt{flex:1 1 0;min-width:0;padding:6px 2px;border-radius:8px;border:1px solid #6e5420;background:#1b1308;color:#d9bd7a;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.ms-mt{background:#241a0b;font-size:13px;border-radius:999px}
.ms-pt.on{background:linear-gradient(#f3d77a,#c79a2a);color:#3a2600;border-color:#ffe9a0;box-shadow:0 0 8px rgba(255,200,80,.5)}
.ms-mt.on{background:#7a1f1a;color:#ffe9c0;border-color:#e9a06a}
.ms-scroll{max-height:320px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;border-radius:8px;background:rgba(246,231,176,.07);border:1px solid rgba(212,175,55,.25);margin-top:2px}
.ms-list{list-style:none;margin:0;padding:4px}
.ms-row,.ms-self{display:flex;align-items:center;gap:8px;min-width:0;box-sizing:border-box}
.ms-row{padding:6px 8px;margin:3px 0;border-radius:8px;background:linear-gradient(90deg,#f1e2ae,#e4cf8c);color:#3a2a08;border:1px solid #b99a45}
.ms-row.top1{background:linear-gradient(90deg,#ffeaa0,#f0c040);border-color:#fff1b8}
.ms-row.top2{background:linear-gradient(90deg,#f4f4f4,#c9ced6)}
.ms-row.top3{background:linear-gradient(90deg,#f1cfa6,#cf9559)}
.ms-row.me,.ms-self{outline:2px solid #ff4d3d;outline-offset:-2px;box-shadow:0 0 10px rgba(255,77,61,.55)}
.ms-no{flex:none;width:28px;text-align:center;font-weight:800;font-size:14px;color:#6b5320}
.ms-medal{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#2b1c00;border:2px solid rgba(255,255,255,.7);box-shadow:0 1px 4px rgba(0,0,0,.5)}
.ms-m1{background:radial-gradient(circle at 30% 30%,#fff3b0,#e0a800)}
.ms-m2{background:radial-gradient(circle at 30% 30%,#ffffff,#a9b0bb)}
.ms-m3{background:radial-gradient(circle at 30% 30%,#ffd7b0,#b3722e)}
.ms-plate{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden}
.ms-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.ms-row .rm-badge,.ms-self .rm-badge{font-size:11px;padding:0 7px;max-width:5.5em;box-shadow:none}
.ms-val{flex:none;font-weight:900;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ms-val i{font-style:normal;font-size:11px;margin-left:2px;opacity:.7;font-weight:700}
.ms-empty{padding:18px 8px;text-align:center;font-size:13px;color:#e0c88a;white-space:normal}
.ms-self{margin-top:6px;padding:7px 8px;border-radius:8px;background:linear-gradient(90deg,#5a1713,#7a1f1a);color:#ffe9c0;border:1px solid #e9a06a}
.ms-self .ms-no{color:#ffe9c0}
.ms-self-t{flex:none;font-size:11px;color:#ffd9a0;writing-mode:horizontal-tb;white-space:nowrap}
.ms-self-no{flex:1;font-size:13px;color:#ffe0b0;min-width:0}
.ms-note{margin:7px 0 4px;font-size:11px;line-height:1.5;color:#c9a97a;white-space:normal;text-align:left;overflow-wrap:anywhere}
.ms-note b{color:#f0d78a}
@media (max-width:420px){.ms-head h4{font-size:18px;letter-spacing:2px}.ms-head em{display:none}.ms-nm{font-size:14px}.ms-val{font-size:15px}.ms-self-t{display:none}.ms-scroll{max-height:300px}}

/* ===== 20261020f 马桥大师榜：影院霓虹风（区别土鳖竹简金） ===== */
.cm-lobby{width:calc(100% - 24px);max-width:520px;min-width:0;box-sizing:border-box;margin:8px auto;padding:0 2px}
.cm-lobby.hidden{display:none}
#splash .cm-lobby{width:min(560px,100%) !important;max-width:560px;box-sizing:border-box;margin:0 auto !important;flex:0 0 auto}
.cm-card{position:relative;box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden;border-radius:16px;padding:12px 12px 10px;border:1px solid rgba(120,200,255,.35);background:linear-gradient(165deg,#0a1628 0%,#121a2e 45%,#1a1230 100%);box-shadow:inset 0 0 40px rgba(40,120,200,.12),0 0 18px rgba(80,160,255,.18)}
.cm-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,#5ec8ff 20%,#c9a0ff 50%,#5ec8ff 80%,transparent);opacity:.9}
.cm-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 80% 0%,rgba(100,180,255,.14),transparent 50%);border-radius:inherit}
.cm-head{position:relative;z-index:1;display:flex;align-items:center;gap:8px;margin:4px 0 8px;min-width:0}
.cm-head h4{margin:0;font-size:19px;letter-spacing:3px;color:#d8f0ff;text-shadow:0 0 12px rgba(100,200,255,.55);white-space:nowrap;font-weight:800}
.cm-head em{font-style:normal;font-size:11px;color:#8eb4d8;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cm-seal{flex:none;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#9ad8ff,#2a6aad 70%);color:#061018;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;border:1px solid rgba(180,230,255,.7);box-shadow:0 0 10px rgba(100,200,255,.5)}
/* 20261020r 表头对齐：表头与行同为 flex，左右内边距 = 滚动区边框1 + 列表内边距4 + 行边框1 + 行内边距8 = 14px（右侧再加滚动条宽）；数值列用同一组 px 宽 */
.cm-card{--cm-w1:42px;--cm-w2:48px;--cm-w3:56px}
.cm-cols{position:relative;z-index:1;display:flex;align-items:flex-end;gap:6px;padding:2px calc(14px + var(--cm-sb,0px)) 4px 14px;font-size:10px;font-weight:700;color:#7eb0d8;letter-spacing:0;box-sizing:border-box}
.cm-ch-rank{flex:none;width:26px;text-align:center;white-space:nowrap}
.cm-ch-name{flex:1 1 auto;min-width:0;text-align:left !important}
.cm-ch-stats{flex:none;display:flex;gap:2px;justify-content:flex-end}
.cm-ch-stats i{font-style:normal;text-align:center;white-space:nowrap}
.cm-ch-stats .cm-c-works,.cm-stats .cm-c-works{width:var(--cm-w1)}
.cm-ch-stats .cm-c-tai,.cm-stats .cm-c-tai{width:var(--cm-w2)}
.cm-ch-stats .cm-div,.cm-stats .cm-div{width:var(--cm-w3) !important}
.cm-scroll{position:relative;z-index:1;max-height:320px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;border-radius:10px;background:rgba(8,20,40,.45);border:1px solid rgba(90,160,220,.22);margin-top:2px}
.cm-list{list-style:none;margin:0;padding:4px}
.cm-row,.cm-self{display:flex;align-items:center;gap:6px;min-width:0;box-sizing:border-box}
.cm-row{position:relative;padding:7px 8px;margin:4px 0;border-radius:10px;background:linear-gradient(105deg,rgba(30,50,80,.92),rgba(22,36,60,.95));color:#e8f4ff;border:1px solid rgba(100,160,220,.28)}
.cm-row.top2{background:linear-gradient(105deg,rgba(55,70,95,.95),rgba(40,55,80,.95));border-color:rgba(160,190,220,.4)}
.cm-row.top3{background:linear-gradient(105deg,rgba(70,55,40,.92),rgba(50,40,30,.95));border-color:rgba(200,150,90,.35)}
.cm-row.me,.cm-self{outline:2px solid #5ec8ff;outline-offset:-2px}
/* 头名：高亮 + 呼吸光晕 */
.cm-row.top1{background:linear-gradient(105deg,#2a4a78,#1e3560 40%,#2a3870);border-color:rgba(140,220,255,.65);color:#fff;box-shadow:0 0 0 1px rgba(160,230,255,.35),0 0 14px rgba(80,180,255,.35);animation:cm-top1-glow 2.4s ease-in-out infinite}
@keyframes cm-top1-glow{
  0%,100%{box-shadow:0 0 0 1px rgba(160,230,255,.35),0 0 10px rgba(80,180,255,.28),inset 0 0 12px rgba(100,200,255,.08)}
  50%{box-shadow:0 0 0 2px rgba(200,240,255,.7),0 0 22px rgba(100,210,255,.55),inset 0 0 18px rgba(120,210,255,.16)}
}
@media (prefers-reduced-motion:reduce){.cm-row.top1{animation:none}}
.cm-no{flex:none;width:26px;text-align:center;font-weight:800;font-size:13px;color:#8eb0d0}
.cm-medal{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:#061018;border:1px solid rgba(255,255,255,.45)}
.cm-m1{background:radial-gradient(circle at 30% 30%,#e8f8ff,#5ec8ff);box-shadow:0 0 8px rgba(100,210,255,.6)}
.cm-m2{background:radial-gradient(circle at 30% 30%,#f0f4f8,#9aabb8)}
.cm-m3{background:radial-gradient(circle at 30% 30%,#ffe8c8,#c8944a)}
.cm-plate{flex:1 1 auto;min-width:0;display:flex;align-items:flex-start;flex-wrap:wrap;gap:3px 6px;overflow:visible}
.cm-mnm{min-width:0;overflow:visible;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.3;font-size:15px;font-weight:800;color:#f2f8ff}
.cm-self .cm-mnm{color:#e8f6ff}
.cm-row .rm-badge,.cm-self .rm-badge{font-size:10px;padding:0 6px;max-width:5em;box-shadow:none;opacity:.9}
.cm-stats{flex:none;display:flex;align-items:baseline;justify-content:flex-end;gap:2px;font-variant-numeric:tabular-nums}
.cm-stats em{font-style:normal;text-align:center;flex:none}
.cm-stats b{font-size:13px;font-weight:800;color:#d8ecff}
.cm-div b{color:#9ae0ff !important;font-size:13px !important}
.cm-self .cm-stats b{color:#d8ecff}
.cm-self .cm-div b{color:#9ae0ff !important}
.cm-empty{padding:18px 8px;text-align:center;font-size:13px;color:#8eb0d0;white-space:normal}
.cm-self{position:relative;z-index:1;margin:6px calc(5px + var(--cm-sb,0px)) 0 5px;padding:7px 8px;border-radius:10px;background:linear-gradient(105deg,#152a48,#1a2040);color:#d8ecff;border:1px solid rgba(90,180,255,.4)}
.cm-self .cm-no{color:#a8d0f0}
.cm-self-t{flex:none;font-size:11px;color:#7eb8e0;white-space:nowrap}
.cm-self-no{flex:1;font-size:13px;color:#9ec0e0;min-width:0}
.cm-note{position:relative;z-index:1;margin:7px 0 2px;font-size:11px;line-height:1.5;color:#7a9cbe;white-space:normal;text-align:left;overflow-wrap:anywhere}
.cm-note b{color:#b8dcf8}
@media (max-width:420px){.cm-head h4{font-size:17px;letter-spacing:2px}.cm-head em{display:none}.cm-mnm{font-size:14px}.cm-card{--cm-w1:34px;--cm-w2:38px;--cm-w3:46px}.cm-cols{font-size:9px}.cm-self-t{display:none}.cm-scroll{max-height:300px}.cm-stats b{font-size:12px}.cm-row.top1{animation-duration:2.8s}}

/* ===== 20261018b 轮到自己打牌提示 ===== */
#turn-cue { display: none; }
#turn-cue.on { display: block; position: fixed; left: 50%; bottom: 200px; transform: translateX(-50%); z-index: 60; pointer-events: none; white-space: nowrap;
  padding: 5px 20px; border-radius: 999px; font: 800 17px/1.3 "Noto Serif SC", serif; letter-spacing: 2px; color: #3a2400;
  background: linear-gradient(180deg, #ffe08a, #e0a82c); border: 2px solid #fff3c4; box-shadow: 0 0 14px rgba(255,214,102,.75), 0 3px 10px rgba(0,0,0,.5); }
#turn-cue.on.urgent { font-size: 20px; color: #fff; background: linear-gradient(180deg, #ff6a4d, #c4261a); border-color: #ffd9d0; box-shadow: 0 0 20px rgba(255,80,60,.95), 0 3px 10px rgba(0,0,0,.55); }
body.tc-anim #turn-cue.on { animation: tc-breathe 1.8s ease-in-out infinite; }
body.tc-anim #turn-cue.on.urgent { animation: tc-flash .55s ease-in-out infinite; }
@keyframes tc-breathe { 0%,100% { opacity: .88; box-shadow: 0 0 8px rgba(255,214,102,.5), 0 3px 10px rgba(0,0,0,.5); } 50% { opacity: 1; box-shadow: 0 0 22px rgba(255,224,130,.95), 0 3px 10px rgba(0,0,0,.5); } }
@keyframes tc-flash { 0%,100% { opacity: .55; } 50% { opacity: 1; box-shadow: 0 0 30px rgba(255,60,40,1), 0 3px 10px rgba(0,0,0,.55); } }
#seat-south.me-turn .av36, #seat-south.me-turn .seat-meta { border-radius: 50%; box-shadow: 0 0 0 3px #ffe08a, 0 0 18px 6px rgba(255,214,102,.85); }
#seat-south.me-turn .seat-meta { border-radius: 10px; }
#seat-south.me-turn .nm36 { color: #fff1b0; text-shadow: 0 0 8px rgba(255,214,102,.95); }
#seat-south.me-turn-urgent .av36, #seat-south.me-turn-urgent .seat-meta { box-shadow: 0 0 0 3px #ff6a4d, 0 0 22px 8px rgba(255,80,60,.9); }
body.tc-anim #seat-south.me-turn .av36, body.tc-anim #seat-south.me-turn .seat-meta { animation: tc-pulse 1.2s ease-in-out infinite; }
body.tc-anim #seat-south.me-turn-urgent .av36, body.tc-anim #seat-south.me-turn-urgent .seat-meta { animation-duration: .5s; }
@keyframes tc-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
#modal:not(.hidden) ~ #turn-cue, body:has(#modal:not(.hidden)) #turn-cue { display: none; }
body:not(.tc-anim) #seat-south.me-turn .av36, body:not(.tc-anim) #seat-south.me-turn .seat-meta { animation: none !important; }

/* ===== 20261018c 牌河牌面大小：设置/弹层打开时「轮到自己」提示条不盖在面板上 ===== */
body:has(#pop36:not(.hidden)) #turn-cue { display: none !important; }

/* ===== 20261018d 轮到自己：小号紧凑文字（头像/筹码下方，非按钮，不占碰牌区）+ 手牌上方金色闪烁细线 ===== */
#turn-cue.on { bottom: auto; transform: none; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; opacity: 1; letter-spacing: 1px;
  font: 700 11px/1.2 "Noto Serif SC", serif; color: #ffe08a; text-shadow: 0 0 6px rgba(255,214,102,.9), 0 1px 2px rgba(0,0,0,.8); z-index: 30; }
#turn-cue.on.urgent { font-size: 11px; color: #ff9a85; background: none; border: 0; box-shadow: none; text-shadow: 0 0 6px rgba(255,80,60,.95), 0 1px 2px rgba(0,0,0,.8); }
body.tc-anim #turn-cue.on, body.tc-anim #turn-cue.on.urgent { animation: none; }
#turn-line { display: none; }
#turn-line.on { display: block; position: fixed; height: 3px; border-radius: 2px; pointer-events: none; z-index: 25;
  background: linear-gradient(90deg, rgba(255,214,102,0), #ffe08a 8%, #fff3c4 50%, #ffe08a 92%, rgba(255,214,102,0)); box-shadow: 0 0 8px 1px rgba(255,214,102,.9); opacity: 1; }
#turn-line.on.urgent { background: linear-gradient(90deg, rgba(255,106,77,0), #ff6a4d 8%, #ffd9d0 50%, #ff6a4d 92%, rgba(255,106,77,0)); box-shadow: 0 0 10px 2px rgba(255,80,60,.95); }
body.tc-anim #turn-line.on { animation: tc-line 1.1s ease-in-out infinite; }
body.tc-anim #turn-line.on.urgent { animation-duration: .5s; }
@keyframes tc-line { 0%,100% { opacity: .45; } 50% { opacity: 1; } }
#modal:not(.hidden) ~ #turn-line, body:has(#modal:not(.hidden)) #turn-line, body:has(#pop36:not(.hidden)) #turn-line { display: none !important; }
.cin-div{background:linear-gradient(90deg,#2f8f5b,#47c27a);color:#fff;border-color:#47c27a}

/* ===== 20261018f 战力榜膜拜 / 胜者置顶 / 收藏名局 ===== */
.zl-mbtip { margin: 2px 0 8px; padding: 6px 10px; border-radius: 10px; background: rgba(212,160,23,.12); border: 1px solid rgba(212,160,23,.35); color: #e8d29a; font-size: 12px; text-align: center; }
.zl-mbtip b { color: #ffe39a; }
.zl-row.zl-has-mb { grid-template-columns: 26px 24px 1fr auto auto; row-gap: 4px; }
.zl-mbrow { grid-column: 1 / -1; display: flex; justify-content: flex-start; padding-left: 4px; min-width: 0; }
.zl-pod .zl-mbrow { justify-content: center; padding: 0; margin-top: 4px; }
.zl-mbrow .mb-btn { margin: 0; height: 26px; padding: 0 12px; font-size: 12px; }
.mb-btn.lim:not(.on) { opacity: .45; }
.win-top { margin: 8px 0 10px; padding: 10px 12px; border-radius: 14px; border: 1.5px solid #ffd76a; background: linear-gradient(120deg, rgba(90,60,10,.75), rgba(40,26,6,.9)); box-shadow: 0 0 14px rgba(255,214,102,.28), inset 0 1px 0 rgba(255,246,200,.25); color: #ffe9b0; }
.win-top.empty { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #d9c28a; border-style: dashed; box-shadow: none; background: rgba(30,20,6,.6); }
.win-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.win-head em { margin-left: auto; font-style: normal; font-size: 12px; color: #d9c28a; }
.win-crown, .win-tag { font-style: normal; display: inline-block; padding: 0 8px; line-height: 20px; border-radius: 10px; background: linear-gradient(#ffe27a, #d79b1d); color: #3a2204; font: 700 12px "Noto Serif SC", serif; white-space: nowrap; flex: none; }
.win-tag { line-height: 16px; padding: 0 6px; font-size: 11px; margin-right: 2px; }
.win-champ { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 8px 0 2px; font-size: 16px; min-width: 0; }
.win-champ b { color: #fff0b8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.win-champ em, .win-list em { font-style: normal; font-size: 12px; color: #e8d29a; white-space: nowrap; }
.win-list { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; max-height: 96px; overflow: auto; }
.win-list li { display: flex; gap: 6px; align-items: baseline; padding: 2px 8px; border-radius: 8px; background: rgba(255,255,255,.07); font-size: 13px; min-width: 0; max-width: 100%; }
.win-list li b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 9em; }
.win-list li.first { background: rgba(255,215,106,.2); }
.win-list li.me, .win-champ.me b { color: #9ee6b4; }
/* 收藏按钮 */
.fav-btn { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 2px 10px; border-radius: 16px; border: 1px solid #a67c2e; background: rgba(212,160,23,.12); color: #ffe39a; font: 600 12px "Noto Serif SC", serif; cursor: pointer; white-space: nowrap; flex: none; }
.fav-btn i { font-style: normal; font-size: 15px; color: #ffb347; line-height: 1; }
.fav-btn.on { background: rgba(212,160,23,.34); border-color: #ffd76a; }
.rs-card .fav-btn { min-height: 36px; min-width: 36px; padding: 2px 8px; justify-content: center; }
.rs-card .fav-btn span { display: none; }
.cr-act { flex-wrap: wrap; }
/* 个人主页收藏区 */
.uc-favs, #pf-favs { margin-top: 12px; }
.fv-head h4 { margin: 0 0 6px; font-size: 15px; color: #ffe39a; }
.fv-n { font-style: normal; color: #d9c28a; font-size: 13px; margin-left: 4px; }
.fv-scroll { max-height: min(48vh, 440px); overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding-right: 2px; border-radius: 10px; }
.fv-list { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.fv-it { min-width: 0; }
.fv-it .cin-card, .fv-it .rs-card { margin: 0; width: 100%; box-sizing: border-box; }
.fv-more { display: block; width: 100%; margin: 8px 0 2px; padding: 8px; border-radius: 10px; border: 1px solid #a67c2e; background: rgba(212,160,23,.12); color: #ffe39a; cursor: pointer; font: 13px "Noto Serif SC", serif; }
.fv-empty { margin: 4px 0; }
.pf-favs-sec .fv-scroll { max-height: min(56vh, 520px); }
@media (min-width: 900px) { .pf-favs-sec .fv-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-favs-sec .fv-scroll { max-height: 560px; } }
.cin-act{flex-wrap:wrap}

/* 20261018i 擂台（颛桥万达擂台赛 / 马桥战国时代）大厅卡片 + 列表 */
.duel-lobby{width:min(560px,100%);max-width:560px;margin:8px auto 0 !important;box-sizing:border-box;flex:0 0 auto;min-width:0}
.duel-lobby.hidden{display:none}
.duel-lob{box-sizing:border-box;border-radius:16px;padding:10px;border:1px solid #8a5a14;background:radial-gradient(120% 90% at 50% 0,#3a2406 0,#1c1204 55%,#0b0702 100%);box-shadow:inset 0 0 30px rgba(0,0,0,.7),0 0 18px rgba(214,168,67,.28);min-width:0;overflow:hidden}
.duel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.duel-open{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;text-align:left;background:none;border:0;color:#f3e0a6;cursor:pointer;padding:2px 0;font:inherit}
.duel-open span{display:flex;flex-direction:column;min-width:0}.duel-open b{font-size:20px;line-height:1.2}.duel-open small{font-size:12px;color:#d9c08a;white-space:normal}
.duel-bd{flex:none;width:34px !important;height:34px !important;margin:0 !important;font-size:18px !important;background:radial-gradient(#ffe48a,#c2501a) !important;color:#2a0c02 !important;font-style:normal}
.duel-lob .rs-lob-new,.duel-go{flex:none;border-color:#ffd76a;background:rgba(255,215,106,.12);color:#ffe9a8;min-height:40px}
.duel-top{margin:6px 0 0;font-size:12px;color:#d9c08a}
.duel-book{max-width:560px}
.duel-card .duel-vs{font-style:normal;color:#ffb347;font-size:11px;margin:0 2px}
.duel-card .duel-tai{background:#7a1c1c;color:#ffe9a8;border-color:#c25b3a}
.duel-card .duel-win{margin:4px 0 0;font-size:13px;color:#f3e0a6}.duel-card .duel-win small{display:block;color:#b9a574;font-size:11px;margin-top:2px}
.duel-wait,.duel-inv{z-index:10000}
@media(max-width:420px){.duel-open b{font-size:17px}.duel-open small{font-size:11px}}
.duel-tribe{border-color:#2f7a5a;background:radial-gradient(120% 90% at 50% 0,#0f3a2a 0,#07200f 55%,#020b05 100%);box-shadow:inset 0 0 30px rgba(0,0,0,.7),0 0 18px rgba(80,200,140,.25)}
.duel-tribe .duel-bd{background:radial-gradient(#b8f5d0,#1f8a5c) !important;color:#04210f !important}
.duel-tribe .rs-lob-new,.duel-tribe .duel-go{border-color:#7fe8b0;background:rgba(127,232,176,.12);color:#d6ffe8}
.duel-tribe .duel-open small,.duel-tribe .duel-top{color:#a9d9bd}

/* ===== 20261018k 单机对局中被邀请：游戏内小弹窗（窄条；手机贴在顶栏下方、PC 在右上角；不盖手牌/出牌区/操作按钮，不暂停单机局）；发起方等待条 ===== */
.duel-inv-solo{position:fixed;left:auto;right:6px;top:calc(46px + env(safe-area-inset-top,0px));width:min(390px,calc(100vw - 12px));max-width:none;margin:0;padding:6px 8px 9px;gap:6px;flex-wrap:nowrap;font-size:13px;line-height:1.3;overflow:hidden;z-index:10001;background:rgba(27,16,48,.95);box-shadow:0 4px 14px rgba(0,0,0,.55)}
.duel-inv-solo span{min-width:0;flex:1 1 auto}
.duel-inv-solo .duel-nm{display:inline-block;max-width:7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.duel-inv-solo span small{display:block;font-size:10px;color:#cdb98a;margin-top:1px}
.duel-inv-solo .duel-cdw{text-decoration:none;color:#ffd76a;white-space:nowrap}
.duel-inv-solo .fr-b{flex:none;min-height:34px;min-width:52px;padding:4px 8px;font-size:14px}
.duel-inv-solo .duel-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#f1d27a;transform-origin:left center;animation:duelbar linear forwards}
@keyframes duelbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:820px){.duel-inv-solo{left:6px;right:6px;width:auto;padding:4px 8px 7px}.duel-inv-solo span small{display:none}}
.duel-ready{z-index:10001}
.duel-wait[data-state=waiting]{border-color:#7fe8b0}
/* 20261018l 自动收藏小标记 */
.fv-it { position: relative; }
.fv-auto { display: inline-block; margin: 0 0 4px 2px; padding: 1px 9px; border-radius: 999px; font: 12px/18px "Noto Serif SC", serif; color: #1c1405; background: linear-gradient(#ffe39a, #d4a017); box-shadow: 0 1px 3px rgba(0,0,0,.4); }
/* 20261018l 资料页叠加层（结算等已有弹窗时用，关闭后回到原界面）+ 名字可点样式 */
.uc-layer { position: fixed; inset: 0; z-index: 350; background: rgba(5,3,1,.55); }
.uc-layer .panel-ucard { width: min(560px, 94vw); max-height: 88vh; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; box-sizing: border-box; padding: 16px 16px 14px; }
.uc-layer .uc-book > .title-close { display: flex !important; position: sticky; top: 0; float: right; z-index: 20; width: 40px; height: 40px; min-width: 40px; border-radius: 50%; border: 1px solid #d4af37; background: #5a1030; color: #fff; font-size: 24px; line-height: 1; align-items: center; justify-content: center; cursor: pointer; touch-action: manipulation; margin: -2px -2px 4px 8px; }
[data-uc].uc-link { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.pay-hu.uc-link, .pay-chong.uc-link { text-decoration-style: dotted; }
.settle-seats { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 8px; margin: 6px 0 2px; }
.settle-seat { padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(212,175,55,.45); background: rgba(60,40,8,.5); color: #f3e0a6; font-size: 13px; line-height: 20px; max-width: 46vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settle-seat.win { border-color: #6fcf7c; color: #c8f5cf; }

/* 20261018n 每日最佳：标题栏「仅今天」勾选 + 历史列表内部滚动 */
.hlb-head{align-items:center}
.hlb-head .hlb-chk{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#f3e0a6;cursor:pointer;min-width:0;white-space:nowrap;user-select:none}
.hlb-head .hlb-chk input{width:18px;height:18px;margin:0;accent-color:#d4a017;cursor:pointer}
.hlb-head .hlb-more{flex:none;white-space:nowrap}
.bst-hist{max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px;padding-right:2px;-webkit-overflow-scrolling:touch}
.bst-hist .bst-card{flex:0 0 auto}
.bst-day{margin:4px 0 0;font-size:13px;color:#ffd76a;letter-spacing:.08em;border-bottom:1px solid rgba(212,175,55,.28);padding-bottom:3px;position:sticky;top:0;background:#1b1306;z-index:1}
.bst-moreb{flex:none;align-self:center;margin:4px 0 6px;padding:8px 22px;border-radius:18px;border:1px solid #8a6a22;background:rgba(212,160,23,.16);color:#ffe39a;font-size:13px;cursor:pointer}
.bst-moreb:disabled{opacity:.5}
.bst-end{text-align:center;font-size:12px;color:#b39a62;margin:4px 0 6px}

/* ===== 20261018o 全服大厅金光跑马灯庆祝条（从右向左；台数越高字越大光越强；昵称绿色；减少动画/特效关闭=静态金色条可左右滑动） ===== */
.cel-bar { --fs: 15px; --glow: .35; --pulse: 3.2s; position: relative; flex: none; align-self: stretch; width: 100%; box-sizing: border-box; margin: 0; padding: 3px 0; border-radius: 10px; overflow: hidden; z-index: 4;
  background: linear-gradient(90deg, #2a1604, #5a3a08 18%, #3a2306 50%, #5a3a08 82%, #2a1604); border: 1px solid #ffd36a; box-shadow: 0 0 calc(18px * var(--glow) * 2) rgba(255,200,64,calc(var(--glow) + .1)), inset 0 0 10px rgba(255,214,110,.25); }
.cel-bar.hidden { display: none !important; }
.cel-bar.top4 { --fs: 15px; --glow: .3; --pulse: 3.4s; }
.cel-bar.top5 { --fs: 17px; --glow: .45; --pulse: 2.8s; }
.cel-bar.top6 { --fs: 19px; --glow: .6; --pulse: 2.2s; }
.cel-bar.top7 { --fs: 22px; --glow: .8; --pulse: 1.6s; }
.cel-view { position: relative; width: 100%; height: calc(var(--fs) * 1.45); overflow: hidden; display: flex; align-items: center; }
.cel-run { display: flex; align-items: center; gap: 28px; white-space: nowrap; width: max-content; padding: 0 14px; font-family: "Noto Serif SC", serif; font-weight: 800; letter-spacing: .5px; }
.cel-mv .cel-run { position: absolute; left: 0; top: 0; height: 100%; opacity: 0; will-change: transform; }
.cel-mv .cel-run.go { opacity: 1; }
.cel-it { display: inline-flex; align-items: center; gap: .25em; line-height: 1.2; cursor: default; font-size: calc(var(--fs) * .88);
  background: linear-gradient(100deg, #b8800f 0%, #ffe9a0 25%, #ffc93a 45%, #fff6cf 55%, #e0a020 75%, #ffe08a 100%); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.cel-it.has { cursor: pointer; }
.cel-it.t4 { font-size: 15px; filter: drop-shadow(0 0 3px rgba(255,200,64,.5)); }
.cel-it.t5 { font-size: 17px; filter: drop-shadow(0 0 4px rgba(255,200,64,.65)); }
.cel-it.t6 { font-size: 19px; filter: drop-shadow(0 0 5px rgba(255,210,80,.8)) drop-shadow(0 0 10px rgba(255,160,0,.4)); }
.cel-it.t7 { font-size: 22px; filter: drop-shadow(0 0 6px rgba(255,220,100,.95)) drop-shadow(0 0 14px rgba(255,160,0,.6)); }
.cel-nm { font-weight: 900; color: #4dff88 !important; -webkit-text-fill-color: #4dff88 !important; background: none; text-shadow: none; cursor: pointer; text-decoration: none; padding: 0 .1em; filter: drop-shadow(0 0 4px rgba(60,255,130,.7)); }
.cel-rm { font-weight: 900; color: #c58bff; -webkit-text-fill-color: #c58bff; margin-right: .3em; white-space: nowrap; filter: drop-shadow(0 0 4px rgba(176,110,255,.75)); }
.cel-static .cel-rm { filter: none; }
.cel-pat { font-weight: 800; color: #fff3b8; -webkit-text-fill-color: #fff3b8; letter-spacing: .5px; white-space: nowrap; }
.cel-tail { white-space: nowrap; }
.cel-n { font-style: normal; font-weight: 900; font-size: 1.12em; }
.cel-sep { color: #ffd36a; font-size: 12px; opacity: .8; -webkit-text-fill-color: #ffd36a; }
.cel-mv::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 22%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,246,200,.5), transparent); transform: translateX(-120%); animation: cel-sweep calc(var(--pulse) * 1.6) linear infinite; mix-blend-mode: screen; }
.cel-mv { animation: cel-pulse var(--pulse) ease-in-out infinite; }
.cel-mv .cel-it { animation: cel-flow calc(var(--pulse) * 1.5) linear infinite; }
@keyframes cel-sweep { 0% { transform: translateX(-120%); } 55%, 100% { transform: translateX(520%); } }
@keyframes cel-pulse { 0%, 100% { box-shadow: 0 0 calc(10px + 10px * var(--glow)) rgba(255,200,64,calc(var(--glow) * .6)), inset 0 0 8px rgba(255,214,110,.2); border-color: #e0b040; } 50% { box-shadow: 0 0 calc(16px + 26px * var(--glow)) rgba(255,214,90,calc(var(--glow) + .2)), inset 0 0 16px rgba(255,226,140,.45); border-color: #fff0b0; } }
@keyframes cel-flow { from { background-position: 0 0; } to { background-position: -220% 0; } }
/* 静态：减少动画 / 特效关闭 → 纯金色条，可左右滑动，不跑马 */
.cel-static .cel-view { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none; scroll-snap-type: x proximity; }
.cel-static .cel-view::-webkit-scrollbar { display: none; }
.cel-static .cel-run { justify-content: flex-start; margin: 0 auto; flex: none; }
.cel-static .cel-it { animation: none; background: none; color: #ffd76a; -webkit-text-fill-color: #ffd76a; filter: none; scroll-snap-align: center; }
.cel-static .cel-nm { color: #4dff88 !important; -webkit-text-fill-color: #4dff88 !important; filter: none; }
.cel-static, .cel-static::after { animation: none; }
@media (prefers-reduced-motion: reduce) { .cel-mv, .cel-mv::after, .cel-mv .cel-it { animation: none !important; } }
/* 位置：大厅最上方。手机=流内第一块（紧凑，推下方内容一个条高）；PC=绝对定位在顶部，整体下移用户栏/名场面播报/内容（--celh 由脚本写入条高）；名场面播报条下移避免盖住 */
#splash .cel-bar { order: -1; }
@media (min-width: 521px) {
  #splash .cel-bar { position: absolute; top: 10px; left: 16px; right: 16px; width: auto; }
  #splash.cel-on.splash { padding-top: calc(76px + var(--celh, 40px) + 6px) !important; }
  #splash.cel-on .user-bar { top: calc(16px + var(--celh, 40px) + 6px); }
}
#splash.cel-on .hl-bar { top: calc(env(safe-area-inset-top, 0px) + var(--celh, 36px) + 14px); }
@media (max-width: 520px) {
  .cel-bar { padding: 2px 0; border-radius: 8px; margin-bottom: -6px; }
  .cel-bar.top4 { --fs: 13px; } .cel-bar.top5 { --fs: 14.5px; } .cel-bar.top6 { --fs: 16px; } .cel-bar.top7 { --fs: 17.5px; }
  .cel-run { gap: 20px; padding: 0 10px; }
  .cel-it.t4 { font-size: 13px; } .cel-it.t5 { font-size: 14.5px; } .cel-it.t6 { font-size: 16px; } .cel-it.t7 { font-size: 17.5px; }
}

/* ===== 第 6 档「至强」(void)：暗金 + 靛紫，仅换色，不改布局（档位卡沿用 .sp-tier 结构，手机/PC 同一套） ===== */
.sp-void { --c: #e6c35a; background: linear-gradient(135deg, rgba(14,10,40,.92), rgba(4,4,16,.97) 60%, rgba(60,44,6,.88)); box-shadow: inset 0 0 18px rgba(230,195,90,.28); }
.sp-void .sp-seal { color: #1a1200; background: radial-gradient(circle at 35% 30%, #fff1b8, #b8892a 72%); animation: sp57thunder 2.2s ease-in-out infinite; }
.sp-void .sp-name { background: linear-gradient(90deg, #fff1b8, #e6c35a 55%, #9b8cff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.solo-tier-tag.st-void { color: #f3dd8f; border-color: rgba(230,195,90,.75); box-shadow: 0 0 8px rgba(230,195,90,.55); }
#table-screen.tier-void::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; padding: 4px; background: linear-gradient(90deg, #1a1450, #e6c35a, #4a3cb0, #fff1b8, #1a1450) 0 0 / 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fx57flash 4s linear infinite; }
.fx55-master-banner.void { color: #fff1b8; text-shadow: 0 0 16px #8a7cff, 0 0 30px #3a2cb0; background: linear-gradient(90deg, transparent, rgba(16,12,56,.88), transparent); font-size: 28px; }
#table-screen.tier-void .sc36:not(.me) .av36 { position: relative; }
#table-screen.tier-void .sc36:not(.me) .av36::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid transparent; border-top-color: #e6c35a; border-right-color: #8a7cff; box-shadow: 0 0 12px 3px rgba(150,130,255,.6); pointer-events: none; }
#table-screen.tier-void[data-think] .sc36 .av36::after { background: rgba(24,16,70,.92) !important; border-color: rgba(230,195,90,.9) !important; }
.fx57-badge.void { background: linear-gradient(135deg, #fff1b8, #8a7cff); color: #14103a; box-shadow: 0 0 8px rgba(150,130,255,.8); }
.fx55-tier.v57.void.win { color: #f3dd8f; }

/* 20261019a 战报详情：台数构成 + 总胡数 */
.td-box{width:100%;max-width:520px;margin:10px auto 0;box-sizing:border-box;padding:8px 14px;border-radius:12px;border:1px solid rgba(241,210,122,.45);background:rgba(0,0,0,.35);color:#f6e7bb}
.td-h{margin:0 0 4px;font-size:14px;color:#ffd76a;letter-spacing:.15em}
.td-row,.td-sum{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:15px}
.td-row span:last-child{color:#ffe9a8;font-weight:700;white-space:nowrap}
.td-none{opacity:.75}
.td-sum{margin-top:4px;padding-top:6px;border-top:1px dashed rgba(241,210,122,.4);font-size:15px}
.td-sum b{color:#ffd76a;font-size:18px}
/* 20261019a 海报预览：原先全屏模式把整张 1080×1920 竖图塞进「一屏高度减去按钮栏」，PC 上只剩约 300px 宽。改为按宽度放大、整体可滚动，按钮栏吸底 */
.share-overlay.sc-full{overflow-y:auto;overflow-x:hidden;align-items:flex-start;-webkit-overflow-scrolling:touch}
.sc-full .share-box.sc3-box{height:auto;min-height:100dvh;padding:10px 0 0;align-items:center}
.sc-full .sc3-styles{width:100%;max-width:560px;padding:0 56px 0 12px;box-sizing:border-box}
.sc-full .sc3-img{flex:0 0 auto;min-height:0;width:100%;display:block;text-align:center}
.sc-full .sc3-img img{display:block;width:min(100%,820px);max-width:100%;max-height:none;height:auto;margin:0 auto;object-fit:initial;border-radius:0}
.sc-full .sc3-load{position:relative;inset:auto;min-height:60vh}
.sc-full .sc3-pick{position:relative;inset:auto;max-width:560px;margin:0 auto}
.sc-full .sc-hint{padding:0 12px}
.sc-full .sc3-btns{position:sticky;bottom:0;z-index:4;width:100%;box-sizing:border-box;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(0deg,#080503 70%,rgba(8,5,3,0));margin-top:auto}
@media (max-height:760px){.sc-full .sc3-img{max-height:none}}

/* 20261019d 榜单整行可点（打开玩家资料）：行级 data-uc，轻微 hover/active 反馈；不改变布局，保留滚动/触摸 */
.rk-pod[data-uc], .rk-row[data-uc], .zl-pod[data-uc], .zl-row[data-uc], .rkc-top li[data-uc], .szl-col[data-uc], .ms-row[data-uc], .ms-self[data-uc], .win-list li[data-uc], .win-champ[data-uc], .ch-row[data-uc], .hlb-list li[data-uc] { cursor: pointer; -webkit-tap-highlight-color: rgba(255,214,102,.18); transition: filter .12s, transform .08s; }
@media (hover: hover) { .rk-pod[data-uc]:hover, .rk-row[data-uc]:hover, .zl-pod[data-uc]:hover, .zl-row[data-uc]:hover, .rkc-top li[data-uc]:hover, .szl-col[data-uc]:hover, .ms-row[data-uc]:hover, .ms-self[data-uc]:hover, .win-list li[data-uc]:hover, .win-champ[data-uc]:hover, .ch-row[data-uc]:hover, .hlb-list li[data-uc]:hover { filter: brightness(1.12); } }
.rk-pod[data-uc]:active, .rk-row[data-uc]:active, .zl-pod[data-uc]:active, .zl-row[data-uc]:active, .rkc-top li[data-uc]:active, .szl-col[data-uc]:active, .ms-row[data-uc]:active, .ms-self[data-uc]:active, .win-list li[data-uc]:active, .win-champ[data-uc]:active, .ch-row[data-uc]:active, .hlb-list li[data-uc]:active { filter: brightness(.92); }
.cel-hu { font-weight: 800; color: #ffd76a; -webkit-text-fill-color: #ffd76a; white-space: nowrap; }

/* 20261019f 榜单奖励金色大弹窗 */
.lbn-ov{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:rgba(0,0,0,.72);animation:lbnIn .25s ease}
.lbn-card{position:relative;width:min(92vw,420px);max-height:90vh;overflow:auto;box-sizing:border-box;padding:26px 20px 20px;text-align:center;border-radius:16px;border:2px solid #f1d27a;background:linear-gradient(160deg,#4a2c08,#1e0f03 70%);color:#ffe9b0;box-shadow:0 0 40px rgba(241,210,122,.45),inset 0 0 24px rgba(241,210,122,.15)}
.lbn-ico{font-size:52px;line-height:1;filter:drop-shadow(0 0 12px rgba(255,214,102,.8))}
.lbn-ttl{margin:8px 0 14px;font-size:26px;font-weight:800;letter-spacing:4px;color:#ffd75e;text-shadow:0 0 14px rgba(255,200,60,.6)}
.lbn-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.lbn-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:10px;background:rgba(241,210,122,.12);border:1px solid rgba(241,210,122,.35);font-size:16px}
.lbn-b{flex:1;text-align:left;color:#ffe9b0}.lbn-r{color:#ffd75e;font-weight:700;white-space:nowrap}.lbn-a{color:#fff3c4;font-weight:800;white-space:nowrap}
.lbn-sum{font-size:18px;margin:6px 0 4px}.lbn-sum b{font-size:34px;color:#ffd75e;text-shadow:0 0 12px rgba(255,200,60,.6)}
.lbn-by{font-size:13px;color:#c9a97a;margin-bottom:16px}
.lbn-ok{min-height:48px;min-width:180px;padding:10px 28px;border-radius:999px;border:0;background:linear-gradient(180deg,#ffe28a,#d9a21e);color:#3a2200;font-size:18px;font-weight:800;font-family:inherit;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 14px rgba(0,0,0,.4)}
@media (max-width:420px){.lbn-card{padding:22px 14px 16px}.lbn-ttl{font-size:22px}.lbn-row{font-size:14px;padding:8px 10px}.lbn-sum b{font-size:30px}}
@keyframes lbnIn{from{opacity:0}to{opacity:1}}

/* 20261019h 预览卡总胡数 */
.cin-hu{margin:4px 0 0;font-size:13px;color:#f3e0a6;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cin-hu b{color:#ffd45a;font-size:15px}

/* 20261019k：大厅修为/战力恢复前三；去掉人数；修为榜前三金银铜分层强化（战力榜领奖台保持简洁） */
.rkc-cult .rkc-h b { font-size: 13.5px; letter-spacing: .04em; }
.rkc-zl .rkc-h b { font-size: 15px; }
@media (max-width: 520px) {
  .rkc-cult .rkc-h b { font-size: 12.5px; letter-spacing: 0; }
  .rkc-zl .rkc-h b { font-size: 14px; }
}

/* 恢复前三双行排版（覆盖 20261019i 单行紧凑） */
.rkc-cult .rkc-top { gap: 7px; margin-top: 5px; }
.rkc-cult .rkc-top li,
.rkc-cult .rkc-top li.rkc-r1,
.rkc-cult .rkc-top li.rkc-r2,
.rkc-cult .rkc-top li.rkc-r3 {
  grid-template-columns: 22px auto minmax(0,1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 8px; row-gap: 2px; align-items: center;
  min-height: 0; padding: 7px 10px 7px 7px;
  border-radius: 12px; position: relative; overflow: hidden;
}
.rkc-cult .rkc-top li .rkc-no { grid-column: 1; grid-row: 1; width: 20px; height: 20px; font-size: 11px; }
.rkc-cult .rkc-top li .rkc-av { grid-column: 2; grid-row: 1; }
.rkc-cult .rkc-top li .rkc-n { grid-column: 3 / -1; grid-row: 1; font-size: 14px; line-height: 1.2; }
.rkc-cult .rkc-top li .rkc-v {
  grid-column: 2 / 4; grid-row: 2; display: flex; align-items: baseline; gap: 6px;
  font-size: 14px; text-align: left; white-space: nowrap; overflow: hidden;
}
.rkc-cult .rkc-top li .rkc-v small { display: inline; font-size: 11px; line-height: 1.1; opacity: .9; }
.rkc-cult .rkc-top li .mb-btn { grid-column: 4; grid-row: 2; justify-self: end; }

/* —— 第1名：金牌 · 金辉脉冲 —— */
.rkc-cult .rkc-top li.rkc-r1 {
  border: 1.5px solid #ffe08a;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255,230,120,.55), transparent 55%),
    linear-gradient(105deg, rgba(210,150,20,.92), rgba(255,214,102,.38) 48%, rgba(70,45,8,.55));
  box-shadow: 0 0 18px rgba(255,210,80,.55), 0 0 4px rgba(255,240,180,.4), inset 0 1px 0 rgba(255,250,220,.55);
  min-height: 52px; padding: 9px 11px 9px 8px;
}
.rkc-cult .rkc-r1 .rkc-av, .rkc-cult .rkc-r1 .rkc-img { width: 42px !important; height: 42px !important; }
.rkc-cult .rkc-top li.rkc-r1 { grid-template-columns: 22px 42px minmax(0,1fr) auto; }
.rkc-cult .rkc-r1 .rkc-av {
  border-radius: 50%;
  box-shadow: 0 0 14px 3px rgba(255,214,102,.85), 0 0 0 2px #ffe9a0, 0 0 28px rgba(255,200,60,.35);
}
.rkc-cult .rkc-r1 .rkc-no {
  background: linear-gradient(160deg, #fff8d0, #f0c020 55%, #b87810);
  box-shadow: 0 0 10px rgba(255,210,90,.9), inset 0 1px 0 #fff8;
  color: #3a2200; font-weight: 800;
}
.rkc-cult .rkc-r1 .rkc-n { font-size: 16px; color: #fff6c8; text-shadow: 0 0 10px rgba(255,210,80,.55), 0 1px 2px #000a; }
.rkc-cult .rkc-r1 .rkc-n.nl-a { font-size: 17px; }
.rkc-cult .rkc-r1 .rkc-v { font-size: 17px; color: #fff0b0; text-shadow: 0 0 8px rgba(255,200,60,.45); }
body.fx-lobby .rkc-cult .rkc-top li.rkc-r1 { animation: rkcGoldPulse 2.6s ease-in-out infinite; }
@keyframes rkcGoldPulse {
  0%,100% { box-shadow: 0 0 14px rgba(255,210,80,.45), inset 0 1px 0 rgba(255,250,220,.5); }
  50% { box-shadow: 0 0 26px rgba(255,220,100,.75), 0 0 8px rgba(255,240,180,.35), inset 0 1px 0 rgba(255,250,220,.65); }
}

/* —— 第2名：银牌 · 冷银金属 —— */
.rkc-cult .rkc-top li.rkc-r2 {
  border: 1.5px solid #d8e2ef;
  background:
    radial-gradient(110% 80% at 100% 0%, rgba(200,220,255,.35), transparent 50%),
    linear-gradient(105deg, rgba(130,142,160,.75), rgba(220,228,240,.22) 50%, rgba(28,32,40,.55));
  box-shadow: 0 0 12px rgba(180,200,230,.35), inset 0 1px 0 rgba(255,255,255,.28);
  min-height: 44px;
}
.rkc-cult .rkc-r2 .rkc-av, .rkc-cult .rkc-r2 .rkc-img { width: 34px !important; height: 34px !important; }
.rkc-cult .rkc-top li.rkc-r2 { grid-template-columns: 22px 34px minmax(0,1fr) auto; }
.rkc-cult .rkc-r2 .rkc-av {
  border-radius: 50%;
  box-shadow: 0 0 0 2px #e8eef6, 0 0 10px rgba(180,200,230,.55);
}
.rkc-cult .rkc-r2 .rkc-no {
  background: linear-gradient(160deg, #f8fbff, #a8b4c4 60%, #6a7688);
  box-shadow: 0 0 6px rgba(200,210,230,.6); color: #1a2030; font-weight: 800;
}
.rkc-cult .rkc-r2 .rkc-n { font-size: 14.5px; color: #eef3fa; text-shadow: 0 1px 2px #0008; }
.rkc-cult .rkc-r2 .rkc-v { font-size: 14.5px; color: #d5e2f4; }

/* —— 第3名：铜牌 · 暖铜沉光 —— */
.rkc-cult .rkc-top li.rkc-r3 {
  border: 1.5px solid #d09258;
  background:
    radial-gradient(110% 80% at 0% 100%, rgba(200,110,40,.4), transparent 55%),
    linear-gradient(105deg, rgba(150,80,30,.72), rgba(210,130,60,.22) 50%, rgba(40,22,10,.55));
  box-shadow: 0 0 10px rgba(200,110,40,.32), inset 0 1px 0 rgba(255,200,140,.22);
  min-height: 40px;
}
.rkc-cult .rkc-r3 .rkc-av, .rkc-cult .rkc-r3 .rkc-img { width: 30px !important; height: 30px !important; }
.rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 22px 30px minmax(0,1fr) auto; }
.rkc-cult .rkc-r3 .rkc-av {
  border-radius: 50%;
  box-shadow: 0 0 0 2px #c88848, 0 0 8px rgba(200,110,40,.45);
}
.rkc-cult .rkc-r3 .rkc-no {
  background: linear-gradient(160deg, #ffd4a8, #c07030 55%, #7a4018);
  box-shadow: 0 0 6px rgba(200,110,40,.55); color: #2a1400; font-weight: 800;
}
.rkc-cult .rkc-r3 .rkc-n { font-size: 13.5px; color: #ffd8b0; text-shadow: 0 1px 2px #0008; }
.rkc-cult .rkc-r3 .rkc-v { font-size: 13.5px; color: #f0c090; }

.rkc-cult .rkc-top li.vacant { min-height: 36px; opacity: .42; }

/* 战力榜大厅卡：仅前三领奖台，略收紧 */
.szl-pod { margin: 5px 0 4px !important; }
.rkc-solo .szl-sub { display: none; }
.rkc-solo .szl-col.p2 { min-height: 78px; }
.rkc-solo .szl-col.p3 { min-height: 70px; }

/* 完整修为境界榜弹窗：前三领奖台分层强化 */
.rk-pod.rk-p1 {
  border-color: #ffe08a;
  background:
    radial-gradient(90% 70% at 50% 0%, rgba(255,220,100,.35), transparent 65%),
    linear-gradient(180deg, rgba(212,160,30,.28), rgba(0,0,0,.42));
  box-shadow: 0 0 28px rgba(255,210,80,.45), inset 0 1px 0 rgba(255,246,200,.35);
}
.rk-pod.rk-p2 {
  border-color: #d0dae8;
  background:
    radial-gradient(90% 70% at 50% 0%, rgba(200,220,255,.22), transparent 65%),
    linear-gradient(180deg, rgba(140,150,170,.22), rgba(0,0,0,.4));
  box-shadow: 0 0 14px rgba(180,200,230,.28), inset 0 1px 0 rgba(255,255,255,.2);
}
.rk-pod.rk-p3 {
  border-color: #d09258;
  background:
    radial-gradient(90% 70% at 50% 0%, rgba(210,120,50,.28), transparent 65%),
    linear-gradient(180deg, rgba(150,80,30,.22), rgba(0,0,0,.4));
  box-shadow: 0 0 12px rgba(200,110,40,.28), inset 0 1px 0 rgba(255,200,140,.18);
}
.rk-p1 .rk-medal {
  background: linear-gradient(160deg, #fff8d0, #e8b820 50%, #a86810);
  box-shadow: 0 0 12px rgba(255,210,90,.7);
}
.rk-p2 .rk-medal {
  background: linear-gradient(160deg, #f8fbff, #a8b4c4 55%, #6a7688);
  box-shadow: 0 0 8px rgba(200,210,230,.5);
}
.rk-p3 .rk-medal {
  background: linear-gradient(160deg, #ffd4a8, #c07030 55%, #7a4018);
  box-shadow: 0 0 8px rgba(200,110,40,.5);
}
.rk-p1 .rk-art-wrap {
  max-width: 188px;
  box-shadow: 0 0 22px 5px rgba(255,214,102,.7), 0 0 0 2px #ffe9a0;
}
.rk-p2 .rk-art-wrap {
  max-width: 150px;
  box-shadow: 0 0 12px rgba(180,200,230,.45), 0 0 0 2px #d8e2ef;
}
.rk-p3 .rk-art-wrap {
  max-width: 126px;
  box-shadow: 0 0 10px rgba(200,110,40,.4), 0 0 0 2px #d09258;
}
.rk-p1 .rk-name { color: #fff6c8; text-shadow: 0 0 8px rgba(255,210,80,.4); }
.rk-p2 .rk-name { color: #eef3fa; }
.rk-p3 .rk-name { color: #ffd8b0; }
.rk-p1 .rk-pts { color: #ffe08a; text-shadow: 0 0 8px rgba(255,200,60,.35); }

@media (max-width: 520px) {
  .rkc-cult .rkc-top { gap: 5px; }
  .rkc-cult .rkc-top li,
  .rkc-cult .rkc-top li.rkc-r2,
  .rkc-cult .rkc-top li.rkc-r3 {
    column-gap: 5px; padding: 5px 6px 5px 5px;
  }
  .rkc-cult .rkc-top li.rkc-r1 {
    grid-template-columns: 18px 34px minmax(0,1fr) auto; min-height: 44px; padding: 6px 7px 6px 5px;
  }
  .rkc-cult .rkc-top li.rkc-r2 { grid-template-columns: 18px 28px minmax(0,1fr) auto; min-height: 38px; }
  .rkc-cult .rkc-top li.rkc-r3 { grid-template-columns: 18px 26px minmax(0,1fr) auto; min-height: 34px; }
  .rkc-cult .rkc-r1 .rkc-av, .rkc-cult .rkc-r1 .rkc-img { width: 34px !important; height: 34px !important; }
  .rkc-cult .rkc-r2 .rkc-av, .rkc-cult .rkc-r2 .rkc-img { width: 28px !important; height: 28px !important; }
  .rkc-cult .rkc-r3 .rkc-av, .rkc-cult .rkc-r3 .rkc-img { width: 26px !important; height: 26px !important; }
  .rkc-cult .rkc-r1 .rkc-n { font-size: 14px; } .rkc-cult .rkc-r1 .rkc-n.nl-a { font-size: 15px; }
  .rkc-cult .rkc-r2 .rkc-n { font-size: 13px; } .rkc-cult .rkc-r3 .rkc-n { font-size: 12.5px; }
  .rkc-cult .rkc-r1 .rkc-v { font-size: 14px; } .rkc-cult .rkc-r2 .rkc-v, .rkc-cult .rkc-r3 .rkc-v { font-size: 12.5px; }
  .rkc-cult .rkc-top li .rkc-v small { font-size: 10px; }
  .rkc-solo .szl-col.p2 { min-height: 70px; } .rkc-solo .szl-col.p3 { min-height: 64px; }
}
@media (prefers-reduced-motion: reduce) {
  body.fx-lobby .rkc-cult .rkc-top li.rkc-r1 { animation: none; }
}

/* 20261019o 称号界面加强：座位大小签 / 去佩戴轻闪 / 大厅下一称号 / 图鉴快完成 / 榜行短签 / 结算进度 / 跑马灯不抢紫 */
.jh-chip.seat.me, .jh-chip.sc.me { font-size: 13px; line-height: 20px; padding: 1px 8px; margin-left: 5px; font-weight: 700; letter-spacing: .04em;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset; }
.jh-chip.seat.other, .jh-chip.sc.other { font-size: 9px; line-height: 14px; padding: 0 4px; margin-left: 3px; opacity: .92; }
.jh-chip.hello { font-size: 12px; line-height: 18px; margin-left: 6px; vertical-align: middle; }
.jh-chip.rk { font-size: 10px; line-height: 15px; padding: 0 5px; margin-left: 4px; max-width: 7em; overflow: hidden; text-overflow: ellipsis; }
.jh-chip.av, .jh-go.av { margin-left: 8px; }
.jh-av-wear { display: inline-flex; align-items: center; margin-left: 6px; }
.jh-go-flash { animation: jhGoFlash 2.4s ease-in-out infinite; }
@keyframes jhGoFlash {
  0%, 100% { opacity: .75; box-shadow: 0 0 0 rgba(255,210,90,0); }
  50% { opacity: 1; box-shadow: 0 0 10px rgba(255,210,90,.55); border-color: #e8c260; color: #ffe9b0; }
}
.jh-next { display: block; width: 100%; margin: 4px 0 2px; padding: 2px 8px; font-size: 12px; line-height: 1.4; color: #e8d5a0;
  background: rgba(40,24,8,.35); border-radius: 6px; border: 1px solid rgba(232,194,96,.22); box-sizing: border-box; }
.jh-next b { color: #ffe9b0; font-weight: 700; }
.jh-next em { font-style: normal; color: #ffd36a; font-weight: 700; }
.hl-row { flex-wrap: wrap; }
.jh-filters { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 4px; }
.jh-filters button { padding: 3px 10px; font-size: 12px; border-radius: 999px; border: 1px solid rgba(232,194,96,.35); background: rgba(0,0,0,.25); color: #e8d5a0; cursor: pointer; }
.jh-filters button.on { background: linear-gradient(180deg,#6a4a18,#3a280c); border-color: #e8c260; color: #fff1c9; font-weight: 700; }
.jh-empty { padding: 18px 8px; text-align: center; }
.settle-jh-hint { margin-top: 4px; font-size: 12px; line-height: 1.35; color: #c9b07a; opacity: .95; }
/* 跑马灯称号：金/银/铜描边，弱于境界紫，金光仅 .glow（榜首类） */
.cel-jh { font-size: .78em; font-weight: 600; border: 1px solid var(--tc, #b0743e); color: var(--tc2, #e0a06a);
  background: rgba(0,0,0,.22); text-shadow: none; filter: none; box-shadow: none; }
.cel-jh.glow { animation: jhGlow 2.2s ease-in-out infinite; box-shadow: 0 0 8px rgba(255,210,90,.85); }
.cel-jh:not(.glow) { box-shadow: none; }
.jh-chip:not(.glow) { animation: none; }
.jh-chip.glow { animation: jhGlow 2.2s ease-in-out infinite; }

/* ===== 20261019q 跑马灯境界/称号加亮 + 多套亮色（避免条条雷同） ===== */
.cel-rm { font-weight: 900; color: #e8b8ff; -webkit-text-fill-color: #e8b8ff; margin-right: .3em; white-space: nowrap;
  filter: drop-shadow(0 0 5px rgba(220,160,255,.95)) drop-shadow(0 0 10px rgba(180,100,255,.55)); text-shadow: 0 0 6px rgba(255,255,255,.35); }
.cel-rm.rm-a { color: #f0c8ff; -webkit-text-fill-color: #f0c8ff; filter: drop-shadow(0 0 5px rgba(230,150,255,.95)); }
.cel-rm.rm-b { color: #9ef0ff; -webkit-text-fill-color: #9ef0ff; filter: drop-shadow(0 0 5px rgba(80,220,255,.95)); }
.cel-rm.rm-c { color: #ffe08a; -webkit-text-fill-color: #ffe08a; filter: drop-shadow(0 0 5px rgba(255,200,80,.95)); }
.cel-rm.rm-d { color: #ff9ec8; -webkit-text-fill-color: #ff9ec8; filter: drop-shadow(0 0 5px rgba(255,120,180,.95)); }
.cel-rm.rm-e { color: #a8ffc8; -webkit-text-fill-color: #a8ffc8; filter: drop-shadow(0 0 5px rgba(80,255,160,.95)); }
.cel-rm.rm-f { color: #c8d8ff; -webkit-text-fill-color: #c8d8ff; filter: drop-shadow(0 0 5px rgba(140,180,255,.95)); }
.cel-static .cel-rm { filter: none; text-shadow: none; }
.cel-jh { background: rgba(20,16,8,.55) !important; }
.cel-jh.tc-gold { --tc: #ffd76a; --tc2: #fff6d0; }
.cel-jh.tc-silver { --tc: #d0d8e4; --tc2: #ffffff; }
.cel-jh.tc-bronze { --tc: #e09858; --tc2: #ffe0b8; }
.cel-jh.jh-a { --tc: #60a5fa; --tc2: #dbeafe; border-color: #60a5fa; color: #dbeafe; background: rgba(30,64,120,.55) !important; }
.cel-jh.jh-b { --tc: #34d399; --tc2: #d1fae5; border-color: #34d399; color: #d1fae5; background: rgba(6,78,59,.5) !important; }
.cel-jh.jh-c { --tc: #f472b6; --tc2: #fce7f3; border-color: #f472b6; color: #fce7f3; background: rgba(112,26,70,.5) !important; }
.cel-jh.jh-d { --tc: #fbbf24; --tc2: #fef3c7; border-color: #fbbf24; color: #fef3c7; background: rgba(120,70,10,.5) !important; }
.cel-jh.jh-e { --tc: #a78bfa; --tc2: #ede9fe; border-color: #a78bfa; color: #ede9fe; background: rgba(70,40,130,.55) !important; }
.cel-jh.jh-f { --tc: #38bdf8; --tc2: #e0f2fe; border-color: #38bdf8; color: #e0f2fe; background: rgba(12,74,110,.55) !important; }
.cel-jh.glow { box-shadow: 0 0 10px rgba(255,230,140,.95), 0 0 4px rgba(255,255,255,.5); }

/* ===== 20261019s 马桥电影院：站点主色复合色系（金/墨/青绿；弃蓝白与暗红） ===== */
.cin-screen{border:1px solid #6b5420 !important;background:radial-gradient(120% 90% at 50% 0,#1a2818 0%,#0e120a 48%,#080805 100%) !important;box-shadow:inset 0 0 28px rgba(0,0,0,.65),0 0 16px rgba(212,175,55,.18) !important}
.cin-curtain{height:20px !important;background:repeating-linear-gradient(90deg,rgba(212,175,55,.42) 0 12px,rgba(26,40,28,.7) 12px 24px),linear-gradient(90deg,#2a2410,#0f1a14,#2a2410) !important;border-bottom:2px solid #c9a24a !important;opacity:.85 !important}
.cin-neon{color:#ffe9a8 !important;text-shadow:0 0 4px #d4af37,0 0 14px rgba(127,232,214,.35),0 0 22px rgba(212,175,55,.45) !important;animation:cinNeon 3.2s ease-in-out infinite !important;letter-spacing:4px !important}
.cin-enter{border:1px solid #c9a24a !important;background:rgba(212,175,55,.12) !important;color:#f1d27a !important}
.cin-enter:hover{background:rgba(127,232,214,.12) !important;border-color:#7fe8d6 !important;color:#c9fff3 !important}
.cin-cnt{color:#b39a62 !important}
.cin-rt{border:1px solid #6b5420 !important;background:#12100a !important;color:#d9c486 !important}
.cin-rt.on{background:linear-gradient(#e8c766,#b8902f) !important;color:#2a1d04 !important;border-color:#f1d27a !important;font-weight:700}
.cin-poster{border:1px solid #8a6a22 !important;background:linear-gradient(170deg,#1a2214,#0a0c08 70%) !important;color:#f3e2b3 !important;box-shadow:0 2px 10px rgba(0,0,0,.35),inset 0 0 0 1px rgba(212,175,55,.12)}
.cin-poster.pick{border-color:#7fe8d6 !important;box-shadow:0 0 12px rgba(127,232,214,.35) !important}
.cp-badge{background:linear-gradient(#e8c766,#b8902f) !important;color:#2a1d04 !important}
.cp-pat{color:#ffe9a8 !important;text-shadow:0 0 8px rgba(212,175,55,.4) !important}
.cp-tai{color:#c9a97a !important}.cp-tai b{color:#ffd36a !important}
.cp-who{color:#c9b27a !important}
.cp-like,.lk-btn{border:0 !important;background:transparent !important;color:#ff2d55 !important;box-shadow:none !important}
.lk-btn i,.cp-like i{color:#ff2d55 !important}
.lk-btn.on,.cp-like.on{background:transparent !important;border:0 !important;color:#ff1744 !important}
.lk-btn.on i,.cp-like.on i{color:#ff1744 !important}
.cin-more{border:1px dashed #8a6a22 !important;background:rgba(14,18,10,.85) !important;color:#f1d27a !important}
.cp-more{color:#ffe9a8 !important}.cin-more em{color:#7fe8d6 !important}
.cin-lobby .cin-none{color:#b39a62 !important}
.cin-book{color:#f3e0a6 !important}
.cin-h{color:#f1d27a !important;letter-spacing:4px !important}
.cin-sub{color:#b39a62 !important}
.cin-tabs .cin-tab,.cin-tab{border:1px solid #6b5420 !important;background:#16120a !important;color:#c9b27a !important}
.cin-tab.on{background:linear-gradient(#e8c766,#b8902f) !important;color:#2a1d04 !important;border-color:#f1d27a !important}
.cin-card,.bst-card{border:1px solid #6b5420 !important;background:linear-gradient(160deg,#1a2214,#0a0c08) !important;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.cin-pat,.bst-top .cin-pat{color:#ffe9a8 !important;text-shadow:0 0 8px rgba(212,175,55,.4) !important}
.cin-top em,.bst-top em{color:#d9c486 !important}
.cin-tag{border:1px solid #8a6a22 !important;color:#e8c766 !important;background:rgba(212,175,55,.1) !important}
.cin-solo{border-color:#3a7a6a !important;color:#9fe8d6 !important;background:rgba(20,60,50,.35) !important}
.cin-big{background:linear-gradient(#e8c766,#b8902f) !important;color:#2a1d04 !important;border-color:#f1d27a !important}
.cin-tag.cin-pick{background:linear-gradient(#7fe8d6,#2a8a78) !important;color:#04120f !important;border-color:#7fe8d6 !important}
.cin-who,.bst-who{color:#c9b27a !important}
.cin-who b,.bst-who .bw-nm,.cr-who .cr-nm{color:#f3e0a6 !important}
.cin-share,.cin-moreb,.cr-poster{border:1px solid #8a6a22 !important;background:#16120a !important;color:#e8c766 !important}
.cin-like,.cr-like.lk-btn{border:0 !important;background:transparent !important;color:#ff2d55 !important;box-shadow:none !important}
.cin-like.on,.cr-like.lk-btn.on{background:transparent !important;border:0 !important;color:#ff1744 !important}
.bst-rank{background:linear-gradient(#f1d27a,#b8902f) !important;color:#2a1d04 !important}
.bst-dots i{background:#4a3a18 !important}.bst-dots i.on{background:#f1d27a !important}
.bst-likes i{color:#ff2d55 !important}
.cin-rep{background:rgba(5,8,5,.55) !important}
.cin-rep-in{background:linear-gradient(180deg,#16120a,#0a0c08);border:1px solid #6b5420;border-radius:14px;padding:16px 14px;box-shadow:0 8px 28px rgba(0,0,0,.5),0 0 18px rgba(212,175,55,.12)}
.cin-rep-x{border:1px solid #8a6a22 !important;background:#16120a !important;color:#f1d27a !important}
.cr-pat{color:#ffe9a8 !important}
.cr-who{color:#c9b27a !important}
.cin-self{background:linear-gradient(135deg,#e8c766,#8a6a22) !important;color:#2a1d04 !important}
.cin-card-btn{border:2px solid #c9a24a !important;background:linear-gradient(135deg,#e8c766,#b8902f 55%,#8a6418) !important;color:#2a1d04 !important;box-shadow:0 0 18px rgba(241,210,122,.28) !important}
.cin-ico{background:#1a1608 !important;color:#f1d27a !important}
.cin-strip{background:#0d0a05 !important;border:1px solid #6b5420 !important}
.cin-th small{color:#e8c766 !important}
.cin-none{color:#b39a62 !important}
.cin-rt{background:#12180f !important}
.cin-poster .cp-like i,.cp-like i{color:#ff2d55 !important}

/* ===== 20261019r 名局/战报/海报墙：牌面再放大（两行优先），文字保持可读 ===== */
.cin-grid{gap:3px}
.cin-grid img{max-width:96px !important}
.cl-g img,.bst-g img{max-width:88px !important}
.cp-g{gap:3px}.cp-g img{max-width:48px !important}
.cr-g{gap:5px}.cr-g img{max-width:148px !important}
.cin-poster{flex:0 0 210px !important;width:210px !important}
.cin-more{flex:0 0 210px !important;width:210px !important}
.cp-pat{font-size:17px !important}
.cp-who b{font-size:13px !important}
.cin-pat,.bst-top .cin-pat{font-size:18px !important}
.cr-pat{font-size:clamp(24px,6.5vw,40px) !important}
.cr-who .cr-nm{font-size:18px !important}
.tai-pill.big b{font-size:28px !important}

/* ===== 20261019t 大厅左上：昵称与称号紧贴，只留一个空格 ===== */
#hello-name .hello-nm-row { display: flex; align-items: flex-end; flex-wrap: nowrap; gap: 0.3em; min-width: 0; width: 100%; height: 28px; line-height: 28px; }
#hello-name .hello-nm-row .hello-nm { flex: 0 1 auto; min-width: 0; max-width: 58%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; height: 28px; line-height: 28px; display: block; }
#hello-name .hello-nm-row .jh-chip.hello,
#hello-name .hello-nm-row .jh-go.hello { flex: 0 1 auto; margin-left: 0; max-width: 40%; overflow: hidden; text-overflow: ellipsis; align-self: center; }
#hello-name .jh-chip.hello, #hello-name .jh-go.hello { margin-left: 0; }

/* 战力榜卡片内部下方：我的战力 / 战绩 */
.rkc-zl .rkc-me-acts { display: flex; gap: 6px; justify-content: stretch; width: 100%; margin-top: 8px; box-sizing: border-box; padding: 0; }
.rkc-zl .rkc-me-acts .hud-btn { flex: 1 1 0; min-height: 32px; padding: 5px 8px; font-size: 12px; letter-spacing: .08em; border: 1px solid rgba(212,175,55,.5); background: rgba(212,175,55,.1); color: #ffe39a; border-radius: 999px; cursor: pointer; font-family: "Noto Serif SC", serif; }
.rkc-zl .rkc-me-acts .hud-btn:hover { background: rgba(127,232,214,.12); border-color: #7fe8d6; color: #c9fff3; }
@media (max-width: 520px) {
  .rkc-zl .rkc-me-acts { gap: 4px; margin-top: 6px; }
  .rkc-zl .rkc-me-acts .hud-btn { min-height: 30px; padding: 4px 6px; font-size: 11px; }
}


/* 第 7 档「飞升」(asc)：粉金 + 青色，沿用至强布局 */
.sp-asc { --c: #ff8fc8; background: linear-gradient(135deg, rgba(14,10,40,.92), rgba(4,4,16,.97) 60%, rgba(60,44,6,.88)); box-shadow: inset 0 0 18px rgba(255,143,200,.28); }
.sp-asc .sp-seal { color: #1a1200; background: radial-gradient(circle at 35% 30%, #ffe3f2, #b8892a 72%); animation: sp57thunder 2.2s ease-in-out infinite; }
.sp-asc .sp-name { background: linear-gradient(90deg, #ffe3f2, #ff8fc8 55%, #9b8cff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.solo-tier-tag.st-asc { color: #ffb3dc; border-color: rgba(255,143,200,.75); box-shadow: 0 0 8px rgba(255,143,200,.55); }
#table-screen.tier-asc::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; padding: 4px; background: linear-gradient(90deg, #1a1450, #ff8fc8, #4a3cb0, #ffe3f2, #1a1450) 0 0 / 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fx57flash 4s linear infinite; }
.fx55-master-banner.asc { color: #ffe3f2; text-shadow: 0 0 16px #7affd8, 0 0 30px #3a2cb0; background: linear-gradient(90deg, transparent, rgba(16,12,56,.88), transparent); font-size: 28px; }
#table-screen.tier-asc .sc36:not(.me) .av36 { position: relative; }
#table-screen.tier-asc .sc36:not(.me) .av36::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid transparent; border-top-color: #ff8fc8; border-right-color: #7affd8; box-shadow: 0 0 12px 3px rgba(122,255,216,.6); pointer-events: none; }
#table-screen.tier-asc[data-think] .sc36 .av36::after { background: rgba(24,16,70,.92) !important; border-color: rgba(255,143,200,.9) !important; }
.fx57-badge.asc { background: linear-gradient(135deg, #ffe3f2, #7affd8); color: #14103a; box-shadow: 0 0 8px rgba(122,255,216,.8); }
.fx55-tier.v57.asc.win { color: #ffb3dc; }

/* 20261019zg 擂台/战国「最近对战」预览 */
.duel-recent{margin-top:8px}
.duel-rhead h5{margin:0;font-size:15px;color:#ffe9a8}
.duel-more{flex:none;min-height:30px;padding:0 12px;border:1px solid #ffd76a;background:rgba(255,215,106,.12);color:#ffe9a8;border-radius:10px;font-size:13px;cursor:pointer}
.duel-tribe .duel-rhead h5{color:#bfe9d0}
.duel-recent .rs-card{margin-top:6px}
.duel-recent .rs-time,.duel-book .rs-time{margin-left:auto;font-size:11px;color:#b9a574;flex:none}

/* 20261019zh 心形点赞图标：未赞=空心描边，已赞(.on/.done)=实心粉红；覆盖旧「赞」字图标颜色 */
.hrt{display:inline-flex;align-items:center;justify-content:center;font-style:normal;line-height:1;font-size:1.05em;vertical-align:-.12em}
.hrt .hrt-svg{display:block;fill:none;width:1.05em;height:1.05em}
.lk-btn i.hrt,.cin-like i.hrt,.hl-like i.hrt,.uc-like i.hrt,.wl-btn i.hrt,.lk-note i.hrt{color:#ff7fb0 !important}
.lk-btn.on i.hrt,.cin-like.on i.hrt,.hl-like.on i.hrt,.uc-like.done i.hrt,.wl-btn.on i.hrt,.lk-note i.hrt,.hlb-n i.hrt,#duel-like-fab.on .hrt{color:#ff4f86 !important}
.lk-btn.on i.hrt .hrt-svg,.cin-like.on i.hrt .hrt-svg,.hl-like.on i.hrt .hrt-svg,.uc-like.done i.hrt .hrt-svg,.wl-btn.on i.hrt .hrt-svg,.lk-note i.hrt .hrt-svg,.hlb-n i.hrt .hrt-svg,#duel-like-fab.on .hrt-svg{fill:currentColor}
.lk-note i.hrt{background:none !important;width:auto;height:auto}
#duel-like-fab{position:fixed;right:10px;bottom:190px;z-index:60;display:flex;align-items:center;justify-content:center;width:56px;height:56px;padding:0;margin:0;border:0 !important;border-radius:0;background:transparent !important;box-shadow:none !important;outline:none;color:#ff2d55;cursor:pointer;-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none}
#duel-like-fab .hrt{font-size:40px;color:#ff2d55 !important;line-height:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));transition:transform .15s}
#duel-like-fab .hrt .hrt-svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2.2}
#duel-like-fab:active .hrt{transform:scale(.88)}
#duel-like-fab.on .hrt .hrt-svg{fill:currentColor}
#duel-like-fab.on .hrt{color:#ff1744 !important;transform:scale(1.08)}
#duel-like-fab:focus-visible{outline:2px dashed #ff2d55;outline-offset:2px}
#duel-like-fab.hidden{display:none}
/* 20261019zo：大厅海报/列表胡数标签，避免 nowrap 行被挤没；跟在单机/联网右侧 */
.cp-row1 .cin-hu-inline,.cin-top .cin-hu-inline,.bst-who .cin-hu-inline{flex:none;position:relative;z-index:1;color:#ffd45a !important;background:rgba(40,28,8,.85) !important;border:1px solid rgba(255,212,90,.65) !important;font-size:12px !important;padding:2px 8px;max-width:none;overflow:visible}
.cp-row1{flex-wrap:nowrap;min-width:0;gap:4px;align-items:center}
.cp-row1 .cp-badge,.cp-row1 .tai-pill{flex:none}
.cp-row1 .cin-hu-inline{order:0}
.cin-top{overflow:visible !important}

/* 20261019zn 电影院点赞：纯红心，无按钮底/边框；数字旁排 */
.cin-like .hrt .hrt-svg,.lk-btn .hrt .hrt-svg{fill:none;stroke:currentColor;stroke-width:2.2}
.cin-like.on .hrt .hrt-svg,.lk-btn.on .hrt .hrt-svg{fill:currentColor}
.cin-hu-inline{display:inline-flex;align-items:center;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:700;color:#ffd45a;border:1px solid rgba(255,212,90,.45);background:rgba(255,212,90,.12);white-space:nowrap;line-height:1.4;flex:none}
.cin-top .cin-hu-inline{margin-right:2px}
.bst-who .cin-hu-inline{flex:none}


/* 20261019zp 每日最佳：点赞行下方默认 3 条留言，紧凑 */
.bst-cm{list-style:none;margin:4px 0 0;padding:4px 6px;border-radius:8px;background:rgba(0,0,0,.28);border:1px solid rgba(138,106,34,.35);display:flex;flex-direction:column;gap:2px;max-width:100%}
.bst-cm li{margin:0;padding:0;font-size:11px;line-height:1.35;color:#c9b27a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.bst-cm b{color:#f3e0a6;font-weight:700;margin-right:4px}
.bst-cm:empty{display:none}

/* 20261019zq 擂台/战国最近对战：两行牌 + 点赞评论 */
.duel-sum .cin-grid.duel-g{margin-top:6px}
.duel-g .cg-win{outline:2px solid #ffd45a;border-radius:4px;filter:brightness(1.08)}
.duel-act{display:flex;align-items:center;gap:8px;margin-top:6px}
.duel-act .lk-btn{min-height:36px}
.duel-cm{margin-top:4px}
.duel-cm-layer{position:fixed;inset:0;z-index:420;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.55);padding:12px;box-sizing:border-box}
.duel-cm-box{width:min(100%,420px);max-height:70vh;overflow:auto;background:#16120a;border:1px solid #8a6a22;border-radius:14px;padding:12px 12px 10px;position:relative;color:#e8c766}
.duel-cm-box h4{margin:0 28px 8px 0;color:#f1d27a;font-size:16px}
.duel-cm-box .rs-x{position:absolute;right:8px;top:8px;width:36px;height:36px;border-radius:50%;border:1px solid #8a6a22;background:#3a0f12;color:#ffe6c0;font-size:20px;cursor:pointer}
.duel-cm-box .cm-list{min-height:48px;margin-bottom:8px}
.duel-cm-box .cm-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
/* 20261019zu 房间邀请在线用户 / 满 4 人倒计时 */
.rinv-box{width:100%;max-width:420px;margin:8px auto;padding:8px 10px;border:1px solid #6a5320;border-radius:10px;background:rgba(20,14,6,.75);text-align:left}
.rinv-box.hidden{display:none}
.rinv-head{color:#f3e0a6;font-size:14px;margin-bottom:6px}.rinv-head small{color:#9c8658;font-size:11px;margin-left:6px}
.rinv-list{max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.rinv-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px dashed #3a3220}
.rinv-row b{color:#f0d78a;font-weight:500}.rinv-row small{flex:1;color:#9c8658;font-size:11px}
.rinv-st{color:#cbb58a;font-size:12px;white-space:nowrap}.rinv-st.ok{color:#8fd4a8}
.lobby-seat em.acc{display:block;margin-top:2px;font-style:normal;font-size:11px;color:#8fd4a8}
.lobby-auto{margin:6px 0 2px;text-align:center;font-size:20px;font-weight:700;color:#ffe08a;letter-spacing:.08em;text-shadow:0 0 10px rgba(255,210,90,.7)}
.lobby-auto.hidden{display:none}
#btn-fill-bots.btn-go{background:linear-gradient(180deg,#ffe08a,#d4af37);color:#1a1408;border-color:#ffe08a;box-shadow:0 0 18px 4px rgba(255,214,102,.75);animation:rinv-glow .9s ease-in-out infinite}
@keyframes rinv-glow{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.15)}50%{box-shadow:0 0 16px 4px rgba(255,220,120,.85)}}

/* 20261019zz：好友/称号进右上角，竖屏不挤 */
#splash .user-bar .hud-fr,#splash .user-bar .hud-jh{position:relative;padding:4px 8px}
#splash .user-bar .jh-dot,#splash .user-bar .fr-dot{top:-4px;right:-4px}
#splash .user-bar #jh-next{display:none !important}
@media (max-width:520px){
  #splash .user-bar .hud-fr,#splash .user-bar .hud-jh{padding:4px 6px;font-size:12px}
}
@media (max-width:380px){
  #splash .user-bar .hud-fr,#splash .user-bar .hud-jh{padding:3px 5px;font-size:11px}
}
/* 每日最佳：第一行境界+昵称+称号，第二行原剩余 */
.bst-who{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.bst-who .bw-l1{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.bst-who .bw-l2{display:flex;flex-wrap:wrap;align-items:center;gap:6px;opacity:.95;font-size:.92em}

/* ===== 20261020i 战力榜前三：心跳（咚咚—停顿）+ 赤橙光晕扩散 =====
 * 与修为榜（金色正弦呼吸 box-shadow）、大师榜（蓝紫霓虹环绕）区分：双搏节奏 + 向外扩散的脉冲环，赤橙/金色系。
 * 只动 transform/opacity（徽章缩放 + 伪元素光环），不改布局、不挡字。 */
.szl-col.p1, .szl-col.p2, .szl-col.p3, .zl-pod.p1, .zl-pod.p2, .zl-pod.p3 { position: relative; }
.szl-col.p1:not(.vacant)::after, .szl-col.p2:not(.vacant)::after, .szl-col.p3:not(.vacant)::after,
.zl-pod.p1:not(.empty)::after, .zl-pod.p2:not(.empty)::after, .zl-pod.p3:not(.empty)::after {
  content: ""; position: absolute; inset: 0; border-radius: 12px; pointer-events: none;
  border: 1.5px solid rgba(255,110,40,.85);
  box-shadow: 0 0 14px 2px rgba(255,90,30,.55), inset 0 0 10px rgba(255,170,60,.25);
  opacity: 0; transform: scale(1); will-change: transform, opacity;
}
.zl-pod.p1:not(.empty)::after, .zl-pod.p2:not(.empty)::after, .zl-pod.p3:not(.empty)::after { inset: -4px -2px 0; border-radius: 14px 14px 6px 6px; }
.szl-col.p1:not(.vacant) { box-shadow: 0 0 10px rgba(255,120,40,.35); border-color: #ffb36a; }
/* 第1名：最强（1.4s 一拍 ≈ 心率 86） */
body.fx-lobby .szl-col.p1:not(.vacant)::after, .zl-pod.p1:not(.empty)::after { animation: zlHeartRing 1.4s cubic-bezier(.2,.7,.3,1) infinite; }
body.fx-lobby .szl-col.p1:not(.vacant) .zl-emb, .zl-pod.p1:not(.empty) .zl-pod-emb .zl-emb { animation: zlHeartBeat 1.4s ease-out infinite; }
body.fx-lobby .szl-col.p1:not(.vacant) .szl-sc, .zl-pod.p1:not(.empty) .zl-pod-sc { animation: zlHeartText 1.4s ease-out infinite; }
/* 第2/3名：弱一些、慢一些，像回声错拍 */
body.fx-lobby .szl-col.p2:not(.vacant)::after, .zl-pod.p2:not(.empty)::after { animation: zlHeartRingSoft 1.8s cubic-bezier(.2,.7,.3,1) .3s infinite; }
body.fx-lobby .szl-col.p3:not(.vacant)::after, .zl-pod.p3:not(.empty)::after { animation: zlHeartRingSoft 1.8s cubic-bezier(.2,.7,.3,1) .6s infinite; }
body.fx-lobby .szl-col.p2:not(.vacant) .zl-emb, .zl-pod.p2:not(.empty) .zl-pod-emb .zl-emb { animation: zlHeartBeatSoft 1.8s ease-out .3s infinite; }
body.fx-lobby .szl-col.p3:not(.vacant) .zl-emb, .zl-pod.p3:not(.empty) .zl-pod-emb .zl-emb { animation: zlHeartBeatSoft 1.8s ease-out .6s infinite; }
@keyframes zlHeartBeat {
  0%, 32%, 100% { transform: scale(1); filter: drop-shadow(0 0 4px rgba(255,120,40,.35)); }
  7% { transform: scale(1.04); filter: drop-shadow(0 0 10px rgba(255,110,40,.75)); }
  14% { transform: scale(1); }
  22% { transform: scale(1.06); filter: drop-shadow(0 0 16px rgba(255,80,30,.95)); }
}
@keyframes zlHeartBeatSoft {
  0%, 32%, 100% { transform: scale(1); }
  7% { transform: scale(1.02); }
  14% { transform: scale(1); }
  22% { transform: scale(1.035); filter: drop-shadow(0 0 8px rgba(255,140,60,.6)); }
}
@keyframes zlHeartText {
  0%, 32%, 100% { text-shadow: 0 0 8px rgba(255,170,60,.35); }
  22% { text-shadow: 0 0 16px rgba(255,90,30,.95), 0 0 4px #fff3c0; }
}
/* 光环：第二下（重搏）时最亮，然后向外扩散淡出，余下时间静止 = 「咚咚—停」 */
@keyframes zlHeartRing {
  0% { opacity: 0; transform: scale(1); }
  7% { opacity: .55; transform: scale(1.01); }
  14% { opacity: .2; transform: scale(1.02); }
  22% { opacity: 1; transform: scale(1.02); }
  55% { opacity: 0; transform: scale(1.1); }
  100% { opacity: 0; transform: scale(1.1); }
}
@keyframes zlHeartRingSoft {
  0% { opacity: 0; transform: scale(1); }
  22% { opacity: .55; transform: scale(1.01); }
  55% { opacity: 0; transform: scale(1.06); }
  100% { opacity: 0; transform: scale(1.06); }
}
@media (max-width: 520px) {
  /* 手机竖屏：光环外扩收小，避免压到相邻列 */
  @keyframes zlHeartRing { 0% { opacity: 0; transform: scale(1); } 7% { opacity: .5; } 14% { opacity: .2; } 22% { opacity: .95; transform: scale(1.01); } 55%, 100% { opacity: 0; transform: scale(1.05); } }
  @keyframes zlHeartRingSoft { 0% { opacity: 0; transform: scale(1); } 22% { opacity: .5; } 55%, 100% { opacity: 0; transform: scale(1.03); } }
}
@media (prefers-reduced-motion: reduce) {
  .szl-col::after, .zl-pod::after, .szl-col .zl-emb, .zl-pod .zl-emb, .szl-sc, .zl-pod-sc { animation: none !important; }
  .szl-col.p1:not(.vacant)::after, .zl-pod.p1:not(.empty)::after { opacity: .6; }
}

/* ===== 20261020j 马桥奇门遁甲（大厅底部友情站点 · 洋产账号单点登录） ===== */
.qm-lobby { position: relative; margin: 14px auto 4px; max-width: 520px; padding: 12px 12px 10px; border-radius: 14px; overflow: hidden;
  background: radial-gradient(120% 80% at 50% -10%, rgba(64,200,140,.16), transparent 60%), linear-gradient(160deg, rgba(20,34,30,.92), rgba(14,18,22,.92));
  border: 1px solid rgba(110,220,170,.35); box-shadow: 0 6px 20px rgba(0,0,0,.35), inset 0 1px 0 rgba(180,255,220,.12); }
.qm-lobby::before { content: ""; position: absolute; inset: -40% -10% auto auto; width: 180px; height: 180px; pointer-events: none; opacity: .12;
  background: repeating-conic-gradient(from 0deg, #8ff0c4 0 2deg, transparent 2deg 45deg); border-radius: 50%; }
.qm-h { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 6px; font: 700 17px "Noto Serif SC", serif; letter-spacing: .18em; color: #dff7ea; text-shadow: 0 0 10px rgba(80,220,160,.35); }
.qm-h i { font-style: normal; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: 13px; letter-spacing: 0; color: #08201a; background: radial-gradient(circle at 35% 30%, #c8ffe6, #3fcf94); box-shadow: 0 0 10px rgba(80,230,170,.6); }
.qm-tip { margin: 0 0 10px; text-align: center; font-size: 12.5px; font-weight: 600; color: #4dffa6; text-shadow: 0 0 8px rgba(60,255,150,.45); }
.qm-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.qm-item { width: 100%; display: grid; grid-template-columns: 36px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 9px; align-items: center; text-align: left;
  padding: 8px 10px; border-radius: 10px; cursor: pointer; color: #eaf6f0; font: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); border: 1px solid rgba(140,230,190,.25); transition: border-color .2s, background .2s, transform .15s; }
.qm-item:hover { border-color: rgba(120,255,190,.7); background: linear-gradient(135deg, rgba(80,220,160,.16), rgba(255,255,255,.03)); }
.qm-item:active { transform: scale(.98); }
.qm-item:disabled { opacity: .7; cursor: progress; }
.qm-ic { grid-row: 1 / span 2; width: 36px; height: 36px; border-radius: 9px; overflow: hidden; display: grid; place-items: center; background: #0d1a16; box-shadow: 0 0 0 1px rgba(160,240,200,.3); }
.qm-ic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qm-ic.txt { border-radius: 50%; font: 700 17px "Noto Serif SC", serif; color: #08201a; background: radial-gradient(circle at 35% 30%, #d6ffe9, #46c98f); }
.qm-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14.5px; font-weight: 700; color: #f2fff8; }
.qm-st { font-size: 11px; color: #7fe8b6; }
.qm-item.off { opacity: .55; cursor: default; } .qm-item.off .qm-st { color: #a8b8b0; }
.lobby-foot-row { display: flex; gap: 10px; justify-content: center; flex-wrap: nowrap; margin: 10px 0 6px; }
.lobby-foot-row .hl-entry { margin: 0 !important; padding: 6px 16px; }
@media (max-width: 380px) { .lobby-foot-row .hl-entry { padding: 6px 11px; font-size: 12.5px; } .qm-list { grid-template-columns: 1fr 1fr; } }

/* ===== 20261020j 我的战力：Q × P × C 构成卡 ===== */
.zl-fx { margin: 10px 0 12px; padding: 10px 10px 8px; border-radius: 12px; background: linear-gradient(160deg, rgba(60,36,12,.85), rgba(24,16,8,.85)); border: 1px solid rgba(255,190,90,.35); }
.zl-fx-row { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.1fr); align-items: stretch; gap: 4px; }
.zl-fx-it { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-width: 0; padding: 6px 4px; border-radius: 9px; background: rgba(255,255,255,.04); text-align: center; }
.zl-fx-it small { font-size: 11px; color: #c9a86a; }
.zl-fx-it b { font: 700 20px/1.15 "Noto Serif SC", serif; color: #ffe39a; }
.zl-fx-it em { font-style: normal; font-size: 10.5px; line-height: 1.35; color: #b8a27a; word-break: break-all; }
.zl-fx-it.c b { color: #ffb36a; } .zl-fx-it.p b { color: #9ee6b4; }
.zl-fx-it.f { background: linear-gradient(160deg, rgba(255,170,60,.25), rgba(255,90,30,.12)); box-shadow: inset 0 0 0 1px rgba(255,170,80,.45); }
.zl-fx-it.f b { font-size: 22px; color: #fff0c0; text-shadow: 0 0 10px rgba(255,160,60,.6); }
.zl-fx-op { align-self: center; font-style: normal; font-weight: 700; color: #d9b36a; font-size: 15px; }
.zl-fx-tip { margin: 6px 2px 0; font-size: 11.5px; color: #c8b48a; text-align: center; }
@media (max-width: 520px) {
  .zl-fx-row { grid-template-columns: 1fr auto 1fr; row-gap: 6px; }
  .zl-fx-row .zl-fx-op:nth-of-type(2) { display: none; }
  .zl-fx-it b { font-size: 18px; } .zl-fx-it.f b { font-size: 20px; }
}

/* ===== 20261020k 擂台/战国 开场海报（390×844 舞台按视口等比缩放居中；约 2.5 秒入场，最后一帧停留到服务器开局） ===== */
.dip { position: fixed; inset: 0; z-index: 100050; background: rgba(0,0,0,.88); cursor: pointer; animation: dipIn .25s ease both; font-family: "Noto Serif SC", serif; color: #fff; }
.dip.out { animation: dipOut .25s ease both; }
@keyframes dipIn { from { opacity: 0; } } @keyframes dipOut { to { opacity: 0; } }
.dip-stage { position: absolute; left: 50%; top: 50%; width: 390px; height: 844px; overflow: hidden; transform-origin: 50% 50%; border-radius: 0; }
@media (min-width: 600px) { .dip-stage { border-radius: 18px; box-shadow: 0 0 60px rgba(0,0,0,.8); } }
.dip-stage * { box-sizing: border-box; }
.dip-logo { position: absolute; top: 22px; left: 50%; margin-left: -23px; width: 46px; height: 46px; border-radius: 12px; box-shadow: 0 0 18px rgba(0,0,0,.6); }
.dip-title { position: absolute; width: 100%; text-align: center; }
.dip-title h1 { margin: 0; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: 400; }
.dip-title p { margin: 6px 0 0; font-size: 13px; }
.dip-av { position: relative; border-radius: 50%; }
.dip-av img, .dip-av .dip-img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.dip-nm { font-weight: 700; letter-spacing: .04em; text-shadow: 0 2px 8px rgba(0,0,0,.8); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dip-realm { letter-spacing: .06em; }
.dip-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.dip-emb { display: inline-grid; place-items: center; width: 24px; height: 24px; clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); font-family: "Ma Shan Zheng", serif; font-size: 11px; }
.dip-foot { position: absolute; width: 100%; text-align: center; }
.dip-foot small { display: block; margin-top: 10px; font-size: 11px; letter-spacing: .3em; opacity: .8; }

/* —— 擂台：红金对决 —— */
.dip-lt { background: radial-gradient(60% 40% at 50% 52%, rgba(255,190,60,.35), transparent 70%), linear-gradient(118deg, #4a0505 0%, #8c0d0d 44%, #1a0303 44.4%, #1a0303 55.6%, #2a1a02 56%, #6b4708 100%); }
.dip-lt::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(118deg, transparent 0 22px, rgba(255,255,255,.035) 22px 23px), radial-gradient(circle at 50% 50%, transparent 40%, rgba(0,0,0,.65) 100%); }
.dip-rays { position: absolute; left: 50%; top: 440px; width: 900px; height: 900px; margin: -450px 0 0 -450px; opacity: .28; background: repeating-conic-gradient(from 0deg, rgba(255,210,100,.9) 0 3deg, transparent 3deg 15deg); -webkit-mask: radial-gradient(circle, #000 0 18%, transparent 60%); mask: radial-gradient(circle, #000 0 18%, transparent 60%); animation: dipSpin 14s linear infinite; }
@keyframes dipSpin { to { transform: rotate(360deg); } }
.dip-lt .dip-title { top: 80px; }
.dip-lt .dip-title h1 { font-size: 52px; letter-spacing: .12em; color: #ffe9a8; text-shadow: 0 0 2px #fff6, 0 3px 0 #7a2a00, 0 0 24px rgba(255,120,30,.9), 0 0 50px rgba(255,60,0,.6); }
.dip-lt .dip-title p { letter-spacing: .5em; color: #ffd27a; opacity: .9; }
.dip-lt .dip-bar { position: absolute; left: 0; right: 0; top: 188px; height: 3px; background: linear-gradient(90deg, transparent, #ffd76a, #ff5a1a, #ffd76a, transparent); box-shadow: 0 0 12px #ff8a1a; }
.dip-side { position: absolute; width: 210px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.dip-side.a { left: -4px; top: 198px; } .dip-side.b { right: -4px; top: 456px; }
.dip-side .dip-av { width: 104px; height: 104px; padding: 4px; background: conic-gradient(#ffe48a, #c47a10, #ffe48a, #8a4a00, #ffe48a); box-shadow: 0 0 0 3px rgba(0,0,0,.55), 0 0 28px rgba(255,170,40,.75); }
.dip-side.a .dip-av { background: conic-gradient(#ffb0a0, #c41010, #ffcf6a, #6a0000, #ffb0a0); box-shadow: 0 0 0 3px rgba(0,0,0,.55), 0 0 30px rgba(255,50,30,.85); }
.dip-side .dip-nm { font-size: 30px; }
.dip-lt .dip-realm { font-size: 14px; color: #ffe7b0; }
.dip-chips { display: flex; flex-direction: column; gap: 5px; align-items: center; }
.dip-lt .dip-chip.t { color: #3a1a00; background: linear-gradient(160deg,#fff4c0,#f0b828 60%,#b87810); box-shadow: 0 0 10px rgba(255,200,60,.6); }
.dip-lt .dip-chip.z { color: #ffe6b8; background: rgba(0,0,0,.45); border: 1px solid rgba(255,180,90,.6); }
.dip-lt .dip-emb { background: linear-gradient(160deg,#ff8a3a,#8a1a00); color: #fff1c8; }
.dip-tag { font-size: 11px; letter-spacing: .3em; color: #ffd27a; opacity: .85; }
.dip-lt .dip-vs { position: absolute; left: 50%; top: 440px; width: 190px; height: 170px; margin: -85px 0 0 -95px; display: grid; place-items: center; }
.dip-ring { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle, rgba(255,240,180,.95) 0 14%, rgba(255,140,30,.55) 30%, transparent 62%); filter: blur(2px); }
.dip-lt .dip-vs b { position: relative; font-family: "Ma Shan Zheng", serif; font-weight: 400; font-size: 118px; line-height: 1; letter-spacing: -.06em; background: linear-gradient(180deg,#fffef0 0%,#ffe27a 38%,#ff8a00 62%,#b81000 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 2px #fff) drop-shadow(0 4px 0 #4a0a00) drop-shadow(0 0 18px rgba(255,120,0,.95)); transform: skewX(-10deg); }
.dip-bolt { position: absolute; filter: drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px #ffc640); }
.dip-bolt.b1 { right: -62px; top: -34px; } .dip-bolt.b2 { left: -62px; bottom: -34px; }
.dip-spark { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #fff3b0; box-shadow: 0 0 8px 2px #ffae2a; opacity: var(--o); transform: scale(var(--k)) rotate(var(--r)); }
.dip-spark.l { width: 14px; height: 2px; border-radius: 2px; }
.dip-lt .dip-foot { bottom: 22px; }
.dip-lt .dip-go { display: inline-flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; letter-spacing: .4em; color: #fff2c0; text-shadow: 0 0 14px rgba(255,120,30,.9); }
.dip-cd { font-style: normal; display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; font-size: 28px; letter-spacing: 0; color: #3a1200; background: radial-gradient(circle at 35% 30%, #fff6c8, #ffb320 60%, #c45a00); box-shadow: 0 0 0 3px rgba(255,220,120,.5), 0 0 24px rgba(255,150,30,.9); }
.dip-lt .dip-foot small { color: #d8a96a; }
/* 擂台入场：两侧冲入(0–.6s) → VS 砸入(.6–1s) + 震屏 → 闪电/火花炸开 */
.dip-lt .dip-title { animation: dipDrop .5s cubic-bezier(.2,.8,.3,1.2) both; }
.dip-side.a { animation: dipFromL .6s cubic-bezier(.2,.9,.3,1.1) .1s both; }
.dip-side.b { animation: dipFromR .6s cubic-bezier(.2,.9,.3,1.1) .2s both; }
.dip-lt .dip-vs b { animation: dipSlam .45s cubic-bezier(.3,1.4,.5,1) .65s both; }
.dip-ring { animation: dipFlash .6s ease-out .9s both; }
.dip-bolt { animation: dipBolt .5s steps(1, end) .95s both; }
.dip-spark { animation: dipBurst .7s cubic-bezier(.1,.8,.3,1) calc(1s + var(--dl)) both; }
.dip-lt .dip-vs { animation: dipShake .32s linear 1.05s both; }
.dip-lt .dip-foot { animation: dipUp .5s ease-out 1.5s both; }
@keyframes dipDrop { from { opacity: 0; transform: translateY(-40px) scale(1.2); } }
@keyframes dipFromL { from { opacity: 0; transform: translateX(-130%); } }
@keyframes dipFromR { from { opacity: 0; transform: translateX(130%); } }
@keyframes dipSlam { from { opacity: 0; transform: skewX(-10deg) scale(3.2); filter: blur(6px); } }
@keyframes dipFlash { 0% { opacity: 0; transform: scale(.4); } 30% { opacity: 1; transform: scale(1.5); } 100% { opacity: 1; transform: scale(1); } }
@keyframes dipBolt { 0% { opacity: 0; } 20% { opacity: 1; } 35% { opacity: .2; } 50% { opacity: 1; } 100% { opacity: 1; } }
@keyframes dipBurst { from { opacity: 0; transform: scale(0) rotate(var(--r)); } 40% { opacity: 1; } }
@keyframes dipShake { 20% { transform: translate(-6px, 3px); } 45% { transform: translate(5px, -3px); } 70% { transform: translate(-3px, 2px); } }
@keyframes dipUp { from { opacity: 0; transform: translateY(24px); } }

/* —— 战国：青铜战旗 —— */
.dip-zg { background: radial-gradient(80% 35% at 50% 28%, rgba(60,200,170,.30), transparent 70%), radial-gradient(80% 30% at 50% 82%, rgba(170,50,20,.35), transparent 70%), linear-gradient(180deg, #0b1f1c 0%, #12302b 34%, #1b1610 50%, #2a120a 70%, #120806 100%); }
.dip-zg::before { content: ""; position: absolute; inset: 0; opacity: .5; background: repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,.18) 3px 4px), radial-gradient(circle at 50% 50%, transparent 45%, rgba(0,0,0,.7) 100%); }
.dip-zg .dip-title { top: 72px; }
.dip-zg .dip-title h1 { font-size: 48px; letter-spacing: .1em; white-space: nowrap; color: #f1dfae; text-shadow: 0 3px 0 #3b2a10, 0 0 20px rgba(90,230,190,.55), 0 0 2px #fff5; }
.dip-zg .dip-title p { margin-top: 4px; letter-spacing: .55em; color: #9fe6cf; }
.dip-flag { position: absolute; top: 160px; width: 56px; height: 120px; transform-origin: 50% 0; }
.dip-flag.l { left: 14px; } .dip-flag.r { right: 14px; transform: scaleX(-1); }
.dip-pact { position: absolute; top: 196px; width: 100%; text-align: center; z-index: 3; font-size: 20px; font-weight: 700; letter-spacing: .6em; color: #b6ffe2; text-shadow: 0 0 12px rgba(60,230,170,.8); }
.dip-ally { position: absolute; top: 226px; left: 0; right: 0; display: flex; justify-content: center; gap: 22px; }
.dip-ally::before { content: ""; position: absolute; left: 28px; right: 28px; top: 30px; height: 216px; border-radius: 24px; background: radial-gradient(70% 70% at 50% 40%, rgba(70,230,180,.32), transparent 70%); border: 1px solid rgba(120,240,200,.35); box-shadow: inset 0 0 30px rgba(80,230,180,.2), 0 0 26px rgba(60,220,170,.25); }
.dip-p { position: relative; width: 150px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.dip-p .dip-av { width: 104px; height: 104px; padding: 4px; background: conic-gradient(#b8ffe6, #2a9e7c, #e8c766, #1a6a54, #b8ffe6); box-shadow: 0 0 0 3px rgba(0,0,0,.5), 0 0 26px rgba(70,230,180,.8); }
.dip-p .dip-nm { font-size: 24px; color: #eafff6; }
.dip-zg .dip-realm { font-size: 12.5px; color: #cfeee0; }
.dip-zg .dip-chip.t { color: #0b231c; background: linear-gradient(160deg,#e8fff4,#7ee0bc 60%,#2f9a78); }
.dip-zg .dip-chip.z { color: #f6e2b0; background: rgba(0,0,0,.45); border: 1px solid rgba(232,199,102,.55); }
.dip-zg .dip-emb { background: linear-gradient(160deg,#c9a24a,#5a3a10); color: #fff3cf; width: 22px; height: 22px; font-size: 10px; }
.dip-amp { position: absolute; top: 272px; left: 50%; margin-left: -18px; font-family: "Ma Shan Zheng", serif; font-size: 58px; color: #e8ffe0; text-shadow: 0 0 14px rgba(90,240,190,.95), 0 3px 0 #0b3a2c; z-index: 2; }
.dip-zg .dip-vs { position: absolute; left: 50%; top: 548px; width: 300px; height: 120px; margin: -60px 0 0 -150px; display: grid; place-items: center; }
.dip-zg .dip-vs::before { content: ""; position: absolute; left: -60px; right: -60px; top: 50%; height: 2px; background: linear-gradient(90deg, transparent, #c9a24a 20%, #fff2c0 50%, #c9a24a 80%, transparent); box-shadow: 0 0 12px #e8c766; }
.dip-seal { position: relative; width: 118px; height: 118px; display: grid; place-items: center; transform: rotate(45deg); border-radius: 14px; background: radial-gradient(circle at 35% 30%, #e8c27a, #9a6a24 55%, #4a2c0c); box-shadow: 0 0 0 4px #2a1a08, 0 0 0 6px #c9a24a, 0 0 30px rgba(232,180,90,.75), inset 0 2px 10px rgba(255,240,200,.5), inset 0 -6px 14px rgba(0,0,0,.45); }
.dip-seal b { transform: rotate(-45deg); font-family: "Ma Shan Zheng", serif; font-weight: 400; font-size: 56px; line-height: 1; letter-spacing: -.04em; color: #2a1606; text-shadow: 0 1px 0 rgba(255,240,200,.6); }
.dip-enemy { position: absolute; top: 640px; left: 0; right: 0; display: flex; justify-content: center; gap: 44px; }
.dip-e { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.dip-e .dip-av { width: 84px; height: 84px; padding: 3px; background: conic-gradient(#ffb08a, #8a1a08, #c9a24a, #4a0a04, #ffb08a); box-shadow: 0 0 0 3px rgba(0,0,0,.6), 0 0 22px rgba(220,70,30,.7); }
.dip-bot { width: 100%; height: 100%; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 40% 35%, #5a2a18, #1a0806); font-family: "Ma Shan Zheng", serif; font-size: 40px; color: #ffcf9a; text-shadow: 0 0 10px rgba(255,90,30,.9); }
.dip-e .dip-nm { font-size: 18px; color: #ffd8c0; }
.dip-zg .dip-foot { bottom: 26px; }
.dip-zg .dip-go { font-size: 20px; font-weight: 700; letter-spacing: .42em; color: #f1dfae; text-shadow: 0 0 12px rgba(232,180,90,.8); }
.dip-dots { display: inline-flex; gap: 6px; margin-left: 6px; } .dip-dots i { width: 8px; height: 8px; border-radius: 50%; background: #e8c766; box-shadow: 0 0 8px #e8c766; }
.dip-zg .dip-foot small { color: #a9927a; }
/* 战国入场：战旗展开 → 两人并肩落下、光框亮 → 印章旋转盖下 → 敌阵升起 → 三点依次亮 */
.dip-zg .dip-title { animation: dipDrop .5s cubic-bezier(.2,.8,.3,1.2) both; }
.dip-flag.l { animation: dipFlag .45s ease-out .15s both; }
.dip-flag.r { animation: dipFlagR .45s ease-out .2s both; }
.dip-pact { animation: dipUp .4s ease-out .35s both; }
.dip-ally { animation: dipFall .6s cubic-bezier(.2,.9,.3,1.15) .25s both; }
.dip-amp { animation: dipPop .4s cubic-bezier(.3,1.6,.5,1) .85s both; }
.dip-seal { animation: dipSeal .55s cubic-bezier(.3,1.3,.5,1) 1.05s both; }
.dip-zg .dip-vs::before { animation: dipSweep .5s ease-out 1.35s both; }
.dip-enemy { animation: dipRise .55s cubic-bezier(.2,.9,.3,1.1) 1.35s both; }
.dip-zg .dip-foot { animation: dipUp .4s ease-out 1.8s both; }
.dip-dots i { animation: dipDot .2s ease-out both; } .dip-dots i:nth-child(1) { animation-delay: 1.95s; } .dip-dots i:nth-child(2) { animation-delay: 2.1s; } .dip-dots i:nth-child(3) { animation-delay: 2.25s; }
@keyframes dipFlag { from { opacity: 0; transform: scaleY(0); } }
@keyframes dipFlagR { from { opacity: 0; transform: scaleX(-1) scaleY(0); } }
@keyframes dipFall { from { opacity: 0; transform: translateY(-70px); } }
@keyframes dipPop { from { opacity: 0; transform: scale(0); } }
@keyframes dipSeal { from { opacity: 0; transform: rotate(-180deg) scale(2.2); } }
@keyframes dipSweep { from { transform: scaleX(0); opacity: 0; } }
@keyframes dipRise { from { opacity: 0; transform: translateY(80px); } }
@keyframes dipDot { from { opacity: .15; transform: scale(.5); } }
/* 减少动态：直接最后一帧 */
.dip.still, .dip.still * { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .dip, .dip * { animation: none !important; } }

/* ===== 20261020n 望海村械斗大厅卡片（对齐擂台赛 duel-lob；海蓝 + 橙） ===== */
.peak-lobby { margin: 10px auto; }
.duel-peak{border-color:#2a6aa8;background:radial-gradient(120% 90% at 50% 0,#0e3a66 0,#06203d 55%,#020b18 100%);box-shadow:inset 0 0 30px rgba(0,0,0,.7),0 0 18px rgba(255,150,40,.22)}
.duel-peak .duel-bd{background:radial-gradient(#ffd6a0,#e0701a) !important;color:#2a0e00 !important}
.duel-peak .rs-lob-new,.duel-peak .duel-go{border-color:#ffa040;background:rgba(255,150,40,.14);color:#ffe6c8}
.duel-peak .duel-go[aria-disabled="true"]{opacity:.75}
.duel-peak .duel-open small,.duel-peak .duel-top{color:#a9c9e8}
.duel-peak .duel-rhead h5{color:#ffc890}
.duel-peak .pk-st{color:#9ab}
.duel-peak .pk-st.on{color:#ffb060;font-weight:700}
.duel-peak .rs-card{border-color:rgba(90,160,230,.35);background:rgba(4,24,48,.6)}
.duel-peak .duel-tai{background:linear-gradient(180deg,#ffb050,#d0601a);color:#2a0e00}

/* ===== 20261020n 联建村极速战：大厅入口（每日最佳上方）+ 牌桌中间极速倒计时 ===== */
.speed-lobby { margin: 10px auto 6px; width: 100%; max-width: 520px; padding: 0 2px; box-sizing: border-box; }
.spd-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1px solid #ffb02e; cursor: pointer; text-align: left; color: #fff3cf;
  background: repeating-linear-gradient(115deg, rgba(255,220,80,.10) 0 10px, transparent 10px 30px), linear-gradient(100deg,#7a0d06 0%,#c0280c 45%,#e8740e 80%,#ffb81e 100%);
  box-shadow: 0 0 18px rgba(255,120,20,.35), inset 0 0 18px rgba(0,0,0,.35); }
.spd-card::after { content: ""; position: absolute; top: 0; left: -40%; width: 30%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); transform: skewX(-20deg); animation: spdShine 2.6s ease-in-out infinite; }
@keyframes spdShine { 0%,60% { left: -40%; } 100% { left: 130%; } }
.spd-ic { font-style: normal; font-size: 28px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(#fff6c0,#ffb000 60%,#c04000); box-shadow: 0 0 14px rgba(255,200,40,.8); flex: none; }
.spd-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.spd-tx b { font-size: 18px; letter-spacing: .08em; color: #fffbe6; text-shadow: 0 2px 0 #5a0a00, 0 0 12px rgba(255,180,40,.8); }
.spd-tx small { font-size: 12px; color: #ffe2b0; }
.spd-go { font-style: normal; flex: none; padding: 6px 14px; border-radius: 999px; background: #fff1b8; color: #7a1500; font-weight: 800; letter-spacing: .1em; box-shadow: 0 0 10px rgba(255,230,120,.8); }
.spd-cd { position: fixed; left: 50%; top: 44%; transform: translate(-50%,-50%); z-index: 60; pointer-events: none; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 18px 10px; border-radius: 16px;
  background: rgba(40,4,0,.55); border: 1px solid rgba(255,180,40,.7); box-shadow: 0 0 24px rgba(255,120,20,.55); }
.spd-cd.hidden { display: none; }
.spd-cd .spd-bolt { font-style: normal; font-size: 18px; line-height: 1; }
.spd-cd b { font: 800 46px/1 "Noto Serif SC", serif; color: #ffe066; text-shadow: 0 0 14px rgba(255,160,20,.95), 0 3px 0 #6a1000; font-variant-numeric: tabular-nums; }
.spd-cd .spd-bar { width: 96px; height: 5px; border-radius: 3px; background: rgba(255,255,255,.15); overflow: hidden; }
.spd-cd .spd-bar i { display: block; height: 100%; background: linear-gradient(90deg,#ff3a10,#ffd040); }
.spd-cd.urgent b { color: #ff5a3a; animation: spdPulse .25s ease-in-out infinite alternate; }
@keyframes spdPulse { from { transform: scale(1); } to { transform: scale(1.12); } }
.sp-speed .yc-dlg-title { color: #ffd84a; text-shadow: 0 0 12px rgba(255,140,20,.8); }
@media (prefers-reduced-motion: reduce) { .spd-card::after, .spd-cd.urgent b { animation: none; } }
/* ===== 20261020r 联建村极速战快讯跑马灯（入口卡上方）：赤黑底 + 斜纹警示边 + 电光黄字，区别顶部金光庆祝条 ===== */
.spd-tick { position: relative; display: flex; align-items: stretch; gap: 0; margin: 0 0 8px; border-radius: 9px; overflow: hidden; min-height: 30px;
  background: linear-gradient(90deg, #1a0306, #3a0710 30%, #2a040b 70%, #1a0306); border: 1px solid #ff5a1f;
  box-shadow: 0 0 10px rgba(255,90,30,.45), inset 0 0 12px rgba(255,60,20,.25); }
.spd-tick::before, .spd-tick::after { content: ""; position: absolute; left: 0; right: 0; height: 3px; pointer-events: none; z-index: 2;
  background: repeating-linear-gradient(135deg, #ffd21a 0 8px, #1a0306 8px 16px); opacity: .85; }
.spd-tick::before { top: 0; } .spd-tick::after { bottom: 0; }
.spt-tag { flex: none; z-index: 3; display: flex; align-items: center; padding: 0 10px 0 9px; font: 900 12px/1 "Noto Sans SC", sans-serif; letter-spacing: .08em; color: #2a0400; white-space: nowrap;
  background: linear-gradient(180deg, #fff27a, #ffb000); clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%); padding-right: 16px; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
.spt-view { position: relative; flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 16px), transparent); mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 16px), transparent); }
.spt-run { display: flex; align-items: center; gap: 22px; white-space: nowrap; width: max-content; padding: 0 12px; font: 800 13.5px/1.2 "Noto Sans SC", sans-serif; color: #ffe8c2; letter-spacing: .3px; }
.spt-mv .spt-run { position: absolute; left: 0; top: 50%; margin-top: -.6em; will-change: transform; }
.spt-static .spt-run { width: 100%; box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
.spt-it { display: inline-flex; align-items: baseline; gap: .2em; }
.spt-it[hidden], .spt-sep[hidden] { display: none !important; }
.spt-it i { font-style: normal; font-weight: 900; color: #fff200; text-shadow: 0 0 6px rgba(255,220,0,.9), 0 0 12px rgba(255,90,0,.7); font-variant-numeric: tabular-nums; }
.spt-nm { color: #7ff0ff; text-shadow: 0 0 6px rgba(80,220,255,.7); cursor: pointer; }
.spt-sep { color: #ff6a2a; font-weight: 900; text-shadow: 0 0 6px rgba(255,100,40,.9); }
@media (max-width: 420px) { .spt-run { font-size: 12.5px; gap: 18px; } .spt-tag { font-size: 11px; padding-left: 7px; padding-right: 14px; } }

/* ===== 20261020s 极速快讯：境界（前）+ 称号（后），赤黄青系，不与顶部金色庆祝条撞款 ===== */
.spt-rm { font-weight: 900; margin-right: .28em; white-space: nowrap; }
.spt-rm.srm-a { color: #ff6a2a; -webkit-text-fill-color: #ff6a2a; filter: drop-shadow(0 0 5px rgba(255,100,40,.9)); }
.spt-rm.srm-b { color: #ffe066; -webkit-text-fill-color: #ffe066; filter: drop-shadow(0 0 5px rgba(255,220,60,.9)); }
.spt-rm.srm-c { color: #5ce8ff; -webkit-text-fill-color: #5ce8ff; filter: drop-shadow(0 0 5px rgba(60,220,255,.9)); }
.spt-static .spt-rm { filter: none; }
.spt-jh { display: inline-block; vertical-align: middle; margin: 0 0 0 .28em; padding: 0 5px; font-size: .78em; font-weight: 700; line-height: 1.35; border-radius: 4px; white-space: nowrap; border: 1px solid var(--tc, #ff8a3a); color: var(--tc2, #ffe8c2); background: rgba(40,8,4,.65) !important; }
.spt-jh.tc-gold { --tc: #ffb000; --tc2: #fff2a8; }
.spt-jh.tc-silver { --tc: #9ec8d8; --tc2: #e8f6ff; }
.spt-jh.tc-bronze { --tc: #e07830; --tc2: #ffd0a0; }
.spt-jh.sjh-a { --tc: #ff5a1f; --tc2: #ffd8b8; border-color: #ff5a1f; color: #ffd8b8; background: rgba(80,20,0,.6) !important; }
.spt-jh.sjh-b { --tc: #ffd21a; --tc2: #fff6c0; border-color: #ffd21a; color: #fff6c0; background: rgba(70,50,0,.55) !important; }
.spt-jh.sjh-c { --tc: #2ad4ff; --tc2: #c8f4ff; border-color: #2ad4ff; color: #c8f4ff; background: rgba(0,50,70,.55) !important; }
.spt-jh.glow { box-shadow: 0 0 8px rgba(255,140,40,.9), 0 0 3px rgba(255,220,80,.6); }


/* ===== 20261020y/z 同心村同牌对决：大厅入口（极速战下方）青绿镜像；z：栏位节奏对齐极速战卡 ===== */
.tongxin-lobby { margin: 10px auto 6px; width: 100%; max-width: 520px; padding: 0 2px; box-sizing: border-box; }
.tx-card {
  position: relative; overflow: hidden; box-sizing: border-box;
  width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border: 1px solid rgba(100,240,220,.45); border-radius: 14px; cursor: pointer; text-align: left;
  background:
    radial-gradient(ellipse 80% 120% at 10% 50%, rgba(80,220,200,.22), transparent 55%),
    radial-gradient(ellipse 60% 100% at 90% 40%, rgba(140,100,255,.18), transparent 50%),
    linear-gradient(105deg, #0a1c28 0%, #122838 50%, #1a1438 100%);
  box-shadow: 0 0 18px rgba(60,200,180,.28), inset 0 0 18px rgba(0,0,0,.25);
  color: #e8fff8; transition: transform .15s ease, box-shadow .15s ease;
}
.tx-card:hover, .tx-card:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 0 28px rgba(80,240,220,.4), inset 0 0 18px rgba(0,0,0,.2);
  outline: none;
}
.tx-orb {
  flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle at 35% 30%, #fff, #7ef0d8 45%, #5080e0 80%, #302060);
  box-shadow: 0 0 14px rgba(80,240,220,.8);
  position: relative;
}
.tx-orb::after {
  content: ""; position: absolute; inset: 8px; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.45); border-left-color: transparent;
}
.tx-orb.big { width: 64px; height: 64px; margin: 0 auto 8px; display: block; }
.tx-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tx-tx b { display: block; font-size: 18px; letter-spacing: .08em; color: #e8fff8; text-shadow: 0 0 12px rgba(80,240,220,.55); }
.tx-tx small { display: block; font-size: 12px; color: #9ad8d0; opacity: .92; }
.tx-badge {
  flex: none; font-style: normal; font-weight: 800; font-size: 14px; letter-spacing: .1em;
  padding: 6px 14px; border-radius: 999px; color: #062018;
  background: linear-gradient(180deg, #e8fff8, #7ef0d8);
  box-shadow: 0 0 10px rgba(80,240,220,.7);
}
.tx-recent { margin-top: 8px; padding: 8px 10px; border-radius: 12px; background: rgba(8,24,32,.55); border: 1px solid rgba(100,220,200,.18); }
.tx-rhead h5 { margin: 0 0 6px; font-size: 12px; color: #9ad8d0; letter-spacing: .08em; }
.tx-rec { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 6px 0; border-top: 1px solid rgba(100,220,200,.12); font-size: 13px; color: #e0f8f0; }
.tx-rec:first-of-type { border-top: 0; }
.tx-rec i { font-style: normal; color: #7ef0d8; margin: 0 4px; }
.tx-rec span { color: #b8f0e0; font-size: 12px; }
.tx-rec small { grid-column: 1 / -1; color: #7ab0a8; font-size: 11px; }
.tx-empty { margin: 4px 0; font-size: 12px; color: #7ab0a8; }
.tx-layer { position: fixed; inset: 0; z-index: 90040; background: rgba(4,12,18,.72); display: flex; align-items: center; justify-content: center; padding: 16px; }
.tx-book { position: relative; width: min(440px, 100%); max-height: 90vh; overflow: auto; padding: 22px 20px 18px; border-radius: 18px;
  background: linear-gradient(165deg, #0a1c28, #142838 50%, #1a1438); border: 1px solid rgba(100,240,220,.35);
  box-shadow: 0 0 40px rgba(60,200,180,.25); color: #e8fff8; }
.tx-book .title-close { position: absolute; top: 8px; right: 10px; }
.tx-hero { text-align: center; margin-bottom: 12px; }
.tx-hero h2 { margin: 6px 0 4px; font-size: 22px; letter-spacing: .12em; }
.tx-hero p { margin: 0; font-size: 13px; color: #9ad8d0; }
.tx-rules { margin: 0 0 14px; padding-left: 1.2em; font-size: 13px; color: #c8ece4; line-height: 1.55; }
.tx-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.tx-actions .tx-go { background: linear-gradient(180deg, #e8fff8, #7ef0d8); color: #062018; border: 0; font-weight: 700; }
.tx-wait { background: linear-gradient(90deg, rgba(20,60,70,.95), rgba(40,30,80,.92)) !important; border-color: rgba(100,240,220,.4) !important; }
.tx-wait em { color: #7ef0d8; font-style: normal; }

.tx-inv-box { margin: 10px 0 4px; }
.tx-inv-box h4 { margin: 0 0 6px; font-size: 13px; color: #9ad8d0; letter-spacing: .06em; }
.tx-inv-list { max-height: 180px; overflow: auto; border-radius: 10px; border: 1px solid rgba(100,220,200,.2); background: rgba(4,16,24,.45); }
.tx-inv-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-top: 1px solid rgba(100,220,200,.1); font-size: 13px; color: #e0f8f0; }
.tx-inv-row:first-child { border-top: 0; }
.tx-inv-row b { flex: 1; min-width: 0; }
.tx-inv-row small { color: #7ab0a8; margin-right: 6px; }
.tx-inv-st { font-size: 12px; color: #9ad8d0; }
.tx-queue-hint { margin: 8px 0 0; font-size: 12px; color: #9ad8d0; }
.tx-inv-banner { background: linear-gradient(90deg, rgba(20,60,70,.95), rgba(40,30,80,.92)) !important; border-color: rgba(100,240,220,.45) !important; }

/* ===== 20261020ab 大厅「宇宙馆」· 冷银描边（来自物间锋娅 2video.cn） ===== */
.yz-lobby { margin: 10px auto 6px; width: 100%; max-width: 520px; padding: 0 2px; box-sizing: border-box; position: relative;
  --yz-silver: rgba(198,210,230,.55); --yz-gold: rgba(212,185,130,.55); --yz-gold-t: #e8d5a8; --yz-text: #e8eef8; --yz-muted: #8b97ad; --yz-glass: rgba(16,24,40,.72); --yz-glass2: rgba(22,32,52,.5); }
.yz-lobby *, .yz-lobby *::before, .yz-lobby *::after { box-sizing: border-box; }
.yz-lobby a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.yz-card { position: relative; border-radius: 16px; padding: 16px 16px 14px; color: var(--yz-text); text-align: left;
  font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  background: linear-gradient(145deg, rgba(255,255,255,.04), transparent 40%), radial-gradient(ellipse 80% 60% at 50% -10%, rgba(40,70,120,.35), transparent 60%), var(--yz-glass), #070b14;
  border: 1px solid rgba(212,185,130,.22);
  box-shadow: 0 0 0 1px rgba(0,0,0,.35) inset, 0 12px 40px rgba(0,0,0,.45), 0 0 48px rgba(80,120,180,.08); overflow: hidden; }
.yz-card::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 40% at 90% 0%, rgba(140,170,220,.12), transparent 55%), radial-gradient(ellipse 40% 30% at 10% 100%, rgba(180,160,100,.06), transparent 50%),
    radial-gradient(1px 1px at 12% 18%, #fff8, transparent), radial-gradient(1px 1px at 33% 82%, #fff6, transparent), radial-gradient(1.4px 1.4px at 72% 12%, #fffa, transparent), radial-gradient(1px 1px at 88% 46%, #fff7, transparent), radial-gradient(1px 1px at 52% 40%, #fff4, transparent); }
.yz-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; position: relative; }
.yz-title { font-family: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif; font-size: 22px; font-weight: 600; letter-spacing: .22em; margin: 0; color: #f2f6fc; text-shadow: 0 0 24px rgba(160,190,255,.25); }
.yz-sub { margin: 4px 0 0; font-size: 12px; color: var(--yz-muted); letter-spacing: .12em; }
.yz-sub em { font-style: normal; color: #c8d4e8; }
.yz-badge { flex: none; font-size: 10px; letter-spacing: .16em; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--yz-silver); color: #c8d4e8; background: rgba(20,28,44,.4); }
/* 纯 CSS 星空/星云：封面缺失或加载失败时的底 */
.yz-sky { position: absolute; inset: 0; display: block;
  background: radial-gradient(1px 1px at 18% 28%, #fffc, transparent), radial-gradient(1px 1px at 64% 22%, #fff9, transparent), radial-gradient(1.5px 1.5px at 82% 64%, #fffd, transparent), radial-gradient(1px 1px at 38% 70%, #fff8, transparent), radial-gradient(1px 1px at 8% 82%, #fff7, transparent), radial-gradient(1.2px 1.2px at 52% 48%, #fffb, transparent),
    radial-gradient(ellipse 55% 45% at 30% 40%, rgba(90,120,200,.45), transparent 65%), radial-gradient(ellipse 45% 40% at 72% 58%, rgba(150,90,170,.35), transparent 65%), radial-gradient(ellipse 30% 25% at 55% 30%, rgba(210,190,140,.18), transparent 70%), linear-gradient(160deg, #0b1426, #070b16 60%, #0d0b1c); }
.yz-hero { position: relative; display: block; border-radius: 12px; overflow: hidden; border: 1px solid rgba(198,210,230,.22); margin-bottom: 12px; aspect-ratio: 16 / 9; background: #0a101c; }
@supports not (aspect-ratio: 1) { .yz-hero { height: 0; padding-top: 56.25%; } }
.yz-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(.78) contrast(1.05) saturate(.9); transition: transform .5s ease; }
.yz-hero:hover img { transform: scale(1.03); }
.yz-hero .veil { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(4,8,16,.92) 100%); }
.yz-hero .meta { position: absolute; left: 14px; right: 14px; bottom: 12px; display: block; }
.yz-hero .tag { display: block; font-size: 10px; letter-spacing: .2em; color: #c8d4e8; margin-bottom: 6px; opacity: .9; }
.yz-hero h3 { margin: 0 0 4px; font-family: "Noto Serif SC", "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; letter-spacing: .08em; color: #f2f6fc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yz-hero .why { display: block; font-size: 11px; color: #a8b4c8; margin-bottom: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yz-cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 12px; font-weight: 600; letter-spacing: .06em; padding: 7px 14px; border-radius: 999px; color: #0c121c; background: linear-gradient(180deg, #e8eef8, #a8b8d0); box-shadow: 0 0 16px rgba(160,180,220,.2); }
.yz-row { display: grid; grid-template-columns: 1.05fr 1fr; gap: 10px; margin-bottom: 12px; }
.yz-mini { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid rgba(198,210,230,.18); background: var(--yz-glass2); min-height: 108px; display: flex; flex-direction: column; }
.yz-star { transition: border-color .15s; }
.yz-star:hover { border-color: var(--yz-silver); }
.yz-mini .pic { height: 72px; overflow: hidden; position: relative; display: block; }
.yz-mini .pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.75) saturate(.9); }
.yz-mini .pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent, rgba(8,12,20,.75)); }
.yz-mini .body { padding: 8px 10px 10px; flex: 1; display: block; }
.yz-mini .kicker { display: block; font-size: 10px; letter-spacing: .18em; color: #a8b4c8; margin-bottom: 3px; }
.yz-mini .name { display: block; font-size: 13px; font-weight: 600; letter-spacing: .04em; margin: 0; color: #eef3fa; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yz-mini .hint { display: block; font-size: 11px; color: var(--yz-muted); margin-top: 2px; }
.yz-ser { padding: 10px 12px 12px; }
.yz-series { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 8px; }
.yz-chip { display: block; min-width: 0; text-align: center; padding: 9px 4px; border-radius: 10px; font-size: 12px; letter-spacing: .06em; font-weight: 500; color: #d0dae8; background: rgba(255,255,255,.03); border: 1px solid rgba(198,210,230,.16); transition: border-color .15s, color .15s; white-space: nowrap; }
.yz-chip:hover, .yz-chip:active { border-color: var(--yz-gold); color: var(--yz-gold-t); }
.yz-foot { margin: 0; font-size: 10px; line-height: 1.55; color: #6a768c; letter-spacing: .04em; text-align: center; position: relative; }
.yz-foot a { color: #9aabc4; border-bottom: 1px solid rgba(154,171,196,.35); }
@media (max-width: 400px) {
  .yz-card { padding: 14px 12px 12px; }
  .yz-title { font-size: 20px; letter-spacing: .18em; }
  .yz-row { gap: 8px; }
  .yz-hero h3 { font-size: 15px; }
  .yz-chip { padding: 8px 2px; font-size: 11.5px; }
}
/* 20261020ac 宇宙馆弹窗 */
.yz-modal { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 16px 10px; background: rgba(2,4,10,.72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); overflow-y: auto; }
.yz-modal.hidden { display: none; }
.yz-modal-box { position: relative; width: 100%; max-width: 520px; margin: auto; }
.yz-modal .yz-lobby { margin: 0 auto; }
.yz-close { position: absolute; top: -6px; right: -2px; z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(198,210,230,.35); background: rgba(10,16,28,.9); color: #dbe4f2; font-size: 20px; line-height: 1; cursor: pointer; }
.yz-close:hover { border-color: rgba(212,185,130,.6); color: #e8d5a8; }

/* 20261020ah 勋章：名字后的小徽章 / 授勋跑马灯 / 结算加成行 */
.mdl-b { height: 22px; width: auto; vertical-align: -6px; margin-left: 3px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.45)); flex: none; }
.mdl-b.hello { height: 28px; vertical-align: -9px; }
.mdl-b.seat { height: 20px; vertical-align: -5px; }
.mdl-b.pf { height: 34px; vertical-align: -11px; }
.hud-btn.hud-md { background: linear-gradient(180deg, #4a3410, #2a1c08); color: #ffe08a; border-color: #b8892e; }
.md-bar { position: relative; flex: none; align-self: stretch; width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 8px; padding: 3px 8px; border-radius: 10px; overflow: hidden; z-index: 4;
  background: linear-gradient(90deg, rgba(60,36,6,.92), rgba(30,18,4,.88)); border: 1px solid rgba(255,210,110,.45); color: #f6e2a4; font-size: 14px; }
.md-bar.hidden { display: none !important; }
.md-bar .mdb-k { flex: none; font-weight: 800; letter-spacing: 2px; color: #2a1604; background: linear-gradient(#ffe08a, #c99628); border-radius: 8px; padding: 1px 8px; font-size: 12.5px; }
.md-bar .mdb-vp { flex: 1; min-width: 0; overflow: hidden; mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); -webkit-mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.md-bar .mdb-tr { display: inline-flex; white-space: nowrap; animation: mdbRun 30s linear infinite; will-change: transform; }
.md-bar .mdb-it { display: inline-flex; align-items: center; gap: 4px; margin-right: 48px; }
.md-bar .mdb-it img { height: 22px; width: auto; }
.md-bar .mdb-it b { color: #ffe08a; }
.md-bar .mdb-it i { font-style: normal; color: #c9b27a; font-size: 12.5px; margin-left: 4px; }
@keyframes mdbRun { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .md-bar .mdb-tr { animation: none; } }
.md-res-line { margin: 8px auto 0; padding: 4px 10px; border-radius: 8px; background: rgba(255,210,110,.12); color: #ffd970; font-weight: 700; text-align: center; font-size: 14px; }
.md-res-line.neg { background: rgba(255,90,90,.12); color: #ff9a9a; }

/* 20261020ai 「好友」「勋章」从大厅右上角菜单移入个人资料 */
.hud-btn.hud-pf { position: relative; }
.pf-quick { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 12px; }
.pf-qbtn { min-width: 0; box-sizing: border-box; }
.pf-qbtn { position: relative; display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 10px 12px; text-align: left; cursor: pointer; font: inherit; color: #f3e6c4;
  border-radius: 12px; border: 1px solid rgba(212,175,55,.45); background: linear-gradient(180deg, rgba(60,40,14,.75), rgba(26,18,8,.85)); box-shadow: inset 0 1px 0 rgba(255,230,160,.08); transition: transform .08s, filter .15s; }
.pf-qbtn:hover { filter: brightness(1.12); }
.pf-qbtn:active { transform: scale(.98); }
.pf-qbtn:focus-visible { outline: 2px solid #f5d27a; outline-offset: 2px; }
.pf-q-ic { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-size: 21px; color: #2a1604;
  background: radial-gradient(circle at 35% 30%, #fff1b8, #e0b04a 55%, #9a6a18); box-shadow: 0 2px 6px rgba(0,0,0,.45); }
.pf-q-fr .pf-q-ic { background: radial-gradient(circle at 35% 30%, #d8f6e6, #5dbb8c 55%, #25684a); color: #062417; }
.pf-q-t { display: flex; flex-direction: column; min-width: 0; }
.pf-q-t b { font-size: 16px; color: #ffe39a; letter-spacing: .12em; }
.pf-q-t small { font-size: 12px; color: #a8946a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-qbtn .fr-dot { top: 6px; right: 8px; }
@media (max-width: 420px) { .pf-quick { gap: 8px; } .pf-qbtn { padding: 8px 10px; gap: 8px; } .pf-q-ic { width: 32px; height: 32px; font-size: 18px; } .pf-q-t small { font-size: 11px; } }

/* 20261020ak 昵称后佩戴勋章（多枚右排；放不下整体换到昵称下一行）+ 好友红点挪到头像 */
.mdl-w { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px; vertical-align: middle; max-width: 100%; margin-left: 3px; white-space: normal; line-height: 1; flex: 0 1 auto; }
.mdl-w .mdl-b { margin-left: 0; vertical-align: 0; }
.mdl-w.auto .mdl-b, .mdl-w.room .mdl-b { height: 20px; }
.mdl-w.tbl .mdl-b { height: 18px; }
.mdl-b.neg { opacity: .9; }
#hello-name .mdl-w.hello { flex-wrap: nowrap; overflow: hidden; min-width: 0; align-self: center; }
.lobby-seat .mdl-w { display: flex; justify-content: center; margin: 2px auto 0; }
#splash .user-bar > .hello-fr-dot { position: absolute; left: 42px; top: -4px; right: auto; z-index: 3; cursor: pointer; }
/* 20261020ak 联建村极速战「更多」+ 往期极速战 */
.spd-more { display: block; margin: 6px 0 0 auto; padding: 4px 14px; border-radius: 999px; border: 1px solid #ffb02e; background: rgba(40,18,0,.75); color: #ffe08a; font-size: 13px; font-weight: 700; letter-spacing: .1em; cursor: pointer; }
.spd-more:hover { background: rgba(80,36,0,.85); }
.sph-book .sph-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 6px 0 8px; }
.sph-book .sph-bar select { flex: 1 1 180px; min-width: 0; padding: 6px 8px; border-radius: 8px; background: #14110a; color: #f3e0a6; border: 1px solid #6b5420; font-size: 13px; }
.sph-list { display: flex; flex-direction: column; gap: 8px; max-height: min(60vh, 560px); overflow-y: auto; overscroll-behavior: contain; padding-right: 2px; -webkit-overflow-scrolling: touch; }
.sph-card .sph-tm { min-width: 3.2em; text-align: center; font-size: 13px; }
.sph-card .sph-g { display: block; }
.sph-nog { margin: 6px 0; font-size: 12px; color: #b9a777; }
.sph-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 6px 10px; border: 1px dashed #4b3c18; border-radius: 10px; font-size: 13px; color: #d9c486; }
.sph-row .sph-tm { color: #b9a777; }
.sph-row em { font-style: normal; margin-left: auto; color: #a8987a; }
.sph-pg { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 8px; font-size: 13px; color: #d9c486; }
.bst-who .bw-l1 { flex-wrap: wrap; row-gap: 2px; }
.bst-who .bw-l1 .bw-nm { flex: 0 1 auto; }
.bst-rank.sps { width: auto; min-width: 0; padding: 0 6px; font-size: 11px; white-space: nowrap; background: linear-gradient(135deg,#ff8a00,#ffd23f); color: #4a1600; border-radius: 999px; }
.sph-btn { flex: none; padding: 5px 10px; border-radius: 8px; border: 1px solid #6b5420; background: #1a160c; color: #f3e0a6; font-size: 13px; line-height: 1.2; cursor: pointer; }
.sph-btn:disabled { opacity: .4; cursor: default; }
.sph-book .sph-bar { flex-wrap: nowrap; }
.sph-book .sph-bar .hlb-chk { flex: none; white-space: nowrap; font-size: 12px; }
.sph-list { max-height: calc(100dvh - 350px); min-height: 160px; }
.sph-book .hint { font-size: 12px; margin-top: 6px; }
@media (max-width: 520px) { .sph-book .sph-bar { flex-wrap: wrap; } .sph-book .sph-bar select { order: -1; flex: 1 1 100%; } .sph-book .sph-bar .hlb-chk { margin-left: auto; } }
#table-screen.t36 .sc36-t .mdl-w.seat { margin-left: 0; max-width: 100%; }
#table-screen.t36.m36 .sc36-t .mdl-w.seat { justify-content: center; }
#table-screen.t36.m36 .mdl-b.seat { height: 15px; }
/* 20261020al 勋章简介浮层 */
.mdl-b[data-mn] { cursor: pointer; }
.mdl-pop { position: fixed; z-index: 100010; width: min(300px, calc(100vw - 16px)); box-sizing: border-box; padding: 12px 14px 10px; border-radius: 14px; border: 1px solid #c9a24a; background: linear-gradient(160deg, #2a2112, #120e07); color: #f3e0a6; box-shadow: 0 10px 30px rgba(0,0,0,.6); font-size: 13px; line-height: 1.5; text-align: left; }
.mdl-pop.neg { border-color: #8a6a6a; }
.mdl-pop-x { position: absolute; top: 4px; right: 6px; width: 28px; height: 28px; border: 0; background: none; color: #d9c486; font-size: 20px; cursor: pointer; }
.mdl-pop-h { display: flex; align-items: center; gap: 10px; padding-right: 22px; }
.mdl-pop-h img { width: 52px; height: auto; flex: none; filter: drop-shadow(0 2px 4px rgba(0,0,0,.5)); }
.mdl-pop-h b { display: block; font-size: 16px; color: #ffe9a8; }
.mdl-pop-t { font-size: 12px; color: #d9c486; }
.mdl-pop-eff { margin: 8px 0 4px; padding-left: 18px; color: #ffe08a; }
.mdl-pop-d, .mdl-pop-n { margin: 4px 0; color: #e6d6a8; }
.mdl-pop-n { font-style: italic; }
.mdl-pop-f { margin: 6px 0 0; font-size: 11.5px; color: #a8987a; }
/* 20261020al「更多」移入极速战卡片内、「开战」正下方 */
.spd-acts { flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; position: relative; z-index: 1; }
.spd-card .spd-more { margin: 0; padding: 3px 12px; font-size: 12px; letter-spacing: .08em; background: rgba(60,20,0,.55); border-color: #ffd36e; }
.bst-cnt { text-align: center; font-size: 12px; color: #d9c486; margin-top: 6px; }
.bst-cnt b { color: #ffe08a; }
/* 20261020am 榜单定位高亮 */
#modal .rn-hl{outline:2px solid #ffd76a;outline-offset:2px;border-radius:10px;animation:rnHl 1.2s ease-in-out 3;background-color:rgba(255,215,106,.12)}
@keyframes rnHl{0%,100%{box-shadow:0 0 0 0 rgba(255,215,106,0)}50%{box-shadow:0 0 16px 4px rgba(255,215,106,.55)}}
/* 20261020am 马桥电影院列表卡 = 每日最佳牌面样式 */
.cin-list .cin-bst{flex:none;padding:10px 10px 8px;margin:0}
.cin-bst .bst-top{margin-bottom:6px}
.cin-bst .bst-open{margin:0}
.cin-bst .bw-l2 .cin-tag{flex:none}
.cin-bst .cin-when{margin-left:auto;flex:none;font-size:12px;color:#b39a62;white-space:nowrap}
.cin-bst .cb-act{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(138,106,34,.45)}
.cin-bst .cb-act .cin-like{flex:none;min-width:64px;padding:5px 12px;margin:0}
.cin-bst .cb-act .cin-share{margin-left:auto;flex:none}
.cin-bst .cb-act .cm-ic{min-height:36px}
@media (min-width:760px){.cin-book{max-width:900px}.cin-book .cin-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}}
@media (max-width:420px){.cin-bst .cb-act{gap:6px}.cin-bst .cb-act .cin-share{padding:6px 10px;font-size:12px}}
