/* --- daifugo (card game) --- */
.daifugo-options {
  margin: 4px 0 14px;
}
.daifugo-standard-note {
  font-size: 0.8rem;
  color: var(--shop-ink-soft);
  margin: 0 0 10px;
}
.daifugo-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 16px;
}
.daifugo-rule-check {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.88rem;
  color: var(--shop-ink);
  cursor: pointer;
}
.daifugo-rule-check input {
  width: auto;
  margin: 0;
}

.daifugo-container {
  width: 100%;
  max-width: 640px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
}
.daifugo-container.hidden { display: none; }

.daifugo-opponents {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.daifugo-opponent-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 6px 12px;
  border-radius: 8px;
  background: var(--shop-paper-deep);
  border: 1px solid var(--shop-paper-line);
  font-size: 0.8rem;
}
.daifugo-opponent-chip.active-turn {
  outline: 2px solid var(--shop-brass-deep);
}
.daifugo-opponent-chip.self {
  border: 1px dashed var(--shop-brass-deep);
}
.daifugo-opponent-chip.inactive {
  opacity: 0.55;
  filter: saturate(0.6);
}
.daifugo-opponent-name { font-weight: 600; }
.daifugo-opponent-count { color: var(--shop-ink-soft); font-size: 0.75rem; }
.daifugo-turn-order-badge {
  font-size: 0.7rem;
  color: var(--shop-brass-deep);
}

.daifugo-rank-badge {
  font-size: 0.7rem;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--shop-paper);
  border: 1px solid var(--shop-ink-soft);
  color: var(--shop-ink-soft);
}
.daifugo-rank-badge.rank-daifugo { background: var(--shop-brass); border-color: var(--shop-brass); color: var(--shop-walnut-deep); }
.daifugo-rank-badge.rank-fugou { background: var(--shop-pine); border-color: var(--shop-pine); color: var(--shop-paper); }
.daifugo-rank-badge.rank-hinmin { background: var(--shop-ink-soft); border-color: var(--shop-ink-soft); color: var(--shop-paper); }
.daifugo-rank-badge.rank-daihinmin { background: var(--shop-burgundy); border-color: var(--shop-burgundy); color: var(--shop-paper); }

.daifugo-field {
  min-height: 96px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px;
  border-radius: 10px;
  background: var(--shop-paper-deep);
  border: 1px solid var(--shop-paper-line);
}
.daifugo-field.hidden { display: none; }
.daifugo-field-empty {
  color: var(--shop-ink-soft);
  font-size: 0.85rem;
  margin: 0;
}
.daifugo-lock-note, .daifugo-revolution-note {
  width: 100%;
  text-align: center;
  font-size: 0.8rem;
  margin: 4px 0 0;
  color: var(--shop-burgundy);
}

.daifugo-round-result h3 {
  margin: 0 0 10px;
  text-align: center;
}
#daifugo-round-actions.hidden { display: none; }
#poker-hand-actions.hidden { display: none; }
#poker-draw-controls.hidden { display: none; }
.daifugo-round-result-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.daifugo-round-result-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--shop-paper-deep);
  border: 1px solid var(--shop-paper-line);
  font-size: 0.9rem;
}
.daifugo-result-position {
  font-weight: 700;
  min-width: 2.4em;
}
.daifugo-result-name { flex: 1; }
.daifugo-foul-badge {
  font-size: 0.7rem;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--error);
  color: #fff;
}

.daifugo-exchange {
  text-align: center;
}
.daifugo-exchange p {
  margin: 0 0 8px;
  font-size: 0.9rem;
  color: var(--shop-ink-soft);
}

.daifugo-seven-give {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border-radius: 10px;
  background: var(--shop-paper-deep);
  border: 1px solid var(--shop-paper-line);
}
.daifugo-seven-give.hidden { display: none; }
.daifugo-seven-give p { margin: 0; }
.daifugo-seven-give-note {
  font-size: 0.85rem;
  color: var(--shop-ink-soft);
}
.daifugo-seven-give-note.hidden { display: none; }
.daifugo-seven-give label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
}

.daifugo-hand {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  min-height: 76px;
}

.daifugo-card {
  width: 64px;
  height: 90px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 7px;
  display: block;
  cursor: pointer;
  filter: drop-shadow(0 2px 3px rgba(42, 36, 28, 0.35));
  transition: transform 0.12s ease, filter 0.12s ease;
}
.daifugo-card svg { display: block; width: 100%; height: 100%; }
.daifugo-card:disabled { cursor: default; opacity: 0.85; }
.daifugo-card.selected {
  transform: translateY(-10px);
  filter: drop-shadow(0 6px 10px rgba(42, 36, 28, 0.5));
  outline: 2px solid var(--shop-burgundy);
  outline-offset: 2px;
  border-radius: 7px;
}
.daifugo-card:not(:disabled):hover { transform: translateY(-4px); }

.daifugo-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}
.daifugo-actions.hidden { display: none; }


/* --- 緋毛氈の卓 -------------------------------------------------------
   大富豪と七並べの卓を店の意匠に寄せる。変えるのは四つ ―― 場に毛氈を敷き、
   手札を扇に重ね、打ち手を木札にし、出す・パスを卓の札にする。札の絵柄
   (public/cards.js)と寸法(64×90、場の内余白12px)はそのまま。

   .daifugo-field / .daifugo-hand / .daifugo-opponents / .daifugo-actions は
   ババ抜き・ヨット・ライアーズダイスも使い回しているので、ここから下はすべて
   卓のidの下に閉じ込める ―― それらの卓は元のまま。
   同じ札を同じ扇で持ち、同じ木札を並べる大富豪・七並べ・ポーカーが、扇・
   打ち手の木札・卓の木札の三つを共有する(#daifugo-container /
   #sevens-container / #poker-container)。毛氈を敷いた「場」と縛り・革命の
   木札は大富豪だけのもので、七並べの盤は styles/sevens.css、ポーカーの
   紺羅紗の卓は styles/poker.css が自分で持つ。 */

/* 扇の開きと沈みは枚数で変わる(3人戦だと配りたてで18枚になる)。
   JSが枚数から --fan-n / --fan-step / --fan-dip / --fan-overlap を決め、
   CSSは「何枚目か(--i)」から一枚ずつの傾きと沈みを出す。 */
#daifugo-container .daifugo-card,
#sevens-container .daifugo-card,
#poker-container .daifugo-card {
  --d: calc(var(--i, 0) - (var(--fan-n, 1) - 1) / 2);
  --lift: 0px;
  /* 重ねた列は幅が余らない。縮ませると札が痩せるので、64pxのまま。 */
  flex: none;
  transform-origin: 50% 150%;
  transform:
    rotate(calc(var(--d) * var(--fan-step, 0deg)))
    translateY(calc(var(--d) * var(--d) * var(--fan-dip, 0px) + var(--lift)));
  z-index: var(--i, 0);
}

/* 場 ―― 胡桃の枠に緋毛氈を敷く。枠9px + 毛氈の内余白12pxで、札の座りは
   実装のまま。出した札は少しずつ傾けて重ね、投げ置いた形にする。 */
#daifugo-container .daifugo-field {
  --fan-step: 3deg;
  position: relative;
  min-height: 138px;
  gap: 0;
  align-content: center;
  padding: 21px;
  border-radius: 4px;
  border: 1px solid var(--daifugo-frame-edge);
  background:
    var(--wood-grain),
    linear-gradient(var(--daifugo-frame-a), var(--daifugo-frame-b));
  box-shadow:
    0 3px 6px var(--daifugo-frame-drop),
    inset 0 1px 0 var(--daifugo-frame-sheen);
}
#daifugo-container .daifugo-field::before {
  content: '';
  position: absolute;
  inset: 9px;
  border-radius: 2px;
  background:
    var(--daifugo-mousen-sheen),
    var(--daifugo-mousen-nap),
    linear-gradient(168deg, var(--daifugo-mousen-a), var(--daifugo-mousen-b));
  box-shadow: var(--daifugo-mousen-well);
}
#daifugo-container .daifugo-field > * { position: relative; z-index: 1; }
#daifugo-container .daifugo-field .daifugo-card + .daifugo-card { margin-left: -14px; }
#daifugo-container .daifugo-field-empty { color: var(--daifugo-mousen-ink); }

/* 配る前の山札 ―― 伏せ札を少しずつずらして積む。扇の傾きは使わない。
   卓に一つきりの置物なので、手札(64×90)より一回り大きく、1.5倍で置く。
   七並べ・ばば抜き・ポーカーも配る前に同じ山札を置く(置き場所はそれぞれの
   styles/sevens.css・babanuki.css・poker.css)。 */
#daifugo-container .daifugo-deck,
#sevens-container .daifugo-deck,
#babanuki-container .daifugo-deck,
#poker-container .daifugo-deck {
  --deck-w: 96px;
  --deck-h: 135px;
  --deck-step: 3px;
  position: relative;
  width: calc(var(--deck-w) + 4 * var(--deck-step));
  height: calc(var(--deck-h) + 4 * var(--deck-step));
  margin: 2px 0 4px;
}
#daifugo-container .daifugo-deck .daifugo-card.card-back,
#sevens-container .daifugo-deck .daifugo-card.card-back,
#babanuki-container .daifugo-deck .daifugo-card.card-back,
#poker-container .daifugo-deck .daifugo-card.card-back {
  position: absolute;
  left: calc(var(--layer) * var(--deck-step));
  top: calc((4 - var(--layer)) * var(--deck-step));
  width: var(--deck-w);
  height: var(--deck-h);
  border-radius: 10px;
  margin: 0;
  transform: none;
  cursor: default;
  z-index: var(--layer);
}
#daifugo-container .daifugo-deck .daifugo-card:not(:last-child),
#sevens-container .daifugo-deck .daifugo-card:not(:last-child),
#babanuki-container .daifugo-deck .daifugo-card:not(:last-child),
#poker-container .daifugo-deck .daifugo-card:not(:last-child) { filter: none; }
#daifugo-container .daifugo-deck-caption {
  width: 100%;
  margin-top: 10px;
  text-align: center;
  letter-spacing: 0.06em;
}
#daifugo-container .daifugo-rules-note {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}

/* 配る前の木札。枚数の代わりに席の様子(ホスト・CPU・準備)を小さく添え、
   まだ誰も座っていない席は破線の空き札にする。七並べ・ばば抜き・ポーカー・
   ライアーズダイスの始まる前の卓も同じ
   (public/waiting-table.js)。
   空き札は生成りに真鍮の破線 ―― 紙の地に溶けると、席が空いていることに
   気付かれない。 */
#daifugo-container .daifugo-seat-status,
#sevens-container .daifugo-seat-status,
#babanuki-container .daifugo-seat-status,
#poker-container .daifugo-seat-status,
#liarsdice-container .daifugo-seat-status {
  color: var(--daifugo-plate-sub);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
}
#daifugo-container .daifugo-opponent-chip.empty-seat,
#sevens-container .daifugo-opponent-chip.empty-seat,
#babanuki-container .daifugo-opponent-chip.empty-seat,
#poker-container .daifugo-opponent-chip.empty-seat,
#liarsdice-container .daifugo-opponent-chip.empty-seat {
  justify-content: center;
  min-width: 96px;
  border: 1.5px dashed rgba(138, 106, 26, 0.55);
  background: rgba(247, 241, 225, 0.7);
  box-shadow: none;
}
#daifugo-container .daifugo-opponent-chip.empty-seat .daifugo-opponent-name,
#sevens-container .daifugo-opponent-chip.empty-seat .daifugo-opponent-name,
#babanuki-container .daifugo-opponent-chip.empty-seat .daifugo-opponent-name,
#poker-container .daifugo-opponent-chip.empty-seat .daifugo-opponent-name,
#liarsdice-container .daifugo-opponent-chip.empty-seat .daifugo-opponent-name,
#daifugo-container .daifugo-opponent-chip.empty-seat .daifugo-seat-status,
#sevens-container .daifugo-opponent-chip.empty-seat .daifugo-seat-status,
#babanuki-container .daifugo-opponent-chip.empty-seat .daifugo-seat-status,
#poker-container .daifugo-opponent-chip.empty-seat .daifugo-seat-status,
#liarsdice-container .daifugo-opponent-chip.empty-seat .daifugo-seat-status {
  color: #6f6453;
  letter-spacing: 0.2em;
}

/* 縛りと革命は、場の中に挟まる赤い文ではなく、毛氈に置く木札にする。 */
#daifugo-container .daifugo-lock-note,
#daifugo-container .daifugo-revolution-note {
  margin: 12px 0 0;
  color: inherit;
}
#daifugo-container .daifugo-lock-note > span,
#daifugo-container .daifugo-revolution-note > span {
  display: inline-block;
  padding: 3px 10px 4px;
  border-radius: 2px;
  border: 1px solid var(--shop-brass);
  background:
    var(--wood-grain),
    linear-gradient(var(--daifugo-frame-a), var(--daifugo-frame-b));
  font-family: var(--shop-font-display);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--shop-brass-light);
}
/* 革命だけは生成りの札に朱の字。木札のままだと毛氈の緋色に沈む。 */
#daifugo-container .daifugo-revolution-note > span {
  border-color: var(--shop-seal-deep);
  background: var(--shop-paper-light);
  color: var(--shop-seal-deep);
}
/* 革命の演出(game-fx.js の playRevolutionFx)が捺し終えて引くまでは伏せる ――
   札が出た瞬間に木札が出ると、ドドンの前に何が起きたかが分かってしまう。
   場は演出の間にも描き直されるので、札ではなく body の印で伏せる。 */
.game-fx-rev-holding #daifugo-container .daifugo-revolution-note { visibility: hidden; }

/* 手札 ―― 折り返さず、重ねた一列の扇にする。重なりの幅はJSが卓の幅に
   合わせて詰めるので、枚数が増えても一列のまま収まる。 */
#daifugo-container .daifugo-hand,
#sevens-container .daifugo-hand,
#poker-container .daifugo-hand {
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0;
  align-items: flex-start;
  min-height: 116px;
  padding-top: 6px;
}
#daifugo-container .daifugo-hand .daifugo-card + .daifugo-card,
#sevens-container .daifugo-hand .daifugo-card + .daifugo-card,
#poker-container .daifugo-hand .daifugo-card + .daifugo-card {
  margin-left: calc(var(--fan-overlap, 24px) * -1);
}
/* 扇にしても入りきらないときだけ、元の折り返しに戻す。傾き・沈み・重なりは
   JSが0にするので、札は上の一本の指定のまま平らに並ぶ。 */
#daifugo-container .daifugo-hand.fan-wrap,
#sevens-container .daifugo-hand.fan-wrap,
#poker-container .daifugo-hand.fan-wrap {
  flex-wrap: wrap;
  gap: 6px;
  min-height: 76px;
}
#daifugo-container .daifugo-hand .daifugo-card:not(:disabled):hover,
#sevens-container .daifugo-hand .daifugo-card:not(:disabled):hover,
#poker-container .daifugo-hand .daifugo-card:not(:disabled):hover {
  --lift: -6px;
  z-index: calc(var(--i, 0) + 50);
}
#daifugo-container .daifugo-hand .daifugo-card.selected,
#sevens-container .daifugo-hand .daifugo-card.selected,
#poker-container .daifugo-hand .daifugo-card.selected {
  --lift: -12px;
  z-index: calc(var(--i, 0) + 100);
  filter: drop-shadow(0 7px 11px rgba(42, 36, 28, 0.5));
}

/* 打ち手は木札。手番の札だけ真鍮の縁が灯り、朱の小札が差さる ――
   明かりが当たっている札が今の手番。 */
#daifugo-container .daifugo-opponent-chip,
#sevens-container .daifugo-opponent-chip,
#poker-container .daifugo-opponent-chip {
  gap: 4px;
  padding: 8px 14px 7px;
  border-radius: var(--radius);
  border: 1px solid var(--daifugo-plate-edge);
  background:
    var(--wood-grain),
    linear-gradient(var(--daifugo-frame-a), var(--daifugo-frame-b));
  box-shadow: 0 2px 3px rgba(20, 12, 4, 0.3);
}
#daifugo-container .daifugo-opponent-chip.self,
#sevens-container .daifugo-opponent-chip.self,
#poker-container .daifugo-opponent-chip.self { border-style: dashed; }
#daifugo-container .daifugo-opponent-chip.active-turn,
#sevens-container .daifugo-opponent-chip.active-turn,
#poker-container .daifugo-opponent-chip.active-turn {
  outline: none;
  border-color: var(--shop-brass-light);
  box-shadow: var(--daifugo-plate-lit);
}
#daifugo-container .daifugo-opponent-name,
#sevens-container .daifugo-opponent-name,
#poker-container .daifugo-opponent-name {
  font-family: var(--shop-font-display);
  font-weight: 400;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  color: var(--daifugo-plate-name);
}
#daifugo-container .active-turn .daifugo-opponent-name,
#sevens-container .active-turn .daifugo-opponent-name,
#poker-container .active-turn .daifugo-opponent-name { color: var(--daifugo-plate-name-lit); }
#daifugo-container .daifugo-opponent-count,
#sevens-container .daifugo-opponent-count,
#poker-container .daifugo-opponent-count {
  color: var(--daifugo-plate-sub);
  font-size: 0.7rem;
}
#daifugo-container .active-turn .daifugo-opponent-count,
#sevens-container .active-turn .daifugo-opponent-count,
#poker-container .active-turn .daifugo-opponent-count { color: var(--daifugo-plate-sub-lit); }
/* 残り枚数の頭に札束の目印。数字だけの行より、手の厚みが目に入る。
   上がった打ち手は「上がり」と出るので、札束は消す。 */
#daifugo-container .daifugo-opponent-count::before,
#sevens-container .daifugo-opponent-count::before,
#poker-container .daifugo-opponent-count::before {
  content: '';
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-right: 5px;
  vertical-align: -2px;
  background: currentColor;
  -webkit-mask: var(--card-stack-mark) no-repeat center / contain;
  mask: var(--card-stack-mark) no-repeat center / contain;
}
#daifugo-container .daifugo-opponent-chip.inactive .daifugo-opponent-count::before { display: none; }
#daifugo-container .daifugo-turn-order-badge {
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--daifugo-plate-sub);
}
#daifugo-container .active-turn .daifugo-turn-order-badge {
  padding: 1px 8px 2px;
  border-radius: 2px;
  background: linear-gradient(var(--shop-seal), var(--shop-seal-deep));
  font-family: var(--shop-font-display);
  color: var(--shop-paper-light);
}

/* 出す・パスは卓の上の木札。押せない間は伏せた札として、消えずに残る。 */
#daifugo-container .daifugo-actions .primary-btn,
#daifugo-container .daifugo-actions .secondary-btn,
#sevens-container .daifugo-actions .primary-btn,
#poker-container .daifugo-actions .primary-btn,
#sevens-container .daifugo-actions .secondary-btn,
#poker-container .daifugo-actions .secondary-btn {
  min-width: 128px;
  padding: 11px 30px;
  font-family: var(--shop-font-display);
  font-size: 0.95rem;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
}
#daifugo-container .daifugo-actions .primary-btn,
#sevens-container .daifugo-actions .primary-btn,
#poker-container .daifugo-actions .primary-btn {
  border: 1px solid var(--shop-brass);
  background:
    var(--wood-grain),
    linear-gradient(var(--shop-pine), var(--shop-pine-deep));
  color: #f2ead6;
  box-shadow:
    0 2px 3px rgba(20, 12, 4, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
#daifugo-container .daifugo-actions .primary-btn:hover,
#sevens-container .daifugo-actions .primary-btn:hover,
#poker-container .daifugo-actions .primary-btn:hover {
  background:
    var(--wood-grain),
    linear-gradient(var(--shop-pine-deep), var(--shop-pine-deep));
}
#daifugo-container .daifugo-actions .primary-btn:disabled,
#sevens-container .daifugo-actions .primary-btn:disabled,
#poker-container .daifugo-actions .primary-btn:disabled {
  border: 1px dashed var(--shop-paper-line);
  background: rgba(222, 208, 170, 0.5);
  color: #6f6455;
  box-shadow: none;
}
#daifugo-container .daifugo-actions .secondary-btn,
#sevens-container .daifugo-actions .secondary-btn,
#poker-container .daifugo-actions .secondary-btn {
  border: 1px solid var(--shop-brass-deep);
  background: var(--shop-paper-light);
  color: var(--shop-ink-soft);
  box-shadow: 0 1px 2px rgba(42, 36, 28, 0.18);
}
#daifugo-container .daifugo-actions .secondary-btn:hover,
#sevens-container .daifugo-actions .secondary-btn:hover,
#poker-container .daifugo-actions .secondary-btn:hover {
  background: var(--shop-paper-deep);
  border-color: var(--shop-brass-deep);
}
/* パスも出すと同じで、押せない間は伏せた札にする。七並べは出せる札が一枚でも
   あればパスできないので、押せるかどうかが見た目に出ていないと、押してから
   サーバに断られることになる。 */
#daifugo-container .daifugo-actions .secondary-btn:disabled,
#sevens-container .daifugo-actions .secondary-btn:disabled,
#poker-container .daifugo-actions .secondary-btn:disabled {
  border: 1px dashed var(--shop-paper-line);
  background: rgba(222, 208, 170, 0.5);
  color: #6f6455;
  box-shadow: none;
  cursor: not-allowed;
}

/* 手控え ―― 流れた直前の場を二回分。巻紙を卓の脇に広げたつもりで、
   毛氈より一段おとなしく、紙の色のまま置く。札は場と同じ絵柄を
   38×53で刷る(場は64×90)。 */
.daifugo-recent {
  /* 卓の外に出ているので、幅と間は自分で持つ(.daifugo-container と同じ640px)。 */
  width: 100%;
  max-width: 640px;
  box-sizing: border-box;
  margin: 6px auto 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--shop-paper-line);
  border-left: 3px solid var(--shop-brass-deep);
  background-image: var(--shop-paper-grain), linear-gradient(var(--shop-paper-light), var(--shop-paper-light));
}
.daifugo-recent.hidden { display: none; }
/* 別の遊びに切り替わったときに手控えを伏せるのは、並び順に頼る隣接指定
   ではなく core.js の registerGame({ hide }) が持つ(public/games/daifugo.js) ―
   #daifugo-container の外に置いた要素でも、間に何が挟まっても確実に伏せる。 */

/* 7渡し・献上 ―― 場を介さない手札から手札への受け渡し。トリックの行とは
   組み方を変え、地の色も一段落として「別枠の記録」だと分かるようにする。 */
.daifugo-transfer-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--shop-paper-line);
}
.daifugo-transfer {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 0.76rem;
  color: var(--shop-ink-soft);
}
.daifugo-transfer-line { display: inline-flex; align-items: baseline; gap: 4px; }
/* 自分が絡む受け渡しだけ濃く。手札が理由もなく増減したと感じるのは
   だいたい自分の番なので、まずそこが目に入るように。 */
.daifugo-transfer-line .self { color: var(--shop-ink); font-weight: 700; }
.daifugo-transfer-mark {
  font-family: var(--shop-font-display);
  letter-spacing: 0.05em;
  color: var(--shop-brass-deep);
}
.daifugo-transfer-kind {
  font-size: 0.7rem;
  color: var(--shop-ink-soft);
  opacity: 0.85;
}

.daifugo-recent-trick {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.daifugo-recent-ago {
  flex: none;
  min-width: 4.5em;
  font-family: var(--shop-font-display);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--shop-brass-deep);
}
.daifugo-recent-plays {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 4px 12px;
}
/* ひと手ぶん ―― 名前を上、出した札を下に置く縦の組。 */
.daifugo-recent-play {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.daifugo-recent-who {
  font-size: 0.66rem;
  color: var(--shop-ink-soft);
  max-width: 9em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.daifugo-recent-play.passed .daifugo-recent-who { color: #8b8071; }
/* 自分の手だけ濃く。誰が何をしたかを追うとき、まず自分を探すので。 */
.daifugo-recent-play.self .daifugo-recent-who {
  color: var(--shop-ink);
  font-weight: 700;
}
.daifugo-recent-passed {
  padding: 2px 7px 3px;
  border: 1px dashed var(--shop-paper-line);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: #8b8071;
}
.daifugo-recent-cards { display: flex; }
.daifugo-recent-cards .daifugo-card + .daifugo-card { margin-left: -8px; }
.daifugo-recent .daifugo-card {
  width: 38px;
  height: 53px;
  border-radius: 4px;
  cursor: default;
  filter: drop-shadow(0 1px 2px rgba(42, 36, 28, 0.28));
}
/* 読むだけの札なので、指を乗せても持ち上がらない。 */
.daifugo-recent .daifugo-card:hover { transform: none; }
.daifugo-recent-end {
  flex: none;
  margin-left: auto;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--shop-ink-soft);
}

/* 狭い画面では控えを小さく刷る。二回分で卓を押し下げすぎないように、
   札を30×42まで落として行間を詰める(読める大きさは残す)。 */
@media (max-width: 560px) {
  .daifugo-recent { padding: 8px 10px; gap: 6px; }
  .daifugo-recent-trick { gap: 4px 8px; }
  .daifugo-recent-ago { min-width: 100%; }
  .daifugo-recent-plays { gap: 3px 8px; }
  .daifugo-recent-who { font-size: 0.6rem; max-width: 6.5em; }
  .daifugo-recent .daifugo-card { width: 30px; height: 42px; border-radius: 3px; }
  .daifugo-recent-cards .daifugo-card + .daifugo-card { margin-left: -6px; }
  .daifugo-recent-passed { padding: 1px 5px 2px; font-size: 0.6rem; }
  .daifugo-recent-end { margin-left: 0; font-size: 0.62rem; }
  .daifugo-transfer { flex-wrap: wrap; font-size: 0.68rem; }
  .daifugo-transfer-kind { font-size: 0.64rem; }
}
