:root {
  --bg: #030807;
  --panel: rgba(8, 24, 20, 0.78);
  --panel-strong: rgba(5, 17, 14, 0.94);
  --felt: #063f2f;
  --felt-deep: #032a20;
  --gold: #f6c85f;
  --gold-2: #ffe6a1;
  --mint: #61f2b6;
  --cyan: #74eaff;
  --danger: #ff6b7c;
  --text: #f6fff9;
  --muted: #9fbab0;
  --line: rgba(255,255,255,.1);
  --shadow: 0 22px 60px rgba(0,0,0,.42);
  --radius: 22px;
}

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--bg); }

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 50% -10%, rgba(19,116,83,.35), transparent 40%),
    linear-gradient(135deg, #020605 0%, #07140f 48%, #020605 100%);
}

button { font: inherit; }
button:focus-visible { outline: 3px solid rgba(116,234,255,.8); outline-offset: 3px; }
button:disabled { opacity: .36; cursor: not-allowed; transform: none !important; filter: grayscale(.25); }
.hidden { display: none !important; }

.ambient {
  position: fixed;
  border-radius: 999px;
  filter: blur(90px);
  opacity: .2;
  pointer-events: none;
  animation: drift 11s ease-in-out infinite alternate;
}
.ambient-one { width: 420px; height: 420px; background: #00c97f; left: -180px; top: 24%; }
.ambient-two { width: 380px; height: 380px; background: #0c7bff; right: -180px; top: 8%; animation-delay: -3s; }

.glass {
  background: linear-gradient(145deg, rgba(13,35,29,.84), rgba(4,15,12,.72));
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.05);
  backdrop-filter: blur(18px);
}

.topbar {
  width: min(1480px, calc(100% - 30px));
  margin: 15px auto 0;
  min-height: 84px;
  border-radius: 20px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 24px;
  align-items: center;
  padding: 14px 18px;
  position: relative;
  z-index: 20;
}

.brand-wrap { display: flex; align-items: center; gap: 13px; min-width: 0; }
.brand-mark {
  width: 50px; height: 50px; border-radius: 15px;
  display: grid; place-items: center;
  color: #082015;
  font-size: 28px;
  background: linear-gradient(135deg, var(--gold-2), var(--gold));
  box-shadow: 0 0 28px rgba(246,200,95,.28), inset 0 1px rgba(255,255,255,.65);
}
.brand-wrap h1 { margin: 0; font-size: clamp(17px, 2vw, 25px); letter-spacing: .12em; }
.brand-wrap p { margin: 3px 0 0; color: var(--muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.header-stats { display: flex; gap: 9px; }
.stat-pill {
  min-width: 118px;
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
}
.stat-pill span { display: block; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .09em; }
.stat-pill strong { display: block; margin-top: 2px; font-size: 19px; color: var(--gold-2); }
.stat-pill.compact { min-width: 90px; }
.header-actions { display: flex; gap: 8px; }
.icon-btn {
  width: 44px; height: 44px; border-radius: 13px;
  border: 1px solid var(--line); color: var(--text);
  background: rgba(255,255,255,.045); cursor: pointer;
  transition: .2s ease;
}
.icon-btn:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }

.layout {
  width: min(1480px, calc(100% - 30px));
  margin: 16px auto 30px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 16px;
  align-items: start;
}

.table-shell { min-width: 0; }
.table-rim {
  padding: 14px;
  border-radius: 140px 140px 32px 32px;
  background:
    linear-gradient(135deg, #5e3c20, #b37b42 20%, #4c2d18 44%, #926238 70%, #3b2113),
    #5b361f;
  box-shadow: 0 28px 70px rgba(0,0,0,.55), inset 0 3px 3px rgba(255,255,255,.22), inset 0 -5px 10px rgba(0,0,0,.48);
}
.table-felt {
  min-height: 650px;
  position: relative;
  overflow: hidden;
  border-radius: 125px 125px 20px 20px;
  background:
    radial-gradient(circle at 50% 44%, rgba(41,143,101,.28), transparent 35%),
    repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,.018) 0 1px, transparent 1px 5px),
    linear-gradient(145deg, #07523c, var(--felt) 45%, var(--felt-deep));
  box-shadow: inset 0 0 70px rgba(0,0,0,.48), inset 0 0 0 2px rgba(246,200,95,.19);
}
.table-felt::before {
  content: "";
  position: absolute; inset: 18px;
  border: 1px solid rgba(246,200,95,.25);
  border-radius: 108px 108px 16px 16px;
  pointer-events: none;
}
.table-felt::after {
  content: "";
  position: absolute;
  width: 520px; height: 280px;
  border: 1px solid rgba(246,200,95,.18);
  border-bottom: 0;
  border-radius: 50% 50% 0 0;
  left: 50%; bottom: 35px; transform: translateX(-50%);
  pointer-events: none;
}
.table-copy {
  position: absolute; left: 50%; transform: translateX(-50%);
  color: rgba(246,200,95,.4); font-size: 11px; letter-spacing: .28em;
  white-space: nowrap; z-index: 0;
}
.table-copy-top { top: 48%; }
.table-copy-bottom { bottom: 25px; }

.seat { position: relative; z-index: 2; }
.dealer-seat { padding-top: 48px; min-height: 250px; }
.player-seat { padding: 0 34px 32px; min-height: 250px; }
.seat-heading { display: flex; justify-content: center; align-items: center; gap: 12px; margin-bottom: 12px; }
.seat-label { font-size: 12px; letter-spacing: .2em; color: var(--gold-2); font-weight: 800; }
.score-badge {
  min-width: 38px; height: 27px; padding: 0 9px;
  border-radius: 999px; display: inline-grid; place-items: center;
  background: rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.12);
  font-weight: 800; color: var(--mint);
}
.muted-label { color: var(--muted); font-size: 12px; }

.card-row { min-height: 140px; display: flex; justify-content: center; align-items: center; padding: 6px; }
.playing-card {
  --card-w: 92px;
  width: var(--card-w); height: calc(var(--card-w) * 1.42);
  position: relative; flex: 0 0 auto;
  margin-left: -18px;
  transform-style: preserve-3d;
  transform-origin: center;
}
.playing-card.dealt { animation: dealCard .52s cubic-bezier(.15,.8,.2,1.25) both; }
.playing-card:first-child { margin-left: 0; }
.playing-card.face-down { transform: rotateY(180deg); }
.playing-card.flip { animation: flipCard .58s ease both; }
.card-face {
  position: absolute; inset: 0;
  border-radius: 10px;
  backface-visibility: hidden;
  box-shadow: 0 13px 20px rgba(0,0,0,.35), inset 0 0 0 1px rgba(0,0,0,.15);
}
.card-front {
  color: #171a18;
  background:
    linear-gradient(145deg, rgba(255,255,255,.8), transparent 30%),
    #f8f4e9;
  border: 3px solid #ede7d8;
}
.card-front.red { color: #d43145; }
.card-back {
  transform: rotateY(180deg);
  display: grid; place-items: center;
  border: 4px solid #f3ead5;
  background:
    linear-gradient(45deg, rgba(255,255,255,.07) 25%, transparent 25% 50%, rgba(255,255,255,.07) 50% 75%, transparent 75%),
    linear-gradient(135deg, #122e5e, #081b3d);
  background-size: 12px 12px, auto;
}
.card-back::before { content:""; position:absolute; inset:5px; border:1px solid rgba(255,255,255,.55); border-radius:5px; }
.back-emblem { width: 48px; height: 48px; display:grid; place-items:center; border-radius:50%; color:var(--gold); background:rgba(0,0,0,.25); border:1px solid rgba(246,200,95,.45); font-size:28px; }
.corner { position: absolute; display: grid; justify-items: center; line-height: .9; font-weight: 900; font-family: Georgia, serif; }
.corner .rank { font-size: 20px; }
.corner .suit { font-size: 16px; }
.top-left { left: 8px; top: 8px; }
.bottom-right { right: 8px; bottom: 8px; transform: rotate(180deg); }
.card-center { position: absolute; inset: 0; display:grid; place-items:center; font-size: 48px; font-family: Georgia, serif; }

.center-status { position: relative; z-index: 3; height: 72px; display: grid; place-items: center; }
.status-orb {
  min-width: 170px; min-height: 44px; padding: 10px 20px;
  display: grid; place-items: center;
  border-radius: 999px;
  color: var(--gold-2);
  font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
  background: rgba(2,18,13,.72);
  border: 1px solid rgba(246,200,95,.26);
  box-shadow: 0 0 30px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.05);
}
.status-orb.pulse { animation: statusPulse .7s ease; }
.status-orb.win { border-color: rgba(97,242,182,.65); color: var(--mint); box-shadow: 0 0 30px rgba(97,242,182,.18); }
.status-orb.lose { border-color: rgba(255,107,124,.65); color: #ffb3bd; }

.hands-grid { display: flex; justify-content: center; align-items: stretch; gap: 14px; min-height: 175px; }
.player-hand {
  min-width: 180px; max-width: 300px; flex: 1 1 210px;
  padding: 10px 10px 12px;
  border-radius: 18px;
  background: rgba(1,18,13,.3);
  border: 1px solid transparent;
  transition: .25s ease;
  position: relative;
}
.player-hand.active {
  background: rgba(5,45,33,.65);
  border-color: rgba(246,200,95,.56);
  box-shadow: 0 0 26px rgba(246,200,95,.11), inset 0 1px rgba(255,255,255,.04);
  transform: translateY(-5px);
}
.player-hand.finished { opacity: .76; }
.hand-top { display:flex; align-items:center; justify-content:space-between; margin-bottom: 3px; gap:8px; }
.hand-name { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.hand-meta { display:flex; gap:6px; align-items:center; }
.hand-score, .hand-bet { font-size: 11px; font-weight:800; padding:4px 7px; border-radius:999px; background:rgba(0,0,0,.28); }
.hand-score { color: var(--mint); }
.hand-bet { color: var(--gold-2); }
.hand-result { text-align:center; min-height:18px; font-size:12px; font-weight:900; letter-spacing:.05em; color:var(--gold-2); }
.hand-cards { min-height: 132px; display:flex; justify-content:center; align-items:center; }
.player-hand .playing-card { --card-w: 78px; margin-left: -26px; }
.player-hand .playing-card:first-child { margin-left: 0; }

.control-deck { margin-top: 12px; border-radius: var(--radius); padding: 14px; }
.controls-row { min-height: 94px; display: flex; align-items: center; gap: 14px; }
.control-title { min-width: 145px; }
.control-title span { display:block; font-weight:900; }
.control-title small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.chips { display:flex; align-items:center; gap:8px; }
.chip {
  width: 52px; height: 52px; border-radius:50%; cursor:pointer;
  color:#fff; font-weight:900; border:4px dashed rgba(255,255,255,.7);
  box-shadow: 0 7px 14px rgba(0,0,0,.35), inset 0 0 0 4px rgba(0,0,0,.15);
  transition: .18s ease;
}
.chip:hover { transform: translateY(-5px) rotate(-6deg); filter:brightness(1.15); }
.chip:active { transform: translateY(-1px) scale(.96); }
.chip-5 { background:#26835d; }
.chip-10 { background:#1e71b9; }
.chip-25 { background:#a43d4d; }
.chip-50 { background:#6c45a6; }
.chip-100 { background:#242b31; }
.bet-adjusters { display:flex; gap:7px; margin-left:auto; }
.secondary-btn, .primary-btn, .action-btn {
  border:1px solid var(--line); color:var(--text); cursor:pointer; transition:.2s ease;
}
.secondary-btn { height:42px; min-width:42px; border-radius:12px; background:rgba(255,255,255,.05); font-weight:800; }
.secondary-btn.wide { padding:0 12px; font-size:12px; }
.secondary-btn:hover { background:rgba(255,255,255,.11); transform:translateY(-2px); }
.primary-btn {
  min-height:52px; border-radius:15px; padding:0 21px;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  color:#191406; border-color:rgba(255,255,255,.35); font-weight:1000;
  box-shadow:0 10px 24px rgba(246,200,95,.18), inset 0 1px rgba(255,255,255,.6);
}
.primary-btn:hover { transform:translateY(-3px); filter:brightness(1.07); box-shadow:0 14px 30px rgba(246,200,95,.26); }
.deal-btn { min-width:170px; display:flex; justify-content:center; align-items:center; gap:12px; }
.deal-btn i { font-style:normal; }

.action-controls { justify-content:center; flex-wrap:wrap; }
.action-btn {
  min-width:145px; min-height:70px; border-radius:16px; padding:9px 14px;
  background:rgba(255,255,255,.045);
  display:grid; grid-template-columns:38px 1fr; grid-template-rows:auto auto;
  text-align:left; column-gap:9px;
}
.action-btn:hover:not(:disabled) { transform:translateY(-4px); background:rgba(255,255,255,.09); box-shadow:0 11px 22px rgba(0,0,0,.25); }
.action-icon { grid-row:1 / 3; align-self:center; font-size:23px; color:var(--mint); }
.action-btn > span:nth-child(2) { align-self:end; font-weight:900; }
.action-btn small { align-self:start; color:var(--muted); }
.action-btn.premium { border-color:rgba(246,200,95,.23); }
.action-btn.premium .action-icon { color:var(--gold); }
.action-btn.danger .action-icon { color:var(--danger); }

.side-panel { border-radius:var(--radius); overflow:hidden; position:sticky; top:16px; }
.panel-section { padding:19px; border-bottom:1px solid var(--line); }
.panel-section:last-child { border-bottom:0; }
.panel-heading { display:flex; justify-content:space-between; align-items:center; }
.panel-section h2 { margin:0 0 14px; font-size:14px; letter-spacing:.06em; }
.text-btn { border:0; background:transparent; color:var(--muted); cursor:pointer; font-size:11px; }
.text-btn:hover { color:var(--text); }
.stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.stats-grid div { background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.06); border-radius:13px; padding:10px; }
.stats-grid span { display:block; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.07em; }
.stats-grid strong { display:block; margin-top:3px; color:var(--gold-2); font-size:22px; }
.rule-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.rule-list li { display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.rule-list li span { color:var(--muted); }
.rule-list li strong { color:var(--text); }
.tip-box { display:flex; gap:12px; align-items:flex-start; background:linear-gradient(135deg, rgba(246,200,95,.08), transparent); }
.tip-box h2 { margin-bottom:4px; color:var(--gold-2); }
.tip-box p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.tip-icon { color:var(--gold); font-size:24px; }

.modal-backdrop {
  position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px;
  background:rgba(0,5,4,.72); backdrop-filter:blur(10px);
  animation:fadeIn .25s ease;
}
.modal-card { width:min(460px, 100%); border-radius:25px; text-align:center; padding:30px; animation:modalIn .38s cubic-bezier(.16,.85,.28,1.2); }
.modal-symbol { width:74px; height:74px; border-radius:20px; margin:0 auto 16px; display:grid; place-items:center; font-family:Georgia,serif; font-size:28px; color:#181206; background:linear-gradient(135deg,var(--gold-2),var(--gold)); box-shadow:0 0 35px rgba(246,200,95,.2); }
.modal-card h2 { margin:0 0 8px; font-size:28px; }
.modal-card p { margin:0; color:var(--muted); line-height:1.65; }
.insurance-amount { margin:18px 0; padding:12px; border-radius:13px; background:rgba(255,255,255,.045); }
.insurance-amount strong { color:var(--gold-2); }
.modal-actions { display:flex; gap:10px; }
.modal-btn { flex:1; }

.drawer {
  position:fixed; z-index:110; right:0; top:0; width:min(430px, 100%); height:100vh;
  padding:34px 28px; overflow:auto;
  background:rgba(4,17,13,.97); border-left:1px solid var(--line);
  box-shadow:-30px 0 70px rgba(0,0,0,.45);
  transform:translateX(105%); transition:transform .35s cubic-bezier(.2,.75,.25,1);
}
.drawer.open { transform:translateX(0); }
.drawer h2 { margin:10px 0 10px; font-size:27px; }
.drawer > p { color:var(--muted); line-height:1.65; }
.drawer-close { position:absolute; top:14px; right:16px; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.05); color:#fff; cursor:pointer; font-size:24px; }
.drawer-rule { padding:14px 0; border-bottom:1px solid var(--line); }
.drawer-rule strong { display:block; color:var(--gold-2); margin-bottom:4px; }
.drawer-rule span { color:var(--muted); font-size:13px; line-height:1.45; }
.fine-print { font-size:12px; }

.toast {
  position:fixed; z-index:130; left:50%; bottom:24px; transform:translate(-50%, 140px);
  min-width:240px; max-width:calc(100% - 30px); padding:13px 18px; text-align:center;
  border-radius:14px; color:var(--text); font-weight:800; font-size:13px;
  background:rgba(3,18,14,.94); border:1px solid rgba(255,255,255,.14); box-shadow:var(--shadow);
  transition:transform .3s ease;
}
.toast.show { transform:translate(-50%, 0); }

#particles { position:fixed; inset:0; pointer-events:none; overflow:hidden; z-index:120; }
.particle { position:absolute; width:10px; height:10px; border-radius:3px; background:var(--gold); animation:particleFly 1.2s ease-out forwards; }

.bankroll-flash { animation:bankrollFlash .55s ease; }
.shake { animation:shake .42s ease; }

@keyframes dealCard {
  0% { opacity:0; translate:250px -230px; rotate:18deg; scale:.7; }
  75% { opacity:1; translate:-3px 5px; rotate:-2deg; scale:1.03; }
  100% { opacity:1; translate:0 0; rotate:0deg; scale:1; }
}
@keyframes flipCard { 0% { transform:rotateY(180deg); } 100% { transform:rotateY(0); } }
@keyframes statusPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes modalIn { from{opacity:0; transform:translateY(20px) scale(.94)} to{opacity:1; transform:none} }
@keyframes drift { from{transform:translate3d(0,-20px,0) scale(.9)} to{transform:translate3d(30px,45px,0) scale(1.08)} }
@keyframes particleFly { to { transform:translate(var(--tx), var(--ty)) rotate(var(--rot)); opacity:0; } }
@keyframes bankrollFlash { 0%,100%{transform:scale(1)} 45%{transform:scale(1.13); color:var(--mint)} }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-7px)} 75%{transform:translateX(7px)} }

@media (max-width: 1120px) {
  .layout { grid-template-columns:1fr; }
  .side-panel { position:relative; top:auto; display:grid; grid-template-columns:1fr 1fr 1fr; }
  .panel-section { border-bottom:0; border-right:1px solid var(--line); }
  .panel-section:last-child { border-right:0; }
  .controls-row { flex-wrap:wrap; }
  .control-title { width:100%; }
  .bet-adjusters { margin-left:0; }
  .deal-btn { margin-left:auto; }
}

@media (max-width: 760px) {
  .topbar { grid-template-columns:1fr auto; gap:12px; }
  .header-stats { grid-column:1 / -1; width:100%; }
  .stat-pill { flex:1; min-width:0; }
  .header-actions { grid-column:2; grid-row:1; }
  .layout, .topbar { width:min(100% - 16px, 1480px); }
  .table-rim { padding:8px; border-radius:68px 68px 22px 22px; }
  .table-felt { min-height:650px; border-radius:60px 60px 16px 16px; }
  .table-felt::before { inset:9px; border-radius:51px 51px 12px 12px; }
  .dealer-seat { padding-top:35px; }
  .player-seat { padding:0 10px 26px; }
  .hands-grid { overflow-x:auto; justify-content:flex-start; padding:5px 4px 12px; scroll-snap-type:x mandatory; }
  .player-hand { min-width:240px; scroll-snap-align:center; }
  .table-copy { font-size:8px; }
  .chips { width:100%; justify-content:center; flex-wrap:wrap; }
  .chip { width:48px; height:48px; }
  .bet-adjusters { width:100%; justify-content:center; }
  .deal-btn { width:100%; margin-left:0; }
  .action-btn { min-width:calc(50% - 8px); }
  .side-panel { grid-template-columns:1fr; }
  .panel-section { border-right:0; border-bottom:1px solid var(--line); }
  .panel-section:last-child { border-bottom:0; }
}

@media (max-width: 460px) {
  .brand-wrap p { display:none; }
  .brand-mark { width:42px; height:42px; }
  .header-actions .icon-btn { width:40px; height:40px; }
  .stat-pill { padding:8px 9px; }
  .stat-pill strong { font-size:16px; }
  .table-felt { min-height:620px; }
  .playing-card { --card-w:76px; margin-left:-24px; }
  .player-hand .playing-card { --card-w:72px; }
  .action-btn { min-width:100%; }
  .modal-card { padding:24px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* Konto & Anmeldung */
body.auth-locked > .topbar,
body.auth-locked > .layout {
  filter: blur(8px) saturate(.55);
  transform: scale(.985);
  pointer-events: none;
  user-select: none;
}

.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 22px;
  overflow: auto;
  background:
    radial-gradient(circle at 18% 22%, rgba(27, 187, 126, .2), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(35, 116, 255, .18), transparent 30%),
    rgba(0, 6, 5, .84);
  backdrop-filter: blur(14px);
  animation: fadeIn .3s ease;
}

.auth-panel {
  width: min(980px, 100%);
  min-height: 610px;
  border-radius: 30px;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  overflow: hidden;
  position: relative;
  animation: authPanelIn .55s cubic-bezier(.16, .85, .28, 1.1);
}

.auth-showcase {
  position: relative;
  overflow: hidden;
  padding: 46px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    linear-gradient(160deg, rgba(5, 74, 51, .45), rgba(2, 19, 15, .85)),
    repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,.024) 0 1px, transparent 1px 6px);
  border-right: 1px solid var(--line);
}

.auth-showcase::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(246, 200, 95, .2);
  border-radius: 50%;
  top: -170px;
  left: -120px;
  box-shadow: 0 0 80px rgba(246, 200, 95, .08), inset 0 0 70px rgba(97, 242, 182, .06);
}

.auth-halo {
  position: absolute;
  width: 320px;
  height: 320px;
  left: 50%;
  top: 39%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 200, 95, .22), rgba(97, 242, 182, .08) 44%, transparent 70%);
  filter: blur(2px);
  animation: authHalo 3.5s ease-in-out infinite alternate;
}

.auth-card-stack {
  position: absolute;
  left: 50%;
  top: 36%;
  width: 245px;
  height: 285px;
  transform: translate(-50%, -50%);
  perspective: 900px;
}

.show-card {
  position: absolute;
  width: 155px;
  height: 220px;
  border-radius: 18px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #161713;
  font-family: Georgia, serif;
  font-size: 38px;
  font-weight: 900;
  background: linear-gradient(145deg, #fffdf6, #e7dfcb);
  border: 5px solid #f7efd9;
  box-shadow: 0 30px 50px rgba(0, 0, 0, .38), inset 0 0 0 1px rgba(0, 0, 0, .12);
}
.show-card strong { align-self: flex-end; font-size: 72px; line-height: 1; }
.show-card-one { left: 16px; top: 30px; transform: rotate(-14deg); animation: cardFloatOne 4s ease-in-out infinite; }
.show-card-two { right: 8px; top: 6px; color: #c72f43; transform: rotate(12deg); animation: cardFloatTwo 4.4s ease-in-out infinite; }

.auth-copy { position: relative; z-index: 2; }
.auth-copy .eyebrow { color: var(--gold); font-size: 11px; font-weight: 900; letter-spacing: .22em; }
.auth-copy h2 { margin: 10px 0 10px; max-width: 430px; font-size: clamp(28px, 3.5vw, 44px); line-height: 1.05; }
.auth-copy p { margin: 0; max-width: 460px; color: var(--muted); line-height: 1.65; }
.auth-benefits { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.auth-benefits span { padding: 8px 10px; border-radius: 999px; font-size: 11px; color: #dffcf0; border: 1px solid rgba(97, 242, 182, .16); background: rgba(97, 242, 182, .07); }

.auth-box {
  padding: 44px 42px 34px;
  background: linear-gradient(155deg, rgba(8, 27, 22, .97), rgba(2, 12, 10, .98));
}
.auth-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 28px; }
.auth-brand-mark { width: 43px; height: 43px; border-radius: 13px; display: grid; place-items: center; color: #161306; font-size: 24px; background: linear-gradient(135deg, var(--gold-2), var(--gold)); box-shadow: 0 0 24px rgba(246, 200, 95, .18); }
.auth-brand > div { display: grid; }
.auth-brand > div > span { font-size: 13px; font-weight: 1000; letter-spacing: .12em; }
.auth-brand small { color: var(--muted); margin-top: 2px; }
.auth-box h1 { margin: 0; font-size: clamp(28px, 3vw, 38px); }
.auth-lead { margin: 8px 0 24px; color: var(--muted); line-height: 1.55; }

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  padding: 5px;
  margin-bottom: 22px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .025);
}
.auth-tab { height: 42px; border: 0; border-radius: 10px; color: var(--muted); font-weight: 850; background: transparent; cursor: pointer; transition: .2s ease; }
.auth-tab:hover { color: var(--text); }
.auth-tab.active { color: #181306; background: linear-gradient(135deg, var(--gold-2), var(--gold)); box-shadow: 0 6px 16px rgba(246, 200, 95, .14); }

.auth-form { display: grid; gap: 15px; animation: authFormIn .25s ease; }
.auth-form label { display: grid; gap: 7px; }
.auth-form label > span { font-size: 11px; color: #d6e7df; text-transform: uppercase; font-weight: 850; letter-spacing: .08em; }
.auth-form input {
  width: 100%;
  height: 52px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 13px;
  padding: 0 15px;
  color: var(--text);
  caret-color: var(--gold);
  background: rgba(255, 255, 255, .045);
  outline: none;
  transition: .2s ease;
}
.auth-form input::placeholder { color: #6f8980; }
.auth-form input:hover { border-color: rgba(255, 255, 255, .2); }
.auth-form input:focus { border-color: rgba(246, 200, 95, .72); box-shadow: 0 0 0 4px rgba(246, 200, 95, .08); background: rgba(255, 255, 255, .065); }
.auth-submit { width: 100%; margin-top: 3px; display: flex; align-items: center; justify-content: center; gap: 12px; }
.auth-submit i { font-style: normal; font-size: 18px; }
.auth-message { min-height: 20px; margin: 17px 0 0; text-align: center; color: var(--muted); font-size: 12px; font-weight: 700; }
.auth-message.error { color: #ff9daa; }
.auth-message.success { color: var(--mint); }
.auth-fineprint { margin: 11px 0 0; text-align: center; color: #718a81; font-size: 10px; line-height: 1.5; }

.account-area { display: flex; align-items: center; gap: 8px; }
.account-badge { min-height: 44px; padding: 5px 10px 5px 5px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.04); }
.account-avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: #181306; font-weight: 1000; background: linear-gradient(135deg, var(--gold-2), var(--gold)); }
.account-copy { display: grid; min-width: 75px; }
.account-copy small { font-size: 8px; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }
.account-copy strong { max-width: 115px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.logout-btn { height: 38px; padding: 0 11px; border: 1px solid rgba(255, 107, 124, .18); border-radius: 11px; color: #ffc1c9; background: rgba(255, 107, 124, .06); cursor: pointer; font-size: 11px; font-weight: 800; transition: .2s ease; }
.logout-btn:hover { background: rgba(255, 107, 124, .13); transform: translateY(-1px); }

@keyframes authPanelIn { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes authFormIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes authHalo { from { transform: translate(-50%, -50%) scale(.88); opacity: .65; } to { transform: translate(-50%, -50%) scale(1.12); opacity: 1; } }
@keyframes cardFloatOne { 0%, 100% { transform: rotate(-14deg) translateY(0); } 50% { transform: rotate(-11deg) translateY(-13px); } }
@keyframes cardFloatTwo { 0%, 100% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(9deg) translateY(10px); } }

@media (max-width: 920px) {
  .auth-panel { grid-template-columns: 1fr; width: min(540px, 100%); }
  .auth-showcase { display: none; }
  .auth-box { padding: 36px 34px 30px; }
  .account-copy { display: none; }
  .account-badge { padding-right: 5px; }
}

@media (max-width: 760px) {
  .header-actions { flex-wrap: wrap; justify-content: flex-end; }
  .account-area { order: -1; }
  .logout-btn { display: none; }
}

@media (max-width: 520px) {
  .auth-gate { padding: 10px; align-items: start; }
  .auth-panel { min-height: 0; margin: 10px 0; border-radius: 22px; }
  .auth-box { padding: 28px 20px 24px; }
  .auth-brand { margin-bottom: 20px; }
  .auth-box h1 { font-size: 27px; }
  .auth-lead { margin-bottom: 18px; }
  .auth-form input { height: 49px; }
}

/* Freunde & Mehrspieler */
.social-toggle {
  position: relative;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid rgba(110, 255, 202, .18);
  border-radius: 12px;
  color: #dffbf0;
  background: rgba(40, 198, 140, .08);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .03em;
  cursor: pointer;
  transition: .2s ease;
}
.social-toggle:hover { transform: translateY(-1px); background: rgba(40, 198, 140, .14); border-color: rgba(110, 255, 202, .34); }
.social-toggle > span { color: var(--mint); font-size: 17px; }
.social-badge { min-width: 19px; height: 19px; padding: 0 5px; display: grid; place-items: center; border-radius: 99px; color: #220a0f; background: #ff8090; font-size: 10px; box-shadow: 0 0 18px rgba(255, 107, 124, .42); }

.social-overlay { position: fixed; inset: 0; z-index: 90; display: flex; justify-content: flex-end; }
.social-backdrop { position: absolute; inset: 0; border: 0; background: rgba(0, 7, 5, .72); backdrop-filter: blur(6px); cursor: default; }
.social-drawer {
  position: relative;
  z-index: 1;
  width: min(520px, 100%);
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 28px;
  border-radius: 28px 0 0 28px;
  border-right: 0;
  overflow: auto;
  animation: socialSlide .32s cubic-bezier(.2,.8,.2,1) both;
}
.social-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.social-head h2 { margin: 4px 0 0; font-size: 25px; }
.drawer-close.static { position: static; flex: 0 0 auto; }
.friend-add-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.friend-add-form input { min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 13px; color: var(--text); background: rgba(255,255,255,.045); outline: none; }
.friend-add-form input:focus { border-color: rgba(246, 200, 95, .7); box-shadow: 0 0 0 4px rgba(246, 200, 95, .08); }
.social-message { min-height: 18px; margin: -8px 2px 0; color: var(--muted); font-size: 11px; }
.social-message.error { color: #ff9daa; }
.social-message.success { color: var(--mint); }
.social-card { padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: linear-gradient(135deg, rgba(246,200,95,.08), rgba(47,211,156,.04)); }
.table-lobby-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.table-lobby-card > div { min-width: 0; display: flex; align-items: center; gap: 12px; }
.table-lobby-card strong, .table-lobby-card small { display: block; }
.table-lobby-card small { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.social-card-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; color: #1d1504; font-size: 21px; background: linear-gradient(135deg, var(--gold-2), var(--gold)); }
.social-section { display: grid; gap: 10px; }
.social-section.grow { flex: 1; }
.social-section-title { display: flex; align-items: center; justify-content: space-between; }
.social-section-title h3 { margin: 0; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.social-section-title span { min-width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; color: var(--muted); background: rgba(255,255,255,.05); font-size: 10px; font-weight: 900; }
.social-list { display: grid; gap: 8px; }
.social-list.empty-state { min-height: 54px; place-items: center; padding: 14px; border: 1px dashed rgba(255,255,255,.1); border-radius: 14px; color: #6d887e; font-size: 11px; text-align: center; }
.social-row { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid rgba(255,255,255,.07); border-radius: 14px; background: rgba(255,255,255,.025); }
.social-avatar { position: relative; width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; color: #12251d; font-weight: 1000; background: linear-gradient(135deg, #c7f8e6, var(--mint)); }
.social-avatar::after { content: ''; position: absolute; right: -2px; bottom: -2px; width: 10px; height: 10px; border: 2px solid #0a1713; border-radius: 50%; background: #65756f; }
.social-avatar.online::after { background: #51e6aa; box-shadow: 0 0 10px rgba(81,230,170,.7); }
.social-row-copy { min-width: 0; flex: 1; display: grid; }
.social-row-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.social-row-copy small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.social-row-actions { display: flex; gap: 6px; }
.mini-btn { min-height: 31px; padding: 0 9px; border: 1px solid var(--line); border-radius: 9px; color: #dcebe5; background: rgba(255,255,255,.045); font-size: 9px; font-weight: 900; cursor: pointer; }
.mini-btn:hover { background: rgba(255,255,255,.09); }
.mini-btn.accept { color: #17251f; border-color: transparent; background: var(--mint); }
.mini-btn.invite { color: #231a06; border-color: transparent; background: var(--gold); }
.mini-btn.danger { color: #ffb4bd; border-color: rgba(255,107,124,.2); background: rgba(255,107,124,.06); }

.multiplayer-app { width: min(1480px, calc(100% - 32px)); margin: 22px auto 40px; animation: multiplayerIn .35s ease both; }
.multi-roombar { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px; margin-bottom: 16px; }
.multi-roombar h2 { margin: 3px 0 0; font-size: 22px; }
.table-code { padding: 3px 9px; border: 1px solid rgba(246,200,95,.22); border-radius: 9px; color: var(--gold); background: rgba(246,200,95,.07); font: inherit; font-size: .82em; letter-spacing: .16em; cursor: pointer; }
.roombar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.round-label { padding: 8px 10px; border-radius: 10px; color: var(--mint); background: rgba(47,211,156,.07); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.danger-outline { min-height: 40px; padding: 0 12px; border: 1px solid rgba(255,107,124,.22); border-radius: 11px; color: #ffc1c9; background: rgba(255,107,124,.05); font-weight: 850; cursor: pointer; }
.danger-outline:disabled { opacity: .38; cursor: not-allowed; }
.multiplayer-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.multi-table-shell { min-width: 0; display: grid; gap: 14px; }
.multi-table-rim { padding: 13px; border-radius: 48px 48px 25px 25px; background: linear-gradient(145deg, #6b4527, #21130b 55%, #7a5130); box-shadow: 0 25px 70px rgba(0,0,0,.34), inset 0 0 0 2px rgba(255,255,255,.05); }
.multi-felt { position: relative; min-height: 650px; padding: 28px 24px 34px; border-radius: 38px 38px 18px 18px; overflow: hidden; background: radial-gradient(circle at 50% 45%, #176244 0, #0c412e 42%, #082b20 78%, #071f18 100%); box-shadow: inset 0 0 90px rgba(0,0,0,.5), inset 0 0 0 2px rgba(154,255,213,.055); }
.multi-felt::before { content: ''; position: absolute; inset: 0; opacity: .22; background-image: radial-gradient(rgba(255,255,255,.12) .5px, transparent .5px); background-size: 5px 5px; pointer-events: none; }
.multi-table-copy { position: relative; z-index: 1; text-align: center; color: rgba(221,255,241,.38); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.multi-dealer { position: relative; z-index: 1; margin: 20px auto 4px; }
.multi-seat-head { display: flex; align-items: center; justify-content: center; gap: 10px; color: rgba(239,255,248,.74); font-size: 11px; font-weight: 950; letter-spacing: .12em; }
.multi-seat-head strong { min-width: 31px; height: 31px; display: grid; place-items: center; border-radius: 10px; color: var(--gold); background: rgba(0,0,0,.22); }
.multi-card-row { min-height: 128px; }
.multi-turn-status { position: relative; z-index: 2; width: fit-content; max-width: 90%; margin: 4px auto 18px; padding: 10px 16px; border: 1px solid rgba(246,200,95,.17); border-radius: 99px; color: #f6efdc; background: rgba(3,22,16,.74); box-shadow: 0 8px 26px rgba(0,0,0,.18); font-size: 11px; font-weight: 850; text-align: center; }
.multi-turn-status.my-turn { color: #1b1404; border-color: transparent; background: linear-gradient(135deg, var(--gold-2), var(--gold)); animation: turnPulse 1.4s ease-in-out infinite; }
.multi-seats { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: end; }
.multi-seat { position: relative; min-width: 0; min-height: 275px; padding: 12px 9px 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 22px 22px 15px 15px; background: rgba(2,22,15,.35); transition: .25s ease; }
.multi-seat.me { border-color: rgba(246,200,95,.22); background: rgba(246,200,95,.045); }
.multi-seat.active { border-color: rgba(246,200,95,.68); box-shadow: 0 0 0 3px rgba(246,200,95,.08), 0 0 32px rgba(246,200,95,.15); transform: translateY(-5px); }
.multi-seat.offline { opacity: .66; }
.multi-seat-name { display: flex; align-items: center; justify-content: space-between; gap: 7px; margin-bottom: 8px; }
.multi-seat-name > div { min-width: 0; display: flex; align-items: center; gap: 7px; }
.multi-seat-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.multi-seat-name small { color: var(--muted); font-size: 8px; }
.seat-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #687a73; }
.seat-dot.online { background: #51e6aa; box-shadow: 0 0 9px rgba(81,230,170,.75); }
.seat-ready { padding: 4px 6px; border-radius: 7px; color: var(--mint); background: rgba(47,211,156,.08); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.seat-ready.waiting { color: #a7b7b1; background: rgba(255,255,255,.04); }
.multi-hands { display: grid; gap: 8px; }
.multi-hand { min-width: 0; padding: 8px 6px; border-radius: 12px; background: rgba(0,0,0,.13); }
.multi-hand.current { outline: 1px solid rgba(246,200,95,.52); background: rgba(246,200,95,.05); }
.multi-hand-head { display: flex; align-items: center; justify-content: space-between; color: #dcebe5; font-size: 8px; font-weight: 900; }
.multi-hand-cards { min-height: 92px; display: flex; align-items: center; justify-content: center; padding-top: 6px; }
.multi-hand .playing-card { --card-w: 54px; margin-left: -22px; }
.multi-hand .playing-card:first-child { margin-left: 0; }
.multi-hand-result { min-height: 13px; color: var(--gold); font-size: 8px; font-weight: 900; text-align: center; }
.multi-seat-empty { min-height: 250px; display: grid; place-items: center; border: 1px dashed rgba(255,255,255,.08); border-radius: 20px; color: rgba(225,244,236,.25); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.multi-seat-chips { margin-top: 8px; display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; }
.multi-seat-chips strong { color: #e9f8f2; }
.multi-controls { padding: 13px; }
.multi-bet-controls { display: grid; grid-template-columns: minmax(170px,1fr) auto auto; align-items: center; gap: 13px; }
.multi-control-copy { display: grid; gap: 3px; }
.multi-control-copy strong { font-size: 13px; }
.multi-control-copy small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.multi-bet-stepper { display: grid; grid-template-columns: 42px 74px 42px; align-items: center; height: 46px; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.multi-bet-stepper button { height: 100%; border: 0; color: var(--text); background: rgba(255,255,255,.04); cursor: pointer; font-weight: 900; }
.multi-bet-stepper strong { text-align: center; color: var(--gold); }
.multi-action-controls { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.multi-action-controls .action-btn { min-height: 82px; }
.multi-action-controls .action-btn.unavailable { display: none; }
.multi-insurance-controls, .multi-result-controls { min-height: 66px; display: flex; align-items: center; justify-content: center; gap: 11px; }
.multi-insurance-controls > div { margin-right: auto; display: grid; gap: 4px; }
.multi-insurance-controls small { color: var(--muted); }
.multi-waiting-controls { min-height: 66px; display: grid; place-items: center; color: var(--muted); font-size: 12px; }
.multi-result-controls span { color: var(--muted); }
.multi-sidebar { display: grid; gap: 0; overflow: hidden; }
.multi-sidebar > section { padding: 18px; border-bottom: 1px solid var(--line); }
.multi-sidebar > section:last-child { border-bottom: 0; }
.multi-player-list, .multi-invite-list, .multi-event-feed { display: grid; gap: 8px; margin-top: 12px; }
.multi-player-row { display: flex; align-items: center; gap: 9px; padding: 9px; border-radius: 12px; background: rgba(255,255,255,.025); }
.multi-player-row.active { background: rgba(246,200,95,.07); outline: 1px solid rgba(246,200,95,.16); }
.multi-player-row .social-avatar { width: 32px; height: 32px; border-radius: 10px; font-size: 11px; }
.multi-player-row-copy { min-width: 0; flex: 1; display: grid; }
.multi-player-row-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.multi-player-row-copy small { color: var(--muted); font-size: 9px; }
.multi-invite-empty { padding: 12px; border: 1px dashed rgba(255,255,255,.08); border-radius: 12px; color: #71877f; font-size: 10px; text-align: center; }
.multi-event-feed { max-height: 230px; overflow: auto; }
.multi-event { position: relative; padding: 0 0 0 15px; color: #aebfb8; font-size: 10px; line-height: 1.45; }
.multi-event::before { content: ''; position: absolute; left: 1px; top: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 8px rgba(246,200,95,.5); }
.multi-event:first-child { color: #edf8f4; }

@keyframes socialSlide { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes multiplayerIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes turnPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(246,200,95,.15); } 50% { box-shadow: 0 0 0 8px rgba(246,200,95,0); } }

@media (max-width: 1180px) {
  .multiplayer-grid { grid-template-columns: 1fr; }
  .multi-sidebar { grid-template-columns: repeat(3, 1fr); }
  .multi-sidebar > section { border-bottom: 0; border-right: 1px solid var(--line); }
  .multi-sidebar > section:last-child { border-right: 0; }
  .multi-seats { grid-template-columns: repeat(3, 1fr); }
  .multi-seat:nth-child(4), .multi-seat:nth-child(5) { grid-column: span 1; }
}

@media (max-width: 760px) {
  .social-toggle { width: 42px; padding: 0; justify-content: center; font-size: 0; }
  .social-toggle > span { font-size: 18px; }
  .social-badge { position: absolute; transform: translate(14px,-13px); font-size: 9px; }
  .multiplayer-app { width: calc(100% - 16px); margin-top: 10px; }
  .multi-roombar { align-items: flex-start; padding: 14px; }
  .roombar-actions { max-width: 210px; }
  .multi-table-rim { padding: 7px; border-radius: 27px 27px 19px 19px; }
  .multi-felt { min-height: 600px; padding: 21px 10px 24px; border-radius: 22px 22px 14px 14px; }
  .multi-seats { grid-template-columns: repeat(2, 1fr); }
  .multi-seat { min-height: 245px; }
  .multi-action-controls { grid-template-columns: repeat(2, 1fr); }
  .multi-action-controls .action-btn:last-child { grid-column: span 2; }
  .multi-bet-controls { grid-template-columns: 1fr auto; }
  .multi-control-copy { grid-column: 1 / -1; }
  .multi-sidebar { grid-template-columns: 1fr; }
  .multi-sidebar > section { border-right: 0; border-bottom: 1px solid var(--line); }
  .social-drawer { padding: 22px 17px; border-radius: 0; }
}

@media (max-width: 480px) {
  .multi-roombar { display: grid; }
  .roombar-actions { max-width: none; justify-content: flex-start; }
  .multi-felt { min-height: 560px; }
  .multi-seats { gap: 7px; }
  .multi-seat { min-height: 225px; padding: 9px 5px; }
  .multi-hand .playing-card { --card-w: 47px; margin-left: -20px; }
  .multi-hand-cards { min-height: 82px; }
  .multi-bet-stepper { grid-template-columns: 36px 64px 36px; }
  .multi-insurance-controls, .multi-result-controls { align-items: stretch; flex-direction: column; }
  .multi-insurance-controls > div { margin-right: 0; }
  .friend-add-form { grid-template-columns: 1fr; }
  .table-lobby-card { align-items: stretch; flex-direction: column; }
}

.server-busy button { cursor: progress; }

/* =========================================================
   DELUXE UPDATE: große Einsätze, Ergebnisse, Avatare & Shop
   ========================================================= */
.mini-chip {
  width: 17px; height: 17px; display: inline-grid; place-items: center; flex: 0 0 auto;
  margin-right: 5px; border: 3px dashed rgba(255,255,255,.8); border-radius: 50%;
  background: radial-gradient(circle, #ffe69a 0 38%, #b97618 40% 60%, #f5c95f 62%);
  box-shadow: 0 2px 7px rgba(0,0,0,.35); vertical-align: -3px;
}
.bet-stat-pill { border-color: rgba(246,200,95,.4) !important; background: rgba(246,200,95,.09) !important; }
.bet-stat-pill strong { display: flex; align-items: center; color: #ffe9a8 !important; }
.bet-stat-pill strong b { font: inherit; }

/* Kartenzahlen und Symbole klarer lesbar */
.playing-card .corner .rank { font-size: 27px; font-weight: 1000; line-height: .86; }
.playing-card .corner .suit { font-size: 21px; line-height: .9; }
.playing-card .top-left { top: 7px; left: 8px; }
.playing-card .bottom-right { right: 8px; bottom: 7px; }
.score-badge { min-width: 43px; min-height: 35px; font-size: 18px; font-weight: 1000; }

.table-bet-display, .multi-current-bet {
  display: flex; align-items: center; gap: 10px; padding: 6px 12px 6px 6px;
  border: 1px solid rgba(246,200,95,.35); border-radius: 16px;
  background: linear-gradient(135deg, rgba(246,200,95,.12), rgba(246,200,95,.035));
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.15);
}
.table-bet-display > span:last-child, .multi-current-bet > span:last-child { display: grid; line-height: 1.05; }
.table-bet-display small, .multi-current-bet small { color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.table-bet-display strong, .multi-current-bet strong { margin-top: 3px; color: #fff2c4; font-size: 15px; font-weight: 1000; }
.bet-chip-visual {
  width: 54px; height: 54px; display: grid; place-items: center; flex: 0 0 auto;
  border: 6px dashed rgba(255,255,255,.72); border-radius: 50%; color: #1c1002;
  background: radial-gradient(circle at 35% 28%, #fff4bd 0 28%, #f5c65d 30% 53%, #a56210 55% 66%, #ffd873 68%);
  box-shadow: 0 7px 14px rgba(0,0,0,.35), inset 0 0 0 3px rgba(77,38,0,.22);
  font-size: 12px; font-weight: 1000; transform: rotate(-4deg);
}
.bet-chip-visual b { transform: rotate(4deg); }
.bet-chip-visual.large { width: 61px; height: 61px; font-size: 13px; }
.bet-chip-visual.small { width: 41px; height: 41px; border-width: 4px; font-size: 9px; }

.round-result-banner {
  position: absolute; z-index: 40; top: 42%; left: 50%; min-width: min(620px, 86%);
  padding: 19px 26px; border: 2px solid currentColor; border-radius: 18px;
  text-align: center; font-size: clamp(25px, 3vw, 44px); font-weight: 1000; letter-spacing: .035em;
  transform: translate(-50%, -50%); box-shadow: 0 18px 50px rgba(0,0,0,.5); backdrop-filter: blur(11px);
  animation: resultPop .4s cubic-bezier(.2,.8,.2,1) both, resultGlow 1.3s ease-in-out infinite alternate;
}
.round-result-banner.win { color: #8effc7; background: rgba(2,75,43,.94); text-shadow: 0 0 18px rgba(80,255,164,.55); }
.round-result-banner.lose { color: #ff8997; background: rgba(91,13,25,.95); text-shadow: 0 0 18px rgba(255,56,83,.5); }
.round-result-banner.neutral { color: #ffe394; background: rgba(67,47,5,.94); }
@keyframes resultPop { from { opacity: 0; transform: translate(-50%,-50%) scale(.62) rotate(-2deg); } to { opacity: 1; transform: translate(-50%,-50%) scale(1); } }
@keyframes resultGlow { to { box-shadow: 0 18px 58px currentColor; } }
.hand-result { min-height: 19px; font-weight: 1000; }
.player-hand.hand-win { border-color: rgba(80,255,164,.58); box-shadow: 0 0 25px rgba(80,255,164,.12); }
.player-hand.hand-win .hand-result { color: #78ffc0; font-size: 14px; }
.player-hand.hand-lose { border-color: rgba(255,84,105,.55); box-shadow: 0 0 25px rgba(255,84,105,.11); }
.player-hand.hand-lose .hand-result { color: #ff7f91; font-size: 14px; }
.hand-bet { display: inline-flex !important; align-items: center; }
.hand-bet .mini-chip { width: 14px; height: 14px; border-width: 2px; }

/* Avatar-Auswahl */
.avatar-fieldset { margin: 0; padding: 0; border: 0; }
.avatar-fieldset legend { margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 800; }
.avatar-options { display: grid; grid-template-columns: repeat(8,1fr); gap: 6px; }
.avatar-options.compact { grid-template-columns: repeat(8,1fr); }
.avatar-option {
  aspect-ratio: 1; min-width: 0; border: 1px solid var(--line); border-radius: 12px;
  color: inherit; background: rgba(255,255,255,.035); font-size: 24px; cursor: pointer; transition: .18s ease;
}
.avatar-option:hover { transform: translateY(-3px); border-color: rgba(246,200,95,.55); background: rgba(246,200,95,.1); }
.avatar-option.selected { border-color: var(--gold); background: rgba(246,200,95,.18); box-shadow: 0 0 0 2px rgba(246,200,95,.12), 0 8px 18px rgba(0,0,0,.2); }
.profile-card { display: grid; gap: 12px; }
.profile-card-head { display: flex; align-items: center; gap: 12px; }
.profile-card-head > div { display: grid; }
.profile-card-head small { margin-top: 3px; color: var(--muted); }
.profile-avatar-preview { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 15px; background: linear-gradient(135deg, #dffbf0, var(--mint)); font-size: 31px; box-shadow: 0 8px 22px rgba(0,0,0,.22); }
.account-avatar { display: grid; place-items: center; font-size: 20px; }

/* Geschenk-Shop */
.shop-toggle { min-height: 40px; padding: 0 13px; border: 1px solid rgba(246,200,95,.27); border-radius: 11px; color: #fff0bc; background: rgba(246,200,95,.08); font-weight: 900; cursor: pointer; }
.shop-toggle:hover { background: rgba(246,200,95,.15); transform: translateY(-1px); }
.shop-overlay { position: fixed; inset: 0; z-index: 105; display: grid; place-items: center; padding: 18px; }
.shop-panel { position: relative; z-index: 1; width: min(690px, 100%); max-height: calc(100vh - 36px); overflow: auto; padding: 25px; border-radius: 24px; animation: modalIn .3s ease both; }
.shop-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.shop-head h2 { margin: 4px 0 0; font-size: 27px; }
.shop-panel > p { color: var(--muted); }
.shop-target-label { display: grid; gap: 7px; margin: 17px 0; color: var(--gold-2); font-size: 11px; font-weight: 900; }
.shop-target-label select { height: 47px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); background: #0a2119; }
.shop-items { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.shop-item { min-height: 138px; display: grid; place-items: center; align-content: center; gap: 7px; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: rgba(255,255,255,.035); cursor: pointer; transition: .2s ease; }
.shop-item:hover:not(:disabled) { transform: translateY(-5px); border-color: rgba(246,200,95,.35); background: rgba(246,200,95,.08); }
.shop-item:disabled { opacity: .42; cursor: not-allowed; }
.shop-item > span { font-size: 42px; filter: drop-shadow(0 7px 7px rgba(0,0,0,.28)); }
.shop-item strong { font-size: 12px; }
.shop-item small { display: flex; align-items: center; color: var(--gold-2); font-size: 10px; }

/* Echte Sitzplätze rund um den Tisch */
.multi-felt { isolation: isolate; position: relative; }
.multi-felt::after { content: ""; position: absolute; z-index: -1; left: 4%; right: 4%; bottom: 3%; height: 55%; border: 2px solid rgba(246,200,95,.14); border-top-color: rgba(246,200,95,.28); border-radius: 50% 50% 22px 22px; pointer-events: none; }
.multi-seats { perspective: 1200px; }
.multi-seat { --seat-y: 0px; position: relative; padding: 49px 8px 8px; border-color: rgba(255,255,255,.1); background: linear-gradient(180deg, rgba(2,27,19,.72), rgba(1,15,11,.72)); box-shadow: 0 10px 24px rgba(0,0,0,.2); transform: translateY(var(--seat-y)); }
.multi-seat.active { transform: translateY(calc(var(--seat-y) - 7px)); }
.multi-seat.seat-position-1, .multi-seat.seat-position-5 { --seat-y: -16px; }
.multi-seat.seat-position-2, .multi-seat.seat-position-4 { --seat-y: -5px; }
.chair-back { position: absolute; z-index: -1; left: 12%; right: 12%; top: -23px; height: 61px; border: 5px solid #6b3c22; border-bottom: 0; border-radius: 28px 28px 8px 8px; background: linear-gradient(145deg, #8b5430, #3a2115); box-shadow: inset 0 2px rgba(255,255,255,.16), 0 10px 16px rgba(0,0,0,.28); }
.seat-profile { position: absolute; z-index: 3; left: 50%; top: -31px; display: flex; align-items: flex-end; transform: translateX(-50%); }
.table-avatar { width: 58px; height: 58px; display: grid; place-items: center; border: 4px solid #d9c18e; border-radius: 50%; background: linear-gradient(135deg, #ecfff7, #76e1b9); box-shadow: 0 8px 19px rgba(0,0,0,.4); font-size: 34px; }
.table-avatar.active { animation: avatarTurn 1.4s ease-in-out infinite; }
@keyframes avatarTurn { 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 0 7px rgba(246,200,95,.12), 0 10px 24px rgba(0,0,0,.42); } }
.seat-profile > .seat-dot { position: absolute; right: 0; bottom: 2px; width: 11px; height: 11px; border: 2px solid #10261d; }
.seat-gifts { position: absolute; left: 48px; bottom: 6px; display: flex; flex-wrap: wrap; width: 110px; gap: 3px; z-index: 5; }
.seat-gift { position: relative; width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: rgba(3,18,13,.93); box-shadow: 0 5px 13px rgba(0,0,0,.35); font-size: 19px; animation: giftBounce 1.7s ease-in-out infinite; }
.seat-gift:nth-child(even) { animation-delay: -.7s; }
.seat-gift small { position: absolute; right: -4px; bottom: -5px; min-width: 20px; padding: 1px 3px; border-radius: 7px; color: #161005; background: var(--gold); font-size: 7px; font-weight: 1000; }
@keyframes giftBounce { 50% { transform: translateY(-4px) rotate(4deg); } }
.multi-seat-name { align-items: flex-start; }
.multi-seat-name > div { display: grid; justify-items: start; gap: 1px; }
.multi-seat-name strong { font-size: 12px; }
.multi-seat-name small { font-size: 8px; letter-spacing: .08em; }
.seat-bankroll { display: flex; justify-content: space-between; align-items: center; margin-top: 5px; color: var(--muted); font-size: 9px; }
.seat-bankroll strong { display: flex; align-items: center; color: #f1fff9; font-size: 11px; }
.seat-bet-display { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 6px; padding: 5px; border: 1px solid rgba(246,200,95,.23); border-radius: 12px; background: rgba(246,200,95,.06); }
.seat-bet-display > span:last-child { display: grid; }
.seat-bet-display strong { font-size: 10px; }
.multi-hand-head { display: grid; grid-template-columns: 1fr auto auto; gap: 5px; align-items: center; }
.hand-score-large { min-width: 31px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: #081811; background: var(--mint); font-size: 16px; font-weight: 1000; }
.hand-bet.multi { padding: 3px 5px; font-size: 9px; }
.multi-hand-result { min-height: 12px; font-size: 11px; font-weight: 1000; line-height: 1.1; }
.multi-hand-result.win { color: #75ffc0; }
.multi-hand-result.lose { color: #ff8191; }
.multi-hand.win { border-color: rgba(80,255,164,.5); }
.multi-hand.lose { border-color: rgba(255,84,105,.5); }
.multi-seat-empty.table-chair-empty { align-content: center; gap: 6px; position: relative; background: rgba(2,19,14,.15); }
.empty-chair { font-size: 42px; opacity: .35; filter: grayscale(.4); }

.multi-current-bet { padding: 5px 10px 5px 5px; }
.multi-current-bet strong { font-size: 15px; }
.multi-chip-palette { display: flex; gap: 5px; }
.multi-chip-palette .chip { width: 42px; height: 42px; border-width: 3px; font-size: 10px; }
.multi-bet-stepper { display: grid; grid-template-columns: repeat(3,45px); }
.multi-bet-stepper button { border-right: 1px solid var(--line); font-size: 9px; }
.multi-bet-stepper button:last-child { border-right: 0; }
.ready-big { min-width: 100px; }
.multi-result-banner { top: 34%; min-width: min(600px,82%); }

/* Kompakter Mehrspieler-Modus */
.topbar { width: min(1320px, calc(100% - 18px)); min-height: 70px; margin-top: 8px; padding: 8px 12px; border-radius: 17px; position: sticky; top: 6px; z-index: 70; }
.brand-mark { width: 43px; height: 43px; border-radius: 12px; font-size: 24px; }
.stat-pill { min-width: 104px; padding: 6px 10px; }
.stat-pill strong { font-size: 17px; }
.account-badge { min-height: 39px; }
.account-avatar { width: 30px; height: 30px; }
.social-toggle, .icon-btn { min-height: 39px; height: 39px; }
.multiplayer-app { width: min(1320px, calc(100% - 18px)); margin: 8px auto 18px; }
.multi-roombar { min-height: 58px; padding: 8px 13px; margin-bottom: 8px; border-radius: 16px; }
.multi-roombar h2 { font-size: 18px; }
.multiplayer-grid { grid-template-columns: minmax(0,1fr) 280px; gap: 8px; }
.multi-table-shell { gap: 8px; }
.multi-table-rim { padding: 8px; border-radius: 34px 34px 20px 20px; }
.multi-felt { min-height: 510px; padding: 12px 12px 15px; border-radius: 27px 27px 14px 14px; }
.multi-dealer { margin: 6px auto 0; }
.multi-card-row { min-height: 94px; }
.multi-card-row .playing-card { --card-w: 66px; }
.multi-turn-status { margin: 1px auto 10px; padding: 7px 13px; }
.multi-seat { min-height: 235px; }
.multi-hands { gap: 4px; overflow: auto; }
.multi-hand { padding: 5px; }
.multi-hand-cards { min-height: 77px; padding-top: 3px; }
.multi-hand .playing-card { --card-w: 52px; margin-left: -21px; }
.multi-hand .corner .rank { font-size: 18px; }
.multi-hand .corner .suit { font-size: 15px; }
.multi-hand .top-left { left: 4px; top: 5px; }
.multi-hand .bottom-right { right: 4px; bottom: 5px; }
.multi-hand .card-center { font-size: 31px; }
.multi-controls { padding: 8px; border-radius: 16px; }
.multi-bet-controls { grid-template-columns: minmax(150px,1fr) auto auto auto auto; gap: 8px; align-items: center; }
.multi-control-copy small { max-width: 250px; }
.multi-action-controls .action-btn { min-height: 62px; }
.multi-sidebar > section { padding: 12px; }
.multi-player-list, .multi-invite-list, .multi-event-feed { margin-top: 7px; gap: 5px; }
.multi-event-feed { max-height: 160px; }
.multi-player-row { padding: 7px; }

@media (min-width: 1181px) and (min-height: 680px) {
  body.multiplayer-live { height: 100vh; overflow: hidden; }
  body.multiplayer-live .multiplayer-app { height: calc(100vh - 87px); display: flex; flex-direction: column; }
  body.multiplayer-live .multi-roombar { flex: 0 0 auto; }
  body.multiplayer-live .multiplayer-grid { flex: 1; min-height: 0; align-items: stretch; }
  body.multiplayer-live .multi-table-shell { min-height: 0; display: flex; flex-direction: column; }
  body.multiplayer-live .multi-table-rim { flex: 1; min-height: 0; }
  body.multiplayer-live .multi-felt { height: 100%; min-height: 0; display: flex; flex-direction: column; }
  body.multiplayer-live .multi-seats { flex: 1; min-height: 0; }
  body.multiplayer-live .multi-seat, body.multiplayer-live .multi-seat-empty { min-height: 0; height: 100%; max-height: 245px; align-self: end; }
  body.multiplayer-live .multi-sidebar { height: 100%; overflow: auto; }
}

/* Developer-Zentrale */
body.developer-mode > .topbar, body.developer-mode > .layout, body.developer-mode > .multiplayer-app { display: none !important; }
.developer-app { width: min(1500px, calc(100% - 26px)); margin: 13px auto 30px; }
.developer-header { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 18px; border-radius: 20px; }
.developer-brand { display: flex; align-items: center; gap: 13px; }
.developer-brand > span { width: 49px; height: 49px; display: grid; place-items: center; border-radius: 14px; background: linear-gradient(135deg, var(--gold-2), var(--gold)); color: #291600; font-size: 25px; }
.developer-brand small { color: var(--gold); font-weight: 900; letter-spacing: .14em; }
.developer-brand h1 { margin: 1px 0; font-size: 23px; }
.developer-brand p { margin: 0; color: var(--muted); font-size: 11px; }
.developer-actions { display: flex; gap: 8px; }
.admin-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin: 11px 0; }
.admin-summary article { padding: 15px; border-radius: 16px; }
.admin-summary span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.admin-summary strong { display: block; margin-top: 4px; color: var(--gold-2); font-size: 27px; }
.admin-panel { padding: 18px; border-radius: 20px; }
.admin-toolbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.admin-toolbar h2 { margin: 0; }
.admin-toolbar p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.admin-toolbar input { width: min(330px,100%); height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); background: rgba(255,255,255,.04); }
.admin-panel > .social-message { margin: 13px 0 8px; }
.admin-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 15px; }
.admin-table { width: 100%; min-width: 1160px; border-collapse: collapse; }
.admin-table th { padding: 11px; color: var(--muted); background: rgba(255,255,255,.035); font-size: 9px; letter-spacing: .09em; text-align: left; text-transform: uppercase; }
.admin-table td { padding: 10px 11px; border-top: 1px solid var(--line); vertical-align: middle; }
.admin-user-disabled { opacity: .56; background: rgba(255,107,124,.035); }
.admin-user { display: flex; align-items: center; gap: 10px; }
.admin-user > span:last-child { display: grid; }
.admin-user small, .admin-table td > small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.admin-avatar { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: linear-gradient(135deg, #e9fff6, var(--mint)); font-size: 25px; }
.admin-status { display: inline-flex; padding: 5px 8px; border-radius: 9px; color: #b9c9c3; background: rgba(255,255,255,.05); font-size: 9px; font-weight: 900; }
.admin-status.online { color: #082217; background: var(--mint); }
.admin-table-id { display: block; margin-top: 5px; color: var(--gold); }
.admin-chip-total { display: flex; align-items: center; color: var(--gold-2); white-space: nowrap; }
.admin-chip-tools { display: grid; grid-template-columns: 88px auto auto; gap: 5px; }
.admin-chip-tools input { min-width: 0; height: 32px; padding: 0 7px; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: rgba(255,255,255,.04); }
.admin-set-value { grid-column: 1 / 3; }
.admin-account-tools { display: flex; gap: 5px; }
.admin-empty { padding: 40px !important; color: var(--muted); text-align: center; }

@media (max-width: 1180px) {
  body.multiplayer-live { overflow: auto; }
  .multi-bet-controls { grid-template-columns: 1fr auto auto; }
  .multi-control-copy { grid-column: 1 / -1; }
  .multi-chip-palette { justify-content: center; }
  .multi-seat { --seat-y: 0px !important; }
}
@media (max-width: 760px) {
  .topbar { position: relative; top: 0; }
  .round-result-banner { top: 38%; min-width: 90%; padding: 13px 15px; font-size: 22px; }
  .avatar-options, .avatar-options.compact { grid-template-columns: repeat(4,1fr); }
  .shop-items { grid-template-columns: repeat(2,1fr); }
  .multi-bet-controls { grid-template-columns: 1fr 1fr; }
  .multi-current-bet { grid-column: 1 / -1; }
  .multi-chip-palette { grid-column: 1 / -1; flex-wrap: wrap; }
  .multi-bet-stepper { justify-self: stretch; grid-template-columns: repeat(3,1fr); }
  .ready-big { min-width: 0; }
  .table-avatar { width: 50px; height: 50px; font-size: 29px; }
  .seat-gifts { left: 40px; }
  .developer-header, .admin-toolbar { align-items: stretch; flex-direction: column; }
  .admin-summary { grid-template-columns: 1fr 1fr; }
  .admin-toolbar input { width: 100%; }
}
@media (max-width: 480px) {
  .shop-panel { padding: 18px 13px; }
  .shop-items { gap: 7px; }
  .shop-item { min-height: 116px; }
  .shop-item > span { font-size: 35px; }
  .admin-summary { grid-template-columns: 1fr; }
}

/* Codex update: narrower multiplayer table, right shop rail, gold, dealer, softer results */
.gold-stat-pill { border-color: rgba(255,219,118,.42) !important; background: rgba(255,219,118,.08) !important; }
.gold-stat-pill strong { color: #ffe7a6 !important; }
.primary-btn, .secondary-btn, .action-btn, .shop-toggle, .danger-outline, .mini-btn, .shop-tab, .shop-item, .cash-pack {
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.primary-btn:active, .secondary-btn:active, .action-btn:active, .shop-toggle:active, .danger-outline:active, .mini-btn:active, .shop-tab:active, .shop-item:active { transform: translateY(1px) scale(.98); }
.primary-btn:hover, .shop-toggle:hover { animation: buttonShimmer 1.4s ease infinite; }
@keyframes buttonShimmer { 50% { filter: brightness(1.12) saturate(1.1); box-shadow: 0 14px 32px rgba(246,200,95,.3), inset 0 1px rgba(255,255,255,.7); } }

body.multiplayer-live .multiplayer-app { width: min(1240px, calc(100% - 18px)); }
body.multiplayer-live .multiplayer-grid { grid-template-columns: minmax(0, 900px) 300px; justify-content: center; }
body.multiplayer-live .multi-table-shell { max-width: 900px; width: 100%; justify-self: center; }
body.multiplayer-live .multi-table-rim { border-radius: 34px 34px 20px 20px; }
body.multiplayer-live .multi-felt { min-height: 500px; padding: 16px 16px 18px; }
body.multiplayer-live .multi-seats { grid-template-columns: repeat(5, minmax(110px, 1fr)); gap: 8px; }
.multi-seat.me { border-color: rgba(255,221,132,.75); background: linear-gradient(180deg, rgba(84,62,19,.62), rgba(24,26,16,.78)); box-shadow: 0 0 0 2px rgba(255,221,132,.12), 0 16px 34px rgba(0,0,0,.28); }
.multi-seat.me::after { content: "YOU"; position: absolute; right: 8px; top: 8px; padding: 3px 6px; border-radius: 8px; color: #171006; background: linear-gradient(135deg, #fff0b8, #f6c85f); font-size: 9px; font-weight: 1000; }

.multi-result-banner.round-result-banner { top: 16px; right: 16px; left: auto; min-width: 0; max-width: min(360px, calc(100% - 32px)); padding: 10px 14px; border-width: 1px; border-radius: 13px; font-size: 15px; letter-spacing: .02em; transform: none; opacity: .92; animation: softResultIn .28s ease both; }
.multi-result-banner.round-result-banner.win { background: rgba(5,58,38,.86); text-shadow: none; }
.multi-result-banner.round-result-banner.lose { background: rgba(67,13,22,.86); text-shadow: none; }
@keyframes softResultIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: .92; transform: none; } }

.dealer-persona { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 2px auto 6px; position: relative; z-index: 2; }
.dealer-avatar { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 50%; border: 3px solid #ffe2a0; background: linear-gradient(135deg, #fff4de, #ff9fc4 58%, #78f0c0); box-shadow: 0 10px 22px rgba(0,0,0,.32); font-size: 36px; }
.dealer-persona strong { display: block; color: #fff4c9; font-size: 14px; }
.dealer-persona small { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.dealer-gifts { position: static; width: auto; max-width: 130px; }

.shop-overlay { position: fixed; inset: 0; z-index: 105; display: block; pointer-events: none; padding: 0; }
.shop-overlay.hidden { display: none !important; }
.shop-backdrop { pointer-events: auto; background: rgba(0,0,0,.18); }
.shop-panel { position: fixed; right: 0; top: 0; z-index: 2; width: min(390px, 100%); height: 100vh; max-height: none; overflow: auto; padding: 22px 18px; border-radius: 0; border-left: 1px solid rgba(255,255,255,.13); animation: shopRailIn .28s cubic-bezier(.2,.75,.25,1) both; pointer-events: auto; }
@keyframes shopRailIn { from { transform: translateX(100%); opacity: .7; } to { transform: none; opacity: 1; } }
.shop-wallets { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.shop-wallets span { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.04); color: #eafff7; font-size: 12px; font-weight: 900; }
.shop-wallets .gold-wallet { color: #ffe7a6; border-color: rgba(246,200,95,.32); background: rgba(246,200,95,.08); }
.shop-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 12px; }
.shop-tab { min-height: 36px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: rgba(255,255,255,.035); cursor: pointer; font-size: 11px; font-weight: 900; }
.shop-tab.active { color: #181105; border-color: rgba(255,255,255,.38); background: linear-gradient(135deg, var(--gold-2), var(--gold)); }
.shop-target-label { margin: 10px 0 12px; }
.shop-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.shop-item { min-height: 116px; border-radius: 12px; }
.shop-item.gold { border-color: rgba(246,200,95,.28); background: rgba(246,200,95,.06); }
.shop-item.luxury { background: linear-gradient(145deg, rgba(246,200,95,.17), rgba(116,234,255,.06)); box-shadow: inset 0 1px rgba(255,255,255,.08); }
.shop-item:hover:not(:disabled) { transform: translateY(-4px) scale(1.015); box-shadow: 0 14px 26px rgba(0,0,0,.26); }
.cash-shop-items { display: grid; gap: 8px; }
.cash-pack { min-height: 72px; display: grid; gap: 2px; align-content: center; text-align: left; padding: 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); background: rgba(255,255,255,.04); }
.cash-pack span { color: #ffe7a6; font-weight: 900; }
.cash-pack small { color: var(--muted); }
.daily-wheel-wrap { display: grid; justify-items: center; gap: 16px; padding: 12px 0; }
.daily-wheel { width: 230px; height: 230px; position: relative; display: grid; place-items: center; border: 10px solid #f6c85f; border-radius: 50%; background: conic-gradient(#143d30 0 16.6%, #7d2740 0 33.2%, #164f7c 0 49.8%, #6b4c12 0 66.4%, #265235 0 83%, #4b2879 0); box-shadow: 0 18px 40px rgba(0,0,0,.38), inset 0 0 0 8px rgba(0,0,0,.2); }
.daily-wheel::after { content: "?"; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; color: #171006; background: linear-gradient(135deg, #fff1bd, #f6c85f); font-size: 25px; font-weight: 1000; }
.daily-wheel span { position: absolute; inset: 18px; display: grid; place-items: start center; color: white; font-size: 13px; font-weight: 1000; transform: rotate(calc(var(--n, 0) * 60deg)); }
.daily-wheel span:nth-child(1){--n:0}.daily-wheel span:nth-child(2){--n:1}.daily-wheel span:nth-child(3){--n:2}.daily-wheel span:nth-child(4){--n:3}.daily-wheel span:nth-child(5){--n:4}.daily-wheel span:nth-child(6){--n:5}
.daily-wheel.spinning { animation: wheelSpin 1.15s cubic-bezier(.18,.72,.2,1) both; }
@keyframes wheelSpin { to { transform: rotate(1080deg); } }

.gift-flight { position: fixed; z-index: 220; left: 0; top: 0; pointer-events: none; font-size: 38px; transform: translate(-50%, -50%); filter: drop-shadow(0 12px 12px rgba(0,0,0,.35)); animation: giftFly .9s cubic-bezier(.2,.8,.18,1) forwards; }
@keyframes giftFly { 70% { transform: translate(calc(var(--tx) - 50%), calc(var(--ty) - 80%)) scale(1.15) rotate(12deg); } 100% { transform: translate(calc(var(--tx) - 50%), calc(var(--ty) - 50%)) scale(.35) rotate(-10deg); opacity: 0; } }
.table-spectacle { position: fixed; inset: 0; z-index: 210; pointer-events: none; display: block; overflow: hidden; }
.table-spectacle.hidden { display: none !important; }
.table-spectacle span { position: absolute; left: 50%; top: 50%; font-size: 30px; animation: tableBurst 1.55s ease-out forwards; transform: translate(-50%, -50%) rotate(calc(var(--i) * 15deg)); }
.table-spectacle.firework span { color: #ffe99a; }
.table-spectacle.explosion { background: radial-gradient(circle at 50% 50%, rgba(255,130,45,.22), transparent 34%); }
.table-spectacle.gold_burst { background: radial-gradient(circle at 50% 50%, rgba(246,200,95,.18), transparent 38%); }
@keyframes tableBurst { to { opacity: 0; transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) rotate(180deg) scale(2.2); } }

@media (max-width: 1180px) { body.multiplayer-live .multiplayer-grid { grid-template-columns: 1fr; } body.multiplayer-live .multi-table-shell { max-width: none; } }
@media (max-width: 760px) { .shop-panel { width: min(360px, 100%); } body.multiplayer-live .multi-seats { grid-template-columns: repeat(2, 1fr); } }

/* Codex polish round 2 */
.home-app {
  width: min(920px, calc(100% - 24px));
  margin: 18px auto 30px;
}
.home-panel {
  min-height: 220px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 28px;
  border-radius: 20px;
}
.home-panel h2 { margin: 6px 0 0; font-size: clamp(26px, 4vw, 44px); }
.home-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.home-actions .primary-btn { min-width: 150px; }

.avatar-option {
  display: grid;
  place-items: center;
  line-height: 1;
  padding: 0;
}

.round-result-banner,
.multi-result-banner.round-result-banner {
  top: 18px;
  right: 18px;
  left: auto;
  min-width: 0;
  max-width: min(330px, calc(100% - 36px));
  padding: 9px 12px;
  border-width: 1px;
  border-radius: 12px;
  font-size: clamp(13px, 1.8vw, 17px);
  letter-spacing: 0;
  transform: none;
  text-align: left;
  box-shadow: 0 10px 24px rgba(0,0,0,.28);
  backdrop-filter: none;
  animation: softResultIn .22s ease both;
}
.round-result-banner.win,
.round-result-banner.lose,
.round-result-banner.neutral {
  text-shadow: none;
}
.round-result-banner.win { background: rgba(4,56,37,.88); }
.round-result-banner.lose { background: rgba(67,13,22,.88); }
.round-result-banner.neutral { background: rgba(56,42,11,.88); }

.playing-card.dealt { animation: dealCardSoft .82s cubic-bezier(.16,.78,.22,1) both; }
@keyframes dealCardSoft {
  0% { opacity: 0; translate: 130px -115px; rotate: 8deg; scale: .86; }
  72% { opacity: 1; translate: -6px 4px; rotate: -1deg; scale: 1.02; }
  100% { opacity: 1; translate: 0 0; rotate: 0deg; scale: 1; }
}

.social-backdrop,
.shop-backdrop {
  background: rgba(0, 7, 5, .22) !important;
  backdrop-filter: none !important;
}
.social-drawer {
  width: min(360px, 100%) !important;
  padding: 22px 18px !important;
  background: rgba(4,17,13,.96) !important;
  backdrop-filter: none !important;
}
.social-card,
.social-row {
  background: rgba(255,255,255,.035) !important;
}

.shop-overlay {
  display: grid !important;
  place-items: start end;
  padding: 86px 18px 18px;
  pointer-events: none;
}
.shop-overlay.hidden { display: none !important; }
.shop-panel {
  position: relative !important;
  right: auto !important;
  top: auto !important;
  width: min(430px, calc(100vw - 28px)) !important;
  height: auto !important;
  max-height: min(680px, calc(100vh - 112px)) !important;
  border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  padding: 18px !important;
  animation: modalIn .24s ease both !important;
  pointer-events: auto;
  backdrop-filter: none !important;
}
.shop-head h2 { font-size: 22px; }
.shop-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shop-item { min-height: 104px; }
.shop-item > span { font-size: 36px; }

.seat-gifts {
  left: calc(100% - 12px);
  bottom: 4px;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  overflow: visible;
}
.seat-gift {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  font-size: 33px;
  animation: giftFloat 3.8s ease-in-out infinite;
  transform-origin: center;
}
.seat-gift small { display: none; }
.dealer-gifts .seat-gift { width: 48px; height: 48px; font-size: 30px; }
@keyframes giftFloat {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-7px) rotate(3deg); }
}
.table-avatar.active { animation: avatarTurnSmooth 2.4s ease-in-out infinite; }
@keyframes avatarTurnSmooth {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 8px 19px rgba(0,0,0,.4); }
  50% { transform: translateY(-5px) scale(1.04); box-shadow: 0 0 0 7px rgba(246,200,95,.12), 0 10px 24px rgba(0,0,0,.42); }
}
.multi-seat.active::before {
  content: "YOUR TURN";
  position: absolute;
  left: 8px;
  top: 8px;
  z-index: 4;
  padding: 3px 6px;
  border-radius: 8px;
  color: #07170f;
  background: var(--mint);
  font-size: 8px;
  font-weight: 1000;
}
.multi-seat-name small:empty { display: none; }

.gift-flight {
  font-size: 44px;
  animation: giftFlySoft 1.55s cubic-bezier(.2,.82,.2,1) forwards;
}
@keyframes giftFlySoft {
  0% { transform: translate(-50%, -50%) scale(.82) rotate(-6deg); opacity: 0; }
  12% { opacity: 1; }
  72% { transform: translate(calc(var(--tx) - 50%), calc(var(--ty) - 92%)) scale(1.12) rotate(8deg); opacity: 1; }
  100% { transform: translate(calc(var(--tx) - 50%), calc(var(--ty) - 50%)) scale(.72) rotate(0); opacity: 0; }
}

.table-spectacle {
  display: grid;
  place-items: center;
}
.spectacle-table-glow {
  position: absolute;
  width: min(760px, 78vw);
  height: min(360px, 42vh);
  border: 2px solid rgba(246,200,95,.35);
  border-radius: 50%;
  animation: tableGlowSweep 3.2s ease-in-out forwards;
}
.spectacle-item {
  position: relative;
  z-index: 2;
  font-size: clamp(70px, 12vw, 150px);
  filter: drop-shadow(0 28px 22px rgba(0,0,0,.38));
  animation: spectacleItemLand 3.2s ease-in-out forwards;
}
.spectacle-card-wave,
.spectacle-chip-line {
  position: absolute;
  left: 50%;
  top: 50%;
  display: flex;
  gap: 12px;
  transform: translate(-50%, -50%);
}
.spectacle-card-wave i {
  width: 42px;
  height: 58px;
  border-radius: 7px;
  background: #f8f4e9;
  box-shadow: 0 12px 18px rgba(0,0,0,.24);
  animation: tableCardWave 2.6s ease-in-out forwards;
}
.spectacle-card-wave i:nth-child(2) { animation-delay: .08s; }
.spectacle-card-wave i:nth-child(3) { animation-delay: .16s; }
.spectacle-card-wave i:nth-child(4) { animation-delay: .24s; }
.spectacle-card-wave i:nth-child(5) { animation-delay: .32s; }
.spectacle-chip-line { top: calc(50% + 104px); }
.spectacle-chip-line i {
  width: 28px;
  height: 28px;
  border: 4px dashed rgba(255,255,255,.78);
  border-radius: 50%;
  background: radial-gradient(circle, #fff0a8 0 38%, #b97618 40% 61%, #f5c95f 63%);
  animation: tableChipJump 2.8s ease-in-out forwards;
}
.spectacle-chip-line i:nth-child(even) { animation-delay: .14s; }
.table-luxury-active .multi-felt,
.table-luxury-active .table-felt {
  animation: feltLuxuryPulse 3.2s ease-in-out;
}
@keyframes tableGlowSweep {
  0% { opacity: 0; transform: scale(.55); }
  35% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.22); }
}
@keyframes spectacleItemLand {
  0% { opacity: 0; transform: translateY(-120px) scale(.6) rotate(-10deg); }
  28% { opacity: 1; transform: translateY(0) scale(1.08) rotate(3deg); }
  62% { transform: translateY(-12px) scale(1) rotate(-2deg); }
  100% { opacity: 0; transform: translateY(28px) scale(.92) rotate(0); }
}
@keyframes tableCardWave {
  0% { opacity: 0; transform: translateY(35px) rotate(-12deg); }
  35% { opacity: 1; transform: translateY(-70px) rotate(9deg); }
  100% { opacity: 0; transform: translateY(-118px) rotate(24deg); }
}
@keyframes tableChipJump {
  0% { opacity: 0; transform: translateY(18px) scale(.7); }
  34% { opacity: 1; transform: translateY(-38px) scale(1.08); }
  100% { opacity: 0; transform: translateY(14px) scale(.9); }
}
@keyframes feltLuxuryPulse {
  0%, 100% { filter: none; box-shadow: inset 0 0 90px rgba(0,0,0,.5), inset 0 0 0 2px rgba(154,255,213,.055); }
  45% { filter: saturate(1.25) brightness(1.12); box-shadow: inset 0 0 90px rgba(0,0,0,.38), inset 0 0 0 4px rgba(246,200,95,.35), 0 0 36px rgba(246,200,95,.22); }
}

.daily-wheel-overlay {
  position: fixed;
  inset: 0;
  z-index: 180;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 7, 5, .38);
}
.daily-wheel-overlay.hidden { display: none !important; }
.daily-wheel-stage {
  width: min(620px, 100%);
  display: grid;
  justify-items: center;
  gap: 14px;
  padding: 28px;
  border-radius: 24px;
  position: relative;
  text-align: center;
  backdrop-filter: none;
}
.daily-wheel-stage h2 { margin: 0; font-size: clamp(30px, 5vw, 52px); }
.daily-wheel-hero {
  width: min(390px, 76vw);
  height: min(390px, 76vw);
  border-width: 14px;
  animation: wheelIdle 7s linear infinite;
}
.daily-wheel-hero.spinning,
.daily-wheel.spinning {
  animation: wheelSpinHero 2.4s cubic-bezier(.12,.72,.1,1) both;
}
.daily-wheel-prize {
  min-height: 22px;
  margin: 0;
  color: #fff0bc;
  font-weight: 900;
}
@keyframes wheelIdle { to { transform: rotate(360deg); } }
@keyframes wheelSpinHero { to { transform: rotate(1740deg); } }

body.multiplayer-live { height: auto !important; min-height: 100vh; overflow-y: auto !important; }
body.multiplayer-live .multiplayer-app { height: auto !important; min-height: 0; padding-bottom: 32px; }
body.multiplayer-live .multi-felt { min-height: 445px; }
.multi-action-controls { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 760px) {
  .home-panel { grid-template-columns: 1fr; }
  .home-actions { justify-content: flex-start; }
  .shop-overlay { place-items: start center; padding-top: 76px; }
  .daily-wheel-stage { padding: 22px 16px; }
}

/* Codex pass 3: cleaner navigation, table chips, roulette, chat, admin inputs. */
.bet-stat-pill,
.stat-pill.compact,
.table-bet-display,
.multi-current-bet {
  display: none !important;
}

.home-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 12px;
  width: min(680px, 100%);
}
.home-game-btn {
  width: 100%;
  min-height: 58px;
  justify-content: center;
  font-size: 15px;
}
.home-game-btn.roulette {
  background: linear-gradient(135deg, #12221b, #a32333 48%, #111 49%, #172b22);
  border-color: rgba(255,255,255,.22);
}

button,
.primary-btn,
.secondary-btn,
.action-btn,
.mini-btn,
.shop-tab,
.shop-item,
.cash-pack,
.danger-outline,
.logout-btn,
.social-toggle,
.shop-toggle,
.icon-btn {
  letter-spacing: 0;
}
.primary-btn,
.secondary-btn,
.action-btn,
.mini-btn,
.shop-toggle,
.social-toggle,
.danger-outline,
.logout-btn {
  min-height: 42px;
  font-size: 13px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 12px 24px rgba(0,0,0,.22);
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}
.primary-btn:hover,
.secondary-btn:hover,
.action-btn:hover,
.mini-btn:hover,
.shop-toggle:hover,
.social-toggle:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
}
.primary-btn:not(:disabled) {
  animation: buttonBreath 3.8s ease-in-out infinite alternate;
}
@keyframes buttonBreath {
  from { box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 12px 24px rgba(0,0,0,.22), 0 0 0 rgba(246,200,95,0); }
  to { box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 14px 30px rgba(0,0,0,.28), 0 0 18px rgba(246,200,95,.14); }
}

.drawer-close {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}

.table-bet-spot {
  position: absolute;
  left: 50%;
  top: 53%;
  z-index: 8;
  display: grid;
  justify-items: center;
  gap: 2px;
  min-width: 118px;
  min-height: 74px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.table-bet-spot.empty { opacity: 0; }
.laid-chip-stack {
  position: relative;
  width: 74px;
  height: 46px;
}
.laid-chip,
.bankroll-chip-flight {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 5px dashed rgba(255,255,255,.82);
  border-radius: 50%;
  color: #fff9dd;
  background: radial-gradient(circle, #fff4b0 0 28%, #b82438 30% 55%, #241219 58%);
  box-shadow: 0 8px 18px rgba(0,0,0,.32), inset 0 0 0 3px rgba(255,255,255,.14);
  font-size: 10px;
  font-weight: 1000;
}
.laid-chip-stack .laid-chip {
  position: absolute;
  left: calc(14px + var(--i) * 4px);
  top: calc(18px - var(--i) * 5px);
  animation: chipSettle .5s cubic-bezier(.2,.85,.2,1) both;
}
.table-bet-spot > strong {
  color: #ffeaa3;
  font-size: 17px;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
.table-bet-spot > small {
  color: rgba(232,255,246,.72);
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
@keyframes chipSettle {
  from { opacity: 0; translate: 0 -18px; scale: .82; }
  to { opacity: 1; translate: 0 0; scale: 1; }
}

.table-felt > .round-result-banner,
.multi-felt > .round-result-banner,
.roulette-felt > .round-result-banner {
  top: 46% !important;
  right: auto !important;
  left: 50% !important;
  max-width: min(360px, calc(100% - 48px));
  min-width: 0;
  padding: 10px 16px;
  border-radius: 14px;
  transform: translate(-50%, -50%) !important;
  text-align: center;
  animation: resultFadeCenter 1.45s ease both;
}
@keyframes resultFadeCenter {
  0% { opacity: 0; translate: 0 8px; scale: .96; }
  14%, 72% { opacity: 1; translate: 0 0; scale: 1; }
  100% { opacity: 0; translate: 0 -8px; scale: .98; }
}

.playing-card.dealt {
  animation: cardDealGlide .72s cubic-bezier(.18,.82,.18,1) both;
  will-change: opacity, translate, rotate, scale, filter;
}
@keyframes cardDealGlide {
  0% { opacity: 0; translate: 180px -135px; rotate: 14deg; scale: .76; filter: blur(2px) drop-shadow(0 16px 14px rgba(0,0,0,.32)); }
  42% { opacity: 1; translate: 26px -20px; rotate: -4deg; scale: 1.04; filter: blur(.3px) drop-shadow(0 16px 14px rgba(0,0,0,.28)); }
  76% { translate: -5px 4px; rotate: 1deg; scale: 1.01; }
  100% { opacity: 1; translate: 0 0; rotate: 0deg; scale: 1; filter: none; }
}

.roulette-app {
  align-items: start;
}
.roulette-shell {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.roulette-table-rim {
  padding: 14px;
  border-radius: 38px;
  background: linear-gradient(145deg, #3a1117, #16100d 38%, #253126);
  box-shadow: 0 24px 70px rgba(0,0,0,.42), inset 0 0 0 2px rgba(255,255,255,.08);
}
.roulette-felt {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  min-height: 560px;
  padding: 34px;
  overflow: hidden;
  border-radius: 30px;
  background:
    radial-gradient(circle at 50% 35%, rgba(246,200,95,.14), transparent 26%),
    radial-gradient(ellipse at 50% 50%, #0f5b3d 0 38%, #083624 70%, #062218 100%);
  box-shadow: inset 0 0 90px rgba(0,0,0,.48), inset 0 0 0 2px rgba(154,255,213,.08);
}
.roulette-stage {
  display: grid;
  place-items: center;
  min-height: 280px;
}
.roulette-wheel {
  position: relative;
  display: grid;
  place-items: center;
  width: min(270px, 54vw);
  aspect-ratio: 1;
  border: 14px solid #321418;
  border-radius: 50%;
  background:
    repeating-conic-gradient(from -5deg, #101010 0 9.72deg, #a51f30 9.72deg 19.45deg, #08683e 19.45deg 29.18deg),
    radial-gradient(circle, #f6c85f 0 8%, #25100f 9% 18%, transparent 19%);
  box-shadow: inset 0 0 0 12px rgba(255,255,255,.08), inset 0 0 34px rgba(0,0,0,.58), 0 18px 42px rgba(0,0,0,.36);
  animation: rouletteIdle 18s linear infinite;
}
.roulette-wheel.spinning {
  animation: rouletteSpin 3.05s cubic-bezier(.12,.72,.12,1) both;
}
.roulette-ring {
  position: absolute;
  inset: 17%;
  border: 2px solid rgba(246,200,95,.6);
  border-radius: 50%;
}
.roulette-ball {
  position: absolute;
  top: 13%;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fffdf0;
  box-shadow: 0 3px 10px rgba(0,0,0,.35);
  transform-origin: 50% 118px;
  animation: ballOrbit 2.2s linear infinite;
}
.roulette-number {
  display: grid;
  place-items: center;
  width: 82px;
  height: 82px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  color: #fff7d0;
  background: rgba(7,13,10,.82);
  font-size: 34px;
}
.roulette-number[data-color="red"] { color: #ff7887; }
.roulette-number[data-color="black"] { color: #f4f0e8; }
.roulette-number[data-color="green"] { color: #80ffd0; }
@keyframes rouletteIdle { to { transform: rotate(360deg); } }
@keyframes rouletteSpin { to { transform: rotate(var(--roulette-spin, 1800deg)); } }
@keyframes ballOrbit { to { rotate: -360deg; } }
.roulette-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
  position: relative;
  z-index: 9;
}
.roulette-cell {
  min-height: 48px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: #f2fff9;
  background: rgba(255,255,255,.055);
  font-weight: 1000;
}
.roulette-cell.red { background: linear-gradient(135deg, #7f1725, #bd2b40); }
.roulette-cell.black { background: linear-gradient(135deg, #070908, #242424); }
.roulette-cell.zero { background: linear-gradient(135deg, #075e3a, #16a36b); }
.roulette-cell.selected {
  outline: 2px solid rgba(246,200,95,.82);
  box-shadow: 0 0 0 4px rgba(246,200,95,.12), 0 12px 24px rgba(0,0,0,.26);
}
.roulette-status {
  margin: 10px 0 0;
  color: rgba(232,255,246,.82);
  text-align: center;
  font-weight: 800;
}
.roulette-controls {
  grid-template-columns: minmax(160px, .8fr) minmax(260px, 1.1fr) minmax(260px, 1.4fr);
}
.roulette-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.multi-turn-status {
  opacity: 0;
  pointer-events: none;
}
.multi-table-bet-spot {
  top: 57%;
  min-width: 260px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
}
.multi-laid-bet {
  display: grid;
  justify-items: center;
  gap: 3px;
  transform: translateY(calc((var(--seat) % 2) * 8px));
}
.multi-laid-bet .laid-chip {
  width: 42px;
  height: 42px;
  font-size: 9px;
}
.multi-laid-bet small {
  color: rgba(232,255,246,.76);
  font-size: 8px;
  font-weight: 900;
}
.multi-seat {
  display: grid !important;
  justify-items: center;
  min-height: 172px;
  padding: 8px !important;
  cursor: pointer;
}
.multi-seat .seat-profile {
  order: 3;
  margin-top: 4px;
}
.multi-seat .table-avatar {
  width: 66px;
  height: 66px;
  font-size: 38px;
}
.multi-seat .multi-hands {
  order: 1;
  width: 100%;
  min-height: 72px;
}
.multi-seat .seat-bet-display {
  order: 2;
  margin: -6px 0 0;
}
.multi-seat .seat-bankroll,
.multi-seat .multi-seat-name strong:empty,
.multi-hand-head,
.multi-hand-result:empty {
  display: none !important;
}
.multi-seat .multi-seat-name {
  order: 4;
  margin-top: 2px;
  min-height: 18px;
}
.multi-seat .multi-seat-name strong { display: none; }
.multi-seat .multi-seat-name small {
  color: #ffeaa3;
  font-size: 9px;
  font-weight: 1000;
}
.multi-seat .multi-hand {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.multi-seat .multi-hand-cards {
  justify-content: center;
  gap: 3px;
}
.multi-seat .playing-card {
  width: 42px;
  height: 59px;
}
.seat-gift {
  animation: giftFloatSmooth 4.2s ease-in-out infinite alternate;
}
@keyframes giftFloatSmooth {
  from { transform: translateY(0) rotate(-2deg); }
  to { transform: translateY(-8px) rotate(3deg); }
}

.shop-items {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px;
}
.shop-item {
  min-height: 84px !important;
  padding: 8px !important;
  border-radius: 12px !important;
}
.shop-item > span { font-size: 27px !important; }
.shop-item strong { font-size: 10px; }
.shop-item small { font-size: 9px; }

.daily-wheel-stage {
  border: 1px solid rgba(246,200,95,.24);
  background:
    radial-gradient(circle at 50% 18%, rgba(246,200,95,.16), transparent 26%),
    rgba(5,17,13,.96);
  box-shadow: 0 28px 80px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.14);
}
.daily-wheel {
  position: relative;
  background:
    radial-gradient(circle, #0d1914 0 17%, transparent 18%),
    conic-gradient(#f6c85f 0 60deg, #0f6d48 60deg 120deg, #b62439 120deg 180deg, #f6c85f 180deg 240deg, #101010 240deg 300deg, #18a76e 300deg 360deg);
  box-shadow: inset 0 0 0 9px rgba(255,255,255,.09), inset 0 0 34px rgba(0,0,0,.55), 0 20px 44px rgba(0,0,0,.36);
  animation: wheelBreath 4.6s ease-in-out infinite alternate !important;
}
.daily-wheel::after {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  border: 2px dotted rgba(246,200,95,.68);
  animation: wheelLights 12s linear infinite;
}
.daily-wheel.spinning,
.daily-wheel-hero.spinning {
  animation: wheelSpinSmooth 3s cubic-bezier(.1,.74,.12,1) both !important;
}
@keyframes wheelBreath {
  from { transform: scale(1); filter: brightness(1); }
  to { transform: scale(1.018); filter: brightness(1.08); }
}
@keyframes wheelLights { to { rotate: 360deg; } }
@keyframes wheelSpinSmooth { to { transform: rotate(1800deg); } }

.bankroll-chip-flight {
  position: fixed;
  z-index: 250;
  left: 0;
  top: 0;
  width: 34px;
  height: 34px;
  font-size: 8px;
  pointer-events: none;
  animation: chipFlyToBankroll 1.65s cubic-bezier(.28,.78,.22,1) forwards;
}
@keyframes chipFlyToBankroll {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.72); }
  10% { opacity: 1; }
  58% { transform: translate(calc(var(--tx) * .54 - 50%), calc(var(--ty) * .46 + var(--arc) - 50%)) scale(1.05); }
  100% { opacity: 0; transform: translate(calc(var(--tx) - 50%), calc(var(--ty) - 50%)) scale(.58); }
}

.chat-messages {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 112px;
  max-height: 190px;
  overflow: auto;
  padding: 9px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(0,0,0,.18);
}
.chat-message {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 7px;
  align-items: start;
}
.chat-message > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: rgba(255,255,255,.08);
}
.chat-message p {
  margin: 0;
  padding: 7px 9px;
  border-radius: 10px;
  color: #e9fff6;
  background: rgba(255,255,255,.055);
  font-size: 12px;
  line-height: 1.35;
}
.chat-message.mine p {
  background: rgba(246,200,95,.14);
}
.chat-message strong {
  display: block;
  margin-bottom: 2px;
  color: #ffeaa3;
  font-size: 10px;
}
.chat-empty {
  color: var(--muted);
  font-size: 12px;
  text-align: center;
  align-self: center;
}
.chat-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
  margin-top: 8px;
}
.chat-form input,
.gift-chips-form input,
.friend-chat-panel select {
  min-width: 0;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  background: rgba(255,255,255,.045);
  outline: none;
}
.friend-chat-panel {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.player-profile-overlay {
  position: fixed;
  inset: 0;
  z-index: 175;
  display: grid;
  place-items: center;
  padding: 18px;
}
.player-profile-overlay.hidden { display: none !important; }
.player-profile-panel {
  position: relative;
  z-index: 1;
  width: min(390px, 100%);
  padding: 20px;
  border-radius: 18px;
  background: rgba(4,17,13,.96);
  backdrop-filter: none;
}
.player-profile-hero {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 12px;
  align-items: center;
}
.player-profile-avatar {
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  border-radius: 20px;
  background: linear-gradient(135deg, #e9fff6, var(--mint));
  font-size: 42px;
}
.player-profile-hero h2 { margin: 2px 0 0; }
.profile-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0;
}
.profile-stats > div {
  padding: 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.045);
}
.profile-stats span {
  display: block;
  color: var(--muted);
  font-size: 9px;
  text-transform: uppercase;
}
.profile-stats strong {
  display: block;
  margin-top: 4px;
  color: #fff5c4;
}
.gift-chips-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: end;
}
.gift-chips-form label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.table-spectacle.explosion .spectacle-item {
  animation: dragonOrbitTable 3.8s ease-in-out forwards;
}
@keyframes dragonOrbitTable {
  0% { opacity: 0; transform: translate(-280px, 70px) scale(.5) rotate(-18deg); }
  14% { opacity: 1; transform: translate(-210px, -90px) scale(.82) rotate(8deg); }
  38% { transform: translate(210px, -100px) scale(1) rotate(16deg); }
  62% { transform: translate(245px, 70px) scale(1.08) rotate(-8deg); }
  82% { opacity: 1; transform: translate(-120px, 118px) scale(.98) rotate(-18deg); }
  100% { opacity: 0; transform: translate(-280px, 70px) scale(.72) rotate(-22deg); }
}

.admin-chip-tools {
  grid-template-columns: 124px minmax(86px, auto) minmax(78px, auto) !important;
  gap: 8px !important;
}
.admin-chip-tools input {
  height: 42px !important;
  padding: 0 11px !important;
  font-size: 16px !important;
  font-weight: 900;
}
.admin-set-value {
  grid-column: 1 / 3;
}
.admin-chip-tools .mini-btn,
.admin-account-tools .mini-btn,
.developer-actions button {
  min-height: 42px;
  padding: 0 13px;
  font-size: 12px;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] {
  appearance: textfield;
}
.avatar-option,
[data-register-avatar],
[data-profile-avatar] {
  display: grid !important;
  place-items: center !important;
  text-align: center;
  line-height: 1;
}

@media (max-width: 920px) {
  .home-actions,
  .roulette-board,
  .roulette-actions,
  .roulette-controls {
    grid-template-columns: 1fr;
  }
  .roulette-felt {
    min-height: 620px;
    padding: 24px 16px;
  }
  .multi-table-bet-spot {
    min-width: 190px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* ===== Stabilitäts-Update: Karten, Tischchips, private Sitze und feste Seitenfenster ===== */

/* Karten werden nur beim tatsächlichen Hinzukommen animiert.
   Bestehende Karten bleiben im DOM und flackern bei Status-Updates nicht mehr. */
.playing-card {
  --card-face-rotation: 0deg;
  transform: rotateY(var(--card-face-rotation));
  will-change: transform, opacity;
  backface-visibility: visible;
}
.playing-card.face-down {
  --card-face-rotation: 180deg;
  transform: rotateY(180deg);
}
.playing-card.card-enter {
  animation: cardDealStable .58s cubic-bezier(.16,.82,.22,1) both !important;
  pointer-events: none;
}
.playing-card.card-enter .card-face {
  box-shadow:
    0 18px 34px rgba(0,0,0,.5),
    0 0 24px rgba(88,190,255,.16),
    inset 0 0 0 1px rgba(255,255,255,.16);
}
.playing-card.card-flip-reveal {
  animation: cardRevealStable .48s cubic-bezier(.2,.72,.22,1) both !important;
}
@keyframes cardDealStable {
  0% {
    opacity: 0;
    filter: blur(3px) brightness(1.22);
    transform: translate3d(132px,-108px,0) rotateZ(9deg) rotateY(var(--card-face-rotation)) scale(.82);
  }
  46% {
    opacity: 1;
    filter: blur(.45px) brightness(1.08);
    transform: translate3d(18px,-14px,0) rotateZ(-2.2deg) rotateY(var(--card-face-rotation)) scale(1.035);
  }
  76% {
    opacity: 1;
    filter: blur(0) brightness(1.02);
    transform: translate3d(-4px,3px,0) rotateZ(.7deg) rotateY(var(--card-face-rotation)) scale(1.012);
  }
  100% {
    opacity: 1;
    filter: none;
    transform: translate3d(0,0,0) rotateZ(0) rotateY(var(--card-face-rotation)) scale(1);
  }
}
@keyframes cardRevealStable {
  0% { transform: rotateY(180deg) scale(.98); }
  55% { transform: rotateY(88deg) scale(1.015); }
  100% { transform: rotateY(0deg) scale(1); }
}

/* Ruhige, stabile Chipstapel. Nur der neu hinzugefügte oberste Chip bewegt sich. */
.laid-chip-stack {
  width: 76px;
  height: 58px;
}
.laid-chip-stack .table-chip,
.multi-chip-stack .table-chip {
  position: absolute;
  left: 50%;
  top: auto;
  bottom: calc(var(--i) * 5px);
  transform: translateX(-50%);
  animation: none !important;
}
.table-chip.chip-new {
  animation: chipPlaceStable .34s cubic-bezier(.2,.82,.24,1) both !important;
}
@keyframes chipPlaceStable {
  from {
    opacity: 0;
    transform: translate(-50%, -18px) scale(.9);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
  }
}
.table-chip.chip-value-5 {
  background: radial-gradient(circle, #f8fff9 0 27%, #2f8f63 29% 55%, #10271d 58%);
}
.table-chip.chip-value-10 {
  background: radial-gradient(circle, #fff8e1 0 27%, #2878bd 29% 55%, #10233b 58%);
}
.table-chip.chip-value-25 {
  background: radial-gradient(circle, #fff1f3 0 27%, #c6344a 29% 55%, #35131a 58%);
}
.table-chip.chip-value-50 {
  background: radial-gradient(circle, #f7ecff 0 27%, #7d4db7 29% 55%, #241535 58%);
}
.table-chip.chip-value-100 {
  color: #221600;
  background: radial-gradient(circle, #fff7c7 0 27%, #e7b52b 29% 55%, #5c4210 58%);
}

/* Jeder Spieler hat am privaten Tisch nur Avatar und Karten.
   Name, Guthaben und Einsatz bleiben in der Seitenleiste. */
.multi-seat {
  min-height: 158px !important;
  padding: 5px !important;
  display: grid !important;
  grid-template-rows: minmax(72px,1fr) auto;
  align-items: end;
  justify-items: center;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.multi-seat.active {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.multi-seat .chair-back {
  display: none !important;
}
.multi-seat .seat-profile {
  position: relative !important;
  inset: auto !important;
  order: 2 !important;
  margin: 4px 0 0 !important;
  transform: none !important;
}
.multi-seat .table-avatar {
  width: 64px !important;
  height: 64px !important;
  font-size: 37px !important;
}
.multi-seat.active .table-avatar {
  border-color: #ffe7a0;
  box-shadow: 0 0 0 4px rgba(246,200,95,.12), 0 0 28px rgba(246,200,95,.42);
}
.multi-seat .multi-hands {
  order: 1 !important;
  width: 100%;
  min-height: 72px;
  overflow: visible !important;
}
.multi-seat .multi-hand {
  min-height: 0;
}
.multi-seat .multi-hand-result {
  min-height: 14px;
  margin-top: 2px;
  text-align: center;
  font-size: 8px;
}
.multi-seat.offline {
  opacity: .58;
}

/* Einsatz am privaten Tisch nur als gestapelter Chipstapel – ohne Namen oder Zahl daneben. */
.multi-table-bet-spot {
  width: min(620px, 78%) !important;
  min-width: 0 !important;
  min-height: 72px;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(54px,1fr)) !important;
  gap: 8px;
  align-items: end;
}
.multi-bet-slot {
  position: relative;
  display: grid;
  place-items: end center;
  min-width: 0;
  height: 68px;
}
.multi-chip-stack {
  position: relative;
  width: 58px;
  height: 62px;
}
.multi-chip-stack .table-chip {
  width: 43px;
  height: 43px;
  font-size: 9px;
}

/* Chat und Tischverlauf wachsen nicht mehr mit ihrem Inhalt. */
.multi-sidebar {
  min-height: 0;
}
.multi-sidebar > section {
  min-height: 0;
}
.multi-player-list,
.multi-invite-list,
.multi-event-feed,
.table-chat-section,
.table-chat-section .chat-messages {
  min-height: 0;
}
.multi-player-list,
.multi-invite-list,
.multi-event-feed {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.multi-event-feed {
  max-height: none !important;
}
.table-chat-section {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.table-chat-section .chat-messages {
  flex: 1 1 auto;
  height: auto;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.table-chat-section .chat-form {
  flex: 0 0 auto;
}

@media (min-width: 1181px) {
  body.multiplayer-live .multiplayer-grid {
    height: min(735px, calc(100dvh - 148px));
    min-height: 560px;
    max-height: 735px;
    align-items: stretch !important;
  }
  body.multiplayer-live .multi-table-shell,
  body.multiplayer-live .multi-table-rim,
  body.multiplayer-live .multi-felt {
    min-height: 0 !important;
    height: 100%;
  }
  body.multiplayer-live .multi-sidebar {
    height: 100% !important;
    min-height: 0;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows:
      minmax(112px,.85fr)
      minmax(102px,.75fr)
      minmax(132px,1fr)
      minmax(185px,1.25fr);
  }
  body.multiplayer-live .multi-sidebar > section {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  body.multiplayer-live .multi-player-list,
  body.multiplayer-live .multi-invite-list {
    flex: 1 1 auto;
  }
  body.multiplayer-live .multi-event-feed {
    flex: 1 1 auto;
  }
}
@media (max-width: 1180px) {
  .multi-sidebar {
    height: auto !important;
    overflow: visible !important;
  }
  .multi-player-list,
  .multi-invite-list,
  .multi-event-feed,
  .table-chat-section .chat-messages {
    height: 180px;
    max-height: 180px !important;
    overflow-y: auto;
  }
}
@media (max-width: 760px) {
  .multi-table-bet-spot {
    width: 92% !important;
    grid-template-columns: repeat(5, minmax(38px,1fr)) !important;
    gap: 2px;
  }
  .multi-chip-stack {
    width: 46px;
  }
  .multi-chip-stack .table-chip {
    width: 36px;
    height: 36px;
    border-width: 4px;
    font-size: 8px;
  }
  .multi-seat {
    min-height: 145px !important;
  }
}

/* Developer-Passwort anzeigen und ändern. */
.developer-security {
  display: grid;
  grid-template-columns: minmax(240px,.8fr) minmax(520px,1.5fr);
  gap: 22px;
  align-items: center;
  margin: 11px 0;
  padding: 18px;
  border-radius: 20px;
}
.developer-security-copy h2 {
  margin: 4px 0 6px;
}
.developer-security-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.developer-password-form {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
}
.developer-password-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.developer-password-form input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--text);
  background: rgba(255,255,255,.045);
  font-size: 14px;
}
.developer-password-field {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 7px;
}
.developer-password-form > button {
  min-height: 44px;
}
.developer-security > .social-message {
  grid-column: 1 / -1;
  margin: 0;
}
@media (max-width: 1100px) {
  .developer-security {
    grid-template-columns: 1fr;
  }
  .developer-password-form {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 650px) {
  .developer-password-form {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .playing-card.card-enter,
  .playing-card.card-flip-reveal,
  .table-chip.chip-new {
    animation: none !important;
  }
}


/* ===== V4 Stabilitäts- und Layout-Fixes ===== */

/* Roulette schon auf der Spielauswahl klar als Beta kennzeichnen. */
#playRouletteButton {
  position: relative;
  overflow: visible;
}
#playRouletteButton .game-beta-badge {
  position: absolute;
  left: 50%;
  top: -11px;
  transform: translateX(-50%);
  padding: 3px 8px;
  border-radius: 999px;
  color: #171006;
  background: linear-gradient(135deg, #fff2b8, #f6c85f);
  box-shadow: 0 6px 15px rgba(0,0,0,.28);
  font-size: 8px;
  font-weight: 1000;
  letter-spacing: .14em;
  line-height: 1.2;
}

/* Es bleibt nur der bereits vorhandene Ergebnistext bei den Karten/Steuerelementen. */
#roundResultBanner,
#multiResultBanner {
  display: none !important;
}

/* Verdeckte Dealerkarte: Rückseite ohne leere/weiße Zwischenansicht. */
.playing-card {
  --card-face-rotation: 0deg !important;
}
.playing-card.face-down {
  transform: none !important;
}
.playing-card .card-front,
.playing-card .card-back {
  transition: opacity .16s ease, visibility .16s ease;
}
.playing-card:not(.face-down) .card-front {
  opacity: 1 !important;
  visibility: visible !important;
  transform: rotateY(0deg) !important;
}
.playing-card:not(.face-down) .card-back {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: rotateY(180deg) !important;
}
.playing-card.face-down .card-front {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: rotateY(180deg) !important;
}
.playing-card.face-down .card-back {
  opacity: 1 !important;
  visibility: visible !important;
  transform: rotateY(0deg) !important;
}
.playing-card.face-down.card-enter {
  animation: cardDealBackStable .58s cubic-bezier(.16,.82,.22,1) both !important;
}
@keyframes cardDealBackStable {
  0% {
    opacity: 0;
    filter: blur(3px) brightness(1.2);
    transform: translate3d(132px,-108px,0) rotateZ(9deg) scale(.82);
  }
  46% {
    opacity: 1;
    filter: blur(.45px) brightness(1.08);
    transform: translate3d(18px,-14px,0) rotateZ(-2.2deg) scale(1.035);
  }
  76% {
    opacity: 1;
    filter: blur(0) brightness(1.02);
    transform: translate3d(-4px,3px,0) rotateZ(.7deg) scale(1.012);
  }
  100% {
    opacity: 1;
    filter: none;
    transform: translate3d(0,0,0) rotateZ(0) scale(1);
  }
}

/* Der punktierte Außenring am Glücksrad wird entfernt; die Mitte bleibt sauber. */
.daily-wheel::after {
  display: none !important;
  content: none !important;
}
.daily-wheel::before {
  content: "◆";
  position: absolute;
  z-index: 3;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #171006;
  background: linear-gradient(135deg, #fff1bd, #f6c85f);
  box-shadow: 0 7px 18px rgba(0,0,0,.34);
  font-size: 20px;
  font-weight: 1000;
}

/* Privater Tisch: mehr Tiefe nach unten und klare vertikale Reihenfolge:
   Dealer -> Chipstapel -> Spieler. Dadurch gibt es keine Überlappung mehr. */
body.multiplayer-live .multiplayer-grid {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-items: stretch !important;
}
body.multiplayer-live .multi-table-shell,
body.multiplayer-live .multi-table-rim {
  height: auto !important;
  min-height: 0 !important;
}
body.multiplayer-live .multi-felt {
  display: grid !important;
  grid-template-rows: auto auto auto minmax(260px, 1fr);
  align-content: start;
  min-height: 790px !important;
  height: auto !important;
  padding: 22px 22px 46px !important;
}
.multi-dealer {
  margin-bottom: 8px !important;
}
.multi-turn-status {
  display: none !important;
}
.multi-table-bet-spot {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: min(620px, 86%) !important;
  min-height: 86px !important;
  margin: 8px auto 26px !important;
  z-index: 3 !important;
}
.multi-seats {
  position: relative !important;
  z-index: 2 !important;
  min-height: 280px;
  margin-top: 0 !important;
  align-items: end !important;
}
.multi-seat {
  min-height: 210px !important;
  align-self: end !important;
}
.multi-seat .multi-hands {
  min-height: 100px !important;
}
.multi-seat .seat-profile {
  margin-top: 14px !important;
}

/* Opene Plätze sind nur noch runde Spieler-Icons mit Pluszeichen. */
.multi-seat-empty.empty-player-seat {
  appearance: none;
  width: 68px !important;
  height: 68px !important;
  min-width: 68px !important;
  min-height: 68px !important;
  align-self: end !important;
  justify-self: center !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  margin: 0 auto 4px !important;
  border: 2px dashed rgba(246,200,95,.55) !important;
  border-radius: 50% !important;
  color: #ffe7a0 !important;
  background: rgba(4,34,24,.72) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.28), inset 0 0 0 4px rgba(255,255,255,.025) !important;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease !important;
}
.multi-seat-empty.empty-player-seat:hover,
.multi-seat-empty.empty-player-seat:focus-visible {
  transform: translateY(-5px) scale(1.04) !important;
  border-color: #ffe7a0 !important;
  background: rgba(50,75,35,.82) !important;
  outline: none;
}
.empty-player-plus {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #171006;
  background: linear-gradient(135deg, #fff0b8, #f6c85f);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
}

/* Rechts bleiben nur Spieler und ein deutlich längerer, intern scrollender Chat. */
body.multiplayer-live .multi-sidebar {
  height: auto !important;
  min-height: 790px !important;
  max-height: none !important;
  display: grid !important;
  grid-template-rows: minmax(150px, auto) minmax(560px, 1fr) !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-sidebar > section {
  min-height: 0 !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-player-list {
  max-height: 180px;
  overflow-y: auto;
}
body.multiplayer-live .table-chat-section {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
}
body.multiplayer-live .table-chat-section .chat-messages {
  flex: 1 1 auto !important;
  min-height: 430px !important;
  height: 100% !important;
  max-height: none !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
body.multiplayer-live .table-chat-section .chat-form {
  flex: 0 0 auto;
}

/* Developer: Spielerpasswörter sicher neu setzen, ohne Hash/Klartext offenzulegen. */
.admin-table {
  min-width: 1420px !important;
}
.admin-password-tools {
  min-width: 240px;
  display: grid;
  gap: 6px;
}
.admin-password-tools > small {
  margin: 0 !important;
  color: var(--muted);
  font-size: 8px;
}
.admin-password-entry {
  display: grid;
  grid-template-columns: minmax(125px, 1fr) auto;
  gap: 5px;
}
.admin-password-entry input {
  min-width: 0;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: rgba(255,255,255,.04);
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-felt {
    min-height: 720px !important;
  }
  body.multiplayer-live .multi-sidebar {
    min-height: 0 !important;
    grid-template-rows: auto auto !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    min-height: 320px !important;
    height: 320px !important;
  }
}
@media (max-width: 760px) {
  body.multiplayer-live .multi-felt {
    min-height: 690px !important;
    padding: 18px 10px 34px !important;
  }
  .multi-table-bet-spot {
    width: 96% !important;
    margin-bottom: 18px !important;
  }
  .multi-seat {
    min-height: 170px !important;
  }
  .multi-seat-empty.empty-player-seat {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
  }
  .empty-player-plus {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }
}


/* ===== V5 Layout-, Chrome- und Mobile-Korrekturen ===== */
html {
  touch-action: manipulation;
  -webkit-text-size-adjust: 100%;
}
button, a, input, select, textarea, [role="button"] {
  touch-action: manipulation;
}
@media (max-width: 760px) {
  input, select, textarea { font-size: 16px !important; }
}

/* Normales Blackjack: feste Reihen statt überlappender Absolutpositionen. */
#gameApp .table-felt {
  min-height: 760px !important;
  display: grid !important;
  grid-template-rows: minmax(250px, auto) 66px 92px minmax(285px, auto) !important;
  align-content: start !important;
}
#gameApp .dealer-seat { grid-row: 1; }
#gameApp .center-status { grid-row: 2; }
#gameApp .table-bet-spot {
  grid-row: 3;
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  align-self: center !important;
  justify-self: center !important;
  margin: 0 auto !important;
}
#gameApp .player-seat {
  grid-row: 4;
  min-height: 285px !important;
  padding: 34px 34px 38px !important;
  align-self: end !important;
}
#gameApp .hands-grid { min-height: 185px !important; }

/* Privater Tisch etwas kompakter, aber ohne Überlappungen. */
body.multiplayer-live .multi-felt {
  min-height: 675px !important;
  grid-template-rows: auto auto minmax(235px, 1fr) !important;
  padding: 18px 18px 34px !important;
}
body.multiplayer-live .multi-table-bet-spot {
  display: none !important;
}
body.multiplayer-live .multi-seats {
  min-height: 245px !important;
  align-items: end !important;
  gap: 8px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 190px !important;
  grid-template-rows: minmax(82px, auto) auto auto !important;
  align-content: end !important;
  overflow: visible !important;
}
.multi-seat .multi-hands {
  order: 1 !important;
  min-height: 82px !important;
  margin-bottom: 6px !important;
}
.multi-seat .seat-info-row {
  order: 2 !important;
  width: 100%;
  min-width: 0;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}
.multi-seat .seat-profile {
  order: initial !important;
  margin: 0 !important;
  flex: 0 0 auto;
}
.multi-seat .table-avatar {
  width: 58px !important;
  height: 58px !important;
  font-size: 33px !important;
}
.multi-seat .seat-bet-display {
  order: initial !important;
  min-width: 0;
  min-height: 54px;
  margin: 0 !important;
  padding: 4px 7px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  border: 1px solid rgba(246,200,95,.23) !important;
  border-radius: 13px !important;
  background: rgba(2,24,17,.72) !important;
}
.multi-seat .seat-bet-display.empty {
  display: none !important;
}
.seat-chip-stack {
  position: relative;
  flex: 0 0 52px;
  width: 52px;
  height: 46px;
}
.seat-chip-stack .laid-chip {
  position: absolute !important;
  left: calc(4px + var(--i) * 2px) !important;
  top: calc(11px - var(--i) * 3px) !important;
  width: 38px !important;
  height: 38px !important;
  border-width: 4px !important;
  font-size: 8px !important;
  transform: none;
}
.seat-bet-amount {
  min-width: 38px;
  display: grid;
  justify-items: start;
  line-height: 1.05;
}
.seat-bet-amount strong {
  color: #ffeaa3;
  font-size: 13px !important;
  font-weight: 1000;
  white-space: nowrap;
}
.seat-bet-amount small {
  color: rgba(232,255,246,.72);
  font-size: 8px !important;
  font-weight: 900;
  text-transform: uppercase;
}
.multi-seat-name-label {
  order: 3 !important;
  width: 100%;
  min-height: 18px;
  margin-top: 5px;
  overflow: hidden;
  color: #f4fff9;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Opene Sitze: Pluszeichen browserübergreifend exakt zentrieren. */
.multi-seat-empty.empty-player-seat {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.empty-player-plus {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
.empty-player-plus::before {
  content: "+";
  display: block;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-1px);
}

/* Nur der Freunde-Button trägt die Benachrichtigungszahl. */
.inline-request-count-hidden,
#requestCount { display: none !important; }
.social-toggle {
  position: relative !important;
  overflow: visible !important;
}
.social-badge {
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums;
  transform: none !important;
  z-index: 4;
}

/* Versicherung als kleine, dezente Entscheidungskarte statt Vollbild-Overlay. */
#insuranceModal.modal-backdrop {
  inset: auto 18px 18px auto !important;
  width: auto !important;
  height: auto !important;
  display: block !important;
  padding: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  pointer-events: none;
}
#insuranceModal.modal-backdrop.hidden { display: none !important; }
#insuranceModal .modal-card {
  width: min(350px, calc(100vw - 24px)) !important;
  padding: 14px !important;
  border-radius: 16px !important;
  text-align: left !important;
  pointer-events: auto;
  box-shadow: 0 16px 38px rgba(0,0,0,.42) !important;
  animation: insuranceCompactIn .2s ease both !important;
}
#insuranceModal .modal-symbol { display: none !important; }
#insuranceModal .modal-card h2 { margin: 0 0 4px !important; font-size: 17px !important; }
#insuranceModal .modal-card p { font-size: 10px !important; line-height: 1.45 !important; }
#insuranceModal .insurance-amount {
  margin: 8px 0 !important;
  padding: 7px 9px !important;
  font-size: 11px !important;
}
#insuranceModal .modal-actions { gap: 7px !important; }
#insuranceModal .modal-btn { min-height: 36px !important; height: 36px !important; font-size: 11px !important; }
@keyframes insuranceCompactIn {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to { opacity: 1; transform: none; }
}

/* Developer-Passwortfeld genauso hoch und griffig wie die übrigen Werkzeuge. */
.admin-password-tools {
  min-width: 290px !important;
  gap: 8px !important;
}
.admin-password-entry {
  grid-template-columns: minmax(165px, 1fr) minmax(82px, auto) !important;
  gap: 8px !important;
}
.admin-password-entry input,
.admin-password-tools .mini-btn {
  min-height: 42px !important;
  height: 42px !important;
  padding: 0 11px !important;
  border-radius: 10px !important;
  font-size: 12px !important;
  box-sizing: border-box;
}
.admin-password-tools > .mini-btn {
  width: 100% !important;
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-felt { min-height: 635px !important; }
  body.multiplayer-live .multi-sidebar { min-height: 0 !important; }
  #gameApp .table-felt {
    min-height: 715px !important;
    grid-template-rows: minmax(230px, auto) 62px 86px minmax(270px, auto) !important;
  }
}

@media (max-width: 760px) {
  #gameApp .table-felt {
    min-height: 660px !important;
    grid-template-rows: minmax(205px, auto) 54px 78px minmax(255px, auto) !important;
  }
  #gameApp .player-seat {
    min-height: 255px !important;
    padding: 24px 10px 30px !important;
  }
  #gameApp .hands-grid { min-height: 165px !important; }

  body.multiplayer-live .multi-felt {
    min-height: 590px !important;
    padding: 15px 8px 26px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 220px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 170px !important;
  }
  .multi-seat .table-avatar {
    width: 50px !important;
    height: 50px !important;
    font-size: 29px !important;
  }
  .multi-seat .seat-info-row { gap: 5px !important; }
  .multi-seat .seat-bet-display {
    min-height: 48px;
    padding: 3px 5px !important;
    gap: 4px !important;
  }
  .seat-chip-stack { flex-basis: 44px; width: 44px; height: 41px; }
  .seat-chip-stack .laid-chip {
    width: 34px !important;
    height: 34px !important;
    left: calc(3px + var(--i) * 1.5px) !important;
    top: calc(9px - var(--i) * 2.5px) !important;
  }
  .seat-bet-amount strong { font-size: 11px !important; }
  .multi-seat-name-label { font-size: 9px; }
  .empty-player-plus::before { font-size: 25px; }

  #insuranceModal.modal-backdrop {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
  }
  #insuranceModal .modal-card { width: 100% !important; }

  .social-badge {
    top: -6px !important;
    right: -6px !important;
  }
}


/* ===== V6: Rad, Luxusanimationen, kompaktere Tische und Mobile-UI ===== */

/* Der Badge existiert ausschließlich bei offenen Freundschaftsanfragen. */
.social-badge.hidden {
  display: none !important;
}

/* Freundeliste steht direkt nach der Tischerstellung; Chat erst nach Klick. */
.friend-chat-panel.hidden {
  display: none !important;
}
.friend-chat-panel .social-section-title {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: start !important;
  gap: 10px !important;
}
.friend-chat-panel .social-section-title h3 {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.friend-chat-target-hidden {
  display: none !important;
}
.friend-chat-back {
  min-height: 34px !important;
  white-space: nowrap;
}

/* Im unteren Shop-Status steht keine zweite Chips-/Gold-Zeile mehr. */
#shopMessage {
  min-height: 17px;
}

/* Glücksrad: fester Zeiger, exakte Landung und mittiges Schließen. */
.daily-wheel-wrap,
.daily-wheel-hero-wrap {
  position: relative;
  display: grid;
  justify-items: center;
}
.daily-wheel-wrap::before,
.daily-wheel-hero-wrap::before {
  content: "";
  position: absolute;
  z-index: 8;
  left: 50%;
  top: -7px;
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 22px solid #fff1b8;
  filter: drop-shadow(0 4px 4px rgba(0,0,0,.48));
  transform: translateX(-50%);
  pointer-events: none;
}
.daily-wheel {
  animation: wheelBreathV6 4.8s ease-in-out infinite alternate !important;
  transform-origin: 50% 50% !important;
}
.daily-wheel.spinning,
.daily-wheel-hero.spinning {
  animation: dailyWheelResultSpin 3.5s cubic-bezier(.08,.72,.08,1) both !important;
}
.daily-wheel.settled {
  animation: none !important;
}
@keyframes dailyWheelResultSpin {
  0% { transform: rotate(0deg) scale(1); filter: brightness(1); }
  76% { filter: brightness(1.18); }
  92% { transform: rotate(calc(var(--daily-wheel-spin, 2160deg) - 4deg)) scale(1.018); }
  100% { transform: rotate(var(--daily-wheel-spin, 2160deg)) scale(1); filter: brightness(1.08); }
}
@keyframes wheelBreathV6 {
  from { transform: scale(1); filter: brightness(1); }
  to { transform: scale(1.012); filter: brightness(1.07); }
}
.daily-wheel-stage > .drawer-close {
  position: absolute !important;
  top: 15px !important;
  right: 15px !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  text-align: center !important;
  font-size: 25px !important;
}

/* Solo-Handwert direkt neben dem Namen. */
.hand-top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.hand-title-line {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.hand-title-line .hand-score {
  flex: 0 0 auto;
}

/* Handwert auch am privaten Tisch direkt an der Hand. */
.multi-hand-topline {
  min-height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 2px;
}
.multi-hand-label {
  color: rgba(236,255,247,.74);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.multi-hand-value {
  min-width: 25px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #071610;
  background: var(--mint);
  box-shadow: 0 5px 14px rgba(0,0,0,.25);
  font-size: 12px;
  font-weight: 1000;
}

/* Pluszeichen wird aus zwei geometrischen Linien aufgebaut und ist optisch exakt mittig. */
.empty-player-plus {
  position: relative !important;
  width: 42px !important;
  height: 42px !important;
  display: block !important;
  padding: 0 !important;
  border-radius: 50%;
  background: linear-gradient(135deg, #fff0b8, #f6c85f);
}
.empty-player-plus::before,
.empty-player-plus::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  display: block !important;
  width: 20px !important;
  height: 3px !important;
  border-radius: 4px;
  background: #171006;
  transform: translate(-50%, -50%) !important;
}
.empty-player-plus::after {
  transform: translate(-50%, -50%) rotate(90deg) !important;
}

/* Namen am privaten Tisch allein und besser lesbar. */
.multi-seat-name-label {
  font-size: 13px !important;
  font-weight: 1000 !important;
  letter-spacing: .015em;
}

/* Beide Spielflächen etwa 15 Prozent kompakter von unten. */
#gameApp .table-felt {
  min-height: 650px !important;
  grid-template-rows: minmax(205px, auto) 50px 70px minmax(220px, auto) !important;
}
#gameApp .player-seat {
  min-height: 220px !important;
  padding-bottom: 24px !important;
}
#gameApp .hands-grid {
  min-height: 145px !important;
}

body.multiplayer-live .multi-felt {
  min-height: 575px !important;
  grid-template-rows: auto auto minmax(195px, 1fr) !important;
  padding-bottom: 25px !important;
}
body.multiplayer-live .multi-seats {
  min-height: 205px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 160px !important;
  grid-template-rows: minmax(70px, auto) auto auto !important;
}
.multi-seat .multi-hands {
  min-height: 70px !important;
}

/* Außergewöhnliche Luxusanimation – immer relativ zur sichtbaren Tischfläche. */
.table-felt,
.multi-felt {
  position: relative !important;
  isolation: isolate;
}
.table-spectacle {
  position: absolute !important;
  inset: 0 !important;
  z-index: 80 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: inherit;
  pointer-events: none !important;
  opacity: 0;
}
.table-spectacle.hidden {
  display: none !important;
}
.table-spectacle.is-active {
  opacity: 1;
}
.spectacle-vignette,
.spectacle-rays,
.spectacle-halo,
.spectacle-sparks,
.spectacle-card-orbit,
.spectacle-chip-orbit,
.spectacle-pedestal,
.spectacle-item-core {
  position: absolute;
  left: 50%;
  top: 50%;
  pointer-events: none;
}
.spectacle-vignette {
  inset: 0;
  left: 0;
  top: 0;
  background:
    radial-gradient(circle at 50% 52%, rgba(255,246,185,.12), transparent 24%),
    radial-gradient(circle at 50% 50%, transparent 28%, rgba(0,0,0,.58) 100%);
  animation: spectacleVignette 4.4s ease both;
}
.spectacle-rays {
  width: min(610px, 88%);
  aspect-ratio: 1;
  background: repeating-conic-gradient(from 0deg, rgba(255,226,116,.22) 0 5deg, transparent 5deg 15deg);
  border-radius: 50%;
  mix-blend-mode: screen;
  transform: translate(-50%, -50%) scale(.35);
  animation: spectacleRays 4.2s cubic-bezier(.16,.8,.18,1) both;
}
.spectacle-halo {
  width: min(430px, 70%);
  aspect-ratio: 1;
  border: 2px solid rgba(255,232,145,.74);
  border-radius: 50%;
  box-shadow: 0 0 28px rgba(255,213,84,.28), inset 0 0 25px rgba(255,227,126,.13);
  transform: translate(-50%, -50%) scale(.2);
  animation: spectacleHalo 3.7s ease-out both;
}
.spectacle-halo.halo-two {
  width: min(350px, 58%);
  border-style: dashed;
  animation-delay: .14s;
}
.spectacle-halo.halo-three {
  width: min(270px, 46%);
  border-color: rgba(104,255,207,.72);
  animation-delay: .28s;
}
.spectacle-item-core {
  z-index: 8;
  width: min(230px, 42%);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
}
.spectacle-item-glow {
  position: absolute;
  inset: 6%;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,248,194,.52), rgba(246,200,95,.13) 52%, transparent 72%);
  filter: blur(8px);
  animation: spectacleCoreGlow 1.05s ease-in-out infinite alternate;
}
.spectacle-item {
  position: relative !important;
  z-index: 2;
  font-size: clamp(72px, 11vw, 136px) !important;
  filter: drop-shadow(0 26px 20px rgba(0,0,0,.45)) drop-shadow(0 0 24px rgba(255,226,126,.32));
  animation: spectacleHero 4.25s cubic-bezier(.14,.8,.18,1) both !important;
}
.spectacle-pedestal {
  z-index: 4;
  width: min(250px, 42%);
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,231,139,.42), rgba(255,207,64,.06) 62%, transparent 72%);
  filter: blur(2px);
  transform: translate(-50%, 74px) scale(.4);
  animation: spectaclePedestal 3.8s ease both;
}
.spectacle-sparks {
  z-index: 7;
  width: min(480px, 76%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-sparks i {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff1a8;
  box-shadow: 0 0 12px #f6c85f;
  opacity: 0;
  transform:
    rotate(var(--angle))
    translateX(0)
    rotate(calc(var(--angle) * -1));
  animation: spectacleSpark 2.15s ease-out var(--delay) both;
}
.spectacle-card-orbit,
.spectacle-chip-orbit {
  z-index: 5;
  width: min(430px, 70%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-card-orbit i {
  position: absolute;
  left: calc(50% - 18px);
  top: calc(50% - 25px);
  width: 36px;
  height: 50px;
  border-radius: 7px;
  background:
    linear-gradient(135deg, transparent 47%, rgba(188,34,62,.9) 48% 52%, transparent 53%),
    #fff9e9;
  box-shadow: 0 12px 22px rgba(0,0,0,.32);
  opacity: 0;
  animation: spectacleCardOrbit 3.4s cubic-bezier(.15,.8,.2,1) var(--delay) both;
  transform:
    rotate(calc(var(--i) * 45deg))
    translateY(-24px)
    rotate(calc(var(--i) * -45deg));
}
.spectacle-chip-orbit i {
  position: absolute;
  left: calc(50% - 14px);
  top: calc(50% - 14px);
  width: 28px;
  height: 28px;
  border: 4px dashed rgba(255,255,255,.84);
  border-radius: 50%;
  background: radial-gradient(circle, #fff0a8 0 38%, #b97618 40% 61%, #f5c95f 63%);
  box-shadow: 0 9px 18px rgba(0,0,0,.3);
  opacity: 0;
  animation: spectacleChipOrbit 3.35s cubic-bezier(.18,.78,.2,1) var(--delay) both;
  transform:
    rotate(calc(var(--i) * 30deg))
    translateY(-15px)
    rotate(calc(var(--i) * -30deg));
}
.table-spectacle.firework .spectacle-vignette {
  background:
    radial-gradient(circle at 50% 50%, rgba(255,184,226,.18), transparent 26%),
    radial-gradient(circle at 50% 50%, transparent 30%, rgba(15,0,20,.68) 100%);
}
.table-spectacle.firework .spectacle-halo {
  border-color: rgba(255,160,222,.8);
  box-shadow: 0 0 32px rgba(255,86,196,.34);
}
.table-spectacle.explosion .spectacle-vignette {
  background:
    radial-gradient(circle at 50% 50%, rgba(255,107,43,.25), transparent 28%),
    radial-gradient(circle at 50% 50%, transparent 28%, rgba(25,4,0,.72) 100%);
}
.table-spectacle.explosion .spectacle-rays {
  background: repeating-conic-gradient(from 0deg, rgba(255,117,40,.3) 0 6deg, transparent 6deg 14deg);
}
.table-spectacle.gold_burst .spectacle-rays {
  background: repeating-conic-gradient(from 0deg, rgba(255,226,116,.28) 0 5deg, transparent 5deg 15deg);
}
@keyframes spectacleVignette {
  0%,100% { opacity: 0; }
  14%,78% { opacity: 1; }
}
@keyframes spectacleRays {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.28) rotate(-40deg); }
  26% { opacity: .9; }
  76% { opacity: .62; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.2) rotate(100deg); }
}
@keyframes spectacleHalo {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.15) rotate(-30deg); }
  28% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.35) rotate(110deg); }
}
@keyframes spectacleCoreGlow {
  from { transform: scale(.9); opacity: .7; }
  to { transform: scale(1.12); opacity: 1; }
}
@keyframes spectacleHero {
  0% { opacity: 0; transform: translateY(-115px) scale(.45) rotate(-16deg); }
  23% { opacity: 1; transform: translateY(5px) scale(1.18) rotate(5deg); }
  42% { transform: translateY(-12px) scale(.98) rotate(-3deg); }
  60% { transform: translateY(0) scale(1.06) rotate(2deg); }
  82% { opacity: 1; transform: translateY(-4px) scale(1); }
  100% { opacity: 0; transform: translateY(35px) scale(.78) rotate(0); }
}
@keyframes spectaclePedestal {
  0% { opacity: 0; transform: translate(-50%,74px) scale(.25); }
  28%,76% { opacity: 1; transform: translate(-50%,74px) scale(1); }
  100% { opacity: 0; transform: translate(-50%,74px) scale(1.3); }
}
@keyframes spectacleSpark {
  0% { opacity: 0; transform: rotate(var(--angle)) translateX(20px) scale(.25); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: rotate(var(--angle)) translateX(195px) scale(1.35); }
}
@keyframes spectacleCardOrbit {
  0% { opacity: 0; transform: rotate(calc(var(--i) * 45deg)) translateY(-25px) scale(.35); }
  28% { opacity: 1; }
  74% { opacity: .95; }
  100% { opacity: 0; transform: rotate(calc(var(--i) * 45deg + 145deg)) translateY(-175px) scale(.9); }
}
@keyframes spectacleChipOrbit {
  0% { opacity: 0; transform: rotate(calc(var(--i) * 30deg)) translateY(-12px) scale(.45); }
  24% { opacity: 1; }
  100% { opacity: 0; transform: rotate(calc(var(--i) * 30deg - 120deg)) translateY(-148px) scale(1.05); }
}
.table-luxury-active .multi-felt,
.table-luxury-active .table-felt {
  animation: feltLuxuryPulseV6 4.4s ease-in-out !important;
}
@keyframes feltLuxuryPulseV6 {
  0%,100% { filter: none; }
  24% { filter: brightness(1.18) saturate(1.18); }
  48% { filter: brightness(.96) saturate(1.3); }
  72% { filter: brightness(1.12); }
}

/* Mobile: Kopfzeile darf nicht überlappen, private Seitenleiste folgt unter dem Tisch. */
@media (max-width: 900px) {
  body.multiplayer-live .multiplayer-grid {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-table-shell {
    width: 100% !important;
  }
  body.multiplayer-live .multi-sidebar {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 14px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-sidebar > section {
    min-height: 0 !important;
    height: auto !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    height: 300px !important;
    min-height: 300px !important;
    max-height: 300px !important;
    overflow-y: auto !important;
  }
}

@media (max-width: 760px) {
  html,
  body {
    touch-action: pan-x pan-y !important;
    overscroll-behavior-x: none;
  }
  button,
  a,
  input,
  select,
  textarea,
  [role="button"] {
    touch-action: manipulation !important;
  }

  .topbar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: calc(100% - 12px) !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 6px auto 10px !important;
    padding: 10px !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 9px !important;
    transform: none !important;
  }
  .brand-wrap {
    min-width: 0 !important;
    justify-content: center !important;
    text-align: center;
  }
  .brand-wrap h1 {
    font-size: 15px !important;
  }
  .brand-wrap p {
    font-size: 8px !important;
  }
  .header-stats {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: 5px !important;
  }
  .header-stats .stat-pill {
    min-width: 0 !important;
    width: 100% !important;
    padding: 6px 4px !important;
    text-align: center;
  }
  .header-stats .stat-pill span {
    font-size: 7px !important;
  }
  .header-stats .stat-pill strong {
    font-size: 12px !important;
  }
  .header-actions {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 42px 42px 42px !important;
    gap: 6px !important;
  }
  .account-area {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: space-between !important;
  }
  .account-area.hidden {
    display: none !important;
  }
  .social-toggle {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 11px !important;
    justify-content: center !important;
  }
  .shop-toggle,
  .icon-btn {
    width: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
  }

  #gameApp .table-felt {
    min-height: 555px !important;
    grid-template-rows: minmax(180px, auto) 45px 58px minmax(190px, auto) !important;
  }
  #gameApp .player-seat {
    min-height: 190px !important;
    padding: 18px 8px 18px !important;
  }
  #gameApp .hands-grid {
    min-height: 125px !important;
  }

  body.multiplayer-live .multi-felt {
    min-height: 495px !important;
    grid-template-rows: auto auto minmax(165px, 1fr) !important;
    padding: 12px 7px 18px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 175px !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 140px !important;
    grid-template-rows: minmax(58px, auto) auto auto !important;
  }
  .multi-seat .multi-hands {
    min-height: 58px !important;
  }
  .multi-seat-name-label {
    font-size: 11px !important;
  }
  .empty-player-plus {
    width: 36px !important;
    height: 36px !important;
  }
  .empty-player-plus::before,
  .empty-player-plus::after {
    width: 17px !important;
    height: 3px !important;
  }

  .table-spectacle .spectacle-item {
    font-size: clamp(62px, 20vw, 105px) !important;
  }
  .spectacle-rays {
    width: 92%;
  }
  .spectacle-card-orbit,
  .spectacle-chip-orbit {
    width: 82%;
  }

  .daily-wheel-stage > .drawer-close {
    top: 10px !important;
    right: 10px !important;
  }
}

@media (max-width: 480px) {
  .header-stats {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  .header-actions {
    grid-template-columns: minmax(0,1fr) repeat(3,38px) !important;
  }
  .shop-toggle,
  .icon-btn {
    width: 38px !important;
    min-width: 38px !important;
  }
  .multi-roombar,
  .roombar-actions {
    align-items: stretch !important;
  }
  .roombar-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
  }
  .roombar-actions > * {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* ===== V7: kompakter privater Tisch und identisches Solo-Tischdesign ===== */

/* Der private Tisch wird nicht mehr auf die Höhe der rechten Seitenleiste gestreckt.
   Dadurch endet auch der braune Holzrahmen direkt unter dem Spielfeld. */
body.multiplayer-live .multiplayer-grid {
  align-items: start !important;
}
body.multiplayer-live .multi-table-shell {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: start !important;
}
body.multiplayer-live .multi-table-rim {
  flex: none !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 6px !important;
  border-radius: 25px 25px 16px 16px !important;
  align-self: start !important;
}
body.multiplayer-live .multi-felt {
  height: auto !important;
  min-height: 505px !important;
  padding: 12px 12px 16px !important;
  border-radius: 19px 19px 11px 11px !important;
  grid-template-rows: auto auto minmax(178px, auto) !important;
  align-content: start !important;
}
body.multiplayer-live .multi-seats {
  min-height: 185px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 145px !important;
  grid-template-rows: minmax(62px, auto) auto auto !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  min-height: 62px !important;
}

/* Der normale Blackjack-Tisch verwendet jetzt dieselbe Holz-, Filz- und
   Rahmenoptik wie der private Tisch. */
#gameApp .solo-private-shell {
  display: block !important;
  min-width: 0 !important;
  height: auto !important;
}
#gameApp .solo-private-rim {
  height: auto !important;
  padding: 6px !important;
  border-radius: 25px 25px 16px 16px !important;
  background: linear-gradient(145deg, #6b4527, #21130b 55%, #7a5130) !important;
  box-shadow:
    0 25px 70px rgba(0,0,0,.34),
    inset 0 0 0 2px rgba(255,255,255,.05) !important;
}
#gameApp .solo-private-felt {
  position: relative !important;
  display: grid !important;
  grid-template-rows:
    auto
    minmax(138px, auto)
    42px
    62px
    minmax(172px, auto) !important;
  align-content: start !important;
  min-height: 505px !important;
  height: auto !important;
  padding: 12px 12px 16px !important;
  overflow: hidden !important;
  border-radius: 19px 19px 11px 11px !important;
  background:
    radial-gradient(circle at 50% 45%, #176244 0, #0c412e 42%, #082b20 78%, #071f18 100%) !important;
  box-shadow:
    inset 0 0 90px rgba(0,0,0,.5),
    inset 0 0 0 2px rgba(154,255,213,.055) !important;
}
#gameApp .solo-private-felt::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  opacity: .22 !important;
  background-image:
    radial-gradient(rgba(255,255,255,.12) .5px, transparent .5px) !important;
  background-size: 5px 5px !important;
  pointer-events: none !important;
}
#gameApp .solo-private-felt::after {
  display: none !important;
  content: none !important;
}
#gameApp .solo-table-copy {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 1px 0 4px !important;
  color: rgba(221,255,241,.38) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .14em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* Weniger Elemente und deutlich weniger vertikaler Leerraum im Solo-Spielfeld. */
#gameApp .solo-private-dealer-seat {
  grid-row: 2 !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 2px 0 0 !important;
}
#gameApp .solo-private-dealer-seat .seat-heading {
  margin-bottom: 4px !important;
}
#gameApp .solo-private-dealer-seat .card-row {
  min-height: 104px !important;
  padding: 2px 6px !important;
}
#gameApp .center-status {
  grid-row: 3 !important;
  height: 42px !important;
}
#gameApp .status-orb {
  min-width: 170px !important;
  min-height: 34px !important;
  padding: 7px 14px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
}
#gameApp .table-bet-spot {
  grid-row: 4 !important;
  width: min(420px, 78%) !important;
  min-height: 54px !important;
  margin: 0 auto 5px !important;
  align-self: center !important;
  justify-self: center !important;
}
#gameApp .solo-private-player-seat {
  grid-row: 5 !important;
  width: calc(100% - 18px) !important;
  min-height: 172px !important;
  margin: 0 auto !important;
  padding: 10px 12px 12px !important;
  align-self: end !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 19px 19px 12px 12px !important;
  background: rgba(2,22,15,.35) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
}
#gameApp .solo-private-player-seat .seat-heading {
  margin-bottom: 5px !important;
}
#gameApp .solo-private-player-seat .hands-grid {
  min-height: 112px !important;
  gap: 9px !important;
}

/* Tablet */
@media (max-width: 1180px) {
  body.multiplayer-live .multi-felt {
    min-height: 485px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 175px !important;
  }

  #gameApp .solo-private-felt {
    min-height: 485px !important;
    grid-template-rows:
      auto
      minmax(130px, auto)
      40px
      58px
      minmax(165px, auto) !important;
  }
  #gameApp .solo-private-player-seat {
    min-height: 165px !important;
  }
}

/* Handy */
@media (max-width: 760px) {
  body.multiplayer-live .multi-table-rim {
    padding: 5px !important;
    border-radius: 21px 21px 14px 14px !important;
  }
  body.multiplayer-live .multi-felt {
    min-height: 445px !important;
    padding: 10px 7px 13px !important;
    border-radius: 16px 16px 9px 9px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 155px !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 128px !important;
    grid-template-rows: minmax(52px, auto) auto auto !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    min-height: 52px !important;
  }

  #gameApp .solo-private-rim {
    padding: 5px !important;
    border-radius: 21px 21px 14px 14px !important;
  }
  #gameApp .solo-private-felt {
    min-height: 445px !important;
    padding: 10px 7px 13px !important;
    border-radius: 16px 16px 9px 9px !important;
    grid-template-rows:
      auto
      minmax(118px, auto)
      38px
      54px
      minmax(155px, auto) !important;
  }
  #gameApp .solo-private-dealer-seat .card-row {
    min-height: 92px !important;
  }
  #gameApp .status-orb {
    min-width: 145px !important;
    min-height: 31px !important;
    padding: 6px 11px !important;
    font-size: 10px !important;
  }
  #gameApp .table-bet-spot {
    width: 88% !important;
    min-height: 48px !important;
  }
  #gameApp .solo-private-player-seat {
    width: calc(100% - 10px) !important;
    min-height: 155px !important;
    padding: 8px 7px 9px !important;
  }
  #gameApp .solo-private-player-seat .hands-grid {
    min-height: 96px !important;
  }
}


/* ===== V8: Feldmitten am Glücksrad, Tischpositionen und Tonbereinigung ===== */

/* Die Zahlen stehen exakt in der Mitte jedes 60-Grad-Farbfeldes. */
.daily-wheel span {
  transform: rotate(calc((var(--n, 0) * 60deg) + 30deg)) !important;
}

/* Privater Tisch: etwas mehr Tiefe unten, ohne den Holzrahmen unnötig zu strecken. */
body.multiplayer-live .multi-felt {
  min-height: 535px !important;
  padding-bottom: 23px !important;
  grid-template-rows: auto auto minmax(205px, auto) !important;
}
body.multiplayer-live .multi-seats {
  min-height: 212px !important;
  align-items: end !important;
  padding-top: 10px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 162px !important;
  grid-template-rows: minmax(66px, auto) auto auto !important;
  align-self: end !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  min-height: 66px !important;
}
body.multiplayer-live .multi-seat .seat-info-row {
  transform: translateY(8px) !important;
}
body.multiplayer-live .multi-seat .multi-seat-name-label {
  transform: translateY(7px) !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  transform: translateY(8px) !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat:hover,
body.multiplayer-live .multi-seat-empty.empty-player-seat:focus-visible {
  transform: translateY(3px) scale(1.04) !important;
}

/* Normaler Tisch: Chipstapel links neben dem Spieler statt oberhalb. */
#gameApp .solo-private-felt {
  grid-template-rows:
    auto
    minmax(138px, auto)
    42px
    minmax(192px, auto) !important;
}
#gameApp .solo-private-player-seat {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(112px, 1fr) !important;
  column-gap: 10px !important;
  min-height: 192px !important;
}
#gameApp .solo-private-player-seat > .seat-heading {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
#gameApp .solo-private-player-seat > .hands-grid {
  grid-column: 2 !important;
  grid-row: 2 !important;
  width: 100% !important;
}
#gameApp .solo-seat-bet-spot {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  align-self: center !important;
  justify-self: center !important;
  width: 100px !important;
  min-height: 112px !important;
  margin: 0 !important;
  padding: 5px 3px !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
}
#gameApp .solo-seat-bet-spot.empty {
  display: grid !important;
  opacity: 0 !important;
}
#gameApp .solo-seat-bet-spot .laid-chip-stack {
  min-height: 60px !important;
}
#gameApp .solo-seat-bet-spot > strong {
  margin-top: 4px !important;
}
#gameApp .solo-seat-bet-spot > small {
  margin-top: 1px !important;
}

/* Der Tischchat endet ungefähr auf Höhe der Tisch- und Einsatzsteuerung. */
@media (min-width: 901px) {
  body.multiplayer-live .multi-sidebar {
    height: 610px !important;
    min-height: 0 !important;
    max-height: 610px !important;
    display: grid !important;
    grid-template-rows: 160px minmax(0, 1fr) !important;
    overflow: hidden !important;
    align-self: start !important;
  }
  body.multiplayer-live .multi-sidebar > section {
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-player-list {
    max-height: 105px !important;
    overflow-y: auto !important;
  }
  body.multiplayer-live .table-chat-section {
    min-height: 0 !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
  }
  body.multiplayer-live .table-chat-section .chat-form {
    flex: 0 0 auto !important;
  }
}

/* Tablet */
@media (max-width: 1180px) and (min-width: 901px) {
  body.multiplayer-live .multi-felt {
    min-height: 515px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 200px !important;
  }
  body.multiplayer-live .multi-sidebar {
    height: 590px !important;
    max-height: 590px !important;
  }
}

/* Handy */
@media (max-width: 760px) {
  body.multiplayer-live .multi-felt {
    min-height: 470px !important;
    padding-bottom: 18px !important;
    grid-template-rows: auto auto minmax(180px, auto) !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 182px !important;
    padding-top: 7px !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 143px !important;
    grid-template-rows: minmax(56px, auto) auto auto !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    min-height: 56px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row,
  body.multiplayer-live .multi-seat .multi-seat-name-label {
    transform: translateY(5px) !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    transform: translateY(5px) !important;
  }

  #gameApp .solo-private-felt {
    grid-template-rows:
      auto
      minmax(118px, auto)
      38px
      minmax(166px, auto) !important;
  }
  #gameApp .solo-private-player-seat {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    grid-template-rows: auto minmax(100px, 1fr) !important;
    column-gap: 5px !important;
    min-height: 166px !important;
  }
  #gameApp .solo-seat-bet-spot {
    width: 70px !important;
    min-height: 94px !important;
    padding: 3px 0 !important;
  }
  #gameApp .solo-seat-bet-spot .laid-chip-stack {
    transform: scale(.82) !important;
    transform-origin: center bottom !important;
    min-height: 52px !important;
  }
  #gameApp .solo-seat-bet-spot > strong {
    font-size: 11px !important;
  }
  #gameApp .solo-seat-bet-spot > small {
    font-size: 7px !important;
  }

  body.multiplayer-live .table-chat-section .chat-messages {
    height: 245px !important;
    min-height: 245px !important;
    max-height: 245px !important;
  }
}


/* ===== V9: kompaktere Tisch-UI, Versicherung am Tisch und Code-Beitritt ===== */

/* Roulette-Startbutton mit gut lesbarem Kontrast. */
#playRouletteButton.roulette {
  color: #ffffff !important;
  background:
    linear-gradient(135deg, #922f75 0%, #5d2d92 52%, #1f5fa8 100%) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  box-shadow: 0 14px 30px rgba(67,30,113,.32) !important;
}
#playRouletteButton.roulette span {
  color: #ffffff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.45);
}
#playRouletteButton.roulette .game-beta-badge {
  color: #201004 !important;
  background: linear-gradient(135deg, #fff4b7, #ffbd45) !important;
}

/* Das X des Glücksrads wird geometrisch aufgebaut und sitzt exakt mittig. */
#closeDailyWheel {
  position: absolute !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
#closeDailyWheel::before,
#closeDailyWheel::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 19px !important;
  height: 2px !important;
  border-radius: 2px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg) !important;
}
#closeDailyWheel::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

/* Versicherung erscheint direkt über den Dealerkarten im Tisch. */
#gameApp .solo-private-felt {
  position: relative !important;
}
#insuranceModal.insurance-table-popover {
  position: absolute !important;
  inset: 68px auto auto 50% !important;
  width: min(350px, calc(100% - 28px)) !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: transparent !important;
  transform: translateX(-50%) !important;
  z-index: 90 !important;
  pointer-events: none !important;
}
#insuranceModal.insurance-table-popover.hidden {
  display: none !important;
}
#insuranceModal.insurance-table-popover .modal-card {
  width: 100% !important;
  max-width: 350px !important;
  padding: 13px 15px !important;
  pointer-events: auto !important;
  border: 1px solid rgba(255,221,132,.55) !important;
  background: rgba(8,31,25,.96) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.42) !important;
}
#insuranceModal.insurance-table-popover .modal-card h2 {
  font-size: 16px !important;
}
#insuranceModal.insurance-table-popover .modal-card p {
  margin: 2px 0 7px !important;
}

/* Dealer- und Spielerkarten verwenden exakt dieselben Abmessungen. */
#gameApp .solo-private-felt .dealer-seat .playing-card,
#gameApp .solo-private-felt .player-seat .playing-card {
  width: 74px !important;
  height: 106px !important;
  min-width: 74px !important;
}
#gameApp .solo-private-dealer-seat .card-row,
#gameApp .solo-private-player-seat .hand-cards {
  min-height: 110px !important;
  align-items: flex-start !important;
}

/* Der Solo-Chipstapel sitzt links direkt neben der eigenen Hand, nicht am Außenrand. */
#gameApp .solo-private-player-seat {
  width: min(780px, 88%) !important;
  grid-template-columns: 86px minmax(0, 1fr) !important;
  column-gap: 5px !important;
}
#gameApp .solo-seat-bet-spot {
  width: 82px !important;
  min-height: 104px !important;
  justify-self: end !important;
  transform: translateX(2px) !important;
}

/* Private Tischsteuerung mit kleinem, aber sichtbarem Abstand zum Holzrahmen. */
body.multiplayer-live .multi-controls {
  margin-top: 7px !important;
}

/* Spieler- und Plus-Icons stehen auf exakt derselben Grundlinie. */
body.multiplayer-live .multi-seats {
  align-items: end !important;
  padding-bottom: 4px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 176px !important;
  grid-template-rows: minmax(74px, auto) 68px 24px !important;
  align-self: end !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  min-height: 74px !important;
}
body.multiplayer-live .multi-seat .seat-info-row {
  height: 68px !important;
  min-height: 68px !important;
  align-items: end !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat .table-avatar {
  width: 58px !important;
  height: 58px !important;
}
body.multiplayer-live .multi-seat-name-label {
  height: 24px !important;
  min-height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  min-height: 58px !important;
  margin: 0 auto 24px !important;
  align-self: end !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat:hover,
body.multiplayer-live .multi-seat-empty.empty-player-seat:focus-visible {
  transform: translateY(-4px) scale(1.04) !important;
}

/* Manuelle Weiter-/Ready-Buttons werden bei der automatischen Runde nicht gebraucht. */
.auto-round-hidden {
  display: none !important;
}

/* Einheitliche Abstände im Freundebereich ohne zusätzliche Lücke bei „Deine Freunde“. */
.social-drawer {
  gap: 11px !important;
}
.social-drawer > .social-section,
.social-drawer > .social-card,
.social-drawer > form,
.social-drawer > p {
  margin: 0 !important;
}
.social-drawer .social-section-title {
  margin: 0 0 7px !important;
}
.social-drawer .social-section.grow {
  flex: 0 0 auto !important;
  min-height: 0 !important;
}
.social-drawer .social-list {
  margin: 0 !important;
}

/* Tischcode-Beitritt. */
.table-code-join-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin: 0 !important;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,255,255,.035);
}
.table-code-join-form input {
  min-width: 0;
  height: 40px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 900;
  text-align: center;
}

/* Automatische Rundenphase: Steuerelemente bleiben kompakt. */
.multi-result-controls {
  min-height: 48px !important;
  justify-content: center !important;
}
.multi-result-controls span {
  text-align: center;
}

/* Handy-Anpassungen. */
@media (max-width: 760px) {
  #insuranceModal.insurance-table-popover {
    inset: 54px auto auto 50% !important;
    width: calc(100% - 18px) !important;
  }
  #insuranceModal.insurance-table-popover .modal-card {
    padding: 10px 11px !important;
  }

  #gameApp .solo-private-felt .dealer-seat .playing-card,
  #gameApp .solo-private-felt .player-seat .playing-card {
    width: 57px !important;
    height: 82px !important;
    min-width: 57px !important;
  }
  #gameApp .solo-private-dealer-seat .card-row,
  #gameApp .solo-private-player-seat .hand-cards {
    min-height: 86px !important;
  }
  #gameApp .solo-private-player-seat {
    width: calc(100% - 12px) !important;
    grid-template-columns: 64px minmax(0, 1fr) !important;
    column-gap: 3px !important;
  }
  #gameApp .solo-seat-bet-spot {
    width: 61px !important;
    min-height: 87px !important;
    transform: none !important;
  }

  body.multiplayer-live .multi-controls {
    margin-top: 6px !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 148px !important;
    grid-template-rows: minmax(58px, auto) 58px 21px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    min-height: 58px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row {
    height: 58px !important;
    min-height: 58px !important;
  }
  body.multiplayer-live .multi-seat .table-avatar,
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    width: 49px !important;
    height: 49px !important;
    min-width: 49px !important;
    min-height: 49px !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    margin-bottom: 21px !important;
  }
  body.multiplayer-live .multi-seat-name-label {
    height: 21px !important;
    min-height: 21px !important;
  }

  .table-code-join-form {
    grid-template-columns: 1fr !important;
  }
  .table-code-join-form button {
    width: 100% !important;
  }
}


/* ===== V10: vollständige Mobile-Überarbeitung, Slots, Support und Animationen ===== */

:root {
  --mobile-gap: 10px;
}

/* Ruhige, nahtlose Endlosanimationen für dekorative Icons. */
.brand-mark,
.auth-brand-mark,
.action-icon,
.tip-icon,
.avatar-option,
.table-avatar:not(.active),
.empty-player-plus,
.player-profile-avatar {
  animation: iconFloatV10 3.8s ease-in-out infinite alternate both !important;
  transform-origin: center;
}
.seat-gift {
  animation: giftFloatV10 3.2s ease-in-out infinite alternate both !important;
}
.home-game-btn {
  animation: gameButtonGlowV10 4.2s ease-in-out infinite alternate both !important;
}
@keyframes iconFloatV10 {
  from { filter: brightness(1); scale: 1; rotate: -1deg; }
  to { filter: brightness(1.12); scale: 1.035; rotate: 1deg; }
}
@keyframes giftFloatV10 {
  from { transform: translateY(1px) rotate(-3deg); filter: brightness(.96); }
  to { transform: translateY(-5px) rotate(4deg); filter: brightness(1.16); }
}
@keyframes gameButtonGlowV10 {
  from { box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 12px 24px rgba(0,0,0,.22), 0 0 0 rgba(246,200,95,0); }
  to { box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 16px 34px rgba(0,0,0,.3), 0 0 22px rgba(246,200,95,.17); }
}

/* Spezialanimationen sitzen exakt im Tisch und blenden weich aus. */
.table-spectacle {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  opacity: 0;
  transition: opacity .8s ease !important;
}
.table-spectacle.is-active {
  opacity: 1;
}
.table-spectacle.is-closing {
  opacity: 0 !important;
}
.table-spectacle.hidden {
  display: none !important;
}

/* Startseiten-Navigation und Footer. */
.header-home-button {
  white-space: nowrap;
}
.game-navigation-row {
  display: flex;
  justify-content: flex-start;
  margin-top: 10px;
}
.site-footer {
  width: min(1320px, calc(100% - 18px));
  margin: 16px auto 22px;
  padding: 15px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(4,17,13,.78);
  box-shadow: 0 12px 28px rgba(0,0,0,.2);
  font-size: 11px;
}
.site-footer nav {
  display: flex;
}
.site-footer button,
.auth-support-link {
  border: 0;
  padding: 0;
  color: #ffe29a;
  background: transparent;
  font: inherit;
  font-weight: 900;
  text-decoration: underline;
  cursor: pointer;
}
.auth-support-link {
  margin-top: 8px;
}

/* Supportformular. */
.support-overlay {
  position: fixed;
  inset: 0;
  z-index: 260;
  display: grid;
  place-items: center;
  padding: 18px;
}
.support-overlay.hidden {
  display: none !important;
}
.support-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(8px);
}
.support-panel {
  position: relative;
  z-index: 1;
  width: min(620px, 100%);
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  padding: 26px;
  border-radius: 22px;
  background: rgba(4,17,13,.97);
}
.support-panel h2 {
  margin: 7px 0 4px;
}
.support-panel > p {
  color: var(--muted);
}
.support-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 18px;
}
.support-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.support-form label:nth-of-type(3),
.support-form label:nth-of-type(4),
.support-form button {
  grid-column: 1 / -1;
}
.support-form input,
.support-form select,
.support-form textarea {
  width: 100%;
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  background: rgba(255,255,255,.055);
  outline: none;
  font: inherit;
  font-size: 16px;
}
.support-form textarea {
  min-height: 150px;
  resize: vertical;
}
.support-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
}

/* Tischcode-Feld passend zum Neon-Design. */
.table-code-join-form {
  position: relative;
  grid-template-columns: minmax(0,1fr) minmax(135px, auto) !important;
  padding: 10px !important;
  border: 1px solid rgba(154,255,213,.18) !important;
  border-radius: 15px !important;
  background:
    linear-gradient(135deg, rgba(11,53,40,.74), rgba(4,23,17,.92)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 12px 24px rgba(0,0,0,.18);
}
.table-code-join-form::before {
  content: "#";
  position: absolute;
  left: 22px;
  top: 50%;
  z-index: 2;
  color: #f6c85f;
  font-size: 16px;
  font-weight: 1000;
  transform: translateY(-50%);
  pointer-events: none;
}
.table-code-join-form input {
  height: 44px !important;
  padding: 0 12px 0 32px !important;
  border: 1px solid rgba(246,200,95,.32) !important;
  border-radius: 11px !important;
  color: #fff2bd !important;
  background: rgba(0,0,0,.22) !important;
  box-shadow: inset 0 0 18px rgba(0,0,0,.18);
  font-size: 16px !important;
  letter-spacing: .22em !important;
}
.table-code-join-form input::placeholder {
  color: rgba(255,242,189,.52);
}

/* Profil-Eingabefeld: Beschriftung liegt nicht mehr im Textfeld. */
.gift-chips-form {
  align-items: stretch !important;
}
.gift-chips-form label {
  display: grid !important;
  grid-template-rows: auto 44px !important;
  gap: 6px !important;
}
.gift-chips-form label > span {
  display: block;
  line-height: 1.2;
}
.gift-chips-form input {
  height: 44px !important;
  padding: 0 13px !important;
  font-size: 16px !important;
  line-height: 44px !important;
  color: #fff2bd !important;
  background: rgba(255,255,255,.065) !important;
}

/* Mehrere Einsatzstapel nach Split. */
.laid-chip-stacks {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 5px;
}
.laid-chip-stack-unit {
  display: grid;
  justify-items: center;
  gap: 2px;
}
.laid-chip-stack-total {
  color: #fff2bd;
  font-size: 9px;
  line-height: 1;
}
.table-bet-spot.split-bet .laid-chip-stack {
  width: 56px;
  transform: scale(.86);
  transform-origin: center bottom;
}

/* Solo-Chips etwas weiter rechts im Feld „Deine Hände“. */
#gameApp .solo-private-player-seat {
  grid-template-columns: 78px minmax(0,1fr) !important;
}
#gameApp .solo-seat-bet-spot {
  width: 76px !important;
  justify-self: end !important;
  transform: translateX(11px) !important;
}

/* Visueller Multiplayer-Timer – sichtbar auch ohne Einsatz. */
.multi-bet-timer {
  --timer-progress: 1;
  min-width: 145px;
  display: grid;
  gap: 5px;
  padding: 8px 10px;
  border: 1px solid rgba(255,230,145,.2);
  border-radius: 12px;
  background: rgba(0,0,0,.18);
}
.multi-bet-timer.hidden {
  display: none !important;
}
.multi-bet-timer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.multi-bet-timer-head strong {
  color: #ffe39a;
  font-size: 13px;
}
.multi-bet-timer-track {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}
.multi-bet-timer-track i {
  display: block;
  width: calc(var(--timer-progress) * 100%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ef526f, #f6c85f, #73e9bb);
  transition: width .32s linear;
}

/* Karten am privaten Tisch größer, Dealer und Spieler exakt gleich. Tischgröße bleibt unverändert. */
body.multiplayer-live .multi-dealer .playing-card,
body.multiplayer-live .multi-seat .playing-card {
  width: 62px !important;
  height: 89px !important;
  min-width: 62px !important;
}
body.multiplayer-live .multi-dealer .multi-card-row,
body.multiplayer-live .multi-seat .multi-hand-cards {
  min-height: 93px !important;
  align-items: flex-start !important;
}
body.multiplayer-live .multi-seat {
  grid-template-rows: minmax(96px, auto) 54px 24px !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  min-height: 96px !important;
}
body.multiplayer-live .multi-seat .seat-info-row {
  height: 54px !important;
  min-height: 54px !important;
}
body.multiplayer-live .multi-seat .table-avatar {
  width: 50px !important;
  height: 50px !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  min-height: 50px !important;
  margin-bottom: 24px !important;
}

/* Slots. */
.home-game-btn.slots {
  position: relative;
  color: #ffffff !important;
  background: linear-gradient(135deg, #185a72, #46318c 52%, #9d365f) !important;
  border-color: rgba(255,255,255,.22) !important;
}
.slots-app {
  gap: 18px;
}
.slots-shell {
  display: grid;
  gap: 13px;
}
.slots-machine {
  position: relative;
  overflow: hidden;
  min-height: 510px;
  padding: 30px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 22px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 40%, rgba(88,73,172,.28), transparent 38%),
    linear-gradient(145deg, rgba(8,45,37,.94), rgba(6,16,28,.98));
}
.slots-machine::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 2px solid rgba(246,200,95,.18);
  border-radius: 21px;
  pointer-events: none;
}
.slots-machine-head {
  position: relative;
  z-index: 2;
  max-width: 650px;
  text-align: center;
}
.slots-machine-head h2 {
  margin: 6px 0;
  font-size: clamp(30px, 5vw, 52px);
}
.slots-machine-head p {
  margin: 0;
  color: var(--muted);
}
.slot-reels {
  position: relative;
  z-index: 2;
  width: min(650px, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 13px;
  padding: 16px;
  border: 7px solid #5d3d22;
  border-radius: 24px;
  background: linear-gradient(145deg, #26160d, #805634);
  box-shadow: 0 24px 55px rgba(0,0,0,.38), inset 0 0 0 2px rgba(255,255,255,.05);
}
.slot-reel {
  min-height: 150px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 15px;
  color: #1b1305;
  background: linear-gradient(180deg, #fff8df, #e7d6a6);
  box-shadow: inset 0 0 22px rgba(54,28,5,.24);
}
.slot-reel span {
  font-size: clamp(58px, 10vw, 100px);
  font-weight: 1000;
  filter: drop-shadow(0 8px 8px rgba(0,0,0,.18));
}
.slot-reel.spinning span {
  animation: reelFlowV10 .42s linear infinite;
}
@keyframes reelFlowV10 {
  0% { transform: translateY(-45%) scale(.82); opacity: .35; }
  50% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(45%) scale(.82); opacity: .35; }
}
.slots-win-line {
  position: absolute;
  z-index: 3;
  left: 14%;
  right: 14%;
  top: 58%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #ffe395, transparent);
  box-shadow: 0 0 18px #f6c85f;
  pointer-events: none;
}
.slots-status {
  position: relative;
  z-index: 2;
  min-height: 25px;
  margin: 0;
  color: #fff0bc;
  font-weight: 900;
  text-align: center;
}
.slots-payouts {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.slots-payouts span {
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  font-size: 10px;
}
.slots-controls {
  display: grid;
  grid-template-columns: minmax(150px,1fr) auto minmax(260px,1fr) auto;
  align-items: center;
  gap: 12px;
}
.slots-bet-display {
  display: grid;
  gap: 2px;
  min-width: 110px;
}
.slots-bet-display span {
  color: var(--muted);
  font-size: 9px;
  text-transform: uppercase;
}
.slots-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

/* Vollständige Smartphone-Überarbeitung. */
@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }
  body {
    padding: 0 8px 86px !important;
  }
  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }

  .topbar {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 8px 0 12px !important;
    padding: 11px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    border-radius: 17px !important;
    transform: none !important;
  }
  .brand-wrap {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
  .brand-wrap h1 {
    font-size: 17px !important;
  }
  .brand-wrap p {
    font-size: 9px !important;
  }
  .header-stats {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 7px !important;
  }
  .header-stats .stat-pill {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    padding: 8px !important;
    justify-content: center !important;
    text-align: center !important;
  }
  .header-actions {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: 7px !important;
  }
  .header-actions .account-area:not(.hidden) {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 8px !important;
  }
  .account-badge {
    min-width: 0 !important;
  }
  .account-copy {
    min-width: 0 !important;
  }
  .account-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  #logoutButton {
    display: inline-flex !important;
    min-width: 96px !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .header-home-button,
  .social-toggle,
  .shop-toggle,
  .icon-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 7px 5px !important;
    justify-content: center !important;
    font-size: 11px !important;
  }

  .home-app,
  .layout,
  .multiplayer-app,
  .developer-app {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  .layout:not(.hidden) {
    display: block !important;
  }
  .home-panel {
    padding: 22px 15px !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    text-align: center;
  }
  .home-actions {
    width: 100% !important;
    grid-template-columns: 1fr !important;
  }
  .home-game-btn {
    min-height: 56px !important;
  }

  .table-shell,
  .roulette-shell,
  .slots-shell,
  .side-panel {
    width: 100% !important;
    min-width: 0 !important;
  }
  .side-panel {
    margin-top: 12px !important;
  }
  .control-deck,
  .multi-controls,
  .roulette-controls,
  .slots-controls {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  .controls-row,
  .multi-bet-controls,
  .multi-action-controls,
  .roulette-actions,
  .slots-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .chips,
  .multi-chip-palette,
  .slots-chip-palette {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    gap: 5px !important;
  }
  .slots-chip-palette {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  }
  .chip {
    width: 100% !important;
    min-width: 0 !important;
  }
  .bet-adjusters,
  .multi-bet-stepper {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 6px !important;
  }
  .action-controls,
  .multi-action-controls {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }

  .social-overlay,
  .shop-overlay,
  .player-profile-overlay,
  .daily-wheel-overlay,
  .support-overlay {
    padding: 0 !important;
    place-items: stretch !important;
  }
  .social-drawer,
  .shop-panel,
  .player-profile-panel,
  .daily-wheel-stage,
  .support-panel {
    width: 100% !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    padding: 17px 13px !important;
    overflow-y: auto !important;
  }
  .support-form {
    grid-template-columns: 1fr !important;
  }
  .support-form label,
  .support-form button {
    grid-column: 1 !important;
  }

  .gift-chips-form {
    grid-template-columns: 1fr !important;
  }
  .gift-chips-form button {
    width: 100% !important;
  }

  .table-code-join-form {
    grid-template-columns: 1fr !important;
  }
  .table-code-join-form::before {
    top: 32px !important;
  }
  .table-code-join-form button {
    width: 100% !important;
  }

  .multi-bet-timer {
    width: 100% !important;
  }

  body.multiplayer-live .multiplayer-grid {
    display: block !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-sidebar {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 12px !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-sidebar > section {
    height: auto !important;
    overflow: visible !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
    overflow-y: auto !important;
  }

  body.multiplayer-live .multi-dealer .playing-card,
  body.multiplayer-live .multi-seat .playing-card {
    width: 48px !important;
    height: 69px !important;
    min-width: 48px !important;
  }
  body.multiplayer-live .multi-dealer .multi-card-row,
  body.multiplayer-live .multi-seat .multi-hand-cards {
    min-height: 72px !important;
  }
  body.multiplayer-live .multi-seat {
    grid-template-rows: minmax(75px,auto) 46px 20px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    min-height: 75px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row {
    height: 46px !important;
    min-height: 46px !important;
  }
  body.multiplayer-live .multi-seat .table-avatar,
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    margin-bottom: 20px !important;
  }

  .slots-machine {
    min-height: 430px !important;
    padding: 21px 12px !important;
  }
  .slot-reels {
    gap: 7px !important;
    padding: 9px !important;
    border-width: 5px !important;
  }
  .slot-reel {
    min-height: 105px !important;
  }
  .slot-reel span {
    font-size: 55px !important;
  }
  .slots-win-line {
    top: 56% !important;
  }

  .site-footer {
    width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 14px !important;
    flex-direction: column !important;
    text-align: center !important;
  }

  .admin-table-wrap {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .developer-header,
  .developer-security,
  .admin-panel {
    padding: 15px !important;
  }
}

/* Kleinste Geräte. */
@media (max-width: 390px) {
  .header-actions {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  .header-actions .account-area:not(.hidden) {
    grid-template-columns: 1fr !important;
  }
  #logoutButton {
    width: 100% !important;
  }
  .chips,
  .multi-chip-palette {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }
}


/* ===== V11: Timerlogik, Tischpositionen, Shop und universelle Schließen-Buttons ===== */

/* Der obere Startseitenbutton ist breit genug für den vollständigen Text. */
.header-home-button {
  min-width: 138px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  white-space: nowrap !important;
}

/* Alle runden X-Schaltflächen werden geometrisch exakt zentriert. */
.drawer-close {
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
}
.drawer-close::before,
.drawer-close::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 19px !important;
  height: 2px !important;
  border-radius: 3px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg) !important;
  pointer-events: none;
}
.drawer-close::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}
.drawer-close.static {
  position: relative !important;
  inset: auto !important;
  flex: 0 0 42px !important;
}
#closeDailyWheel.drawer-close.static {
  position: absolute !important;
  top: 15px !important;
  right: 15px !important;
}

/* Eingesetzte Chips stehen sofort an der endgültigen Position. */
.table-chip.chip-new,
.laid-chip.chip-new {
  animation: none !important;
  opacity: 1 !important;
}
@keyframes chipPlaceStable {
  from, to {
    opacity: 1;
    transform: translateX(-50%);
  }
}

/* Solo-Chips deutlich weiter rechts und nah an der eigenen Hand. */
#gameApp .solo-private-player-seat {
  width: min(710px, 82%) !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
}
#gameApp .solo-seat-bet-spot {
  width: 72px !important;
  justify-self: end !important;
  transform: translateX(25px) !important;
}

/* Privater Tisch: Dealer, Einsatzfeld und Spieler erhalten getrennte Reihen.
   Der gelbe Einsatzbereich liegt nicht mehr über den Dealerkarten. */
body.multiplayer-live .multi-felt {
  display: grid !important;
  grid-template-rows:
    auto
    minmax(142px, auto)
    78px
    minmax(205px, auto) !important;
  align-content: start !important;
}
body.multiplayer-live .multi-table-copy {
  grid-row: 1 !important;
}
body.multiplayer-live .multi-dealer {
  grid-row: 2 !important;
  min-height: 142px !important;
  align-self: start !important;
}
body.multiplayer-live .multi-table-bet-spot {
  grid-row: 3 !important;
  position: relative !important;
  inset: auto !important;
  width: min(620px, 84%) !important;
  min-height: 66px !important;
  margin: 10px auto 0 !important;
  align-self: end !important;
  transform: none !important;
}
body.multiplayer-live .multi-seats {
  grid-row: 4 !important;
  min-height: 205px !important;
  padding-top: 20px !important;
  padding-bottom: 0 !important;
  align-self: end !important;
  align-items: end !important;
  transform: translateY(12px) !important;
}
body.multiplayer-live .multi-seat {
  min-height: 170px !important;
  align-self: end !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  align-self: end !important;
}

/* Timer ist nur sichtbar, solange der Betrachter noch keinen Einsatz gesetzt hat. */
.multi-bet-timer.inactive,
.multi-bet-timer.hidden {
  display: none !important;
}

/* Die entfernte Statuszeile im Shop erzeugt keinen Leerraum. */
#shopMessage {
  display: none !important;
}

/* Slots heißt sichtbar nur „Slots“ und trägt dasselbe Beta-Abzeichen wie Roulette. */
#playSlotsButton {
  position: relative !important;
}
#playSlotsButton > span {
  color: #ffffff !important;
}
#playSlotsButton .game-beta-badge {
  position: absolute !important;
  left: 50% !important;
  top: -11px !important;
  transform: translateX(-50%) !important;
}

/* Erweitertes Luxusspektakel – zentral im Tisch und für alle Tischteilnehmer. */
.spectacle-shockwaves,
.spectacle-comets,
.spectacle-crown {
  position: absolute;
  left: 50%;
  top: 50%;
  pointer-events: none;
}
.spectacle-shockwaves {
  z-index: 4;
  width: min(520px, 82%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-shockwaves i {
  position: absolute;
  inset: 50%;
  border: 2px solid rgba(255,231,140,.8);
  border-radius: 50%;
  box-shadow: 0 0 35px rgba(246,200,95,.3);
  transform: translate(-50%, -50%) scale(.08);
  animation: luxuryShockwave 3.8s ease-out infinite;
}
.spectacle-shockwaves i:nth-child(2) { animation-delay: .75s; }
.spectacle-shockwaves i:nth-child(3) { animation-delay: 1.5s; }
.spectacle-shockwaves i:nth-child(4) { animation-delay: 2.25s; }
.spectacle-comets {
  z-index: 6;
  width: min(540px, 86%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-comets i {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  height: 58px;
  border-radius: 999px;
  background: linear-gradient(to top, transparent, #fff0a8);
  filter: drop-shadow(0 0 10px #f6c85f);
  opacity: 0;
  transform-origin: 50% 100%;
  animation: luxuryComet 3.4s cubic-bezier(.15,.75,.2,1) infinite;
  animation-delay: var(--delay);
}
.spectacle-comets i {
  rotate: calc(var(--i) * 30deg);
}
.spectacle-crown {
  z-index: 9;
  color: rgba(255,240,168,.96);
  font-size: clamp(30px, 5vw, 56px);
  filter: drop-shadow(0 0 18px rgba(246,200,95,.75));
  transform: translate(-50%, -145px);
  animation: luxuryCrown 2.8s ease-in-out infinite alternate;
}
@keyframes luxuryShockwave {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.08); }
  18% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.28); }
}
@keyframes luxuryComet {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(calc(var(--i) * 30deg)) translateY(-55px) scaleY(.3);
  }
  22% { opacity: 1; }
  78% { opacity: .85; }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(calc(var(--i) * 30deg + 100deg)) translateY(-240px) scaleY(1.2);
  }
}
@keyframes luxuryCrown {
  from { opacity: .45; transform: translate(-50%, -139px) scale(.94) rotate(-3deg); }
  to { opacity: 1; transform: translate(-50%, -151px) scale(1.08) rotate(3deg); }
}
.table-spectacle.is-active .spectacle-rays {
  animation-duration: 6.5s !important;
}
.table-spectacle.is-active .spectacle-item {
  animation-duration: 6.7s !important;
}
.table-spectacle.is-active .spectacle-card-orbit i,
.table-spectacle.is-active .spectacle-chip-orbit i {
  animation-duration: 5.6s !important;
}

/* Handy */
@media (max-width: 760px) {
  .header-home-button {
    grid-column: span 2 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  #gameApp .solo-private-player-seat {
    width: calc(100% - 10px) !important;
    grid-template-columns: 57px minmax(0, 1fr) !important;
  }
  #gameApp .solo-seat-bet-spot {
    width: 60px !important;
    transform: translateX(13px) !important;
  }

  body.multiplayer-live .multi-felt {
    grid-template-rows:
      auto
      minmax(120px, auto)
      66px
      minmax(178px, auto) !important;
  }
  body.multiplayer-live .multi-dealer {
    min-height: 120px !important;
  }
  body.multiplayer-live .multi-table-bet-spot {
    min-height: 58px !important;
    margin-top: 7px !important;
  }
  body.multiplayer-live .multi-seats {
    min-height: 178px !important;
    padding-top: 15px !important;
    transform: translateY(8px) !important;
  }

  #closeDailyWheel.drawer-close.static {
    top: 10px !important;
    right: 10px !important;
  }
}


/* ===== V12: Bereit-Ablauf, Sitzpositionen und echte Drachenshow ===== */

/* Bereit-Button ist wieder sichtbar. */
#multiReadyButton {
  display: inline-flex !important;
  min-width: 130px;
  align-items: center;
  justify-content: center;
}

/* Spielerplätze etwas höher und mit Abstand zwischen Name und gelbem Rahmen. */
body.multiplayer-live .multi-seats {
  transform: translateY(3px) !important;
  padding-top: 14px !important;
}
body.multiplayer-live .multi-seat {
  min-height: 174px !important;
  padding-bottom: 9px !important;
}
body.multiplayer-live .multi-seat-name-label {
  min-height: 22px !important;
  margin-top: 4px !important;
  margin-bottom: 6px !important;
  padding: 0 4px 2px !important;
  line-height: 1.15 !important;
}
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  margin-bottom: 30px !important;
}

/* Das DU-Abzeichen sitzt direkt am eigenen Avatar und nicht mehr mitten im Sitz. */
.multi-seat.me::after {
  display: none !important;
  content: none !important;
}
.multi-seat .seat-profile {
  position: relative !important;
}
.seat-me-badge {
  display: none;
  position: absolute;
  right: -5px;
  bottom: -4px;
  z-index: 5;
  min-width: 25px;
  height: 17px;
  padding: 0 5px;
  place-items: center;
  border: 2px solid #163629;
  border-radius: 999px;
  color: #171006;
  background: linear-gradient(135deg, #fff1b8, #f6c85f);
  box-shadow: 0 5px 12px rgba(0,0,0,.32);
  font-size: 8px;
  font-weight: 1000;
  line-height: 1;
}
.multi-seat.me .seat-me-badge {
  display: grid;
}

/* Roulette und Slots verwenden exakt dasselbe Beta-Abzeichen. */
#playRouletteButton,
#playSlotsButton {
  position: relative !important;
  overflow: visible !important;
}
#playRouletteButton .game-beta-badge,
#playSlotsButton .game-beta-badge {
  position: absolute !important;
  left: 50% !important;
  top: -11px !important;
  transform: translateX(-50%) !important;
  padding: 3px 8px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #201004 !important;
  background: linear-gradient(135deg, #fff4b7, #ffbd45) !important;
  box-shadow: 0 6px 15px rgba(0,0,0,.28) !important;
  font-size: 8px !important;
  font-weight: 1000 !important;
  letter-spacing: .14em !important;
  line-height: 1.2 !important;
}

/* Beim Split bleibt ein gemeinsamer Chipstapel. */
.table-bet-spot.split-bet .laid-chip-stacks {
  gap: 0 !important;
}

/* Drachenshow: Ein großer Drache fliegt mehrfach über und um den Tisch. */
.table-spectacle.dragon_flight .dragon-core {
  opacity: 0 !important;
}
.dragon-sky-glow,
.dragon-flight-path,
.dragon-ground-fire {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.dragon-sky-glow {
  z-index: 3;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,154,51,.24), transparent 24%),
    radial-gradient(circle at 30% 36%, rgba(75,255,184,.16), transparent 30%),
    radial-gradient(circle at 70% 64%, rgba(255,70,40,.14), transparent 32%);
  animation: dragonSkyPulse 2.8s ease-in-out infinite alternate;
}
.dragon-flight-path {
  z-index: 12;
  overflow: visible;
}
.flying-dragon {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 140px;
  height: 110px;
  display: grid;
  place-items: center;
  transform-origin: center;
  animation: dragonTableFlight 8s cubic-bezier(.38,.02,.62,.98) both;
}
.flying-dragon > strong {
  position: relative;
  z-index: 3;
  font-size: clamp(70px, 11vw, 132px);
  line-height: 1;
  filter:
    drop-shadow(0 24px 18px rgba(0,0,0,.5))
    drop-shadow(0 0 24px rgba(255,117,54,.55));
  animation: dragonWingBeat .55s ease-in-out infinite alternate;
}
.dragon-flame {
  position: absolute;
  z-index: 4;
  right: -28px;
  top: 39px;
  font-size: clamp(32px, 5vw, 58px);
  transform-origin: left center;
  animation: dragonBreath .42s ease-in-out infinite alternate;
}
.dragon-fire-trail {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.dragon-fire-trail i {
  position: absolute;
  left: 12px;
  top: 55px;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff3ae 0 18%, #ff8b24 35%, #d82416 62%, transparent 70%);
  filter: blur(.4px) drop-shadow(0 0 8px rgba(255,100,27,.8));
  opacity: 0;
  animation: dragonTrail 1.15s ease-out infinite;
  animation-delay: calc(var(--i) * -.1s);
}
.dragon-ground-fire {
  z-index: 8;
}
.dragon-ground-fire i {
  position: absolute;
  left: calc(8% + var(--i) * 6.4%);
  bottom: 10%;
  opacity: 0;
  font-size: clamp(18px, 3vw, 34px);
  animation: groundFireRise 2.2s ease-in-out infinite;
  animation-delay: var(--delay);
}
@keyframes dragonTableFlight {
  0% {
    opacity: 0;
    transform: translate(-430px, -170px) scale(.45) rotate(-12deg);
  }
  8% {
    opacity: 1;
  }
  20% {
    transform: translate(160px, -145px) scale(.88) rotate(7deg);
  }
  36% {
    transform: translate(330px, 20px) scale(1.04) rotate(14deg);
  }
  52% {
    transform: translate(30px, 120px) scale(1.18) rotate(-6deg);
  }
  68% {
    transform: translate(-340px, 45px) scale(.98) rotate(-14deg) scaleX(-1);
  }
  82% {
    transform: translate(-120px, -105px) scale(1.08) rotate(5deg) scaleX(-1);
  }
  94% {
    opacity: 1;
    transform: translate(260px, -55px) scale(.82) rotate(10deg);
  }
  100% {
    opacity: 0;
    transform: translate(460px, -190px) scale(.42) rotate(18deg);
  }
}
@keyframes dragonWingBeat {
  from { transform: translateY(3px) rotate(-2deg) scaleY(.94); }
  to { transform: translateY(-4px) rotate(2deg) scaleY(1.06); }
}
@keyframes dragonBreath {
  from { opacity: .65; transform: scale(.78) rotate(-4deg); }
  to { opacity: 1; transform: scale(1.18) rotate(5deg); }
}
@keyframes dragonTrail {
  0% {
    opacity: .95;
    transform: translate(0,0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-105px, 22px) scale(.12);
  }
}
@keyframes dragonSkyPulse {
  from { opacity: .45; filter: saturate(.9); }
  to { opacity: 1; filter: saturate(1.35); }
}
@keyframes groundFireRise {
  0%,100% { opacity: 0; transform: translateY(10px) scale(.55); }
  30%,72% { opacity: .9; transform: translateY(-8px) scale(1.08); }
}

/* Handy: Badge und Sitzabstände bleiben sauber. */
@media (max-width: 760px) {
  body.multiplayer-live .multi-seats {
    transform: translateY(2px) !important;
    padding-top: 10px !important;
  }
  body.multiplayer-live .multi-seat {
    padding-bottom: 7px !important;
  }
  body.multiplayer-live .multi-seat-name-label {
    margin-bottom: 5px !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    margin-bottom: 25px !important;
  }
  .seat-me-badge {
    right: -4px;
    bottom: -3px;
    min-width: 23px;
    height: 16px;
  }
  .flying-dragon {
    width: 92px;
    height: 76px;
  }
  @keyframes dragonTableFlight {
    0% { opacity: 0; transform: translate(-220px,-115px) scale(.4) rotate(-12deg); }
    10% { opacity: 1; }
    25% { transform: translate(75px,-100px) scale(.78) rotate(7deg); }
    43% { transform: translate(145px,5px) scale(.94) rotate(13deg); }
    60% { transform: translate(5px,75px) scale(1.02) rotate(-5deg); }
    76% { transform: translate(-150px,20px) scale(.86) rotate(-13deg) scaleX(-1); }
    92% { opacity: 1; transform: translate(100px,-55px) scale(.7) rotate(9deg); }
    100% { opacity: 0; transform: translate(230px,-120px) scale(.35) rotate(17deg); }
  }
}


/* ===== V13: drei Spieler, saubere Sitzbereiche und vollflächige Luxusshows ===== */

/* Maximal drei Sitze mit ausreichender Breite. */
body.multiplayer-live .multi-seats {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: min(760px, 94%) !important;
  min-height: 188px !important;
  margin: 0 auto !important;
  padding: 24px 0 8px !important;
  transform: none !important;
  align-self: end !important;
  align-items: end !important;
}

/* Die gelbe Umrandung liegt ausschließlich um den Kartenbereich.
   Der Sitz selbst reicht nicht mehr nach oben zum Dealer. */
body.multiplayer-live .multi-seat {
  min-height: 162px !important;
  padding: 0 7px 8px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  grid-template-rows: 92px 48px 22px !important;
  align-self: end !important;
}
body.multiplayer-live .multi-seat.active {
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  width: 100% !important;
  min-height: 92px !important;
  padding: 7px 6px 5px !important;
  border: 1px solid rgba(246,200,95,.24) !important;
  border-radius: 15px !important;
  background: rgba(2,22,15,.28) !important;
  box-shadow: inset 0 0 18px rgba(0,0,0,.13) !important;
}
body.multiplayer-live .multi-seat.active .multi-hands {
  border-color: rgba(246,200,95,.86) !important;
  box-shadow:
    0 0 0 3px rgba(246,200,95,.08),
    0 0 25px rgba(246,200,95,.14),
    inset 0 0 18px rgba(0,0,0,.16) !important;
}
body.multiplayer-live .multi-seat.me .multi-hands {
  border-color: rgba(115,233,187,.38) !important;
}
body.multiplayer-live .multi-seat .seat-info-row {
  height: 48px !important;
  min-height: 48px !important;
  align-items: center !important;
}
body.multiplayer-live .multi-seat .table-avatar {
  width: 46px !important;
  height: 46px !important;
}
body.multiplayer-live .multi-seat-name-label {
  height: 22px !important;
  min-height: 22px !important;
  margin: 0 !important;
  padding: 2px 4px 0 !important;
  align-items: flex-start !important;
}

/* Opene Sitze liegen auf derselben unteren Grundlinie. */
body.multiplayer-live .multi-seat-empty.empty-player-seat {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  margin: 0 auto 24px !important;
  align-self: end !important;
}

/* Dealer und Spielerbereiche sind klar getrennt. */
body.multiplayer-live .multi-felt {
  grid-template-rows:
    auto
    minmax(135px, auto)
    70px
    minmax(200px, auto) !important;
}
body.multiplayer-live .multi-dealer {
  min-height: 135px !important;
  margin-bottom: 0 !important;
  z-index: 3 !important;
}
body.multiplayer-live .multi-table-bet-spot {
  min-height: 60px !important;
  margin: 5px auto 0 !important;
  z-index: 2 !important;
}
body.multiplayer-live .multi-seats {
  z-index: 1 !important;
}

/* Geschenksymbole werden nicht mehr direkt am Spieler oder an den Chips gezeigt. */
.seat-gifts,
.dealer-gifts {
  display: none !important;
}

/* Bereit-Status statt automatisch startendem Timer. */
.ready-wait-timer .multi-bet-timer-head > span {
  font-size: 0 !important;
}
.ready-wait-timer .multi-bet-timer-head > span::after {
  content: "Ready" !important;
  font-size: 9px !important;
}

/* Luxusshow nimmt den gesamten sichtbaren Tisch ein. */
body.multiplayer-live .multi-felt > .table-spectacle {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 500 !important;
  overflow: hidden !important;
  border-radius: inherit !important;
  pointer-events: none !important;
  isolation: isolate;
}
.luxury-curtain,
.luxury-rays,
.luxury-rings,
.luxury-burst,
.luxury-stars,
.dragon-world,
.firework-world,
.explosion-world,
.gold-world {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.luxury-curtain {
  z-index: 1;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,244,181,.18), transparent 24%),
    radial-gradient(circle at 50% 50%, transparent 25%, rgba(0,0,0,.72) 100%);
  animation: luxuryCurtainV13 7s ease both;
}
.luxury-rays {
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 125%;
  height: 125%;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255,229,137,.2) 0 4deg,
    transparent 4deg 13deg
  );
  mix-blend-mode: screen;
  transform: translate(-50%,-50%);
  animation: luxuryRaysV13 7s linear both;
}
.luxury-rings {
  z-index: 3;
  display: grid;
  place-items: center;
}
.luxury-rings i {
  position: absolute;
  width: 18%;
  aspect-ratio: 1;
  border: 2px solid rgba(255,232,145,.8);
  border-radius: 50%;
  box-shadow: 0 0 32px rgba(246,200,95,.3);
  animation: luxuryRingV13 3.2s ease-out infinite;
}
.luxury-rings i:nth-child(2) { animation-delay: .7s; }
.luxury-rings i:nth-child(3) { animation-delay: 1.4s; }
.luxury-rings i:nth-child(4) { animation-delay: 2.1s; }

.luxury-burst {
  z-index: 7;
  left: 50%;
  top: 50%;
  width: 70%;
  height: 70%;
  transform: translate(-50%,-50%);
}
.luxury-burst i {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff0a3;
  box-shadow: 0 0 14px #f6c85f;
  animation: luxuryParticleV13 2.7s ease-out infinite;
  animation-delay: var(--d);
  transform: rotate(var(--a)) translateX(25px);
}
.luxury-stars {
  z-index: 8;
  left: 50%;
  top: 50%;
  width: 82%;
  height: 82%;
  transform: translate(-50%,-50%);
}
.luxury-stars i {
  position: absolute;
  left: 50%;
  top: 50%;
  color: #fff1a8;
  font-style: normal;
  font-size: 18px;
  opacity: 0;
  animation: luxuryStarV13 3.5s ease-in-out infinite;
  animation-delay: var(--d);
  transform: rotate(var(--a)) translateX(80px);
}
.luxury-title {
  position: absolute;
  left: 50%;
  bottom: 8%;
  z-index: 30;
  display: grid;
  justify-items: center;
  color: #fff2bd;
  text-shadow: 0 4px 14px rgba(0,0,0,.75);
  transform: translateX(-50%);
  animation: luxuryTitleV13 1.3s ease both;
}
.luxury-title small {
  letter-spacing: .22em;
  font-weight: 1000;
}
.luxury-title strong {
  font-size: 42px;
}

/* Drache fliegt zweimal groß über die gesamte Tischfläche. */
.dragon-world {
  z-index: 20;
}
.dragon-orbit {
  position: absolute;
  inset: 0;
}
.dragon-beast {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 170px;
  height: 130px;
  display: grid;
  place-items: center;
  animation: dragonFullTableV13 8.7s cubic-bezier(.34,.05,.66,.95) both;
}
.dragon-beast strong {
  z-index: 3;
  font-size: clamp(90px, 13vw, 160px);
  line-height: 1;
  filter:
    drop-shadow(0 28px 22px rgba(0,0,0,.55))
    drop-shadow(0 0 34px rgba(255,106,42,.72));
  animation: dragonBeatV13 .52s ease-in-out infinite alternate;
}
.dragon-breath {
  position: absolute;
  z-index: 4;
  right: -118px;
  top: 38%;
  font-size: clamp(35px, 6vw, 72px);
  white-space: nowrap;
  transform-origin: left center;
  animation: dragonBreathV13 .38s ease-in-out infinite alternate;
}
.dragon-tail-fire i {
  position: absolute;
  left: 5px;
  top: 55%;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff6b7 0 18%, #ff8b24 32%, #d81f14 62%, transparent 70%);
  opacity: 0;
  animation: dragonTrailV13 1.2s ease-out infinite;
  animation-delay: calc(var(--i) * -.09s);
}
.dragon-fire-ring {
  position: absolute;
  inset: 0;
  z-index: 11;
}
.dragon-fire-ring i {
  position: absolute;
  left: calc(4% + var(--i) * 5.2%);
  bottom: 7%;
  opacity: 0;
  font-style: normal;
  font-size: 28px;
  animation: dragonGroundV13 2.4s ease-in-out infinite;
  animation-delay: calc(var(--i) * .08s);
}
.dragon-cloud {
  position: absolute;
  width: 45%;
  height: 36%;
  border-radius: 50%;
  filter: blur(25px);
  opacity: .35;
}
.dragon-cloud.cloud-a {
  left: -8%;
  top: 5%;
  background: rgba(255,95,38,.42);
}
.dragon-cloud.cloud-b {
  right: -8%;
  bottom: 4%;
  background: rgba(64,255,178,.28);
}

/* Feuerwerk füllt den ganzen Tisch. */
.firework-bloom {
  position: absolute;
  left: calc(12% + var(--i) * 12%);
  top: calc(20% + (var(--i) % 3) * 22%);
  width: 1px;
  height: 1px;
  animation: fireworkBloomV13 2.6s ease-out infinite;
  animation-delay: calc(var(--i) * .28s);
}
.firework-bloom i {
  position: absolute;
  width: 5px;
  height: 48px;
  border-radius: 999px;
  background: linear-gradient(to top, transparent, #fff1a8);
  transform-origin: 50% 100%;
  transform: rotate(calc(var(--j) * 20deg)) translateY(-10px);
  animation: fireworkRayV13 2.6s ease-out infinite;
  animation-delay: calc(var(--i) * .28s);
}

/* Explosion und Goldregen. */
.explosion-core,
.gold-crown {
  position: absolute;
  left: 50%;
  top: 46%;
  z-index: 21;
  font-size: clamp(90px, 15vw, 170px);
  transform: translate(-50%,-50%);
  animation: heroPulseV13 1s ease-in-out infinite alternate;
}
.explosion-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18%;
  aspect-ratio: 1;
  border: 9px solid rgba(255,126,42,.7);
  border-radius: 50%;
  transform: translate(-50%,-50%);
  animation: explosionRingV13 2.2s ease-out infinite;
}
.explosion-ring.ring-b { animation-delay: 1.1s; }
.explosion-smoke i,
.gold-rain i {
  position: absolute;
  left: calc(3% + var(--i) * 5.5%);
  top: -10%;
  font-style: normal;
  animation: rainV13 3.2s linear infinite;
  animation-delay: calc(var(--i) * -.11s);
}
.gold-rain i {
  color: #ffd75d;
  font-size: 18px;
  text-shadow: 0 0 10px #f6c85f;
}
.explosion-smoke i {
  font-size: 35px;
  opacity: .5;
}

@keyframes luxuryCurtainV13 {
  0%,100% { opacity: 0; }
  12%,84% { opacity: 1; }
}
@keyframes luxuryRaysV13 {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(-35deg) scale(.5); }
  16% { opacity: 1; }
  86% { opacity: .7; }
  100% { opacity: 0; transform: translate(-50%,-50%) rotate(150deg) scale(1.25); }
}
@keyframes luxuryRingV13 {
  0% { opacity: 0; transform: scale(.15); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: scale(5); }
}
@keyframes luxuryParticleV13 {
  0% { opacity: 0; transform: rotate(var(--a)) translateX(20px) scale(.2); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: rotate(var(--a)) translateX(310px) scale(1.2); }
}
@keyframes luxuryStarV13 {
  0%,100% { opacity: 0; }
  30%,70% { opacity: 1; }
  100% { transform: rotate(var(--a)) translateX(290px) rotate(180deg); }
}
@keyframes luxuryTitleV13 {
  from { opacity: 0; transform: translate(-50%,20px) scale(.8); }
  to { opacity: 1; transform: translate(-50%,0) scale(1); }
}
@keyframes dragonFullTableV13 {
  0% { opacity: 0; transform: translate(-520px,-170px) scale(.4) rotate(-12deg); }
  7% { opacity: 1; }
  20% { transform: translate(180px,-150px) scale(.92) rotate(7deg); }
  34% { transform: translate(430px,5px) scale(1.12) rotate(15deg); }
  48% { transform: translate(70px,135px) scale(1.28) rotate(-5deg); }
  62% { transform: translate(-450px,60px) scale(1.05) rotate(-15deg) scaleX(-1); }
  76% { transform: translate(-80px,-125px) scale(1.18) rotate(6deg) scaleX(-1); }
  91% { opacity: 1; transform: translate(360px,-45px) scale(.85) rotate(11deg); }
  100% { opacity: 0; transform: translate(560px,-190px) scale(.38) rotate(18deg); }
}
@keyframes dragonBeatV13 {
  from { transform: translateY(4px) rotate(-2deg) scaleY(.94); }
  to { transform: translateY(-5px) rotate(2deg) scaleY(1.07); }
}
@keyframes dragonBreathV13 {
  from { opacity: .55; transform: scaleX(.65) scaleY(.8); }
  to { opacity: 1; transform: scaleX(1.3) scaleY(1.12); }
}
@keyframes dragonTrailV13 {
  0% { opacity: 1; transform: translate(0,0) scale(1); }
  100% { opacity: 0; transform: translate(-125px,28px) scale(.1); }
}
@keyframes dragonGroundV13 {
  0%,100% { opacity: 0; transform: translateY(14px) scale(.55); }
  32%,72% { opacity: 1; transform: translateY(-8px) scale(1.08); }
}
@keyframes fireworkBloomV13 {
  0%,100% { opacity: 0; transform: scale(.3); }
  20%,72% { opacity: 1; transform: scale(1); }
}
@keyframes fireworkRayV13 {
  0% { opacity: 0; height: 8px; }
  25% { opacity: 1; height: 58px; }
  100% { opacity: 0; height: 84px; transform: rotate(calc(var(--j) * 20deg)) translateY(-82px); }
}
@keyframes heroPulseV13 {
  from { transform: translate(-50%,-50%) scale(.86) rotate(-3deg); }
  to { transform: translate(-50%,-50%) scale(1.13) rotate(3deg); }
}
@keyframes explosionRingV13 {
  0% { opacity: 1; transform: translate(-50%,-50%) scale(.2); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(5.4); }
}
@keyframes rainV13 {
  from { transform: translateY(-25px) rotate(0deg); opacity: 0; }
  12% { opacity: 1; }
  to { transform: translateY(560px) rotate(540deg); opacity: 0; }
}

/* Handy */
@media (max-width: 760px) {
  body.multiplayer-live .multi-seats {
    width: 98% !important;
    min-height: 165px !important;
    padding-top: 18px !important;
    gap: 4px !important;
  }
  body.multiplayer-live .multi-seat {
    min-height: 145px !important;
    grid-template-rows: 79px 44px 20px !important;
    padding: 0 3px 5px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    min-height: 79px !important;
    padding: 4px 2px !important;
    border-radius: 11px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row {
    height: 44px !important;
    min-height: 44px !important;
  }
  body.multiplayer-live .multi-seat .table-avatar,
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  body.multiplayer-live .multi-seat-name-label {
    height: 20px !important;
    min-height: 20px !important;
    font-size: 9px !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    margin-bottom: 22px !important;
  }
  .dragon-beast {
    width: 95px;
    height: 78px;
  }
  .dragon-beast strong {
    font-size: 82px;
  }
  @keyframes dragonFullTableV13 {
    0% { opacity: 0; transform: translate(-250px,-100px) scale(.35) rotate(-12deg); }
    8% { opacity: 1; }
    24% { transform: translate(85px,-95px) scale(.8) rotate(7deg); }
    42% { transform: translate(175px,5px) scale(.95) rotate(14deg); }
    58% { transform: translate(10px,80px) scale(1.02) rotate(-5deg); }
    74% { transform: translate(-180px,25px) scale(.85) rotate(-14deg) scaleX(-1); }
    90% { opacity: 1; transform: translate(130px,-50px) scale(.7) rotate(10deg); }
    100% { opacity: 0; transform: translate(260px,-110px) scale(.3) rotate(18deg); }
  }
}


/* ===== V14: Originale Luxusanimationen aus V6 ===== */
/* Außergewöhnliche Luxusanimation – immer relativ zur sichtbaren Tischfläche. */
.table-felt,
.multi-felt {
  position: relative !important;
  isolation: isolate;
}
.table-spectacle {
  position: absolute !important;
  inset: 0 !important;
  z-index: 80 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: inherit;
  pointer-events: none !important;
  opacity: 0;
}
.table-spectacle.hidden {
  display: none !important;
}
.table-spectacle.is-active {
  opacity: 1;
}
.spectacle-vignette,
.spectacle-rays,
.spectacle-halo,
.spectacle-sparks,
.spectacle-card-orbit,
.spectacle-chip-orbit,
.spectacle-pedestal,
.spectacle-item-core {
  position: absolute;
  left: 50%;
  top: 50%;
  pointer-events: none;
}
.spectacle-vignette {
  inset: 0;
  left: 0;
  top: 0;
  background:
    radial-gradient(circle at 50% 52%, rgba(255,246,185,.12), transparent 24%),
    radial-gradient(circle at 50% 50%, transparent 28%, rgba(0,0,0,.58) 100%);
  animation: spectacleVignette 4.4s ease both;
}
.spectacle-rays {
  width: min(610px, 88%);
  aspect-ratio: 1;
  background: repeating-conic-gradient(from 0deg, rgba(255,226,116,.22) 0 5deg, transparent 5deg 15deg);
  border-radius: 50%;
  mix-blend-mode: screen;
  transform: translate(-50%, -50%) scale(.35);
  animation: spectacleRays 4.2s cubic-bezier(.16,.8,.18,1) both;
}
.spectacle-halo {
  width: min(430px, 70%);
  aspect-ratio: 1;
  border: 2px solid rgba(255,232,145,.74);
  border-radius: 50%;
  box-shadow: 0 0 28px rgba(255,213,84,.28), inset 0 0 25px rgba(255,227,126,.13);
  transform: translate(-50%, -50%) scale(.2);
  animation: spectacleHalo 3.7s ease-out both;
}
.spectacle-halo.halo-two {
  width: min(350px, 58%);
  border-style: dashed;
  animation-delay: .14s;
}
.spectacle-halo.halo-three {
  width: min(270px, 46%);
  border-color: rgba(104,255,207,.72);
  animation-delay: .28s;
}
.spectacle-item-core {
  z-index: 8;
  width: min(230px, 42%);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
}
.spectacle-item-glow {
  position: absolute;
  inset: 6%;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,248,194,.52), rgba(246,200,95,.13) 52%, transparent 72%);
  filter: blur(8px);
  animation: spectacleCoreGlow 1.05s ease-in-out infinite alternate;
}
.spectacle-item {
  position: relative !important;
  z-index: 2;
  font-size: clamp(72px, 11vw, 136px) !important;
  filter: drop-shadow(0 26px 20px rgba(0,0,0,.45)) drop-shadow(0 0 24px rgba(255,226,126,.32));
  animation: spectacleHero 4.25s cubic-bezier(.14,.8,.18,1) both !important;
}
.spectacle-pedestal {
  z-index: 4;
  width: min(250px, 42%);
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,231,139,.42), rgba(255,207,64,.06) 62%, transparent 72%);
  filter: blur(2px);
  transform: translate(-50%, 74px) scale(.4);
  animation: spectaclePedestal 3.8s ease both;
}
.spectacle-sparks {
  z-index: 7;
  width: min(480px, 76%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-sparks i {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff1a8;
  box-shadow: 0 0 12px #f6c85f;
  opacity: 0;
  transform:
    rotate(var(--angle))
    translateX(0)
    rotate(calc(var(--angle) * -1));
  animation: spectacleSpark 2.15s ease-out var(--delay) both;
}
.spectacle-card-orbit,
.spectacle-chip-orbit {
  z-index: 5;
  width: min(430px, 70%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.spectacle-card-orbit i {
  position: absolute;
  left: calc(50% - 18px);
  top: calc(50% - 25px);
  width: 36px;
  height: 50px;
  border-radius: 7px;
  background:
    linear-gradient(135deg, transparent 47%, rgba(188,34,62,.9) 48% 52%, transparent 53%),
    #fff9e9;
  box-shadow: 0 12px 22px rgba(0,0,0,.32);
  opacity: 0;
  animation: spectacleCardOrbit 3.4s cubic-bezier(.15,.8,.2,1) var(--delay) both;
  transform:
    rotate(calc(var(--i) * 45deg))
    translateY(-24px)
    rotate(calc(var(--i) * -45deg));
}
.spectacle-chip-orbit i {
  position: absolute;
  left: calc(50% - 14px);
  top: calc(50% - 14px);
  width: 28px;
  height: 28px;
  border: 4px dashed rgba(255,255,255,.84);
  border-radius: 50%;
  background: radial-gradient(circle, #fff0a8 0 38%, #b97618 40% 61%, #f5c95f 63%);
  box-shadow: 0 9px 18px rgba(0,0,0,.3);
  opacity: 0;
  animation: spectacleChipOrbit 3.35s cubic-bezier(.18,.78,.2,1) var(--delay) both;
  transform:
    rotate(calc(var(--i) * 30deg))
    translateY(-15px)
    rotate(calc(var(--i) * -30deg));
}
.table-spectacle.firework .spectacle-vignette {
  background:
    radial-gradient(circle at 50% 50%, rgba(255,184,226,.18), transparent 26%),
    radial-gradient(circle at 50% 50%, transparent 30%, rgba(15,0,20,.68) 100%);
}
.table-spectacle.firework .spectacle-halo {
  border-color: rgba(255,160,222,.8);
  box-shadow: 0 0 32px rgba(255,86,196,.34);
}
.table-spectacle.explosion .spectacle-vignette {
  background:
    radial-gradient(circle at 50% 50%, rgba(255,107,43,.25), transparent 28%),
    radial-gradient(circle at 50% 50%, transparent 28%, rgba(25,4,0,.72) 100%);
}
.table-spectacle.explosion .spectacle-rays {
  background: repeating-conic-gradient(from 0deg, rgba(255,117,40,.3) 0 6deg, transparent 6deg 14deg);
}
.table-spectacle.gold_burst .spectacle-rays {
  background: repeating-conic-gradient(from 0deg, rgba(255,226,116,.28) 0 5deg, transparent 5deg 15deg);
}
@keyframes spectacleVignette {
  0%,100% { opacity: 0; }
  14%,78% { opacity: 1; }
}
@keyframes spectacleRays {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.28) rotate(-40deg); }
  26% { opacity: .9; }
  76% { opacity: .62; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.2) rotate(100deg); }
}
@keyframes spectacleHalo {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.15) rotate(-30deg); }
  28% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.35) rotate(110deg); }
}
@keyframes spectacleCoreGlow {
  from { transform: scale(.9); opacity: .7; }
  to { transform: scale(1.12); opacity: 1; }
}
@keyframes spectacleHero {
  0% { opacity: 0; transform: translateY(-115px) scale(.45) rotate(-16deg); }
  23% { opacity: 1; transform: translateY(5px) scale(1.18) rotate(5deg); }
  42% { transform: translateY(-12px) scale(.98) rotate(-3deg); }
  60% { transform: translateY(0) scale(1.06) rotate(2deg); }
  82% { opacity: 1; transform: translateY(-4px) scale(1); }
  100% { opacity: 0; transform: translateY(35px) scale(.78) rotate(0); }
}
@keyframes spectaclePedestal {
  0% { opacity: 0; transform: translate(-50%,74px) scale(.25); }
  28%,76% { opacity: 1; transform: translate(-50%,74px) scale(1); }
  100% { opacity: 0; transform: translate(-50%,74px) scale(1.3); }
}
@keyframes spectacleSpark {
  0% { opacity: 0; transform: rotate(var(--angle)) translateX(20px) scale(.25); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: rotate(var(--angle)) translateX(195px) scale(1.35); }
}
@keyframes spectacleCardOrbit {
  0% { opacity: 0; transform: rotate(calc(var(--i) * 45deg)) translateY(-25px) scale(.35); }
  28% { opacity: 1; }
  74% { opacity: .95; }
  100% { opacity: 0; transform: rotate(calc(var(--i) * 45deg + 145deg)) translateY(-175px) scale(.9); }
}
@keyframes spectacleChipOrbit {
  0% { opacity: 0; transform: rotate(calc(var(--i) * 30deg)) translateY(-12px) scale(.45); }
  24% { opacity: 1; }
  100% { opacity: 0; transform: rotate(calc(var(--i) * 30deg - 120deg)) translateY(-148px) scale(1.05); }
}
.table-luxury-active .multi-felt,
.table-luxury-active .table-felt {
  animation: feltLuxuryPulseV6 4.4s ease-in-out !important;
}
@keyframes feltLuxuryPulseV6 {
  0%,100% { filter: none; }
  24% { filter: brightness(1.18) saturate(1.18); }
  48% { filter: brightness(.96) saturate(1.3); }
  72% { filter: brightness(1.12); }
}


/* ===== V14: Profil-Freundschaft, Goldverwaltung und leere Social-Bereiche ===== */

.profile-friend-actions {
  display: flex;
  margin: 2px 0 12px;
}
.profile-friend-actions .wide {
  width: 100%;
}
.profile-friend-actions .hidden {
  display: none !important;
}

#tableInvitationsSection.hidden,
#friendRequestsSection.hidden {
  display: none !important;
}

.admin-table {
  min-width: 1780px !important;
}
.admin-gold-total {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #ffe28a;
  font-weight: 1000;
}
.admin-gold-tools {
  min-width: 220px;
  display: grid;
  grid-template-columns: minmax(72px, 1fr) auto auto;
  gap: 6px;
  align-items: center;
}
.admin-gold-tools input {
  width: 100%;
  min-width: 72px;
  height: 38px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--text);
  background: rgba(255,255,255,.05);
  font-size: 14px;
}

@media (max-width: 760px) {
  .profile-friend-actions {
    margin-bottom: 10px;
  }
}


/* ===== V15: synchronisierte Geschenke, sichere Kartenanimationen ===== */

/* Geschenke stehen wieder sichtbar direkt neben dem Profilbild. */
body.multiplayer-live .seat-profile {
  position: relative !important;
}
body.multiplayer-live .seat-gifts {
  position: absolute !important;
  left: calc(100% + 3px) !important;
  bottom: 0 !important;
  z-index: 18 !important;
  width: 72px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 3px !important;
  pointer-events: none !important;
}
body.multiplayer-live .dealer-persona {
  position: relative !important;
}
body.multiplayer-live .dealer-gifts {
  position: absolute !important;
  left: calc(100% + 5px) !important;
  bottom: 2px !important;
  z-index: 18 !important;
  width: 72px !important;
  display: flex !important;
  gap: 3px !important;
  pointer-events: none !important;
}
body.multiplayer-live .seat-gift {
  width: 29px !important;
  height: 29px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  font-size: 17px !important;
}

/* V6-Luxusshow zuverlässig über dem gesamten privaten Tisch. */
body.multiplayer-live .multi-felt > .table-spectacle {
  position: absolute !important;
  inset: 0 !important;
  z-index: 600 !important;
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: inherit !important;
  pointer-events: none !important;
}
body.multiplayer-live .multi-felt > .table-spectacle.hidden {
  display: none !important;
}
body.multiplayer-live .multi-felt > .table-spectacle.is-active {
  display: grid !important;
  opacity: 1 !important;
}

/* Jede Karten-ID erhält höchstens eine Eintrittsanimation. */
.playing-card.card-enter {
  animation-iteration-count: 1 !important;
}
.playing-card:not(.card-enter):not(.card-flip-reveal) {
  animation-name: none !important;
}

/* Die Dealerkarte wird beim schrittweisen Ziehen klar einzeln sichtbar. */
body.multiplayer-live .multi-dealer .playing-card.card-enter {
  z-index: 20;
  animation-duration: .62s !important;
}

/* Drei Sitze: eigenes Profil mittig, zwei Mitspieler links und rechts. */
body.multiplayer-live .multi-seats {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 760px) {
  body.multiplayer-live .seat-gifts,
  body.multiplayer-live .dealer-gifts {
    width: 55px !important;
  }
  body.multiplayer-live .seat-gift {
    width: 24px !important;
    height: 24px !important;
    font-size: 14px !important;
  }
}


/* ===== V16: Developer-Blackjack-Labor und unbegrenzte Einsätze ===== */

.developer-card-lab {
  margin: 12px 0;
  padding: 20px;
  border-radius: 20px;
}
.developer-card-lab-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.developer-card-lab-head h2 {
  margin: 5px 0;
}
.developer-card-lab-head p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
}
.developer-card-lab-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.developer-test-controls {
  margin: 16px 0 12px;
  display: grid;
  grid-template-columns: 180px 180px minmax(260px, 1fr);
  gap: 10px;
  align-items: end;
}
.developer-test-controls label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.developer-test-controls select,
.developer-test-controls input {
  width: 100%;
  height: 42px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--text);
  background: rgba(255,255,255,.05);
  font-size: 15px;
}
.developer-test-result {
  min-height: 42px;
  padding: 8px 12px;
  display: grid;
  align-content: center;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--muted);
  background: rgba(0,0,0,.16);
}
.developer-test-result strong,
.developer-test-result span {
  display: block;
}
.developer-test-result.blackjack {
  color: #221500;
  border-color: transparent;
  background: linear-gradient(135deg, #fff0aa, #f6c85f);
  box-shadow: 0 0 24px rgba(246,200,95,.2);
}
.developer-test-rim {
  padding: 7px;
  border-radius: 26px 26px 17px 17px;
  background: linear-gradient(145deg, #704826, #21130b 55%, #855a35);
  box-shadow: 0 22px 48px rgba(0,0,0,.3);
}
.developer-test-felt {
  min-height: 470px;
  padding: 22px;
  display: grid;
  grid-template-rows: minmax(175px, auto) auto minmax(175px, auto);
  gap: 8px;
  border-radius: 20px 20px 11px 11px;
  background:
    radial-gradient(circle at 50% 45%, #176244 0, #0c412e 43%, #072b20 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.45);
}
.developer-test-hand {
  width: min(900px, 100%);
  margin: 0 auto;
  display: grid;
  align-content: start;
}
.developer-test-hand-head {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  margin-bottom: 7px;
  color: rgba(240,255,248,.78);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.developer-test-hand-head strong {
  min-width: 39px;
  min-height: 29px;
  padding: 5px 8px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #092117;
  background: var(--mint);
}
.developer-test-hand-head strong.blackjack {
  min-width: 92px;
  color: #211400;
  background: linear-gradient(135deg, #fff0aa, #f6c85f);
}
.developer-test-hand-head strong.bust {
  color: #fff;
  background: #b92d47;
}
.developer-test-cards {
  min-height: 118px;
  padding: 8px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 15px;
  background: rgba(0,0,0,.12);
}
.developer-test-empty {
  margin: auto;
  color: rgba(230,255,244,.38);
  font-size: 11px;
}
.developer-test-table-copy {
  color: rgba(221,255,241,.35);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .15em;
  text-align: center;
}
.developer-test-card {
  position: relative;
  width: 72px;
  height: 104px;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 10px;
  color: #14100a;
  background: #fffaf0;
  box-shadow: 0 10px 20px rgba(0,0,0,.28);
}
.developer-test-card.red {
  color: #bd2942;
}
.developer-test-card > strong {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 35px;
}
.developer-test-card-corner {
  position: absolute;
  left: 6px;
  top: 5px;
  z-index: 2;
  display: grid;
  justify-items: center;
  line-height: .95;
  font-size: 13px;
}
.developer-test-card-corner i {
  font-style: normal;
}
.developer-test-card-corner.bottom {
  left: auto;
  right: 6px;
  top: auto;
  bottom: 5px;
  transform: rotate(180deg);
}
.developer-card-deck {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(13, minmax(42px, 1fr));
  gap: 5px;
}
.developer-deck-card {
  min-width: 0;
  min-height: 54px;
  padding: 5px 2px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 8px;
  color: #171006;
  background: #fffaf0;
  box-shadow: 0 5px 12px rgba(0,0,0,.18);
  cursor: pointer;
}
.developer-deck-card.red {
  color: #bc2941;
}
.developer-deck-card b {
  font-size: 13px;
}
.developer-deck-card span {
  font-size: 18px;
}

@media (max-width: 900px) {
  .developer-card-lab-head {
    flex-direction: column;
  }
  .developer-card-lab-actions {
    justify-content: flex-start;
  }
  .developer-test-controls {
    grid-template-columns: 1fr 1fr;
  }
  .developer-test-result {
    grid-column: 1 / -1;
  }
  .developer-card-deck {
    grid-template-columns: repeat(7, minmax(38px, 1fr));
  }
}
@media (max-width: 560px) {
  .developer-card-lab {
    padding: 13px;
  }
  .developer-test-controls {
    grid-template-columns: 1fr;
  }
  .developer-test-result {
    grid-column: 1;
  }
  .developer-test-felt {
    min-height: 420px;
    padding: 14px 7px;
  }
  .developer-test-card {
    width: 55px;
    height: 80px;
  }
  .developer-card-deck {
    grid-template-columns: repeat(4, minmax(44px, 1fr));
  }
}


/* ===== V21: echte Einmal-Animation für neu gezogene Karten ===== */
/* Alte CSS-Deal-Animationen sind vollständig deaktiviert. Die Bewegung wird
   einmalig per Web Animations API gestartet und kann nicht durch Re-Rendering
   oder erneutes Anhängen eines DOM-Knotens neu anlaufen. */
.playing-card.dealt,
.playing-card.card-enter,
.playing-card.face-down.card-enter {
  animation: none !important;
}
.playing-card.card-entry-running {
  pointer-events: none;
}
.playing-card.card-entry-running .card-face {
  box-shadow:
    0 18px 34px rgba(0,0,0,.5),
    0 0 18px rgba(88,190,255,.12),
    inset 0 0 0 1px rgba(255,255,255,.14);
}

/* ===== V22: Solo-Kartenhöhe, dauerhafte Startseite und gemeinsame Luxusshows ===== */

/* Dealer- und Spielerkarten im normalen Blackjack sind auf Desktop und Mobil
   exakt gleich hoch und breit. Auch die Kartenzeilen reservieren dieselbe Höhe. */
#gameApp .solo-private-felt {
  --solo-card-width: 74px;
  --solo-card-height: 106px;
  --solo-card-row-height: 112px;
}
#gameApp .solo-private-dealer-seat .playing-card,
#gameApp .solo-private-player-seat .playing-card {
  --card-w: var(--solo-card-width) !important;
  width: var(--solo-card-width) !important;
  min-width: var(--solo-card-width) !important;
  max-width: var(--solo-card-width) !important;
  height: var(--solo-card-height) !important;
  min-height: var(--solo-card-height) !important;
  max-height: var(--solo-card-height) !important;
  flex-basis: var(--solo-card-width) !important;
}
#gameApp .solo-private-dealer-seat .card-row,
#gameApp .solo-private-player-seat .hand-cards {
  height: var(--solo-card-row-height) !important;
  min-height: var(--solo-card-row-height) !important;
  max-height: var(--solo-card-row-height) !important;
  align-items: flex-start !important;
}
#gameApp .solo-private-dealer-seat .card-face,
#gameApp .solo-private-player-seat .card-face {
  width: 100% !important;
  height: 100% !important;
}

/* Der globale Startseiten-Button bleibt in jeder Spieleransicht sichtbar. */
#homeNavigationButton {
  min-width: 108px;
  justify-content: center;
}

/* Gemeinsame Luxusanimationen: Die Animation liegt im synchronisierten
   privaten Tisch und ist deshalb bei jedem verbundenen Spieler sichtbar. */
body.multiplayer-live .multi-felt > .table-spectacle.luxury-spectacle {
  z-index: 900 !important;
  opacity: 0;
  transition: opacity .22s ease;
}
body.multiplayer-live .multi-felt > .table-spectacle.luxury-spectacle.is-active {
  opacity: 1 !important;
}
.luxury-spectacle .luxury-title {
  width: min(620px, 88%);
  bottom: 5%;
  gap: 3px;
  text-align: center;
}
.luxury-spectacle .luxury-title small {
  color: rgba(235,246,255,.75);
  font-size: clamp(9px, 1.3vw, 13px);
}
.luxury-spectacle .luxury-title strong {
  color: #fff3bf;
  font-size: clamp(24px, 4vw, 46px);
  line-height: 1;
  letter-spacing: .02em;
}
.luxury-spectacle .luxury-title em {
  color: rgba(255,255,255,.7);
  font-size: clamp(10px, 1.4vw, 14px);
  font-style: normal;
}
.luxury-hero {
  position: absolute;
  left: 50%;
  top: 47%;
  z-index: 24;
  width: min(260px, 38%);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
}
.luxury-hero > strong {
  position: relative;
  z-index: 4;
  font-size: clamp(92px, 15vw, 178px);
  line-height: 1;
  filter:
    drop-shadow(0 28px 25px rgba(0,0,0,.58))
    drop-shadow(0 0 34px rgba(255,225,122,.5));
}

/* Diamantring: Bühnenlicht, Diamantorbit und Feuerwerkskranz. */
.table-spectacle.diamond_ceremony .luxury-curtain {
  background:
    radial-gradient(circle at 50% 48%, rgba(173,241,255,.28), transparent 21%),
    radial-gradient(circle at 50% 50%, transparent 20%, rgba(0,8,21,.82) 100%);
}
.table-spectacle.diamond_ceremony .luxury-rays {
  background: repeating-conic-gradient(
    from -8deg,
    rgba(173,238,255,.28) 0 3deg,
    transparent 3deg 12deg
  );
}
.diamond-hero {
  animation: diamondHeroV22 6.6s cubic-bezier(.16,.82,.2,1) both;
}
.diamond-hero > strong {
  animation: diamondFloatV22 1.1s ease-in-out infinite alternate;
}
.diamond-beam {
  position: absolute;
  left: 50%;
  top: -175%;
  width: 84%;
  height: 310%;
  background: linear-gradient(to bottom, transparent, rgba(198,247,255,.34), transparent);
  clip-path: polygon(42% 0, 58% 0, 100% 100%, 0 100%);
  transform: translateX(-50%);
  filter: blur(2px);
  animation: diamondBeamV22 2.4s ease-in-out infinite alternate;
}
.diamond-orbit {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
}
.diamond-orbit i {
  position: absolute;
  left: 50%;
  top: 47%;
  color: #d8f8ff;
  font-size: clamp(12px, 2.2vw, 25px);
  font-style: normal;
  text-shadow: 0 0 12px #81dcff, 0 0 25px rgba(255,255,255,.6);
  animation: diamondOrbitV22 4.8s linear infinite;
  animation-delay: calc(var(--i) * -.24s);
}
.table-spectacle.diamond_ceremony .firework-world {
  z-index: 12;
}

/* Goldener Thron: Aufstieg, Kronenbahn und dichter Goldregen. */
.table-spectacle.throne_ascend .luxury-curtain {
  background:
    linear-gradient(90deg, rgba(59,20,7,.8), transparent 22% 78%, rgba(59,20,7,.8)),
    radial-gradient(circle at 50% 48%, rgba(255,215,84,.28), transparent 27%),
    rgba(0,0,0,.42);
}
.table-spectacle.throne_ascend .luxury-rays {
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255,209,72,.32) 0 5deg,
    transparent 5deg 16deg
  );
}
.throne-hero {
  animation: throneRiseV22 6.8s cubic-bezier(.14,.86,.18,1) both;
}
.throne-hero > strong {
  animation: thronePulseV22 .95s ease-in-out infinite alternate;
}
.throne-platform {
  position: absolute;
  left: 50%;
  bottom: 4%;
  width: 150%;
  height: 28%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,229,132,.78), rgba(255,180,20,.14) 58%, transparent 72%);
  transform: translateX(-50%);
  filter: blur(3px);
  animation: thronePlatformV22 1.1s ease-in-out infinite alternate;
}
.throne-crowns {
  position: absolute;
  inset: 0;
  z-index: 22;
}
.throne-crowns i {
  position: absolute;
  left: 50%;
  top: 48%;
  color: #ffe36d;
  font-size: clamp(15px, 2.6vw, 30px);
  font-style: normal;
  text-shadow: 0 0 14px rgba(255,194,46,.9);
  animation: throneCrownOrbitV22 5.2s linear infinite;
  animation-delay: calc(var(--i) * -.48s);
}
.table-spectacle.throne_ascend .gold-rain {
  position: absolute;
  inset: 0;
  z-index: 18;
}
.table-spectacle.throne_ascend .gold-rain i {
  font-size: clamp(13px, 2vw, 22px);
  animation-duration: 2.65s;
}

/* Drachenshow: Der Drache fliegt über den gesamten Tisch, mit Feueratem,
   Schweif und Bodenflammen. */
.table-spectacle.dragon_flight .luxury-curtain {
  background:
    radial-gradient(circle at 50% 48%, rgba(255,85,24,.22), transparent 29%),
    radial-gradient(circle at 50% 50%, transparent 20%, rgba(3,2,8,.88) 100%);
}
.table-spectacle.dragon_flight .luxury-rays {
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255,91,26,.2) 0 4deg,
    transparent 4deg 18deg
  );
}
.table-spectacle.dragon_flight .luxury-title strong {
  color: #ffcf86;
  text-shadow: 0 0 20px rgba(255,83,22,.7), 0 5px 14px rgba(0,0,0,.8);
}

@keyframes diamondHeroV22 {
  0% { opacity: 0; transform: translate(-50%, -20%) scale(.15) rotate(-28deg); }
  17% { opacity: 1; transform: translate(-50%, -50%) scale(1.16) rotate(7deg); }
  29% { transform: translate(-50%, -50%) scale(.96) rotate(-3deg); }
  75% { opacity: 1; transform: translate(-50%, -52%) scale(1.04) rotate(2deg); }
  100% { opacity: 0; transform: translate(-50%, -75%) scale(.72) rotate(18deg); }
}
@keyframes diamondFloatV22 {
  from { transform: translateY(5px) rotate(-3deg); filter: drop-shadow(0 24px 22px rgba(0,0,0,.58)) drop-shadow(0 0 24px #8be7ff); }
  to { transform: translateY(-8px) rotate(3deg); filter: drop-shadow(0 34px 28px rgba(0,0,0,.48)) drop-shadow(0 0 42px #e6fbff); }
}
@keyframes diamondBeamV22 {
  from { opacity: .36; transform: translateX(-50%) rotate(-5deg) scaleX(.8); }
  to { opacity: .9; transform: translateX(-50%) rotate(5deg) scaleX(1.16); }
}
@keyframes diamondOrbitV22 {
  from { transform: rotate(calc(var(--i) * 20deg)) translateX(74px) rotate(0deg) scale(.6); opacity: .2; }
  25% { opacity: 1; }
  50% { transform: rotate(calc(var(--i) * 20deg + 180deg)) translateX(clamp(125px, 24vw, 260px)) rotate(-180deg) scale(1.18); opacity: 1; }
  to { transform: rotate(calc(var(--i) * 20deg + 360deg)) translateX(74px) rotate(-360deg) scale(.6); opacity: .2; }
}
@keyframes throneRiseV22 {
  0% { opacity: 0; transform: translate(-50%, 78%) scale(.42); }
  19% { opacity: 1; transform: translate(-50%, -58%) scale(1.18); }
  33% { transform: translate(-50%, -47%) scale(.96); }
  76% { opacity: 1; transform: translate(-50%, -51%) scale(1.05); }
  100% { opacity: 0; transform: translate(-50%, -86%) scale(.78); }
}
@keyframes thronePulseV22 {
  from { transform: translateY(3px) scale(.97); filter: drop-shadow(0 25px 24px rgba(0,0,0,.62)) drop-shadow(0 0 25px rgba(255,193,44,.56)); }
  to { transform: translateY(-5px) scale(1.06); filter: drop-shadow(0 35px 26px rgba(0,0,0,.52)) drop-shadow(0 0 48px rgba(255,227,105,.9)); }
}
@keyframes thronePlatformV22 {
  from { opacity: .52; transform: translateX(-50%) scale(.78); }
  to { opacity: 1; transform: translateX(-50%) scale(1.1); }
}
@keyframes throneCrownOrbitV22 {
  from { transform: rotate(calc(var(--i) * 36deg)) translateX(82px) rotate(0deg) scale(.65); opacity: .2; }
  30%,70% { opacity: 1; }
  to { transform: rotate(calc(var(--i) * 36deg + 360deg)) translateX(clamp(130px, 25vw, 270px)) rotate(-360deg) scale(1.08); opacity: .1; }
}

@media (max-width: 760px) {
  #gameApp .solo-private-felt {
    --solo-card-width: 62px;
    --solo-card-height: 89px;
    --solo-card-row-height: 95px;
  }
  #homeNavigationButton {
    min-width: 92px;
  }
  .luxury-spectacle .luxury-title {
    bottom: 4%;
  }
  .luxury-hero {
    width: min(180px, 45%);
  }
  .luxury-hero > strong {
    font-size: clamp(72px, 24vw, 118px);
  }
  .diamond-orbit i,
  .throne-crowns i {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .luxury-spectacle *,
  .luxury-spectacle *::before,
  .luxury-spectacle *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =========================================================
   V23 · PRIVATE TEXAS HOLD'EM
   ========================================================= */
.game-live-badge {
  position: absolute;
  top: 12px;
  right: 14px;
  padding: 4px 8px;
  border: 1px solid rgba(86, 255, 196, .5);
  border-radius: 999px;
  color: #8fffd5;
  background: rgba(0, 38, 28, .72);
  box-shadow: 0 0 18px rgba(0, 255, 177, .18);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.home-game-btn.poker {
  position: relative;
  min-height: 118px;
  grid-column: span 2;
  overflow: hidden;
  color: #ecfff9;
  border-color: rgba(78, 255, 191, .42);
  background:
    radial-gradient(circle at 18% 15%, rgba(37, 255, 177, .24), transparent 32%),
    linear-gradient(135deg, rgba(6, 43, 37, .98), rgba(8, 17, 34, .98) 55%, rgba(29, 16, 58, .98));
}

.home-game-btn.poker::after {
  content: "♠  ♥  ♦  ♣";
  position: absolute;
  right: 22px;
  bottom: 14px;
  color: rgba(196, 255, 235, .2);
  font-size: 2.15rem;
  letter-spacing: .22em;
  transform: skewX(-9deg);
  transition: transform .35s ease, color .35s ease;
}

.home-game-btn.poker:hover::after {
  color: rgba(196, 255, 235, .5);
  transform: translateX(-8px) skewX(-9deg) scale(1.08);
}

.poker-lobby-card {
  border-color: rgba(62, 239, 179, .28);
  background: linear-gradient(135deg, rgba(11, 55, 47, .74), rgba(17, 21, 42, .84));
}

.poker-lobby-card .social-card-icon {
  color: #7dffd1;
  box-shadow: 0 0 24px rgba(57, 255, 186, .2);
}

.poker-app {
  width: min(1540px, calc(100% - 32px));
  margin: 22px auto 40px;
}

.poker-roombar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 22px;
  margin-bottom: 16px;
}

.poker-roombar h2 {
  margin: 5px 0 0;
  font-size: clamp(1.1rem, 2vw, 1.65rem);
}

.poker-table-code {
  color: #8dffda;
  border-color: rgba(70, 255, 189, .36);
}

.poker-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 16px;
  align-items: start;
}

.poker-main-column {
  min-width: 0;
}

.poker-table-shell {
  position: relative;
  padding: 13px;
  border-radius: 48% / 16%;
  background:
    linear-gradient(155deg, rgba(137, 91, 42, .95), rgba(45, 25, 17, .98) 38%, rgba(18, 13, 15, 1) 74%),
    #201510;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, .62),
    inset 0 2px 2px rgba(255, 232, 194, .2),
    inset 0 -8px 20px rgba(0, 0, 0, .55),
    0 0 0 1px rgba(255, 190, 96, .12);
}

.poker-table-rim {
  position: relative;
  padding: 18px;
  border-radius: 48% / 16%;
  background:
    linear-gradient(180deg, rgba(18, 25, 30, .98), rgba(6, 9, 14, 1));
  box-shadow:
    inset 0 0 0 2px rgba(151, 197, 190, .12),
    inset 0 0 30px rgba(0, 0, 0, .82);
}

.poker-felt {
  position: relative;
  min-height: 660px;
  overflow: hidden;
  border-radius: 47% / 15%;
  background:
    radial-gradient(ellipse at center, rgba(30, 142, 105, .2), transparent 45%),
    repeating-radial-gradient(ellipse at center, rgba(255,255,255,.018) 0 1px, transparent 1px 7px),
    linear-gradient(145deg, #073a31, #041f22 58%, #081825);
  box-shadow:
    inset 0 0 0 2px rgba(92, 255, 195, .1),
    inset 0 0 90px rgba(0, 0, 0, .72),
    inset 0 -30px 80px rgba(2, 7, 14, .58);
}

.poker-felt::before,
.poker-felt::after {
  content: "";
  position: absolute;
  inset: 8%;
  border: 1px solid rgba(104, 255, 201, .09);
  border-radius: 50%;
  pointer-events: none;
}

.poker-felt::after {
  inset: 13%;
  border-color: rgba(255, 210, 124, .07);
}

.poker-table-brand {
  position: absolute;
  left: 50%;
  top: 19%;
  z-index: 1;
  display: grid;
  place-items: center;
  transform: translateX(-50%);
  color: rgba(199, 255, 236, .13);
  text-align: center;
  text-shadow: 0 0 30px rgba(62, 255, 188, .1);
  pointer-events: none;
}

.poker-table-brand span {
  font-size: .72rem;
  letter-spacing: .58em;
}

.poker-table-brand strong {
  margin: 2px 0;
  font-size: clamp(1.15rem, 2.8vw, 2.2rem);
  letter-spacing: .18em;
}

.poker-table-brand small {
  font-size: .58rem;
  letter-spacing: .2em;
}

.poker-pot {
  position: absolute;
  z-index: 8;
  left: 50%;
  top: 41%;
  min-width: 108px;
  padding: 8px 15px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 218, 130, .24);
  border-radius: 999px;
  background: rgba(4, 13, 18, .8);
  box-shadow: 0 8px 24px rgba(0,0,0,.35), inset 0 0 18px rgba(255, 205, 96, .05);
  text-align: center;
}

.poker-pot small {
  display: block;
  color: #d8b76b;
  font-size: .58rem;
  letter-spacing: .2em;
}

.poker-pot strong {
  color: #fff2c4;
  font-size: 1.15rem;
}

.poker-community {
  position: absolute;
  z-index: 7;
  left: 50%;
  top: 52%;
  display: flex;
  gap: clamp(5px, .8vw, 10px);
  transform: translate(-50%, -50%);
}

.poker-community .playing-card,
.poker-community .poker-card-slot {
  width: clamp(54px, 6vw, 76px);
  aspect-ratio: 0.7;
}

.poker-card-slot {
  border: 1px dashed rgba(161, 255, 222, .17);
  border-radius: 8px;
  background: rgba(0, 0, 0, .12);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, .25);
}

.poker-table-status {
  position: absolute;
  z-index: 9;
  left: 50%;
  top: 66%;
  max-width: min(520px, 64%);
  padding: 9px 16px;
  transform: translateX(-50%);
  border: 1px solid rgba(91, 255, 199, .16);
  border-radius: 999px;
  color: #c8f8e8;
  background: rgba(1, 14, 19, .72);
  box-shadow: 0 10px 26px rgba(0,0,0,.32);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
}

.poker-seats {
  position: absolute;
  inset: 0;
  z-index: 10;
}

.poker-seat {
  position: absolute;
  width: clamp(160px, 18vw, 218px);
  min-height: 112px;
  transform: translate(-50%, -50%);
  transition: opacity .28s ease, filter .28s ease, transform .28s ease;
}

.poker-seat-bottom { left: 50%; top: 89%; }
.poker-seat-top { left: 50%; top: 11%; }
.poker-seat-left { left: 11%; top: 50%; }
.poker-seat-right { left: 89%; top: 50%; }
.poker-seat-lower-left { left: 18%; top: 75%; }
.poker-seat-upper-left { left: 18%; top: 25%; }
.poker-seat-upper-right { left: 82%; top: 25%; }
.poker-seat-lower-right { left: 82%; top: 75%; }

.poker-seat.is-folded {
  opacity: .48;
  filter: grayscale(.75);
}

.poker-seat.is-watching {
  opacity: .62;
}

.poker-seat.is-active {
  z-index: 14;
  transform: translate(-50%, -50%) scale(1.045);
}

.poker-seat.is-active .poker-seat-panel {
  border-color: rgba(72, 255, 190, .7);
  box-shadow:
    0 0 0 2px rgba(72, 255, 190, .12),
    0 0 30px rgba(40, 255, 181, .28),
    0 14px 28px rgba(0,0,0,.46);
  animation: pokerTurnPulse 1.4s ease-in-out infinite;
}

@keyframes pokerTurnPulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.18); }
}

.poker-hole-cards {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 60px;
  display: flex;
  transform: translateX(-50%);
}

.poker-hole-cards .playing-card {
  width: 56px;
  height: 80px;
  margin-left: -13px;
  transform: rotate(-4deg);
  box-shadow: 0 8px 20px rgba(0,0,0,.45);
}

.poker-hole-cards .playing-card:first-child { margin-left: 0; transform: rotate(-8deg); }
.poker-hole-cards .playing-card:last-child { transform: rotate(7deg); }

.poker-seat.is-me .poker-hole-cards .playing-card {
  width: 66px;
  height: 94px;
}

.poker-seat-panel {
  position: absolute;
  left: 50%;
  bottom: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 58px;
  padding: 8px 10px;
  transform: translateX(-50%);
  border: 1px solid rgba(152, 199, 192, .22);
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(16, 25, 34, .96), rgba(5, 10, 17, .98));
  box-shadow: 0 12px 26px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.05);
}

.poker-seat.is-me .poker-seat-panel {
  border-color: rgba(120, 204, 255, .42);
}

.poker-avatar {
  position: relative;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 13px;
  background: linear-gradient(145deg, rgba(46, 72, 82, .9), rgba(15, 24, 34, .98));
  font-size: 1.3rem;
}

.poker-seat-effect {
  position: absolute;
  right: -7px;
  top: -9px;
  filter: drop-shadow(0 0 8px rgba(255, 218, 114, .65));
  font-size: .9rem;
}

.poker-seat-copy,
.poker-stack {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.poker-seat-copy strong {
  overflow: hidden;
  color: #f2f7ff;
  font-size: .82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.poker-seat-copy small,
.poker-stack small {
  color: #7f9ca3;
  font-size: .56rem;
  letter-spacing: .08em;
}

.poker-stack {
  align-items: flex-end;
  color: #ffe7a3;
  font-size: .78rem;
}

.poker-position {
  position: absolute;
  top: -10px;
  right: 10px;
  display: grid;
  place-items: center;
  min-width: 26px;
  height: 26px;
  padding: 0 5px;
  border: 2px solid #151b20;
  border-radius: 50%;
  color: #1b2127;
  background: #f3f4ed;
  box-shadow: 0 3px 9px rgba(0,0,0,.45);
  font-size: .64rem;
}

.poker-position.blind-button {
  right: 38px;
  color: #2a1c02;
  background: #eecb72;
}

.poker-seat-bet {
  position: absolute;
  left: 50%;
  top: 25px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  transform: translateX(-50%);
  border-radius: 999px;
  color: #fff0b3;
  background: rgba(4, 11, 16, .82);
  font-size: .68rem;
  font-weight: 900;
}

.poker-hand-name,
.poker-profit {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 999px;
  white-space: nowrap;
}

.poker-hand-name {
  top: -34px;
  padding: 4px 9px;
  color: #cffff0;
  background: rgba(7, 41, 34, .92);
  font-size: .63rem;
  font-weight: 900;
}

.poker-profit {
  bottom: -13px;
  padding: 3px 8px;
  font-size: .64rem;
  font-weight: 900;
}

.poker-profit.win { color: #8dffd1; background: rgba(5, 65, 44, .94); }
.poker-profit.loss { color: #ff9ca9; background: rgba(70, 15, 29, .94); }

.poker-card-enter {
  animation: pokerCardDeal .62s cubic-bezier(.18,.84,.2,1) both !important;
}

@keyframes pokerCardDeal {
  from { opacity: 0; transform: translate3d(0, -60px, 0) rotate(-12deg) scale(.72); filter: blur(2px); }
  to { opacity: 1; filter: blur(0); }
}

.poker-controls {
  margin-top: 14px;
  padding: 15px;
}

.poker-lobby-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) auto minmax(300px, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.poker-control-copy,
.poker-stack-summary {
  display: flex;
  flex-direction: column;
}

.poker-control-copy strong {
  color: #effff9;
}

.poker-control-copy small,
.poker-stack-summary span {
  color: #78949b;
  font-size: .68rem;
}

.poker-stack-summary {
  align-items: center;
  min-width: 88px;
  padding: 8px 12px;
  border: 1px solid rgba(93, 255, 200, .16);
  border-radius: 12px;
  background: rgba(5, 18, 23, .7);
}

.poker-stack-summary strong {
  color: #ffe8a2;
  font-size: 1.15rem;
}

.poker-buyin-controls {
  display: grid;
  grid-template-columns: minmax(84px, 1fr) repeat(3, auto) auto;
  gap: 7px;
}

.poker-buyin-controls input {
  min-width: 0;
}

.poker-action-controls {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) repeat(2, minmax(120px, .6fr)) minmax(220px, 1.2fr) minmax(120px, .6fr);
  align-items: stretch;
  gap: 10px;
}

.poker-action-info {
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 0 8px;
}

.poker-action-info span {
  color: #e9fff8;
  font-weight: 900;
}

.poker-action-info small {
  color: #79929b;
}

.poker-fold {
  --action-accent: #ff5871;
}

.poker-allin {
  --action-accent: #ffca57;
}

.poker-raise-control {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) auto;
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(105, 255, 203, .14);
  border-radius: 14px;
  background: rgba(5, 13, 20, .64);
}

.poker-raise-control label {
  display: flex;
  justify-content: space-between;
  grid-column: 1 / -1;
  color: #9bb5b8;
  font-size: .68rem;
}

.poker-raise-control label strong { color: #ffe8a1; }
.poker-raise-control input { width: 100%; }
.poker-raise-control .action-btn { grid-column: 2; grid-row: 2; min-width: 110px; }

.poker-waiting-controls,
.poker-result-controls {
  min-height: 90px;
  place-content: center;
  text-align: center;
  color: #a9c2c6;
}

.poker-waiting-controls:not(.hidden),
.poker-result-controls:not(.hidden) {
  display: grid;
}

.poker-result-controls strong {
  color: #eafff8;
  font-size: 1rem;
}

.poker-result-controls small {
  margin-top: 5px;
  color: #7e999d;
}

.poker-sidebar {
  position: sticky;
  top: 92px;
  display: grid;
  gap: 15px;
  padding: 16px;
  max-height: calc(100vh - 110px);
  overflow: auto;
}

.poker-player-list,
.poker-invite-list {
  display: grid;
  gap: 7px;
}

.poker-player-row,
.poker-invite-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  border: 1px solid rgba(133, 184, 184, .12);
  border-radius: 11px;
  background: rgba(5, 14, 21, .56);
}

.poker-player-row.active {
  border-color: rgba(76, 255, 193, .43);
  box-shadow: inset 0 0 18px rgba(45, 255, 185, .08);
}

.poker-player-row > span,
.poker-invite-row > span {
  font-size: 1.15rem;
}

.poker-player-row div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.poker-player-row strong,
.poker-invite-row strong {
  overflow: hidden;
  color: #eaf8f6;
  font-size: .76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.poker-player-row small {
  color: #718b91;
  font-size: .6rem;
}

.poker-player-row > b {
  color: #ffe6a1;
  font-size: .75rem;
}

.poker-chat-section .chat-messages {
  max-height: 220px;
}

.poker-rules-compact {
  padding: 12px;
  border: 1px solid rgba(120, 172, 172, .1);
  border-radius: 12px;
  background: rgba(4, 12, 18, .48);
}

.poker-rules-compact h2 {
  margin: 0 0 5px;
  color: #dffbf3;
  font-size: .82rem;
}

.poker-rules-compact p {
  margin: 0;
  color: #799399;
  font-size: .67rem;
  line-height: 1.5;
}

.poker-luxury {
  position: absolute !important;
  z-index: 80;
  inset: 0 !important;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
}

.poker-luxury .luxury-stage {
  display: grid;
  place-items: center;
  transform: scale(.45) translateY(70px);
  opacity: 0;
  text-align: center;
  transition: transform .7s cubic-bezier(.16,.82,.25,1), opacity .5s ease;
}

.poker-luxury.is-active .luxury-stage {
  transform: scale(1) translateY(0);
  opacity: 1;
}

.poker-luxury .luxury-emoji {
  font-size: clamp(5rem, 13vw, 10rem);
  filter: drop-shadow(0 0 35px rgba(255, 220, 110, .75));
  animation: pokerLuxuryFloat 1.3s ease-in-out infinite alternate;
}

.poker-luxury strong {
  color: #fff0b5;
  text-shadow: 0 0 20px rgba(255, 205, 82, .65);
  font-size: clamp(1rem, 3vw, 2.2rem);
  letter-spacing: .22em;
}

.poker-luxury small {
  margin-top: 8px;
  color: #e9fff7;
  font-weight: 800;
}

.poker-luxury.dragon_flight .luxury-stage {
  animation: pokerDragonFlight 5.6s cubic-bezier(.18,.72,.25,1) both;
}

@keyframes pokerLuxuryFloat {
  to { transform: translateY(-16px) rotate(3deg) scale(1.05); }
}

@keyframes pokerDragonFlight {
  0% { transform: translate(-120%, 45%) scale(.3) rotate(-14deg); opacity: 0; }
  20% { opacity: 1; }
  52% { transform: translate(0, -5%) scale(1.1) rotate(4deg); opacity: 1; }
  100% { transform: translate(125%, -48%) scale(.45) rotate(13deg); opacity: 0; }
}

@media (max-width: 1180px) {
  .poker-layout { grid-template-columns: 1fr; }
  .poker-sidebar { position: static; max-height: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .poker-chat-section { grid-column: span 2; }
  .poker-lobby-controls { grid-template-columns: 1fr auto; }
  .poker-buyin-controls { grid-column: 1 / -1; }
  .poker-action-controls { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .poker-action-info { grid-column: 1 / -1; }
  .poker-raise-control { grid-column: span 2; }
}

@media (max-width: 800px) {
  .home-game-btn.poker { grid-column: auto; }
  .poker-app { width: min(100% - 14px, 760px); margin-top: 8px; }
  .poker-roombar { align-items: flex-start; flex-direction: column; padding: 14px; }
  .poker-roombar .roombar-actions { width: 100%; }
  .poker-table-shell { padding: 8px; border-radius: 34% / 10%; }
  .poker-table-rim { padding: 9px; border-radius: 34% / 10%; }
  .poker-felt { min-height: 610px; border-radius: 33% / 9%; }
  .poker-seat { width: 150px; }
  .poker-seat-bottom { top: 90%; }
  .poker-seat-top { top: 10%; }
  .poker-seat-left { left: 14%; }
  .poker-seat-right { left: 86%; }
  .poker-seat-lower-left { left: 20%; top: 76%; }
  .poker-seat-upper-left { left: 20%; top: 24%; }
  .poker-seat-upper-right { left: 80%; top: 24%; }
  .poker-seat-lower-right { left: 80%; top: 76%; }
  .poker-community { top: 50%; gap: 4px; }
  .poker-community .playing-card,
  .poker-community .poker-card-slot { width: 48px; }
  .poker-table-status { top: 64%; max-width: 78%; font-size: .67rem; }
  .poker-hole-cards .playing-card { width: 45px; height: 64px; }
  .poker-seat.is-me .poker-hole-cards .playing-card { width: 52px; height: 74px; }
  .poker-hole-cards { bottom: 56px; }
  .poker-seat-panel { min-height: 52px; padding: 7px; }
  .poker-avatar { width: 34px; height: 34px; font-size: 1.05rem; }
  .poker-stack { font-size: .7rem; }
  .poker-lobby-controls { grid-template-columns: 1fr; }
  .poker-stack-summary { align-items: flex-start; }
  .poker-buyin-controls { grid-template-columns: repeat(3, 1fr); }
  .poker-buyin-controls input { grid-column: 1 / -1; }
  .poker-buyin-controls .primary-btn { grid-column: 1 / -1; }
  .poker-action-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .poker-raise-control { grid-column: 1 / -1; }
  .poker-sidebar { grid-template-columns: 1fr; }
  .poker-chat-section { grid-column: auto; }
}

@media (max-width: 560px) {
  .poker-felt { min-height: 560px; }
  .poker-table-brand { top: 18%; }
  .poker-table-brand strong { font-size: .95rem; }
  .poker-pot { top: 41%; min-width: 88px; padding: 6px 11px; }
  .poker-community { top: 51%; }
  .poker-community .playing-card,
  .poker-community .poker-card-slot { width: 39px; border-radius: 6px; }
  .poker-seat { width: 126px; min-height: 94px; }
  .poker-seat-bottom { top: 91%; }
  .poker-seat-top { top: 9%; }
  .poker-seat-lower-left { left: 22%; top: 77%; }
  .poker-seat-upper-left { left: 22%; top: 23%; }
  .poker-seat-upper-right { left: 78%; top: 23%; }
  .poker-seat-lower-right { left: 78%; top: 77%; }
  .poker-hole-cards { bottom: 47px; }
  .poker-hole-cards .playing-card { width: 39px; height: 56px; margin-left: -10px; }
  .poker-seat.is-me .poker-hole-cards .playing-card { width: 45px; height: 64px; }
  .poker-seat-panel { min-height: 44px; gap: 5px; border-radius: 13px; }
  .poker-avatar { width: 28px; height: 28px; border-radius: 9px; font-size: .9rem; }
  .poker-seat-copy strong { font-size: .64rem; }
  .poker-seat-copy small,
  .poker-stack small { display: none; }
  .poker-stack { font-size: .6rem; }
  .poker-position { top: -8px; right: 5px; min-width: 21px; height: 21px; font-size: .53rem; }
  .poker-position.blind-button { right: 29px; }
  .poker-seat-bet { top: 20px; font-size: .58rem; }
  .poker-hand-name { top: -26px; max-width: 112px; overflow: hidden; font-size: .52rem; text-overflow: ellipsis; }
  .poker-table-status { top: 65%; padding: 7px 10px; font-size: .58rem; }
  .poker-action-controls .action-btn { min-height: 74px; }
}

@media (prefers-reduced-motion: reduce) {
  .poker-card-enter,
  .poker-seat.is-active .poker-seat-panel,
  .poker-luxury .luxury-emoji,
  .poker-luxury.dragon_flight .luxury-stage {
    animation: none !important;
  }
}


/* ===== V23: Mobile Poker-Tisch ohne Kartenüberlagerungen ===== */
@media (max-width: 560px) {
  .poker-felt {
    min-height: 650px;
  }
  .poker-seat {
    width: 112px;
    min-height: 88px;
  }
  .poker-seat-top { top: 8%; }
  .poker-seat-bottom { top: 93%; }
  .poker-seat-left { left: 23%; top: 31%; }
  .poker-seat-right { left: 77%; top: 31%; }
  .poker-seat-upper-left { left: 23%; top: 29%; }
  .poker-seat-upper-right { left: 77%; top: 29%; }
  .poker-seat-lower-left { left: 23%; top: 79%; }
  .poker-seat-lower-right { left: 77%; top: 79%; }
  .poker-community { top: 51%; }
  .poker-table-status { top: 63%; max-width: 72%; }
  .poker-hole-cards { bottom: 44px; }
  .poker-hole-cards .playing-card {
    width: 36px;
    height: 52px;
    margin-left: -9px;
  }
  .poker-seat.is-me .poker-hole-cards .playing-card {
    width: 43px;
    height: 61px;
  }
  .poker-seat-panel {
    min-height: 42px;
    padding: 6px;
  }
  .poker-seat-bet { top: 16px; }
}

/* Poker-Gemeinschaftskarten verwenden ihre eigene Kartengröße und erben keine
   Blackjack-Breite oder negativen Kartenabstände. */
.poker-community .playing-card {
  --card-w: clamp(54px, 6vw, 76px) !important;
  width: var(--card-w) !important;
  height: calc(var(--card-w) * 1.42) !important;
  margin-left: 0 !important;
  transform: none !important;
}
.poker-community .poker-card-slot {
  width: clamp(54px, 6vw, 76px) !important;
  height: calc(clamp(54px, 6vw, 76px) * 1.42) !important;
  aspect-ratio: auto;
}
@media (max-width: 800px) {
  .poker-community .playing-card {
    --card-w: 48px !important;
  }
  .poker-community .poker-card-slot {
    width: 48px !important;
    height: 68px !important;
  }
}
@media (max-width: 560px) {
  .poker-community .playing-card {
    --card-w: 39px !important;
  }
  .poker-community .poker-card-slot {
    width: 39px !important;
    height: 55px !important;
  }
}


/* =========================================================
   V24 · ÖFFENTLICHE POKER-SPIELERSUCHE
   ========================================================= */
.home-game-btn.poker-matchmaking {
  position: relative;
  min-height: 118px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  padding: 22px 24px;
  color: #eefbff;
  border-color: rgba(80, 193, 255, .48);
  background:
    radial-gradient(circle at 80% 20%, rgba(91, 70, 255, .34), transparent 38%),
    radial-gradient(circle at 12% 90%, rgba(27, 211, 255, .19), transparent 40%),
    linear-gradient(135deg, #091a31, #10132b 56%, #25134a);
}
.home-game-btn.poker-matchmaking::before {
  content: "";
  position: absolute;
  inset: -60% -25%;
  background: conic-gradient(from 90deg, transparent 0 35%, rgba(93, 223, 255, .3) 46%, transparent 58% 100%);
  animation: matchmakingRadar 4.8s linear infinite;
  pointer-events: none;
}
.home-game-btn.poker-matchmaking::after {
  content: "●  ●  ●";
  position: absolute;
  right: 22px;
  bottom: 17px;
  color: rgba(126, 231, 255, .42);
  font-size: 1.2rem;
  letter-spacing: .38em;
  animation: matchmakingDots 1.5s ease-in-out infinite alternate;
}
.home-game-btn.poker-matchmaking > * { position: relative; z-index: 1; }
.home-game-btn.poker-matchmaking span { font-size: 1.08rem; font-weight: 950; }
.home-game-btn.poker-matchmaking em { color: rgba(222, 244, 255, .65); font-size: .68rem; font-style: normal; font-weight: 700; }
.game-live-badge.quick {
  color: #bdefff;
  border-color: rgba(93, 218, 255, .55);
  background: rgba(8, 31, 61, .78);
  box-shadow: 0 0 20px rgba(49, 191, 255, .2);
}
.poker-match-card {
  border-color: rgba(72, 199, 255, .32);
  background: linear-gradient(135deg, rgba(8, 42, 76, .82), rgba(31, 17, 65, .84));
}
.poker-match-card .social-card-icon {
  color: #c6f2ff;
  background: linear-gradient(135deg, #287dc4, #6b47e8);
  box-shadow: 0 0 24px rgba(70, 189, 255, .22);
}
.poker-table-code:disabled {
  cursor: default;
  color: #9fe7ff;
  border-color: rgba(77, 199, 255, .28);
  background: rgba(43, 132, 196, .11);
  letter-spacing: .11em;
}
body.poker-live .poker-roombar:has(.poker-table-code:disabled) {
  border-color: rgba(65, 185, 255, .2);
  box-shadow: 0 18px 45px rgba(4, 18, 38, .32), inset 0 1px 0 rgba(255,255,255,.05);
}
@keyframes matchmakingRadar { to { transform: rotate(360deg); } }
@keyframes matchmakingDots {
  from { opacity: .35; transform: translateX(0); }
  to { opacity: 1; transform: translateX(-8px); }
}
@media (min-width: 801px) {
  .home-game-btn.poker-matchmaking { grid-column: span 1; }
}
@media (max-width: 800px) {
  .home-game-btn.poker-matchmaking { min-height: 96px; }
}
@media (max-width: 560px) {
  .poker-match-card, .poker-lobby-card { align-items: stretch; flex-direction: column; }
  .poker-match-card .primary-btn, .poker-lobby-card .primary-btn { width: 100%; }
}

@media (min-width: 761px) {
  .home-app { width: min(1180px, calc(100% - 24px)); }
  .home-panel { grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); }
  .home-actions { width: 100%; }
}
.home-game-btn.poker-matchmaking em { max-width: 78%; text-align: left; line-height: 1.35; }
.home-game-btn.poker-matchmaking::after { right: 12px; bottom: 10px; font-size: .9rem; }

/* =========================================================
   V26 · POKER SITZPLÄTZE, TIMER, KARTEN & FIXE CHATS
   ========================================================= */

/* Das komplette Poker-Spielfeld ist rund 20 % schmaler als zuvor. */
.poker-app {
  width: min(1240px, calc(100% - 32px));
}

/* Quick Match sitzt exakt wie der Badge des privaten Poker-Buttons oben rechts. */
.home-game-btn.poker-matchmaking .game-live-badge {
  top: 12px;
  right: 14px;
  bottom: auto;
  left: auto;
}

/* Herz und Karo sind im Poker wieder klar rot, Pik und Kreuz bleiben schwarz. */
.poker-app .playing-card .card-front {
  color: #111722 !important;
}
.poker-app .playing-card .card-front.red {
  color: #d2263d !important;
}

/* Echte Austeilbewegung vom Tischzentrum zum jeweiligen Sitzplatz. */
.poker-card-enter {
  animation: pokerCardDealV26 .68s cubic-bezier(.16,.88,.22,1) both !important;
  will-change: transform, opacity, filter;
}
@keyframes pokerCardDealV26 {
  0% {
    opacity: 0;
    transform: translate3d(var(--poker-deal-x, 0), var(--poker-deal-y, -120px), 0)
      rotate(var(--poker-deal-r, -8deg)) scale(.72);
    filter: blur(2.5px) brightness(1.25);
  }
  70% {
    opacity: 1;
    filter: blur(0) brightness(1.08);
  }
  100% {
    opacity: 1;
    transform: translate3d(0,0,0) rotate(0deg) scale(1);
    filter: blur(0) brightness(1);
  }
}

/* Immer sechs feste Plätze, freie Plätze wie beim privaten Blackjack als Plus-Kreis. */
.poker-empty-seat {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  width: 82px;
  min-height: 82px;
  padding: 0;
  border: 2px dashed rgba(137, 255, 220, .42);
  border-radius: 50%;
  color: #b9ffe8;
  background:
    radial-gradient(circle, rgba(42,255,189,.13), transparent 62%),
    rgba(3, 20, 23, .68);
  box-shadow: inset 0 0 24px rgba(27,255,185,.07), 0 12px 28px rgba(0,0,0,.35);
  cursor: pointer;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}
.poker-empty-seat > span {
  font-size: 2rem;
  font-weight: 300;
  line-height: .8;
}
.poker-empty-seat > small {
  color: #789e98;
  font-size: .5rem;
  font-weight: 900;
  letter-spacing: .13em;
}
.poker-empty-seat:hover:not(:disabled) {
  transform: translate(-50%, -50%) scale(1.09);
  border-color: rgba(128,255,216,.9);
  background: rgba(7, 48, 43, .9);
  box-shadow: 0 0 0 5px rgba(58,255,193,.08), 0 0 32px rgba(44,255,188,.24);
}
.poker-empty-seat:disabled {
  opacity: .42;
  cursor: default;
}

.poker-seat.is-last-raiser .poker-seat-panel {
  border-color: rgba(255, 190, 70, .82);
  box-shadow: 0 0 0 2px rgba(255,181,54,.14), 0 0 34px rgba(255,159,35,.28), 0 14px 28px rgba(0,0,0,.46);
}
.poker-seat.is-last-raiser::after {
  content: "RAISED";
  position: absolute;
  z-index: 20;
  left: 50%;
  bottom: -25px;
  padding: 4px 9px;
  transform: translateX(-50%);
  border: 1px solid rgba(255,205,99,.42);
  border-radius: 999px;
  color: #ffe39a;
  background: rgba(74,39,4,.94);
  box-shadow: 0 0 18px rgba(255,167,39,.2);
  font-size: .55rem;
  font-weight: 950;
  letter-spacing: .13em;
}

.poker-live-hand {
  position: absolute;
  z-index: 18;
  left: calc(50% + 70px);
  bottom: 66px;
  display: flex;
  min-width: 108px;
  flex-direction: column;
  padding: 6px 9px;
  transform: translateX(-4px);
  border: 1px solid rgba(95,255,204,.25);
  border-radius: 10px;
  background: rgba(3, 26, 25, .92);
  box-shadow: 0 8px 22px rgba(0,0,0,.36), inset 0 0 16px rgba(61,255,194,.05);
  pointer-events: none;
}
.poker-live-hand small {
  color: #72a69a;
  font-size: .48rem;
  letter-spacing: .13em;
}
.poker-live-hand strong {
  color: #bffff0;
  font-size: .7rem;
  white-space: nowrap;
}

.poker-seat-buyin {
  position: absolute;
  left: 50%;
  bottom: -30px;
  z-index: 25;
  padding: 5px 12px;
  transform: translateX(-50%);
  border: 1px solid rgba(87,255,200,.38);
  border-radius: 999px;
  color: #caffef;
  background: rgba(4,48,39,.94);
  font-size: .6rem;
  font-weight: 900;
  cursor: pointer;
}

.poker-lobby-controls {
  grid-template-columns: minmax(240px,1fr) auto auto;
}
.poker-lobby-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

/* Buy-in erscheint erst nach der Platzwahl. */
.poker-buyin-overlay {
  position: fixed;
  inset: 0;
  z-index: 190;
  display: grid;
  place-items: center;
  padding: 18px;
}
.poker-buyin-overlay.hidden { display: none !important; }
.poker-buyin-panel {
  position: relative;
  z-index: 1;
  width: min(430px, 100%);
  padding: 25px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 15% 0, rgba(35,255,190,.13), transparent 36%),
    rgba(4, 15, 23, .97);
  box-shadow: 0 32px 90px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.06);
}
.poker-buyin-panel h2 { margin: 6px 0 8px; }
.poker-buyin-panel > p:not(.social-message) {
  margin: 0 0 14px;
  color: #8ca4aa;
  font-size: .78rem;
  line-height: 1.55;
}
.poker-buyin-seat-label {
  margin-bottom: 10px;
  padding: 8px 11px;
  border: 1px solid rgba(89,255,201,.17);
  border-radius: 11px;
  color: #bfffea;
  background: rgba(9,45,38,.58);
  font-size: .72rem;
  font-weight: 900;
}
.poker-buyin-panel input {
  width: 100%;
  height: 50px;
  padding: 0 15px;
  border: 1px solid rgba(114,255,211,.24);
  border-radius: 13px;
  color: #fff0ba;
  background: rgba(0,0,0,.25);
  font-size: 1.1rem;
  font-weight: 950;
  outline: none;
}
.poker-buyin-presets {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 8px;
  margin: 10px 0;
}

/* Deutliche Mitgeh-Anzeige nach Bet/Raise. */
.poker-call-alert {
  grid-column: 1 / -1;
  padding: 11px 14px;
  border: 1px solid rgba(255,183,67,.42);
  border-radius: 13px;
  color: #fff1c6;
  background:
    linear-gradient(90deg, rgba(105,48,5,.88), rgba(53,23,7,.78)),
    rgba(48,20,5,.9);
  box-shadow: inset 4px 0 0 #ffb83f, 0 10px 24px rgba(0,0,0,.28);
  font-size: .76rem;
  animation: pokerCallPulse 1.15s ease-in-out infinite alternate;
}
.poker-call-alert b,
.poker-call-alert strong { color: #ffd56d; }
@keyframes pokerCallPulse {
  to { border-color: rgba(255,211,109,.72); box-shadow: inset 4px 0 0 #ffd46c, 0 0 28px rgba(255,157,35,.18); }
}
.poker-table-status.call-required {
  border-color: rgba(255,187,67,.48);
  color: #ffe8a1;
  background: rgba(72,33,5,.86);
}

/* Sichtbarer 30-Sekunden-Timer für alle Spieler. */
.poker-table-timer,
.poker-action-timer {
  --poker-timer-progress: 1;
  position: relative;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  color: #eafff8;
  background:
    radial-gradient(circle at center, #07171d 58%, transparent 60%),
    conic-gradient(#50f4be calc(var(--poker-timer-progress) * 1turn), rgba(255,255,255,.08) 0);
  box-shadow: 0 0 24px rgba(57,255,191,.16), inset 0 0 0 1px rgba(255,255,255,.05);
}
.poker-table-timer {
  position: absolute;
  z-index: 16;
  right: 13%;
  top: 41%;
  transform: translateY(-50%);
}
.poker-action-timer {
  align-self: center;
  justify-self: center;
}
.poker-table-timer strong,
.poker-action-timer strong {
  margin-top: 6px;
  font-size: 1rem;
  line-height: 1;
}
.poker-table-timer small,
.poker-action-timer small {
  margin-top: -12px;
  color: #71948e;
  font-size: .42rem;
  font-weight: 900;
  letter-spacing: .1em;
}
.poker-table-timer.urgent,
.poker-action-timer.urgent {
  color: #fff0f0;
  background:
    radial-gradient(circle at center, #1b080d 58%, transparent 60%),
    conic-gradient(#ff536d calc(var(--poker-timer-progress) * 1turn), rgba(255,255,255,.08) 0);
  box-shadow: 0 0 30px rgba(255,64,90,.34);
  animation: pokerTimerUrgent .52s ease-in-out infinite alternate;
}
@keyframes pokerTimerUrgent { to { transform: translateY(-50%) scale(1.08); } }
.poker-action-timer.urgent { animation-name: pokerActionTimerUrgent; }
@keyframes pokerActionTimerUrgent { to { transform: scale(1.08); } }

.poker-action-controls {
  grid-template-columns: minmax(150px,1fr) 70px repeat(2,minmax(112px,.62fr)) minmax(210px,1.15fr) minmax(112px,.62fr);
}

/* Poker- und Freundeschat bleiben fest groß und scrollen intern. */
.poker-sidebar {
  overflow: hidden;
  max-height: none;
}
.poker-chat-section {
  display: flex;
  height: 310px;
  min-height: 310px;
  flex-direction: column;
  overflow: hidden;
}
.poker-chat-section .chat-messages {
  flex: 1 1 auto;
  height: 220px;
  min-height: 0;
  max-height: 220px !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.poker-chat-section .chat-form { flex: 0 0 auto; }

.friend-chat-panel:not(.hidden) {
  display: flex !important;
  height: min(430px, 58dvh);
  min-height: 300px;
  flex-direction: column;
  overflow: hidden;
}
#friendChatMessages {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  max-height: none !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.friend-chat-panel .chat-form { flex: 0 0 auto; }

.poker-player-row {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.poker-player-row:hover {
  border-color: rgba(96,255,205,.34);
  background: rgba(8,29,32,.76);
}

@media (max-width: 1180px) {
  .poker-app { width: min(100% - 20px, 980px); }
  .poker-action-controls { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .poker-action-timer { grid-column: auto; }
  .poker-call-alert { grid-column: 1 / -1; }
  .poker-sidebar { overflow: visible; }
  .poker-chat-section { height: 280px; min-height: 280px; }
}

@media (max-width: 800px) {
  .poker-lobby-controls { grid-template-columns: 1fr auto; }
  .poker-lobby-actions { grid-column: 1 / -1; justify-content: stretch; }
  .poker-lobby-actions > * { flex: 1; }
  .poker-live-hand {
    left: 50%;
    bottom: 106px;
    min-width: 96px;
    transform: translateX(-50%);
    text-align: center;
  }
  .poker-table-timer {
    right: 8%;
    top: 40%;
    width: 54px;
    height: 54px;
  }
  .poker-action-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .poker-action-timer { grid-column: auto; }
  .poker-action-info { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .poker-empty-seat {
    width: 62px;
    min-height: 62px;
  }
  .poker-empty-seat > span { font-size: 1.55rem; }
  .poker-empty-seat > small { font-size: .42rem; }
  .poker-live-hand {
    bottom: 96px;
    min-width: 88px;
    padding: 4px 7px;
  }
  .poker-live-hand strong { font-size: .58rem; }
  .poker-table-timer {
    right: 4%;
    top: 41%;
    width: 48px;
    height: 48px;
  }
  .poker-table-timer strong,
  .poker-action-timer strong { font-size: .82rem; }
  .poker-table-timer small,
  .poker-action-timer small { font-size: .36rem; }
  .poker-action-timer { width: 54px; height: 54px; }
  .poker-call-alert { font-size: .68rem; }
  .poker-chat-section { height: 260px; min-height: 260px; }
  .friend-chat-panel:not(.hidden) { height: min(390px, 60dvh); }
}

@media (prefers-reduced-motion: reduce) {
  .poker-card-enter,
  .poker-call-alert,
  .poker-table-timer.urgent,
  .poker-action-timer.urgent {
    animation: none !important;
  }
}

/* V26: feste Chatfenster – Inhalte scrollen, Panels wachsen nicht mit Nachrichten. */
.poker-sidebar .poker-chat-section {
  flex: 0 0 310px !important;
  height: 310px !important;
  min-height: 310px !important;
  max-height: 310px !important;
  overflow: hidden !important;
}
.poker-sidebar .poker-chat-section #pokerChatMessages {
  flex: 0 0 220px !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
#friendChatPanel.friend-chat-panel:not(.hidden) {
  height: min(430px, 58dvh) !important;
  min-height: 300px !important;
  max-height: min(430px, 58dvh) !important;
  overflow: hidden !important;
}
#friendChatPanel #friendChatMessages {
  flex: 1 1 auto !important;
  height: 300px !important;
  min-height: 180px !important;
  max-height: 320px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
@media (max-width: 1180px) {
  .poker-sidebar .poker-chat-section {
    flex-basis: 280px !important;
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
  }
  .poker-sidebar .poker-chat-section #pokerChatMessages {
    flex-basis: 190px !important;
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
  }
}

/* V26: klare Aktionsleiste – Raise-Regler und Call-Schaltfläche überlagern sich nicht. */
@media (min-width: 801px) {
  .poker-action-controls {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-auto-rows: auto;
    align-items: stretch;
  }
  .poker-action-controls .poker-action-info {
    grid-column: 1 / 5 !important;
    grid-row: 1;
    min-height: 64px;
  }
  .poker-action-controls .poker-action-timer {
    grid-column: 5 !important;
    grid-row: 1;
  }
  .poker-action-controls .poker-call-alert {
    grid-column: 1 / -1 !important;
    grid-row: 2;
  }
  .poker-action-controls .poker-fold {
    grid-column: 1;
    grid-row: 3;
  }
  .poker-action-controls #pokerCheckCallButton {
    grid-column: 2;
    grid-row: 3;
  }
  .poker-action-controls .poker-raise-control {
    grid-column: 3 / 5 !important;
    grid-row: 3;
    min-width: 0;
  }
  .poker-action-controls .poker-allin {
    grid-column: 5;
    grid-row: 3;
  }
  .poker-action-controls > .action-btn,
  .poker-action-controls .poker-raise-control {
    min-height: 90px;
  }
}


/* =========================================================
   V27 · REGEL-, SITZPLATZ- UND BEDIENKORREKTUREN
   ========================================================= */
.chip-500 { background: linear-gradient(145deg, #8d5a12, #d69a28); }
.chip-1000 { background: linear-gradient(145deg, #2a4165, #3d72ba); }
.chip-2500 { background: linear-gradient(145deg, #5b225f, #a342ac); }
.table-chip.chip-value-500, .laid-chip.chip-value-500 { background: #c7881e; }
.table-chip.chip-value-1000, .laid-chip.chip-value-1000 { background: #3564a7; }
.table-chip.chip-value-2500, .laid-chip.chip-value-2500 { background: #8e3697; }

.home-game-btn.poker-matchmaking { position: relative; }
.home-game-btn.poker-matchmaking .game-live-badge.quick {
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 !important;
  transform: none !important;
}

/* Die sechs äußeren Sitzknoten bleiben dauerhaft im DOM. Dadurch springen sie
   weder beim Chat noch beim Aufstehen für einen Frame an eine andere Position. */
.poker-seat[data-seat-slot] { contain: layout style; }
.poker-empty-seat { padding: 0; cursor: default; }
.poker-empty-seat-control {
  width: 100%; min-height: 78px; display: grid; place-items: center;
  align-content: center; gap: 4px; padding: 0; border: 0;
  border-radius: inherit; color: inherit; background: transparent;
  font: inherit; cursor: pointer;
}
.poker-empty-seat-control > span { font-size: 2rem; font-weight: 300; line-height: .8; }
.poker-empty-seat-control > small {
  max-width: 68px; color: #789e98; font-size: .46rem; font-weight: 900;
  letter-spacing: .1em; line-height: 1.15; text-align: center;
}
.poker-empty-seat:has(.poker-empty-seat-control:not(:disabled)):hover {
  transform: translate(-50%, -50%) scale(1.09);
  border-color: rgba(128,255,216,.9); background: rgba(7, 48, 43, .9);
  box-shadow: 0 0 0 5px rgba(58,255,193,.08), 0 0 32px rgba(44,255,188,.24);
}
.poker-empty-seat-control:disabled { cursor: default; opacity: .46; }
.poker-invite-section.seat-invite-focus { animation: seatInviteFocusV27 .75s ease-in-out 3; }
@keyframes seatInviteFocusV27 {
  50% { box-shadow: 0 0 0 2px rgba(85,255,202,.36), 0 0 34px rgba(48,255,190,.22); border-color: rgba(85,255,202,.65); }
}
.poker-buyin-presets { grid-template-columns: repeat(3, 1fr); }
#pokerBuyinMessage.hidden { display: none !important; }
.site-footer a { color: #ffe29a; font-weight: 900; text-decoration: underline; text-underline-offset: 2px; }
.site-footer a:hover { color: #fff3c9; }
.chips,
.multi-chip-palette { flex-wrap: wrap; }
.chip-1000,
.chip-2500 { font-size: .68rem; }

/* =========================================================
   V28 · CASINO-FEINSCHLIFF, LEADERBOARD & POKER-SHOWDOWN
   ========================================================= */

/* Developer ist jetzt zugleich ein vollwertiges Spielerkonto. */
body.developer-mode > .topbar { display: grid !important; }
body.developer-mode > .developer-app:not(.hidden) { display: grid !important; }
body.developer-mode > .layout:not(.hidden) { display: grid !important; }
body.developer-mode > .multiplayer-app:not(.hidden),
body.developer-mode > .poker-app:not(.hidden) { display: block !important; }

.developer-game-launcher {
  width: min(1380px, calc(100% - 32px));
  margin: 18px auto 0;
  padding: 22px;
  display: grid;
  grid-template-columns: minmax(250px, .8fr) minmax(520px, 1.8fr);
  gap: 22px;
  align-items: center;
}
.developer-game-launcher h2 { margin: 4px 0 8px; }
.developer-game-launcher p { margin: 0; color: var(--muted); }
.developer-game-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.developer-game-actions .home-game-btn { min-height: 92px; }

/* Lautstärke am Logo */
.topbar { position: sticky; }
.brand-volume-button { border: 0; cursor: pointer; padding: 0; font: inherit; color: inherit; }
.brand-volume-button:focus-visible { outline: 3px solid rgba(92, 255, 216, .7); outline-offset: 4px; }
.volume-popover {
  position: absolute;
  z-index: 120;
  top: calc(100% + 10px);
  left: 14px;
  width: min(310px, calc(100vw - 28px));
  padding: 14px 16px 16px;
  border: 1px solid rgba(113, 255, 221, .28);
  border-radius: 16px;
  background: rgba(5, 15, 25, .97);
  box-shadow: 0 20px 50px rgba(0,0,0,.48), 0 0 30px rgba(43,255,202,.08);
}
.volume-popover label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.volume-popover input { width: 100%; accent-color: #52ffd0; }
.currency-value, .stat-pill strong { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.gold-symbol { color: #ffd45e; font-style: normal; filter: drop-shadow(0 0 5px rgba(255, 201, 67, .55)); }

/* Leaderboard */
.leaderboard-panel { width: min(1120px, calc(100% - 28px)); margin: 18px auto 44px; padding: 22px; }
.leaderboard-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.leaderboard-head h2 { margin: 3px 0 0; }
.leaderboard-list { display: grid; gap: 7px; max-height: 460px; overflow-y: auto; padding-right: 4px; scrollbar-gutter: stable; }
.leaderboard-row { display: grid; grid-template-columns: 52px 46px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 62px; padding: 9px 14px; border: 1px solid rgba(255,255,255,.07); border-radius: 14px; background: rgba(7,18,29,.72); }
.leaderboard-row.is-me { border-color: rgba(75,255,202,.5); box-shadow: inset 3px 0 0 #4cffca; }
.leaderboard-row.top-1 { background: linear-gradient(100deg, rgba(110,78,11,.58), rgba(17,25,34,.84)); border-color: rgba(255,211,89,.46); }
.leaderboard-row.top-2 { border-color: rgba(198,218,235,.28); }
.leaderboard-row.top-3 { border-color: rgba(213,139,73,.3); }
.leaderboard-rank { color: #9ab2bf; font-size: .78rem; }
.leaderboard-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.07); font-size: 1.2rem; }
.leaderboard-player { display: grid; min-width: 0; }
.leaderboard-player b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-player small { color: #729083; font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; }
.leaderboard-chips { display: inline-flex; align-items: center; gap: 7px; color: #fff4c5; }
.leaderboard-empty { padding: 24px; text-align: center; color: var(--muted); }

/* Größere Glücksrad-Zahlen und sichtbarer Gewinner-Pop. */
.daily-wheel span { inset: 13px !important; font-size: clamp(17px, 2.2vw, 23px) !important; line-height: 1 !important; text-shadow: 0 2px 4px rgba(0,0,0,.65); transform-origin: 50% 50%; }
.daily-wheel span.wheel-winning-segment { z-index: 8; animation: wheelWinnerPopV28 1.45s cubic-bezier(.16,.84,.27,1) both; color: #fff9c8; text-shadow: 0 0 8px #fff, 0 0 18px #ffd758, 0 3px 5px #000; }
@keyframes wheelWinnerPopV28 {
  0% { scale: 1; filter: brightness(1); }
  30% { scale: 1.65; filter: brightness(1.9) drop-shadow(0 0 12px #ffe277); }
  62% { scale: 1.38; filter: brightness(1.55) drop-shadow(0 0 8px #ffe277); }
  100% { scale: 1.22; filter: brightness(1.28); }
}

/* Neue Einsätze */
.chip-5000 { background: linear-gradient(145deg, #111, #454545); border-color: #fff1a5 !important; box-shadow: inset 0 0 0 4px #191919, inset 0 0 0 7px #e7c763, 0 5px 14px rgba(0,0,0,.35); }
.chip-10000 { background: linear-gradient(145deg, #064f4b, #12b2a4); }
.chip-20000 { background: linear-gradient(145deg, #522043, #c74993); }
.chip-50000 { background: linear-gradient(145deg, #63460b, #e6b52f); color: #171006 !important; }
.chip-100000 { background: linear-gradient(145deg, #1d335a, #5d8fe6); }
.chip-500000 { background: linear-gradient(145deg, #4d1549, #e659dd); }
.table-chip.chip-value-5000, .laid-chip.chip-value-5000 { background: #262626; border-color: #f3d56d; }
.table-chip.chip-value-10000, .laid-chip.chip-value-10000 { background: #119b91; }
.table-chip.chip-value-20000, .laid-chip.chip-value-20000 { background: #ac397e; }
.table-chip.chip-value-50000, .laid-chip.chip-value-50000 { background: #dbad2c; color: #161006; }
.table-chip.chip-value-100000, .laid-chip.chip-value-100000 { background: #4f7fce; }
.table-chip.chip-value-500000, .laid-chip.chip-value-500000 { background: #cc48c4; }
.chip-5000, .chip-10000, .chip-20000, .chip-50000, .chip-100000, .chip-500000 { font-size: .61rem; }

/* Karten: nur Rang in den Ecken, genau ein großes Farbsymbol in der Mitte. */
.playing-card .corner { display: block; }
.playing-card .corner .rank { line-height: 1; }
.playing-card .corner .suit { display: none !important; }
.playing-card .card-center { font-size: clamp(30px, 3.6vw, 46px); line-height: 1; }

/* Pokerfeld und Pot */
.poker-pot { top: 33.5% !important; z-index: 14; }
.poker-community { top: 53.5% !important; }
.poker-chat-section { min-height: 330px !important; height: 330px !important; overflow: hidden !important; }
.poker-chat-section .chat-messages, .poker-sidebar .poker-chat-section #pokerChatMessages { height: 220px !important; max-height: 220px !important; min-height: 220px !important; overflow-y: auto !important; flex: 0 0 220px !important; }
.poker-chat-section .chat-form { display: grid !important; grid-template-columns: minmax(0,1fr) auto; gap: 8px; min-height: 52px; flex: 0 0 52px !important; margin-top: auto; padding-bottom: 2px; }
.poker-chat-section .chat-form input { min-width: 0; }

/* Timer wird dynamisch in den Avatar des aktiven Spielers verschoben. */
.poker-avatar { position: relative; overflow: visible !important; }
.poker-avatar > .poker-table-timer {
  position: absolute !important;
  z-index: 30;
  left: calc(100% + 9px) !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  width: 56px !important;
  height: 56px !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  grid-template-rows: auto auto !important;
  gap: 0 !important;
}
.poker-table-timer strong, .poker-action-timer strong {
  display: grid !important;
  place-items: center !important;
  width: 100%;
  line-height: 1 !important;
  text-align: center !important;
  margin: 0 !important;
  transform: none !important;
}
.poker-table-timer small, .poker-action-timer small { line-height: 1 !important; text-align: center; margin: 0 !important; }
.poker-table-timer > i, .poker-action-timer > i { pointer-events: none; }

/* Fold-Wahl und Gewinnerdarstellung */
.poker-show-cards-prompt { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 10px; padding: 10px; border: 1px solid rgba(255,211,89,.32); border-radius: 13px; background: rgba(83,58,8,.22); }
.poker-show-cards-prompt.hidden { display: none !important; }
.poker-show-cards-prompt span { flex: 1 1 100%; color: #ffe996; font-weight: 900; }
.poker-seat.poker-hand-winner .poker-seat-panel { border-color: #ffd45a !important; background: linear-gradient(135deg, rgba(104,74,10,.95), rgba(30,24,11,.96)) !important; box-shadow: 0 0 0 3px rgba(255,213,87,.16), 0 0 34px rgba(255,200,52,.42) !important; animation: pokerWinnerGlowV28 1.35s ease-in-out infinite alternate; }
.poker-player-row.poker-hand-winner { border-color: rgba(255,212,82,.6); background: rgba(105,75,12,.32); color: #fff3b2; }
@keyframes pokerWinnerGlowV28 { to { filter: brightness(1.25); transform: translateY(-2px) scale(1.025); } }
.poker-pot-flight-chip { position: fixed; z-index: 9999; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: #fff3a1; background: radial-gradient(circle at 34% 30%, #fff9bd 0 15%, #e6af22 18% 58%, #78450c 62% 100%); border: 2px dashed #fff2a1; box-shadow: 0 0 13px rgba(255,202,44,.7); pointer-events: none; font-size: 0; }

/* Spielauswahl gibt es ausschließlich auf der Startseite bzw. in der Developer-Zentrale. */
body.multiplayer-live #homeApp,
body.poker-live #homeApp { display: none !important; }

@media (max-width: 1050px) {
  .developer-game-launcher { grid-template-columns: 1fr; }
  .developer-game-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .poker-pot { top: 35% !important; }
}
@media (max-width: 720px) {
  .volume-popover { position: fixed; top: 76px; left: 10px; }
  .leaderboard-panel { padding: 14px; }
  .leaderboard-row { grid-template-columns: 42px 38px minmax(0,1fr) auto; padding: 8px; }
  .leaderboard-avatar { width: 34px; height: 34px; }
  .developer-game-actions { grid-template-columns: 1fr; }
  .poker-pot { top: 34% !important; }
  .poker-community { top: 52.5% !important; }
  .poker-chat-section { height: 322px !important; min-height: 322px !important; }
  .poker-avatar > .poker-table-timer { left: calc(100% + 5px) !important; width: 48px !important; height: 48px !important; }
  .poker-table-timer strong { font-size: .82rem !important; }
  .poker-table-timer small { font-size: .32rem !important; }
}

/* =========================================================
   V29 · EINHEITLICHE SPIELANSICHTEN, POKER & ROULETTE-TISCH
   ========================================================= */

/* Startseite ist die einzige Ansicht mit Spieleauswahl und Leaderboard. */
#homeApp.hidden,
body:not(.home-screen) #homeApp,
body.developer-mode #homeApp {
  display: none !important;
}
body.home-screen #homeApp:not(.hidden) {
  display: block !important;
}
body:not(.home-screen) .leaderboard-panel,
body:not(.home-screen) .home-panel {
  display: none !important;
}
.home-game-btn.developer-entry {
  background:
    linear-gradient(135deg, rgba(255,210,87,.18), rgba(95,57,163,.28)),
    rgba(7,17,29,.96);
  border-color: rgba(255,214,102,.42);
}

/* Das Developer-Konto landet auf der normalen Startseite. Die alte Zentrale
   wird ausschließlich über den separaten Button geöffnet. */
.developer-app {
  width: min(1500px, calc(100% - 26px));
  margin: 13px auto 30px;
}
.developer-game-launcher { display: none !important; }
body.developer-mode > .topbar { display: grid !important; }
body.developer-mode > .developer-app:not(.hidden) { display: grid !important; }
body.developer-mode > .layout,
body.developer-mode > .multiplayer-app,
body.developer-mode > .poker-app,
body.developer-mode > .roulette-app,
body.developer-mode > .slots-app { display: none !important; }

/* Leaderboard: anklickbare Profile und kein Flackern am Aktualisieren-Button. */
.leaderboard-row {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.leaderboard-row:hover,
.leaderboard-row:focus-visible {
  border-color: rgba(85,255,205,.52);
  background: rgba(12,35,43,.9);
  outline: none;
}
#leaderboardRefresh,
#leaderboardRefresh:disabled {
  animation: none !important;
  transition: background-color .16s ease, border-color .16s ease !important;
  transform: none !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Glücksrad: nicht die Zahl, sondern der komplette Sektor hebt sich kurz ab. */
.daily-wheel,
.daily-wheel-hero {
  perspective: 700px;
  transform-style: preserve-3d;
}
.daily-wheel span {
  isolation: isolate;
  overflow: visible;
}
.daily-wheel span::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -7px;
  left: 50%;
  width: 104px;
  height: 103px;
  opacity: 0;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  border-radius: 13px 13px 40% 40%;
  background: linear-gradient(180deg, rgba(255,245,171,.96), rgba(255,181,45,.85));
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.52);
  transform: translateX(-50%) translateZ(0) scale(.96);
  transform-origin: 50% 100%;
  pointer-events: none;
}
.daily-wheel span.wheel-winning-segment {
  animation: none !important;
  color: #fff !important;
  text-shadow: 0 2px 5px #000, 0 0 8px rgba(255,255,255,.8) !important;
}
.daily-wheel span.wheel-winning-segment::before {
  opacity: 1;
  animation: wheelSectorLiftV29 1.45s cubic-bezier(.16,.84,.27,1) both;
}
@keyframes wheelSectorLiftV29 {
  0% { transform: translateX(-50%) translateY(0) translateZ(0) scale(.96); filter: brightness(1); box-shadow: 0 0 0 rgba(255,217,87,0); }
  38% { transform: translateX(-50%) translateY(-10px) translateZ(55px) scale(1.12); filter: brightness(1.22); box-shadow: 0 24px 32px rgba(0,0,0,.5), 0 0 32px rgba(255,213,78,.82), inset 0 0 0 2px rgba(255,255,255,.72); }
  72% { transform: translateX(-50%) translateY(-6px) translateZ(30px) scale(1.06); filter: brightness(1.12); }
  100% { transform: translateX(-50%) translateY(0) translateZ(8px) scale(1.02); filter: brightness(1.06); box-shadow: 0 10px 18px rgba(0,0,0,.32), 0 0 18px rgba(255,213,78,.42); }
}

/* Solo-Blackjack: 14 Einsätze exakt in zwei Reihen zu je sieben Chips. */
#gameApp #betControls .chips {
  display: grid !important;
  grid-template-columns: repeat(7, 52px) !important;
  grid-template-rows: repeat(2, 52px) !important;
  gap: 8px !important;
  flex: 0 0 auto;
}
#gameApp #betControls {
  flex-wrap: wrap;
}

/* Privater Blackjack: zehn Werte, zwei Reihen zu je fünf, ohne Verschiebung
   der restlichen Steuerung. */
body.multiplayer-live .multi-chip-palette {
  display: grid !important;
  grid-template-columns: repeat(5, 48px) !important;
  grid-template-rows: repeat(2, 48px) !important;
  gap: 6px !important;
  flex: 0 0 auto;
}
body.multiplayer-live .multi-chip-palette .chip {
  width: 48px !important;
  height: 48px !important;
}

/* Alle Dialog-Schließen-Schaltflächen einheitlich rechts oben. */
.modal-card,
.poker-buyin-panel,
.player-profile-panel,
.social-drawer,
.shop-panel,
.daily-wheel-stage,
.support-panel {
  position: relative !important;
}
.drawer-close.static,
#closePokerBuyin,
#closePlayerProfile,
#closeDailyWheel {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 30 !important;
  margin: 0 !important;
}

/* Kartenlayout überall identisch: Rang in den Ecken, ein Symbol in der Mitte. */
.playing-card {
  width: var(--card-w) !important;
  height: calc(var(--card-w) * 1.4324) !important;
  aspect-ratio: auto !important;
}
.playing-card .corner .rank {
  font-size: calc(var(--card-w) * .35) !important;
  line-height: .9 !important;
}
.playing-card .card-center {
  font-size: calc(var(--card-w) * .51) !important;
  line-height: 1 !important;
}
.playing-card .top-left { top: calc(var(--card-w) * .08) !important; left: calc(var(--card-w) * .09) !important; }
.playing-card .bottom-right { right: calc(var(--card-w) * .09) !important; bottom: calc(var(--card-w) * .08) !important; }
.poker-app .playing-card .corner .suit { display: none !important; }
.poker-app .playing-card .card-front { color: #101620 !important; }
.poker-app .playing-card .card-front.red { color: #cf203b !important; }
.poker-community .playing-card {
  --card-w: 68px !important;
  margin: 0 !important;
  transform: none !important;
}
.poker-community .poker-card-slot {
  width: 68px !important;
  height: calc(68px * 1.4324) !important;
  margin: 0 !important;
}
.poker-hole-cards .playing-card {
  --card-w: 52px !important;
  width: var(--card-w) !important;
  height: calc(var(--card-w) * 1.4324) !important;
  margin-left: -10px !important;
  transform: none !important;
}
.poker-seat.is-me .poker-hole-cards .playing-card { --card-w: 60px !important; }
.poker-hole-cards .playing-card:first-child { margin-left: 0 !important; transform: none !important; }
.poker-hole-cards .playing-card:last-child { transform: none !important; }

/* Poker gewinnt statisch Gold – keine Positions- oder Wiederholungsanimation. */
.poker-seat.poker-hand-winner,
.poker-seat.poker-hand-winner .poker-seat-panel,
.poker-player-row.poker-hand-winner {
  animation: none !important;
  transform: none !important;
}
.poker-seat.poker-hand-winner { transform: translate(-50%, -50%) !important; }
.poker-seat.poker-hand-winner .poker-seat-panel {
  filter: brightness(1.15) !important;
  border-color: #ffd45a !important;
  background: linear-gradient(135deg, rgba(104,74,10,.95), rgba(30,24,11,.96)) !important;
  box-shadow: 0 0 0 3px rgba(255,213,87,.16), 0 0 34px rgba(255,200,52,.42) !important;
}

/* Kompakterer Pokertisch, Gemeinschaftskarten exakt in der Mitte und Pot darüber. */
@media (min-width: 1181px) {
  .poker-felt { min-height: 560px !important; }
  .poker-seat-top { top: 10% !important; }
  .poker-seat-bottom { top: 90% !important; }
  .poker-seat-upper-left, .poker-seat-upper-right { top: 25% !important; }
  .poker-seat-lower-left, .poker-seat-lower-right { top: 75% !important; }
}
.poker-community {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  align-items: center;
  justify-content: center;
}
.poker-pot { top: 34% !important; }
.poker-table-status { top: 65% !important; }

/* Rechte Pokerleiste reicht weiter nach unten; Nachrichtenfenster bleibt gleich,
   die Eingabe ist dauerhaft sichtbar. */
.poker-sidebar {
  min-height: 760px !important;
  max-height: none !important;
  overflow: visible !important;
  grid-template-rows: auto auto minmax(370px, 1fr);
  align-self: stretch;
}
.poker-sidebar .poker-chat-section,
.poker-chat-section {
  display: flex !important;
  flex: 0 0 370px !important;
  height: 370px !important;
  min-height: 370px !important;
  max-height: 370px !important;
  overflow: hidden !important;
  padding-bottom: 14px !important;
}
.poker-sidebar .poker-chat-section #pokerChatMessages,
.poker-chat-section .chat-messages {
  flex: 0 0 220px !important;
  width: 100%;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  overflow-y: auto !important;
}
.poker-chat-section .chat-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  flex: 0 0 56px !important;
  min-height: 56px !important;
  margin-top: 10px !important;
  overflow: visible !important;
}

/* Timer als Pegelleiste direkt unter dem Profil des aktiven Spielers. */
.poker-table-timer {
  position: absolute !important;
  z-index: 40 !important;
  top: auto !important;
  right: 8px !important;
  bottom: -8px !important;
  left: 8px !important;
  width: auto !important;
  min-width: 0 !important;
  height: 5px !important;
  min-height: 5px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  transform: none !important;
  background: rgba(255,255,255,.12) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.48) !important;
  overflow: hidden !important;
  pointer-events: none;
}
.poker-table-timer strong,
.poker-table-timer small { display: none !important; }
.poker-table-timer i {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  border-radius: inherit;
  background: linear-gradient(90deg, #32e6aa, #8affd9) !important;
  transform: scaleX(var(--poker-timer-progress, 1)) !important;
  transform-origin: left center !important;
  transition: transform .25s linear, background .18s ease !important;
}
.poker-table-timer.urgent i { background: linear-gradient(90deg, #ff4964, #ff9b69) !important; }
.poker-action-timer { display: none !important; }

/* Beim Sitzplatz selbst steht kein zusätzlicher Buy-in-Text. */
.poker-seat-buyin { display: none !important; }

/* Quick Match immer oben rechts innerhalb seiner Kachel. */
.home-game-btn.poker-matchmaking { position: relative; }
.home-game-btn.poker-matchmaking .game-live-badge.quick {
  position: absolute !important;
  top: 12px !important;
  right: 14px !important;
  bottom: auto !important;
  left: auto !important;
}

/* Dealer- und Spielerkarten im Blackjack bleiben exakt gleich groß und hoch. */
#gameApp .solo-private-felt {
  --solo-card-width: 74px !important;
  --solo-card-height: 106px !important;
  --solo-card-row-height: 112px !important;
}
#gameApp .solo-private-dealer-seat .playing-card,
#gameApp .solo-private-player-seat .playing-card {
  --card-w: var(--solo-card-width) !important;
  width: var(--solo-card-width) !important;
  height: var(--solo-card-height) !important;
  min-height: var(--solo-card-height) !important;
  max-height: var(--solo-card-height) !important;
}
#gameApp .solo-private-dealer-seat .card-row,
#gameApp .solo-private-player-seat .hand-cards {
  height: var(--solo-card-row-height) !important;
  min-height: var(--solo-card-row-height) !important;
  max-height: var(--solo-card-row-height) !important;
}

/* Roulette: vollständiges europäisches Rad und echter Setztisch. */
.roulette-casino-shell { min-width: 0; }
.roulette-casino-felt {
  display: grid !important;
  grid-template-columns: minmax(300px, 390px) minmax(650px, 1fr);
  grid-template-areas:
    "copy copy"
    "result result"
    "wheel table"
    "summary summary";
  align-items: center;
  gap: 18px 24px;
  min-height: 650px !important;
  padding: 42px 30px 28px !important;
  border-radius: 38px !important;
}
.roulette-casino-felt > .table-copy { grid-area: copy; }
.roulette-casino-felt > .round-result-banner { grid-area: result; }
.roulette-wheel-stage { grid-area: wheel; display: grid; place-items: center; min-height: 390px; }
.roulette-betting-table { grid-area: table; min-width: 0; }
.roulette-table-summary { grid-area: summary; display: flex; align-items: center; justify-content: center; gap: 18px; }

.roulette-wheel-real {
  position: relative !important;
  width: 340px !important;
  height: 340px !important;
  border: 18px solid #7a4c20 !important;
  border-radius: 50%;
  overflow: visible !important;
  background:
    radial-gradient(circle at 50% 50%, #d8b25b 0 9%, #30251b 9.5% 16%, transparent 16.5%),
    radial-gradient(circle at 50% 50%, #18201e 0 51%, #d5b25d 51.5% 55%, #171312 55.5% 68%, #7a4c20 68.5% 100%) !important;
  box-shadow: 0 28px 60px rgba(0,0,0,.55), inset 0 0 0 4px #e9c979, inset 0 0 34px rgba(0,0,0,.82) !important;
  animation: none !important;
}
.roulette-number-ring,
.roulette-ball-track {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  transform-origin: 50% 50%;
}
.roulette-number-ring { z-index: 3; }
.roulette-pocket {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 25px;
  height: 42px;
  margin: -21px 0 0 -12.5px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 5px 5px 11px 11px;
  transform: rotate(var(--roulette-pocket-angle)) translateY(-137px);
  transform-origin: 50% 50%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.55);
}
.roulette-pocket.red { background: linear-gradient(#d94a54, #77151e); }
.roulette-pocket.black { background: linear-gradient(#34373a, #050607); }
.roulette-pocket.green { background: linear-gradient(#24a668, #075237); }
.roulette-pocket b {
  color: #fff;
  font-size: 9px;
  line-height: 1;
  transform: rotate(calc(var(--roulette-pocket-angle) * -1));
  text-shadow: 0 1px 2px #000;
}
.roulette-pocket.winning-pocket {
  z-index: 12;
  filter: brightness(1.7) drop-shadow(0 0 8px #ffe076);
  animation: roulettePocketWinV29 .8s ease-in-out 3 alternate;
}
@keyframes roulettePocketWinV29 { to { scale: 1.28; } }
.roulette-ball-track { z-index: 8; pointer-events: none; }
.roulette-ball {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff, #e6e0cf 42%, #8d8a80 100%) !important;
  box-shadow: 0 3px 7px rgba(0,0,0,.75), 0 0 8px rgba(255,255,255,.75) !important;
  transform: translate(-50%, -50%) translateY(-142px);
}
.roulette-spindle {
  position: absolute;
  z-index: 10;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  width: 100px;
  height: 100px;
  border: 7px solid #b78a3b;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 38% 32%, #ffe5a1, #6f481c 46%, #16110c 49% 100%);
  box-shadow: 0 8px 22px rgba(0,0,0,.6), inset 0 0 0 3px rgba(255,255,255,.15);
}
.roulette-spindle i { position: absolute; width: 7px; height: 74px; border-radius: 99px; background: linear-gradient(#f7d98b, #79501f); transform: rotate(45deg); }
.roulette-spindle i::after { content: ""; position: absolute; inset: 0; transform: rotate(90deg); border-radius: inherit; background: inherit; }
.roulette-number {
  position: relative !important;
  z-index: 3;
  inset: auto !important;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(8,10,10,.9);
  font-size: 24px !important;
}

.roulette-number-board {
  display: grid;
  grid-template-columns: 56px repeat(12, minmax(42px, 1fr)) 62px;
  grid-template-rows: repeat(3, 64px);
  gap: 4px;
  min-width: 720px;
}
.roulette-cell {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 6px;
  border: 1px solid rgba(255,238,187,.48) !important;
  border-radius: 6px !important;
  color: #fff;
  background: linear-gradient(145deg, #19553d, #0a2f28) !important;
  font-weight: 1000;
  cursor: pointer;
  overflow: visible;
  transition: transform .15s ease, filter .15s ease, border-color .15s ease;
}
.roulette-number-cell { font-size: 1.08rem; }
.roulette-cell.red { background: linear-gradient(145deg, #a91f31, #5f111c) !important; }
.roulette-cell.black { background: linear-gradient(145deg, #24272b, #060708) !important; }
.roulette-cell.zero { background: linear-gradient(145deg, #16875a, #075137) !important; font-size: 1.4rem; }
.roulette-cell:hover,
.roulette-cell.drag-over { transform: translateY(-2px); filter: brightness(1.22); border-color: #fff1a8 !important; z-index: 4; }
.roulette-cell.has-bet { box-shadow: inset 0 0 0 2px rgba(255,220,92,.55), 0 0 18px rgba(255,203,56,.2); }
.roulette-cell.roulette-place-pop { animation: roulettePlaceV29 .28s ease; }
@keyframes roulettePlaceV29 { 50% { transform: scale(1.1); } }
.roulette-cell.winning-number { z-index: 8; animation: rouletteWinningCellV29 .7s ease-in-out 4 alternate; }
@keyframes rouletteWinningCellV29 { to { transform: translateY(-8px) scale(1.12); filter: brightness(1.65); box-shadow: 0 15px 28px rgba(0,0,0,.5), 0 0 28px #ffe16a; } }
.roulette-column-cell { font-size: .58rem; letter-spacing: .03em; }
.roulette-bet-chip {
  position: absolute;
  z-index: 6;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  min-width: 30px;
  height: 30px;
  padding: 0 5px;
  border: 3px dashed rgba(255,255,255,.75);
  border-radius: 50%;
  color: #10100d;
  background: linear-gradient(145deg, #ffe585, #d7a92e);
  box-shadow: 0 5px 10px rgba(0,0,0,.48), inset 0 0 0 3px rgba(91,57,7,.25);
  transform: translate(-50%, -50%);
  font-size: .55rem;
  pointer-events: none;
}
.roulette-outside-board {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 4px;
  min-width: 720px;
  margin-top: 5px;
}
.roulette-outside-board .wide { grid-column: span 2; min-height: 48px; }
.roulette-total-bet {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border: 1px solid rgba(255,221,125,.27);
  border-radius: 14px;
  background: rgba(4,16,16,.74);
}
.roulette-total-bet small { color: #b5c9c2; font-size: .6rem; letter-spacing: .1em; }
.roulette-total-bet strong { display: inline-flex; align-items: center; gap: 6px; color: #fff0b2; }
.roulette-status { margin: 0 !important; }
.roulette-chip-rack { align-items: center; flex-wrap: wrap; }
.roulette-chips .chip.selected { transform: translateY(-7px); filter: brightness(1.22); box-shadow: 0 0 0 4px rgba(255,218,95,.2), 0 11px 20px rgba(0,0,0,.45); }

@media (max-width: 1180px) {
  .roulette-casino-felt {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "result" "wheel" "table" "summary";
  }
  .roulette-betting-table { overflow-x: auto; padding-bottom: 8px; }
  .poker-sidebar { min-height: 0 !important; grid-template-rows: auto; }
  .poker-sidebar .poker-chat-section,
  .poker-chat-section { height: 350px !important; min-height: 350px !important; max-height: 350px !important; }
}

@media (max-width: 800px) {
  #gameApp #betControls .chips {
    grid-template-columns: repeat(7, 44px) !important;
    grid-template-rows: repeat(2, 44px) !important;
    gap: 5px !important;
  }
  #gameApp #betControls .chip { width: 44px !important; height: 44px !important; font-size: .58rem; }
  .poker-community .playing-card { --card-w: 48px !important; }
  .poker-community .poker-card-slot { width: 48px !important; height: calc(48px * 1.4324) !important; }
  .poker-hole-cards .playing-card { --card-w: 42px !important; }
  .poker-seat.is-me .poker-hole-cards .playing-card { --card-w: 48px !important; }
  .roulette-wheel-real { width: 300px !important; height: 300px !important; }
  .roulette-pocket { transform: rotate(var(--roulette-pocket-angle)) translateY(-120px); }
  .roulette-ball { transform: translate(-50%, -50%) translateY(-125px); }
}

@media (max-width: 560px) {
  #gameApp #betControls .chips {
    width: 100%;
    grid-template-columns: repeat(7, minmax(36px, 1fr)) !important;
    grid-template-rows: repeat(2, 40px) !important;
  }
  #gameApp #betControls .chip { width: 40px !important; height: 40px !important; justify-self: center; }
  body.multiplayer-live .multi-chip-palette {
    grid-template-columns: repeat(5, minmax(40px, 1fr)) !important;
    grid-template-rows: repeat(2, 42px) !important;
    width: 100%;
  }
  body.multiplayer-live .multi-chip-palette .chip { width: 42px !important; height: 42px !important; justify-self: center; }
  .poker-felt { min-height: 610px !important; }
  .poker-sidebar .poker-chat-section,
  .poker-chat-section { height: 335px !important; min-height: 335px !important; max-height: 335px !important; }
  .poker-sidebar .poker-chat-section #pokerChatMessages,
  .poker-chat-section .chat-messages { height: 205px !important; min-height: 205px !important; max-height: 205px !important; flex-basis: 205px !important; }
  .roulette-casino-felt { padding: 42px 10px 20px !important; }
  .roulette-wheel-real { width: 270px !important; height: 270px !important; }
  .roulette-pocket { width: 21px; height: 34px; margin: -17px 0 0 -10.5px; transform: rotate(var(--roulette-pocket-angle)) translateY(-107px); }
  .roulette-pocket b { font-size: 7px; }
  .roulette-ball { width: 12px !important; height: 12px !important; transform: translate(-50%, -50%) translateY(-112px); }
  .roulette-spindle { width: 84px; height: 84px; }
  .roulette-number-board,
  .roulette-outside-board { min-width: 650px; }
  .roulette-table-summary { align-items: stretch; flex-direction: column; }
}

/* V29 Roulette-Nachjustierung: kompletter Tisch ohne abgeschnittene Felder. */
.roulette-number-board,
.roulette-outside-board { min-width: 650px !important; }
.roulette-controls {
  display: grid !important;
  grid-template-columns: 170px minmax(0, 1fr) !important;
  gap: 12px 18px !important;
  align-items: center !important;
}
.roulette-controls .control-title { min-width: 0; }
.roulette-chips {
  display: grid !important;
  grid-template-columns: repeat(9, minmax(48px, 1fr));
  justify-items: center;
  gap: 8px !important;
  min-width: 0;
}
.roulette-actions {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100%;
}
@media (max-width: 800px) {
  .roulette-controls { grid-template-columns: 1fr !important; }
  .roulette-chips { grid-template-columns: repeat(5, minmax(48px, 1fr)); }
  .roulette-actions { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 560px) {
  .roulette-number-board,
  .roulette-outside-board { min-width: 620px !important; }
  .roulette-chips { grid-template-columns: repeat(3, minmax(48px, 1fr)); }
}

/* V29 Abschlusskorrekturen */
/* Der sichtbare Farbfächer liegt über dem Rad, die Zahl bleibt unbewegt darüber. */
.daily-wheel span::before { z-index: -1 !important; }
.daily-wheel span.wheel-winning-segment { z-index: 20 !important; isolation: isolate !important; }

/* Der komplette europäische Setztisch bleibt auf Desktop ohne abgeschnittene Kolonnen sichtbar. */
@media (min-width: 1181px) {
  .roulette-number-board,
  .roulette-outside-board { min-width: 610px !important; }
  .roulette-number-board { grid-template-columns: 52px repeat(12, minmax(36px, 1fr)) 54px !important; }
  .roulette-casino-felt { grid-template-columns: minmax(300px, .82fr) minmax(610px, 1.55fr) !important; column-gap: 18px !important; }
}

/* =========================================================
   V30 · KOMPAKTE ZAHLEN, STABILES POKER, ROULETTE & 3×3 SLOTS
   ========================================================= */

/* Chipwerte stehen exakt mittig und werden ab 1.000 kompakt beschriftet. */
.chip,
.table-chip,
.roulette-bet-chip {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  text-align: center !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  font-variant-numeric: tabular-nums;
}
.chip { letter-spacing: -.02em; }

/* Das Kartenrückenmuster und das Emblem sind geometrisch zentriert. */
.card-back {
  background-position: center center, center center !important;
  background-origin: border-box !important;
}
.card-back::before { inset: 6px !important; }
.back-emblem {
  position: absolute !important;
  inset: 50% auto auto 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}

/* Developer-Einstieg: heller, ohne wanderndes ADMIN-Badge. */
.home-game-btn.developer-entry {
  color: #fff9df !important;
  border-color: rgba(255, 225, 120, .74) !important;
  background:
    linear-gradient(135deg, rgba(255, 213, 79, .42), rgba(126, 83, 226, .58)),
    #17223a !important;
  box-shadow: 0 12px 30px rgba(95, 57, 163, .34), inset 0 1px 0 rgba(255,255,255,.2) !important;
}
.home-game-btn.developer-entry span { color: #fff !important; text-shadow: 0 2px 8px rgba(0,0,0,.62); }

/* Die Zentrale bleibt stabil, mittig und wird nicht mehr durch andere Spiel-Shells verschoben. */
body.developer-mode { overflow-x: hidden !important; }
body.developer-mode > .developer-app:not(.hidden) {
  display: block !important;
  box-sizing: border-box !important;
  width: min(1440px, calc(100% - 28px)) !important;
  max-width: 1440px !important;
  margin: 14px auto 34px !important;
  padding: 0 !important;
  transform: none !important;
}
body.developer-mode .developer-header,
body.developer-mode .admin-summary,
body.developer-mode .developer-security,
body.developer-mode .admin-panel,
body.developer-mode .developer-card-lab {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  transform: none !important;
}

/* Pokergewinner: nur Farbe/Glow, niemals Positions- oder Skalierungsbewegung. */
.poker-seat {
  transition: opacity .22s ease, filter .22s ease !important;
}
.poker-seat.poker-hand-winner {
  transform: translate(-50%, -50%) !important;
  animation: none !important;
}
.poker-seat.poker-hand-winner .poker-seat-panel {
  transform: translateX(-50%) !important;
  animation: none !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.poker-player-row.poker-hand-winner {
  transform: none !important;
  animation: none !important;
}

/* Etwas mehr Tischhöhe: der untere Spieler bleibt vollständig sichtbar. */
@media (min-width: 1181px) {
  .poker-felt { min-height: 600px !important; }
  .poker-seat-bottom { top: 87.5% !important; }
  .poker-seat-lower-left,
  .poker-seat-lower-right { top: 73.5% !important; }
  .poker-seat-upper-left,
  .poker-seat-upper-right { top: 25% !important; }
}

/* Noch nicht ausgeteilte Hole Cards reservieren ihren Platz unsichtbar. */
.poker-hole-card-slot {
  width: 52px;
  height: calc(52px * 1.4324);
  margin-left: -10px;
  flex: 0 0 auto;
  opacity: 0;
  pointer-events: none;
}
.poker-hole-card-slot:first-child { margin-left: 0; }
.poker-seat.is-me .poker-hole-card-slot {
  width: 60px;
  height: calc(60px * 1.4324);
}

/* Untere Pokersteuerung vertikal kompakter. */
.poker-controls {
  margin-top: 10px !important;
  padding: 8px 10px !important;
}
.poker-lobby-controls {
  min-height: 62px !important;
  gap: 9px !important;
}
.poker-stack-summary { padding: 5px 9px !important; }
.poker-action-controls {
  min-height: 64px !important;
  gap: 7px !important;
  align-items: center !important;
}
.poker-action-controls .action-btn {
  min-height: 54px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}
.poker-raise-control {
  padding: 6px 7px !important;
  gap: 5px !important;
}
.poker-waiting-controls,
.poker-result-controls { min-height: 64px !important; }

/* Rechte Leiste endet mit dem unteren Menü; Spielerliste oben, Chat fest unten. */
.poker-layout { align-items: stretch !important; }
.poker-main-column { display: flex !important; min-height: 0; flex-direction: column; }
.poker-sidebar {
  position: relative !important;
  top: auto !important;
  align-self: stretch !important;
  display: flex !important;
  min-height: 0 !important;
  max-height: none !important;
  height: auto !important;
  flex-direction: column !important;
  overflow: hidden !important;
  gap: 10px !important;
  padding: 12px !important;
}
.poker-sidebar > section:first-child { flex: 0 0 auto; }
.poker-sidebar .poker-invite-section {
  flex: 0 0 auto;
  max-height: 130px;
  overflow-y: auto;
}
.poker-sidebar .poker-chat-section,
.poker-chat-section {
  flex: 0 0 310px !important;
  width: 100% !important;
  height: 310px !important;
  min-height: 310px !important;
  max-height: 310px !important;
  margin-top: auto !important;
  padding: 10px !important;
}
.poker-sidebar .poker-chat-section #pokerChatMessages,
.poker-chat-section .chat-messages {
  flex: 0 0 190px !important;
  height: 190px !important;
  min-height: 190px !important;
  max-height: 190px !important;
}
.poker-chat-section .chat-form {
  flex: 0 0 52px !important;
  min-height: 52px !important;
  margin-top: 8px !important;
}
.poker-player-list { gap: 5px !important; }
.poker-player-row { min-height: 43px; padding: 6px 8px !important; }
.poker-player-row.empty-seat-row {
  cursor: default;
  border-style: dashed;
  border-color: rgba(133,184,184,.15);
  background: rgba(3,10,16,.35);
  opacity: .72;
}
.poker-player-row.empty-seat-row > span { color: #73a79d; }
.poker-player-row.empty-seat-row > b { color: #536b70; }
.poker-player-row.waiting-seat-row { border-color: rgba(255,205,92,.25); }

/* Roulette: weniger ungenutzte Höhe oberhalb, Verlauf direkt über dem Setzfeld. */
.roulette-casino-felt {
  min-height: 570px !important;
  padding: 18px 24px 20px !important;
  gap: 10px 20px !important;
}
.roulette-wheel-stage { min-height: 350px !important; }
.roulette-casino-felt > .table-copy { margin: 0 !important; padding: 0 !important; }
.roulette-history-strip {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  margin-bottom: 7px;
  padding: 7px 9px;
  border: 1px solid rgba(255,226,139,.2);
  border-radius: 12px;
  background: rgba(3,13,14,.72);
  overflow: hidden;
}
.roulette-history-label {
  flex: 0 0 auto;
  color: #b7c8c3;
  font-size: .58rem;
  font-weight: 1000;
  letter-spacing: .14em;
}
.roulette-history-values {
  display: flex;
  min-width: 0;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.roulette-history-number {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
  color: #fff;
  font-size: .68rem;
  font-weight: 1000;
  cursor: pointer;
}
.roulette-history-number.red { background: #991f31; }
.roulette-history-number.black { background: #15191d; }
.roulette-history-number.green { background: #117a50; }
.roulette-history-empty { color: #708a88; font-size: .68rem; }
.roulette-pocket b {
  transform-origin: 50% 50% !important;
  font-variant-numeric: tabular-nums;
}

/* 3×3-Slots: echte Matrix mit fünf Gewinnlinien. */
.slots-machine { position: relative; overflow: hidden; }
.slot-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(82px, 1fr));
  grid-template-rows: repeat(3, 88px);
  gap: 8px;
  width: min(520px, 100%);
  margin: 22px auto 16px;
  padding: 14px;
  border: 2px solid rgba(255,213,104,.38);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(5,10,18,.98), rgba(22,15,34,.98));
  box-shadow: inset 0 0 30px rgba(0,0,0,.75), 0 18px 40px rgba(0,0,0,.45);
}
.slot-cell {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(143,198,220,.22);
  border-radius: 14px;
  color: #f8edf9;
  background:
    radial-gradient(circle at 50% 25%, rgba(96,213,255,.12), transparent 48%),
    linear-gradient(180deg, #1b2937, #090e17 75%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), inset 0 -12px 24px rgba(0,0,0,.38);
}
.slot-cell span {
  display: block;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1;
  filter: drop-shadow(0 6px 8px rgba(0,0,0,.55));
}
.slot-cell.spinning span { animation: slotMatrixRoll .18s linear infinite; animation-delay: var(--slot-delay, 0ms); }
.slot-cell.winning {
  border-color: #ffe16c;
  background: radial-gradient(circle, rgba(255,226,92,.3), rgba(35,26,8,.96));
  box-shadow: 0 0 24px rgba(255,210,64,.42), inset 0 0 20px rgba(255,231,124,.15);
  animation: slotCellWin .75s ease-in-out 3 alternate;
}
@keyframes slotMatrixRoll { 50% { transform: translateY(9px) scaleY(.8); filter: blur(1px); } }
@keyframes slotCellWin { to { transform: translateY(-3px) scale(1.035); filter: brightness(1.25); } }
.slots-payline-overlay { display: none; }
.slots-payouts { justify-content: center; flex-wrap: wrap; }

/* Lautstärkeschalter öffnet sichtbar den Regler. */
#soundToggle { font-size: 1.05rem !important; }
.volume-popover { z-index: 220 !important; }

@media (max-width: 1180px) {
  .poker-sidebar {
    position: static !important;
    overflow: visible !important;
  }
  .poker-sidebar .poker-chat-section,
  .poker-chat-section { margin-top: 0 !important; }
}

@media (max-width: 720px) {
  body.developer-mode > .developer-app:not(.hidden) { width: calc(100% - 14px) !important; margin: 7px auto 20px !important; }
  .slot-grid { grid-template-rows: repeat(3, 72px); padding: 9px; gap: 6px; }
  .slot-cell span { font-size: 2.1rem; }
  .roulette-casino-felt { padding-top: 12px !important; }
}

/* V30 Nachprüfung: Der Poker-Zeitpegel bleibt als reine Linie stabil. */
.poker-table-timer,
.poker-table-timer.urgent {
  animation: none !important;
  transform: none !important;
}
.poker-seat.poker-hand-winner,
.poker-seat.poker-hand-winner .poker-seat-panel,
.poker-player-row.poker-hand-winner {
  transition-property: color, border-color, background, box-shadow, filter, opacity !important;
}

/* =========================================================
   V31 · POKER-SEITENLEISTE, REGELN & ROULETTE-AUSRICHTUNG
   ========================================================= */

/* Lautstärke und Hilfe bleiben gleich groß; der Regler öffnet direkt am Lautsprecher. */
.header-actions { position: relative !important; }
.header-actions > #soundToggle,
.header-actions > #helpToggle {
  flex: 0 0 44px !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.08rem !important;
  line-height: 1 !important;
}
.header-actions > .volume-popover {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  right: 44px !important;
  left: auto !important;
  width: min(300px, calc(100vw - 24px)) !important;
  margin: 0 !important;
  transform: none !important;
}

/* Der separate Einladungsbereich entfällt; Einladungen laufen über freie Sitze. */
.poker-invite-section,
#pokerFriendsButton { display: none !important; }

/* Rechte Pokerleiste: mehr Höhe für den Chat, Eingabe bleibt vollständig sichtbar. */
.poker-sidebar {
  min-height: 0 !important;
  overflow: hidden !important;
}
.poker-sidebar > section:first-child {
  min-height: 0 !important;
  flex: 0 1 auto !important;
  overflow: hidden !important;
}
.poker-sidebar .poker-player-list {
  max-height: 322px !important;
  overflow-y: auto !important;
  scrollbar-gutter: stable;
}
.poker-sidebar .poker-chat-section,
.poker-chat-section {
  flex: 0 0 390px !important;
  height: 390px !important;
  min-height: 390px !important;
  max-height: 390px !important;
  margin-top: auto !important;
  padding: 10px !important;
  overflow: hidden !important;
}
.poker-sidebar .poker-chat-section #pokerChatMessages,
.poker-chat-section .chat-messages {
  flex: 1 1 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 245px !important;
  max-height: none !important;
  overflow-y: auto !important;
}
.poker-chat-section .chat-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  flex: 0 0 52px !important;
  min-height: 52px !important;
  margin-top: 8px !important;
  padding: 0 !important;
}
.poker-chat-section .chat-form input,
.poker-chat-section .chat-form button { height: 44px !important; min-height: 44px !important; }

/* Handanzeige sitzt kompakt im Profil und kann nicht mehr abgeschnitten werden. */
.poker-seat-panel {
  grid-template-rows: auto auto !important;
  min-height: 66px !important;
  overflow: visible !important;
}
.poker-seat-panel .poker-avatar { grid-row: 1 / span 2 !important; }
.poker-live-hand {
  position: static !important;
  inset: auto !important;
  grid-column: 2 / 4 !important;
  grid-row: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 1px 0 0 !important;
  padding: 2px 6px !important;
  transform: none !important;
  border: 1px solid rgba(95,255,204,.18) !important;
  border-radius: 7px !important;
  background: rgba(3,26,25,.72) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  pointer-events: none;
}
.poker-live-hand small {
  flex: 0 0 auto;
  color: #74a59b !important;
  font-size: .4rem !important;
  line-height: 1 !important;
}
.poker-live-hand strong {
  min-width: 0;
  overflow: hidden;
  color: #c8fff0 !important;
  font-size: .52rem !important;
  line-height: 1.05 !important;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}
.poker-hand-name { display: none !important; }

/* Hinweise im unteren Aktionsmenü entfallen; der Tischstatus bleibt sichtbar. */
.poker-action-info small,
#pokerCallAlert { display: none !important; }
.poker-action-info { min-height: 42px !important; padding-block: 6px !important; }

/* Profil: Senden-Schaltfläche exakt so hoch wie das Eingabefeld. */
.gift-chips-form { align-items: end !important; }
.gift-chips-form #giftChipsButton {
  align-self: end !important;
  height: 44px !important;
  min-height: 44px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Direktes Einladen über einen leeren Sitzplatz. */
.poker-seat-invite-overlay {
  position: fixed;
  inset: 0;
  z-index: 205;
  display: grid;
  place-items: center;
  padding: 18px;
}
.poker-seat-invite-overlay.hidden { display: none !important; }
.poker-seat-invite-panel {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  max-height: min(620px, 82dvh);
  padding: 23px;
  overflow: hidden;
  border-radius: 20px;
  background: rgba(4, 15, 23, .98);
}
.poker-seat-invite-panel h2 { margin: 6px 0; }
.poker-seat-invite-panel > p { margin: 0 0 13px; color: var(--muted); }
.poker-seat-invite-list {
  display: grid;
  gap: 8px;
  max-height: 410px;
  overflow-y: auto;
}
.poker-seat-invite-row {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 7px 10px;
  border: 1px solid rgba(100,255,210,.16);
  border-radius: 12px;
  color: var(--text);
  background: rgba(255,255,255,.04);
  text-align: left;
  cursor: pointer;
}
.poker-seat-invite-row:hover { border-color: rgba(100,255,210,.46); background: rgba(75,255,201,.09); }
.poker-seat-invite-row > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.08); font-size: 1.35rem; }
.poker-seat-invite-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.poker-seat-invite-row small { color: #7ddbbf; }

/* Roulette: Dutzende fluchten genau mit den jeweils vier Zahlen-Spalten. */
.roulette-casino-felt {
  min-height: 520px !important;
  padding-top: 8px !important;
}
.roulette-wheel-stage { min-height: 316px !important; }
.roulette-outside-board {
  display: grid !important;
  grid-template-columns: 56px repeat(12, minmax(42px, 1fr)) 62px !important;
  grid-template-rows: 48px 48px !important;
  gap: 4px !important;
  min-width: 720px !important;
  margin-top: 4px !important;
}
.roulette-outside-board [data-roulette-bet="dozen1"] { grid-column: 2 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="dozen2"] { grid-column: 6 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="dozen3"] { grid-column: 10 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="low"] { grid-column: 2 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="even"] { grid-column: 4 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="red"] { grid-column: 6 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="black"] { grid-column: 8 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="odd"] { grid-column: 10 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="high"] { grid-column: 12 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board .wide { min-height: 48px !important; }

@media (max-width: 1180px) {
  .poker-sidebar .poker-chat-section,
  .poker-chat-section { height: 370px !important; min-height: 370px !important; max-height: 370px !important; }
  .roulette-casino-felt { min-height: 0 !important; }
}

@media (max-width: 560px) {
  .header-actions > .volume-popover {
    position: fixed !important;
    top: 70px !important;
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
  }
  .poker-sidebar .poker-chat-section,
  .poker-chat-section { height: 360px !important; min-height: 360px !important; max-height: 360px !important; }
  .poker-sidebar .poker-chat-section #pokerChatMessages,
  .poker-chat-section .chat-messages { min-height: 220px !important; }
  .poker-seat-panel { min-height: 60px !important; }
  .poker-live-hand strong { font-size: .46rem !important; }
  .roulette-outside-board {
    grid-template-columns: 52px repeat(12, minmax(39px,1fr)) 58px !important;
    min-width: 650px !important;
  }
}

/* V31 Nachjustierung: Zahlenfeld und Außenwetten benutzen exakt dieselbe Spaltenbreite. */
.roulette-number-board,
.roulette-outside-board {
  grid-template-columns: 56px repeat(12, minmax(42px, 1fr)) 62px !important;
  min-width: 720px !important;
}
@media (max-width: 560px) {
  .roulette-number-board,
  .roulette-outside-board {
    grid-template-columns: 52px repeat(12, minmax(39px, 1fr)) 58px !important;
    min-width: 650px !important;
  }
}

/* =========================================================
   V32.3 · ausschließlich beauftragte Ergänzungen
   Basis, Buttongrößen und Positionen entsprechen unverändert V31.
   ========================================================= */

/* Sprache: im Login frei positioniert, im vorhandenen Lautstärke-Popover. */
.auth-box { position: relative; }
.language-select.auth-language-select {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--muted);
  background: rgba(255,255,255,.04);
  font-size: 10px;
}
.language-select select,
.volume-language-row select {
  border: 0;
  outline: 0;
  color: var(--text);
  background: rgba(5,15,25,.96);
  font: inherit;
  font-weight: 800;
}
.volume-language-row {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0 0 !important;
  padding-top: 12px;
  border-top: 1px solid rgba(113,255,221,.14);
}
.volume-language-row select { min-width: 105px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 9px; }
.version-badge {
  position: fixed;
  right: 8px;
  bottom: 7px;
  z-index: 180;
  padding: 3px 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: rgba(225,244,238,.68);
  background: rgba(2,9,12,.8);
  font-size: 9px;
  font-weight: 800;
  pointer-events: none;
}
.brand-mark { cursor: default !important; }

/* Nur das ausdrücklich gewünschte größere Chips-Feld. */
.header-stats .stat-pill:first-child { min-width: 152px !important; }
.header-stats .stat-pill:first-child strong { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Blackjack: kein „Einsatz“-Text unter den Tischchips, Zahl besser lesbar. */
.table-bet-spot > small { display: none !important; }
.laid-chip-stack-total { margin-top: 5px !important; color: #fff1ad !important; font-size: .9rem !important; line-height: 1.05 !important; text-shadow: 0 2px 4px #000; }
.solo-seat-bet-spot .laid-chip-stack-total { font-size: 1rem !important; }
#gameApp .table-felt > .round-result-banner { top: 54% !important; left: 50% !important; right: auto !important; max-width: min(360px,58%) !important; transform: translateX(-50%) !important; pointer-events: none; }
#rouletteApp .roulette-casino-felt > .round-result-banner { top: auto !important; left: auto !important; right: 14px !important; bottom: 14px !important; max-width: min(330px,44%) !important; transform: none !important; pointer-events: none; }

/* Slots: Motive innerhalb der bestehenden Felder, ohne Feld- oder Buttonänderung. */
.slot-symbol { position: relative; display: block; width: 54px; height: 54px; margin: auto; }
.slot-seven { display: grid !important; place-items: center; color: #ffd869; font: 1000 50px/1 Georgia,serif !important; -webkit-text-stroke: 2px #8c2b23; text-shadow: 0 4px 0 #4e1715,0 0 14px rgba(255,210,73,.42); }
.slot-diamond,.slot-gem { width: 44px; height: 44px; transform: rotate(45deg); border: 3px solid rgba(236,255,255,.9); border-radius: 9px 18px 9px 18px; background: linear-gradient(135deg,#eaffff 0 12%,#5ee8ff 13% 44%,#2682e5 45% 67%,#a8f6ff 68%); }
.slot-gem { border-radius: 48% 52% 55% 45%; background: linear-gradient(135deg,#fff 0 10%,#ff6bd6 11% 43%,#9436d5 44% 70%,#ffbcf0 71%); }
.slot-coin { width: 46px; height: 46px; border: 5px double #ffe296; border-radius: 50%; background: radial-gradient(circle at 35% 30%,#fff0ad,#e2a520 48%,#754713 78%); }
.slot-coin::after { content: "◆"; position: absolute; inset: 0; display: grid; place-items: center; color: #704313; font-size: 20px; }
.slot-crown { width: 54px; height: 39px; margin-top: 8px; border: 4px solid #ffe29a; border-radius: 8px 8px 15px 15px; background: linear-gradient(#ffd85d,#a56816); clip-path: polygon(0 18%,20% 45%,34% 0,50% 42%,68% 0,80% 45%,100% 18%,88% 100%,12% 100%); }
.slot-crown::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 6px; height: 5px; border-radius: 99px; background: #f7f0bd; box-shadow: 0 -11px 0 -1px #d94b78; }
.slot-chest { width: 54px; height: 43px; margin-top: 7px; border: 4px solid #d99b48; border-radius: 11px 11px 8px 8px; background: linear-gradient(#70451e 0 34%,#b86f2a 35% 100%); }
.slot-chest::before { content: ""; position: absolute; left: -4px; right: -4px; top: 16px; height: 5px; background: #e6b35f; box-shadow: 0 0 0 2px #70451e; }
.slot-chest::after { content: ""; position: absolute; left: 21px; top: 17px; width: 11px; height: 14px; border-radius: 3px; background: #ffe591; box-shadow: 0 0 0 2px #67431f; }

/* Glücksrad: das vorhandene echte Segment wird hervorgehoben. */
.daily-wheel > span,.daily-wheel > span::before { display: none !important; content: none !important; }
.daily-wheel-sectors { width: 100%; height: 100%; display: block; border-radius: 50%; }
.daily-wheel-sector { transform-box: view-box; transform-origin: 100px 100px; }
.daily-wheel-sector path { stroke: rgba(255,239,177,.68); stroke-width: 2; }
.daily-wheel-sector:nth-child(odd) path { fill: #0d7e5d; }
.daily-wheel-sector:nth-child(even) path { fill: #c28a28; }
.daily-wheel-sector text { fill: #fff8d5; font: 900 17px/1 system-ui,sans-serif; paint-order: stroke; stroke: rgba(0,0,0,.48); stroke-width: 2px; }
.daily-wheel-sector.wheel-winning-segment { animation: wheelExactSectorV323 .52s ease-in-out 5 alternate; filter: brightness(1.55) drop-shadow(0 0 8px #ffe47d); }
.daily-wheel-sector.wheel-winning-segment path { stroke: #fff2a7; stroke-width: 5; }
@keyframes wheelExactSectorV323 { to { transform: scale(1.045); } }

/* Roulette: ausschließlich Ausrichtung, Kugel, Jetons und zusätzliche Einsatzpunkte. */
.roulette-number-ring { transform: rotate(0deg); }
.roulette-pocket b { transform-origin: center !important; white-space: nowrap; text-align: center; backface-visibility: hidden; }
.roulette-ball { transform: translate(-50%,-50%) translateY(-132px); }
.roulette-cell { text-align: center !important; line-height: 1.05 !important; overflow: hidden; }
.roulette-column-cell { letter-spacing: 0 !important; white-space: normal !important; }
.roulette-bet-chip { width: 34px !important; min-width: 34px !important; height: 34px !important; padding: 0 !important; display: grid !important; place-items: center !important; border-radius: 50% !important; color: #fff !important; font: 1000 .54rem/1 system-ui,sans-serif !important; text-align: center !important; transform: translate(-50%,-50%) !important; white-space: nowrap !important; pointer-events: none; }
.roulette-number-board { position: relative; }
.roulette-inside-hotspot { position: absolute; z-index: 15; width: 16px; height: 16px; padding: 0; margin: -8px 0 0 -8px; border: 2px solid rgba(255,241,168,.76); border-radius: 50%; background: rgba(4,30,24,.78); opacity: .42; cursor: pointer; }
.roulette-inside-hotspot:hover,.roulette-inside-hotspot.has-bet,.roulette-inside-hotspot.drag-over { opacity: 1; filter: brightness(1.35); }
.roulette-inside-hotspot.street,.roulette-inside-hotspot.six { width: 20px; height: 10px; margin: -5px 0 0 -10px; border-radius: 4px; }
.roulette-inside-hotspot.corner { width: 18px; height: 18px; margin: -9px 0 0 -9px; }
.roulette-inside-hotspot.zero-trio { width: 18px; height: 12px; margin: -6px 0 0 -9px; }
.roulette-inside-hotspot.zero-corner { width: 20px; height: 20px; margin: -10px 0 0 -10px; }
.roulette-inside-hotspot .roulette-bet-chip { width: 31px !important; min-width: 31px !important; height: 31px !important; }

/* Poker: Profil selbst bleibt V31; nur Handhinweis außen und Gewinnkarten gelb. */
.poker-seat-panel { grid-template-rows: auto !important; min-height: 58px !important; }
.poker-seat-panel .poker-avatar { grid-row: auto !important; }
.poker-live-hand { position: absolute !important; z-index: 14; display: flex !important; align-items: center; gap: 5px; width: auto !important; min-width: 88px !important; max-width: 132px !important; margin: 0 !important; padding: 5px 7px !important; transform: none !important; border: 1px solid rgba(255,221,92,.48) !important; border-radius: 9px !important; background: rgba(17,20,12,.94) !important; box-shadow: 0 7px 16px rgba(0,0,0,.36) !important; overflow: hidden; pointer-events: none; }
.poker-live-hand small { flex: 0 0 auto; color: #d9b94f !important; font-size: .42rem !important; }
.poker-live-hand strong { min-width: 0; overflow: hidden; color: #fff2b5 !important; font-size: .53rem !important; text-overflow: ellipsis; white-space: nowrap !important; }
.poker-seat-bottom > .poker-live-hand { left: calc(100% + 7px) !important; bottom: 6px !important; }
.poker-seat-lower-left > .poker-live-hand,.poker-seat-upper-left > .poker-live-hand { left: calc(100% + 7px) !important; top: 50% !important; transform: translateY(-50%) !important; }
.poker-seat-lower-right > .poker-live-hand,.poker-seat-upper-right > .poker-live-hand { right: calc(100% + 7px) !important; left: auto !important; top: 50% !important; transform: translateY(-50%) !important; }
.poker-best-card { outline: 4px solid #ffe45e !important; outline-offset: 2px; box-shadow: 0 0 0 2px rgba(51,38,0,.7),0 0 20px rgba(255,226,63,.75) !important; }
.poker-position { top: -10px !important; right: 7px !important; z-index: 15 !important; }
.poker-position.blind-button { right: 32px !important; }

/* Angeforderter kompakter Freunde-Bereich, ohne allgemeine Buttonänderungen. */
.legacy-social-card,#pokerInvitationsSection,#tableInvitationsSection { display: none !important; }
.social-panel .social-list#friendsList,#friendsList { max-height: 350px !important; overflow-y: auto !important; overscroll-behavior: contain; }
.friend-chat-panel { display: block !important; }
.friend-chat-back { display: none !important; }
.friend-chat-panel .chat-messages { min-height: 150px; max-height: 220px; overflow-y: auto; }

/* Developer-Tischliste. */
.developer-table-list { display: grid; gap: 10px; }
.developer-table-row { display: grid; grid-template-columns: minmax(210px,1fr) minmax(220px,1.2fr) auto; align-items: center; gap: 14px; padding: 14px; border: 1px solid rgba(100,255,201,.15); border-radius: 15px; background: rgba(5,17,21,.7); }
.developer-table-game,.developer-table-meta { display: flex; align-items: center; gap: 10px; min-width: 0; }
.developer-table-game > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(35,227,164,.1); color: #6dffd0; font-size: 1.3rem; }
.developer-table-game div,.developer-table-meta { flex-direction: column; align-items: flex-start; }
.developer-table-game small,.developer-table-meta small { color: #78938f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.developer-table-actions { display: flex; gap: 8px; }
.developer-observer-overlay { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; }
.developer-observer-panel { position: relative; z-index: 2; width: min(620px,calc(100% - 24px)); max-height: 80vh; overflow: auto; padding: 24px; }
.observer-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: 18px 0; }
.observer-grid > div { padding: 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(0,0,0,.2); }
.observer-grid span,.observer-community small { display: block; color: #76938d; font-size: .68rem; text-transform: uppercase; }
.observer-player-list { display: flex; flex-wrap: wrap; gap: 7px; }
.observer-player-list span { padding: 7px 10px; border-radius: 999px; background: rgba(41,236,170,.1); color: #bfffe9; }
.observer-community { margin-top: 15px; }

@media (max-width: 760px) {
  .header-stats .stat-pill:first-child { min-width: 0 !important; flex: 1.35 !important; }
  .language-select.auth-language-select { position: static; width: fit-content; margin: 0 0 10px auto; }
  .poker-live-hand { min-width: 70px !important; max-width: 92px !important; padding: 4px 5px !important; }
  .poker-seat-bottom > .poker-live-hand { left: calc(100% + 3px) !important; }
  .poker-seat-lower-left > .poker-live-hand,.poker-seat-upper-left > .poker-live-hand { left: calc(100% + 3px) !important; }
  .poker-seat-lower-right > .poker-live-hand,.poker-seat-upper-right > .poker-live-hand { right: calc(100% + 3px) !important; }
  .developer-table-row { grid-template-columns: 1fr; }
  .developer-table-actions { justify-content: flex-end; }
  .observer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #rouletteApp .roulette-casino-felt > .round-result-banner { right: 8px !important; bottom: 8px !important; max-width: calc(100% - 16px) !important; }
}

/* =========================================================
   V32.5 · nur ausdrücklich gewünschte Korrekturen
   Keine globalen Button-, Menü- oder Layoutgrößen verändert.
   ========================================================= */

/* Ruhigere und schärfere Schriftwiedergabe in Chromium. */
html, body, button, input, select, textarea {
  text-rendering: auto;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  font-synthesis: none;
  font-kerning: normal;
}

/* Nur zuvor ausdrücklich gewünschte kleine Profil- und Hilfstexte absichern. */
.account-copy small,
.stat-pill > span,
.poker-seat-copy small,
.poker-stack small,
.poker-live-hand small,
.poker-pot small,
.poker-player-row small,
.poker-control-copy small,
.poker-stack-summary span,
.poker-action-info small,
.panel-heading span,
.social-card small,
.social-section-title span,
.game-live-badge,
.seat-label,
.table-copy {
  font-size: max(11px, .69rem) !important;
  line-height: 1.25 !important;
}

/* Zentrale Pokeranzeige auf Wunsch geringfügig weiter nach unten. */
.poker-table-status {
  top: 63% !important;
  max-width: min(560px, 68%) !important;
}

/* Dezente Hervorhebung nur der tatsächlich beteiligten Karten. */
.poker-best-card {
  outline: 2px solid rgba(255, 212, 90, .88) !important;
  outline-offset: 1px !important;
  box-shadow: 0 0 0 2px rgba(255, 213, 87, .10), 0 0 12px rgba(255, 200, 52, .30) !important;
  filter: brightness(1.025);
}

/* Blackjack-Spielerhand geringfügig nach links, ohne Karten- oder Buttonmaße zu ändern. */
#gameApp .solo-private-player-seat > .hands-grid {
  transform: translateX(-10px) !important;
}
@media (max-width: 760px) {
  #gameApp .solo-private-player-seat > .hands-grid { transform: translateX(-6px) !important; }
}

/* Roulettekugel liegt bereits beim Öffnen sichtbar innerhalb des Kessels. */
.roulette-ball {
  transform: translate(-50%, -50%) translateY(-132px);
}
.roulette-pocket b {
  backface-visibility: hidden;
}

/* Zwischenwetten bleiben anklickbar, ihre Hilfsschaltflächen sind aber unsichtbar. */
.roulette-inside-hotspot,
.roulette-inside-hotspot.street,
.roulette-inside-hotspot.six,
.roulette-inside-hotspot.corner,
.roulette-inside-hotspot.zero-split,
.roulette-inside-hotspot.zero-trio,
.roulette-inside-hotspot.zero-corner {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  opacity: 1 !important;
  filter: none !important;
  outline: none !important;
}
.roulette-inside-hotspot:hover,
.roulette-inside-hotspot:focus-visible,
.roulette-inside-hotspot.has-bet,
.roulette-inside-hotspot.drag-over {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
  filter: none !important;
}
.roulette-inside-hotspot > .roulette-bet-chip {
  color: #fff !important;
  opacity: 1 !important;
}


/* V32.6 – ausschließlich die angeforderten Korrekturen. */

/* Sprachwahl nur im Hauptmenü, nicht in der oberen Leiste. */
.home-language-select {
  width: min(240px, 100%);
  margin-top: 18px;
}

/* Die vorhandenen Knöpfe der oberen Menüleiste unterscheiden sich nur noch in der Breite. */
.header-actions > button {
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .header-actions > button {
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
  }
}

/* Alle Spielknöpfe im Hauptmenü behalten dieselbe Höhe. */
.home-actions .home-game-btn {
  height: 118px !important;
  min-height: 118px !important;
  max-height: 118px !important;
  box-sizing: border-box;
}

/* Roulette: Zahlen bleiben fest in ihrem Fach und drehen nicht separat. */
.roulette-pocket b {
  transform: rotate(var(--roulette-pocket-counter-angle)) !important;
  transform-box: fill-box;
  transform-origin: center !important;
}
.roulette-ball {
  transform: translate(-50%, -50%) translateY(-153px);
}
@media (max-width: 800px) {
  .roulette-ball { transform: translate(-50%, -50%) translateY(-133px); }
}
@media (max-width: 560px) {
  .roulette-ball { transform: translate(-50%, -50%) translateY(-119px); }
}

/* Glücksrad: Gegenrotation wird per JS gesetzt, damit Werte aufrecht bleiben. */
.daily-wheel.manual-spinning,
.daily-wheel-hero.manual-spinning {
  animation: none !important;
  will-change: transform;
}
.daily-wheel-sector text {
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform;
}

/* Poker-Bedienleiste: feste Außenhöhe, Inhalt wechselt ohne Layoutsprung. */
.poker-controls {
  height: 134px !important;
  min-height: 134px !important;
  max-height: 134px !important;
  box-sizing: border-box;
  overflow: hidden !important;
}
.poker-lobby-controls,
.poker-action-controls,
.poker-waiting-controls,
.poker-result-controls {
  height: 118px !important;
  min-height: 118px !important;
  max-height: 118px !important;
  box-sizing: border-box;
}
@media (min-width: 801px) {
  .poker-action-controls {
    position: relative;
    grid-template-columns: minmax(150px, 1fr) 58px repeat(2, minmax(108px, .68fr)) minmax(220px, 1.25fr) minmax(108px, .68fr) !important;
    grid-template-rows: 42px 68px !important;
    align-items: center !important;
    gap: 8px !important;
  }
  .poker-action-controls .poker-action-info {
    grid-column: 1 / 5 !important;
    grid-row: 1 !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 2px 8px 19px !important;
  }
  .poker-action-controls .poker-action-timer {
    grid-column: 5 !important;
    grid-row: 1 !important;
  }
  .poker-action-controls .poker-call-alert {
    grid-column: 1 / 5 !important;
    grid-row: 1 !important;
    align-self: end !important;
    margin: 0 8px 1px !important;
    padding: 2px 7px !important;
    border-radius: 7px !important;
    font-size: .62rem !important;
    line-height: 1.15 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .poker-action-controls .poker-fold {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls #pokerCheckCallButton {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-raise-control {
    grid-column: 4 / 6 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-allin {
    grid-column: 6 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls > .action-btn,
  .poker-action-controls .poker-raise-control {
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    align-self: center !important;
    box-sizing: border-box;
  }
  .poker-action-controls > .action-btn {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
  .poker-action-controls .poker-raise-control {
    padding: 5px 7px !important;
  }
  .poker-action-controls .poker-raise-control .action-btn {
    min-height: 46px !important;
    height: 46px !important;
    max-height: 46px !important;
  }
}

@media (max-width: 800px) {
  .home-actions .home-game-btn {
    height: 96px !important;
    min-height: 96px !important;
    max-height: 96px !important;
  }
  .poker-controls {
    height: 244px !important;
    min-height: 244px !important;
    max-height: 244px !important;
  }
  .poker-lobby-controls,
  .poker-action-controls,
  .poker-waiting-controls,
  .poker-result-controls {
    height: 228px !important;
    min-height: 228px !important;
    max-height: 228px !important;
  }
  .poker-action-controls {
    position: relative;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 48px 78px 78px !important;
    gap: 8px !important;
    align-items: center !important;
  }
  .poker-action-controls .poker-action-info { grid-column: 1 !important; grid-row: 1 !important; }
  .poker-action-controls .poker-action-timer { grid-column: 2 !important; grid-row: 1 !important; justify-self: end; }
  .poker-action-controls .poker-call-alert { grid-column: 1 / -1 !important; grid-row: 1 !important; align-self: end; padding: 2px 6px !important; font-size: .61rem !important; }
  .poker-action-controls .poker-fold { grid-column: 1 !important; grid-row: 2 !important; }
  .poker-action-controls #pokerCheckCallButton { grid-column: 2 !important; grid-row: 2 !important; }
  .poker-action-controls .poker-raise-control { grid-column: 1 !important; grid-row: 3 !important; }
  .poker-action-controls .poker-allin { grid-column: 2 !important; grid-row: 3 !important; }
  .poker-action-controls > .action-btn,
  .poker-action-controls .poker-raise-control {
    height: 70px !important;
    min-height: 70px !important;
    max-height: 70px !important;
    box-sizing: border-box;
  }
}


/* V32.7 – ausschließlich die angeforderten Korrekturen. */

/* Shop übernimmt nur die Hover-Bewegung des Freunde-Buttons. */
#globalShopButton:hover,
#shopButton:hover,
#pokerShopButton:hover {
  animation: none !important;
  transform: translateY(-2px) !important;
  filter: brightness(1.08) !important;
}

/* Roulette: Zahlen bleiben während der Radbewegung jederzeit aufrecht. */
.roulette-pocket b {
  transform: rotate(calc(var(--roulette-pocket-counter-angle) + var(--roulette-ring-counter-angle, 0deg))) !important;
}

/* Die Kugel ist vor dem ersten Start verborgen und bleibt ab der Drehung sichtbar. */
.roulette-ball {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .12s ease;
}
.roulette-wheel.ball-visible .roulette-ball {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Der 100er Tischjeton nutzt exakt die Farbe des gelegten Blackjack-100er-Jetons. */
.roulette-bet-chip.chip-value-100,
.roulette-inside-hotspot > .roulette-bet-chip.chip-value-100 {
  color: #221600 !important;
  background: radial-gradient(circle, #fff7c7 0 27%, #e7b52b 29% 55%, #5c4210 58%) !important;
  border-color: rgba(255,247,199,.78) !important;
}

/* Poker-Handhilfe: kein zusätzlicher Rahmen; nur der vorhandene Kartenrand wird gelb. */
.poker-best-card {
  outline: 0 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}
.poker-best-card .card-front {
  border-color: #ffd45a !important;
  box-shadow: 0 0 14px rgba(255,200,52,.35), inset 0 0 0 1px rgba(0,0,0,.15) !important;
}

/* =========================================================
   V32.8 · Roulette-Anzeigefehler & stabile Poker-Aktionsleiste
   Nur die beiden ausdrücklich beauftragten Bereiche werden korrigiert.
   ========================================================= */

/* Poker: ein festes, eindeutiges Raster ohne überlagerte Altregeln. */
.poker-controls {
  height: 134px !important;
  min-height: 134px !important;
  max-height: 134px !important;
  padding: 8px 10px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
.poker-lobby-controls,
.poker-action-controls,
.poker-waiting-controls,
.poker-result-controls {
  width: 100% !important;
  height: 118px !important;
  min-height: 118px !important;
  max-height: 118px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

@media (min-width: 801px) {
  .poker-action-controls {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: 34px 76px !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .poker-action-controls .poker-action-info {
    grid-column: 1 / 3 !important;
    grid-row: 1 !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 8px !important;
    justify-content: center !important;
    overflow: hidden !important;
  }
  .poker-action-controls .poker-action-info span,
  .poker-action-controls .poker-action-info small {
    display: block !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.1 !important;
  }
  .poker-action-controls .poker-call-alert {
    grid-column: 3 / 5 !important;
    grid-row: 1 !important;
    align-self: stretch !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    overflow: hidden !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }
  .poker-action-controls .poker-call-alert.hidden {
    display: none !important;
  }
  .poker-action-controls .poker-fold {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-raise-control {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-allin {
    grid-column: 4 !important;
    grid-row: 2 !important;
  }
}

.poker-action-controls > .action-btn,
.poker-action-controls .poker-raise-control {
  width: 100% !important;
  min-width: 0 !important;
  height: 84px !important;
  min-height: 84px !important;
  max-height: 76px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  align-self: stretch !important;
}
.poker-action-controls > .action-btn {
  padding: 7px 10px !important;
  grid-template-columns: 32px minmax(0, 1fr) !important;
  column-gap: 7px !important;
  overflow: hidden !important;
}
.poker-action-controls > .action-btn > span:nth-child(2),
.poker-action-controls > .action-btn small {
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.08 !important;
}
.poker-action-controls .poker-raise-control {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 88px !important;
  grid-template-rows: 24px 1fr !important;
  gap: 5px 7px !important;
  padding: 6px 7px !important;
  overflow: hidden !important;
}
.poker-action-controls .poker-raise-control label {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  margin: 0 !important;
  align-items: center !important;
  gap: 5px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}
.poker-action-controls .poker-raise-control input {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  align-self: center !important;
}
.poker-action-controls .poker-raise-control .action-btn {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
  width: 88px !important;
  min-width: 88px !important;
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  margin: 0 !important;
  padding: 5px 7px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Auch Lobby-, Warte- und Ergebnisinhalt bleibt vollständig in derselben Leiste. */
.poker-lobby-controls {
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  align-items: center !important;
  gap: 10px !important;
}
.poker-waiting-controls,
.poker-result-controls {
  align-content: center !important;
  justify-items: center !important;
  padding: 6px 10px !important;
}
.poker-result-controls {
  overflow-y: auto !important;
}
.poker-show-cards-prompt:not(.hidden) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  align-items: center !important;
  gap: 6px !important;
  width: min(100%, 760px) !important;
  margin: 6px auto 0 !important;
  padding: 6px 8px !important;
}
.poker-show-cards-prompt span {
  grid-column: 1 !important;
  min-width: 0 !important;
  text-align: left !important;
}
.poker-show-cards-prompt .secondary-btn,
.poker-show-cards-prompt .primary-btn {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 10px !important;
}

@media (max-width: 800px) {
  .poker-controls {
    height: 244px !important;
    min-height: 244px !important;
    max-height: 244px !important;
  }
  .poker-lobby-controls,
  .poker-action-controls,
  .poker-waiting-controls,
  .poker-result-controls {
    height: 228px !important;
    min-height: 228px !important;
    max-height: 228px !important;
  }
  .poker-action-controls {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 52px 76px 84px !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .poker-action-controls .poker-action-info {
    grid-column: 1 !important;
    grid-row: 1 !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 3px 6px !important;
    overflow: hidden !important;
  }
  .poker-action-controls .poker-call-alert {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 4px 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    overflow: hidden !important;
    line-height: 1.1 !important;
    text-align: center !important;
  }
  .poker-action-controls .poker-call-alert.hidden {
    display: none !important;
  }
  .poker-action-controls:not(:has(.poker-call-alert:not(.hidden))) .poker-action-info {
    grid-column: 1 / -1 !important;
  }
  .poker-action-controls .poker-fold {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-raise-control {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
  .poker-action-controls .poker-allin {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
  .poker-action-controls > .action-btn,
  .poker-action-controls .poker-raise-control {
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
  }
  .poker-action-controls .poker-raise-control {
    grid-template-columns: minmax(0, 1fr) 72px !important;
  }
  .poker-action-controls .poker-raise-control .action-btn {
    width: 72px !important;
    min-width: 72px !important;
  }
  .poker-lobby-controls {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: 1fr auto !important;
    align-content: center !important;
  }
  .poker-lobby-actions {
    grid-column: 1 / -1 !important;
  }
  .poker-show-cards-prompt:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .poker-show-cards-prompt span {
    grid-column: 1 / -1 !important;
    text-align: center !important;
  }
  .poker-show-cards-prompt .secondary-btn,
  .poker-show-cards-prompt .primary-btn {
    width: 100% !important;
  }
}

/* Der Setzen-/Erhöhen-Button bleibt auch im kompakten Regler vollständig lesbar. */
.poker-action-controls .poker-raise-control .action-btn {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 3px !important;
  text-align: left !important;
}
.poker-action-controls .poker-raise-control .action-btn .action-icon {
  font-size: 17px !important;
}
.poker-action-controls .poker-raise-control .action-btn > span:nth-child(2),
.poker-action-controls .poker-raise-control .action-btn small {
  min-width: 0 !important;
  font-size: .6rem !important;
  line-height: 1.05 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 800px) {
  .poker-action-controls .poker-raise-control {
    grid-template-columns: minmax(0, 1fr) 82px !important;
  }
  .poker-action-controls .poker-raise-control .action-btn {
    width: 82px !important;
    min-width: 82px !important;
  }
}


/* v33.0: Der auswählbare 100er-Roulettejeton entspricht dem gelegten Jeton. */
.roulette-chips .chip-100 {
  color: #221600 !important;
  background: radial-gradient(circle, #fff7c7 0 27%, #e7b52b 29% 55%, #5c4210 58%) !important;
  border-color: rgba(255,247,199,.78) !important;
}


/* =========================================================
   V33.0 · gezielte Korrekturen ohne globale Designänderungen
   ========================================================= */
/* Der private Blackjack-Badge bleibt in seiner eigenen Kachel. */
#playPrivateBlackjackButton { position: relative; }

/* Poker-Aktionen sind ausschließlich während des eigenen Zuges sichtbar.
   Die späten Rasterregeln dürfen die globale .hidden-Regel nicht überstimmen. */
#pokerActionControls.hidden { display: none !important; }
#pokerActionControls:not(.hidden) { display: grid !important; }
#pokerShowCardsPrompt.hidden { display: none !important; }

/* Dealer- und Spieler-Karten beginnen auf derselben vertikalen Fluchtlinie. */
#gameApp .solo-private-dealer-seat .card-row,
#gameApp .solo-private-player-seat .hand-cards {
  transform: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
#gameApp .solo-private-player-seat > .hands-grid {
  transform: translateX(-38.5px) !important;
}
@media (max-width: 760px) {
  #gameApp .solo-private-player-seat > .hands-grid {
    transform: translateX(-31px) !important;
  }
}

/* =========================================================
   V33.1 · Blackjack-Multiplayer: Sitze, Tischhöhe und Buy-in
   Nur auf die Multiplayer-Blackjack-Oberfläche begrenzt.
   ========================================================= */
body.multiplayer-live .multi-seats {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.multiplayer-live .multi-lobby-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-height: 82px;
}
body.multiplayer-live .multi-lobby-controls.hidden {
  display: none !important;
}
body.multiplayer-live .multi-stack-summary {
  display: grid;
  gap: 2px;
  min-width: 112px;
  text-align: center;
}
body.multiplayer-live .multi-stack-summary span {
  color: var(--muted);
  font-size: .72rem;
  letter-spacing: .08em;
}
body.multiplayer-live .multi-stack-summary strong {
  font-size: 1.05rem;
}

@media (min-width: 1181px) {
  body.multiplayer-live .multiplayer-grid {
    align-items: stretch !important;
  }
  body.multiplayer-live .multi-table-shell {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    align-self: stretch !important;
    height: 100% !important;
  }
  body.multiplayer-live .multi-table-rim {
    height: 100% !important;
  }
  body.multiplayer-live .multi-sidebar {
    align-self: stretch !important;
    height: 100% !important;
    min-height: 0 !important;
  }
}

@media (max-width: 760px) {
  body.multiplayer-live .multi-seats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }
  body.multiplayer-live .multi-lobby-controls {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  body.multiplayer-live .multi-lobby-controls .multi-stack-summary {
    min-width: 86px;
  }
  body.multiplayer-live .multi-lobby-controls #multiStandButton {
    grid-column: 1 / -1;
  }
}

/* =========================================================
   V33.2 · requested desktop additions + complete mobile pass
   Desktop game geometry stays untouched outside explicit items.
   ========================================================= */

/* System notice used for inactivity removals. */
.system-notice-overlay {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: grid;
  place-items: center;
  padding: 18px;
}
.system-notice-overlay.hidden { display: none !important; }
.system-notice-panel {
  position: relative;
  z-index: 2;
  width: min(440px, 100%);
  padding: 26px;
  border-radius: 24px;
  text-align: center;
}
.system-notice-panel p { color: var(--muted); line-height: 1.55; }

/* Poker pre-actions. */
.poker-preaction-copy { display: grid; gap: 3px; min-width: 0; }
.poker-preaction-copy small { color: var(--muted); }
.poker-preactions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; align-items: stretch; }
.poker-preaction { min-height: 44px; }
.poker-preaction.is-selected,
.poker-preaction[aria-pressed="true"] {
  border-color: #ffd45a !important;
  box-shadow: 0 0 0 2px rgba(255, 212, 90, .15), 0 0 18px rgba(255, 199, 54, .18);
  color: #fff2aa;
}

/* Blackjack multiplayer winner glow: same visual language as poker. */
body.multiplayer-live .multi-seat.multi-hand-winner .seat-profile {
  border-color: #ffd45a !important;
  background: linear-gradient(135deg, rgba(104,74,10,.95), rgba(30,24,11,.96)) !important;
  box-shadow: 0 0 0 3px rgba(255,213,87,.16), 0 0 34px rgba(255,200,52,.42) !important;
  animation: pokerWinnerGlowV28 1.35s ease-in-out infinite alternate;
}
body.multiplayer-live .multi-player-row.multi-hand-winner,
body.multiplayer-live .player-row.multi-hand-winner {
  border-color: rgba(255,212,82,.6) !important;
  background: rgba(105,75,12,.32) !important;
  color: #fff3b2 !important;
}

/* Native recipient menus must not leak a hover background down the list. */
.shop-target-label select,
.shop-target-label select option,
#shopTarget,
#shopTarget option {
  background: #0b211a;
  color: #f6f3df;
}

/* Real slot-machine cabinet and smooth, clipped reel strips. */
.slots-machine {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 211, 85, .3);
  box-shadow: inset 0 0 0 5px rgba(255, 213, 89, .045), 0 28px 65px rgba(0,0,0,.36);
}
.slots-machine::before,
.slots-machine::after {
  content: "";
  position: absolute;
  left: 7%;
  right: 7%;
  height: 5px;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, rgba(255,214,90,.8), transparent);
  pointer-events: none;
}
.slots-machine::before { top: 10px; }
.slots-machine::after { bottom: 10px; }
.slot-cabinet-window {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  height: 300px;
  padding: 12px;
  overflow: hidden;
  border: 8px solid rgba(221, 168, 42, .78);
  border-radius: 24px;
  background: linear-gradient(180deg, #020807, #071510 45%, #020807);
  box-shadow: inset 0 0 0 3px #60400f, inset 0 0 34px rgba(0,0,0,.95), 0 10px 30px rgba(0,0,0,.32);
  isolation: isolate;
}
.slot-reel-column {
  position: relative;
  min-width: 0;
  height: 276px;
  overflow: hidden;
  border: 2px solid rgba(255, 223, 127, .24);
  border-radius: 14px;
  background: linear-gradient(90deg, #c9c1ad, #fffdf2 18%, #e3dccb 50%, #fffdf2 82%, #b7ae9c);
  box-shadow: inset 12px 0 18px rgba(0,0,0,.14), inset -12px 0 18px rgba(0,0,0,.14);
}
.slot-reel-column::before,
.slot-reel-column::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  height: 44px;
  pointer-events: none;
}
.slot-reel-column::before { top: 0; background: linear-gradient(#080d0b, transparent); }
.slot-reel-column::after { bottom: 0; background: linear-gradient(transparent, #080d0b); }
.slot-reel-strip { will-change: transform; transform: translate3d(0,0,0); }
.slot-reel-item {
  display: grid;
  place-items: center;
  height: 92px;
  border-bottom: 1px solid rgba(60, 47, 24, .14);
  color: #17130c;
  overflow: hidden;
}
.slot-reel-item .slot-symbol { transform: translateZ(0); }
.slot-payline-center {
  position: absolute;
  z-index: 8;
  left: 4px;
  right: 4px;
  top: 50%;
  height: 92px;
  transform: translateY(-50%);
  border-top: 2px solid rgba(255, 55, 55, .84);
  border-bottom: 2px solid rgba(255, 55, 55, .84);
  box-shadow: 0 0 14px rgba(255, 48, 48, .28), inset 0 0 18px rgba(255, 210, 70, .08);
  pointer-events: none;
}
.slots-payline-overlay { display: none !important; }

@media (max-width: 800px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden !important; }
  body { padding: 0 !important; }
  *, *::before, *::after { max-width: 100%; box-sizing: border-box; }
  button, input, select, textarea { font-size: max(16px, 1rem); }
  button, .primary-btn, .secondary-btn, .danger-outline, .action-btn, .shop-toggle {
    min-height: 44px;
    touch-action: manipulation;
  }

  /* Global mobile header: no overlap, every control remains tappable. */
  .topbar {
    position: relative !important;
    inset: auto !important;
    width: calc(100% - 12px) !important;
    margin: 6px !important;
    padding: 9px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .topbar > * { min-width: 0 !important; }
  .brand, .topbar-brand { width: 100% !important; justify-content: center !important; }
  .topbar-stats, .player-stats, .account-stats {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .topbar-actions, .header-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    align-items: stretch !important;
  }
  .topbar-actions > button, .header-actions > button,
  .topbar .icon-btn, .topbar .topbar-btn {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    padding: 7px 4px !important;
    white-space: normal !important;
    line-height: 1.05 !important;
    font-size: .78rem !important;
  }

  /* Every app becomes a single readable column. */
  .layout, .home-app, .roulette-app, .slots-app,
  .multiplayer-app, .poker-app, .developer-app,
  #gameApp, #rouletteApp, #slotsApp, #multiplayerApp, #pokerApp, #developerApp {
    width: calc(100% - 12px) !important;
    max-width: none !important;
    margin: 6px auto 14px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    min-width: 0 !important;
  }
  .home-app, .layout { grid-template-columns: minmax(0, 1fr) !important; }
  .home-actions, .home-game-grid, .game-menu-grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .home-game-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 92px !important;
    height: auto !important;
    padding: 12px 8px !important;
    overflow: hidden !important;
  }
  .home-game-btn span, .home-game-btn em { overflow-wrap: anywhere; }

  /* General panels and bars. */
  .room-bar, .multiplayer-roombar, .poker-roombar,
  .roulette-controls, .slots-controls, .control-deck {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    padding: 10px !important;
  }
  .room-actions, .roulette-actions, .slots-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  .room-actions > *, .roulette-actions > *, .slots-actions > * { width: 100% !important; min-width: 0 !important; }
  .chips, .roulette-chips, .slots-chip-palette {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 5px 3px 10px !important;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .chips .chip { flex: 0 0 auto !important; scroll-snap-align: start; }

  /* Single-player blackjack. */
  #gameApp { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }
  #gameApp.hidden { display: none !important; }
  #gameApp .table-shell, #gameApp .blackjack-table-shell { min-width: 0 !important; width: 100% !important; }
  #gameApp .table-rim, #gameApp .blackjack-felt { min-height: 470px !important; height: auto !important; }
  #gameApp .playing-card { transform-origin: center; }
  #gameApp .control-deck { position: relative !important; inset: auto !important; }
  #gameApp .action-grid, #gameApp .game-actions { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  #gameApp .side-panel { width: 100% !important; }

  /* Roulette: wheel fits; betting board scrolls instead of clipping. */
  .roulette-shell, .roulette-casino-shell { width: 100% !important; min-width: 0 !important; }
  .roulette-table-rim, .roulette-casino-felt { width: 100% !important; min-width: 0 !important; padding: 10px !important; }
  .roulette-stage { width: 100% !important; display: grid !important; justify-items: center !important; gap: 12px !important; }
  .roulette-wheel, .roulette-wheel-real {
    width: min(286px, 88vw) !important;
    height: min(286px, 88vw) !important;
    min-width: 0 !important;
    flex: none !important;
  }
  .roulette-betting-table { width: 100% !important; max-width: 100% !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch; }
  .roulette-number-board, .roulette-outside-board, .roulette-history-strip, .roulette-table-summary { min-width: 620px !important; }
  .roulette-controls { margin-top: 9px !important; }
  .roulette-info { width: 100% !important; }

  /* Slots cabinet. */
  .slots-shell { width: 100% !important; display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }
  .slots-machine { width: 100% !important; min-width: 0 !important; padding: 12px !important; border-radius: 22px !important; }
  .slot-cabinet-window { width: 100% !important; height: 231px !important; gap: 5px !important; padding: 7px !important; border-width: 5px !important; border-radius: 17px !important; }
  .slot-reel-column { height: 207px !important; }
  .slot-reel-item { height: 69px !important; }
  .slot-payline-center { height: 69px !important; }
  .slot-reel-item .slot-symbol { width: 46px !important; height: 46px !important; }
  .slots-info { width: 100% !important; }

  /* Multiplayer blackjack. */
  body.multiplayer-live .multiplayer-app { display: block !important; }
  body.multiplayer-live .multiplayer-grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  body.multiplayer-live .multi-table-shell, body.multiplayer-live .multi-table-rim,
  body.multiplayer-live .multi-felt { width: 100% !important; min-width: 0 !important; }
  body.multiplayer-live .multi-felt { min-height: 500px !important; height: auto !important; padding: 8px !important; }
  body.multiplayer-live .multi-seats { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 5px !important; }
  body.multiplayer-live .multi-seat, body.multiplayer-live .multi-seat-empty.empty-player-seat { min-width: 0 !important; width: 100% !important; }
  body.multiplayer-live .seat-profile { min-width: 0 !important; padding: 6px !important; }
  body.multiplayer-live .multi-hand-cards .playing-card { width: 42px !important; height: 59px !important; margin-left: -10px !important; }
  body.multiplayer-live .multi-hand-cards .playing-card:first-child { margin-left: 0 !important; }
  body.multiplayer-live .multi-lobby-controls { grid-template-columns: minmax(0,1fr) !important; min-height: 0 !important; }
  body.multiplayer-live .multi-lobby-controls > * { width: 100% !important; }
  body.multiplayer-live .multi-sidebar { width: 100% !important; height: auto !important; min-height: 0 !important; }

  /* Poker table and bottom controls. */
  .poker-app { display: block !important; }
  .poker-app.hidden { display: none !important; }
  .poker-layout { width: 100% !important; display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }
  .poker-main-column, .poker-table-shell, .poker-table-rim, .poker-felt { width: 100% !important; min-width: 0 !important; }
  .poker-felt { min-height: 520px !important; height: 520px !important; overflow: hidden !important; }
  .poker-seat { max-width: 112px !important; }
  .poker-seat-panel { min-width: 0 !important; min-height: 52px !important; padding: 5px !important; }
  .poker-seat-name, .poker-player-name { overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
  .poker-community .playing-card { width: 42px !important; height: 59px !important; }
  .poker-controls {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 184px !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 9px !important;
  }
  .poker-lobby-controls, .poker-action-controls, .poker-waiting-controls, .poker-result-controls {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 164px !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .poker-action-controls {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-auto-rows: minmax(48px, auto) !important;
    gap: 7px !important;
    align-items: stretch !important;
  }
  .poker-action-controls.hidden { display: none !important; }
  .poker-action-info, .poker-action-timer, .poker-call-alert { grid-column: 1 / -1 !important; }
  .poker-raise-control { min-width: 0 !important; grid-column: 1 / -1 !important; display: grid !important; grid-template-columns: minmax(0,1fr) minmax(110px, .8fr) !important; gap: 7px !important; }
  .poker-raise-control label, .poker-raise-control input { grid-column: 1 / -1 !important; }
  .poker-action-controls > .action-btn, .poker-raise-control .action-btn { width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 50px !important; }
  .poker-waiting-controls { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; align-content: center !important; }
  .poker-waiting-controls.hidden { display: none !important; }
  .poker-preactions { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  .poker-result-controls { display: grid !important; align-content: center !important; gap: 8px !important; }
  .poker-result-controls.hidden { display: none !important; }
  .poker-show-cards-prompt { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 7px !important; }
  .poker-show-cards-prompt.hidden { display: none !important; }
  .poker-show-cards-prompt span { grid-column: 1 / -1 !important; }
  .poker-sidebar { width: 100% !important; height: auto !important; min-height: 0 !important; }

  /* Drawers and dialogs fit small screens. */
  .social-panel, .shop-panel, .support-panel, .rules-panel,
  .poker-buyin-panel, .poker-seat-invite-panel, .system-notice-panel {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    overflow-y: auto !important;
    margin: 8px !important;
    border-radius: 18px !important;
  }
  .social-drawer, .shop-drawer { width: 100vw !important; max-width: 100vw !important; }
  .table-code-join-form, .chat-form, .support-form { grid-template-columns: minmax(0,1fr) !important; }
  .social-list, .friend-list, .chat-messages { max-height: 240px !important; overflow-y: auto !important; }
  .developer-table-wrap, .admin-table-wrap { width: 100% !important; overflow-x: auto !important; }
  .developer-table, .admin-table { min-width: 720px !important; }

  footer { width: 100% !important; padding: 12px !important; text-align: center !important; overflow-wrap: anywhere; }
}

@media (max-width: 430px) {
  .topbar-actions, .header-actions { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .home-actions, .home-game-grid, .game-menu-grid { grid-template-columns: minmax(0,1fr) !important; }
  .roulette-actions, .slots-actions { grid-template-columns: minmax(0,1fr) !important; }
  .poker-felt { height: 490px !important; min-height: 490px !important; }
  .poker-seat { max-width: 96px !important; }
  .poker-community .playing-card { width: 37px !important; height: 52px !important; }
}

@media (max-width: 800px) {
  .brand-wrap { width: 100% !important; min-width: 0 !important; justify-content: center !important; }
  .header-stats {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .header-stats .stat-pill { min-width: 0 !important; width: 100% !important; }
  .roulette-controls .roulette-chips,
  .slots-controls .slots-chip-palette,
  #gameApp .chips,
  body.multiplayer-live .multi-chip-palette {
    justify-content: flex-start !important;
    transform: none !important;
  }
  .roulette-controls .roulette-chips .chip,
  .slots-controls .slots-chip-palette .chip,
  #gameApp .chips .chip,
  body.multiplayer-live .multi-chip-palette .chip {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    flex: 0 0 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    font-size: .76rem !important;
  }
  .roulette-controls .roulette-chips .chip.selected,
  .slots-controls .slots-chip-palette .chip.selected,
  #gameApp .chips .chip.selected,
  body.multiplayer-live .multi-chip-palette .chip.selected {
    transform: translateY(-3px) !important;
  }
}

/* =========================================================
   V33.2 mobile poker controls – every action remains visible.
   Desktop rules above remain untouched.
   ========================================================= */
@media (max-width: 800px) {
  .poker-controls {
    height: 294px !important;
    min-height: 294px !important;
    max-height: 294px !important;
    overflow: hidden !important;
  }
  .poker-lobby-controls,
  .poker-action-controls,
  .poker-waiting-controls,
  .poker-result-controls {
    height: 276px !important;
    min-height: 276px !important;
    max-height: 276px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
  .poker-action-controls {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 46px 54px 32px 54px 54px !important;
    gap: 7px !important;
    align-content: start !important;
    align-items: stretch !important;
  }
  .poker-action-controls .poker-action-info {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 3px 7px !important;
  }
  .poker-action-controls:has(.poker-call-alert:not(.hidden)) .poker-action-info {
    grid-column: 1 !important;
  }
  .poker-action-controls .poker-call-alert:not(.hidden) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    height: 46px !important;
    min-height: 46px !important;
  }
  .poker-action-controls .poker-fold {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .poker-action-controls .poker-raise-control {
    display: contents !important;
  }
  .poker-action-controls .poker-raise-control label {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    min-width: 0 !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 4px !important;
  }
  .poker-action-controls .poker-raise-control input {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    min-width: 0 !important;
    align-self: center !important;
    margin: 0 !important;
  }
  .poker-action-controls .poker-raise-control .action-btn {
    grid-column: 2 !important;
    grid-row: 4 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
  }
  .poker-action-controls .poker-allin {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
  }
  .poker-action-controls > .action-btn {
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
  }
  .poker-lobby-controls,
  .poker-waiting-controls,
  .poker-result-controls {
    align-content: center !important;
  }
}

/* V33.2: eigener Empfänger-Picker statt browserabhängigem Select-Popup. */
.shop-target-label { position: relative; }
.shop-target-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.shop-target-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  width: 100%;
  margin-top: 7px;
}
.shop-target-option {
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 11px;
  color: #eaf8f0;
  background: #0b211a;
  box-shadow: none;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.shop-target-option:hover:not(:disabled),
.shop-target-option:focus-visible:not(:disabled) {
  color: #fff;
  border-color: rgba(255,255,255,.3);
  background: #17372c;
  transform: translateY(-1px);
}
.shop-target-option.selected {
  color: #241900;
  border-color: #ffd45a;
  background: linear-gradient(135deg, #ffe69a, #dcae37);
}
.shop-target-option:disabled { opacity: .62; cursor: not-allowed; }

/* V33.2 mobile roulette: wheel is centered and only the betting board scrolls. */
@media (max-width: 800px) {
  .roulette-casino-felt {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas:
      "copy"
      "result"
      "wheel"
      "table"
      "summary" !important;
    align-items: stretch !important;
    overflow: hidden !important;
  }
  .roulette-wheel-stage,
  .roulette-stage {
    grid-area: wheel !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 310px !important;
    overflow: visible !important;
  }
  .roulette-betting-table {
    grid-area: table !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 7px !important;
    scrollbar-width: thin;
  }
  .roulette-number-board,
  .roulette-outside-board {
    width: 620px !important;
    min-width: 620px !important;
    max-width: none !important;
  }
  .roulette-history-strip,
  .roulette-table-summary {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .roulette-table-summary {
    grid-area: summary !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
  }
  .shop-target-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 152px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .shop-target-option { width: 100%; min-width: 0; }
}
@media (max-width: 430px) {
  .shop-target-picker { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   V33.3 · ausschließlich angeforderte Detailkorrekturen
   ========================================================= */

/* Die Poker-Voraktionsbuttons sitzen etwas tiefer; Text und Bereich bleiben stehen. */
.poker-preaction {
  position: relative;
  top: 5px;
}

/* Geschenkflug endet exakt am dauerhaft sichtbaren Geschenk. */
.precise-gift-flight {
  animation: none !important;
  pointer-events: none !important;
  will-change: transform, opacity;
}
.gift-landing-pending {
  opacity: 0 !important;
  animation: none !important;
}

/* Blackjack-Tischstack direkt neben dem Spieler-Icon. */
body.multiplayer-live .seat-buyin-stack {
  position: absolute;
  right: 52px;
  top: 50%;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 26px;
  padding: 4px 7px;
  border: 1px solid rgba(246, 200, 95, .34);
  border-radius: 10px;
  color: #fff1b7;
  background: rgba(3, 20, 14, .94);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: 10px;
  line-height: 1;
}
body.multiplayer-live .seat-buyin-stack .mini-chip {
  width: 15px;
  height: 15px;
  min-width: 15px;
}

/* Blackjack-Gewinner: derselbe statische Goldrand und Glow wie bei Poker. */
body.multiplayer-live .multi-seat.multi-hand-winner .seat-profile {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  animation: none !important;
  filter: none !important;
}
body.multiplayer-live .multi-seat.multi-hand-winner .seat-info-row {
  border: 1px solid #ffd45a !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(104,74,10,.95), rgba(30,24,11,.96)) !important;
  box-shadow: 0 0 0 3px rgba(255,213,87,.16), 0 0 34px rgba(255,200,52,.42) !important;
  filter: brightness(1.15) !important;
  animation: none !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
body.multiplayer-live .multi-player-row.multi-hand-winner,
body.multiplayer-live .player-row.multi-hand-winner {
  transform: none !important;
  animation: none !important;
}

/* Der eigene Empfänger-Picker bleibt auf genau dem Element, das gehovert wird. */
.shop-target-option {
  position: relative;
  isolation: isolate;
}
.shop-target-option:hover:not(:disabled),
.shop-target-option:focus-visible:not(:disabled) {
  z-index: 1;
}

@media (max-width: 800px) {
  body.multiplayer-live .seat-buyin-stack {
    right: 45px;
    min-height: 23px;
    padding: 3px 5px;
    font-size: 8px;
  }
  body.multiplayer-live .seat-buyin-stack .mini-chip {
    width: 13px;
    height: 13px;
    min-width: 13px;
  }
}

/* =========================================================
   V33.4 · ausschließlich angeforderte Shop-/Blackjack-/Slots-Korrekturen
   ========================================================= */

/* Shop-Hover bleibt während des gesamten Hover-Zustands stabil hervorgehoben. */
.shop-item:hover:not(:disabled),
.shop-target-option:hover:not(:disabled),
.shop-tab:hover:not(:disabled) {
  z-index: 2;
  animation: shopHoverHoldV334 1.8s ease-in-out infinite alternate;
  will-change: transform, filter, box-shadow;
}
@keyframes shopHoverHoldV334 {
  from {
    filter: brightness(1.06);
    box-shadow: 0 12px 24px rgba(0,0,0,.24), 0 0 0 rgba(246,200,95,0);
  }
  to {
    filter: brightness(1.14);
    box-shadow: 0 16px 30px rgba(0,0,0,.3), 0 0 18px rgba(246,200,95,.16);
  }
}
.shop-target-option.selected {
  animation: none !important;
}

/* Der gelegte 100er-Chip entspricht optisch dem 100er-Chip der Einsatzleiste. */
.table-chip.chip-value-100,
.laid-chip.chip-value-100 {
  color: #fff !important;
  background: #242b31 !important;
  border-color: rgba(255,255,255,.7) !important;
  box-shadow: 0 7px 14px rgba(0,0,0,.35), inset 0 0 0 4px rgba(0,0,0,.15) !important;
}

/* Multiplayer-Blackjack: kein zusätzliches Feld um Einsatzchips und Zahl. */
body.multiplayer-live .multi-seat .seat-bet-display:not(.empty) {
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: translateY(-6px) !important;
}

/* Kartenfelder behalten dauerhaft dieselbe Größe; Karten bleiben mit Innenabstand darin. */
body.multiplayer-live .multi-seat {
  min-height: 190px !important;
  grid-template-rows: 112px 54px 24px !important;
}
body.multiplayer-live .multi-seat .multi-hands {
  width: 100% !important;
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  padding: 6px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 5px !important;
  overflow: hidden !important;
  align-items: stretch !important;
}
body.multiplayer-live .multi-seat .multi-hands[data-hand-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body.multiplayer-live .multi-seat .multi-hand {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: 100% !important;
  padding: 4px 5px !important;
  display: grid !important;
  grid-template-rows: 18px minmax(0, 1fr) 13px !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-seat .multi-hand-topline {
  min-height: 18px !important;
  height: 18px !important;
  margin: 0 !important;
}
body.multiplayer-live .multi-seat .multi-hand-value {
  height: 18px !important;
  min-width: 22px !important;
  font-size: 10px !important;
}
body.multiplayer-live .multi-seat .multi-hand-cards {
  width: 100% !important;
  height: 72px !important;
  min-height: 72px !important;
  max-height: 72px !important;
  padding: 3px 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-seat .multi-hand-cards .playing-card {
  width: 48px !important;
  height: 69px !important;
  min-width: 48px !important;
  flex: 0 0 48px !important;
  margin-left: -18px !important;
}
body.multiplayer-live .multi-seat .multi-hand-cards .playing-card:first-child {
  margin-left: 0 !important;
}
body.multiplayer-live .multi-seat .multi-hand[data-card-count="4"] .playing-card {
  width: 45px !important;
  height: 65px !important;
  min-width: 45px !important;
  flex-basis: 45px !important;
  margin-left: -23px !important;
}
body.multiplayer-live .multi-seat .multi-hand[data-card-count="5"] .playing-card,
body.multiplayer-live .multi-seat .multi-hand[data-card-count="6"] .playing-card,
body.multiplayer-live .multi-seat .multi-hand[data-card-count="7"] .playing-card,
body.multiplayer-live .multi-seat .multi-hand[data-card-count="8"] .playing-card {
  width: 41px !important;
  height: 59px !important;
  min-width: 41px !important;
  flex-basis: 41px !important;
  margin-left: -27px !important;
}
body.multiplayer-live .multi-seat .multi-hand-result {
  height: 13px !important;
  min-height: 13px !important;
  margin: 0 !important;
  overflow: hidden !important;
  line-height: 13px !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

/* Der aktive Blackjack-Spieler bleibt weich und ohne Sprung hervorgehoben. */
body.multiplayer-live .multi-seat.active .table-avatar {
  animation: blackjackTurnHoldV334 1.7s ease-in-out infinite alternate !important;
}
body.multiplayer-live .multi-player-row.active {
  animation: blackjackNameHoldV334 1.7s ease-in-out infinite alternate !important;
}
@keyframes blackjackTurnHoldV334 {
  from { transform: translateY(-1px) scale(1.01); filter: brightness(1.04); }
  to { transform: translateY(-4px) scale(1.045); filter: brightness(1.14); }
}
@keyframes blackjackNameHoldV334 {
  from { filter: brightness(1.02); box-shadow: inset 0 0 0 rgba(246,200,95,0); }
  to { filter: brightness(1.1); box-shadow: inset 0 0 18px rgba(246,200,95,.1); }
}

/* Der Einsatz-Timer belegt immer denselben Platz und verschiebt keine Chips. */
body.multiplayer-live .multi-bet-timer {
  width: 112px !important;
  min-width: 112px !important;
  max-width: 112px !important;
  min-height: 45px !important;
  padding: 6px 8px !important;
  gap: 4px !important;
  transition: opacity .16s ease, visibility .16s ease !important;
}
body.multiplayer-live .multi-bet-timer-head {
  gap: 5px !important;
  font-size: 8px !important;
}
body.multiplayer-live .multi-bet-timer-head strong {
  font-size: 11px !important;
}
body.multiplayer-live .multi-bet-timer-track {
  height: 5px !important;
}
body.multiplayer-live .multi-bet-timer.hidden,
body.multiplayer-live .multi-bet-timer.inactive {
  display: grid !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Slots-Einsatzleiste: feste Bereiche verhindern Verschiebungen bei Statuswechseln. */
.slots-controls > * {
  min-width: 0;
}
.slots-controls .slots-chip-palette {
  min-height: 58px;
  align-items: center;
  align-content: center;
}
.slots-controls .slots-actions {
  min-height: 52px;
  align-items: stretch;
}
.slots-controls .slots-actions > button {
  min-width: 0;
  white-space: nowrap;
}
@media (min-width: 1181px) {
  .slots-controls {
    grid-template-columns: minmax(140px, 1fr) 105px minmax(360px, 1.7fr) minmax(270px, 1.1fr) !important;
  }
  .slots-controls .slots-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Die Blackjack-Chatleiste reicht auf Desktop bis zum Ende der Einsatzleiste. */
@media (min-width: 1181px) {
  body.multiplayer-live .multiplayer-grid {
    align-items: stretch !important;
  }
  body.multiplayer-live .multi-table-shell,
  body.multiplayer-live .multi-sidebar {
    height: 100% !important;
  }
  body.multiplayer-live .multi-sidebar {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .table-chat-section {
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seat {
    min-height: 166px !important;
    grid-template-rows: 92px 50px 24px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
    padding: 5px !important;
  }
  body.multiplayer-live .multi-seat .multi-hand {
    grid-template-rows: 16px minmax(0, 1fr) 12px !important;
    padding: 3px 4px !important;
  }
  body.multiplayer-live .multi-seat .multi-hand-cards {
    height: 59px !important;
    min-height: 59px !important;
    max-height: 59px !important;
    padding: 2px 5px !important;
  }
  body.multiplayer-live .multi-seat .multi-hand-cards .playing-card {
    width: 40px !important;
    height: 56px !important;
    min-width: 40px !important;
    flex-basis: 40px !important;
    margin-left: -15px !important;
  }
  body.multiplayer-live .multi-seat .multi-hand[data-card-count="4"] .playing-card,
  body.multiplayer-live .multi-seat .multi-hand[data-card-count="5"] .playing-card,
  body.multiplayer-live .multi-seat .multi-hand[data-card-count="6"] .playing-card,
  body.multiplayer-live .multi-seat .multi-hand[data-card-count="7"] .playing-card,
  body.multiplayer-live .multi-seat .multi-hand[data-card-count="8"] .playing-card {
    width: 35px !important;
    height: 50px !important;
    min-width: 35px !important;
    flex-basis: 35px !important;
    margin-left: -23px !important;
  }
  body.multiplayer-live .multi-bet-timer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}


/* =========================================================
   V33.5 · ausschließlich angeforderte Developer-/Blackjack-Korrekturen
   ========================================================= */

/* Developer-Eingaben werden beim automatischen Refresh nicht mehr visuell verdrängt. */
body.developer-mode .developer-tables-panel {
  margin-top: 18px !important;
}

/* Blackjack: Profil steht immer fest in der Mitte; Einsatz erhält von Anfang an Platz. */
body.multiplayer-live .multi-seat {
  min-height: 220px !important;
  grid-template-rows: 112px 84px 24px !important;
}
body.multiplayer-live .multi-seat .seat-info-row {
  position: relative !important;
  width: 100% !important;
  height: 76px !important;
  min-height: 76px !important;
  padding: 7px 10px !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 58px minmax(96px, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat .seat-profile {
  grid-column: 2 !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat .seat-bet-display,
body.multiplayer-live .multi-seat .seat-bet-display:not(.empty) {
  grid-column: 3 !important;
  justify-self: start !important;
  align-self: center !important;
  max-width: 100% !important;
  transform: translateY(-11px) !important;
}

/* Das Gewinnerfeld umfasst den kompletten stabilen Profil-/Einsatzbereich. */
body.multiplayer-live .multi-seat.multi-hand-winner .seat-info-row {
  padding: 8px 12px !important;
  border-radius: 17px !important;
}

/* Geschenke bleiben im Nahbereich des Profils, aber unterhalb des Einsatzbereichs. */
body.multiplayer-live .multi-seat .seat-gifts {
  left: calc(100% + 6px) !important;
  right: auto !important;
  top: 40px !important;
  bottom: auto !important;
  width: 66px !important;
  height: 30px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 3px !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat .seat-gift {
  width: 27px !important;
  height: 27px !important;
  flex: 0 0 27px !important;
  font-size: 16px !important;
  animation: none !important;
  transform: none !important;
}

/* Zug- und Gewinnerhervorhebungen ändern nirgendwo mehr die Position. */
body.multiplayer-live .multi-seat,
body.multiplayer-live .multi-seat.active,
body.multiplayer-live .multi-seat.multi-hand-winner,
body.multiplayer-live .multi-seat .seat-info-row,
body.multiplayer-live .multi-seat .seat-profile,
body.multiplayer-live .multi-seat .table-avatar,
body.multiplayer-live .multi-player-row,
body.multiplayer-live .multi-player-row.active,
body.multiplayer-live .multi-player-row.multi-hand-winner {
  transform: none !important;
}
body.multiplayer-live .multi-seat.active .table-avatar,
body.multiplayer-live .multi-seat .table-avatar.active {
  animation: blackjackProfileGlowV335 1.7s ease-in-out infinite alternate !important;
}
body.multiplayer-live .multi-player-row.active {
  animation: blackjackRowGlowV335 1.7s ease-in-out infinite alternate !important;
}
@keyframes blackjackProfileGlowV335 {
  from {
    filter: brightness(1.04);
    box-shadow: 0 0 0 3px rgba(246,200,95,.1), 0 8px 19px rgba(0,0,0,.4);
  }
  to {
    filter: brightness(1.14);
    box-shadow: 0 0 0 6px rgba(246,200,95,.15), 0 0 28px rgba(246,200,95,.38), 0 8px 19px rgba(0,0,0,.4);
  }
}
@keyframes blackjackRowGlowV335 {
  from { filter: brightness(1.02); box-shadow: inset 0 0 0 rgba(246,200,95,0); }
  to { filter: brightness(1.1); box-shadow: inset 0 0 18px rgba(246,200,95,.1); }
}

.poker-seat.is-active {
  transform: translate(-50%, -50%) !important;
}
.poker-seat.is-active .poker-seat-panel {
  transform: translateX(-50%) !important;
  animation: pokerProfileGlowV335 1.7s ease-in-out infinite alternate !important;
}
.poker-player-row.active {
  transform: none !important;
  animation: pokerRowGlowV335 1.7s ease-in-out infinite alternate !important;
}
@keyframes pokerProfileGlowV335 {
  from { filter: brightness(1); }
  to { filter: brightness(1.14); }
}
@keyframes pokerRowGlowV335 {
  from { filter: brightness(1); }
  to { filter: brightness(1.09); }
}

/* Die Blackjack-Seitenleiste endet pixelgenau an der Unterkante der Bet-Leiste. */
@media (min-width: 1181px) {
  body.multiplayer-live .multiplayer-grid {
    align-items: start !important;
  }
  body.multiplayer-live .multi-sidebar {
    height: var(--blackjack-shell-height, auto) !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: start !important;
    display: grid !important;
    grid-template-rows: minmax(150px, auto) minmax(0, 1fr) !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .table-chat-section {
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .table-chat-section .chat-messages {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    flex: 1 1 auto !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seat {
    min-height: 188px !important;
    grid-template-rows: 92px 72px 24px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row {
    height: 72px !important;
    min-height: 72px !important;
    padding: 5px 4px !important;
    grid-template-columns: minmax(0, 1fr) 48px minmax(68px, 1fr) !important;
    gap: 4px !important;
  }
  body.multiplayer-live .multi-seat .seat-bet-display,
  body.multiplayer-live .multi-seat .seat-bet-display:not(.empty) {
    transform: translateY(-8px) scale(.9) !important;
    transform-origin: left center !important;
  }
  body.multiplayer-live .multi-seat .seat-gifts {
    left: calc(100% + 3px) !important;
    top: 35px !important;
    width: 57px !important;
    height: 25px !important;
  }
  body.multiplayer-live .multi-seat .seat-gift {
    width: 23px !important;
    height: 23px !important;
    flex-basis: 23px !important;
    font-size: 14px !important;
  }
}

/* =========================================================
   V33.6 · ausschließlich angeforderte Poker-/Slots-/Animationskorrekturen
   ========================================================= */

/* Pokerprofil: nur der Zahlenwert, ohne zusätzlichen STACK-Schriftzug. */
.poker-seat-panel .poker-stack small { display: none !important; }
.poker-seat-panel .poker-stack { align-content: center !important; }

/* Slots: breiterer Automat, mittiger SPIN-Button und exakt zentriertes 3×3-Raster. */
#slotsSpinButton {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
}
@media (min-width: 1181px) {
  .slots-app.layout {
    grid-template-columns: minmax(0, 1.65fr) minmax(250px, .35fr) !important;
  }
  .slots-machine {
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 38px !important;
  }
  .slot-cabinet-window {
    width: min(840px, 100%) !important;
  }
}
.slot-reel-strip {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.slot-reel-item {
  width: 100% !important;
  min-width: 0 !important;
  height: 92px !important;
  min-height: 92px !important;
  max-height: 92px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: grid !important;
  place-items: center !important;
  transform: none !important;
}
.slot-reel-item .slot-symbol {
  margin: 0 !important;
  place-self: center !important;
}

/* Blackjack: Bet-Leiste und Holzrahmen behalten in jedem Zustand dieselbe Höhe. */
body.multiplayer-live .multi-controls {
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-lobby-controls,
body.multiplayer-live .multi-bet-controls,
body.multiplayer-live .multi-action-controls,
body.multiplayer-live .multi-insurance-controls,
body.multiplayer-live .multi-waiting-controls,
body.multiplayer-live .multi-result-controls {
  min-height: 86px !important;
  max-height: 86px !important;
  align-content: center !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-table-rim,
body.multiplayer-live .multi-felt {
  height: auto !important;
  flex: none !important;
}

/* Laufende Hervorhebungen bleiben positionsfest und besitzen einen nahtlosen Zyklus. */
body.multiplayer-live .multi-seat.active .table-avatar,
body.multiplayer-live .multi-seat .table-avatar.active,
body.multiplayer-live .multi-player-row.active,
.poker-seat.is-active .poker-seat-panel,
.poker-player-row.active,
.poker-seat.poker-hand-winner .poker-seat-panel,
body.multiplayer-live .multi-seat.multi-hand-winner .seat-profile,
.shop-item:hover:not(:disabled),
.shop-target-option:hover:not(:disabled),
.shop-tab:hover:not(:disabled) {
  transform: none !important;
  animation-name: seamlessHighlightV336 !important;
  animation-duration: 2.4s !important;
  animation-timing-function: ease-in-out !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
}
.poker-seat.is-active { transform: translate(-50%, -50%) !important; }
.poker-seat.is-active .poker-seat-panel { transform: translateX(-50%) !important; }
@keyframes seamlessHighlightV336 {
  0%, 100% {
    filter: brightness(1.04);
    box-shadow: 0 0 0 3px rgba(246,200,95,.10), 0 8px 19px rgba(0,0,0,.38);
  }
  50% {
    filter: brightness(1.14);
    box-shadow: 0 0 0 6px rgba(246,200,95,.15), 0 0 28px rgba(246,200,95,.36), 0 8px 19px rgba(0,0,0,.38);
  }
}

@media (max-width: 800px) {
  .slot-reel-item {
    height: 69px !important;
    min-height: 69px !important;
    max-height: 69px !important;
  }
  body.multiplayer-live .multi-controls {
    height: auto !important;
    min-height: 150px !important;
    max-height: none !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    min-height: 126px !important;
    max-height: none !important;
  }
}


/* =========================================================
   V33.7 · ausschließlich angeforderte Blackjack-/Slots-Stabilisierung
   ========================================================= */

/* Rote Gewinnlinien am Slotautomaten vollständig entfernen. */
.slot-payline,
.slot-payline-center,
.slots-payline-overlay {
  display: none !important;
}

/* Multiplayer-Blackjack: Tisch und Bet-Leiste besitzen je Breakpoint feste Maße. */
@media (min-width: 1181px) {
  body.multiplayer-live .multi-table-shell {
    height: 844px !important;
    min-height: 844px !important;
    max-height: 844px !important;
    grid-template-rows: 640px 190px !important;
    gap: 14px !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-table-rim {
    height: 640px !important;
    min-height: 640px !important;
    max-height: 640px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-felt {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-controls {
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 174px !important;
    min-height: 174px !important;
    max-height: 174px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) 112px 142px 164px !important;
    grid-template-rows: 56px 102px !important;
    grid-template-areas:
      "copy timer current ready"
      "palette palette palette stepper" !important;
    column-gap: 10px !important;
    row-gap: 8px !important;
    align-items: center !important;
    align-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-area: copy !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-timer { grid-area: timer !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-area: current !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-area: palette !important;
    width: 264px !important;
    min-width: 264px !important;
    max-width: 264px !important;
    height: 102px !important;
    min-height: 102px !important;
    max-height: 102px !important;
    justify-self: start !important;
    align-self: center !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-area: stepper !important;
    width: 164px !important;
    min-width: 164px !important;
    max-width: 164px !important;
    justify-self: end !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    grid-area: ready !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 46px !important;
  }
}

@media (min-width: 801px) and (max-width: 1180px) {
  body.multiplayer-live .multi-table-rim {
    height: 620px !important;
    min-height: 620px !important;
    max-height: 620px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-felt {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-controls {
    height: 286px !important;
    min-height: 286px !important;
    max-height: 286px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 112px 145px !important;
    grid-template-rows: 58px 102px 50px !important;
    grid-template-areas:
      "copy timer current"
      "palette palette palette"
      "stepper stepper ready" !important;
    gap: 10px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-area: copy !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-timer { grid-area: timer !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-area: current !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette { grid-area: palette !important; justify-self: center !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper { grid-area: stepper !important; justify-self: start !important; }
  body.multiplayer-live .multi-bet-controls > .ready-big { grid-area: ready !important; width: 100% !important; }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-felt {
    height: 500px !important;
    min-height: 500px !important;
    max-height: 500px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-controls {
    height: 430px !important;
    min-height: 430px !important;
    max-height: 430px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 406px !important;
    min-height: 406px !important;
    max-height: 406px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto 45px 58px 113px 46px 46px !important;
    align-content: start !important;
    gap: 8px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    height: 113px !important;
    min-height: 113px !important;
    max-height: 113px !important;
    overflow: visible !important;
  }
}

/* Aktive Profile werden nicht bewegt oder neu eingesetzt; die Hervorhebung selbst bleibt nahtlos. */
body.multiplayer-live .multi-seat.active,
body.multiplayer-live .multi-seat.active .seat-profile,
body.multiplayer-live .multi-seat.active .table-avatar,
.poker-seat.is-active,
.poker-seat.is-active .poker-seat-panel {
  will-change: filter, box-shadow !important;
  backface-visibility: hidden !important;
}

/* V33.7 Feinausrichtung: kein zusätzlicher Außenabstand innerhalb der festen Höhe. */
body.multiplayer-live .multi-controls {
  margin-top: 0 !important;
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-table-rim {
    height: 510px !important;
    min-height: 510px !important;
    max-height: 510px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-chip-palette {
    grid-template-columns: repeat(5, 54px) !important;
    grid-template-rows: repeat(2, 54px) !important;
    gap: 5px !important;
    justify-content: center !important;
    align-content: center !important;
  }
}

/* =========================================================
   V33.8 · ausschließlich Support-, Glücksrad- und mobile Blackjack-Korrekturen
   ========================================================= */

/* Der rote Text unter dem Supportformular wird nicht mehr sichtbar eingeblendet. */
.support-status-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Glücksrad: Segmente drehen, Zahlen bleiben als scharfe, positionsfeste Overlay-Ebene. */
.daily-wheel {
  isolation: isolate;
}
.daily-wheel-sectors,
.daily-wheel-labels {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  border-radius: 50% !important;
  overflow: visible !important;
}
.daily-wheel-sectors {
  z-index: 1;
  transform-origin: 50% 50% !important;
  transform-box: fill-box !important;
  will-change: transform;
}
.daily-wheel-labels {
  z-index: 3;
  pointer-events: none;
  transform: none !important;
}
.daily-wheel-label {
  fill: #fff8d5;
  stroke: rgba(0,0,0,.48);
  stroke-width: 2px;
  paint-order: stroke;
  font: 900 17px/1 system-ui, sans-serif;
  text-rendering: geometricPrecision;
  shape-rendering: geometricPrecision;
  transform: none !important;
  filter: none !important;
}
.daily-wheel::after {
  position: relative;
  z-index: 5;
}
.daily-wheel.manual-spinning,
.daily-wheel-hero.manual-spinning,
.daily-wheel.settled,
.daily-wheel-hero.settled {
  transform: none !important;
  filter: none !important;
}

/* Der Zugtimer sitzt fest in der rechten oberen Tischecke. */
body.multiplayer-live .multi-felt {
  position: relative !important;
}
body.multiplayer-live .multi-turn-timer {
  position: absolute !important;
  z-index: 12 !important;
  top: 14px !important;
  right: 16px !important;
  min-width: 48px !important;
  height: 34px !important;
  padding: 0 10px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(246,200,95,.38) !important;
  border-radius: 11px !important;
  color: #fff2bd !important;
  background: rgba(3,20,14,.86) !important;
  box-shadow: 0 7px 18px rgba(0,0,0,.3) !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  pointer-events: none !important;
}

/* Aktionsauswahl erscheint zuverlässig, sobald der eigene Spieler aktiv ist. */
body.multiplayer-live .multi-action-controls:not(.hidden) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  align-content: center !important;
}
body.multiplayer-live .multi-action-controls .action-btn.unavailable {
  display: grid !important;
  opacity: .38 !important;
  filter: grayscale(.35) !important;
  cursor: not-allowed !important;
}
body.multiplayer-live .multi-action-controls .action-btn:not(.unavailable) {
  opacity: 1 !important;
  filter: none !important;
}

@media (max-width: 800px) {
  /* Player-Avatare, freie Sitze und Chips bleiben auf Mobilgeräten exakt kreisrund. */
  body.multiplayer-live .multi-seat .table-avatar {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    flex: 0 0 52px !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-seat-empty.empty-player-seat {
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    aspect-ratio: 1 / 1 !important;
    justify-self: center !important;
    align-self: end !important;
    padding: 0 !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-chip-palette .chip,
  body.multiplayer-live .seat-chip-stack .laid-chip,
  body.multiplayer-live .seat-buyin-stack .mini-chip {
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .seat-chip-stack .laid-chip {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  }

  /* Tisch und Steuerung bleiben getrennt; Hit/Stand werden nicht von Sitzen oder Chips überdeckt. */
  body.multiplayer-live .multi-table-shell {
    gap: 12px !important;
  }
  body.multiplayer-live .multi-controls {
    position: relative !important;
    z-index: 20 !important;
    margin-top: 0 !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-action-controls:not(.hidden) {
    height: 406px !important;
    min-height: 406px !important;
    max-height: 406px !important;
    padding: 18px 10px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(92px, 1fr)) !important;
    gap: 10px !important;
    overflow: hidden !important;
    align-content: center !important;
  }
  body.multiplayer-live .multi-action-controls .action-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 92px !important;
    height: 100% !important;
    margin: 0 !important;
  }
  body.multiplayer-live .multi-turn-timer {
    top: 10px !important;
    right: 10px !important;
    min-width: 44px !important;
    height: 30px !important;
    padding: 0 8px !important;
    font-size: 11px !important;
  }

  /* Glücksradwerte bleiben auch bei kleiner Darstellung exakt auf den Segmenten. */
  .daily-wheel-label {
    font-size: 16px !important;
    stroke-width: 1.8px !important;
  }
}
@media (max-width: 800px) {
  body.multiplayer-live .multi-action-controls .action-btn:last-child {
    grid-column: auto !important;
  }
}

/* Der sichtbare Blackjack-Timer wird ausschließlich in der Tischecke gezeigt. */
body.multiplayer-live .multi-bet-timer {
  display: none !important;
}
body.multiplayer-live .multi-turn-timer.hidden {
  display: none !important;
}

@media (min-width: 1181px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(180px, 1fr) 142px 164px !important;
    grid-template-areas:
      "copy current ready"
      "palette palette stepper" !important;
  }
}

@media (min-width: 801px) and (max-width: 1180px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(0, 1fr) 145px !important;
    grid-template-rows: 58px 102px 50px !important;
    grid-template-areas:
      "copy current"
      "palette palette"
      "stepper ready" !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-rows: auto 58px 113px 46px 46px !important;
  }
}

/* =========================================================
   V33.11 · Support erhalten, Blackjack-Multiplayer auf V33.8 zurückgesetzt
   ========================================================= */

/* Support-Auswahl bleibt auf nativen hellen Browser-Menüs lesbar. */
.support-form select {
  color: #10231c !important;
  background: #ffffff !important;
  color-scheme: light !important;
}
.support-form select option,
.support-form select optgroup {
  color: #10231c !important;
  background: #ffffff !important;
}

/* Support muss auch vor der Anmeldung sichtbar über dem Login liegen. */
.support-overlay {
  z-index: 1200 !important;
  pointer-events: auto !important;
}
body.support-open .auth-gate {
  visibility: hidden !important;
  pointer-events: none !important;
}
body.support-open .support-overlay {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
body.support-open .support-panel,
body.support-open .support-form,
body.support-open .support-form * {
  pointer-events: auto !important;
}

/* Singleplayer-Blackjack: mobile Aktionen bleiben in einem festen 2×2-Raster. */
@media (max-width: 800px) {
  #gameApp .control-deck {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 10px !important;
  }
  #gameApp #betControls.hidden,
  #gameApp #actionControls.hidden {
    display: none !important;
  }
  #gameApp #actionControls:not(.hidden) {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    isolation: isolate !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 190px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(86px, auto)) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    align-items: stretch !important;
    align-content: stretch !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  #gameApp #actionControls:not(.hidden) > .action-btn {
    position: relative !important;
    inset: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 86px !important;
    margin: 0 !important;
    padding: 10px 7px !important;
    transform: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp #actionControls:not(.hidden) > .action-btn:hover,
  #gameApp #actionControls:not(.hidden) > .action-btn:focus-visible,
  #gameApp #actionControls:not(.hidden) > .action-btn:active {
    transform: none !important;
  }
  #gameApp #actionControls > .action-btn .action-icon {
    font-size: 24px !important;
    line-height: 1 !important;
  }
  #gameApp #actionControls > .action-btn > span:nth-child(2),
  #gameApp #actionControls > .action-btn small {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
  }
}

/* =========================================================
   V33.12 · feste Blackjack-Sitzpositionen und vollständig sichtbare Bet-Leiste
   ========================================================= */

/* Leere Plätze verwenden bereits vor dem Buy-in exakt dieselbe Außenstruktur
   und dieselbe Profilposition wie belegte Plätze. */
body.multiplayer-live .multi-seat-vacant {
  min-height: 220px !important;
  grid-template-rows: 112px 84px 24px !important;
  align-self: end !important;
  overflow: visible !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
  min-height: 112px !important;
  height: 112px !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.multiplayer-live .multi-seat-vacant .seat-info-row {
  position: relative !important;
  width: 100% !important;
  height: 76px !important;
  min-height: 76px !important;
  padding: 7px 10px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 58px minmax(96px, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat-vacant .vacant-seat-profile {
  position: relative !important;
  inset: auto !important;
  grid-column: 2 !important;
  justify-self: center !important;
  align-self: center !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  display: grid !important;
  place-items: center !important;
  transform: none !important;
}
body.multiplayer-live .multi-seat-vacant .multi-seat-empty.empty-player-seat {
  position: static !important;
  inset: auto !important;
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  max-width: 58px !important;
  min-height: 58px !important;
  max-height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
  justify-self: center !important;
  border-radius: 50% !important;
  transform: none !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat-vacant .seat-bet-display,
body.multiplayer-live .multi-seat-vacant .multi-seat-name-label {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Die Bet-Leiste erhält feste Rasterbereiche mit genügend Platz für jeden Inhalt. */
@media (min-width: 1181px) {
  body.multiplayer-live .multi-table-shell {
    height: 866px !important;
    min-height: 866px !important;
    max-height: 866px !important;
    grid-template-rows: 640px 212px !important;
  }
  body.multiplayer-live .multi-controls {
    height: 212px !important;
    min-height: 212px !important;
    max-height: 212px !important;
    padding: 10px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 192px !important;
    min-height: 192px !important;
    max-height: 192px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(190px, 1fr) 150px 164px !important;
    grid-template-rows: 58px 118px !important;
    grid-template-areas:
      "copy current ready"
      "palette palette stepper" !important;
    column-gap: 12px !important;
    row-gap: 8px !important;
    align-items: center !important;
    align-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-area: copy !important; min-width: 0 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-timer { display: none !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-area: current !important; min-width: 0 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-area: palette !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 118px !important;
    min-height: 118px !important;
    max-height: 118px !important;
    display: grid !important;
    grid-template-columns: repeat(5, 48px) !important;
    grid-template-rows: repeat(2, 48px) !important;
    justify-content: start !important;
    align-content: center !important;
    gap: 7px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette .chip {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    margin: 0 !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-area: stepper !important;
    width: 164px !important;
    min-width: 164px !important;
    max-width: 164px !important;
    justify-self: end !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    grid-area: ready !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 48px !important;
  }
}

@media (min-width: 801px) and (max-width: 1180px) {
  body.multiplayer-live .multi-controls {
    height: 300px !important;
    min-height: 300px !important;
    max-height: 300px !important;
    padding: 10px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 145px !important;
    grid-template-rows: 58px 118px 50px !important;
    grid-template-areas:
      "copy current"
      "palette palette"
      "stepper ready" !important;
    gap: 10px !important;
    align-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-timer { display: none !important; }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-area: copy !important; min-width: 0 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-area: current !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-area: palette !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 118px !important;
    min-height: 118px !important;
    max-height: 118px !important;
    display: grid !important;
    grid-template-columns: repeat(5, 48px) !important;
    grid-template-rows: repeat(2, 48px) !important;
    justify-content: center !important;
    align-content: center !important;
    gap: 7px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette .chip {
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper { grid-area: stepper !important; justify-self: start !important; }
  body.multiplayer-live .multi-bet-controls > .ready-big { grid-area: ready !important; width: 100% !important; }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seat-vacant {
    min-height: 188px !important;
    grid-template-rows: 92px 72px 24px !important;
  }
  body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
    min-height: 92px !important;
    height: 92px !important;
  }
  body.multiplayer-live .multi-seat-vacant .seat-info-row {
    height: 72px !important;
    min-height: 72px !important;
    padding: 5px 4px !important;
    grid-template-columns: minmax(0, 1fr) 52px minmax(68px, 1fr) !important;
    gap: 4px !important;
  }
  body.multiplayer-live .multi-seat-vacant .vacant-seat-profile,
  body.multiplayer-live .multi-seat-vacant .multi-seat-empty.empty-player-seat {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
  }

  body.multiplayer-live .multi-controls {
    height: 430px !important;
    min-height: 430px !important;
    max-height: 430px !important;
    padding: 10px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    height: 410px !important;
    min-height: 410px !important;
    max-height: 410px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-bet-controls {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 54px 58px 122px 48px 48px !important;
    grid-template-areas:
      "copy"
      "current"
      "palette"
      "stepper"
      "ready" !important;
    gap: 8px !important;
    align-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-timer { display: none !important; }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-area: copy !important; min-width: 0 !important; overflow: hidden !important; }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy small {
    display: block !important;
    max-height: 28px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-area: current !important; justify-self: stretch !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-area: palette !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 122px !important;
    min-height: 122px !important;
    max-height: 122px !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(44px, 52px)) !important;
    grid-template-rows: repeat(2, 52px) !important;
    justify-content: center !important;
    align-content: center !important;
    gap: 7px 5px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette .chip {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    margin: 0 !important;
    justify-self: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-area: stepper !important;
    width: 100% !important;
    max-width: none !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    grid-area: ready !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 48px !important;
  }
}

/* =========================================================
   V33.18 · Neu aufgebaute Blackjack-Multiplayer-Aktionen
   ========================================================= */
body.multiplayer-live .blackjack-decision-controls.hidden {
  display: none !important;
  pointer-events: none !important;
}
body.multiplayer-live .blackjack-decision-controls:not(.hidden) {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 50 !important;
  box-sizing: border-box !important;
}
body.multiplayer-live #multiActionControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  padding: 16px !important;
  align-items: stretch !important;
}
body.multiplayer-live #multiActionControls [data-blackjack-action],
body.multiplayer-live #multiInsuranceControls [data-blackjack-action] {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  position: relative !important;
  z-index: 1 !important;
}
body.multiplayer-live #multiActionControls [data-blackjack-action]:not(:disabled),
body.multiplayer-live #multiInsuranceControls [data-blackjack-action]:not(:disabled) {
  cursor: pointer !important;
  opacity: 1 !important;
}
body.multiplayer-live #multiActionControls [data-blackjack-action]:disabled,
body.multiplayer-live #multiInsuranceControls [data-blackjack-action]:disabled {
  cursor: not-allowed !important;
  opacity: .4 !important;
}
body.multiplayer-live #multiActionControls .action-btn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 92px !important;
  margin: 0 !important;
}
body.multiplayer-live #multiInsuranceControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  gap: 12px !important;
  align-items: center !important;
  padding: 16px !important;
}

/* Sitze und Profile etwas tiefer; Namen exakt mittig unter dem Profil. */
body.multiplayer-live .multi-seats {
  position: relative !important;
  top: 10px !important;
}
body.multiplayer-live .multi-seat-name-label {
  width: 110px !important;
  max-width: calc(100% - 12px) !important;
  justify-self: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (max-width: 800px) {
  body.multiplayer-live #multiActionControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(86px, 1fr)) !important;
    gap: 9px !important;
    padding: 12px 9px !important;
  }
  body.multiplayer-live #multiActionControls .action-btn {
    min-height: 86px !important;
  }
  body.multiplayer-live #multiInsuranceControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto 52px !important;
    gap: 9px !important;
    padding: 12px 9px !important;
  }
  body.multiplayer-live #multiInsuranceControls > div {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
  }
  body.multiplayer-live #multiInsuranceControls > button {
    width: 100% !important;
    min-width: 0 !important;
    height: 52px !important;
  }
  body.multiplayer-live .multi-seats {
    top: 6px !important;
  }
  body.multiplayer-live .multi-seat-name-label {
    width: 86px !important;
  }
}

/* =========================================================
   V33.19 · sichtbare Blackjack-Aktionen und Timer
   ========================================================= */
body.multiplayer-live .multi-controls {
  position: relative !important;
  isolation: isolate !important;
}
body.multiplayer-live #multiActionControls:not(.hidden),
body.multiplayer-live #multiInsuranceControls:not(.hidden) {
  position: absolute !important;
  inset: 8px !important;
  z-index: 200 !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  box-sizing: border-box !important;
}
body.multiplayer-live #multiActionControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  padding: 8px !important;
  align-items: stretch !important;
  align-content: stretch !important;
}
body.multiplayer-live #multiActionControls .action-btn {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  pointer-events: auto !important;
}
body.multiplayer-live #multiInsuranceControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  gap: 12px !important;
  padding: 12px !important;
  align-items: center !important;
}
body.multiplayer-live #multiTimer:not(.hidden) {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 500 !important;
}
body.multiplayer-live .multi-seats {
  top: 16px !important;
}
@media (max-width: 800px) {
  body.multiplayer-live #multiActionControls:not(.hidden) {
    inset: 10px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 8px !important;
  }
  body.multiplayer-live #multiActionControls .action-btn {
    min-height: 78px !important;
  }
  body.multiplayer-live #multiInsuranceControls:not(.hidden) {
    inset: 10px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto 52px !important;
    padding: 10px !important;
  }
  body.multiplayer-live #multiInsuranceControls > div {
    grid-column: 1 / -1 !important;
  }
  body.multiplayer-live .multi-seats {
    top: 10px !important;
  }
}


/* =========================================================
   V33.20 · exklusive Blackjack-Steuerung und stabiles Sitzlayout
   ========================================================= */

/* In der unteren Leiste ist immer nur der zur Spielphase passende Bereich sichtbar. */
body.multiplayer-live .multi-controls > #multiLobbyControls.hidden,
body.multiplayer-live .multi-controls > #multiBetControls.hidden,
body.multiplayer-live .multi-controls > #multiActionControls.hidden,
body.multiplayer-live .multi-controls > #multiInsuranceControls.hidden,
body.multiplayer-live .multi-controls > #multiWaitingControls.hidden,
body.multiplayer-live .multi-controls > #multiResultControls.hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.multiplayer-live .multi-controls > #multiActionControls:not(.hidden),
body.multiplayer-live .multi-controls > #multiInsuranceControls:not(.hidden) {
  position: relative !important;
  inset: auto !important;
  z-index: 20 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-controls > #multiActionControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  padding: 14px !important;
  align-items: stretch !important;
  align-content: stretch !important;
}
body.multiplayer-live .multi-controls > #multiActionControls:not(.hidden) .action-btn {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
}

/* Der sichtbare Timer wird unabhängig von älteren hidden-Regeln fest eingeblendet. */
body.multiplayer-live #multiTimer[data-visible="true"] {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 1000 !important;
  top: 14px !important;
  right: 16px !important;
}
body.multiplayer-live #multiTimer[data-visible="false"] {
  display: none !important;
}

/* Die Statusanzeige bleibt leicht am Kartenfeld, sitzt aber etwas höher. */
body.multiplayer-live .multi-turn-status {
  position: relative !important;
  top: -9px !important;
  margin: 2px auto 8px !important;
}

/* Karteninhalt darf die Sitzhöhe nicht mehr verändern. */
body.multiplayer-live .multi-seat,
body.multiplayer-live .multi-seat-vacant {
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  grid-template-rows: 112px 84px 24px !important;
  align-self: end !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat .multi-hands,
body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  overflow: hidden !important;
  contain: layout paint !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat .seat-info-row,
body.multiplayer-live .multi-seat-vacant .seat-info-row {
  height: 84px !important;
  min-height: 84px !important;
  max-height: 84px !important;
  align-self: end !important;
  transform: none !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat.active,
body.multiplayer-live .multi-seat.active .seat-info-row,
body.multiplayer-live .multi-seat.active .seat-profile,
body.multiplayer-live .multi-seat.active .table-avatar {
  transform: none !important;
}

/* Spielername exakt auf der Mittelachse des Profil-Icons. */
body.multiplayer-live .multi-seat-name-label {
  width: 100% !important;
  max-width: 100% !important;
  height: 24px !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 2px 0 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  justify-self: stretch !important;
  text-align: center !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-sizing: border-box !important;
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-controls > #multiActionControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 12px 10px !important;
  }
  body.multiplayer-live #multiTimer[data-visible="true"] {
    top: 10px !important;
    right: 10px !important;
  }
  body.multiplayer-live .multi-turn-status {
    top: -6px !important;
    margin-bottom: 7px !important;
  }
  body.multiplayer-live .multi-seat,
  body.multiplayer-live .multi-seat-vacant {
    height: 188px !important;
    min-height: 188px !important;
    max-height: 188px !important;
    grid-template-rows: 92px 72px 24px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands,
  body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row,
  body.multiplayer-live .multi-seat-vacant .seat-info-row {
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }
}

/* Profilachse und Name bleiben unabhängig von Einsatz und Karten exakt zentriert. */
body.multiplayer-live .multi-seat .seat-info-row,
body.multiplayer-live .multi-seat-vacant .seat-info-row {
  position: relative !important;
  display: block !important;
}
body.multiplayer-live .multi-seat .seat-profile,
body.multiplayer-live .multi-seat-vacant .vacant-seat-profile {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
}
body.multiplayer-live .multi-seat .seat-bet-display,
body.multiplayer-live .multi-seat .seat-bet-display:not(.empty),
body.multiplayer-live .multi-seat-vacant .seat-bet-display {
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  left: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translateY(-50%) !important;
}
body.multiplayer-live .multi-seat.active .seat-profile {
  transform: translate(-50%, -50%) !important;
}

/* =========================================================
   V33.21 · Blackjack-Einsatzsteuerung, Aufstehen und Profiltimer
   ========================================================= */

/* Die vier Schnellaktionen ersetzen die alte −5/Reset/MAX-Gruppe. */
body.multiplayer-live .multi-bet-stepper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 7px !important;
}
body.multiplayer-live .multi-bet-stepper button {
  min-width: 0 !important;
  width: 100% !important;
  white-space: nowrap !important;
}
@media (max-width: 1180px) {
  body.multiplayer-live .multi-bet-stepper {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: 1fr !important;
  }
}

/* Der Zugtimer sitzt wie bei Poker als Pegelleiste direkt unter dem aktiven Profil. */
body.multiplayer-live #multiTimer,
body.multiplayer-live #multiTimer[data-visible="true"] {
  --blackjack-timer-progress: 1;
  position: absolute !important;
  z-index: 80 !important;
  left: 3px !important;
  right: 3px !important;
  top: auto !important;
  bottom: -9px !important;
  width: auto !important;
  min-width: 0 !important;
  height: 5px !important;
  min-height: 5px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  background: rgba(255,255,255,.14) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.48) !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
body.multiplayer-live #multiTimer.hidden,
body.multiplayer-live #multiTimer[data-visible="false"] {
  display: none !important;
}
body.multiplayer-live #multiTimer > i {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, #35e7ad, #8dffe0) !important;
  transform: scaleX(var(--blackjack-timer-progress, 1)) !important;
  transform-origin: left center !important;
  transition: transform .25s linear, background .18s ease !important;
}
body.multiplayer-live #multiTimer.urgent > i {
  background: linear-gradient(90deg, #ff4964, #ff9b69) !important;
}

/* Der Schriftzug „AM ZUG“ sitzt höher an der oberen Ecke des Kartenfelds. */
body.multiplayer-live .multi-seat.active::before {
  top: -3px !important;
  left: 7px !important;
}

/* Aufstehen ist auch während einer Runde erreichbar. */
body.multiplayer-live #multiStandButton:not(.hidden) {
  display: inline-flex !important;
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seat.active::before {
    top: -2px !important;
    left: 5px !important;
  }
  body.multiplayer-live #multiTimer,
  body.multiplayer-live #multiTimer[data-visible="true"] {
    left: 2px !important;
    right: 2px !important;
    bottom: -7px !important;
    height: 4px !important;
    min-height: 4px !important;
  }
}


/* =========================================================
   V33.22 · Favicon, timerfreie Blackjack-UI und feste Sitzachse
   ========================================================= */

/* In Blackjack Multiplayer werden keinerlei Timer mehr dargestellt. */
body.multiplayer-live #multiTimer,
body.multiplayer-live #multiBetTimer,
body.multiplayer-live .multi-turn-timer,
body.multiplayer-live .multi-bet-timer {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* „Stand Up“ bleibt in jeder Sprache geometrisch exakt zentriert. */
body.multiplayer-live #multiStandButton {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

/* Einsatz-Schnellaktionen: größer, lesbar und im Stil der übrigen Buttons. */
body.multiplayer-live .multi-bet-stepper {
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, 48px) !important;
  gap: 8px !important;
  border: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}
body.multiplayer-live .multi-bet-stepper button {
  width: 100% !important;
  min-width: 0 !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(117,255,192,.24) !important;
  border-radius: 12px !important;
  color: #eafff7 !important;
  background: linear-gradient(180deg, rgba(41,126,91,.34), rgba(12,60,43,.54)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 6px 14px rgba(0,0,0,.18) !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  letter-spacing: .02em !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
body.multiplayer-live .multi-bet-stepper button:hover:not(:disabled),
body.multiplayer-live .multi-bet-stepper button:focus-visible:not(:disabled) {
  transform: none !important;
  filter: brightness(1.12) !important;
  border-color: rgba(117,255,192,.52) !important;
  background: linear-gradient(180deg, rgba(56,157,114,.46), rgba(14,76,54,.68)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 0 3px rgba(117,255,192,.08), 0 8px 18px rgba(0,0,0,.22) !important;
}
body.multiplayer-live .multi-bet-stepper button:disabled {
  cursor: not-allowed !important;
  opacity: .38 !important;
}

@media (min-width: 1181px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(190px, 1fr) 150px 220px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
  }
}

/* Der komplette Sitzbereich ist fest am Tisch verankert. Karten können ihn nicht verschieben. */
body.multiplayer-live .multi-felt {
  position: relative !important;
}
body.multiplayer-live .multi-seats {
  position: absolute !important;
  z-index: 4 !important;
  left: 16px !important;
  right: 16px !important;
  bottom: 16px !important;
  top: auto !important;
  width: auto !important;
  min-height: 220px !important;
  height: 220px !important;
  max-height: 220px !important;
  margin: 0 !important;
  transform: none !important;
  align-items: end !important;
  contain: layout !important;
}
body.multiplayer-live .multi-seat,
body.multiplayer-live .multi-seat-vacant {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: none !important;
  contain: layout paint !important;
}
body.multiplayer-live .multi-seat .multi-hands,
body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
  position: relative !important;
  width: 100% !important;
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  overflow: hidden !important;
  contain: strict !important;
}
body.multiplayer-live .multi-seat .seat-info-row,
body.multiplayer-live .multi-seat-vacant .seat-info-row {
  position: relative !important;
  width: 100% !important;
  height: 84px !important;
  min-height: 84px !important;
  max-height: 84px !important;
  transform: none !important;
  contain: layout !important;
}
body.multiplayer-live .multi-seat .seat-profile,
body.multiplayer-live .multi-seat-vacant .vacant-seat-profile,
body.multiplayer-live .multi-seat.active .seat-profile {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
}
body.multiplayer-live .multi-seat .table-avatar,
body.multiplayer-live .multi-seat.active .table-avatar {
  transform: none !important;
}

/* Sprachabhängiger Zughinweis, weiter oben an der Ecke des Kartenfeldes. */
body.multiplayer-live .multi-seat.active::before {
  content: attr(data-turn-label) !important;
  top: -15px !important;
  left: 8px !important;
  min-width: max-content !important;
  text-align: center !important;
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-bet-stepper {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: 50px !important;
  }
  body.multiplayer-live .multi-bet-stepper button {
    height: 50px !important;
    min-height: 50px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seats {
    left: 6px !important;
    right: 6px !important;
    bottom: 8px !important;
    height: 188px !important;
    min-height: 188px !important;
    max-height: 188px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands,
  body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }
  body.multiplayer-live .multi-seat .seat-info-row,
  body.multiplayer-live .multi-seat-vacant .seat-info-row {
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }
  body.multiplayer-live .multi-seat.active::before {
    top: -12px !important;
    left: 5px !important;
  }
  body.multiplayer-live .multi-bet-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, 48px) !important;
    gap: 8px !important;
  }
  body.multiplayer-live .multi-bet-stepper button {
    height: 48px !important;
    min-height: 48px !important;
    font-size: 13px !important;
  }
}

/* =========================================================
   V33.23 · sichtbare Steuerelemente und positionsfeste Gewinnerprofile
   ========================================================= */

/* Die Einsatz-Schnellbuttons bleiben vollständig innerhalb der Bet-Leiste. */
body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
  position: relative !important;
  top: -7px !important;
  margin-bottom: 0 !important;
}

/* Sitz- und Kartenbereich etwas höher; die Kartenfläche erhält oben echten Innenraum. */
body.multiplayer-live .multi-seats {
  bottom: 26px !important;
  height: 228px !important;
  min-height: 228px !important;
  max-height: 228px !important;
  contain: layout !important;
}
body.multiplayer-live .multi-seat,
body.multiplayer-live .multi-seat-vacant {
  height: 228px !important;
  min-height: 228px !important;
  max-height: 228px !important;
  grid-template-rows: 120px 84px 24px !important;
  overflow: visible !important;
  contain: layout !important;
}
body.multiplayer-live .multi-seat .multi-hands,
body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
  height: 120px !important;
  min-height: 120px !important;
  max-height: 120px !important;
  padding-top: 10px !important;
  overflow: hidden !important;
  contain: layout !important;
  box-sizing: border-box !important;
}

/* Gewinner-Glow verändert weder Blackjack-Profil noch Avatarposition. */
body.multiplayer-live .multi-seat.multi-hand-winner,
body.multiplayer-live .multi-seat.multi-hand-winner .seat-info-row {
  transform: none !important;
}
body.multiplayer-live .multi-seat.multi-hand-winner .seat-profile {
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  animation: fixedWinnerGlowV3323 1.45s ease-in-out infinite !important;
}
body.multiplayer-live .multi-seat.multi-hand-winner .table-avatar {
  transform: none !important;
}

/* Poker-Gewinnerprofil bleibt exakt an seiner bestehenden Position. */
.poker-seat.poker-hand-winner {
  transform: translate(-50%, -50%) !important;
  animation: none !important;
}
.poker-seat.poker-hand-winner .poker-seat-panel {
  left: 50% !important;
  transform: translateX(-50%) !important;
  animation: fixedWinnerGlowV3323 1.45s ease-in-out infinite !important;
}

@keyframes fixedWinnerGlowV3323 {
  0%, 100% {
    filter: brightness(1.04);
    box-shadow: 0 0 0 3px rgba(255,213,87,.16), 0 0 22px rgba(255,200,52,.28), 0 12px 26px rgba(0,0,0,.44);
  }
  50% {
    filter: brightness(1.18);
    box-shadow: 0 0 0 5px rgba(255,213,87,.22), 0 0 36px rgba(255,200,52,.48), 0 12px 26px rgba(0,0,0,.44);
  }
}

/* Poker-Aktionsbuttons werden ein wenig angehoben und unten nicht mehr abgeschnitten. */
.poker-action-controls > .action-btn,
.poker-action-controls .poker-raise-control .action-btn {
  position: relative !important;
  top: -4px !important;
  margin-bottom: 0 !important;
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    top: -6px !important;
  }
  body.multiplayer-live .multi-seats {
    bottom: 16px !important;
    height: 196px !important;
    min-height: 196px !important;
    max-height: 196px !important;
  }
  body.multiplayer-live .multi-seat,
  body.multiplayer-live .multi-seat-vacant {
    height: 196px !important;
    min-height: 196px !important;
    max-height: 196px !important;
    grid-template-rows: 100px 72px 24px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands,
  body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    padding-top: 8px !important;
  }
  .poker-action-controls > .action-btn,
  .poker-action-controls .poker-raise-control .action-btn {
    top: -5px !important;
  }
}


/* =========================================================
   V33.24 · Blackjack-Flächen, Ergebnisdarstellung und stabile Seitenleisten
   ========================================================= */

/* Sitze/Profile weiter nach oben; die Kartenfläche ist höher und besitzt eine eigene Statuszeile. */
body.multiplayer-live .multi-felt {
  min-height: 700px !important;
}
body.multiplayer-live .multi-seats {
  bottom: 48px !important;
  height: 278px !important;
  min-height: 278px !important;
  max-height: 278px !important;
}
body.multiplayer-live .multi-seat,
body.multiplayer-live .multi-seat-vacant {
  height: 278px !important;
  min-height: 278px !important;
  max-height: 278px !important;
  grid-template-rows: 168px 82px 24px !important;
}
body.multiplayer-live .multi-seat .multi-hands,
body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
  height: 168px !important;
  min-height: 168px !important;
  max-height: 168px !important;
  padding: 8px !important;
}
body.multiplayer-live .multi-seat .multi-hand {
  grid-template-rows: 18px minmax(0, 1fr) 22px !important;
  padding: 5px 6px !important;
}
body.multiplayer-live .multi-seat .multi-hand-cards {
  height: auto !important;
  min-height: 104px !important;
  max-height: 112px !important;
  padding: 5px 8px !important;
}
body.multiplayer-live .multi-seat .multi-hand-result {
  position: relative !important;
  z-index: 4 !important;
  height: 22px !important;
  min-height: 22px !important;
  line-height: 22px !important;
  padding: 0 4px !important;
  background: rgba(1,18,13,.82) !important;
  border-radius: 7px !important;
  overflow: hidden !important;
}

/* Schnell-Einsatzbuttons direkt unter dem Einsatzhinweis. */
body.multiplayer-live .multi-bet-controls {
  grid-template-columns: minmax(210px, 1fr) 190px minmax(280px, 1.35fr) auto !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 7px !important;
}
body.multiplayer-live .multi-bet-controls > .multi-control-copy {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: end !important;
}
body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
  grid-column: 1 !important;
  grid-row: 2 !important;
  position: static !important;
  top: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-template-rows: 44px !important;
  gap: 6px !important;
}
body.multiplayer-live .multi-bet-controls > .multi-current-bet {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
}
body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
  grid-column: 3 !important;
  grid-row: 1 / 3 !important;
}
body.multiplayer-live .multi-bet-controls > .ready-big {
  grid-column: 4 !important;
  grid-row: 1 / 3 !important;
}
body.multiplayer-live .multi-bet-stepper button {
  height: 44px !important;
  min-height: 44px !important;
  font-size: 13px !important;
}

/* Gewinn/Verlust direkt am Sitz, ohne das Profil zu verschieben. */
body.multiplayer-live .seat-round-profit {
  position: absolute !important;
  z-index: 15 !important;
  left: 50% !important;
  bottom: -22px !important;
  transform: translateX(-50%) !important;
  min-width: max-content !important;
  min-height: 20px !important;
  padding: 3px 9px !important;
  border-radius: 999px !important;
  color: transparent !important;
  background: transparent !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  line-height: 14px !important;
  pointer-events: none !important;
}
body.multiplayer-live .seat-round-profit.positive {
  color: #a7ffd1 !important;
  background: rgba(10,88,57,.88) !important;
  box-shadow: 0 0 18px rgba(73,255,157,.24) !important;
}
body.multiplayer-live .seat-round-profit.negative {
  color: #ffd8dd !important;
  background: rgba(113,17,31,.9) !important;
  box-shadow: 0 0 18px rgba(255,70,91,.3) !important;
}
body.multiplayer-live .multi-seat.multi-hand-loser .seat-profile {
  transform: translate(-50%, -50%) !important;
  animation: blackjackLoseGlowV3324 1.15s ease-in-out infinite !important;
}
body.multiplayer-live .multi-seat.multi-hand-loser .table-avatar {
  transform: none !important;
}
@keyframes blackjackLoseGlowV3324 {
  0%, 100% {
    filter: brightness(.96);
    box-shadow: 0 0 0 3px rgba(255,75,95,.16), 0 0 20px rgba(255,52,79,.25), 0 10px 24px rgba(0,0,0,.42);
  }
  50% {
    filter: brightness(1.12);
    box-shadow: 0 0 0 5px rgba(255,75,95,.24), 0 0 34px rgba(255,52,79,.48), 0 10px 24px rgba(0,0,0,.42);
  }
}

/* Rechte Spielerlisten: keine springende oder neu startende Positionsanimation. */
body.multiplayer-live .multi-player-row,
body.multiplayer-live .multi-player-row.active,
body.multiplayer-live .multi-player-row.multi-hand-winner,
body.multiplayer-live .multi-player-row.multi-hand-loser,
.poker-player-row,
.poker-player-row.active,
.poker-player-row.poker-hand-winner {
  transform: none !important;
  animation: none !important;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
body.multiplayer-live .multi-player-row.active,
.poker-player-row.active {
  filter: brightness(1.08) !important;
  box-shadow: inset 0 0 18px rgba(246,200,95,.1) !important;
}
body.multiplayer-live .multi-player-row.multi-hand-loser {
  border-color: rgba(255,78,98,.42) !important;
  background: rgba(110,18,31,.28) !important;
}

/* Poker-Aktionsbuttons vertikal schmaler, damit nichts abgeschnitten wird. */
.poker-action-controls > .action-btn,
.poker-action-controls .poker-raise-control,
.poker-action-controls .poker-raise-control .action-btn {
  top: 0 !important;
  height: 62px !important;
  min-height: 62px !important;
  max-height: 62px !important;
}
.poker-action-controls > .action-btn {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}
.poker-action-controls .poker-raise-control {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

.developer-leaderboard-control {
  margin-bottom: 18px !important;
}
.developer-leaderboard-control .admin-toolbar {
  align-items: center !important;
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(0, 1fr) 160px !important;
    grid-template-rows: auto auto auto !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-column: 1 !important; grid-row: 1 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper { grid-column: 1 !important; grid-row: 2 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-column: 2 !important; grid-row: 1 / 3 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette { grid-column: 1 / -1 !important; grid-row: 3 !important; }
  body.multiplayer-live .multi-bet-controls > .ready-big { grid-column: 2 !important; grid-row: 3 !important; }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-felt {
    min-height: 625px !important;
  }
  body.multiplayer-live .multi-seats {
    bottom: 30px !important;
    height: 224px !important;
    min-height: 224px !important;
    max-height: 224px !important;
  }
  body.multiplayer-live .multi-seat,
  body.multiplayer-live .multi-seat-vacant {
    height: 224px !important;
    min-height: 224px !important;
    max-height: 224px !important;
    grid-template-rows: 128px 72px 24px !important;
  }
  body.multiplayer-live .multi-seat .multi-hands,
  body.multiplayer-live .multi-seat-vacant .multi-hands-vacant {
    height: 128px !important;
    min-height: 128px !important;
    max-height: 128px !important;
  }
  body.multiplayer-live .multi-seat .multi-hand-cards {
    min-height: 72px !important;
    max-height: 78px !important;
  }
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto auto auto !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-column: 1 !important; grid-row: 1 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper { grid-column: 1 !important; grid-row: 2 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet { grid-column: 1 !important; grid-row: 3 !important; justify-self: center !important; }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette { grid-column: 1 !important; grid-row: 4 !important; }
  body.multiplayer-live .multi-bet-controls > .ready-big { grid-column: 1 !important; grid-row: 5 !important; width: 100% !important; }
}

/* Die Bet-Leiste behält pro Bildschirmgröße eine feste, ausreichend große Höhe. */
body.multiplayer-live .multi-controls {
  height: 158px !important;
  min-height: 158px !important;
  max-height: 158px !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-lobby-controls,
body.multiplayer-live .multi-bet-controls,
body.multiplayer-live .multi-action-controls,
body.multiplayer-live .multi-insurance-controls,
body.multiplayer-live .multi-waiting-controls,
body.multiplayer-live .multi-result-controls {
  min-height: 132px !important;
  max-height: 132px !important;
}
@media (max-width: 1180px) {
  body.multiplayer-live .multi-controls {
    height: 226px !important;
    min-height: 226px !important;
    max-height: 226px !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    min-height: 200px !important;
    max-height: 200px !important;
  }
}
@media (max-width: 800px) {
  body.multiplayer-live .multi-controls {
    height: 390px !important;
    min-height: 390px !important;
    max-height: 390px !important;
  }
  body.multiplayer-live .multi-lobby-controls,
  body.multiplayer-live .multi-bet-controls,
  body.multiplayer-live .multi-action-controls,
  body.multiplayer-live .multi-insurance-controls,
  body.multiplayer-live .multi-waiting-controls,
  body.multiplayer-live .multi-result-controls {
    min-height: 364px !important;
    max-height: 364px !important;
  }
  body.multiplayer-live .multi-action-controls {
    align-content: center !important;
  }
}


/* =========================================================
   V33.25 · stabile Blackjack-Einsatzleiste und Developer-Login
   ========================================================= */

/* Sitze/Profile etwas weiter nach oben, ohne ihre Größen zu verändern. */
body.multiplayer-live .multi-seats {
  bottom: 70px !important;
}

/* Die fünf Schnellaktionen und alle Jetons behalten immer dieselben Maße und Koordinaten. */
body.multiplayer-live .multi-bet-controls {
  grid-template-columns: minmax(330px, 1fr) 190px minmax(520px, 1.35fr) 136px !important;
  grid-template-rows: 48px 48px !important;
  column-gap: 12px !important;
  row-gap: 6px !important;
}
body.multiplayer-live .multi-bet-controls > .multi-control-copy {
  min-width: 0 !important;
  width: 100% !important;
}
body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-template-rows: 44px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  gap: 6px !important;
  align-self: start !important;
  justify-self: stretch !important;
  overflow: visible !important;
}
body.multiplayer-live .multi-bet-stepper button,
body.multiplayer-live .multi-bet-stepper button:hover,
body.multiplayer-live .multi-bet-stepper button:focus,
body.multiplayer-live .multi-bet-stepper button:focus-visible,
body.multiplayer-live .multi-bet-stepper button:active {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  transform: none !important;
  font-size: 12px !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-bet-controls > .multi-current-bet {
  width: 190px !important;
  min-width: 190px !important;
  max-width: 190px !important;
  height: 96px !important;
  min-height: 96px !important;
  max-height: 96px !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
  display: grid !important;
  grid-template-columns: repeat(10, 46px) !important;
  grid-auto-flow: column !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 96px !important;
  min-height: 96px !important;
  max-height: 96px !important;
  gap: 5px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-chip-palette .chip,
body.multiplayer-live .multi-chip-palette .chip:hover,
body.multiplayer-live .multi-chip-palette .chip:focus,
body.multiplayer-live .multi-chip-palette .chip:focus-visible,
body.multiplayer-live .multi-chip-palette .chip:active,
body.multiplayer-live .multi-chip-palette .chip.selected {
  position: static !important;
  inset: auto !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  flex: 0 0 46px !important;
  margin: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-bet-controls > .ready-big,
body.multiplayer-live .multi-bet-controls > .ready-big:hover,
body.multiplayer-live .multi-bet-controls > .ready-big:focus,
body.multiplayer-live .multi-bet-controls > .ready-big:focus-visible,
body.multiplayer-live .multi-bet-controls > .ready-big:active {
  width: 136px !important;
  min-width: 136px !important;
  max-width: 136px !important;
  height: 96px !important;
  min-height: 96px !important;
  max-height: 96px !important;
  margin: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}

/* Rechte Leiste endet exakt an derselben Unterkante wie Tisch plus Bet-Leiste. */
@media (min-width: 1181px) {
  body.multiplayer-live .multi-sidebar[data-height-synced="true"] {
    height: var(--blackjack-shell-height) !important;
    min-height: var(--blackjack-shell-height) !important;
    max-height: var(--blackjack-shell-height) !important;
    box-sizing: border-box !important;
    align-self: start !important;
    overflow: hidden !important;
  }
}

/* Poker-Bet/Raise-Knopf erhält innerhalb seiner Fläche Luft zum Rand. */
.poker-action-controls .poker-raise-control .action-btn,
.poker-action-controls .poker-raise-control .action-btn:hover,
.poker-action-controls .poker-raise-control .action-btn:focus,
.poker-action-controls .poker-raise-control .action-btn:focus-visible,
.poker-action-controls .poker-raise-control .action-btn:active {
  width: calc(100% - 12px) !important;
  min-width: 0 !important;
  max-width: calc(100% - 12px) !important;
  height: 54px !important;
  min-height: 54px !important;
  max-height: 54px !important;
  margin: 0 auto !important;
  transform: none !important;
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(0, 1fr) 160px !important;
    grid-template-rows: auto 48px 104px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet {
    width: 160px !important;
    min-width: 160px !important;
    max-width: 160px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-template-columns: repeat(10, 46px) !important;
    justify-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    width: 160px !important;
    min-width: 160px !important;
    max-width: 160px !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seats {
    bottom: 44px !important;
  }
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 92px 96px auto 58px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, 42px) !important;
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }
  body.multiplayer-live .multi-bet-stepper button,
  body.multiplayer-live .multi-bet-stepper button:hover,
  body.multiplayer-live .multi-bet-stepper button:focus,
  body.multiplayer-live .multi-bet-stepper button:focus-visible,
  body.multiplayer-live .multi-bet-stepper button:active {
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-template-columns: repeat(5, 46px) !important;
    grid-template-rows: repeat(2, 46px) !important;
    grid-auto-flow: row !important;
    width: 100% !important;
    height: 98px !important;
    min-height: 98px !important;
    max-height: 98px !important;
    justify-content: center !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
  }
}

/* V33.25 Korrektur: Einsatzraster bleibt innerhalb der 900px-Tischbreite. */
body.multiplayer-live .multi-bet-controls {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  grid-template-columns: 220px 120px minmax(0, 1fr) 100px !important;
  grid-template-rows: 48px 48px !important;
  column-gap: 10px !important;
  row-gap: 6px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-template-rows: 44px !important;
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
}
body.multiplayer-live .multi-bet-controls > .multi-current-bet {
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
}
body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
  grid-template-columns: repeat(5, 46px) !important;
  grid-template-rows: repeat(2, 46px) !important;
  grid-auto-flow: row !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  justify-content: center !important;
}
body.multiplayer-live .multi-bet-controls > .ready-big,
body.multiplayer-live .multi-bet-controls > .ready-big:hover,
body.multiplayer-live .multi-bet-controls > .ready-big:focus,
body.multiplayer-live .multi-bet-controls > .ready-big:focus-visible,
body.multiplayer-live .multi-bet-controls > .ready-big:active {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
}

@media (max-width: 1180px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: minmax(0, 1fr) 150px !important;
    grid-template-rows: auto 44px 104px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-column: 1 !important; grid-row: 1 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-template-rows: 44px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 96px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-column: 1 !important;
    grid-row: 3 !important;
    grid-template-columns: repeat(5, 46px) !important;
    grid-template-rows: repeat(2, 46px) !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    grid-column: 2 !important;
    grid-row: 3 !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 96px !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 44px 72px 98px 58px !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-control-copy { grid-column: 1 !important; grid-row: 1 !important; }
  body.multiplayer-live .multi-bet-controls > .multi-bet-stepper {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-template-rows: 44px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-current-bet {
    grid-column: 1 !important;
    grid-row: 3 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    height: 98px !important;
    min-height: 98px !important;
    max-height: 98px !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big {
    grid-column: 1 !important;
    grid-row: 5 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
  }
}


/* =========================================================
   V33.26 · präzise Ausrichtung ohne weitere Layoutumbauten
   ========================================================= */

/* Spielernamen stehen direkt und exakt mittig unter dem Profil-Icon. */
body.multiplayer-live .multi-seat-name-label {
  position: relative !important;
  z-index: 12 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 20px !important;
  min-height: 20px !important;
  margin: 0 !important;
  padding: 0 4px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 18px !important;
  transform: translateY(-10px) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* Der „Choose a bet first“/Bereit-Button ist horizontal breiter. */
@media (min-width: 1181px) {
  body.multiplayer-live .multi-bet-controls {
    grid-template-columns: 220px 120px minmax(0, 1fr) 140px !important;
  }
  body.multiplayer-live .multi-bet-controls > .ready-big,
  body.multiplayer-live .multi-bet-controls > .ready-big:hover,
  body.multiplayer-live .multi-bet-controls > .ready-big:focus,
  body.multiplayer-live .multi-bet-controls > .ready-big:focus-visible,
  body.multiplayer-live .multi-bet-controls > .ready-big:active {
    width: 140px !important;
    min-width: 140px !important;
    max-width: 140px !important;
  }

  /* Die rechte Seitenleiste endet exakt an der Unterkante der Bet-Leiste. */
  body.multiplayer-live .multiplayer-grid {
    align-items: start !important;
  }
  body.multiplayer-live .multi-sidebar[data-height-synced="true"] {
    align-self: start !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }
  body.multiplayer-live .multi-sidebar[data-height-synced="true"] .table-chat-section {
    min-height: 0 !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  body.multiplayer-live .multi-sidebar[data-height-synced="true"] .table-chat-section .chat-messages {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
  }
}

/* Poker-Bet-Button: oben und unten derselbe Abstand innerhalb der Raise-Fläche. */
.poker-action-controls .poker-raise-control .action-btn,
.poker-action-controls .poker-raise-control .action-btn:hover,
.poker-action-controls .poker-raise-control .action-btn:focus,
.poker-action-controls .poker-raise-control .action-btn:focus-visible,
.poker-action-controls .poker-raise-control .action-btn:active {
  align-self: center !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin-top: auto !important;
  margin-bottom: auto !important;
}

@media (max-width: 800px) {
  body.multiplayer-live .multi-seat-name-label {
    line-height: 17px !important;
    transform: translateY(-8px) !important;
  }
}


/* =========================================================
   V33.27 · ausschließlich angeforderte Login-/Blackjack-Korrekturen
   ========================================================= */

/* Singleplayer: Tisch und Bedienleiste behalten in jeder Phase exakt dieselbe
   Außenposition und Größe. Nur der Inhalt der Leiste wird ausgetauscht. */
#gameApp .solo-private-shell {
  display: grid !important;
  grid-template-rows: 680px 190px !important;
  gap: 12px !important;
  align-content: start !important;
}
#gameApp .solo-private-rim {
  height: 680px !important;
  min-height: 680px !important;
  max-height: 680px !important;
  box-sizing: border-box !important;
}
#gameApp .solo-private-felt {
  height: 652px !important;
  min-height: 652px !important;
  max-height: 652px !important;
  box-sizing: border-box !important;
}
#gameApp .control-deck {
  position: relative !important;
  width: 100% !important;
  height: 190px !important;
  min-height: 190px !important;
  max-height: 190px !important;
  margin-top: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
#gameApp #betControls,
#gameApp #actionControls {
  width: 100% !important;
  height: 162px !important;
  min-height: 162px !important;
  max-height: 162px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
#gameApp #betControls.hidden,
#gameApp #actionControls.hidden {
  display: none !important;
}
#gameApp #actionControls:not(.hidden) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: stretch !important;
  padding: 14px !important;
}
#gameApp #actionControls:not(.hidden) > .action-btn {
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
}

/* Multiplayer: Der Name steht unmittelbar unter der Tischstack-Anzeige. */
body.multiplayer-live .seat-buyin-stack {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  align-items: center !important;
  gap: 3px !important;
  min-width: 82px !important;
  padding: 5px 7px 4px !important;
}
body.multiplayer-live .seat-buyin-stack .seat-stack-line {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  white-space: nowrap !important;
}
body.multiplayer-live .seat-stack-player-name {
  display: block !important;
  width: 100% !important;
  max-width: 112px !important;
  margin: 0 !important;
  color: #f4fff9 !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.multiplayer-live .multi-seat-name-label {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Desktop: rechte Leiste endet pixelgenau an der Unterkante der kompletten
   linken Tischspalte einschließlich Bet-Leiste. */
@media (min-width: 1181px) {
  body.multiplayer-live .multiplayer-grid {
    align-items: start !important;
  }
  body.multiplayer-live .multi-sidebar[data-height-synced="true"] {
    height: var(--blackjack-shell-height) !important;
    min-height: var(--blackjack-shell-height) !important;
    max-height: var(--blackjack-shell-height) !important;
    align-self: start !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 800px) {
  #gameApp .solo-private-shell {
    grid-template-rows: 500px 222px !important;
  }
  #gameApp .solo-private-rim {
    height: 500px !important;
    min-height: 500px !important;
    max-height: 500px !important;
    padding: 12px !important;
  }
  #gameApp .solo-private-felt {
    height: 476px !important;
    min-height: 476px !important;
    max-height: 476px !important;
  }
  #gameApp .control-deck {
    height: 222px !important;
    min-height: 222px !important;
    max-height: 222px !important;
    overflow: hidden !important;
  }
  #gameApp #betControls,
  #gameApp #actionControls {
    height: 202px !important;
    min-height: 202px !important;
    max-height: 202px !important;
  }
  #gameApp #actionControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    padding: 6px !important;
  }
  body.multiplayer-live .seat-buyin-stack {
    min-width: 66px !important;
    padding: 4px !important;
  }
  body.multiplayer-live .seat-stack-player-name {
    max-width: 78px !important;
    font-size: 7px !important;
  }
}

/* =========================================================
   V34.0 TEST · KOMPLETTES WEBFIX-STUDIOS-DESIGN
   Nur Darstellung: keine Spiel-, Konto- oder Serverlogik.
   ========================================================= */
:root {
  --wf-ink: #07090d;
  --wf-paper: #0b1018;
  --wf-paper-2: #141b27;
  --wf-violet: #7a5cff;
  --wf-violet-dark: #5d43df;
  --wf-lime: #57821a;
  --wf-coral: #ff6b57;
  --wf-sky: #7dd7ff;
  --wf-muted: #aeb7c8;
  --wf-white: #202938;
  --wf-text: #f4f7fb;
  --wf-text-soft: #cbd2df;
  --wf-card: #f7f3e9;
  --wf-shadow: 8px 8px 0 #05070a;
  --wf-shadow-sm: 4px 4px 0 #05070a;

  --bg: var(--wf-paper);
  --panel: var(--wf-paper-2);
  --panel-strong: var(--wf-white);
  --felt: var(--wf-violet);
  --felt-deep: var(--wf-violet-dark);
  --gold: var(--wf-lime);
  --gold-2: var(--wf-lime);
  --mint: var(--wf-sky);
  --cyan: var(--wf-sky);
  --danger: var(--wf-coral);
  --text: var(--wf-text);
  --muted: var(--wf-muted);
  --line: var(--wf-ink);
  --shadow: var(--wf-shadow);
  --radius: 24px;
}

html {
  background: var(--wf-paper) !important;
}

body {
  color: var(--wf-ink) !important;
  background:
    radial-gradient(circle at 8% 10%, rgba(122, 92, 255, .14), transparent 28%),
    radial-gradient(circle at 93% 13%, rgba(200, 255, 61, .18), transparent 24%),
    radial-gradient(circle at 54% 92%, rgba(125, 215, 255, .14), transparent 24%),
    var(--wf-paper) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  opacity: .22;
  background-image:
    linear-gradient(rgba(18,18,18,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,18,18,.035) 1px, transparent 1px);
  background-size: 34px 34px;
}

.ambient {
  opacity: .16 !important;
  filter: blur(100px) !important;
}
.ambient-one { background: var(--wf-violet) !important; }
.ambient-two { background: var(--wf-lime) !important; }
#particles { opacity: .14 !important; filter: saturate(.65); }

.glass {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: var(--wf-shadow) !important;
  backdrop-filter: none !important;
}

/* Typografie */
h1, h2, h3, h4, strong, button {
  letter-spacing: -.015em;
}
.eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content;
  min-height: 34px;
  padding: 6px 12px !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 999px !important;
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  box-shadow: var(--wf-shadow-sm) !important;
  font-size: 11px !important;
  font-weight: 1000 !important;
  letter-spacing: .1em !important;
}
.muted-label,
.control-title small,
.auth-lead,
.auth-fineprint,
.panel-section p,
.shop-panel > p,
.social-message,
.fine-print,
.poker-action-info,
.poker-control-copy small,
.multi-control-copy small,
.roulette-status,
.slots-status {
  color: var(--wf-muted) !important;
}

/* Kopfzeile */
.topbar {
  position: sticky !important;
  top: 12px !important;
  z-index: 200 !important;
  background: rgba(246, 241, 231, .96) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 22px !important;
  box-shadow: var(--wf-shadow) !important;
  backdrop-filter: blur(16px) !important;
}
.brand-mark,
.auth-brand-mark {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 15px !important;
  box-shadow: var(--wf-shadow-sm) !important;
}
.brand-wrap h1,
.brand-wrap p,
.account-copy small,
.account-copy strong {
  color: var(--wf-ink) !important;
}
.brand-wrap h1 { font-weight: 1000 !important; }
.brand-wrap p { color: var(--wf-muted) !important; }
.header-stats {
  gap: 9px !important;
}
.stat-pill,
.account-badge,
.volume-popover {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.stat-pill span { color: var(--wf-muted) !important; }
.stat-pill strong { color: var(--wf-violet-dark) !important; }
.gold-stat-pill { background: var(--wf-lime) !important; }
.account-avatar {
  color: var(--wf-ink) !important;
  background: var(--wf-sky) !important;
  border: 2px solid var(--wf-ink) !important;
}

/* Sämtliche Grundbuttons */
.primary-btn,
.secondary-btn,
.action-btn,
.icon-btn,
.logout-btn,
.social-toggle,
.shop-toggle,
.text-btn,
.mini-btn,
.danger-outline,
.shop-tab,
.drawer-close,
.auth-support-link,
.poker-preaction,
.roulette-cell,
.slot-bet-button,
button.table-lobby-card {
  color: var(--wf-ink) !important;
  border: 2px solid var(--wf-ink) !important;
  font-weight: 900 !important;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}
.primary-btn,
.shop-toggle {
  color: var(--wf-white) !important;
  background: var(--wf-violet) !important;
  box-shadow: 5px 5px 0 var(--wf-ink) !important;
}
.secondary-btn,
.icon-btn,
.logout-btn,
.social-toggle,
.text-btn,
.mini-btn,
.auth-support-link,
.poker-preaction {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.action-btn {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  box-shadow: 5px 5px 0 var(--wf-ink) !important;
}
.action-btn.premium,
.primary-btn.deal-btn,
.ready-big {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
}
.action-btn.danger,
.poker-fold,
.danger-outline {
  color: var(--wf-ink) !important;
  background: var(--wf-coral) !important;
}
.poker-allin,
#spinRouletteButton,
#spinSlotsButton {
  color: var(--wf-ink) !important;
  background: var(--wf-sky) !important;
}
.primary-btn:hover:not(:disabled),
.secondary-btn:hover:not(:disabled),
.action-btn:hover:not(:disabled),
.icon-btn:hover:not(:disabled),
.logout-btn:hover:not(:disabled),
.social-toggle:hover:not(:disabled),
.shop-toggle:hover:not(:disabled),
.text-btn:hover:not(:disabled),
.mini-btn:hover:not(:disabled),
.auth-support-link:hover:not(:disabled),
.poker-preaction:hover:not(:disabled) {
  transform: translate(-2px, -2px) !important;
  filter: none !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
  animation: none !important;
}
button:active:not(:disabled) {
  transform: translate(2px, 2px) !important;
  box-shadow: 2px 2px 0 var(--wf-ink) !important;
}
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 4px solid rgba(122, 92, 255, .35) !important;
  outline-offset: 3px !important;
}
button:disabled {
  opacity: .45 !important;
  filter: grayscale(.3) !important;
}

/* Anmeldung */
.auth-gate {
  background:
    radial-gradient(circle at 12% 12%, rgba(122,92,255,.18), transparent 30%),
    radial-gradient(circle at 90% 88%, rgba(87,130,26,.20), transparent 25%),
    var(--wf-paper) !important;
}
.auth-panel {
  overflow: hidden !important;
  background: var(--wf-white) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 32px !important;
  box-shadow: 12px 12px 0 var(--wf-ink) !important;
}
.auth-showcase {
  color: var(--wf-white) !important;
  background:
    linear-gradient(145deg, rgba(18,18,18,.2), transparent 45%),
    linear-gradient(145deg, var(--wf-ink) 0 54%, var(--wf-violet) 54% 100%) !important;
  border-right: 3px solid var(--wf-ink) !important;
}
.auth-showcase::after {
  content: "";
  position: absolute;
  right: 8%;
  bottom: 8%;
  width: 116px;
  height: 116px;
  border-radius: 50%;
  background: var(--wf-lime);
  border: 3px solid var(--wf-ink);
  box-shadow: 7px 7px 0 var(--wf-ink);
  transform: rotate(-9deg);
}
.auth-showcase .eyebrow {
  position: relative;
  z-index: 2;
}
.auth-showcase h2,
.auth-showcase p,
.auth-benefits span {
  position: relative;
  z-index: 2;
  color: var(--wf-white) !important;
}
.auth-showcase h2 {
  max-width: 560px;
  font-size: clamp(42px, 5vw, 74px) !important;
  line-height: .94 !important;
  letter-spacing: -.055em !important;
}
.auth-benefits span {
  border: 2px solid rgba(255,255,255,.78) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
}
.auth-halo {
  background: var(--wf-lime) !important;
  opacity: .32 !important;
}
.show-card {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 18px !important;
  box-shadow: 8px 8px 0 var(--wf-ink) !important;
}
.show-card-two { color: var(--wf-coral) !important; }
.auth-box {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
}
.auth-box h1 {
  font-size: clamp(34px, 4vw, 58px) !important;
  line-height: .98 !important;
  letter-spacing: -.05em !important;
}
.auth-tabs {
  padding: 5px !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 16px !important;
}
.auth-tab {
  color: var(--wf-ink) !important;
  background: transparent !important;
  border: 0 !important;
}
.auth-tab.active {
  color: var(--wf-white) !important;
  background: var(--wf-violet) !important;
  border-radius: 11px !important;
}
.auth-form label > span,
.avatar-fieldset legend {
  color: var(--wf-ink) !important;
  font-weight: 900 !important;
}
.auth-form input,
.support-form input,
.support-form textarea,
.friend-add-form input,
.chat-form input,
.table-code-join-form input,
.unified-code-form input,
.poker-code-form input,
.gift-chips-form input,
.developer-password-form input,
select,
textarea,
input[type="text"],
input[type="password"],
input[type="number"] {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 0 0 1px rgba(18,18,18,.02) !important;
}
.auth-form input::placeholder,
.support-form input::placeholder,
.support-form textarea::placeholder,
.chat-form input::placeholder {
  color: #8c877f !important;
}
.avatar-fieldset {
  border: 2px solid var(--wf-ink) !important;
  border-radius: 18px !important;
  background: var(--wf-white) !important;
}
.avatar-option {
  color: var(--wf-ink) !important;
  background: var(--wf-paper) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.avatar-option.selected {
  background: var(--wf-lime) !important;
  transform: translate(-2px, -2px) !important;
  box-shadow: 5px 5px 0 var(--wf-ink) !important;
}
.auth-message {
  color: var(--wf-violet-dark) !important;
  font-weight: 900 !important;
}

/* Startseite */
.home-app {
  width: min(1180px, calc(100% - 40px)) !important;
}
.home-panel,
.leaderboard-panel {
  background: var(--wf-paper-2) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 30px !important;
  box-shadow: 10px 10px 0 var(--wf-ink) !important;
}
.home-panel {
  position: relative;
  overflow: hidden;
}
.home-panel::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  right: -85px;
  top: -95px;
  border-radius: 50%;
  background: var(--wf-lime);
  border: 3px solid var(--wf-ink);
}
.home-panel > * { position: relative; z-index: 1; }
.home-panel h2 {
  max-width: 530px;
  font-size: clamp(46px, 6vw, 78px) !important;
  line-height: .94 !important;
  letter-spacing: -.055em !important;
}
.home-language-select {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 15px !important;
  box-shadow: var(--wf-shadow-sm) !important;
}
.home-game-btn {
  min-height: 118px !important;
  justify-content: flex-start !important;
  text-align: left !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 22px !important;
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
}
.home-game-btn:nth-child(1),
.home-game-btn:nth-child(6) { background: var(--wf-violet) !important; color: var(--wf-white) !important; }
.home-game-btn:nth-child(2),
.home-game-btn:nth-child(5) { background: var(--wf-lime) !important; color: var(--wf-ink) !important; }
.home-game-btn:nth-child(3) { background: var(--wf-sky) !important; color: var(--wf-ink) !important; }
.home-game-btn:nth-child(4) { background: var(--wf-coral) !important; color: var(--wf-ink) !important; }
.home-game-btn:nth-child(7) { background: var(--wf-ink) !important; color: var(--wf-white) !important; }
.home-game-btn:hover:not(:disabled) {
  transform: translate(-4px, -4px) !important;
  box-shadow: 11px 11px 0 var(--wf-ink) !important;
}
.game-live-badge {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 999px !important;
}
.version-badge {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: var(--wf-shadow-sm) !important;
}
.leaderboard-head {
  border-bottom: 2px solid var(--wf-ink) !important;
}
.leaderboard-row,
.leaderboard-empty {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 16px !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.leaderboard-row:hover,
.leaderboard-row:focus-visible {
  color: var(--wf-ink) !important;
  background: var(--wf-sky) !important;
  border-color: var(--wf-ink) !important;
}
.leaderboard-rank,
.leaderboard-chips { color: var(--wf-violet-dark) !important; }
.leaderboard-avatar {
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
}

/* Globale Layoutflächen */
.layout,
.multiplayer-app,
.poker-app,
.roulette-app,
.slots-app,
.developer-app {
  color: var(--wf-ink) !important;
}
.multi-roombar,
.poker-roombar,
.control-deck,
.multi-controls,
.poker-controls,
.roulette-controls,
.slots-controls,
.side-panel,
.multi-sidebar,
.poker-sidebar,
.admin-panel,
.developer-header,
.developer-security,
.developer-card-lab,
.poker-buyin-panel,
.player-profile-panel,
.support-panel,
.modal-card,
.daily-wheel-stage,
.poker-seat-invite-panel {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 24px !important;
  box-shadow: var(--wf-shadow) !important;
  backdrop-filter: none !important;
}
.multi-roombar,
.poker-roombar {
  background: var(--wf-lime) !important;
}
.table-code,
.poker-table-code,
.round-label,
.multi-stack-summary,
.poker-stack-summary,
.roulette-total-bet,
.slots-bet-display,
.table-bet-display,
.multi-current-bet {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 14px !important;
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.table-code strong,
.poker-table-code strong,
.multi-stack-summary strong,
.poker-stack-summary strong,
.roulette-total-bet strong,
.slots-bet-display strong,
.table-bet-display strong,
.multi-current-bet strong {
  color: var(--wf-violet-dark) !important;
}

/* Blackjack-Tische */
.table-rim,
.multi-table-rim {
  padding: 14px !important;
  background: var(--wf-ink) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 11px 11px 0 rgba(122,92,255,.46) !important;
}
.table-felt,
.multi-felt {
  color: var(--wf-white) !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(87,130,26,.15), transparent 31%),
    linear-gradient(145deg, var(--wf-violet), var(--wf-violet-dark)) !important;
  box-shadow: inset 0 0 0 3px var(--wf-lime), inset 0 0 0 7px var(--wf-ink) !important;
}
.table-felt::before,
.multi-felt::before {
  border: 2px dashed rgba(255,255,255,.5) !important;
}
.table-felt::after,
.multi-felt::after {
  border-color: rgba(87,130,26,.55) !important;
}
.table-copy,
.multi-table-copy,
.poker-table-brand {
  color: rgba(255,255,255,.72) !important;
  font-weight: 1000 !important;
}
.seat-label,
.multi-seat-label,
.multi-seat-head,
.hand-name {
  color: var(--wf-white) !important;
}
.score-badge,
.status-orb,
.multi-turn-status,
.poker-table-status,
.poker-pot {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.status-orb.win { background: var(--wf-sky) !important; }
.status-orb.lose { background: var(--wf-coral) !important; }
.player-hand {
  color: var(--wf-ink) !important;
  background: rgba(255,255,255,.9) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 rgba(18,18,18,.75) !important;
}
.player-hand.active {
  background: var(--wf-lime) !important;
  border-color: var(--wf-ink) !important;
  box-shadow: 6px 6px 0 var(--wf-ink) !important;
}
.player-hand .hand-name,
.player-hand .hand-result { color: var(--wf-ink) !important; }
.hand-score,
.hand-bet {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 1.5px solid var(--wf-ink) !important;
}

/* Karten */
.card-front {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 5px 5px 0 rgba(18,18,18,.62) !important;
}
.card-front.red { color: #db3148 !important; }
.card-back {
  border: 3px solid var(--wf-ink) !important;
  background:
    linear-gradient(45deg, rgba(255,255,255,.12) 25%, transparent 25% 50%, rgba(255,255,255,.12) 50% 75%, transparent 75%),
    var(--wf-violet) !important;
  background-size: 12px 12px !important;
  box-shadow: 5px 5px 0 rgba(18,18,18,.62) !important;
}
.card-back::before { border: 2px solid var(--wf-lime) !important; }
.back-emblem {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
}

/* Chips und Einsatzbereiche */
.chip,
.mini-chip,
.bet-chip-visual,
.poker-pot-flight-chip {
  border-color: var(--wf-white) !important;
  outline: 2px solid var(--wf-ink);
  box-shadow: 4px 4px 0 rgba(18,18,18,.72) !important;
}
.chip:hover:not(:disabled) {
  transform: translate(-2px,-4px) rotate(-4deg) !important;
  filter: brightness(1.06) !important;
}
.table-bet-spot,
.multi-table-bet-spot {
  color: var(--wf-ink) !important;
  border: 2px dashed var(--wf-lime) !important;
  background: rgba(255,255,255,.13) !important;
}
.bet-adjusters,
.roulette-actions,
.slots-actions,
.poker-lobby-actions {
  gap: 10px !important;
}

/* Seitenleisten, Chat und Listen */
.side-panel,
.multi-sidebar,
.poker-sidebar {
  overflow: hidden !important;
}
.panel-section,
.table-chat-section,
.social-section,
.social-card,
.profile-card,
.unified-join-card,
.poker-match-card,
.poker-lobby-card,
.admin-panel {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border-color: var(--wf-ink) !important;
}
.panel-section + .panel-section,
.table-chat-section,
.social-section + .social-section {
  border-top: 2px solid var(--wf-ink) !important;
}
.stats-grid > div,
.profile-stats > div,
.profile-currency > div,
.admin-summary > div,
.rule-list li,
.multi-player-row,
.poker-player-row,
.social-list > *,
.chat-message {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 13px !important;
}
.stats-grid > div:nth-child(2n),
.profile-stats > div:nth-child(2n),
.admin-summary > div:nth-child(2n) { background: var(--wf-sky) !important; }
.rule-list strong,
.stats-grid strong,
.profile-stats strong,
.admin-summary strong { color: var(--wf-violet-dark) !important; }
.tip-box {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
}
.tip-icon,
.social-card-icon {
  color: var(--wf-ink) !important;
  background: var(--wf-sky) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.chat-messages {
  background: var(--wf-paper) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 14px !important;
}
.chat-message.own,
.social-message.own { background: #e9e3ff !important; }
.chat-form {
  background: transparent !important;
}
.empty-state,
.leaderboard-empty {
  color: var(--wf-muted) !important;
}

/* Multiplayer-Sitze */
.multi-seat-panel,
.poker-seat-panel,
.seat-buyin-stack,
.poker-seat-buyin {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 rgba(18,18,18,.82) !important;
}
.multi-seat.is-me .multi-seat-panel,
.poker-seat.is-me .poker-seat-panel {
  background: var(--wf-lime) !important;
  border-color: var(--wf-ink) !important;
  box-shadow: 6px 6px 0 var(--wf-ink) !important;
}
.multi-seat.is-turn .multi-seat-panel,
.poker-seat.is-turn .poker-seat-panel {
  background: var(--wf-sky) !important;
  border-color: var(--wf-ink) !important;
}
.table-avatar,
.poker-avatar,
.player-profile-avatar,
.profile-avatar-preview {
  color: var(--wf-ink) !important;
  background: var(--wf-coral) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.multi-seat-name-label,
.seat-stack-player-name,
.poker-seat-name,
.poker-seat-stack,
.seat-stack-line {
  color: var(--wf-ink) !important;
  text-shadow: none !important;
}
.multi-felt .multi-seat-name-label {
  color: var(--wf-white) !important;
}

/* Poker */
.poker-table-rim {
  padding: 14px !important;
  background: var(--wf-ink) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 11px 11px 0 rgba(87,130,26,.65) !important;
}
.poker-felt {
  color: var(--wf-white) !important;
  background:
    radial-gradient(ellipse at center, rgba(122,92,255,.96) 0 52%, rgba(93,67,223,.98) 68%, #3929a7 100%) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 3px var(--wf-lime), inset 0 0 0 7px var(--wf-ink), inset 0 0 52px rgba(18,18,18,.45) !important;
}
.poker-felt::before {
  border: 2px dashed rgba(255,255,255,.54) !important;
}
.poker-community .poker-card-slot {
  background: rgba(255,255,255,.15) !important;
  border: 2px dashed rgba(255,255,255,.7) !important;
}
.poker-action-timer,
.poker-table-timer {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.poker-call-alert,
.round-result-banner {
  color: var(--wf-ink) !important;
  background: var(--wf-coral) !important;
  border: 2px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.poker-raise-control {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 16px !important;
}
input[type="range"] {
  accent-color: var(--wf-violet) !important;
}
.poker-show-cards-prompt {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 2px solid var(--wf-ink) !important;
}
.poker-seat.poker-hand-winner .poker-seat-panel,
.poker-player-row.poker-hand-winner {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border-color: var(--wf-ink) !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
}

/* Roulette */
.roulette-table-rim {
  background: var(--wf-ink) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 11px 11px 0 rgba(255,107,87,.62) !important;
}
.roulette-felt {
  color: var(--wf-white) !important;
  background:
    radial-gradient(circle at 25% 28%, rgba(87,130,26,.16), transparent 28%),
    linear-gradient(145deg, var(--wf-violet), var(--wf-violet-dark)) !important;
  box-shadow: inset 0 0 0 3px var(--wf-lime), inset 0 0 0 7px var(--wf-ink) !important;
}
.roulette-wheel {
  border: 5px solid var(--wf-ink) !important;
  box-shadow: 8px 8px 0 var(--wf-ink), inset 0 0 0 4px var(--wf-lime) !important;
}
.roulette-spindle {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 3px solid var(--wf-ink) !important;
}
.roulette-betting-table,
.roulette-history-strip,
.roulette-table-summary {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 16px !important;
}
.roulette-cell {
  box-shadow: 3px 3px 0 var(--wf-ink) !important;
}
.roulette-cell.outside { background: var(--wf-white) !important; }
.roulette-cell.red { background: var(--wf-coral) !important; }
.roulette-cell.black { color: var(--wf-white) !important; background: var(--wf-ink) !important; }

/* Slots */
.slots-machine {
  color: var(--wf-ink) !important;
  background: var(--wf-violet) !important;
  border: 4px solid var(--wf-ink) !important;
  box-shadow: 12px 12px 0 var(--wf-ink) !important;
}
.slots-machine-head {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border-bottom: 3px solid var(--wf-ink) !important;
}
.slot-cabinet-window,
.slot-reel-column {
  background: var(--wf-white) !important;
  border: 3px solid var(--wf-ink) !important;
}
.slot-reel-column { box-shadow: 4px 4px 0 var(--wf-ink) !important; }
.slot-payline { background: var(--wf-coral) !important; }
.slots-payouts > * {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border: 2px solid var(--wf-ink) !important;
}

/* Social, Shop und Dialoge */
.social-overlay,
.shop-overlay,
.player-profile-overlay,
.daily-wheel-overlay,
.support-overlay,
.system-notice-overlay,
.poker-seat-invite-overlay,
.poker-buyin-overlay,
.developer-observer-overlay {
  background: rgba(18,18,18,.68) !important;
  backdrop-filter: blur(5px) !important;
}
.social-drawer,
.shop-panel,
.drawer,
.developer-observer-panel {
  color: var(--wf-ink) !important;
  background: var(--wf-paper) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: -9px 0 0 var(--wf-ink) !important;
}
.social-head,
.shop-head,
.panel-heading,
.developer-card-lab-head,
.developer-test-hand-head {
  border-bottom-color: var(--wf-ink) !important;
}
.shop-wallets > *,
.shop-item,
.cash-pack,
.table-spectacle,
.profile-card,
.unified-join-card,
.poker-match-card,
.poker-lobby-card,
.friend-chat-panel,
.shop-target-picker,
.developer-test-hand {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 18px !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.shop-item:nth-child(3n+1),
.cash-pack:nth-child(3n+1) { background: #e8e0ff !important; }
.shop-item:nth-child(3n+2),
.cash-pack:nth-child(3n+2) { background: #e5f8ff !important; }
.shop-item:nth-child(3n),
.cash-pack:nth-child(3n) { background: #efffc0 !important; }
.shop-tab.active {
  color: var(--wf-white) !important;
  background: var(--wf-violet) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
}
.modal-symbol,
.daily-wheel-prize {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 5px 5px 0 var(--wf-ink) !important;
}
.daily-wheel,
.daily-wheel-hero {
  border: 5px solid var(--wf-ink) !important;
  box-shadow: 8px 8px 0 var(--wf-ink) !important;
}

/* Developer-Bereich */
.developer-header {
  background: var(--wf-violet) !important;
  color: var(--wf-white) !important;
}
.developer-header h1,
.developer-header p,
.developer-brand { color: var(--wf-white) !important; }
.developer-security { background: var(--wf-lime) !important; }
.admin-table-wrap {
  border: 2px solid var(--wf-ink) !important;
  border-radius: 16px !important;
  background: var(--wf-white) !important;
}
.admin-table {
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
}
.admin-table th {
  color: var(--wf-white) !important;
  background: var(--wf-ink) !important;
}
.admin-table td { border-color: rgba(18,18,18,.22) !important; }
.developer-test-rim {
  background: var(--wf-ink) !important;
  box-shadow: 8px 8px 0 var(--wf-violet) !important;
}
.developer-test-felt {
  background: var(--wf-violet) !important;
  box-shadow: inset 0 0 0 3px var(--wf-lime) !important;
}

/* Footer und Hinweise */
.site-footer {
  color: var(--wf-muted) !important;
  border-top: 2px solid rgba(18,18,18,.18) !important;
}
.toast,
.system-notice-panel {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
}

/* Responsive Webfix-Charakter */
@media (max-width: 1180px) {
  .topbar {
    top: 7px !important;
    width: calc(100% - 20px) !important;
  }
  .home-app {
    width: min(100% - 24px, 900px) !important;
  }
  .layout,
  .multiplayer-app,
  .poker-app,
  .roulette-app,
  .slots-app,
  .developer-app {
    width: calc(100% - 20px) !important;
  }
}

@media (max-width: 800px) {
  body::before { background-size: 24px 24px; }
  .glass,
  .home-panel,
  .leaderboard-panel,
  .multi-roombar,
  .poker-roombar,
  .control-deck,
  .multi-controls,
  .poker-controls,
  .roulette-controls,
  .slots-controls,
  .side-panel,
  .multi-sidebar,
  .poker-sidebar,
  .admin-panel {
    box-shadow: 5px 5px 0 var(--wf-ink) !important;
  }
  .topbar {
    border-radius: 18px !important;
    box-shadow: 5px 5px 0 var(--wf-ink) !important;
  }
  .brand-mark { width: 44px !important; height: 44px !important; }
  .auth-panel {
    border-radius: 24px !important;
    box-shadow: 7px 7px 0 var(--wf-ink) !important;
  }
  .auth-showcase {
    border-right: 0 !important;
    border-bottom: 3px solid var(--wf-ink) !important;
  }
  .auth-showcase h2 {
    font-size: clamp(34px, 11vw, 56px) !important;
  }
  .auth-showcase::after { width: 82px; height: 82px; }
  .home-panel h2 {
    font-size: clamp(38px, 12vw, 62px) !important;
  }
  .home-game-btn {
    min-height: 94px !important;
    border-radius: 18px !important;
    box-shadow: 5px 5px 0 var(--wf-ink) !important;
  }
  .table-rim,
  .multi-table-rim,
  .poker-table-rim,
  .roulette-table-rim {
    box-shadow: 6px 6px 0 var(--wf-violet-dark) !important;
  }
  .table-felt,
  .multi-felt,
  .poker-felt,
  .roulette-felt {
    box-shadow: inset 0 0 0 2px var(--wf-lime), inset 0 0 0 5px var(--wf-ink) !important;
  }
  .primary-btn,
  .secondary-btn,
  .action-btn,
  .icon-btn,
  .logout-btn,
  .social-toggle,
  .shop-toggle {
    box-shadow: 3px 3px 0 var(--wf-ink) !important;
  }
  .social-drawer,
  .shop-panel,
  .drawer {
    box-shadow: none !important;
    border-left: 3px solid var(--wf-ink) !important;
  }
}

/* V34.0 Webfix – spezifische Altregeln des Solo-Tischs neutralisieren. */
#gameApp .solo-private-rim {
  background: var(--wf-ink) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 10px 10px 0 rgba(122,92,255,.48) !important;
}
#gameApp .solo-private-felt {
  color: var(--wf-white) !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(87,130,26,.16), transparent 32%),
    linear-gradient(145deg, var(--wf-violet), var(--wf-violet-dark)) !important;
  box-shadow: inset 0 0 0 3px var(--wf-lime), inset 0 0 0 7px var(--wf-ink), inset 0 0 64px rgba(18,18,18,.28) !important;
}
#gameApp .solo-private-felt::before {
  opacity: .2 !important;
  background-image: radial-gradient(rgba(255,255,255,.65) .65px, transparent .65px) !important;
  background-size: 6px 6px !important;
}
#insuranceModal.insurance-table-popover .modal-card {
  color: var(--wf-ink) !important;
  background: var(--wf-paper-2) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
}
.site-footer {
  color: var(--wf-white) !important;
  background: var(--wf-ink) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 14px !important;
  box-shadow: 5px 5px 0 rgba(122,92,255,.34) !important;
}
.site-footer a { color: var(--wf-lime) !important; }

/* V34.0 Webfix – mobile Kopfzeile und Versionshinweis sauber einordnen. */
.version-badge {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  width: fit-content !important;
  margin: 0 0 12px auto !important;
  z-index: 1 !important;
}
body.auth-locked .site-footer { display: none !important; }

@media (max-width: 800px) {
  .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  .topbar > .brand-wrap {
    order: 1 !important;
    width: 100% !important;
    justify-content: flex-start !important;
  }
  .topbar > .header-stats {
    order: 2 !important;
    width: 100% !important;
  }
  .topbar > .header-actions {
    order: 3 !important;
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
  }
  .header-actions .account-area {
    order: 0 !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 6px !important;
  }
  .header-actions .account-badge {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: flex-start !important;
  }
  .header-actions .account-copy {
    display: grid !important;
    min-width: 0 !important;
  }
  .header-actions .logout-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 44px !important;
  }
  .slots-machine .slots-status,
  .roulette-felt .roulette-status {
    color: var(--wf-ink) !important;
    font-weight: 900 !important;
  }
}

@media (max-width: 800px) {
  body .topbar {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
  }
  body .topbar > .brand-wrap,
  body .topbar > .header-stats,
  body .topbar > .header-actions {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    width: 100% !important;
  }
}
.toast:empty { display: none !important; }

/* =========================================================
   V34.0 WEBFIX DARK · dunkle Hauptfarbwelt
   Ausschließlich Darstellung und Kontrastanpassungen.
   ========================================================= */
html,
body {
  background-color: var(--wf-paper) !important;
}

body {
  color: var(--wf-text) !important;
  background:
    radial-gradient(circle at 8% 10%, rgba(122, 92, 255, .22), transparent 30%),
    radial-gradient(circle at 93% 13%, rgba(200, 255, 61, .10), transparent 25%),
    radial-gradient(circle at 54% 92%, rgba(125, 215, 255, .10), transparent 25%),
    linear-gradient(145deg, #080c13, var(--wf-paper) 52%, #090d15) !important;
}

body::before {
  opacity: .34 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) !important;
}

.glass,
.layout,
.multiplayer-app,
.poker-app,
.roulette-app,
.slots-app,
.developer-app,
.auth-box,
.home-panel,
.leaderboard-panel,
.multi-roombar,
.poker-roombar,
.control-deck,
.multi-controls,
.poker-controls,
.roulette-controls,
.slots-controls,
.side-panel,
.multi-sidebar,
.poker-sidebar,
.admin-panel,
.developer-header,
.developer-security,
.developer-card-lab,
.poker-buyin-panel,
.player-profile-panel,
.support-panel,
.modal-card,
.daily-wheel-stage,
.poker-seat-invite-panel,
.panel-section,
.table-chat-section,
.social-section,
.social-card,
.profile-card,
.unified-join-card,
.poker-match-card,
.poker-lobby-card,
.social-drawer,
.shop-panel,
.drawer,
.developer-observer-panel,
#insuranceModal.insurance-table-popover .modal-card {
  color: var(--wf-text) !important;
}

.glass,
.home-panel,
.leaderboard-panel,
.control-deck,
.multi-controls,
.poker-controls,
.roulette-controls,
.slots-controls,
.side-panel,
.multi-sidebar,
.poker-sidebar,
.admin-panel,
.developer-card-lab,
.poker-buyin-panel,
.player-profile-panel,
.support-panel,
.modal-card,
.daily-wheel-stage,
.poker-seat-invite-panel,
.social-drawer,
.shop-panel,
.drawer,
.developer-observer-panel,
#insuranceModal.insurance-table-popover .modal-card {
  background: var(--wf-paper-2) !important;
}

.topbar {
  color: var(--wf-text) !important;
  background: rgba(11, 16, 24, .96) !important;
}

.brand-wrap h1,
.brand-wrap p,
.account-copy small,
.account-copy strong,
.auth-box h1,
.auth-form label > span,
.avatar-fieldset legend,
.home-panel h2,
.leaderboard-head,
.panel-heading,
.social-head,
.shop-head,
.developer-card-lab-head,
.developer-test-hand-head {
  color: var(--wf-text) !important;
}

.brand-wrap p,
.account-copy small,
.auth-lead,
.auth-fineprint,
.panel-section p,
.shop-panel > p,
.social-message,
.fine-print,
.poker-action-info,
.poker-control-copy small,
.multi-control-copy small,
.roulette-status,
.slots-status,
.empty-state,
.leaderboard-empty {
  color: var(--wf-muted) !important;
}

.stat-pill,
.account-badge,
.volume-popover,
.table-code,
.poker-table-code,
.round-label,
.multi-stack-summary,
.poker-stack-summary,
.roulette-total-bet,
.slots-bet-display,
.table-bet-display,
.multi-current-bet,
.game-live-badge,
.leaderboard-row,
.leaderboard-empty,
.player-hand,
.hand-score,
.hand-bet,
.stats-grid > div,
.profile-stats > div,
.profile-currency > div,
.admin-summary > div,
.rule-list li,
.multi-player-row,
.poker-player-row,
.social-list > *,
.chat-message,
.multi-seat-panel,
.poker-seat-panel,
.seat-buyin-stack,
.poker-seat-buyin,
.poker-raise-control,
.roulette-betting-table,
.roulette-history-strip,
.roulette-table-summary,
.slots-payouts > *,
.shop-wallets > *,
.shop-item,
.cash-pack,
.table-spectacle,
.friend-chat-panel,
.shop-target-picker,
.developer-test-hand,
.admin-table-wrap,
.admin-table {
  color: var(--wf-text) !important;
  background: var(--wf-white) !important;
}

.secondary-btn,
.icon-btn,
.logout-btn,
.social-toggle,
.text-btn,
.mini-btn,
.auth-support-link,
.poker-preaction,
.action-btn {
  color: var(--wf-text) !important;
}

.primary-btn,
.shop-toggle,
.auth-tab.active,
.home-game-btn:nth-child(1),
.home-game-btn:nth-child(6),
.shop-tab.active,
.developer-header,
.developer-header h1,
.developer-header p,
.developer-brand {
  color: var(--wf-text) !important;
}

.action-btn.premium,
.primary-btn.deal-btn,
.ready-big,
.action-btn.danger,
.poker-fold,
.danger-outline,
.poker-allin,
#spinRouletteButton,
#spinSlotsButton,
.eyebrow,
.brand-mark,
.auth-brand-mark,
.gold-stat-pill,
.account-avatar,
.home-game-btn:nth-child(2),
.home-game-btn:nth-child(3),
.home-game-btn:nth-child(4),
.home-game-btn:nth-child(5),
.version-badge,
.score-badge,
.status-orb,
.multi-turn-status,
.poker-table-status,
.poker-pot,
.player-hand.active,
.tip-box,
.tip-icon,
.social-card-icon,
.multi-seat.is-me .multi-seat-panel,
.poker-seat.is-me .poker-seat-panel,
.multi-seat.is-turn .multi-seat-panel,
.poker-seat.is-turn .poker-seat-panel,
.table-avatar,
.poker-avatar,
.player-profile-avatar,
.profile-avatar-preview,
.poker-action-timer,
.poker-table-timer,
.poker-call-alert,
.round-result-banner,
.poker-show-cards-prompt,
.poker-seat.poker-hand-winner .poker-seat-panel,
.poker-player-row.poker-hand-winner,
.roulette-spindle,
.slots-machine-head,
.modal-symbol,
.daily-wheel-prize,
.developer-security,
.toast,
.system-notice-panel {
  color: var(--wf-ink) !important;
}

.auth-gate {
  background:
    radial-gradient(circle at 12% 12%, rgba(122,92,255,.26), transparent 32%),
    radial-gradient(circle at 90% 88%, rgba(87,130,26,.11), transparent 27%),
    var(--wf-paper) !important;
}

.auth-panel {
  background: var(--wf-paper-2) !important;
}

.auth-showcase,
.auth-showcase h2,
.auth-showcase p,
.auth-benefits span {
  color: var(--wf-text) !important;
}

.auth-showcase {
  background:
    linear-gradient(145deg, rgba(7,9,13,.12), rgba(7,9,13,.42)),
    linear-gradient(145deg, #0b0f17 0 54%, var(--wf-violet-dark) 54% 100%) !important;
}

.show-card {
  color: var(--wf-ink) !important;
  background: var(--wf-card) !important;
}

.auth-tabs,
.avatar-fieldset {
  color: var(--wf-text) !important;
  background: var(--wf-white) !important;
}

.auth-tab {
  color: var(--wf-text) !important;
}

.auth-form input,
.support-form input,
.support-form textarea,
.friend-add-form input,
.chat-form input,
.table-code-join-form input,
.unified-code-form input,
.poker-code-form input,
.gift-chips-form input,
.developer-password-form input,
select,
textarea,
input[type="text"],
input[type="password"],
input[type="number"],
.home-language-select {
  color: var(--wf-text) !important;
  background: #0d131d !important;
  caret-color: var(--wf-lime) !important;
}

.auth-form input::placeholder,
.support-form input::placeholder,
.support-form textarea::placeholder,
.chat-form input::placeholder,
input::placeholder,
textarea::placeholder {
  color: #7f899b !important;
}

.avatar-option,
.home-game-btn,
.game-live-badge,
.leaderboard-row,
.leaderboard-empty {
  color: var(--wf-text) !important;
  background: var(--wf-white) !important;
}

.home-game-btn:nth-child(7) {
  color: var(--wf-text) !important;
  background: var(--wf-ink) !important;
}

.leaderboard-row:hover,
.leaderboard-row:focus-visible {
  color: var(--wf-ink) !important;
}

.leaderboard-rank,
.leaderboard-chips,
.rule-list strong,
.stats-grid strong,
.profile-stats strong,
.admin-summary strong,
.table-code strong,
.poker-table-code strong,
.multi-stack-summary strong,
.poker-stack-summary strong,
.roulette-total-bet strong,
.slots-bet-display strong,
.table-bet-display strong,
.multi-current-bet strong,
.stat-pill strong {
  color: var(--wf-sky) !important;
}

.multi-roombar,
.poker-roombar {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
}

.player-hand {
  background: rgba(20,27,39,.94) !important;
}

.player-hand .hand-name,
.player-hand .hand-result,
.multi-seat-name-label,
.seat-stack-player-name,
.poker-seat-name,
.poker-seat-stack,
.seat-stack-line {
  color: var(--wf-text) !important;
}

.player-hand.active .hand-name,
.player-hand.active .hand-result,
.multi-seat.is-me .multi-seat-name-label,
.multi-seat.is-me .seat-stack-player-name,
.poker-seat.is-me .poker-seat-name,
.poker-seat.is-me .poker-seat-stack,
.multi-seat.is-turn .multi-seat-name-label,
.poker-seat.is-turn .poker-seat-name {
  color: var(--wf-ink) !important;
}

.card-front {
  color: var(--wf-ink) !important;
  background: var(--wf-card) !important;
}

.chip,
.mini-chip,
.bet-chip-visual,
.poker-pot-flight-chip {
  border-color: var(--wf-card) !important;
}

.chat-messages {
  background: #0b111a !important;
}

.chat-message.own,
.social-message.own {
  color: var(--wf-text) !important;
  background: #282148 !important;
}

.roulette-cell.outside {
  color: var(--wf-text) !important;
  background: var(--wf-white) !important;
}

.roulette-cell.black,
.admin-table th,
.site-footer,
.site-footer strong {
  color: var(--wf-text) !important;
}

.slot-cabinet-window,
.slot-reel-column {
  background: #111824 !important;
}

.slot-symbol,
.slot-reel-symbol {
  color: var(--wf-text) !important;
}

.shop-item:nth-child(3n+1),
.cash-pack:nth-child(3n+1) { background: #292047 !important; }
.shop-item:nth-child(3n+2),
.cash-pack:nth-child(3n+2) { background: #163247 !important; }
.shop-item:nth-child(3n),
.cash-pack:nth-child(3n) { background: #29371c !important; }

.admin-table td {
  border-color: rgba(255,255,255,.12) !important;
}

.site-footer {
  background: #080b11 !important;
  border-color: #05070a !important;
}

@media (max-width: 800px) {
  .slots-machine .slots-status,
  .roulette-felt .roulette-status {
    color: var(--wf-text) !important;
  }
}

/* Kontrastkorrekturen für dunkle Spielflächen. */
.table-felt,
.multi-felt,
.poker-felt,
.roulette-felt,
#gameApp .solo-private-felt,
.seat-label,
.multi-seat-label,
.multi-seat-head,
.hand-name,
.table-bet-spot,
.multi-table-bet-spot,
.slots-machine {
  color: var(--wf-text) !important;
}

.auth-message {
  color: var(--wf-sky) !important;
}

/* =========================================================
   V34.1 · ausschließlich die angeforderten Designkorrekturen
   ========================================================= */

/* Keine gestrichelten Rahmen um bereits platzierte Blackjack-Chips. */
#gameApp .table-bet-spot,
#multiplayerApp .multi-table-bet-spot {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Blackjack- und Slots-Regeln mit gleichmäßigem Innenabstand. */
#gameApp .rule-list li,
#slotsApp .rule-list li {
  gap: 20px !important;
  padding: 12px 16px !important;
  box-sizing: border-box !important;
}
#gameApp .rule-list li span,
#slotsApp .rule-list li span {
  min-width: 0;
  padding-left: 2px;
}
#gameApp .rule-list li strong,
#slotsApp .rule-list li strong {
  flex: 0 0 auto;
  margin-left: auto;
  padding-right: 2px;
  text-align: right;
}

/* Sprachauswahl im Hauptmenü mit denselben sauberen Innenabständen. */
.home-language-select {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 10px 12px 10px 16px !important;
  box-sizing: border-box !important;
}
.home-language-select > span {
  flex: 0 0 auto;
}
.home-language-select select {
  min-width: 112px !important;
  padding: 8px 30px 8px 12px !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 10px !important;
  box-sizing: border-box !important;
}

/* Alte Roulette-Verlaufsregel überschreiben und an das Webfix-Kartendesign angleichen. */
#playRouletteButton.roulette {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border: 3px solid var(--wf-ink) !important;
  border-radius: 22px !important;
  box-shadow: 7px 7px 0 var(--wf-ink) !important;
}
#playRouletteButton.roulette span {
  color: var(--wf-ink) !important;
  text-shadow: none !important;
}
#playRouletteButton.roulette:hover:not(:disabled) {
  transform: translate(-4px, -4px) !important;
  box-shadow: 11px 11px 0 var(--wf-ink) !important;
}


/* =========================================================
   V34.2 · ausschließlich die angeforderten UI-Anpassungen
   ========================================================= */

/* Limettengrün dunkler, damit helle Schrift auf Akzentflächen lesbar bleibt. */
:root {
  --wf-lime: #57821a;
}

/* Überschrift des Freundeschats nicht direkt am linken Feldrand. */
#friendChatPanel .social-section-title h3 {
  padding-left: 10px !important;
}

/* Spieler-Avatare innerhalb ihrer Social-Felder exakt zentrieren. */
#friendsList .social-avatar,
.social-list .social-avatar {
  display: grid !important;
  place-items: center !important;
  align-self: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}

/* Leaderboard auf Desktop standardmäßig etwas großzügiger darstellen. */
@media (min-width: 801px) {
  #leaderboardPanel.leaderboard-panel {
    width: 100% !important;
    padding: 28px !important;
  }
  #leaderboardPanel .leaderboard-list {
    max-height: 520px !important;
    gap: 10px !important;
  }
  #leaderboardPanel .leaderboard-row {
    min-height: 68px !important;
    padding: 11px 16px !important;
  }
}

/* =========================================================
   V34.3 · ausschließlich die angeforderten UI-Korrekturen
   ========================================================= */

/* Größere, exakt zentrierte Spieler-Icon-Felder bei Registrierung und Social. */
#registerAvatarPicker,
#profileAvatarPicker {
  grid-template-columns: repeat(4, minmax(54px, 1fr)) !important;
  gap: 10px !important;
}
#registerAvatarPicker .avatar-option,
#profileAvatarPicker .avatar-option {
  width: 100% !important;
  min-width: 54px !important;
  min-height: 54px !important;
  aspect-ratio: 1 / 1 !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  font-size: 28px !important;
}
#friendsList .social-avatar,
.social-list .social-avatar {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  flex: 0 0 46px !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  font-size: 20px !important;
}

/* Social-Leiste liegt vollständig vor der oberen Kopfzeile. */
#socialOverlay.social-overlay {
  z-index: 320 !important;
}

/* Der letzte Leaderboard-Eintrag inklusive Schatten bleibt vollständig sichtbar. */
#leaderboardPanel .leaderboard-list {
  padding-bottom: 12px !important;
  scroll-padding-bottom: 12px !important;
}
#leaderboardPanel .leaderboard-row:last-child {
  position: relative !important;
  z-index: 3 !important;
  margin-bottom: 2px !important;
}

/* Poker-Zeitlinie verkürzt sich über ihre echte Breite statt über eine alte Transform-Regel. */
.poker-table-timer i {
  right: auto !important;
  width: var(--poker-timer-width, 100%) !important;
  max-width: 100% !important;
  transform: none !important;
  transition: width .25s linear, background .18s ease !important;
}

/* Rechte 2-zu-1-Kolonne schmaler, damit sie nicht über das Roulettefeld hinausragt. */
.roulette-number-board,
.roulette-outside-board {
  grid-template-columns: 56px repeat(12, minmax(42px, 1fr)) 48px !important;
}
.roulette-column-cell {
  min-width: 0 !important;
  padding-right: 4px !important;
  padding-left: 4px !important;
  font-size: .54rem !important;
}

/* Roulette-Auszahlungen mit gleichmäßigen Innenabständen. */
#rouletteApp .rule-list li {
  gap: 20px !important;
  padding: 12px 16px !important;
  box-sizing: border-box !important;
}
#rouletteApp .rule-list li span {
  min-width: 0 !important;
  padding-left: 2px !important;
}
#rouletteApp .rule-list li strong {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  padding-right: 2px !important;
  text-align: right !important;
}

@media (max-width: 560px) {
  #registerAvatarPicker,
  #profileAvatarPicker {
    grid-template-columns: repeat(4, minmax(50px, 1fr)) !important;
    gap: 8px !important;
  }
  #registerAvatarPicker .avatar-option,
  #profileAvatarPicker .avatar-option {
    min-width: 50px !important;
    min-height: 50px !important;
    font-size: 26px !important;
  }
  .roulette-number-board,
  .roulette-outside-board {
    grid-template-columns: 52px repeat(12, minmax(39px, 1fr)) 44px !important;
    min-width: 636px !important;
  }
}

/* Webfix-Flächenregeln dürfen die Poker-Timerlinie nicht als vollflächigen Button darstellen. */
.poker-table-timer,
.poker-table-timer.urgent {
  position: absolute !important;
  z-index: 40 !important;
  top: auto !important;
  right: 8px !important;
  bottom: -8px !important;
  left: 8px !important;
  width: auto !important;
  min-width: 0 !important;
  height: 5px !important;
  min-height: 5px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: transparent !important;
  background: rgba(255,255,255,.16) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.48) !important;
  overflow: hidden !important;
  transform: none !important;
  animation: none !important;
}
.poker-table-timer strong,
.poker-table-timer small {
  display: none !important;
}

/* =========================================================
   V34.4 · ausschließlich die angeforderten UI-Korrekturen
   ========================================================= */

/* Blackjack Multiplayer: Das Spieler-Icon sitzt exakt im Mittelpunkt seines Profilfelds. */
body.multiplayer-live .multi-seat .seat-profile {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  min-height: 64px !important;
  display: grid !important;
  place-items: center !important;
  align-items: center !important;
  justify-items: center !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
body.multiplayer-live .multi-seat .seat-profile > .table-avatar,
body.multiplayer-live .multi-seat.active .seat-profile > .table-avatar {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
}

/* Beim Verlieren kein rotes Rechteck mehr: Nur der runde Avatar-Rand wird rot hervorgehoben. */
body.multiplayer-live .multi-seat.multi-hand-loser .seat-profile {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  animation: none !important;
}
body.multiplayer-live .multi-seat.multi-hand-loser .seat-profile > .table-avatar {
  border-color: #ff3f59 !important;
  transform: translate(-50%, -50%) !important;
  animation: blackjackAvatarLossBorderV344 1.15s ease-in-out infinite !important;
}
@keyframes blackjackAvatarLossBorderV344 {
  0%, 100% {
    border-color: #ff3f59;
    box-shadow: 0 0 0 2px rgba(255,63,89,.28), 0 0 15px rgba(255,63,89,.34), 4px 4px 0 var(--wf-ink);
  }
  50% {
    border-color: #ff7184;
    box-shadow: 0 0 0 4px rgba(255,63,89,.34), 0 0 25px rgba(255,63,89,.58), 4px 4px 0 var(--wf-ink);
  }
}

/* Registrierungs-Iconauswahl wieder auf die ursprüngliche kompakte Größe zurücksetzen. */
#registerAvatarPicker {
  grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
  gap: 6px !important;
}
#registerAvatarPicker .avatar-option {
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  font-size: 24px !important;
}

/* Roulette auf Desktop etwas nach links setzen und den schwarzen Rahmen rechts verbreitern. */
@media (min-width: 1181px) {
  #rouletteApp .roulette-table-rim {
    width: calc(100% + 34px) !important;
    max-width: none !important;
    margin-left: -24px !important;
    margin-right: -10px !important;
    padding-right: 34px !important;
    box-sizing: border-box !important;
  }
  #rouletteApp .roulette-casino-felt {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: minmax(300px, .78fr) minmax(660px, 1.62fr) !important;
    padding-right: 38px !important;
    box-sizing: border-box !important;
  }
  #rouletteApp .roulette-betting-table {
    position: relative !important;
    left: -8px !important;
    width: calc(100% + 8px) !important;
    max-width: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 760px) {
  #registerAvatarPicker {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  #registerAvatarPicker .avatar-option {
    min-width: 0 !important;
    min-height: 0 !important;
    font-size: 24px !important;
  }
  body.multiplayer-live .multi-seat .seat-profile {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
  }
}


/* =========================================================
   V34.5 · ausschließlich die angeforderten Detailkorrekturen
   ========================================================= */

/* Singleplayer-Blackjack: Die beiden hellblauen Statistikfelder erhalten
   dunkle, kontrastreiche Beschriftungen und Werte. */
#gameApp .stats-grid > div:nth-child(2) span,
#gameApp .stats-grid > div:nth-child(4) span,
#gameApp #statWins,
#gameApp #statStreak {
  color: var(--wf-ink) !important;
}

/* Poker: Pot-Anzeige etwas kompakter und geringfügig tiefer. */
#pokerApp .poker-pot {
  top: 36% !important;
  min-width: 92px !important;
  padding: 6px 11px !important;
}
#pokerApp .poker-pot small {
  font-size: .52rem !important;
}
#pokerApp .poker-pot strong {
  font-size: 1rem !important;
}

/* Multiplayer-Blackjack: Tisch-Chipanzeige weiter links; Emoji exakt
   innerhalb des roten Avatar-Kreises zentriert. */
body.multiplayer-live .multi-seat .seat-buyin-stack {
  right: 62px !important;
}
body.multiplayer-live .multi-seat .seat-profile > .table-avatar,
body.multiplayer-live .multi-seat.active .seat-profile > .table-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  padding: 0 0 2px !important;
  text-indent: 0 !important;
  line-height: 1 !important;
}

@media (max-width: 800px) {
  #pokerApp .poker-pot {
    top: 36.5% !important;
    min-width: 82px !important;
    padding: 5px 9px !important;
  }
  body.multiplayer-live .multi-seat .seat-buyin-stack {
    right: 54px !important;
  }
}

/* =========================================================
   V34.6 · Inaktivitäts-, Shop- und mobile Spielkorrekturen
   ========================================================= */

/* Der Shop öffnet sich wie der Social-Bereich als echte rechte Seitenleiste. */
#shopOverlay.shop-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 330 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: stretch !important;
  padding: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
}
#shopOverlay.shop-overlay.hidden {
  display: none !important;
}
#shopOverlay .shop-backdrop {
  position: absolute !important;
  inset: 0 !important;
  pointer-events: auto !important;
}
#shopOverlay .shop-panel {
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  width: min(390px, 100%) !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  margin: 0 !important;
  padding: 22px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  border-radius: 28px 0 0 28px !important;
  border-right: 0 !important;
  box-shadow: -9px 0 0 var(--wf-ink) !important;
  animation: socialSlide .32s cubic-bezier(.2,.8,.2,1) both !important;
  pointer-events: auto !important;
}
#shopOverlay .shop-pane:not(.hidden) {
  display: grid !important;
  align-content: start !important;
  gap: 10px !important;
}

@media (max-width: 800px) {
  /* Das Tagesrad liegt über Kopfzeile, Social und Shop und bleibt kompakt. */
  #dailyWheelOverlay.daily-wheel-overlay {
    z-index: 1200 !important;
    place-items: start center !important;
    padding: max(8px, env(safe-area-inset-top)) 8px 8px !important;
    overflow-y: auto !important;
  }
  #dailyWheelOverlay .daily-wheel-stage {
    width: min(420px, calc(100vw - 16px)) !important;
    max-height: calc(100dvh - 16px) !important;
    gap: 8px !important;
    padding: 16px 12px 14px !important;
    margin: 0 !important;
    overflow-y: auto !important;
    border-radius: 18px !important;
  }
  #dailyWheelOverlay .daily-wheel-stage h2 {
    font-size: clamp(24px, 8vw, 34px) !important;
    line-height: 1 !important;
  }
  #dailyWheelOverlay .daily-wheel-hero-wrap {
    width: 100% !important;
    display: grid !important;
    place-items: center !important;
  }
  #dailyWheelOverlay .daily-wheel-hero,
  #shopOverlay .daily-wheel {
    width: min(210px, 56vw) !important;
    height: min(210px, 56vw) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border-width: 9px !important;
  }
  #dailyWheelOverlay .daily-wheel::after,
  #shopOverlay .daily-wheel::after {
    width: 44px !important;
    height: 44px !important;
    font-size: 20px !important;
  }
  #dailyWheelOverlay .daily-wheel-label,
  #shopOverlay .daily-wheel-label {
    font-size: 13px !important;
    stroke-width: 1.5px !important;
  }
  #dailyWheelOverlay .daily-wheel-prize {
    min-height: 18px !important;
    font-size: .82rem !important;
  }

  /* Mobile Kopfzeile in klaren, festen Reihen statt wechselnder Reihenfolge. */
  .topbar > .header-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    gap: 7px !important;
  }
  .header-actions .account-area {
    order: 1 !important;
    grid-column: 1 / -1 !important;
  }
  #homeNavigationButton {
    order: 2 !important;
    grid-column: 1 / -1 !important;
  }
  #socialToggle {
    order: 3 !important;
    grid-column: 1 !important;
  }
  #globalShopButton {
    order: 4 !important;
    grid-column: 2 !important;
  }
  #soundToggle {
    order: 5 !important;
    grid-column: 1 !important;
  }
  #helpToggle {
    order: 6 !important;
    grid-column: 2 !important;
  }
  .header-actions > .volume-popover {
    order: 7 !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  /* Shop bleibt auch mobil eine Seitenleiste wie Social. */
  #shopOverlay .shop-panel {
    width: min(390px, 100vw) !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    border-radius: 22px 0 0 22px !important;
  }

  /* Alle auswählbaren Spielchips bleiben exakt kreisrund und in ihrer Leiste. */
  #gameApp .chips,
  body.multiplayer-live .multi-chip-palette,
  #rouletteApp .roulette-chips,
  #slotsApp .slots-chip-palette {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 5px 3px 9px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain !important;
    scroll-snap-type: x proximity !important;
  }
  #gameApp .chips .chip,
  body.multiplayer-live .multi-chip-palette .chip,
  #rouletteApp .roulette-chips .chip,
  #slotsApp .slots-chip-palette .chip {
    position: relative !important;
    inset: auto !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    flex: 0 0 46px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
    transform: none !important;
    scroll-snap-align: start !important;
  }
  #gameApp .chips .chip.selected,
  body.multiplayer-live .multi-chip-palette .chip.selected,
  #rouletteApp .roulette-chips .chip.selected,
  #slotsApp .slots-chip-palette .chip.selected {
    transform: none !important;
    z-index: 1 !important;
  }
  #gameApp .action-controls,
  body.multiplayer-live .multi-action-controls,
  #rouletteApp .roulette-actions,
  #slotsApp .slots-actions,
  #gameApp .bet-adjusters,
  body.multiplayer-live .multi-bet-stepper {
    position: relative !important;
    z-index: 3 !important;
  }

  /* Bereits gelegte Chips besitzen feste Boxen und verändern ihre Position nicht. */
  #gameApp .table-bet-spot,
  body.multiplayer-live .seat-chip-stack,
  body.multiplayer-live .multi-laid-bet,
  #rouletteApp .roulette-cell {
    contain: layout !important;
  }
  #gameApp .laid-chip-stack,
  body.multiplayer-live .seat-chip-stack {
    position: relative !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    flex: 0 0 52px !important;
    transform: none !important;
  }
  #gameApp .laid-chip-stack .table-chip,
  body.multiplayer-live .seat-chip-stack .laid-chip {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    animation: none !important;
    transition: none !important;
    box-sizing: border-box !important;
  }
  #gameApp .laid-chip-stack .table-chip {
    left: 50% !important;
    top: auto !important;
    bottom: calc(var(--i) * 4px) !important;
    transform: translateX(-50%) !important;
  }
  body.multiplayer-live .seat-chip-stack .laid-chip {
    left: calc(7px + var(--i) * 2px) !important;
    top: calc(9px - var(--i) * 3px) !important;
    transform: none !important;
  }

  /* Roulette-Zwischenwetten werden in lokalen Feldkoordinaten exakt zentriert. */
  #rouletteApp .roulette-number-board {
    position: relative !important;
    transform: none !important;
  }
  #rouletteApp .roulette-inside-hotspot {
    position: absolute !important;
    max-width: none !important;
    transform: none !important;
  }
  #rouletteApp .roulette-inside-hotspot > .roulette-bet-chip {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    transform: translate(-50%, -50%) !important;
    box-sizing: border-box !important;
  }
}


/* =========================================================
   V34.7 · ausschließlich mobile Darstellungs- und Spielfixes
   Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Die Sprachwahl zeigt "English" vollständig und kontrastreich an. */
  .home-language-select {
    width: min(100%, 280px) !important;
    min-width: 0 !important;
    gap: 12px !important;
  }
  .home-language-select select {
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
    height: 40px !important;
    padding: 7px 34px 7px 12px !important;
    color: #f7f8ff !important;
    background: #111827 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    text-overflow: clip !important;
  }

  /* Das Tagesrad verwendet eine stabile kleine Fläche. 100svh verändert
     sich beim Ein-/Ausblenden der mobilen Browserleisten nicht. */
  html:has(#dailyWheelOverlay:not(.hidden)),
  body.daily-wheel-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  #dailyWheelOverlay.daily-wheel-overlay.hidden {
    display: none !important;
  }
  #dailyWheelOverlay.daily-wheel-overlay {
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
    display: grid !important;
    place-items: start center !important;
    overflow: hidden !important;
    touch-action: none !important;
  }
  #dailyWheelOverlay .daily-wheel-stage {
    width: min(360px, calc(100vw - 16px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100svh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
    padding: 12px 10px !important;
    gap: 6px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    touch-action: pan-y !important;
  }
  #dailyWheelOverlay .daily-wheel-stage .eyebrow {
    font-size: 9px !important;
  }
  #dailyWheelOverlay .daily-wheel-stage h2 {
    margin: 0 !important;
    font-size: clamp(21px, 6.5vw, 28px) !important;
    line-height: 1.05 !important;
  }
  #dailyWheelOverlay .daily-wheel-hero-wrap {
    width: 100% !important;
    min-height: 154px !important;
    max-height: 154px !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 154px !important;
  }
  #dailyWheelOverlay .daily-wheel-hero {
    width: 146px !important;
    height: 146px !important;
    min-width: 146px !important;
    max-width: 146px !important;
    min-height: 146px !important;
    max-height: 146px !important;
    border-width: 7px !important;
    box-sizing: border-box !important;
  }
  #dailyWheelOverlay .daily-wheel::after {
    width: 34px !important;
    height: 34px !important;
    font-size: 16px !important;
  }
  #dailyWheelOverlay .daily-wheel-label {
    font-size: 12px !important;
    stroke-width: 1.25px !important;
  }
  #dailyWheelOverlay .daily-wheel-prize {
    min-height: 30px !important;
    margin: 0 !important;
    padding: 6px 9px !important;
    font-size: .75rem !important;
    line-height: 1.15 !important;
  }
  #dailyWheelOverlay #dailyWheelHeroButton {
    min-height: 42px !important;
    height: 42px !important;
    padding-block: 7px !important;
  }

  /* Multiplayer-Blackjack: Sitz- und Spielericons bleiben sichtbar und
     werden innerhalb der mittleren Sitzspalte exakt zentriert. */
  body.multiplayer-live #multiSeats.multi-seats {
    z-index: 18 !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .multi-seat,
  body.multiplayer-live #multiSeats .multi-seat-vacant,
  body.multiplayer-live #multiSeats .seat-info-row,
  body.multiplayer-live #multiSeats .seat-profile,
  body.multiplayer-live #multiSeats .vacant-seat-profile {
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  body.multiplayer-live #multiSeats .seat-info-row {
    position: relative !important;
    z-index: 19 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr) !important;
    align-items: center !important;
    justify-items: center !important;
  }
  body.multiplayer-live #multiSeats .seat-profile,
  body.multiplayer-live #multiSeats .vacant-seat-profile {
    position: relative !important;
    inset: auto !important;
    grid-column: 2 !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .seat-profile > .table-avatar,
  body.multiplayer-live #multiSeats .multi-seat.active .seat-profile > .table-avatar {
    position: absolute !important;
    inset: 50% auto auto 50% !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .multi-seat-empty.empty-player-seat {
    position: relative !important;
    inset: auto !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    margin: 0 !important;
    display: grid !important;
    place-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .empty-player-plus {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    line-height: 1 !important;
  }
  body.multiplayer-live #multiSeats .seat-bet-display {
    grid-column: 3 !important;
  }

  /* Nur die Sitzplatzaufforderung wird kompakt; die Einsatz- und
     Aktionsansichten behalten ihre eigenen benötigten Höhen. */
  body.multiplayer-live .multi-controls:has(#multiLobbyControls:not(.hidden)) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 9px !important;
    overflow: visible !important;
  }
  body.multiplayer-live #multiLobbyControls:not(.hidden) {
    width: 100% !important;
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
    padding: 9px 10px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: 1fr !important;
    align-items: center !important;
    gap: 9px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy {
    min-width: 0 !important;
    align-self: center !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy strong {
    display: block !important;
    font-size: .84rem !important;
    line-height: 1.1 !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy small {
    display: block !important;
    margin-top: 4px !important;
    max-height: 30px !important;
    overflow: hidden !important;
    font-size: .66rem !important;
    line-height: 1.15 !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-stack-summary {
    min-width: 76px !important;
    padding: 7px !important;
  }

  /* Mobile Roulette-Zwischenwetten: jede unsichtbare Trefferfläche wird
     unabhängig von Form und Rahmen exakt um ihre Koordinate zentriert. */
  #rouletteApp .roulette-inside-hotspot,
  #rouletteApp .roulette-inside-hotspot.street,
  #rouletteApp .roulette-inside-hotspot.six,
  #rouletteApp .roulette-inside-hotspot.corner,
  #rouletteApp .roulette-inside-hotspot.zero-split,
  #rouletteApp .roulette-inside-hotspot.zero-trio,
  #rouletteApp .roulette-inside-hotspot.zero-corner {
    margin: 0 !important;
    box-sizing: border-box !important;
    transform: translate(-50%, -50%) !important;
    transform-origin: 50% 50% !important;
  }
  #rouletteApp .roulette-inside-hotspot > .roulette-bet-chip {
    position: absolute !important;
    inset: 50% auto auto 50% !important;
    margin: 0 !important;
    transform: translate(-50%, -50%) !important;
  }
}

/* =========================================================
   V34.8 · ausschließlich mobile Poker-/Blackjack-Sitzkorrekturen
   Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Poker: sämtliche Plätze liegen etwas höher, damit besonders der
     untere Platz vollständig innerhalb des Tisches sichtbar bleibt. */
  #pokerApp .poker-seat,
  #pokerApp .poker-seat.is-active,
  #pokerApp .poker-seat.poker-hand-winner {
    transform: translate(-50%, calc(-50% - 24px)) !important;
  }

  /* Multiplayer-Blackjack: eindeutige mobile Tischaufteilung. Die Sitze
     bleiben als feste untere Tischreihe sichtbar und anklickbar. */
  body.multiplayer-live #multiplayerApp .multi-felt {
    position: relative !important;
    min-height: 560px !important;
    height: 560px !important;
    display: block !important;
    overflow: hidden !important;
  }
  body.multiplayer-live #multiplayerApp .multi-dealer {
    min-height: 146px !important;
    height: 146px !important;
    margin: 10px auto 0 !important;
  }
  body.multiplayer-live #multiSeats.multi-seats {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 8px !important;
    z-index: 40 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 238px !important;
    min-height: 238px !important;
    max-height: 238px !important;
    margin: 0 !important;
    padding: 8px 2px 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px !important;
    align-items: end !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiSeats > .multi-seat,
  body.multiplayer-live #multiSeats > .multi-seat-vacant {
    position: relative !important;
    inset: auto !important;
    z-index: 41 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 222px !important;
    min-height: 222px !important;
    max-height: 222px !important;
    margin: 0 !important;
    padding: 0 2px !important;
    display: grid !important;
    grid-template-rows: 128px 74px 20px !important;
    align-self: end !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiSeats .multi-hands,
  body.multiplayer-live #multiSeats .multi-hands-vacant {
    grid-row: 1 !important;
    width: 100% !important;
    height: 128px !important;
    min-height: 128px !important;
    max-height: 128px !important;
  }
  body.multiplayer-live #multiSeats .multi-hands-vacant {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.multiplayer-live #multiSeats .seat-info-row {
    position: relative !important;
    inset: auto !important;
    grid-row: 2 !important;
    z-index: 45 !important;
    width: 100% !important;
    height: 74px !important;
    min-height: 74px !important;
    max-height: 74px !important;
    margin: 0 !important;
    padding: 6px 2px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiSeats .seat-profile,
  body.multiplayer-live #multiSeats .vacant-seat-profile {
    position: relative !important;
    inset: auto !important;
    z-index: 46 !important;
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .seat-profile > .table-avatar,
  body.multiplayer-live #multiSeats .multi-seat.active .seat-profile > .table-avatar {
    position: absolute !important;
    inset: 50% auto auto 50% !important;
    z-index: 47 !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: auto !important;
  }
  body.multiplayer-live #multiSeats .multi-seat-empty.empty-player-seat {
    position: absolute !important;
    inset: 50% auto auto 50% !important;
    z-index: 48 !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 3px solid #0b0d12 !important;
    border-radius: 50% !important;
    color: #f7f8ff !important;
    background: #7557d9 !important;
    box-shadow: 3px 3px 0 #0b0d12 !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiSeats .empty-player-plus {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #ffffff !important;
    font-size: 27px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
  }
  body.multiplayer-live #multiSeats .seat-bet-display {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 44 !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
  }

  /* Die Sitzplatzaufforderung ist wieder hoch genug; kein Text wird
     abgeschnitten, obwohl der Bereich kompakt bleibt. */
  body.multiplayer-live .multi-controls:has(#multiLobbyControls:not(.hidden)) {
    height: auto !important;
    min-height: 148px !important;
    max-height: none !important;
    padding: 10px !important;
    overflow: visible !important;
  }
  body.multiplayer-live #multiLobbyControls:not(.hidden) {
    width: 100% !important;
    height: auto !important;
    min-height: 128px !important;
    max-height: none !important;
    padding: 14px 12px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 88px !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    gap: 12px !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy {
    min-width: 0 !important;
    align-self: center !important;
    overflow: visible !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy strong {
    display: block !important;
    margin: 0 !important;
    font-size: .88rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-control-copy small {
    display: block !important;
    margin-top: 6px !important;
    max-height: none !important;
    color: var(--muted) !important;
    font-size: .7rem !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  body.multiplayer-live #multiLobbyControls .multi-stack-summary {
    min-width: 88px !important;
    width: 88px !important;
    padding: 9px 7px !important;
    align-self: stretch !important;
    display: grid !important;
    place-content: center !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   V0.9 · allgemeine Versionskennung und ausschließlich mobile
   Registrierungs-/Blackjack-Layoutkorrekturen.
   ========================================================= */
@media (max-width: 800px) {
  /* Registrierung: nur diese Avatar-Auswahl wieder kompakter darstellen. */
  #registerAvatarPicker {
    width: 100% !important;
    grid-template-columns: repeat(4, 42px) !important;
    justify-content: center !important;
    gap: 5px !important;
  }
  #registerAvatarPicker .avatar-option {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  /* Singleplayer-Blackjack: Die Einsatzleiste bekommt genug vertikalen
     Raum. Text, Einsatzanzeige, Chips und Buttons liegen in eigenen Reihen. */
  #gameApp .solo-private-shell {
    grid-template-rows: 500px auto !important;
    row-gap: 14px !important;
  }
  #gameApp .control-deck {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 10px !important;
    overflow: visible !important;
  }
  #gameApp #betControls:not(.hidden) {
    width: 100% !important;
    height: auto !important;
    min-height: 350px !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 4px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto 62px auto 54px !important;
    grid-template-areas:
      "solo-copy"
      "solo-current"
      "solo-chips"
      "solo-adjusters"
      "solo-deal" !important;
    gap: 9px !important;
    align-items: center !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  #gameApp #betControls > .control-title {
    grid-area: solo-copy !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  #gameApp #betControls > .table-bet-display {
    grid-area: solo-current !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    justify-content: center !important;
  }
  #gameApp #betControls > .chips {
    grid-area: solo-chips !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    margin: 0 !important;
    padding: 5px 3px 9px !important;
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp #betControls > .bet-adjusters {
    grid-area: solo-adjusters !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 7px !important;
  }
  #gameApp #betControls > .bet-adjusters > * {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  #gameApp #betControls > .deal-btn {
    grid-area: solo-deal !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
  }

  /* Multiplayer-Blackjack: Die komplette Sitzreihe liegt deutlich höher
     und bleibt vollständig innerhalb des mobilen Tischfelds. */
  body.multiplayer-live #multiplayerApp .multi-felt {
    min-height: 560px !important;
    height: 560px !important;
  }
  body.multiplayer-live #multiSeats.multi-seats {
    top: 238px !important;
    bottom: auto !important;
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
    padding-top: 4px !important;
    align-items: start !important;
  }
  body.multiplayer-live #multiSeats > .multi-seat,
  body.multiplayer-live #multiSeats > .multi-seat-vacant {
    height: 208px !important;
    min-height: 208px !important;
    max-height: 208px !important;
    grid-template-rows: 116px 72px 20px !important;
    align-self: start !important;
  }
  body.multiplayer-live #multiSeats .multi-hands,
  body.multiplayer-live #multiSeats .multi-hands-vacant {
    height: 116px !important;
    min-height: 116px !important;
    max-height: 116px !important;
  }
  body.multiplayer-live #multiSeats .seat-info-row {
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }

  /* Die Multiplayer-Einsatzleiste erhält Abstand zum Tisch. Die Chipreihe
     verwendet exakt das bewährte mobile Roulette-Prinzip. */
  body.multiplayer-live .multi-controls {
    margin-top: 16px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-bet-controls:not(.hidden) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    padding: 5px 3px 9px !important;
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain !important;
    scroll-snap-type: x proximity !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-bet-controls > .multi-chip-palette .chip {
    position: relative !important;
    inset: auto !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    flex: 0 0 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    transform: none !important;
    scroll-snap-align: start !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   V0.9 · Mobile Solo-Blackjack-Chips dauerhaft verankern.
   Das Einsatzfeld bleibt vor und nach dem Austeilen exakt an
   derselben Position und hängt nicht von der Kartenhöhe ab.
   ========================================================= */
@media (max-width: 800px) {
  #gameApp .solo-private-player-seat {
    position: relative !important;
  }

  #gameApp .solo-seat-bet-spot {
    position: absolute !important;
    top: 83px !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 12 !important;
    margin: 0 !important;
    transform: translate(13px, -50%) !important;
  }

  #gameApp .solo-seat-bet-spot .laid-chip-stacks {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }
}

/* =========================================================
   V0.9 · gezielte Desktop- und Mobile-Korrekturen
   - Blackjack-Handbereich bleibt in jeder Phase gleich groß
   - Poker-Startbuttons ohne dekorative Musteranimationen
   - Tisch-Stack mit mehr horizontalem Innenraum
   - Mobile Poker-Mitte kompakter
   - Mobiler Solo-Einsatz fest außerhalb des Handbereichs
   ========================================================= */

/* Beide Poker-Startbuttons behalten nur die normale Hover-Hervorhebung.
   Die animierten/dekorativen Muster der Pseudoelemente werden entfernt. */
#playPokerButton,
#findPokerPlayersButton {
  animation: none !important;
}
#playPokerButton::before,
#playPokerButton::after,
#findPokerPlayersButton::before,
#findPokerPlayersButton::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

/* Desktop: "Your Hands" bleibt vor und nach dem Austeilen exakt gleich groß. */
@media (min-width: 801px) {
  #gameApp .solo-private-player-seat {
    height: 238px !important;
    min-height: 238px !important;
    max-height: 238px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .seat-heading {
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    margin: 0 0 6px !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid {
    height: 185px !important;
    min-height: 185px !important;
    max-height: 185px !important;
    align-items: stretch !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid > .player-hand {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
  }

  /* Mehr Platz links und rechts um "YOUR TABLE STACK". */
  body.multiplayer-live #multiLobbyControls .multi-stack-summary,
  body.multiplayer-live .multi-stack-summary {
    width: 154px !important;
    min-width: 154px !important;
    max-width: 154px !important;
    padding: 11px 16px !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live .multi-stack-summary > span {
    display: block !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
}

@media (max-width: 800px) {
  /* Poker: Tischaufschrift und Community Cards sind auf dem Handy kleiner. */
  #pokerApp .poker-table-brand {
    top: 18% !important;
    width: 180px !important;
    max-width: 52vw !important;
    line-height: 1 !important;
  }
  #pokerApp .poker-table-brand span {
    font-size: .46rem !important;
    letter-spacing: .34em !important;
  }
  #pokerApp .poker-table-brand strong {
    margin: 1px 0 !important;
    font-size: .68rem !important;
    letter-spacing: .11em !important;
  }
  #pokerApp .poker-table-brand small {
    font-size: .4rem !important;
    letter-spacing: .11em !important;
  }
  #pokerApp .poker-community {
    gap: 3px !important;
  }
  #pokerApp .poker-community .playing-card,
  #pokerApp .poker-community .poker-card-slot {
    --card-w: 32px !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    border-radius: 5px !important;
  }
  #pokerApp .poker-community .playing-card .corner {
    font-size: .48rem !important;
  }
  #pokerApp .poker-community .playing-card .card-center {
    font-size: .8rem !important;
  }

  /* Solo-Blackjack: fester Handbereich. Der Einsatz hängt direkt am Filz
     und liegt links außerhalb der eigentlichen Karten-/Handfläche. */
  #gameApp .solo-private-felt {
    position: relative !important;
    grid-template-rows: 20px 120px 38px 1fr !important;
  }
  #gameApp .solo-table-copy {
    grid-row: 1 !important;
  }
  #gameApp .solo-private-dealer-seat {
    grid-row: 2 !important;
  }
  #gameApp .center-status {
    grid-row: 3 !important;
  }
  #gameApp .solo-private-player-seat {
    position: static !important;
    grid-row: 4 !important;
    width: calc(100% - 92px) !important;
    height: 236px !important;
    min-height: 236px !important;
    max-height: 236px !important;
    margin: 0 4px 0 auto !important;
    padding: 8px 7px 9px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 25px 185px !important;
    row-gap: 6px !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .seat-heading {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 185px !important;
    min-height: 185px !important;
    max-height: 185px !important;
    margin: 0 !important;
    padding: 3px 2px 7px !important;
    transform: none !important;
    align-items: stretch !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid > .player-hand {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-seat-bet-spot {
    position: absolute !important;
    top: auto !important;
    right: auto !important;
    bottom: 24px !important;
    left: 10px !important;
    z-index: 24 !important;
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
    margin: 0 !important;
    padding: 4px 2px !important;
    transform: none !important;
    display: grid !important;
    place-items: center !important;
    align-content: center !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-seat-bet-spot.empty {
    display: grid !important;
    opacity: 0 !important;
  }
  #gameApp .solo-seat-bet-spot .laid-chip-stacks {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    justify-content: center !important;
  }
}


/* =========================================================
   V0.9 · Mobile Feinausrichtung Blackjack
   Ausschließlich mobile Darstellung; Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Multiplayer: Die mittlere Statusanzeige sitzt höher und hält klaren
     Abstand zur fest verankerten Sitzreihe. */
  body.multiplayer-live #multiplayerApp .multi-turn-status {
    position: relative !important;
    top: -18px !important;
    z-index: 48 !important;
    margin-top: 0 !important;
    margin-bottom: 18px !important;
    transform: none !important;
  }

  /* Singleplayer: Die Handfläche bleibt exakt auf der horizontalen
     Tischmitte. Der Einsatz liegt tiefer auf Höhe der eigenen Karten,
     ohne die Kartenposition beim Austeilen zu beeinflussen. */
  #gameApp .solo-private-player-seat {
    position: static !important;
    width: calc(100% - 16px) !important;
    height: 236px !important;
    min-height: 236px !important;
    max-height: 236px !important;
    margin: 0 auto !important;
    padding: 8px 7px 9px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 25px 185px !important;
    justify-self: center !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-player-seat > .seat-heading {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid {
    width: 100% !important;
    height: 185px !important;
    min-height: 185px !important;
    max-height: 185px !important;
    padding: 3px 4px 7px 78px !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-seat-bet-spot {
    position: absolute !important;
    top: auto !important;
    right: auto !important;
    bottom: 7px !important;
    left: 12px !important;
    z-index: 26 !important;
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
    margin: 0 !important;
    transform: none !important;
  }

  /* Die komplette Bedienleiste behält in Einsatz- und Aktionsphase
     dieselbe Außenhöhe und dieselbe Position. */
  #gameApp .solo-private-shell {
    grid-template-rows: 500px 370px !important;
    row-gap: 14px !important;
  }
  #gameApp .control-deck {
    position: relative !important;
    width: 100% !important;
    height: 370px !important;
    min-height: 370px !important;
    max-height: 370px !important;
    margin: 0 !important;
    padding: 10px !important;
    align-self: start !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp #betControls:not(.hidden),
  #gameApp #actionControls:not(.hidden) {
    width: 100% !important;
    height: 350px !important;
    min-height: 350px !important;
    max-height: 350px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  #gameApp #actionControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Das lokalisierte YOU/DU/VOUS-Abzeichen sitzt etwas unterhalb des
     Spielericons und wird nicht mehr von ihm verdeckt. */
  body.multiplayer-live #multiSeats .seat-me-badge {
    right: -5px !important;
    bottom: -12px !important;
    z-index: 60 !important;
  }
}

/* =========================================================
   V0.9 · Mobile Feinkorrekturen Poker und Blackjack
   Ausschließlich mobile Darstellung; Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Poker: Die mittlere Tischanzeige sitzt höher und hält Abstand
     zu den unteren Sitzplätzen. */
  #pokerApp .poker-table-status {
    top: 60.5% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 24 !important;
  }

  /* Poker: freie Plätze und Spielericons bleiben wirklich kreisrund. */
  #pokerApp .poker-empty-seat,
  #pokerApp .poker-empty-seat-control {
    width: 66px !important;
    height: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    align-content: center !important;
    box-sizing: border-box !important;
  }
  #pokerApp .poker-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  /* Poker: "Table Settings" nutzt die gesamte Breite gleichmäßig.
     Die Buttons stehen sauber in einer eigenen vollen Zeile. */
  #pokerApp .poker-lobby-controls {
    width: 100% !important;
    height: 276px !important;
    min-height: 276px !important;
    max-height: 276px !important;
    padding: 10px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(96px, auto) !important;
    grid-template-rows: minmax(72px, auto) minmax(58px, auto) !important;
    gap: 10px !important;
    align-content: start !important;
    align-items: stretch !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp .poker-lobby-controls > .poker-control-copy {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    align-self: stretch !important;
  }
  #pokerApp .poker-lobby-controls > .poker-stack-summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 96px !important;
    max-width: 126px !important;
    margin: 0 !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
  }
  #pokerApp .poker-lobby-controls > .poker-lobby-actions {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 9px !important;
  }
  #pokerApp .poker-lobby-actions > button:not(.hidden) {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 58px !important;
    margin: 0 !important;
  }

  /* Multiplayer-Blackjack: Die komplette Bedienleiste behält in jeder
     Spielphase exakt dieselbe Außen- und Innenhöhe. */
  body.multiplayer-live #multiplayerApp .multi-controls {
    position: relative !important;
    width: 100% !important;
    height: 352px !important;
    min-height: 352px !important;
    max-height: 352px !important;
    margin-top: 16px !important;
    padding: 10px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiplayerApp .multi-controls > #multiLobbyControls:not(.hidden),
  body.multiplayer-live #multiplayerApp .multi-controls > #multiBetControls:not(.hidden),
  body.multiplayer-live #multiplayerApp .multi-controls > #multiActionControls:not(.hidden),
  body.multiplayer-live #multiplayerApp .multi-controls > #multiInsuranceControls:not(.hidden),
  body.multiplayer-live #multiplayerApp .multi-controls > #multiWaitingControls:not(.hidden),
  body.multiplayer-live #multiplayerApp .multi-controls > #multiResultControls:not(.hidden) {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 332px !important;
    min-height: 332px !important;
    max-height: 332px !important;
    margin: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.multiplayer-live #multiplayerApp #multiBetControls:not(.hidden) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 52px 56px 62px 62px 72px !important;
    grid-template-areas:
      "copy"
      "stepper"
      "current"
      "palette"
      "ready" !important;
    gap: 7px !important;
    align-content: start !important;
    padding: 4px !important;
  }
  body.multiplayer-live #multiplayerApp #multiBetControls > .multi-control-copy { grid-area: copy !important; }
  body.multiplayer-live #multiplayerApp #multiBetControls > .multi-bet-stepper { grid-area: stepper !important; }
  body.multiplayer-live #multiplayerApp #multiBetControls > .multi-current-bet { grid-area: current !important; }
  body.multiplayer-live #multiplayerApp #multiBetControls > .multi-chip-palette { grid-area: palette !important; }
  body.multiplayer-live #multiplayerApp #multiBetControls > .ready-big {
    grid-area: ready !important;
    width: 100% !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }
  body.multiplayer-live #multiplayerApp #multiActionControls:not(.hidden) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 8px !important;
    align-items: stretch !important;
  }
  body.multiplayer-live #multiplayerApp #multiActionControls .action-btn {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
  }

  /* Singleplayer-Blackjack: Der Einsatz liegt tiefer auf derselben
     vertikalen Höhe wie die eigenen Karten und bleibt dort fest. */
  #gameApp .solo-seat-bet-spot {
    top: auto !important;
    right: auto !important;
    bottom: -18px !important;
    left: 12px !important;
    transform: none !important;
  }

  /* Singleplayer-Blackjack: Inhalt von Hit, Stand, Double und Split
     ist innerhalb jedes Buttons exakt horizontal und vertikal zentriert. */
  #gameApp #actionControls:not(.hidden) > .action-btn {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    place-items: center !important;
    align-content: center !important;
    justify-content: center !important;
    gap: 5px !important;
    padding: 10px 8px !important;
    text-align: center !important;
    line-height: 1.1 !important;
    box-sizing: border-box !important;
  }
  #gameApp #actionControls:not(.hidden) > .action-btn > * {
    width: 100% !important;
    margin: 0 !important;
    text-align: center !important;
    justify-self: center !important;
    align-self: center !important;
  }
}

@media (max-width: 800px) {
  #pokerApp .poker-lobby-controls {
    grid-template-rows: minmax(0, 1fr) 72px !important;
    align-content: stretch !important;
  }
  #pokerApp .poker-lobby-actions > button:not(.hidden) {
    min-height: 72px !important;
    max-height: 72px !important;
  }
  body.multiplayer-live #multiplayerApp #multiBetControls:not(.hidden) {
    grid-template-rows: 48px 50px 54px 58px 66px !important;
  }
  body.multiplayer-live #multiplayerApp #multiBetControls > .ready-big {
    min-height: 66px !important;
    max-height: 66px !important;
  }
}


/* =========================================================
   V0.9 · Profil, Luxusshow und mobile Tischkorrekturen
   ========================================================= */

/* Profil anderer Spieler: Chipzahl bleibt auf der hellen Fläche lesbar. */
.player-profile-panel .profile-currency,
.player-profile-panel .profile-currency b,
.player-profile-panel #playerProfileChips {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  text-shadow: none !important;
}

/* Luxusshows dürfen den Tisch nicht abdunkeln oder unlesbar machen. */
body.multiplayer-live .multi-felt > .table-spectacle.luxury-spectacle {
  background: transparent !important;
  pointer-events: none !important;
}
body.table-luxury-active .multi-felt,
body.table-luxury-active .table-felt {
  filter: none !important;
}
.table-spectacle.luxury-spectacle .luxury-curtain,
.table-spectacle.diamond_ceremony .luxury-curtain,
.table-spectacle.throne_ascend .luxury-curtain,
.table-spectacle.dragon_flight .luxury-curtain {
  background:
    radial-gradient(circle at 50% 48%, rgba(255,235,145,.18), transparent 34%),
    radial-gradient(circle at 50% 50%, transparent 40%, rgba(0,0,0,.16) 100%) !important;
  opacity: .68 !important;
  mix-blend-mode: screen !important;
}

@media (max-width: 800px) {
  /* Tischleiste: Runde oben, darunter gleichmäßig angeordnete Aktionen. */
  body.multiplayer-live #multiplayerApp .multi-roombar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding: 12px !important;
  }
  body.multiplayer-live #multiplayerApp .multi-roombar > div:first-child {
    min-width: 0 !important;
    width: 100% !important;
  }
  body.multiplayer-live #multiplayerApp .roombar-actions {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }
  body.multiplayer-live #multiplayerApp .roombar-actions > .round-label {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
  }
  body.multiplayer-live #multiplayerApp .roombar-actions > button:not(.hidden) {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 8px 7px !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  /* Singleplayer: Dealer- und Spielerkarten haben exakt dieselben Maße. */
  #gameApp .solo-private-dealer-seat .playing-card,
  #gameApp .solo-private-player-seat .playing-card {
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    height: 89px !important;
    min-height: 89px !important;
    max-height: 89px !important;
    flex-basis: 62px !important;
  }
  #gameApp .solo-private-dealer-seat .card-row,
  #gameApp .solo-private-player-seat .hand-cards {
    height: 95px !important;
    min-height: 95px !important;
    max-height: 95px !important;
  }

  /* Einsatz deutlich tiefer, aber weiterhin fest und unabhängig vom Austeilen. */
  #gameApp .solo-private-felt {
    overflow: visible !important;
  }
  #gameApp .solo-seat-bet-spot {
    top: auto !important;
    right: auto !important;
    bottom: -20px !important;
    left: 12px !important;
    transform: none !important;
  }

  /* Multiplayer-Sitze und Icons etwas weiter nach unten. */
  body.multiplayer-live #multiSeats.multi-seats {
    top: 270px !important;
    bottom: auto !important;
  }
}

@media (max-width: 800px) {
  body.multiplayer-live #multiplayerApp #multiStandButton.hidden + #leaveTableButton {
    grid-column: 1 / -1 !important;
  }
}

/* =========================================================
   V0.9.6 · ausschließlich angeforderte Fehlerkorrekturen
   ========================================================= */

/* Profil: Auch die Beschriftung "Chips" bleibt auf der hellen Fläche schwarz. */
.player-profile-panel .profile-stats > div:nth-child(2) > span,
.player-profile-panel .profile-stats > div:nth-child(2) strong,
.player-profile-panel .profile-stats > div:nth-child(2) b {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  text-shadow: none !important;
}

/* Roulette: Überschrift des europäischen Rads auf der hellen Infokarte. */
#rouletteApp .roulette-info .tip-box h2 {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  text-shadow: none !important;
}

/* Luxusanimationen dürfen weder Poker- noch Blackjack-Tisch abdunkeln. */
body.table-luxury-active .multi-felt,
body.table-luxury-active .table-felt,
body.table-luxury-active .poker-felt,
body.table-luxury-active .poker-table-felt {
  filter: none !important;
  animation: none !important;
  opacity: 1 !important;
}
.table-spectacle.luxury-spectacle,
.table-spectacle.luxury-spectacle.poker-luxury,
.poker-luxury {
  background: transparent !important;
  box-shadow: none !important;
  mix-blend-mode: normal !important;
}
.table-spectacle.luxury-spectacle::before,
.table-spectacle.luxury-spectacle::after,
.poker-luxury::before,
.poker-luxury::after {
  background: transparent !important;
  box-shadow: none !important;
}
.table-spectacle.luxury-spectacle .luxury-curtain,
.table-spectacle.diamond_ceremony .luxury-curtain,
.table-spectacle.throne_ascend .luxury-curtain,
.table-spectacle.dragon_flight .luxury-curtain {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

@media (max-width: 800px) {
  /* Profilansicht wie das mobile Glücksrad als kompaktes, zentriertes Modal. */
  .player-profile-overlay {
    padding: 12px !important;
    place-items: center !important;
  }
  .player-profile-panel {
    width: min(360px, calc(100vw - 24px)) !important;
    max-width: min(360px, calc(100vw - 24px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100svh - 24px) !important;
    padding: 18px 14px !important;
    border-radius: 22px !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
  }

  /* Singleplayer-Blackjack: Spieler- und Dealerkarten wirklich identisch. */
  #gameApp .solo-private-dealer-seat .playing-card,
  #gameApp .solo-private-player-seat .playing-card {
    --card-w: 58px !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 83px !important;
    min-height: 83px !important;
    max-height: 83px !important;
    flex: 0 0 58px !important;
    transform: none !important;
  }
  #gameApp .solo-private-dealer-seat .card-row,
  #gameApp .solo-private-player-seat .hand-cards {
    height: 89px !important;
    min-height: 89px !important;
    max-height: 89px !important;
    align-items: flex-start !important;
  }

  /* Einsatz fest auf dem unteren Tischrand, unabhängig von Karten und Ready. */
  #gameApp .solo-private-felt {
    position: relative !important;
    overflow: visible !important;
  }
  #gameApp .solo-seat-bet-spot {
    position: absolute !important;
    top: auto !important;
    right: auto !important;
    bottom: 2px !important;
    left: 50% !important;
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
    margin: 0 !important;
    transform: translate(-50%, 50%) !important;
    z-index: 60 !important;
    pointer-events: none !important;
  }
}


/* =========================================================
   V0.9.7 · angeforderte Text-, Anfrage- und Mobile-Korrekturen
   ========================================================= */

/* Blackjack "Tip" und Slots "Fair play" auf den hellen Karten lesbar. */
#gameApp .tip-box h2,
#slotsApp .slots-info .tip-box h2 {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  text-shadow: none !important;
}

/* Freundschaftsanfragen werden nur durch die echte hidden-Klasse verborgen.
   Sobald eine Anfrage vorhanden ist, darf keine alte Legacy-Regel das Feld
   zwischen Freundesliste und Chat erneut ausblenden. */
#friendRequestsSection:not(.hidden) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
#friendRequestsSection.hidden {
  display: none !important;
}

@media (max-width: 800px) {
  /* Mobile Solo-Blackjack-Anordnung: Dealer und Spieler liegen auf derselben
     horizontalen Kartenlinie. Der Einsatz sitzt stabil links neben den
     Spielerkarten und ist nicht mehr am unteren Tischrand oder Dealerfeld. */
  #gameApp .solo-private-felt {
    position: relative !important;
    display: block !important;
    min-height: 500px !important;
    height: 500px !important;
    max-height: 500px !important;
    padding: 10px 7px 13px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-table-copy {
    position: absolute !important;
    top: 10px !important;
    left: 50% !important;
    width: calc(100% - 20px) !important;
    transform: translateX(-50%) !important;
  }
  #gameApp .solo-private-dealer-seat,
  #gameApp .solo-private-player-seat {
    position: absolute !important;
    bottom: auto !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-dealer-seat {
    top: 72px !important;
    left: 7px !important;
    right: auto !important;
    width: 42% !important;
    height: 205px !important;
    min-height: 205px !important;
    max-height: 205px !important;
    padding: 8px 4px !important;
  }
  #gameApp .solo-private-player-seat {
    top: 38px !important;
    left: auto !important;
    right: 7px !important;
    width: 54% !important;
    height: 205px !important;
    min-height: 205px !important;
    max-height: 205px !important;
    padding: 8px 5px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 25px 164px !important;
    row-gap: 4px !important;
    overflow: visible !important;
  }
  #gameApp .solo-private-dealer-seat .seat-heading,
  #gameApp .solo-private-player-seat > .seat-heading {
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    margin: 0 0 4px !important;
    align-items: center !important;
  }
  #gameApp .solo-private-dealer-seat .card-row,
  #gameApp .solo-private-player-seat > .hands-grid {
    height: 164px !important;
    min-height: 164px !important;
    max-height: 164px !important;
    margin: 0 !important;
    align-items: flex-start !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-dealer-seat .card-row {
    padding: 4px 2px !important;
    justify-content: center !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid {
    padding: 4px 2px 4px 70px !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid > .player-hand {
    height: 154px !important;
    min-height: 154px !important;
    max-height: 154px !important;
    min-width: 116px !important;
    padding: 4px !important;
  }
  #gameApp .solo-private-dealer-seat .playing-card,
  #gameApp .solo-private-player-seat .playing-card {
    --card-w: 52px !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 75px !important;
    min-height: 75px !important;
    max-height: 75px !important;
    flex: 0 0 52px !important;
  }
  #gameApp .solo-private-dealer-seat .card-row,
  #gameApp .solo-private-player-seat .hand-cards {
    padding-top: 4px !important;
  }
  #gameApp .solo-seat-bet-spot {
    position: absolute !important;
    top: 58px !important;
    left: 4px !important;
    right: auto !important;
    bottom: auto !important;
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    height: 112px !important;
    min-height: 112px !important;
    max-height: 112px !important;
    margin: 0 !important;
    padding: 3px 1px !important;
    transform: none !important;
    z-index: 30 !important;
    display: grid !important;
    place-items: center !important;
    align-content: center !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  #gameApp .solo-seat-bet-spot .laid-chip-stacks,
  #gameApp .solo-seat-bet-spot .laid-chip-stack {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    justify-content: center !important;
  }
  #gameApp .center-status {
    position: absolute !important;
    top: 270px !important;
    left: 50% !important;
    width: auto !important;
    height: 42px !important;
    transform: translateX(-50%) !important;
    z-index: 18 !important;
  }
}

/* =========================================================
   V0.9.8 · ausschließlich mobile Handfläche und Poker-Steuerung
   ========================================================= */
@media (max-width: 800px) {
  /* Singleplayer-Blackjack: "Your Hands" sitzt unten mittig innerhalb
     des Tisches und bleibt dort unabhängig vom Karteninhalt. */
  #gameApp .solo-private-player-seat {
    position: absolute !important;
    top: auto !important;
    right: auto !important;
    bottom: 12px !important;
    left: 50% !important;
    width: calc(100% - 20px) !important;
    height: 205px !important;
    min-height: 205px !important;
    max-height: 205px !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    z-index: 22 !important;
  }
  #gameApp .solo-private-player-seat > .seat-heading {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
  #gameApp .solo-private-player-seat > .hands-grid {
    height: 164px !important;
    min-height: 164px !important;
    max-height: 164px !important;
  }

  /* Poker-Table-Settings: nur in der Sitzplatz-/Lobbyphase wird die grüne
     Steuerfläche kompakt an ihren Inhalt angepasst. */
  #pokerApp .poker-controls:has(.poker-lobby-controls:not(.hidden)) {
    height: 174px !important;
    min-height: 174px !important;
    max-height: 174px !important;
    padding: 9px !important;
    overflow: hidden !important;
  }
  #pokerApp .poker-lobby-controls:not(.hidden) {
    width: 100% !important;
    height: 156px !important;
    min-height: 156px !important;
    max-height: 156px !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 104px !important;
    grid-template-rows: 92px 56px !important;
    gap: 8px !important;
    align-content: stretch !important;
    align-items: stretch !important;
    overflow: hidden !important;
  }
  #pokerApp .poker-lobby-controls > .poker-control-copy,
  #pokerApp .poker-lobby-controls > .poker-stack-summary {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  #pokerApp .poker-lobby-controls > .poker-lobby-actions {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    margin: 0 !important;
    display: flex !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  #pokerApp .poker-lobby-actions > button:not(.hidden) {
    flex: 1 1 0 !important;
    width: auto !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    margin: 0 !important;
  }
}

/* =========================================================
   V0.9.9 · ausschließlich mobile Karten- und Poker-Steuerung
   Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Singleplayer-Blackjack: Dealer-Karten oben mittig. Die Kartenmaße
     entsprechen weiterhin exakt den Karten des Spielers. */
  #gameApp .solo-private-dealer-seat {
    position: absolute !important;
    top: 48px !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    width: min(270px, calc(100% - 34px)) !important;
    height: 168px !important;
    min-height: 168px !important;
    max-height: 168px !important;
    margin: 0 !important;
    padding: 7px 8px 8px !important;
    transform: translateX(-50%) !important;
    z-index: 20 !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-dealer-seat .seat-heading {
    width: 100% !important;
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    margin: 0 0 5px !important;
    justify-content: center !important;
    text-align: center !important;
  }
  #gameApp .solo-private-dealer-seat .card-row {
    width: 100% !important;
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    margin: 0 !important;
    padding: 4px 2px !important;
    justify-content: center !important;
    align-items: flex-start !important;
    box-sizing: border-box !important;
  }
  #gameApp .solo-private-dealer-seat .playing-card,
  #gameApp .solo-private-player-seat .playing-card {
    --card-w: 58px !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 83px !important;
    min-height: 83px !important;
    max-height: 83px !important;
    flex: 0 0 58px !important;
  }

  /* "Your Decision" deutlich über der unteren Handfläche. */
  #gameApp .center-status {
    position: absolute !important;
    top: 224px !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    width: auto !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    z-index: 30 !important;
  }


}

/* =========================================================
   V0.9.10 · Mobile Poker-Kopfleiste
   Die eigentliche Poker-Steuerfläche bleibt im vorherigen Zustand.
   ========================================================= */
@media (max-width: 800px) {
  body.poker-live #pokerApp .poker-roombar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding: 12px !important;
    box-sizing: border-box !important;
  }
  body.poker-live #pokerApp .poker-roombar > div:first-child {
    width: 100% !important;
    min-width: 0 !important;
  }
  body.poker-live #pokerApp .poker-roombar .roombar-actions {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }
  body.poker-live #pokerApp .poker-roombar .roombar-actions > .round-label {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    margin: 0 !important;
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  body.poker-live #pokerApp .poker-roombar .roombar-actions > button:not(.hidden) {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 8px 7px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   V0.9.11 · gezielte Poker-Korrekturen
   Desktop: Tischaufschrift höher.
   Mobil: feste Bedienleisten-Geometrie mit sichtbaren Aktionen.
   ========================================================= */
@media (min-width: 801px) {
  #pokerApp .poker-table-brand {
    top: 12.5% !important;
  }
}

@media (max-width: 800px) {
  /* Die äußere Poker-Bedienleiste bleibt in jeder Phase exakt gleich groß
     und an derselben Position. Ausschließlich der Inhalt wechselt. */
  #pokerApp .poker-controls,
  #pokerApp .poker-controls:has(.poker-lobby-controls:not(.hidden)) {
    position: relative !important;
    width: 100% !important;
    height: 294px !important;
    min-height: 294px !important;
    max-height: 294px !important;
    margin: 0 !important;
    padding: 9px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #pokerApp .poker-lobby-controls,
  #pokerApp .poker-action-controls,
  #pokerApp .poker-waiting-controls,
  #pokerApp .poker-result-controls,
  #pokerApp .poker-lobby-controls:not(.hidden) {
    width: 100% !important;
    height: 276px !important;
    min-height: 276px !important;
    max-height: 276px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  #pokerApp #pokerActionControls.hidden {
    display: none !important;
  }
  #pokerApp #pokerActionControls:not(.hidden) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 44px 56px 30px 56px 56px !important;
    gap: 6px !important;
    align-content: start !important;
    align-items: stretch !important;
    overflow: hidden !important;
  }

  #pokerApp #pokerActionControls .poker-action-info {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 3px 7px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls:has(.poker-call-alert:not(.hidden)) .poker-action-info {
    grid-column: 1 !important;
  }
  #pokerApp #pokerActionControls .poker-call-alert:not(.hidden) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 3px 6px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #pokerApp #pokerActionControls .poker-fold {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  #pokerApp #pokerActionControls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control {
    display: contents !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control label {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100% !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control input {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    align-self: center !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    grid-column: 2 !important;
    grid-row: 4 !important;
  }
  #pokerApp #pokerActionControls .poker-allin {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
  }

  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn,
  #pokerApp #pokerActionControls .poker-allin {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    margin: 0 !important;
    padding: 6px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   V0.9.12 · ausschließlich mobile Shop-, Registrierung- und
   Poker-Aktionskorrekturen. Desktop bleibt unverändert.
   ========================================================= */
@media (max-width: 800px) {
  /* Shop: Geschenke bleiben vollständig innerhalb ihrer Karten. */
  #shopOverlay .shop-items,
  #shopOverlay .luxury-items {
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
  }
  #shopOverlay .shop-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 112px !important;
    padding: 10px 6px 9px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 42px minmax(30px, auto) 20px !important;
    place-items: center !important;
    align-content: center !important;
    gap: 4px !important;
    overflow: hidden !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }
  #shopOverlay .shop-item > span {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 42px !important;
    margin: 0 !important;
    font-size: 29px !important;
    line-height: 1 !important;
    overflow: hidden !important;
  }
  #shopOverlay .shop-item > strong,
  #shopOverlay .shop-item > small {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 2px !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    box-sizing: border-box !important;
  }
  #shopOverlay .shop-item > strong {
    font-size: .72rem !important;
    line-height: 1.12 !important;
  }
  #shopOverlay .shop-item > small {
    font-size: .65rem !important;
    line-height: 1.1 !important;
  }

  /* Registrierung: gesamte Iconfläche schmaler, unten mit mehr Luft. */
  #registerForm .avatar-fieldset {
    width: min(224px, calc(100% - 28px)) !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 10px 12px 15px !important;
    box-sizing: border-box !important;
  }
  #registerForm #registerAvatarPicker {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    grid-template-columns: repeat(4, 42px) !important;
    justify-content: center !important;
    align-content: center !important;
    gap: 6px !important;
    box-sizing: border-box !important;
  }

  /* Poker: feste Bedienleisten-Geometrie. Der Zugbereich liegt garantiert
     innerhalb der grünen Fläche; kein Element kann die Aktionsbuttons
     verdrängen oder außerhalb des sichtbaren Bereichs platzieren. */
  #pokerApp .poker-controls,
  #pokerApp .poker-controls:has(.poker-lobby-controls:not(.hidden)) {
    position: relative !important;
    width: 100% !important;
    height: 294px !important;
    min-height: 294px !important;
    max-height: 294px !important;
    margin: 0 !important;
    padding: 9px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls.hidden {
    display: none !important;
  }
  #pokerApp #pokerActionControls:not(.hidden) {
    position: absolute !important;
    inset: 9px !important;
    z-index: 20 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 44px 56px 30px 56px 56px !important;
    gap: 6px !important;
    align-content: start !important;
    align-items: stretch !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-action-timer {
    display: none !important;
  }
  #pokerApp #pokerActionControls .poker-action-info {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-call-alert:not(.hidden) {
    position: absolute !important;
    top: 26px !important;
    right: 6px !important;
    left: 6px !important;
    z-index: 4 !important;
    width: auto !important;
    height: 16px !important;
    min-height: 16px !important;
    max-height: 16px !important;
    margin: 0 !important;
    padding: 1px 5px !important;
    font-size: .58rem !important;
    line-height: 1.1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-fold {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  #pokerApp #pokerActionControls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control {
    display: contents !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control label {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100% !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    padding: 0 5px !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control input {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    align-self: center !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    grid-column: 2 !important;
    grid-row: 4 !important;
  }
  #pokerApp #pokerActionControls .poker-allin {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
  }
  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn,
  #pokerApp #pokerActionControls .poker-allin {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    margin: 0 !important;
    padding: 6px !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    box-sizing: border-box !important;
  }
}

/* ================================================================
   V0.9.13 · ausschließlich mobile Poker-Aktionsbuttons
   Mehr sichtbarer Abstand zwischen den Webfix-Buttons inklusive ihrer
   versetzten Schatten; Größe und Position der Bet-Leiste bleiben fest.
   ================================================================ */
@media (max-width: 760px) {
  #pokerApp #pokerActionControls:not(.hidden) {
    grid-template-rows: 42px 50px 28px 50px 50px !important;
    column-gap: 14px !important;
    row-gap: 11px !important;
  }

  #pokerApp #pokerActionControls .poker-action-info {
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }

  #pokerApp #pokerActionControls .poker-raise-control label {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }

  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn,
  #pokerApp #pokerActionControls .poker-allin {
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
  }
}

/* ================================================================
   V0.9.14 · ausschließlich mobile Poker-Aktionsanordnung
   Die vier Aktionen füllen die feste Bet-Leiste als klares 2×2-Raster.
   ================================================================ */
@media (max-width: 760px) {
  #pokerApp #pokerActionControls:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 42px 26px 34px minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 12px !important;
    row-gap: 10px !important;
    align-content: stretch !important;
    align-items: stretch !important;
    overflow: hidden !important;
  }

  #pokerApp #pokerActionControls .poker-action-info {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }

  #pokerApp #pokerActionControls .poker-raise-control {
    display: contents !important;
  }

  #pokerApp #pokerActionControls .poker-raise-control label {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    margin: 0 !important;
    padding: 0 5px !important;
    box-sizing: border-box !important;
  }

  #pokerApp #pokerActionControls .poker-raise-control input {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: calc(100% - 8px) !important;
    min-width: 0 !important;
    margin: 0 4px !important;
    align-self: center !important;
    box-sizing: border-box !important;
  }

  #pokerApp #pokerActionControls .poker-fold {
    grid-column: 1 !important;
    grid-row: 4 !important;
  }

  #pokerApp #pokerActionControls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 4 !important;
  }

  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    grid-column: 1 !important;
    grid-row: 5 !important;
  }

  #pokerApp #pokerActionControls .poker-allin {
    grid-column: 2 !important;
    grid-row: 5 !important;
  }

  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn,
  #pokerApp #pokerActionControls .poker-allin {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 5px 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
}

/* ================================================================
   V0.9.15 · mobile Poker-Bedienung und allgemeine Farbanpassungen
   ================================================================ */

/* Leaderboard-Profile beim Hover bewusst dunkelblau statt hellblau. */
.leaderboard-row:hover,
.leaderboard-row:focus-visible {
  background: #102f57 !important;
  color: #f4f7fb !important;
  border-color: #05070a !important;
}
.leaderboard-row:hover .leaderboard-rank,
.leaderboard-row:hover .leaderboard-name,
.leaderboard-row:hover .leaderboard-chips,
.leaderboard-row:focus-visible .leaderboard-rank,
.leaderboard-row:focus-visible .leaderboard-name,
.leaderboard-row:focus-visible .leaderboard-chips {
  color: #f4f7fb !important;
}

/* Der dekorative Kreis hinter dem Quick-Play-Bereich ist blau. */
.home-panel::before {
  background: #245f9e !important;
}

@media (max-width: 760px) {
  /* In der festen Poker-Betleiste darf immer nur der aktive Bereich liegen. */
  #pokerApp .poker-controls > .hidden {
    display: none !important;
  }

  /* Lobby/Table Settings bleiben über allen inaktiven Bereichen, damit
     insbesondere "Stand Up" nie von Aktionsbuttons verdeckt wird. */
  #pokerApp .poker-lobby-controls:not(.hidden) {
    position: absolute !important;
    inset: 9px !important;
    z-index: 40 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* Der Zugbereich nutzt eine klare mobile Desktop-Logik:
     Info, Call-Betrag, gemeinsamer Raise-Regler und eine getrennte
     Aktionszeile. Keine Schrift oder Schaltfläche kann überlappen. */
  #pokerApp #pokerActionControls:not(.hidden) {
    position: absolute !important;
    inset: 9px !important;
    z-index: 30 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: 42px 30px 76px 58px !important;
    column-gap: 10px !important;
    row-gap: 8px !important;
    align-content: center !important;
    align-items: stretch !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #pokerApp #pokerActionControls .poker-action-info {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    display: grid !important;
    align-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-action-info span,
  #pokerApp #pokerActionControls .poker-action-info small {
    width: 100% !important;
    margin: 0 !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Der mitzugehende Betrag erhält ein eigenes Feld statt über einem
     anderen Textfeld zu liegen. */
  #pokerApp #pokerActionControls .poker-call-alert:not(.hidden) {
    position: relative !important;
    inset: auto !important;
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    z-index: 1 !important;
    width: 100% !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .66rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-call-alert.hidden {
    display: none !important;
  }

  /* Raise-Regler wie auf Desktop: Beschriftung und Slider links,
     Raise-Button rechts innerhalb derselben klaren Fläche. */
  #pokerApp #pokerActionControls .poker-raise-control {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100% !important;
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
    margin: 0 !important;
    padding: 7px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 88px !important;
    grid-template-rows: 26px 28px !important;
    column-gap: 9px !important;
    row-gap: 4px !important;
    align-items: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control label {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    margin: 0 !important;
    padding: 0 2px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 6px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control input {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 28px !important;
    margin: 0 !important;
    align-self: center !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;
    width: 88px !important;
    min-width: 88px !important;
    max-width: 88px !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin: 0 !important;
    padding: 5px 3px !important;
  }

  /* Die drei übrigen Aktionen stehen schmal und mit klaren Abständen
     in einer gemeinsamen unteren Reihe. */
  #pokerApp #pokerActionControls .poker-fold {
    grid-column: 1 !important;
    grid-row: 4 !important;
  }
  #pokerApp #pokerActionControls #pokerCheckCallButton {
    grid-column: 2 !important;
    grid-row: 4 !important;
  }
  #pokerApp #pokerActionControls .poker-allin {
    grid-column: 3 !important;
    grid-row: 4 !important;
  }
  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin: 0 !important;
    padding: 5px 3px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerActionControls > .action-btn .action-icon,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn .action-icon {
    font-size: .82rem !important;
    line-height: 1 !important;
  }
  #pokerApp #pokerActionControls > .action-btn > span:nth-child(2),
  #pokerApp #pokerActionControls .poker-raise-control .action-btn > span:nth-child(2) {
    font-size: .67rem !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }
  #pokerApp #pokerActionControls > .action-btn small,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn small {
    display: none !important;
  }
}

/* ================================================================
   V0.9.16 · ausschließlich mobile Poker-Buttons und Glücksradposition
   ================================================================ */
@media (max-width: 760px) {
  /* Auf Mobilgeräten bleiben nur die klaren Aktionsbezeichnungen sichtbar. */
  #pokerApp #pokerActionControls .action-btn .action-icon {
    display: none !important;
  }

  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 0 !important;
  }

  #pokerApp #pokerActionControls > .action-btn > span:nth-child(2),
  #pokerApp #pokerActionControls .poker-raise-control .action-btn > span:nth-child(2) {
    display: flex !important;
    width: 100% !important;
    height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 2px !important;
    font-size: .88rem !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 800px) {
  /* Das kompakte Tagesrad öffnet mittig im stabilen mobilen Viewport. */
  #dailyWheelOverlay.daily-wheel-overlay {
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
  }

  #dailyWheelOverlay .daily-wheel-stage {
    margin: auto !important;
  }
}

/* ================================================================
   V0.9.17 · Registrierungsfläche, mobile Pokerpositionen, Slots-Redesign
   ================================================================ */

/* Desktop: Die gemeinsame Avatarfläche erhält mehr Innenraum, damit die
   einzelnen Symbole den Außenrand nicht berühren. */
@media (min-width: 761px) {
  #registerForm .avatar-fieldset {
    width: min(100%, 560px) !important;
    margin-inline: auto !important;
    padding: 16px 18px 20px !important;
    box-sizing: border-box !important;
  }
  #registerForm #registerAvatarPicker {
    width: 100% !important;
    gap: 9px !important;
    box-sizing: border-box !important;
  }
}

/* Mobil: Stand Up sitzt sichtbar am unteren Rand der unveränderten
   Poker-Betleiste. Die unteren beiden Sitze stehen etwas weiter auseinander. */
@media (max-width: 760px) {
  #pokerApp .poker-lobby-controls:not(.hidden) {
    padding-bottom: 58px !important;
  }
  #pokerApp .poker-lobby-actions {
    position: absolute !important;
    left: 9px !important;
    right: 9px !important;
    bottom: 9px !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerStandButton:not(.hidden) {
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
  }
  #pokerApp .poker-seat-lower-left {
    left: 18.5% !important;
  }
  #pokerApp .poker-seat-lower-right {
    left: 81.5% !important;
  }
}

/* Slots: vollständig neu gezeichnete, dunkle Webfix-Symbole mit klarer
   Kontur, versetztem Schatten und den bestehenden Akzentfarben. */
.slot-symbol {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: 58px !important;
  height: 58px !important;
  margin: auto !important;
  filter: drop-shadow(4px 4px 0 #071116) !important;
  transform-origin: center !important;
}
.slot-symbol::before,
.slot-symbol::after {
  box-sizing: border-box !important;
}
.slot-seven {
  color: #ff786f !important;
  font: 1000 48px/.95 Arial Black, Impact, sans-serif !important;
  letter-spacing: -4px !important;
  -webkit-text-stroke: 3px #071116 !important;
  text-shadow: 3px 3px 0 #8d2d45, 0 0 12px rgba(255,120,111,.36) !important;
}
.slot-seven::before {
  content: "" !important;
  position: absolute !important;
  width: 46px !important;
  height: 46px !important;
  border: 3px solid #071116 !important;
  border-radius: 16px !important;
  background: #26215a !important;
  z-index: -1 !important;
  transform: rotate(-5deg) !important;
}
.slot-diamond,
.slot-gem {
  width: 43px !important;
  height: 43px !important;
  border: 3px solid #071116 !important;
  border-radius: 10px 18px 10px 18px !important;
  transform: rotate(45deg) !important;
  overflow: hidden !important;
}
.slot-diamond {
  background: linear-gradient(135deg,#eaffff 0 17%,#74d8ff 18% 47%,#3975db 48% 70%,#b9f4ff 71%) !important;
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.18) !important;
}
.slot-gem {
  background: linear-gradient(135deg,#ffe6fb 0 16%,#d760d7 17% 48%,#7438bd 49% 71%,#ff9eea 72%) !important;
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.16) !important;
}
.slot-diamond::after,
.slot-gem::after {
  content: "" !important;
  position: absolute !important;
  inset: 9px !important;
  border: 2px solid rgba(7,17,22,.72) !important;
  transform: rotate(45deg) !important;
}
.slot-coin {
  width: 48px !important;
  height: 48px !important;
  border: 3px solid #071116 !important;
  border-radius: 50% !important;
  background: #e2ad35 !important;
  box-shadow: inset 0 0 0 5px #ffd76b, inset 0 0 0 8px #9c681e !important;
}
.slot-coin::after {
  content: "N" !important;
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  color: #071116 !important;
  font: 1000 20px/1 Arial Black, sans-serif !important;
}
.slot-crown {
  width: 54px !important;
  height: 43px !important;
  margin-top: 6px !important;
  border: 3px solid #071116 !important;
  border-radius: 9px 9px 15px 15px !important;
  background: #d9a52f !important;
  clip-path: polygon(0 18%,20% 43%,34% 0,50% 40%,68% 0,81% 43%,100% 18%,88% 100%,12% 100%) !important;
  box-shadow: inset 0 -10px 0 #8d5d20 !important;
}
.slot-crown::after {
  content: "" !important;
  position: absolute !important;
  left: 9px !important;
  right: 9px !important;
  bottom: 8px !important;
  height: 6px !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: #ff6f91 !important;
  box-shadow: none !important;
}
.slot-chest {
  width: 55px !important;
  height: 45px !important;
  margin-top: 6px !important;
  border: 3px solid #071116 !important;
  border-radius: 14px 14px 9px 9px !important;
  background: linear-gradient(#7b4bd2 0 34%,#4e328f 35% 100%) !important;
  overflow: hidden !important;
}
.slot-chest::before {
  content: "" !important;
  position: absolute !important;
  left: -3px !important;
  right: -3px !important;
  top: 16px !important;
  height: 7px !important;
  border-block: 2px solid #071116 !important;
  background: #7caa2d !important;
  box-shadow: none !important;
}
.slot-chest::after {
  content: "" !important;
  position: absolute !important;
  left: 21px !important;
  top: 18px !important;
  width: 12px !important;
  height: 15px !important;
  border: 2px solid #071116 !important;
  border-radius: 3px !important;
  background: #ffd66b !important;
  box-shadow: none !important;
}
.slot-reel-item.winning .slot-symbol,
.slot-cell.winning .slot-symbol {
  animation: slotWebfixWinV0917 .55s ease-in-out 3 alternate !important;
}
@keyframes slotWebfixWinV0917 {
  to { transform: translateY(-4px) scale(1.08); filter: drop-shadow(5px 6px 0 #071116) brightness(1.18); }
}


/* ================================================================
   V0.9.18 · Developer-Blackjack-Steuerung und mobile Stand-Up-Kante
   ================================================================ */

/* Mobil: Der versetzte Webfix-Schatten des Stand-Up-Buttons bleibt vollständig
   innerhalb der Poker-Betleiste und wird rechts nicht abgeschnitten. */
@media (max-width: 760px) {
  #pokerApp .poker-lobby-actions {
    right: 15px !important;
  }
  #pokerApp #pokerStandButton:not(.hidden) {
    max-width: 100% !important;
    justify-self: stretch !important;
  }
}

.developer-blackjack-control {
  margin: 12px 0 24px;
  padding: 22px;
  border-radius: 20px;
}
.developer-blackjack-control-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.developer-blackjack-control-head h2 {
  margin: 5px 0;
}
.developer-blackjack-control-head p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
}
.developer-control-live {
  flex: 0 0 auto;
  padding: 8px 11px;
  border: 3px solid #071116;
  border-radius: 999px;
  color: #071116;
  background: var(--lime);
  box-shadow: 3px 3px 0 #071116;
  font-size: .72rem;
  font-weight: 1000;
  letter-spacing: .06em;
}
.developer-blackjack-settings-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.developer-blackjack-settings-form > label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}
.developer-blackjack-settings-form > label > small {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
}
.developer-blackjack-settings-form select {
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border: 3px solid #071116;
  border-radius: 10px;
  color: var(--text);
  background: #132331;
  box-shadow: 4px 4px 0 #071116;
  font: inherit;
  font-size: .92rem;
  font-weight: 900;
}
.developer-setting-wide,
.developer-blackjack-toggles,
.developer-blackjack-settings-actions,
#adminBlackjackSettingsMessage {
  grid-column: 1 / -1;
}
.developer-blackjack-toggles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.developer-toggle {
  display: flex !important;
  align-items: flex-start;
  gap: 11px !important;
  min-height: 74px;
  padding: 13px;
  border: 3px solid #071116;
  border-radius: 12px;
  color: var(--text) !important;
  background: #172a38;
  box-shadow: 4px 4px 0 #071116;
  text-transform: none !important;
  cursor: pointer;
}
.developer-toggle input {
  width: 22px;
  height: 22px;
  margin: 1px 0 0;
  flex: 0 0 auto;
  accent-color: var(--purple);
}
.developer-toggle span {
  display: grid;
  gap: 4px;
}
.developer-toggle strong {
  font-size: .9rem;
}
.developer-toggle small {
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.35;
}
.developer-blackjack-settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 2px;
}
#adminBlackjackSettingsMessage {
  min-height: 44px;
  margin: 0;
  padding: 11px 13px;
  border: 3px solid #071116;
  border-radius: 10px;
  color: var(--text);
  background: #101e29;
  box-shadow: 4px 4px 0 #071116;
}
#adminBlackjackSettingsMessage.success {
  color: #071116;
  background: var(--lime);
}
#adminBlackjackSettingsMessage.error {
  color: #fff;
  background: #a92d45;
}
@media (max-width: 760px) {
  .developer-blackjack-control {
    padding: 16px;
  }
  .developer-blackjack-control-head,
  .developer-blackjack-settings-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .developer-blackjack-settings-form,
  .developer-blackjack-toggles {
    grid-template-columns: 1fr;
  }
  .developer-setting-wide,
  .developer-blackjack-toggles,
  .developer-blackjack-settings-actions,
  #adminBlackjackSettingsMessage {
    grid-column: 1;
  }
  .developer-control-live {
    align-self: flex-start;
  }
}


/* ================================================================
   V0.9.19 · Kartenfeld, Slots, Dialogebenen, Mobile Poker und Dev-Panel
   ================================================================ */
/* Desktop-Solo-Blackjack: oberes Dealer-Kartenfeld vollständig innerhalb des Filzes. */
@media (min-width: 801px) {
  #gameApp .solo-private-dealer-seat {
    top: 18px !important;
    padding-top: 8px !important;
    overflow: visible !important;
  }
  #gameApp .solo-private-dealer-seat .card-row {
    padding-top: 6px !important;
    overflow: visible !important;
  }
}

/* Regeln/Fragezeichen-Leiste liegt auf Desktop und Mobil sicher über der Sticky-Menüleiste. */
#rulesDrawer.drawer { z-index: 12000 !important; }
#rulesDrawer .drawer-close { z-index: 12001 !important; }

/* Slots robust: nur das innere Symbol wird gestaltet; die Walzenzelle bleibt unangetastet. */
.slot-reel-item {
  overflow: hidden !important;
  contain: layout paint !important;
}
.slot-reel-item .slot-symbol {
  position: relative !important;
  inset: auto !important;
  width: 62px !important;
  height: 62px !important;
  min-width: 62px !important;
  min-height: 62px !important;
  max-width: 62px !important;
  max-height: 62px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border: 3px solid #071116 !important;
  border-radius: 16px !important;
  box-shadow: 4px 4px 0 #071116, inset 0 0 0 3px rgba(255,255,255,.14) !important;
  filter: none !important;
  transform: none !important;
  clip-path: none !important;
  letter-spacing: 0 !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
  font: 1000 35px/1 "Arial Black", Impact, sans-serif !important;
  box-sizing: border-box !important;
}
.slot-reel-item .slot-symbol::before,
.slot-reel-item .slot-symbol::after { display: none !important; content: none !important; }
.slot-reel-item .slot-seven { color: #fff1e9 !important; background: linear-gradient(145deg,#ef665e,#9e2941) !important; font-size: 40px !important; }
.slot-reel-item .slot-diamond { color: #071116 !important; background: linear-gradient(145deg,#9fe8ff,#3f82dd) !important; }
.slot-reel-item .slot-crown { color: #071116 !important; background: linear-gradient(145deg,#ffe07a,#d49827) !important; font-family: Georgia,serif !important; }
.slot-reel-item .slot-gem { color: #fff !important; background: linear-gradient(145deg,#c36ee8,#6438b7) !important; }
.slot-reel-item .slot-coin { color: #071116 !important; background: linear-gradient(145deg,#ffe789,#d99b28) !important; font-size: 24px !important; }
.slot-reel-item .slot-chest { color: #fff3a8 !important; background: linear-gradient(145deg,#8657d8,#39236e) !important; }
.slot-reel-item.winning .slot-symbol { animation: slotSymbolWinV0919 .5s ease-in-out 3 alternate !important; }
@keyframes slotSymbolWinV0919 { to { transform: translateY(-2px) scale(1.04) !important; filter: brightness(1.15) !important; } }
@media (max-width: 800px) {
  .slot-reel-item .slot-symbol { width: 50px !important; height: 50px !important; min-width: 50px !important; min-height: 50px !important; max-width: 50px !important; max-height: 50px !important; border-radius: 13px !important; font-size: 28px !important; box-shadow: 3px 3px 0 #071116, inset 0 0 0 2px rgba(255,255,255,.14) !important; }
  .slot-reel-item .slot-seven { font-size: 34px !important; }
}

/* Developer Center: Eingabefelder und Gruppen der erweiterten Regeln. */
.developer-settings-group { padding: 13px 15px; border: 3px solid #071116; border-radius: 12px; background: #102f57; box-shadow: 4px 4px 0 #071116; }
.developer-settings-group h3 { margin: 0 0 4px; color: #fff; font-size: 1rem; }
.developer-settings-group p { margin: 0; color: #c8d7e7; font-size: .76rem; line-height: 1.4; }
.developer-blackjack-settings-form input[type="number"] { width: 100%; min-height: 46px; padding: 0 13px; border: 3px solid #071116; border-radius: 10px; color: var(--text); background: #132331; box-shadow: 4px 4px 0 #071116; font: inherit; font-size: .92rem; font-weight: 900; box-sizing: border-box; }

@media (max-width: 760px) {
  /* Stand Up vollständig inklusive Webfix-Schatten innerhalb der Bet-Leiste. */
  #pokerApp .poker-lobby-actions { left: 10px !important; right: 22px !important; overflow: visible !important; }
  #pokerApp #pokerStandButton:not(.hidden) { width: calc(100% - 4px) !important; max-width: calc(100% - 4px) !important; justify-self: start !important; box-shadow: 3px 3px 0 #071116 !important; }

  /* Buy-in-Dialoge wirklich mittig und mit sicherem Seitenabstand. */
  #pokerBuyinOverlay.poker-buyin-overlay,
  #multiBuyinOverlay.poker-buyin-overlay { display: grid !important; place-items: center !important; padding: 14px !important; box-sizing: border-box !important; }
  #pokerBuyinOverlay .poker-buyin-panel,
  #multiBuyinOverlay .poker-buyin-panel { position: relative !important; inset: auto !important; width: min(390px, calc(100vw - 34px)) !important; max-width: calc(100vw - 34px) !important; margin: auto !important; transform: none !important; box-sizing: border-box !important; }

  /* Poker-Erhöhungshinweis: variable Namen und Beträge bleiben getrennt lesbar. */
  #pokerApp .poker-call-alert:not(.hidden) { height: auto !important; min-height: 36px !important; max-height: 48px !important; padding: 5px 7px !important; display: flex !important; flex-wrap: wrap !important; align-content: center !important; justify-content: center !important; gap: 3px 7px !important; white-space: normal !important; line-height: 1.15 !important; text-align: center !important; }
  #pokerApp .poker-call-alert > span { display: inline-flex !important; align-items: center !important; gap: 4px !important; min-width: 0 !important; }
  #pokerApp .poker-call-alert strong,
  #pokerApp .poker-call-alert b { margin: 0 2px !important; white-space: nowrap !important; }
  #pokerApp .poker-call-raiser { max-width: 100% !important; }
  #pokerApp .poker-call-raiser strong { overflow: hidden !important; text-overflow: ellipsis !important; max-width: 110px !important; }
  #pokerApp .poker-call-amount { padding: 2px 5px !important; border-radius: 7px !important; background: rgba(255,255,255,.1) !important; }
}


/* V0.9.19 Nachprüfung */
@media (min-width: 801px) {
  #gameApp .solo-private-dealer-seat {
    transform: translateY(8px) !important;
  }
}
@media (max-width: 760px) {
  #pokerBuyinOverlay.hidden,
  #multiBuyinOverlay.hidden { display: none !important; }
  #pokerApp #pokerActionControls:not(.hidden) {
    grid-template-rows: 42px 42px 70px 56px !important;
  }
  #pokerApp #pokerActionControls .poker-call-alert:not(.hidden) {
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }
  #pokerApp #pokerActionControls .poker-raise-control {
    height: 70px !important;
    min-height: 70px !important;
    max-height: 70px !important;
  }
  #pokerApp #pokerActionControls > .action-btn,
  #pokerApp #pokerActionControls .poker-raise-control .action-btn {
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
  }
}

/* ================================================================
   V0.9.20 · Developer game tabs, auth slider and final mobile poker fix
   ================================================================ */
/* Animated Sign-in / Register segmented slider. */
.auth-tabs {
  position: relative !important;
  isolation: isolate;
  overflow: hidden;
  border: 3px solid #071116 !important;
  background: #10253b !important;
  box-shadow: 4px 4px 0 #071116 !important;
}
.auth-tabs::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 5px;
  bottom: 5px;
  left: 5px;
  width: calc(50% - 7.5px);
  border: 2px solid #071116;
  border-radius: 9px;
  background: linear-gradient(135deg, #6277ff, #3d55ca);
  box-shadow: 2px 2px 0 #071116;
  transition: transform .32s cubic-bezier(.2,.85,.2,1), background .25s ease;
}
.auth-tabs:has(#registerTab.active)::before {
  transform: translateX(calc(100% + 5px));
  background: linear-gradient(135deg, #b85ce4, #7742c6);
}
.auth-tab {
  position: relative;
  z-index: 1;
  color: #cbd9e8 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: color .25s ease, transform .25s ease !important;
}
.auth-tab.active { color: #fff !important; background: transparent !important; box-shadow: none !important; }
.auth-tab:hover { color: #fff !important; }

/* Developer Center: one expandable, translated control group per game. */
.developer-game-controls {
  margin-top: 18px;
  padding: 20px;
  border: 3px solid #071116;
  border-radius: 18px;
  background: #0d2137;
  box-shadow: 7px 7px 0 #071116;
}
.developer-game-accordions { display: grid; gap: 14px; margin-top: 16px; }
.developer-game-accordion {
  overflow: hidden;
  border: 3px solid #071116;
  border-radius: 15px;
  background: #142f4d;
  box-shadow: 5px 5px 0 #071116;
}
.developer-game-accordion > summary {
  min-height: 72px;
  padding: 12px 16px;
  display: grid;
  grid-template-columns: 46px minmax(0,1fr) 34px;
  align-items: center;
  gap: 12px;
  color: #fff;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(135deg, #173b61, #102a48);
  user-select: none;
}
.developer-game-accordion > summary::-webkit-details-marker { display: none; }
.developer-game-accordion > summary > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.developer-game-accordion > summary strong { font-size: 1rem; }
.developer-game-accordion > summary small { color: #b9cce0; line-height: 1.35; }
.developer-game-accordion > summary > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 2px solid #071116;
  border-radius: 50%;
  color: #071116;
  background: #80a4ff;
  box-shadow: 2px 2px 0 #071116;
  font-style: normal;
  font-size: 20px;
  font-weight: 1000;
  transition: transform .25s ease;
}
.developer-game-accordion[open] > summary > i { transform: rotate(45deg); }
.developer-game-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 2px solid #071116;
  border-radius: 11px;
  color: #071116;
  background: #83d2ff;
  box-shadow: 3px 3px 0 #071116;
  font-size: 22px;
  font-weight: 1000;
}
.developer-game-accordion:nth-child(2) .developer-game-icon { background: #a879e9; }
.developer-game-accordion:nth-child(3) .developer-game-icon { background: #ef746f; }
.developer-game-accordion:nth-child(4) .developer-game-icon { background: #d7b646; }
.developer-game-panel { padding: 16px; border-top: 3px solid #071116; background: #0d2137; }
.developer-game-settings-form input[type="number"],
.developer-game-settings-form input[type="text"],
.developer-game-settings-form select {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
}

/* Developer presentation controls that keep layout stable while hiding content. */
.roulette-wheel.developer-wheel-hidden { visibility: hidden !important; }
.roulette-ball.developer-ball-hidden { display: none !important; }
.slots-app.developer-hide-paytable .slots-payouts { display: none !important; }
.slots-app.developer-hide-paylines .slot-payline,
.slots-app.developer-hide-paylines .winning { animation: none !important; }
.slots-app[data-symbol-set="classic"] .slot-symbol { filter: saturate(.72) contrast(1.05) !important; }
.slots-app[data-symbol-set="royal"] .slot-symbol { border-radius: 50% !important; box-shadow: 4px 4px 0 #071116, inset 0 0 0 3px rgba(255,231,137,.2) !important; }

@media (max-width: 760px) {
  /* Stand Up fully centered inside the fixed poker bet bar, shadow included. */
  #pokerApp .poker-lobby-controls > .poker-lobby-actions,
  #pokerApp .poker-lobby-actions {
    left: 50% !important;
    right: auto !important;
    width: calc(100% - 42px) !important;
    max-width: calc(100% - 42px) !important;
    transform: translateX(-50%) !important;
    justify-items: center !important;
    align-items: center !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  #pokerApp #pokerStandButton:not(.hidden) {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    margin: 0 auto !important;
    justify-self: center !important;
    transform: none !important;
    box-sizing: border-box !important;
    box-shadow: 3px 3px 0 #071116 !important;
  }
  .developer-game-controls { padding: 13px; }
  .developer-game-accordion > summary { grid-template-columns: 40px minmax(0,1fr) 30px; padding: 10px; gap: 9px; }
  .developer-game-icon { width: 36px; height: 36px; font-size: 19px; }
  .developer-game-panel { padding: 11px; }
}


/* V0.9.21 · expanded server-side game controls */
.developer-control-live { color: #fff !important; text-shadow: 0 1px 0 rgba(0,0,0,.35); }

/* Blackjack presentation switches */
#multiplayerApp.developer-hide-hand-values .multi-hand-score,
#multiplayerApp.developer-hide-hand-values .multi-seat-hand > strong,
#multiplayerApp.developer-hide-hand-values .multi-hand-head strong { visibility: hidden !important; }
#multiplayerApp.developer-hide-dealer-value #multiDealerScore { visibility: hidden !important; }
#multiplayerApp.developer-hide-player-names .multi-player-name,
#multiplayerApp.developer-hide-player-names .multi-seat-name,
#multiplayerApp.developer-hide-player-names .multi-seat-copy strong { visibility: hidden !important; }
#multiplayerApp.developer-hide-seat-stacks .multi-seat-stack,
#multiplayerApp.developer-hide-seat-stacks .multi-player-stack { visibility: hidden !important; }
#multiplayerApp.developer-hide-table-chat .table-chat-section { display: none !important; }
#multiplayerApp.developer-hide-round-counter #multiRoundLabel { visibility: hidden !important; }
#multiplayerApp.developer-hide-action-hints .multi-control-copy small,
#multiplayerApp.developer-hide-action-hints .blackjack-decision-controls small { display: none !important; }
#multiplayerApp.developer-hide-luxury-effects .luxury-effect,
#multiplayerApp.developer-hide-luxury-effects .multi-seat-effect,
#multiplayerApp.developer-hide-luxury-effects .gift-flight { display: none !important; }
#multiplayerApp .multi-card-row .playing-card { scale: var(--developer-blackjack-card-scale, 1); transform-origin: center; }

/* Poker presentation switches */
#pokerApp.developer-hide-pot .poker-pot { visibility: hidden !important; }
#pokerApp.developer-hide-player-names .poker-seat-copy strong,
#pokerApp.developer-hide-player-names .poker-player-list strong { visibility: hidden !important; }
#pokerApp.developer-hide-player-stacks .poker-seat-copy small,
#pokerApp.developer-hide-player-stacks .poker-player-list small { visibility: hidden !important; }
#pokerApp.developer-hide-community .poker-community { visibility: hidden !important; }
#pokerApp.developer-hide-table-chat .poker-chat-section { display: none !important; }
#pokerApp.developer-hide-hand-strength .poker-hand-name,
#pokerApp.developer-hide-hand-strength .poker-seat-hand { visibility: hidden !important; }
#pokerApp.developer-disable-pot-animation .poker-pot-flight-chip { display: none !important; }

/* Slot presentation switches */
#slotsApp.developer-hide-status .slots-status { display: none !important; }
#slotsApp.developer-hide-bet-controls .slots-bet-display,
#slotsApp.developer-hide-bet-controls .slots-chip-palette { display: none !important; }
#slotsApp.developer-hide-machine-header .slots-machine-head { display: none !important; }

/* ================================================================
   V0.9.22 · fixed authentication flow, e-mail verification and backups
   ================================================================ */
.auth-box {
  min-height: 720px !important;
  height: 720px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
}
.auth-form-stage {
  position: relative;
  flex: 0 0 392px;
  height: 392px;
  min-height: 392px;
  margin-top: 2px;
}
.auth-form-fixed {
  position: absolute;
  inset: 0;
  display: grid !important;
  grid-template-rows: 76px 76px 172px 56px;
  gap: 4px !important;
  align-content: stretch;
  animation: authFormIn .25s ease;
}
.auth-form-fixed.hidden { display: none !important; }
.auth-form-fixed > label { align-self: start; }
.auth-form-extra {
  min-height: 0;
  height: 172px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: 10px 0 6px;
}
.auth-login-extra { justify-content: space-between; }
.auth-register-extra { justify-content: flex-start; }
.auth-remember {
  display: flex !important;
  grid-template-columns: none !important;
  flex-direction: row !important;
  align-items: center;
  gap: 9px !important;
  min-height: 32px;
  color: #eaf2fb;
  font-weight: 800;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.auth-remember input { width: 19px !important; height: 19px !important; min-height: 19px !important; flex: 0 0 19px; accent-color: #6277ff; }
.auth-remember > span { color: #eaf2fb !important; font-size: 12px !important; letter-spacing: 0 !important; text-transform: none !important; }
.auth-forgot-button { width: 100%; min-height: 82px; font-size: 15px; }
.auth-submit { align-self: end; min-height: 52px; }
.auth-message { margin-top: 10px !important; }
.auth-tabs { overflow: hidden !important; padding: 0 !important; }
.auth-tabs::before {
  left: 5px !important;
  width: calc((100% - 15px) / 2) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.1) !important;
}
.auth-tabs:has(#registerTab.active)::before { transform: translateX(calc(100% + 5px)) !important; }
body.legacy-auth-mode .auth-forgot-button { visibility: hidden !important; }

.auth-flow-overlay {
  position: fixed;
  inset: 0;
  z-index: 10080;
  display: grid;
  place-items: center;
  padding: 20px;
}
.auth-flow-overlay.hidden { display: none !important; }
.auth-flow-backdrop { position: absolute; inset: 0; border: 0; background: rgba(3,10,18,.78); backdrop-filter: blur(7px); }
.auth-flow-panel {
  position: relative;
  z-index: 1;
  width: min(470px, calc(100vw - 30px));
  padding: 28px;
  box-sizing: border-box;
  border: 3px solid #071116;
  border-radius: 20px;
  background: #102a46;
  box-shadow: 8px 8px 0 #071116;
  color: #fff;
}
.auth-flow-panel h2 { margin: 7px 0 8px; }
.auth-flow-panel > p { color: #bed0df; line-height: 1.55; }
.auth-flow-form { display: grid; gap: 14px; margin-top: 18px; }
.auth-flow-form label { display: grid; gap: 7px; }
.auth-flow-form label > span { color: #d7e6f2; font-size: 11px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.auth-flow-form input {
  width: 100%; min-height: 52px; padding: 0 14px; box-sizing: border-box;
  border: 3px solid #071116; border-radius: 12px; background: #091d31; color: #fff; font: inherit;
}
#registrationVerificationCode { text-align: center; font-size: 24px; font-weight: 1000; letter-spacing: .24em; }

.developer-auth-settings { display: grid; gap: 14px; }
.developer-auth-toggle { margin-top: 4px; }
.developer-backup-actions { display: flex; justify-content: flex-end; }
.developer-backup-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.developer-backup-grid article {
  display: grid; align-content: start; gap: 10px; padding: 16px; border: 3px solid #071116; border-radius: 14px;
  background: #102a46; box-shadow: 4px 4px 0 #071116;
}
.developer-backup-grid article > strong { color: #fff; font-size: 16px; }
.developer-backup-grid article > p { margin: 0; color: #bed0df; line-height: 1.5; }
.developer-backup-grid input[type="file"] { width: 100%; padding: 10px; box-sizing: border-box; border: 2px solid #071116; border-radius: 10px; background: #e9f1fb; color: #071116; }

.reset-password-page { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: #071522; color: #fff; }
.reset-password-shell { width: min(500px, 100%); }
.reset-password-panel { padding: 30px; border: 3px solid #071116; border-radius: 22px; background: #102a46; box-shadow: 8px 8px 0 #071116; }
.reset-password-panel h1 { margin: 6px 0 10px; }
.reset-password-panel > p { color: #bed0df; line-height: 1.55; }
.reset-password-form { display: grid; gap: 15px; margin-top: 20px; }
.reset-password-form label { display: grid; gap: 7px; }
.reset-password-form input { min-height: 52px; padding: 0 14px; border: 3px solid #071116; border-radius: 12px; background: #091d31; color: #fff; font: inherit; }
.reset-password-back { display: inline-flex; margin-top: 18px; color: #9fc0ff; font-weight: 900; }

@media (max-width: 760px) {
  .auth-box { min-height: 700px !important; height: 700px !important; }
  .auth-form-stage { flex-basis: 386px; height: 386px; min-height: 386px; }
  .auth-form-fixed { grid-template-rows: 72px 72px 174px 56px; }
  .auth-form-extra { height: 174px; }
  .auth-flow-panel { padding: 23px 18px; max-height: calc(100svh - 30px); overflow: auto; }
  .developer-backup-grid { grid-template-columns: 1fr; }
}

/* v0.9.25 account, moderation and inventory additions */
.settings-toggle {
  min-height: 42px;
  padding: 0 16px;
  border: 3px solid #111;
  border-radius: 10px;
  background: #73d7ff;
  color: #111;
  font: inherit;
  font-weight: 900;
  box-shadow: 4px 4px 0 #111;
  cursor: pointer;
}
.settings-toggle:hover { transform: translate(-1px,-1px); box-shadow: 5px 5px 0 #111; }

/* The two authentication panes remain mounted so their contents slide as a unit. */
.auth-form-stage {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
  padding-inline: 5px !important;
  box-sizing: border-box;
}
#authFormStage .auth-form-fixed,
#authFormStage .auth-form-fixed.hidden {
  display: grid !important;
  position: absolute !important;
  inset: 0 5px !important;
  width: calc(100% - 10px) !important;
  margin: 0 !important;
  opacity: 1;
  transition: transform .42s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
  will-change: transform, opacity;
}
#authFormStage.auth-stage-login #loginForm { transform: translateX(0); pointer-events: auto; }
#authFormStage.auth-stage-login #registerForm { transform: translateX(112%); opacity: 0; pointer-events: none; }
#authFormStage.auth-stage-register #loginForm { transform: translateX(-112%); opacity: 0; pointer-events: none; }
#authFormStage.auth-stage-register #registerForm { transform: translateX(0); pointer-events: auto; }

.account-center-overlay,
.player-report-overlay,
.admin-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: grid;
  place-items: center;
  padding: 24px;
}
.account-center-overlay.hidden,
.player-report-overlay.hidden,
.admin-modal-overlay.hidden { display: none !important; }
.account-center-panel,
.player-report-panel,
.admin-modal-panel {
  position: relative;
  z-index: 2;
  width: min(820px, calc(100vw - 32px));
  max-height: min(850px, calc(100vh - 32px));
  overflow: auto;
  padding: 26px;
  border: 4px solid #111;
  border-radius: 18px;
  background: #f6f1e7;
  box-shadow: 10px 10px 0 #111;
}
.account-center-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.account-center-head h2 { margin: 4px 0 0; }
.account-center-tabs { display:flex; gap:10px; flex-wrap:wrap; margin:22px 0; }
.account-center-tab {
  border:3px solid #111; border-radius:10px; padding:10px 14px; background:#fff; color:#111;
  font:inherit; font-weight:900; box-shadow:3px 3px 0 #111; cursor:pointer;
}
.account-center-tab.active { background:#c8ff38; transform:translate(-1px,-1px); box-shadow:4px 4px 0 #111; }
.account-center-pane.hidden { display:none !important; }
.account-form { display:grid; gap:14px; }
.account-form label, .admin-code-form label, .winnings-filter { display:grid; gap:6px; font-weight:800; }
.account-form input, .account-form select, .account-form textarea,
.admin-code-form input, .admin-code-form select, .admin-code-form textarea,
.winnings-filter input, .developer-table-filters select,
#adminPermissionsForm select {
  width:100%; min-height:44px; padding:10px 12px; border:3px solid #111; border-radius:9px;
  background:#fff; color:#111; font:inherit; box-sizing:border-box;
}
.account-form textarea, .admin-code-form textarea { resize:vertical; }
.account-news-list, .inventory-list, .developer-record-list, .developer-log-list { display:grid; gap:12px; }
.account-news-card, .inventory-card, .developer-record, .developer-log-entry {
  border:3px solid #111; border-radius:12px; background:#fff; padding:14px; box-shadow:4px 4px 0 #111;
}
.account-news-card h3, .inventory-card h3 { margin:0 0 6px; }
.account-news-card small, .inventory-card small, .developer-record small, .developer-log-entry small { opacity:.72; }
.inventory-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; }
.inventory-card .inventory-icon { font-size:2.2rem; }
.redeem-inline-result { min-height:24px; margin:0; padding-top:4px; }
.redeem-inline-result.success { color:#16723b; }
.redeem-inline-result.error { color:#a11; }
.profile-friend-actions { display:grid !important; grid-template-columns:1fr 1fr; gap:10px; }
.player-report-panel { width:min(620px, calc(100vw - 32px)); }

.shop-inline-message { margin:14px 0 0; min-height:22px; }
.shop-recipient-accordion {
  margin-bottom:14px; border:3px solid #111; border-radius:12px; background:#fff; box-shadow:4px 4px 0 #111; overflow:hidden;
}
.shop-recipient-accordion summary { display:flex; justify-content:space-between; gap:12px; padding:13px 15px; cursor:pointer; font-weight:900; list-style:none; }
.shop-recipient-accordion summary::-webkit-details-marker { display:none; }
.shop-recipient-picker { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; padding:0 14px 14px; }
.shop-recipient-option { border:3px solid #111; border-radius:9px; background:#fff; padding:10px; font:inherit; font-weight:800; cursor:pointer; }
.shop-recipient-option.active { background:#73d7ff; box-shadow:3px 3px 0 #111; }
.shop-asset-category-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.shop-asset-category-tabs button { border:2px solid #111; border-radius:999px; padding:8px 12px; background:#fff; font:inherit; font-weight:900; cursor:pointer; }
.shop-asset-category-tabs button.active { background:#ff7b68; }
.asset-items .shop-item-card { min-height:210px; }

/* Consistent Developer Center spacing and alignment. */
.developer-app > .admin-panel,
.developer-app > .developer-security,
.developer-app > .developer-game-controls,
.developer-app > details.admin-panel { margin-block: 16px !important; }
.developer-app > * + * { margin-top: 16px; }
.developer-backup-grid { align-items:stretch !important; }
.developer-backup-grid article { display:flex !important; flex-direction:column; gap:12px; }
.developer-backup-grid article > button { margin-top:auto !important; }
#adminBackupExport { align-self:stretch; }
.developer-security-copy h2,
.developer-security-copy p,
.developer-password-form > label > span,
.developer-password-current > span { color:#fff !important; }

.developer-collapsible-panel { padding:0 !important; overflow:hidden; }
.developer-collapsible-panel > summary {
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px;
  list-style:none; cursor:pointer; border-bottom:0 solid #111;
}
.developer-collapsible-panel[open] > summary { border-bottom-width:3px; }
.developer-collapsible-panel > summary::-webkit-details-marker { display:none; }
.developer-collapsible-panel > summary span { display:grid; gap:4px; }
.developer-collapsible-panel > summary small { font-weight:600; opacity:.7; }
.developer-collapsible-panel > summary i { font-style:normal; font-size:1.8rem; transition:transform .2s; }
.developer-collapsible-panel[open] > summary i { transform:rotate(45deg); }
.developer-collapsible-content { padding:20px; }
.developer-table-filters { display:grid; grid-template-columns:repeat(2,minmax(180px,260px)); gap:14px; margin:0 0 18px; }
.developer-table-filters label { display:grid; gap:6px; font-weight:900; }
.developer-table-row { grid-template-columns:minmax(240px,1.1fr) minmax(220px,1fr) auto !important; gap:18px !important; }
.developer-table-game { min-width:0; }
.developer-table-game > div { min-width:0; }
.developer-table-game small { display:block; white-space:normal !important; overflow-wrap:anywhere; margin-top:5px; }
.developer-room-code { display:inline-flex; margin-left:0 !important; margin-right:8px; }
.developer-table-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.game-availability-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
.game-availability-card { border:3px solid #111; border-radius:12px; padding:14px; background:#fff; box-shadow:4px 4px 0 #111; display:grid; gap:10px; }
.game-availability-card select { min-height:44px; border:3px solid #111; border-radius:8px; padding:8px; background:#fff; font:inherit; }
.admin-compact-form { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(260px,1.5fr) auto; gap:12px; align-items:start; margin-bottom:18px; }
.admin-compact-form input, .admin-compact-form textarea { border:3px solid #111; border-radius:9px; padding:10px 12px; background:#fff; font:inherit; }
.admin-code-form { display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)); gap:12px; align-items:end; margin-bottom:18px; }
.admin-code-form button { min-height:44px; }
.developer-record { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; }
.developer-record-actions { display:flex; gap:8px; flex-wrap:wrap; }
.developer-log-entry { display:grid; grid-template-columns:minmax(160px,.7fr) minmax(220px,1.4fr) auto; gap:14px; align-items:center; }
.developer-log-entry button { justify-self:end; }
.winnings-filter { min-width:180px; }
.admin-modal-panel { width:min(680px, calc(100vw - 32px)); }
.admin-permissions-panel { width:min(900px, calc(100vw - 32px)); }
#adminPermissionsForm { display:grid; gap:16px; }
.admin-permission-list { display:grid; grid-template-columns:repeat(2,minmax(250px,1fr)); gap:10px; max-height:440px; overflow:auto; padding:3px; }
.admin-permission-option { display:flex; gap:10px; align-items:flex-start; border:3px solid #111; border-radius:10px; padding:11px; background:#fff; }
.admin-permission-option input { margin-top:3px; }
.admin-enhanced-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.admin-enhanced-actions button { min-height:34px; }

.developer-observer-overlay { z-index:2300 !important; }
.developer-observer-panel { width:min(1180px, calc(100vw - 30px)) !important; max-height:calc(100vh - 30px) !important; overflow:auto; }
.observer-live-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr); gap:18px; }
.observer-table-stage, .observer-side-panel { display:grid; gap:14px; align-content:start; }
.observer-meta-grid { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:10px; }
.observer-meta-grid > div, .observer-card-section, .observer-player-card, .observer-chat, .observer-events {
  border:3px solid #111; border-radius:12px; background:#fff; padding:12px; box-shadow:4px 4px 0 #111;
}
.observer-meta-grid span { display:block; font-size:.78rem; opacity:.65; font-weight:900; text-transform:uppercase; }
.observer-card-row { display:flex; gap:7px; flex-wrap:wrap; margin-top:8px; }
.observer-playing-card { min-width:44px; padding:8px 7px; border:2px solid #111; border-radius:7px; background:#f6f1e7; text-align:center; font-weight:1000; }
.observer-player-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.observer-player-card.active { outline:5px solid #c8ff38; }
.observer-player-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.observer-player-name { border:0; background:transparent; padding:0; text-decoration:underline; font:inherit; font-weight:1000; cursor:pointer; color:#111; }
.observer-player-stats { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.observer-player-stats span { border:2px solid #111; border-radius:999px; padding:4px 8px; font-size:.8rem; font-weight:900; }
.observer-chat-list, .observer-event-list { display:grid; gap:8px; max-height:300px; overflow:auto; }
.observer-chat-line { border-bottom:1px solid #aaa; padding-bottom:7px; }
.observer-moderator-chat { display:grid; grid-template-columns:1fr auto; gap:10px; margin-top:18px; }
.observer-moderator-chat input { min-height:46px; border:3px solid #111; border-radius:9px; padding:10px 12px; font:inherit; }

.game-availability-badge { position:absolute; top:8px; right:8px; z-index:2; border:2px solid #111; border-radius:7px; background:#ff7b68; padding:4px 7px; font-size:.68rem; font-weight:1000; box-shadow:2px 2px 0 #111; }
.home-game-btn.game-unavailable { position:relative; filter:grayscale(.55); opacity:.72; cursor:not-allowed; }
.home-game-btn.game-hidden { display:none !important; }

@media (max-width: 850px) {
  .account-center-overlay,.player-report-overlay,.admin-modal-overlay { padding:10px; }
  .account-center-panel,.player-report-panel,.admin-modal-panel { width:calc(100vw - 20px); max-height:calc(100vh - 20px); padding:18px; box-shadow:6px 6px 0 #111; }
  .account-center-tabs { display:grid; grid-template-columns:repeat(2,1fr); }
  .profile-friend-actions { grid-template-columns:1fr; }
  .admin-compact-form,.admin-code-form { grid-template-columns:1fr; }
  .admin-permission-list { grid-template-columns:1fr; }
  .developer-table-filters { grid-template-columns:1fr; }
  .developer-table-row { grid-template-columns:1fr !important; }
  .developer-table-actions { justify-content:flex-start; }
  .developer-log-entry { grid-template-columns:1fr; }
  .developer-log-entry button { justify-self:start; }
  .observer-live-layout { grid-template-columns:1fr; }
  .observer-meta-grid { grid-template-columns:repeat(2,1fr); }
  .observer-moderator-chat { grid-template-columns:1fr; }
}

/* Settings and inventory use the same right-side drawer behavior as Social. */
.account-center-overlay { place-items: stretch end; padding: 0; }
.account-center-panel {
  width: min(590px, 100vw);
  height: 100vh;
  max-height: none;
  border-radius: 18px 0 0 18px;
  border-right: 0;
  box-shadow: -10px 0 0 rgba(17,17,17,.18);
}
.shop-recipient-accordion .shop-target-label { padding: 0 14px 14px; }
@media (max-width: 650px) {
  .account-center-panel { width: 100vw; border-radius: 0; border-left: 0; box-shadow: none; }
}

/* ================================================================
   V0.9.26 · Login-/Registrierungsfenster vollständig sichtbar
   Ausschließlich Layoutkorrektur für den Authentifizierungsdialog.
   ================================================================ */
.auth-gate {
  padding: 12px !important;
  align-items: center !important;
}

.auth-panel {
  height: min(760px, calc(100vh - 24px)) !important;
  min-height: 0 !important;
  max-height: calc(100vh - 24px) !important;
}

@supports (height: 100dvh) {
  .auth-panel {
    height: min(760px, calc(100dvh - 24px)) !important;
    max-height: calc(100dvh - 24px) !important;
  }
}

.auth-showcase,
.auth-box {
  min-height: 0 !important;
}

.auth-box {
  height: 100% !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scroll-padding-block: 18px;
}

.auth-form-stage {
  flex: 0 0 400px !important;
  width: 100% !important;
  height: 400px !important;
  min-height: 400px !important;
  padding: 4px 5px !important;
}

#authFormStage .auth-form-fixed,
#authFormStage .auth-form-fixed.hidden {
  inset: 4px 5px !important;
  width: calc(100% - 10px) !important;
  height: 392px !important;
}

#authFormStage .auth-primary-field,
#authFormStage .auth-password-field {
  min-width: 0 !important;
  overflow: visible !important;
}

#authFormStage .auth-form-fixed input {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 920px) {
  .auth-panel {
    width: min(540px, 100%) !important;
  }
}

@media (max-width: 520px) {
  .auth-gate {
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
    align-items: center !important;
  }
  .auth-panel {
    width: 100% !important;
    height: calc(100vh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    margin: 0 !important;
  }
  @supports (height: 100dvh) {
    .auth-panel {
      height: calc(100dvh - 16px) !important;
      max-height: calc(100dvh - 16px) !important;
    }
  }
  .auth-box {
    padding: 24px 18px 26px !important;
  }
  .auth-brand {
    margin-bottom: 16px !important;
  }
  .auth-lead {
    margin-bottom: 16px !important;
  }
  .auth-tabs {
    margin-bottom: 16px !important;
  }
}

/* ================================================================
   V0.9.27 · Login-/Registrierungsumschalter dauerhaft sichtbar
   Verhindert, dass die beiden Reiter im flexiblen Auth-Dialog auf
   wenige Pixel zusammengedrückt werden.
   ================================================================ */
.auth-brand,
.auth-box > h1,
.auth-lead,
.auth-tabs,
.auth-message,
.auth-fineprint,
.auth-support-link {
  flex-shrink: 0 !important;
}

.auth-tabs {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  flex: 0 0 54px !important;
  width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  max-height: 54px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.auth-tab {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 48px !important;
  min-height: 48px !important;
  visibility: visible !important;
  opacity: 1 !important;
  white-space: nowrap !important;
}

/* ================================================================
   V0.9.28 · Desktop-Registrierungsreiter zuverlässig sichtbar
   Nur Desktop: reserviert dem Umschalter eine feste eigene Zeile und
   verhindert, dass Formular oder Scrollbereich ihn überdecken.
   ================================================================ */
@media (min-width: 921px) {
  .auth-box {
    display: grid !important;
    grid-template-rows: auto auto auto 54px 422px auto auto auto !important;
    align-content: start !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .auth-tabs {
    position: relative !important;
    z-index: 30 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .auth-tab {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .auth-form-stage {
    position: relative !important;
    z-index: 1 !important;
    grid-row: 5 !important;
    margin-top: 22px !important;
  }
}

/* ================================================================
   V0.9.29 · Auth, dark Developer Center, stable hover states,
   persistent logs, live observation and asset presentation
   ================================================================ */

/* Desktop authentication: both panes fit without internal scrolling. */
@media (min-width: 921px) {
  .auth-gate {
    padding: 12px !important;
    align-items: center !important;
  }
  .auth-panel {
    width: min(1000px, calc(100vw - 24px)) !important;
    height: min(760px, calc(100dvh - 24px)) !important;
    min-height: 680px !important;
    max-height: calc(100dvh - 24px) !important;
    grid-template-columns: minmax(420px, 1.05fr) minmax(430px, .95fr) !important;
  }
  .auth-box {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 36px 40px 28px !important;
    overflow: hidden !important;
    scrollbar-gutter: auto !important;
  }
  .auth-brand { margin-bottom: 18px !important; }
  .auth-box > h1 { margin-bottom: 18px !important; }
  .auth-tabs {
    flex: 0 0 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 0 16px !important;
    padding: 5px !important;
    gap: 5px !important;
    box-sizing: border-box !important;
  }
  .auth-tab {
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    border-radius: 8px !important;
  }
  .auth-tabs::before {
    top: 5px !important;
    bottom: 5px !important;
    left: 5px !important;
    width: calc((100% - 15px) / 2) !important;
    height: auto !important;
  }
  .auth-tabs:has(#registerTab.active)::before {
    transform: translateX(calc(100% + 5px)) !important;
  }
  .auth-form-stage {
    position: relative !important;
    flex: 0 0 392px !important;
    width: 100% !important;
    height: 392px !important;
    min-height: 392px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    overflow: hidden !important;
  }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    inset: 0 8px !important;
    width: calc(100% - 16px) !important;
    height: 392px !important;
    grid-template-rows: 70px 70px 176px 54px !important;
    gap: 7px !important;
    align-content: start !important;
  }
  #authFormStage.auth-stage-login #registerForm { transform: translateX(108%) !important; }
  #authFormStage.auth-stage-register #loginForm { transform: translateX(-108%) !important; }
  .auth-form-extra { height: 176px !important; min-height: 176px !important; padding: 5px 0 !important; gap: 8px !important; }
  .auth-register-extra { justify-content: flex-start !important; }
  .avatar-fieldset { margin: 0 !important; padding: 8px 10px 10px !important; }
  .avatar-fieldset legend { margin-bottom: 3px !important; }
  .avatar-options { gap: 6px !important; }
  .avatar-option { width: 42px !important; height: 42px !important; min-height: 42px !important; font-size: 22px !important; }
  .auth-submit { min-height: 50px !important; }
  .auth-message { flex: 0 0 auto !important; min-height: 22px !important; margin: 8px 0 0 !important; }
  .auth-support-link { flex: 0 0 42px !important; min-height: 42px !important; margin-top: 8px !important; }
}

/* The top-left logo keeps a square aspect ratio and enough room. */
.topbar { width: min(1450px, calc(100% - 18px)) !important; }
.brand-wrap {
  display: grid !important;
  grid-template-columns: 50px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 230px !important;
}
.brand-mark {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  max-width: 50px !important;
  flex: 0 0 50px !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  transform: none !important;
}

/* Hover effects hold their final state instead of restarting in a loop. */
button,
[role="button"],
.shop-item-card,
.home-game-btn,
.chip,
.poker-player-row,
.poker-empty-seat {
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease, border-color .18s ease !important;
}
button:hover:not(:disabled),
[role="button"]:hover,
.primary-btn:hover,
.secondary-btn:hover,
.shop-toggle:hover,
.shop-tab:hover:not(:disabled),
.home-game-btn:hover:not(:disabled),
.chip:hover:not(:disabled),
.social-toggle:hover,
.settings-toggle:hover,
.poker-preaction:hover:not(:disabled),
.poker-empty-seat:hover:not(:disabled),
.poker-player-row:hover,
.roulette-cell:hover,
.developer-app button:hover:not(:disabled) {
  animation: none !important;
  animation-play-state: paused !important;
}
.home-game-btn:hover::after,
button:hover::before,
button:hover::after {
  animation: none !important;
}
.developer-app button:hover:not(:disabled),
.admin-modal-panel button:hover:not(:disabled),
.developer-observer-panel button:hover:not(:disabled) {
  transform: translate(-2px, -2px) !important;
  filter: brightness(1.08) !important;
  box-shadow: 6px 6px 0 #05070a !important;
}

/* Unified dark Developer Center surfaces. */
:root {
  --admin-bg: #0b111b;
  --admin-surface: #111a29;
  --admin-surface-2: #172235;
  --admin-border: #05070a;
  --admin-text: #f4f7fb;
  --admin-muted: #aeb9ca;
}
.developer-app,
.admin-modal-panel,
.developer-observer-panel {
  color: var(--admin-text) !important;
}
.developer-app .admin-panel,
.developer-app .developer-security,
.developer-app .developer-game-controls,
.developer-app .developer-collapsible-panel,
.admin-modal-panel,
.developer-observer-panel {
  background: var(--admin-surface) !important;
  color: var(--admin-text) !important;
  border-color: var(--admin-border) !important;
}
.developer-app h1,
.developer-app h2,
.developer-app h3,
.developer-app h4,
.developer-app strong,
.developer-app label,
.admin-modal-panel h2,
.admin-modal-panel strong,
.admin-modal-panel label,
.developer-observer-panel h2,
.developer-observer-panel h3,
.developer-observer-panel strong {
  color: var(--admin-text) !important;
}
.developer-app p,
.developer-app small,
.admin-modal-panel p,
.admin-modal-panel small,
.developer-observer-panel p,
.developer-observer-panel small {
  color: var(--admin-muted) !important;
}
.developer-app input:not([type="checkbox"]):not([type="radio"]),
.developer-app textarea,
.developer-app select,
.admin-modal-panel input:not([type="checkbox"]):not([type="radio"]),
.admin-modal-panel textarea,
.admin-modal-panel select,
.developer-observer-panel input,
.developer-observer-panel textarea,
.developer-observer-panel select {
  color: var(--admin-text) !important;
  background: #09111d !important;
  border: 3px solid var(--admin-border) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04) !important;
  caret-color: #c8ff3d !important;
}
.developer-app input::placeholder,
.developer-app textarea::placeholder,
.admin-modal-panel input::placeholder,
.admin-modal-panel textarea::placeholder,
.developer-observer-panel input::placeholder {
  color: #78869a !important;
}
.developer-app option,
.admin-modal-panel option,
.developer-observer-panel option {
  color: var(--admin-text) !important;
  background: #09111d !important;
}
.developer-record,
.developer-log-entry,
.game-availability-card,
.admin-permission-option,
.observer-meta-grid > div,
.observer-card-section,
.observer-player-card,
.observer-chat,
.observer-events,
.observer-raw-state,
.developer-backup-grid article,
.developer-table-row {
  color: var(--admin-text) !important;
  background: var(--admin-surface-2) !important;
  border-color: var(--admin-border) !important;
  box-shadow: 4px 4px 0 var(--admin-border) !important;
}
.developer-record p,
.developer-log-entry p,
.game-availability-card small,
.admin-permission-option small,
.observer-chat-line small {
  color: var(--admin-muted) !important;
}
.game-availability-card {
  position: relative !important;
  min-height: 116px !important;
  align-content: space-between !important;
}
.game-availability-card select {
  color: var(--admin-text) !important;
  background: #09111d !important;
}
.admin-permission-list { gap: 14px !important; padding: 6px !important; }
.admin-permission-option {
  min-height: 86px !important;
  gap: 13px !important;
  padding: 14px !important;
}
.admin-permission-option > span {
  display: grid !important;
  min-width: 0 !important;
  gap: 8px !important;
  line-height: 1.35 !important;
}
.admin-permission-option strong { display: block !important; }
.admin-permission-option .permission-key {
  display: inline-block !important;
  width: fit-content !important;
  padding: 4px 7px !important;
  border: 1px solid #40506a !important;
  border-radius: 6px !important;
  color: #9ccfff !important;
  background: #0a1321 !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  letter-spacing: .01em !important;
  overflow-wrap: anywhere !important;
}
#adminPermissionsForm > label:not(.developer-toggle) {
  display: grid !important;
  gap: 8px !important;
}
#adminPermissionsForm > label:not(.developer-toggle) > span { color: var(--admin-text) !important; }

/* Log panels can be collapsed, filtered, downloaded and deleted. */
.developer-log-panel { overflow: hidden !important; }
.developer-log-filters {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(170px, 1fr)) repeat(2, auto) !important;
  gap: 12px !important;
  align-items: end !important;
  margin: 0 0 18px !important;
  padding: 14px !important;
  border: 3px solid var(--admin-border) !important;
  border-radius: 12px !important;
  background: #0d1624 !important;
}
.developer-log-filters label {
  display: grid !important;
  gap: 7px !important;
  color: var(--admin-text) !important;
  font-weight: 900 !important;
}
.developer-log-filters input,
.developer-log-filters select { min-height: 46px !important; }
.developer-log-list { display: grid !important; gap: 12px !important; }
.developer-chat-log-entry { grid-template-columns: minmax(170px,.65fr) minmax(260px,1.6fr) auto !important; }
.moderator-log-badge {
  justify-self: end;
  padding: 7px 10px;
  border: 2px solid var(--admin-border);
  border-radius: 999px;
  color: #05070a;
  background: #c8ff3d;
  font-weight: 1000;
}

/* Live observation remains visible and receives a denser anti-cheat view. */
.developer-observer-panel {
  width: min(1280px, calc(100vw - 24px)) !important;
  height: min(900px, calc(100dvh - 24px)) !important;
  max-height: calc(100dvh - 24px) !important;
  overflow: auto !important;
  padding: 24px !important;
}
.observer-live-layout { grid-template-columns: minmax(0, 1.8fr) minmax(320px, .8fr) !important; }
.observer-meta-grid { grid-template-columns: repeat(4, minmax(120px,1fr)) !important; }
.observer-playing-card {
  color: #05070a !important;
  background: #f6f1e7 !important;
  border-color: #05070a !important;
  box-shadow: 2px 2px 0 #05070a !important;
}
.observer-player-name { color: #9fdcff !important; }
.observer-player-head > span {
  color: #05070a !important;
  background: #c8ff3d !important;
  border: 2px solid #05070a !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  font-size: .7rem !important;
  font-weight: 1000 !important;
}
.observer-player-stats span {
  color: var(--admin-text) !important;
  background: #0a1321 !important;
  border-color: #40506a !important;
}
.observer-hand-block {
  display: grid !important;
  gap: 7px !important;
  margin-top: 10px !important;
  padding: 10px !important;
  border: 2px solid #40506a !important;
  border-radius: 9px !important;
  background: #0d1624 !important;
}
.observer-chat-line {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 4px 8px !important;
  border-color: #334159 !important;
}
.observer-chat-line > small { grid-column: 1 / -1 !important; }
.observer-raw-state pre {
  max-height: 260px !important;
  overflow: auto !important;
  margin: 8px 0 0 !important;
  padding: 12px !important;
  border-radius: 8px !important;
  color: #c8ff3d !important;
  background: #050a12 !important;
  white-space: pre-wrap !important;
}
.observer-empty-value { color: var(--admin-muted) !important; }
.observer-moderator-chat input { color: var(--admin-text) !important; background: #09111d !important; }

/* Asset shop: real vector graphics, fixed image fields and aligned buttons. */
.asset-items {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: stretch !important;
}
.asset-items .shop-item-card {
  display: grid !important;
  grid-template-rows: 124px minmax(54px, auto) 28px 48px !important;
  gap: 10px !important;
  min-height: 304px !important;
  padding: 12px !important;
  align-content: stretch !important;
  color: #f4f7fb !important;
  background: #151f30 !important;
  border: 3px solid #05070a !important;
  box-shadow: 4px 4px 0 #05070a !important;
}
.shop-item-graphic {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 124px !important;
  overflow: hidden !important;
  border: 3px solid #05070a !important;
  border-radius: 11px !important;
  background: #f6f1e7 !important;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.35) !important;
}
.shop-item-graphic img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.shop-item-copy {
  display: grid !important;
  align-content: start !important;
  gap: 5px !important;
  min-width: 0 !important;
}
.shop-item-copy strong {
  color: #f4f7fb !important;
  line-height: 1.2 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
.shop-item-copy small { color: #aeb9ca !important; }
.shop-item-price { align-self: center !important; color: #c8ff3d !important; }
.asset-items .shop-item-card > button {
  align-self: end !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
}
.inventory-icon {
  display: grid !important;
  place-items: center !important;
  width: 104px !important;
  height: 72px !important;
  overflow: hidden !important;
  border: 2px solid #05070a !important;
  border-radius: 9px !important;
  background: #f6f1e7 !important;
}
.inventory-icon img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* Game status and private stickers never overlap. */
.home-game-btn { position: relative !important; }
.game-live-badge {
  top: 9px !important;
  left: 9px !important;
  right: auto !important;
  color: #05070a !important;
  background: #c8ff3d !important;
}
.game-availability-badge {
  top: 9px !important;
  right: 9px !important;
  left: auto !important;
  margin: 0 !important;
  transform: none !important;
  color: #05070a !important;
  background: #ff7b68 !important;
  line-height: 1 !important;
}
#findPokerPlayersButton .game-availability-badge {
  top: 9px !important;
  right: 9px !important;
  left: auto !important;
}
.home-game-btn .game-live-badge,
.home-game-btn .game-availability-badge { z-index: 5 !important; }

@media (max-width: 850px) {
  .developer-log-filters { grid-template-columns: 1fr !important; }
  .developer-chat-log-entry { grid-template-columns: 1fr !important; }
  .moderator-log-badge { justify-self: start !important; }
  .observer-live-layout { grid-template-columns: 1fr !important; }
  .observer-meta-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .asset-items { grid-template-columns: 1fr !important; }
}

/* ================================================================
   V0.9.29 final corrections: compact register view and dark admin UI
   ================================================================ */
@media (min-width: 921px) {
  .auth-panel {
    height: min(780px, calc(100dvh - 8px)) !important;
    max-height: calc(100dvh - 8px) !important;
    min-height: 0 !important;
  }
  .auth-box {
    padding: 24px 34px 20px !important;
  }
  .auth-brand { margin-bottom: 8px !important; }
  .auth-box > h1 {
    margin: 0 0 10px !important;
    font-size: clamp(3rem, 5.2vw, 4.2rem) !important;
    line-height: .91 !important;
  }
  .auth-tabs {
    flex-basis: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
    margin-bottom: 10px !important;
  }
  .auth-form-stage {
    flex-basis: 366px !important;
    height: 366px !important;
    min-height: 366px !important;
    padding: 0 16px !important;
  }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    inset: 0 16px !important;
    width: calc(100% - 32px) !important;
    height: 366px !important;
    grid-template-rows: 64px 64px 166px 50px !important;
    gap: 7px !important;
  }
  #authFormStage.auth-stage-login #registerForm { transform: translateX(112%) !important; }
  #authFormStage.auth-stage-register #loginForm { transform: translateX(-112%) !important; }
  .auth-form-extra {
    height: 166px !important;
    min-height: 166px !important;
    padding: 3px 0 !important;
  }
  .avatar-fieldset { padding: 6px 9px 8px !important; }
  .avatar-options { gap: 5px !important; }
  #registerAvatarPicker .avatar-option {
    min-width: 38px !important;
    width: 100% !important;
    min-height: 38px !important;
    height: 38px !important;
    font-size: 20px !important;
  }
  .auth-message { margin-top: 6px !important; min-height: 18px !important; }
  .auth-support-link { flex-basis: 36px !important; min-height: 36px !important; margin-top: 4px !important; }
}

@media (min-width: 921px) and (max-height: 735px) {
  .auth-box { padding-top: 14px !important; padding-bottom: 14px !important; }
  .auth-brand { transform: scale(.9); transform-origin: left center; margin-bottom: 2px !important; }
  .auth-box > h1 { font-size: 2.75rem !important; margin-bottom: 6px !important; }
  .auth-tabs { height: 44px !important; min-height: 44px !important; max-height: 44px !important; flex-basis: 44px !important; margin-bottom: 6px !important; }
  .auth-form-stage { flex-basis: 344px !important; height: 344px !important; min-height: 344px !important; }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    height: 344px !important;
    grid-template-rows: 58px 58px 164px 46px !important;
    gap: 6px !important;
  }
  .auth-form-extra { height: 164px !important; min-height: 164px !important; }
  .auth-message { margin-top: 3px !important; }
  .auth-support-link { flex-basis: 32px !important; min-height: 32px !important; }
}

/* Every visible Developer Center surface uses a non-glare dark background. */
.developer-app,
.developer-app .developer-shell,
.developer-app .developer-dashboard,
.developer-app .developer-content,
.developer-app .glass,
.developer-app details,
.developer-app details > summary,
.developer-app fieldset,
.developer-app .developer-settings-group,
.developer-app .admin-summary-card,
.developer-app .developer-tab-panel,
.developer-app .developer-table-list,
.developer-app .developer-log-list,
.developer-app .developer-record-list,
.admin-modal-panel,
.admin-modal-panel form,
.admin-modal-panel fieldset,
.developer-observer-panel,
.developer-observer-panel form {
  color: var(--admin-text) !important;
  background-color: var(--admin-surface) !important;
}
.developer-app details > summary,
.developer-app .developer-collapsible-content {
  border-color: var(--admin-border) !important;
}
.developer-app details > summary:hover {
  background-color: #172235 !important;
}
.developer-app input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.4) !important;
}
.developer-app input[type="checkbox"],
.admin-modal-panel input[type="checkbox"] {
  accent-color: #7f46ff !important;
}

/* Dark permission and availability cards with readable spacing. */
#adminPermissionList,
#adminGameAvailability,
#adminNewsList,
#adminCodeList,
#adminActivityLog,
#adminWinningsLog,
#adminChatLog {
  color: var(--admin-text) !important;
  background: transparent !important;
}
#adminPermissionList .admin-permission-option,
#adminGameAvailability .game-availability-card {
  color: var(--admin-text) !important;
  background: #172235 !important;
  border: 3px solid #05070a !important;
}
#adminPermissionList .admin-permission-option strong,
#adminGameAvailability .game-availability-card strong {
  color: #f4f7fb !important;
}
#adminPermissionList .admin-permission-option small {
  margin-top: 1px !important;
  color: #9ccfff !important;
}
#adminGameAvailability .game-availability-card select {
  width: 100% !important;
  color: #f4f7fb !important;
  background: #09111d !important;
}

/* Stable hover states: no finite/infinite animation restarts while pointer remains over an element. */
:is(button, [role="button"], .home-game-btn, .shop-item-card, .chip, .roulette-cell, .poker-player-row, .poker-empty-seat):hover {
  animation-name: none !important;
  animation-duration: 0s !important;
  animation-iteration-count: 1 !important;
}
:is(button, [role="button"], .home-game-btn, .shop-item-card, .chip, .roulette-cell, .poker-player-row, .poker-empty-seat):hover::before,
:is(button, [role="button"], .home-game-btn, .shop-item-card, .chip, .roulette-cell, .poker-player-row, .poker-empty-seat):hover::after {
  animation: none !important;
}

/* Keep availability/private labels anchored in opposite corners. */
.home-game-btn > .game-live-badge {
  top: 9px !important;
  left: 9px !important;
  right: auto !important;
  transform: none !important;
  color: #05070a !important;
}
.home-game-btn > .game-availability-badge,
#findPokerPlayersButton > .game-availability-badge {
  top: 9px !important;
  right: 9px !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  color: #05070a !important;
}

/* Preserve square logo proportions even in a crowded header. */
.brand-wrap { flex-shrink: 0 !important; }
.brand-mark { display: grid !important; place-items: center !important; line-height: 1 !important; }

/* Log controls remain readable and can wrap without touching. */
.developer-log-filters > button { min-height: 46px !important; }
.developer-log-panel + .developer-log-panel { margin-top: 16px !important; }

@media (min-width: 921px) {
  html:has(.auth-gate:not(.hidden)),
  body:has(.auth-gate:not(.hidden)) {
    height: 100% !important;
    overflow: hidden !important;
  }
  .auth-tabs { padding: 8px !important; gap: 8px !important; }
  .auth-tab { height: 34px !important; min-height: 34px !important; max-height: 34px !important; }
  .auth-tabs::before {
    top: 8px !important;
    bottom: 8px !important;
    left: 8px !important;
    width: calc((100% - 24px) / 2) !important;
  }
  .auth-tabs:has(#registerTab.active)::before {
    transform: translateX(calc(100% + 8px)) !important;
  }
  .auth-support-link {
    flex-basis: 48px !important;
    min-height: 48px !important;
    line-height: 1.15 !important;
    padding: 5px 12px !important;
  }
}

/* Observer uses the same dark, low-glare palette; card data stays readable. */
.developer-observer-panel .observer-playing-card {
  color: #f4f7fb !important;
  background: #0a1321 !important;
  border-color: #40506a !important;
  box-shadow: 2px 2px 0 #05070a !important;
}
.shop-item-graphic img,
.inventory-icon img { object-fit: contain !important; }

/* ================================================================
   V0.9.30 · Stable interactions, live logs, visual observer and UI fixes
   ================================================================ */

/* Button highlights remain static for the complete hover duration. */
button,
[role="button"],
.home-game-btn,
.shop-item-card,
.shop-target-option,
.shop-asset-category-tabs button,
.chip,
.roulette-cell,
.poker-player-row,
.poker-empty-seat {
  animation: none !important;
  animation-name: none !important;
}
button::before,
button::after,
[role="button"]::before,
[role="button"]::after,
.home-game-btn::before,
.home-game-btn::after,
.shop-item-card::before,
.shop-item-card::after {
  animation: none !important;
  animation-name: none !important;
}
button:hover:not(:disabled),
[role="button"]:hover:not([aria-disabled="true"]),
.home-game-btn:hover:not(:disabled),
.shop-item-card:hover,
.shop-target-option:hover:not(:disabled),
.shop-asset-category-tabs button:hover:not(:disabled) {
  animation: none !important;
  transform: translate(-2px, -2px) !important;
  filter: brightness(1.07) !important;
  box-shadow: 7px 7px 0 var(--wf-ink, #05070a) !important;
}
button:focus-visible,
[role="button"]:focus-visible {
  animation: none !important;
}
button:hover:not(:disabled) *,
[role="button"]:hover:not([aria-disabled="true"]) *,
.home-game-btn:hover:not(:disabled) *,
.shop-item-card:hover * {
  animation: none !important;
  animation-name: none !important;
}

/* Header logo keeps its intended square proportions. */
.brand-wrap {
  grid-template-columns: 50px minmax(0, 1fr) !important;
  min-width: 232px !important;
}
.brand-mark {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  min-height: 50px !important;
  aspect-ratio: 1 / 1 !important;
  flex: 0 0 50px !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Plus symbols sit exactly in the centre of their circular toggles. */
.developer-game-accordion > summary > i,
.developer-collapsible-panel > summary > i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 2px solid #05070a !important;
  border-radius: 50% !important;
  line-height: 1 !important;
  text-align: center !important;
  text-indent: 0 !important;
  font-size: 21px !important;
  font-style: normal !important;
  font-weight: 1000 !important;
  transform-origin: center !important;
}
.developer-game-accordion[open] > summary > i,
.developer-collapsible-panel[open] > summary > i {
  transform: rotate(45deg) !important;
}

/* Live logs: about five rows remain visible and additional rows scroll internally. */
.developer-log-list {
  display: grid !important;
  align-content: start !important;
  gap: 10px !important;
  height: 390px !important;
  min-height: 390px !important;
  max-height: 390px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
  padding: 4px 8px 4px 4px !important;
}
.developer-log-entry {
  min-height: 66px !important;
  box-sizing: border-box !important;
}
.developer-log-author {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  gap: 0 6px !important;
  min-width: 0 !important;
}
.developer-log-author strong,
.developer-log-author small {
  display: inline !important;
  margin: 0 !important;
}
.developer-log-author small {
  color: var(--admin-muted, #9eacc0) !important;
  white-space: nowrap !important;
}
.developer-log-entry-new {
  outline: 2px solid #c8ff3d !important;
  outline-offset: -2px !important;
  background: #18283a !important;
}

/* Player avatars are vertically centred in every chat message. */
.chat-message {
  align-items: center !important;
}
.chat-message > span {
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
}

/* Visual live table observer. */
.developer-observer-panel {
  width: min(1260px, calc(100vw - 24px)) !important;
  max-height: calc(100dvh - 24px) !important;
  color: #f4f7fb !important;
  background: #0b1220 !important;
}
.observer-table-stage {
  position: relative !important;
  min-width: 0 !important;
}
.observer-live-indicator {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: fit-content !important;
  padding: 7px 10px !important;
  border: 2px solid #05070a !important;
  border-radius: 999px !important;
  color: #05070a !important;
  background: #c8ff3d !important;
  box-shadow: 3px 3px 0 #05070a !important;
  font-size: .72rem !important;
  font-weight: 1000 !important;
  letter-spacing: .08em !important;
}
.observer-live-indicator > span {
  width: 9px !important;
  height: 9px !important;
  border-radius: 50% !important;
  background: #e6354d !important;
  box-shadow: 0 0 0 4px rgba(230,53,77,.18) !important;
}
.observer-visual-table {
  position: relative !important;
  display: grid !important;
  gap: 14px !important;
  min-height: 430px !important;
  padding: 26px !important;
  overflow: hidden !important;
  border: 5px solid #05070a !important;
  border-radius: 42% / 18% !important;
  color: #f4f7fb !important;
  background:
    radial-gradient(circle at 50% 44%, rgba(200,255,61,.12), transparent 34%),
    linear-gradient(145deg, #143d2d, #0a241b) !important;
  box-shadow: inset 0 0 0 4px #6d46ff, 8px 8px 0 #05070a !important;
}
.observer-board-poker .observer-visual-table {
  background:
    radial-gradient(circle at 50% 45%, rgba(107,70,255,.25), transparent 38%),
    linear-gradient(145deg, #154332, #081f18) !important;
}
.observer-board-blackjack .observer-visual-table,
.observer-board-blackjack .observer-solo-game {
  background:
    radial-gradient(circle at 50% 42%, rgba(200,255,61,.12), transparent 38%),
    linear-gradient(145deg, #173e2e, #0b251c) !important;
}
.observer-meta-grid > div,
.observer-card-section,
.observer-player-card,
.observer-chat,
.observer-events {
  color: #f4f7fb !important;
  background: #111b2b !important;
  border-color: #05070a !important;
}
.observer-card-section {
  justify-self: center !important;
  width: min(520px, 100%) !important;
  text-align: center !important;
}
.observer-community-zone {
  margin-inline: auto !important;
}
.observer-player-grid {
  position: relative !important;
  z-index: 2 !important;
  align-self: end !important;
  width: 100% !important;
}
.observer-playing-card {
  display: inline-grid !important;
  grid-template-rows: auto 1fr !important;
  place-items: center !important;
  width: 48px !important;
  min-width: 48px !important;
  height: 68px !important;
  padding: 5px !important;
  border: 2px solid #05070a !important;
  border-radius: 8px !important;
  color: #111827 !important;
  background: #f8f3e8 !important;
  box-shadow: 3px 3px 0 #05070a !important;
  line-height: 1 !important;
}
.observer-playing-card.red { color: #c72f43 !important; }
.observer-playing-card b { font-size: 1rem !important; }
.observer-playing-card i { font-size: 1.2rem !important; font-style: normal !important; }
.observer-solo-game {
  display: grid !important;
  gap: 16px !important;
  width: 100% !important;
  min-height: 330px !important;
  padding: 22px !important;
  border: 3px solid #05070a !important;
  border-radius: 24px !important;
  color: #f4f7fb !important;
  background: #10281f !important;
  box-shadow: 5px 5px 0 #05070a !important;
}
.observer-blackjack-live {
  grid-template-rows: auto 1fr !important;
}
.observer-blackjack-live .observer-dealer-zone,
.observer-blackjack-live .observer-player-zone {
  display: grid !important;
  justify-items: center !important;
  gap: 9px !important;
  padding: 14px !important;
  border: 2px solid rgba(255,255,255,.18) !important;
  border-radius: 18px !important;
  background: rgba(4,10,8,.22) !important;
}
.observer-roulette-live {
  grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr) !important;
  align-items: center !important;
}
.observer-roulette-wheel {
  width: min(260px, 100%) !important;
  aspect-ratio: 1 / 1 !important;
  margin: auto !important;
  padding: 18px !important;
  border: 5px solid #05070a !important;
  border-radius: 50% !important;
  background: repeating-conic-gradient(#d73a48 0 9.7deg, #111827 9.7deg 19.4deg, #1e8a51 19.4deg 29.1deg) !important;
  box-shadow: 7px 7px 0 #05070a !important;
}
.observer-roulette-ring {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  border: 5px solid #05070a !important;
  border-radius: 50% !important;
  background: #f6f1e7 !important;
}
.observer-roulette-ring span,
.observer-result-number {
  color: #05070a !important;
  font-size: clamp(2rem, 5vw, 4rem) !important;
  font-weight: 1000 !important;
}
.observer-solo-copy {
  display: grid !important;
  gap: 12px !important;
}
.observer-live-bets {
  display: grid !important;
  gap: 7px !important;
  max-height: 190px !important;
  overflow-y: auto !important;
}
.observer-live-bets > span {
  display: flex !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 8px 10px !important;
  border: 2px solid #334159 !important;
  border-radius: 9px !important;
  background: #0a1321 !important;
}
.observer-slot-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 12px 14px !important;
  border: 2px solid #05070a !important;
  border-radius: 15px !important;
  color: #05070a !important;
  background: #c8ff3d !important;
}
.observer-slot-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: min(520px, 100%) !important;
  margin: auto !important;
  padding: 14px !important;
  border: 4px solid #05070a !important;
  border-radius: 20px !important;
  background: #6d46ff !important;
  box-shadow: 6px 6px 0 #05070a !important;
}
.observer-slot-grid > span {
  display: grid !important;
  place-items: center !important;
  min-height: 76px !important;
  border: 3px solid #05070a !important;
  border-radius: 13px !important;
  color: #05070a !important;
  background: #f6f1e7 !important;
  font-size: 2rem !important;
  font-weight: 1000 !important;
}

/* Desktop register view: safe slider inset and evenly spaced content without scrolling. */
@media (min-width: 921px) {
  .auth-panel {
    height: min(800px, calc(100dvh - 16px)) !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 16px) !important;
  }
  .auth-box {
    padding: 22px 34px 18px !important;
    overflow: hidden !important;
  }
  .auth-brand { margin-bottom: 8px !important; }
  .auth-box > h1 {
    margin: 0 0 12px !important;
    font-size: clamp(2.85rem, 4.6vw, 4rem) !important;
  }
  .auth-tabs {
    flex: 0 0 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 0 14px !important;
    padding: 8px !important;
    gap: 8px !important;
    overflow: hidden !important;
  }
  .auth-tab {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
  }
  .auth-tabs::before {
    top: 8px !important;
    bottom: 8px !important;
    left: 8px !important;
    width: calc((100% - 24px) / 2) !important;
    height: auto !important;
    box-shadow: none !important;
  }
  .auth-tabs:has(#registerTab.active)::before {
    transform: translateX(calc(100% + 8px)) !important;
  }
  .auth-form-stage {
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 360px !important;
    max-height: 420px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    overflow: hidden !important;
  }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    inset: 0 14px !important;
    width: calc(100% - 28px) !important;
    height: 100% !important;
    grid-template-rows: 64px 64px minmax(154px, 1fr) 52px !important;
    gap: 12px !important;
    align-content: stretch !important;
  }
  #authFormStage.auth-stage-login #registerForm {
    transform: translateX(calc(100% + 48px)) !important;
  }
  #authFormStage.auth-stage-register #loginForm {
    transform: translateX(calc(-100% - 48px)) !important;
  }
  #authFormStage.auth-stage-login #loginForm,
  #authFormStage.auth-stage-register #registerForm {
    transform: translateX(0) !important;
  }
  .auth-form-extra {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    gap: 10px !important;
  }
  .auth-register-extra {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    align-content: stretch !important;
  }
  .avatar-fieldset {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 8px 10px 9px !important;
  }
  .avatar-options {
    gap: 7px !important;
    align-content: center !important;
  }
  #registerAvatarPicker .avatar-option {
    min-width: 40px !important;
    width: 100% !important;
    height: 40px !important;
    min-height: 40px !important;
  }
  .auth-message {
    min-height: 18px !important;
    margin: 7px 0 0 !important;
  }
  .auth-support-link {
    flex-basis: 40px !important;
    min-height: 40px !important;
    margin-top: 6px !important;
  }
}
@media (min-width: 921px) and (max-height: 760px) {
  .auth-box { padding-top: 14px !important; padding-bottom: 12px !important; }
  .auth-brand { margin-bottom: 4px !important; }
  .auth-box > h1 { margin-bottom: 8px !important; font-size: 2.65rem !important; }
  .auth-tabs { margin-bottom: 9px !important; }
  .auth-form-stage { min-height: 338px !important; max-height: 360px !important; }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    grid-template-rows: 56px 56px minmax(146px, 1fr) 48px !important;
    gap: 9px !important;
  }
  #registerAvatarPicker .avatar-option { height: 36px !important; min-height: 36px !important; }
}

/* Active game labels keep fixed corners; Quick Match follows the same geometry. */
.home-game-btn {
  position: relative !important;
  overflow: hidden !important;
}
.home-game-btn > .game-live-badge {
  top: 10px !important;
  left: 10px !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
}
.home-game-btn > .game-availability-badge,
#findPokerPlayersButton > .game-availability-badge {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 !important;
  transform: none !important;
  color: #05070a !important;
  line-height: 1 !important;
  z-index: 12 !important;
}
#findPokerPlayersButton {
  position: relative !important;
  padding-top: 38px !important;
}
.home-game-btn.game-beta {
  opacity: 1 !important;
  filter: none !important;
  cursor: pointer !important;
}
.home-game-btn.game-beta > .game-availability-badge {
  color: #05070a !important;
  background: #c8ff3d !important;
}

/* Shop contrast. */
.shop-asset-category-tabs button {
  color: #ffffff !important;
  background: #111827 !important;
  border-color: #05070a !important;
}
.shop-asset-category-tabs button.active {
  color: #ffffff !important;
  background: #6d46ff !important;
}
.shop-recipient-accordion {
  color: #f4f7fb !important;
  background: #111827 !important;
  border-color: #05070a !important;
}
.shop-recipient-accordion > summary {
  color: #f4f7fb !important;
  background: #111827 !important;
}
.shop-recipient-accordion > summary strong,
.shop-recipient-accordion > summary span {
  color: #f4f7fb !important;
}
.shop-recipient-accordion .shop-target-label,
.shop-recipient-accordion .shop-target-picker {
  color: #f4f7fb !important;
  background: #0b1220 !important;
}
.shop-target-option {
  color: #f4f7fb !important;
  background: #172235 !important;
  border-color: #40506a !important;
}
.shop-target-option.selected {
  color: #05070a !important;
  background: #c8ff3d !important;
  border-color: #05070a !important;
}

/* Slots spacing and a rounded Midnight Spades header instead of the green rectangle. */
.slots-bet-display {
  padding: 10px 14px !important;
  box-sizing: border-box !important;
}
.slots-bet-display span,
.slots-bet-display strong {
  margin: 0 !important;
}
.slots-machine-head {
  position: relative !important;
  width: min(660px, calc(100% - 24px)) !important;
  max-width: 660px !important;
  padding: 18px 24px 17px 34px !important;
  overflow: hidden !important;
  border: 3px solid #05070a !important;
  border-radius: 24px !important;
  color: #f4f7fb !important;
  background: linear-gradient(145deg, #151d2b, #0b1220) !important;
  box-shadow: 6px 6px 0 #05070a !important;
  text-align: left !important;
}
.slots-machine-head::before {
  content: "" !important;
  position: absolute !important;
  left: -42px !important;
  top: 50% !important;
  width: 88px !important;
  height: 88px !important;
  border: 3px solid #05070a !important;
  border-radius: 50% !important;
  background: #c8ff3d !important;
  transform: translateY(-50%) !important;
}
.slots-machine-head > * {
  position: relative !important;
  z-index: 1 !important;
}
.slots-machine-head .eyebrow { color: #c8ff3d !important; }
.slots-machine-head h2 { color: #f4f7fb !important; }
.slots-machine-head p { color: #b9c4d4 !important; }


@media (max-width: 850px) {
  .developer-log-list {
    height: 350px !important;
    min-height: 350px !important;
    max-height: 350px !important;
  }
  .observer-roulette-live {
    grid-template-columns: 1fr !important;
  }
  .observer-visual-table {
    min-height: 360px !important;
    padding: 16px !important;
    border-radius: 26px !important;
  }
}

/* === Neon Poker v0.9.31: dark account surfaces, stable overlays and focused layout fixes === */

/* Settings fields use the same non-glare dark treatment everywhere. */
.account-center-panel,
.account-center-panel .account-center-pane,
.account-center-panel .account-form,
.account-center-panel .account-news-list,
.account-center-panel .inventory-list,
.shop-panel,
.shop-panel .shop-pane,
.player-report-panel,
.admin-modal-panel {
  color: #f4f7fb !important;
  background: #0b1220 !important;
}
.account-center-panel input,
.account-center-panel select,
.account-center-panel textarea,
#developerApp input,
#developerApp select,
#developerApp textarea,
.admin-modal-panel input,
.admin-modal-panel select,
.admin-modal-panel textarea,
.player-report-panel input,
.player-report-panel select,
.player-report-panel textarea {
  color: #ffffff !important;
  caret-color: #c8ff3d !important;
  background: #09111d !important;
  border-color: #40506a !important;
  box-shadow: none !important;
}
.account-center-panel input::placeholder,
.account-center-panel textarea::placeholder,
#developerApp input::placeholder,
#developerApp textarea::placeholder,
.admin-modal-panel input::placeholder,
.admin-modal-panel textarea::placeholder,
.player-report-panel input::placeholder,
.player-report-panel textarea::placeholder {
  color: #8e9bad !important;
  opacity: 1 !important;
}
.account-center-panel option,
#developerApp option,
.admin-modal-panel option,
.player-report-panel option {
  color: #ffffff !important;
  background: #09111d !important;
}

/* The shop and inventory no longer introduce white or cream cards. */
#shopOverlay,
#shopOverlay .shop-backdrop {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.shop-wallets > *,
.shop-item,
.shop-item:nth-child(n),
.shop-item-card,
.shop-item-card:nth-child(n),
.shop-item-graphic,
.cash-pack,
.shop-target-picker,
.shop-target-label select,
.shop-recipient-accordion,
.shop-recipient-accordion > summary,
.shop-recipient-option,
.shop-target-option,
.account-news-card,
.inventory-card,
.inventory-icon,
.account-center-panel .leaderboard-empty {
  color: #f4f7fb !important;
  background: #172235 !important;
  border-color: #40506a !important;
}
.shop-item-graphic,
.inventory-icon {
  background: #09111d !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06) !important;
}
.shop-item-copy strong,
.shop-item-card strong,
.inventory-card h3,
.account-news-card h3,
.shop-panel h2,
.shop-panel h3,
.account-center-panel h2,
.account-center-panel h3,
.account-center-panel label,
.account-center-panel legend {
  color: #f4f7fb !important;
}
.shop-item-copy small,
.inventory-card small,
.account-news-card small,
.shop-panel p,
.account-center-panel p {
  color: #aeb9ca !important;
}
.shop-tabs,
.shop-asset-category-tabs {
  background: transparent !important;
}
.shop-tab,
.shop-asset-category-tabs button,
.account-center-tab {
  color: #eef3fa !important;
  background: #2a3950 !important;
  border-color: #53657f !important;
}
.shop-tab:hover:not(:disabled),
.shop-asset-category-tabs button:hover:not(:disabled),
.account-center-tab:hover:not(:disabled) {
  color: #ffffff !important;
  background: #354965 !important;
}
.shop-tab.active,
.shop-asset-category-tabs button.active,
.account-center-tab.active {
  color: #ffffff !important;
  background: #6d46ff !important;
  border-color: #05070a !important;
}
.shop-recipient-option.active,
.shop-target-option.selected {
  color: #05070a !important;
  background: #c8ff3d !important;
  border-color: #05070a !important;
}
.shop-inline-message,
#shopMessage {
  min-height: 42px !important;
  padding: 10px 12px !important;
  border: 1px solid #40506a !important;
  border-radius: 10px !important;
  color: #dce5f1 !important;
  background: #101b2b !important;
}
.shop-inline-message.success,
#shopMessage.success {
  color: #dfffb0 !important;
  border-color: #4f8e31 !important;
  background: #13261a !important;
}

/* Shop and account settings slide in exactly like the rules rail. */
@keyframes neonSideRailIn031 {
  from { transform: translateX(108%); }
  to { transform: translateX(0); }
}
#shopOverlay.shop-overlay,
#accountCenterOverlay.account-center-overlay {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: stretch !important;
  padding: 0 !important;
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
#shopOverlay.shop-overlay.hidden,
#accountCenterOverlay.account-center-overlay.hidden {
  display: none !important;
}
#shopOverlay .shop-panel,
#accountCenterOverlay .account-center-panel {
  height: 100dvh !important;
  max-height: 100dvh !important;
  margin: 0 !important;
  border-radius: 28px 0 0 28px !important;
  animation: neonSideRailIn031 .34s cubic-bezier(.2,.78,.2,1) both !important;
  transform-origin: right center !important;
}
#shopOverlay .shop-panel { width: min(390px, 100vw) !important; }
#accountCenterOverlay .account-center-panel { width: min(520px, 100vw) !important; }
#shopOverlay .shop-backdrop,
#accountCenterOverlay .social-backdrop {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Auth slider is positional only: no hover lift, equal inner margins. */
.auth-tab,
.auth-tab:hover,
.auth-tab:focus,
.auth-tab:active {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
  animation: none !important;
}
@media (min-width: 921px) {
  .auth-tabs::before {
    left: 8px !important;
    width: calc(50% - 12px) !important;
  }
  .auth-tabs:has(#registerTab.active)::before {
    transform: translateX(calc(100% + 8px)) !important;
  }
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    grid-template-rows: 64px 64px 128px 52px !important;
    gap: 12px !important;
  }
  .auth-register-extra {
    grid-template-rows: auto auto !important;
    align-content: start !important;
    gap: 8px !important;
  }
  .avatar-fieldset {
    padding: 6px 9px !important;
  }
  .avatar-options {
    gap: 6px !important;
    align-content: center !important;
  }
  #registerAvatarPicker .avatar-option {
    height: 36px !important;
    min-height: 36px !important;
  }
}
@media (min-width: 921px) and (max-height: 760px) {
  #authFormStage .auth-form-fixed,
  #authFormStage .auth-form-fixed.hidden {
    grid-template-rows: 56px 56px 120px 48px !important;
  }
  #registerAvatarPicker .avatar-option {
    height: 34px !important;
    min-height: 34px !important;
  }
}

/* Keep refreshed player controls stable under the pointer. */
#adminUserRows button,
#adminUserRows button:hover,
#adminUserRows button:focus-visible {
  animation: none !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease, background-color .16s ease !important;
}

/* Restore the original solo Blackjack geometry; only the dealt player cards rise above neighboring layers. */
#gameApp .solo-private-player-seat {
  z-index: 72 !important;
  overflow: visible !important;
  clip-path: none !important;
}
#gameApp .solo-private-player-seat .hands-grid,
#gameApp .solo-private-player-seat .player-hand,
#gameApp .solo-private-player-seat .hand-cards,
#gameApp .solo-private-player-seat .card-row {
  position: relative !important;
  overflow: visible !important;
  clip-path: none !important;
}
#gameApp .solo-private-player-seat .hands-grid,
#gameApp .solo-private-player-seat .player-hand,
#gameApp .solo-private-player-seat .hand-cards,
#gameApp .solo-private-player-seat .card-row { z-index: 73 !important; }
#gameApp .solo-private-player-seat .playing-card { position: relative !important; z-index: 74 !important; }

/* Midnight Spades no longer has the green decorative semicircle. */
.slots-machine-head::before {
  content: none !important;
  display: none !important;
}
.slots-machine-head {
  padding-left: 24px !important;
}


/* ================================================================
   V0.9.32 · Referrals, guilds, panel transitions and table refinements
   ================================================================ */

/* Auth tabs: no sliding colour plate. The buttons themselves carry the colour. */
.auth-tabs::before {
  content: none !important;
  display: none !important;
}
.auth-tabs {
  gap: 8px !important;
  padding: 6px !important;
  overflow: visible !important;
  background: #0d1726 !important;
}
.auth-tabs .auth-tab {
  position: relative !important;
  z-index: 1 !important;
  border: 2px solid #071116 !important;
  border-radius: 10px !important;
  color: #fff !important;
  opacity: .82;
  box-shadow: 2px 2px 0 #071116 !important;
}
.auth-tabs #loginTab { background: #3578e5 !important; }
.auth-tabs #registerTab { background: #7a43df !important; }
.auth-tabs .auth-tab.active {
  opacity: 1;
  filter: brightness(1.12) !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
.auth-tabs .auth-tab:hover,
.auth-tabs .auth-tab:focus-visible,
.auth-tabs .auth-tab:active {
  transform: none !important;
  animation: none !important;
}

/* The shop and Settings rail close with the exact reverse of their entrance. */
@keyframes neonSideRailOut032 {
  from { transform: translateX(0); }
  to { transform: translateX(108%); }
}
#shopOverlay.is-closing .shop-panel,
#accountCenterOverlay.is-closing .account-center-panel {
  animation: neonSideRailOut032 .34s cubic-bezier(.4,0,.8,.22) both !important;
  pointer-events: none !important;
}

/* Player-center navigation can contain the added community sections without crowding. */
.account-center-tabs {
  display: flex !important;
  gap: 7px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 2px 8px !important;
  scrollbar-width: thin;
}
.account-center-tab { flex: 0 0 auto !important; }
.account-center-pane { overflow: auto !important; }

.referral-panel-card,
.guild-card,
.guild-invite-card,
.guild-directory-head,
.guild-management-actions {
  border: 3px solid #071116;
  border-radius: 14px;
  background: #101c2d;
  box-shadow: 4px 4px 0 #071116;
  color: #fff;
}
.referral-panel-card { padding: 18px; display: grid; gap: 14px; }
.referral-panel-card h3,
.guild-card h3,
.guild-directory-head h3 { margin: 0; color: #fff; }
.referral-panel-card p,
.guild-card p { margin: 0; color: #bdcada; }
.referral-panel-card label,
.guild-pane label { display: grid; gap: 7px; color: #fff; font-weight: 900; }
.referral-code-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; }
.referral-code-row input,
.guild-pane input,
.guild-pane select {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
  border: 3px solid #071116;
  border-radius: 10px;
  background: #0b1524;
  color: #fff;
  padding: 0 12px;
  font: inherit;
  font-weight: 850;
  box-shadow: 3px 3px 0 #071116;
}
.referral-code-row input { letter-spacing: .18em; text-transform: uppercase; }
.guild-pane { display: grid; gap: 14px; }
.guild-create-form,
.guild-invite-form { margin: 0 !important; }
.guild-invite-list,
.guild-directory { display: grid; gap: 12px; }
.guild-invite-card { padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.guild-invite-card div { display: grid; gap: 4px; }
.guild-invite-card small { color: #b8c7d7; }
.guild-directory-head { padding: 14px; display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,260px); align-items: end; gap: 12px; }
.guild-card { padding: 15px; display: grid; gap: 11px; }
.guild-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.guild-card > header > b { color: #d7ff70; white-space: nowrap; }
.guild-member-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 270px; overflow: auto; }
.guild-member-list > li { display: flex; align-items: center; gap: 8px; padding: 8px; border: 2px solid #23364b; border-radius: 10px; background: #0b1524; }
.guild-profile-link { flex: 1 1 auto; min-width: 0; display: grid; grid-template-columns: 34px minmax(0,1fr) auto auto; align-items: center; gap: 8px; border: 0 !important; background: transparent !important; box-shadow: none !important; color: #fff !important; padding: 0 !important; text-align: left; }
.guild-profile-link > span { width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid #071116; border-radius: 50%; background: #263c54; }
.guild-profile-link b { overflow: hidden; text-overflow: ellipsis; }
.guild-profile-link small { color: #a9bdd1; }
.guild-profile-link em { padding: 2px 6px; border-radius: 999px; background: #d7ff70; color: #071116; font-style: normal; font-size: .65rem; font-weight: 1000; }
.guild-member-actions { display: flex; align-items: center; gap: 6px; }
.guild-member-actions select { min-height: 34px; width: 118px; font-size: .76rem; }
.guild-small-action { min-height: 34px !important; padding: 5px 8px !important; font-size: .7rem !important; }
.guild-management-actions { padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.guild-management-actions p { margin: 0; color: #bdcada; }

/* Keep single-player Blackjack status below the dealer cards, never on top of them. */
@media (min-width: 801px) {
  #gameApp .solo-private-dealer-seat {
    overflow: visible !important;
    z-index: 45 !important;
  }
  #gameApp .solo-private-dealer-seat .card-row {
    overflow: visible !important;
    position: relative !important;
    z-index: 46 !important;
  }
  #gameApp .center-status {
    position: absolute !important;
    top: 166px !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateX(-50%) !important;
    z-index: 44 !important;
    pointer-events: none !important;
  }
}
@media (max-width: 800px) {
  #gameApp .center-status {
    top: 220px !important;
    z-index: 44 !important;
  }
}

/* Observer tables remain fully reachable and never get clipped by the modal. */
.developer-observer-panel {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
#developerObserverContent {
  min-height: 0 !important;
  overflow: auto !important;
  padding: 2px 4px 10px 2px !important;
}
.observer-live-layout,
.observer-table-stage,
.observer-visual-table,
.observer-player-grid {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.observer-roulette-live { align-items: center !important; }
.observer-roulette-bets { width: min(420px,100%); max-height: 230px; overflow: auto; }

@media (max-width: 700px) {
  .guild-directory-head { grid-template-columns: 1fr; }
  .guild-member-list > li { align-items: stretch; flex-direction: column; }
  .guild-member-actions { width: 100%; justify-content: flex-end; flex-wrap: wrap; }
}

/* ================================================================
   V0.9.33 · Developer bot-management controls in Player Settings
   ================================================================ */
#accountCenterOverlay .account-center-panel:has(.bot-management-pane:not(.hidden)) {
  width: min(1120px, calc(100vw - 20px)) !important;
}
.bot-management-pane {
  min-height: 0 !important;
  padding: 0 4px 12px 0 !important;
  color: #f4f7fb !important;
  background: #0b1220 !important;
}
.bot-management-shell {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.bot-management-hero,
.bot-management-actions,
.bot-settings-group,
.bot-save-footer {
  border: 3px solid #071116;
  border-radius: 16px;
  background: #111d2e !important;
  box-shadow: 5px 5px 0 #071116;
}
.bot-management-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(360px,.9fr);
  align-items: center;
  gap: 18px;
  padding: 18px;
}
.bot-management-hero h3 { margin: 3px 0 7px; font-size: 1.6rem; color: #fff !important; }
.bot-management-hero p { margin: 0; color: #aeb9ca !important; }
.bot-summary-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 9px;
}
.bot-summary-grid article {
  display: grid;
  place-items: center;
  min-height: 78px;
  padding: 9px;
  border: 2px solid #40506a;
  border-radius: 12px;
  text-align: center;
  background: #09111d !important;
}
.bot-summary-grid strong { color: #c8ff3d !important; font-size: 1.15rem; }
.bot-summary-grid span { color: #aeb9ca; font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.bot-management-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  padding: 13px;
}
.bot-management-actions > button { flex: 1 1 145px; min-height: 42px; }
.bot-settings-form { display: grid; gap: 15px; }
.bot-settings-group {
  overflow: clip;
  color: #f4f7fb !important;
}
.bot-settings-group > summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 62px;
  padding: 12px 52px 12px 16px;
  cursor: pointer;
  list-style: none;
  color: #fff !important;
  background: #17263a !important;
  border-bottom: 0 solid #071116;
}
.bot-settings-group[open] > summary { border-bottom-width: 3px; }
.bot-settings-group > summary::-webkit-details-marker { display: none; }
.bot-settings-group > summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 15px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
  border: 2px solid #071116;
  border-radius: 50%;
  color: #071116;
  background: #c8ff3d;
  font-size: 20px;
  font-weight: 1000;
  line-height: 1;
}
.bot-settings-group[open] > summary::after { content: "−"; }
.bot-settings-group > summary span { font-weight: 1000; }
.bot-settings-group > summary small { color: #aeb9ca !important; text-align: right; }
.bot-setting-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
  padding: 16px;
  background: #0d1726 !important;
}
.bot-setting-grid > label,
.bot-account-settings > label {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 12px;
  border: 2px solid #33445d;
  border-radius: 12px;
  color: #f4f7fb !important;
  background: #111e30 !important;
}
.bot-setting-grid > label > span,
.bot-account-settings > label > span {
  color: #e8eef7 !important;
  font-size: .78rem;
  font-weight: 900;
  line-height: 1.25;
}
.bot-setting-grid input:not([type="checkbox"]),
.bot-setting-grid select,
.bot-setting-grid textarea,
.bot-account-settings input:not([type="checkbox"]),
.bot-account-settings select {
  width: 100%;
  min-height: 43px;
  box-sizing: border-box;
  padding: 8px 10px;
  border: 2px solid #50617a !important;
  border-radius: 9px;
  color: #fff !important;
  background: #08111e !important;
  font: inherit;
  font-weight: 800;
}
.bot-setting-grid textarea { resize: vertical; min-height: 130px; }
.bot-setting-grid input[type="range"] { padding: 0 !important; accent-color: #c8ff3d; }
.bot-setting-grid output { color: #c8ff3d; font-weight: 1000; }
.bot-wide-field { grid-column: 1 / -1; }
.bot-toggle-field,
.bot-mini-toggle {
  grid-template-columns: auto minmax(0,1fr) !important;
  align-items: center !important;
}
.bot-toggle-field input[type="checkbox"],
.bot-mini-toggle input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: #c8ff3d;
}
.bot-toggle-field > span { display: grid; gap: 4px; }
.bot-toggle-field b { color: #fff !important; }
.bot-toggle-field small { color: #9eacbe !important; font-weight: 650; line-height: 1.35; }
.bot-locked-rule { opacity: .82; background: #0c1828 !important; }
.bot-roster {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  max-height: 720px;
  overflow: auto;
  padding: 16px;
  scrollbar-color: #53657f #09111d;
  background: #0d1726 !important;
}
.bot-account-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 3px solid #071116;
  border-radius: 15px;
  color: #fff;
  background: #162338 !important;
  box-shadow: 4px 4px 0 #071116;
}
.bot-account-card > header {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
}
.bot-avatar {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 3px solid #071116;
  border-radius: 50%;
  background: #293c55;
  font-size: 1.45rem;
}
.bot-account-card h4 { margin: 0 0 3px; color: #fff; }
.bot-account-card p { margin: 0; color: #aeb9ca !important; font-size: .76rem; }
.bot-account-card > header > b { color: #c8ff3d !important; white-space: nowrap; }
.bot-live-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 6px;
  border-radius: 50%;
  background: #69778b;
}
.bot-live-dot.playing { background: #50e681; box-shadow: 0 0 0 3px rgba(80,230,129,.15); }
.bot-live-dot.idle { background: #74d7ff; }
.bot-live-dot.out_of_chips { background: #ff9c55; }
.bot-live-dot.disabled,
.bot-live-dot.paused_by_limit { background: #ff6c76; }
.bot-account-settings {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
}
.bot-account-settings > label { padding: 9px; }
.bot-account-settings > label > span { font-size: .67rem; }
.bot-account-card > footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bot-account-card > footer button { flex: 1 1 120px; min-height: 38px; padding: 7px 9px; font-size: .72rem; }
.bot-save-footer {
  display: grid;
  grid-template-columns: auto auto minmax(180px,1fr);
  align-items: center;
  gap: 10px;
  padding: 14px;
}
.bot-save-footer .social-message { margin: 0; min-height: 22px; }

@media (max-width: 980px) {
  #accountCenterOverlay .account-center-panel:has(.bot-management-pane:not(.hidden)) { width: 100vw !important; }
  .bot-management-hero { grid-template-columns: 1fr; }
  .bot-setting-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bot-roster { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .bot-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bot-setting-grid { grid-template-columns: 1fr; padding: 10px; }
  .bot-wide-field { grid-column: auto; }
  .bot-account-settings { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bot-save-footer { grid-template-columns: 1fr; }
  .bot-settings-group > summary { grid-template-columns: 1fr; }
  .bot-settings-group > summary small { text-align: left; }
}


/* v0.9.34: true account-mode slider, social reverse animation and support desk */
.auth-tabs {
  position: relative !important;
  isolation: isolate;
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 6px !important;
  padding: 5px !important;
  overflow: hidden !important;
  border: 2px solid #071116 !important;
  border-radius: 14px !important;
  background: #0d1726 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04) !important;
}
.auth-tabs::before {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  inset: 5px auto 5px 5px !important;
  width: calc((100% - 16px) / 2) !important;
  border: 2px solid #071116 !important;
  border-radius: 9px !important;
  background: #3578e5 !important;
  box-shadow: 3px 3px 0 #071116 !important;
  transform: translateX(0) !important;
  transition: transform .28s cubic-bezier(.2,.8,.2,1), background-color .28s ease !important;
  pointer-events: none !important;
}
.auth-tabs:has(#registerTab.active)::before {
  transform: translateX(calc(100% + 6px)) !important;
  background: #7a43df !important;
}
.auth-tabs .auth-tab,
.auth-tabs #loginTab,
.auth-tabs #registerTab,
.auth-tabs .auth-tab.active {
  position: relative !important;
  z-index: 1 !important;
  border: 0 !important;
  color: #fff !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

@keyframes neonSocialRailIn034 { from { transform: translateX(108%); } to { transform: translateX(0); } }
@keyframes neonSocialRailOut034 { from { transform: translateX(0); } to { transform: translateX(108%); } }
#socialOverlay .social-drawer { animation: neonSocialRailIn034 .34s cubic-bezier(.2,.8,.2,1) both !important; }
#socialOverlay .social-backdrop { transition: opacity .34s ease !important; }
#socialOverlay.is-closing .social-drawer { animation: neonSocialRailOut034 .34s cubic-bezier(.4,0,.8,.22) both !important; pointer-events: none; }
#socialOverlay.is-closing .social-backdrop { opacity: 0 !important; }

.developer-leaderboard-visibility { margin: 14px 0 0 !important; }
.support-ticket-panel > summary { align-items: center; }
.support-ticket-summary-meta { display: inline-flex; align-items: center; gap: 10px; }
.support-ticket-summary-meta b { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #071116; background: #c8ff3d; }
.support-ticket-content { display: grid; gap: 14px; }
.support-ticket-filters { display: grid; grid-template-columns: minmax(170px,.35fr) minmax(240px,1fr); gap: 12px; }
.support-ticket-filters label { display: grid; gap: 6px; color: #e8eef7; font-weight: 850; }
.support-ticket-filters input,.support-ticket-filters select,.support-ticket-reply textarea,.support-ticket-reply select { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 2px solid #50617a; border-radius: 10px; color: #fff; background: #08111e; font: inherit; }
.support-ticket-layout { display: grid; grid-template-columns: minmax(260px,.42fr) minmax(0,1fr); gap: 14px; min-height: 520px; }
.support-ticket-list,.support-ticket-detail { min-height: 0; border: 2px solid #33445d; border-radius: 14px; background: #0a1321; overflow: auto; }
.support-ticket-list { max-height: 620px; padding: 10px; display: grid; align-content: start; gap: 9px; }
.support-ticket-card { width: 100%; display: grid; gap: 5px; padding: 11px; border: 2px solid #30415a; border-radius: 11px; color: #eef4ff; background: #132137; text-align: left; cursor: pointer; }
.support-ticket-card:hover,.support-ticket-card.active { border-color: #c8ff3d; background: #1a2b45; }
.support-ticket-card header { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.support-ticket-card small { color: #aeb9ca; }
.support-ticket-status { padding: 3px 7px; border-radius: 999px; color: #071116; background: #74d7ff; font-size: .68rem; font-weight: 1000; text-transform: uppercase; }
.support-ticket-status.resolved,.support-ticket-status.closed { background: #8fe08f; }
.support-ticket-status.in_progress { background: #ffd36d; }
.support-ticket-detail { padding: 16px; color: #eef4ff; }
.support-ticket-detail-head { display: grid; gap: 8px; margin-bottom: 14px; }
.support-ticket-detail-head h3 { margin: 0; color: #fff; }
.support-ticket-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; color: #aeb9ca; font-size: .78rem; }
.support-ticket-thread { display: grid; gap: 10px; max-height: 340px; overflow: auto; padding: 4px 5px 10px 0; }
.support-ticket-message { padding: 11px 12px; border: 2px solid #31435d; border-radius: 12px; background: #101d30; }
.support-ticket-message.staff { border-color: #6853a7; background: #211a38; }
.support-ticket-message.system { border-style: dashed; opacity: .8; }
.support-ticket-message header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.support-ticket-message p { margin: 0; white-space: pre-wrap; line-height: 1.5; }
.support-ticket-reply { display: grid; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 2px solid #293a52; }
.support-ticket-reply-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.support-ticket-reply-actions > * { flex: 1 1 150px; }
.support-ticket-notice { min-height: 20px; color: #aeb9ca; }
@media (max-width: 860px) { .support-ticket-layout { grid-template-columns: 1fr; } .support-ticket-list { max-height: 300px; } }

/* v0.9.35 · Roulette multiplayer, maintenance and aligned developer logs */
.auth-tabs::before { background: #3578e5 !important; opacity: 1 !important; }
.auth-tabs.register-selected::before,
.auth-tabs:has(#registerTab.active)::before { transform: translateX(calc(100% + 6px)) !important; background: #7a43df !important; }
.auth-tabs:not(.register-selected)::before { transform: translateX(0) !important; background: #3578e5 !important; }
.auth-tabs .auth-tab { color: rgba(255,255,255,.72) !important; }
.auth-tabs .auth-tab.active { color: #fff !important; text-shadow: 0 1px 0 rgba(0,0,0,.25); }

.developer-log-list { overflow-x: hidden !important; }
.developer-log-entry {
  display: grid !important;
  grid-template-columns: minmax(210px,.78fr) minmax(260px,1.5fr) minmax(92px,auto) !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 72px !important;
  padding: 12px 14px !important;
}
.developer-log-author,
.developer-log-detail,
.developer-log-action { min-width: 0 !important; align-self: center !important; }
.developer-log-author { display: grid !important; gap: 4px !important; }
.developer-log-author strong,
.developer-log-author small,
.developer-log-detail b,
.developer-log-detail p { display: block !important; margin: 0 !important; line-height: 1.25 !important; overflow-wrap: anywhere; }
.developer-log-author small { color: #9fb0c8 !important; }
.developer-log-detail p { margin-top: 5px !important; color: #b8c3d5 !important; }
.developer-log-action { display: flex !important; justify-content: flex-end !important; align-items: center !important; }
.developer-log-action .secondary-btn { position: static !important; margin: 0 !important; min-width: 82px !important; }

.roulette-room-overlay,
.maintenance-overlay {
  position: fixed; inset: 0; z-index: 10050; display: grid; place-items: center; padding: 20px;
}
.roulette-room-overlay.hidden,
.maintenance-overlay.hidden { display: none !important; }
.roulette-room-panel,
.maintenance-panel { position: relative; z-index: 2; width: min(520px,100%); padding: 26px; background: #111b2b !important; color: #f5f7fb; border: 3px solid #05070a; box-shadow: 9px 9px 0 #05070a; }
.roulette-room-panel > p,
.maintenance-panel > p { color: #b9c7dc; line-height: 1.55; }
.roulette-room-panel .table-code-join-form { margin-top: 16px; }
.maintenance-overlay { background: rgba(3,6,12,.92); }
.maintenance-panel { text-align: center; }
body.maintenance-active > :not(.maintenance-overlay):not(script) { pointer-events: none !important; user-select: none; }
body.maintenance-active .maintenance-overlay { pointer-events: auto !important; }
.developer-maintenance-panel textarea { width: 100%; color: #fff !important; background: #09111d !important; border: 2px solid #05070a !important; }

.roulette-multiplayer-home em { display: block; margin-top: 4px; font-style: normal; font-size: .72rem; opacity: .78; }
.roulette-multiplayer-bar {
  position: absolute; z-index: 35; top: 12px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; gap: 12px; padding: 7px 10px; border: 2px solid #05070a; border-radius: 12px;
  background: #111b2b; color: #fff; box-shadow: 4px 4px 0 #05070a;
}
.roulette-multiplayer-bar.hidden,
.roulette-multiplayer-panel.hidden { display: none !important; }
.roulette-multiplayer-bar .secondary-btn { min-height: 34px !important; padding: 6px 10px !important; }
.roulette-multiplayer-panel { display: grid; gap: 12px; }
.roulette-player-list { display: grid; gap: 8px; }
.roulette-player-row { display: grid; grid-template-columns: 42px minmax(0,1fr) 10px; align-items: center; gap: 10px; padding: 9px; border: 2px solid #05070a; border-radius: 11px; background: #121d2e; }
.roulette-player-row > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #09111d; font-size: 1.35rem; }
.roulette-player-row strong,.roulette-player-row small { display: block; }
.roulette-player-row small { color: #aebdd2; margin-top: 2px; }
.roulette-player-row > i { width: 9px; height: 9px; border-radius: 50%; background: #667085; }
.roulette-player-row > i.online { background: #95d93d; box-shadow: 0 0 0 3px rgba(149,217,61,.18); }
.roulette-multiplayer-chat { min-height: 180px; max-height: 260px; overflow-y: auto; background: #09111d; border: 2px solid #05070a; border-radius: 12px; padding: 8px; }
.roulette-multiplayer-chat .chat-line { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 7px 4px; }
.roulette-multiplayer-chat .chat-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #172235; }
.roulette-multiplayer-chat p { margin: 2px 0 0; color: #d7deea; overflow-wrap: anywhere; }
.roulette-multiplayer-chat time { color: #8190a5; font-size: .68rem; }
.roulette-other-bet-chip {
  position: absolute; z-index: 18; right: 3px; bottom: 3px; display: grid; place-items: center;
  min-width: 28px; height: 28px; padding: 0 5px; border: 2px solid #1b1d22; border-radius: 50%;
  background: linear-gradient(145deg,#9da3ac,#555b64) !important; color: #fff !important; font: 900 .52rem/1 system-ui,sans-serif;
  filter: grayscale(1); box-shadow: 2px 2px 0 rgba(0,0,0,.55); pointer-events: none;
}
#rouletteNumberBoard .roulette-cell,
.roulette-outside-board .roulette-cell,
.roulette-inside-hotspot { position: relative; }

@media (max-width: 760px) {
  .developer-log-entry { grid-template-columns: 1fr !important; gap: 8px !important; }
  .developer-log-action { justify-content: flex-start !important; }
  .roulette-multiplayer-bar { width: calc(100% - 22px); justify-content: space-between; flex-wrap: wrap; }
}

/* v0.9.35 final corrections: visible buy-in errors, stable auth slider and aligned logs */
.auth-tabs::before {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #3578e5 !important;
  transition: transform .28s cubic-bezier(.2,.8,.2,1), background-color .28s ease !important;
}
.auth-tabs.register-selected::before,
.auth-tabs:has(#registerTab.active)::before {
  background: #7a43df !important;
  transform: translateX(calc(100% + 6px)) !important;
}
.auth-tabs:not(.register-selected)::before {
  background: #3578e5 !important;
  transform: translateX(0) !important;
}
.auth-tabs .auth-tab.active { color: #fff !important; }
.auth-tabs .auth-tab:not(.active) { color: rgba(255,255,255,.66) !important; }

.developer-log-list > .developer-log-entry {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(190px,.72fr) minmax(260px,1.45fr) 96px !important;
  align-items: center !important;
  column-gap: 20px !important;
  row-gap: 6px !important;
  padding: 12px 14px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.developer-log-list > .developer-log-entry > * {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  margin: 0 !important;
  min-width: 0 !important;
}
.developer-log-list .developer-log-author {
  display: grid !important;
  align-content: center !important;
  gap: 5px !important;
}
.developer-log-list .developer-log-author strong,
.developer-log-list .developer-log-author small {
  display: block !important;
  width: 100% !important;
  white-space: normal !important;
}
.developer-log-list .developer-log-detail {
  display: grid !important;
  align-content: center !important;
  gap: 5px !important;
}
.developer-log-list .developer-log-detail b,
.developer-log-list .developer-log-detail p {
  margin: 0 !important;
  line-height: 1.3 !important;
}
.developer-log-list .developer-log-action {
  width: 96px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}
.developer-log-list .developer-log-action .secondary-btn {
  width: 82px !important;
  min-width: 82px !important;
  max-width: 82px !important;
  margin: 0 !important;
  justify-self: auto !important;
}

.poker-buyin-panel {
  max-height: min(92dvh, 760px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}
.buyin-inline-message {
  position: relative !important;
  z-index: 4 !important;
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 12px 0 0 !important;
  padding: 10px 12px !important;
  box-sizing: border-box !important;
  border: 2px solid #ff7272 !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: #3a1118 !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
  box-shadow: 3px 3px 0 #05070a !important;
}
.buyin-inline-message.hidden { display: none !important; }

@media (max-width: 760px) {
  .developer-log-list > .developer-log-entry {
    grid-template-columns: 1fr !important;
  }
  .developer-log-list .developer-log-action {
    width: auto !important;
    justify-content: flex-start !important;
  }
}

/* ================================================================
   v0.9.36 · requested Poker, Blackjack, auth and profile corrections
   ================================================================ */

/* Profile pictures use the blue account colour instead of coral/red. */
.player-profile-avatar,
.profile-avatar-preview {
  background: linear-gradient(145deg, #63b9ff, #2e73df) !important;
  color: #fff !important;
  border-color: #071116 !important;
}

/* Password visibility controls for login and registration. */
.password-input-wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
}
.password-input-wrap > input {
  width: 100% !important;
  padding-right: 52px !important;
  box-sizing: border-box !important;
}
.password-visibility-toggle {
  position: absolute !important;
  z-index: 4 !important;
  top: 50% !important;
  right: 9px !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  transform: translateY(-50%) !important;
  border: 2px solid #071116 !important;
  border-radius: 9px !important;
  background: #21334b !important;
  color: #fff !important;
  box-shadow: 2px 2px 0 #071116 !important;
  animation: none !important;
}
.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible,
.password-visibility-toggle:active {
  transform: translateY(-50%) !important;
  background: #2d4665 !important;
  filter: brightness(1.08) !important;
  animation: none !important;
}
.password-visibility-toggle svg {
  width: 20px !important;
  height: 20px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  pointer-events: none !important;
}
.password-visibility-toggle[aria-pressed="true"] svg { opacity: .72 !important; }

/* Exact slider geometry. Using left rather than a percentage transform prevents
   the purple register plate from being clipped at 100% desktop zoom. */
.auth-tabs {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 6px !important;
  width: 100% !important;
  padding: 6px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background: #0d1726 !important;
}
.auth-tabs::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  top: 6px !important;
  bottom: 6px !important;
  left: 6px !important;
  width: calc(50% - 9px) !important;
  height: auto !important;
  border: 2px solid #071116 !important;
  border-radius: 10px !important;
  background: #3578e5 !important;
  box-shadow: 2px 2px 0 #071116 !important;
  transform: none !important;
  transition: left .28s cubic-bezier(.2,.8,.2,1), background-color .28s ease !important;
  pointer-events: none !important;
}
.auth-tabs.register-selected::before,
.auth-tabs:has(#registerTab.active)::before {
  left: calc(50% + 3px) !important;
  background: #7a43df !important;
  transform: none !important;
}
.auth-tabs:not(.register-selected)::before,
.auth-tabs:has(#loginTab.active)::before {
  left: 6px !important;
  background: #3578e5 !important;
  transform: none !important;
}
.auth-tabs .auth-tab,
.auth-tabs #loginTab,
.auth-tabs #registerTab,
.auth-tabs .auth-tab:hover,
.auth-tabs .auth-tab:focus-visible,
.auth-tabs .auth-tab:active {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  animation: none !important;
  filter: none !important;
}

/* Poker action state: modern badge exactly one pixel above the shown cards. */
.poker-seat.is-last-raiser::after { content: none !important; display: none !important; }
.poker-hole-cards { overflow: visible !important; }
.poker-player-action-badge {
  position: absolute !important;
  z-index: 40 !important;
  left: 50% !important;
  bottom: calc(100% + 1px) !important;
  transform: translateX(-50%) !important;
  min-width: 58px !important;
  padding: 5px 9px !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: #21334b !important;
  color: #fff !important;
  box-shadow: 3px 3px 0 #071116 !important;
  font-size: .56rem !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  letter-spacing: .09em !important;
  text-align: center !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.poker-player-action-badge.action-raise,
.poker-player-action-badge.action-bet,
.poker-player-action-badge.action-all_in { background: #f2c54f !important; color: #071116 !important; }
.poker-player-action-badge.action-call { background: #65b7ff !important; color: #071116 !important; }
.poker-player-action-badge.action-check { background: #9add63 !important; color: #071116 !important; }
.poker-player-action-badge.action-fold { background: #687487 !important; color: #fff !important; }
.poker-seat-panel {
  border: 3px solid #071116 !important;
  border-radius: 13px !important;
  background: linear-gradient(145deg, #17263a, #0b1422) !important;
  box-shadow: 4px 4px 0 #071116 !important;
}
.poker-live-hand,
.poker-live-hand.revealed {
  border: 3px solid #f3ca4f !important;
  border-radius: 10px !important;
  background: #2a2414 !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
.poker-live-hand small { color: #f3ca4f !important; }
.poker-live-hand strong { color: #fff4b6 !important; }

/* Blackjack multiplayer controls and result surfaces use one current design. */
body.multiplayer-live .multi-controls {
  position: relative !important;
  border: 3px solid #071116 !important;
  border-radius: 15px !important;
  background: linear-gradient(145deg, #15263a, #0b1625) !important;
  box-shadow: 5px 5px 0 #071116 !important;
}
body.multiplayer-live .multi-bet-stepper button {
  border: 3px solid #071116 !important;
  border-radius: 10px !important;
  background: #263b55 !important;
  color: #fff !important;
  box-shadow: 3px 3px 0 #071116 !important;
  font-weight: 1000 !important;
  animation: none !important;
}
body.multiplayer-live .multi-bet-stepper button:hover:not(:disabled),
body.multiplayer-live .multi-bet-stepper button:focus-visible:not(:disabled),
body.multiplayer-live .multi-bet-stepper button:active:not(:disabled) {
  transform: none !important;
  background: #365574 !important;
  box-shadow: 3px 3px 0 #071116 !important;
  filter: brightness(1.08) !important;
  animation: none !important;
}
body.multiplayer-live .multi-result-controls,
body.multiplayer-live .multi-waiting-controls,
body.multiplayer-live .multi-insurance-controls,
body.multiplayer-live .multi-action-controls {
  border: 3px solid #071116 !important;
  border-radius: 13px !important;
  background: #101d2e !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
body.multiplayer-live .seat-round-profit.positive,
body.multiplayer-live .seat-round-profit.negative {
  border: 2px solid #071116 !important;
  border-radius: 9px !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
body.multiplayer-live .seat-round-profit.positive { background: #2c8c61 !important; color: #fff !important; }
body.multiplayer-live .seat-round-profit.negative { background: #b23f55 !important; color: #fff !important; }
body.multiplayer-live .multi-hand-result:not(:empty) {
  width: max-content !important;
  max-width: 100% !important;
  margin: 4px auto 0 !important;
  padding: 3px 7px !important;
  border: 2px solid #071116 !important;
  border-radius: 8px !important;
  background: #21334b !important;
  color: #fff !important;
  box-shadow: 2px 2px 0 #071116 !important;
}
body.multiplayer-live .multi-hand-result.win { background: #d7ff70 !important; color: #071116 !important; }
body.multiplayer-live .multi-hand-result.lose { background: #ff7885 !important; color: #071116 !important; }
.multi-ready-countdown {
  position: absolute !important;
  z-index: 110 !important;
  top: 8px !important;
  right: 10px !important;
  min-width: 150px !important;
  padding: 7px 10px !important;
  display: grid !important;
  grid-template-columns: auto auto !important;
  align-items: center !important;
  gap: 2px 8px !important;
  border: 3px solid #071116 !important;
  border-radius: 11px !important;
  background: #f3ca4f !important;
  color: #071116 !important;
  box-shadow: 3px 3px 0 #071116 !important;
  pointer-events: none !important;
}
.multi-ready-countdown.hidden { display: none !important; }
.multi-ready-countdown span { font-size: .62rem !important; font-weight: 1000 !important; letter-spacing: .08em !important; }
.multi-ready-countdown strong { grid-row: 1 / 3 !important; grid-column: 2 !important; font-size: 1.55rem !important; line-height: 1 !important; }
.multi-ready-countdown small { grid-column: 1 !important; color: #26313c !important; font-size: .56rem !important; }

/* Dealt single-player Blackjack cards stay above every surrounding layer. */
#gameApp .solo-private-rim,
#gameApp .solo-private-felt,
#gameApp .solo-private-player-seat,
#gameApp .solo-private-player-seat > .hands-grid,
#gameApp .solo-private-player-seat .player-hand,
#gameApp .solo-private-player-seat .hand-cards {
  overflow: visible !important;
  clip-path: none !important;
}
#gameApp .solo-private-player-seat { z-index: 120 !important; }
#gameApp .solo-private-player-seat > .hands-grid,
#gameApp .solo-private-player-seat .player-hand,
#gameApp .solo-private-player-seat .hand-cards { z-index: 121 !important; }
#gameApp .solo-private-player-seat .playing-card { position: relative !important; z-index: 122 !important; }

@media (max-width: 800px) {
  .multi-ready-countdown { top: 6px !important; right: 7px !important; min-width: 130px !important; }
  .poker-player-action-badge { min-width: 48px !important; padding: 4px 6px !important; font-size: .48rem !important; }
}

/* ================================================================
   v0.9.37 · stable controls, table levels and requested UI fixes
   ================================================================ */

/* Password visibility controls remain permanently inside the input. */
.password-input-wrap { position: relative !important; display: block !important; }
.password-input-wrap > input { width: 100% !important; padding-right: 52px !important; }
.password-visibility-toggle,
.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible,
.password-visibility-toggle:active {
  position: absolute !important;
  z-index: 12 !important;
  top: 50% !important;
  right: 8px !important;
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 8px !important;
  transform: translateY(-50%) !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: #17263a !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  animation: none !important;
  transition: background-color .16s ease !important;
}
.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible { background: #243d59 !important; }
.password-visibility-toggle svg { display: block !important; width: 21px !important; height: 21px !important; }

/* Own table identity uses blue instead of the former coral/red surface. */
.table-avatar,
.poker-avatar,
.player-profile-avatar,
.profile-avatar-preview,
.account-avatar,
.multi-seat.is-me .multi-seat-panel,
.poker-seat.is-me .poker-seat-panel {
  background: linear-gradient(145deg, #72c5ff, #397fd8) !important;
}

/* Eliminate looping/jumping hover transforms on all controls and seats. */
button,
[role="button"],
.multi-seat,
.poker-seat,
.multi-seat-empty,
.poker-empty-seat,
.empty-player-seat,
.developer-player-actions button,
.developer-table-actions button {
  animation-iteration-count: 1 !important;
}
button:hover:not(:disabled),
button:focus-visible:not(:disabled),
button:active:not(:disabled),
[role="button"]:hover,
.multi-seat:hover,
.poker-seat:hover,
.multi-seat-empty:hover,
.poker-empty-seat:hover,
.empty-player-seat:hover {
  animation: none !important;
  transform: none !important;
}
button:hover:not(:disabled):not(.password-visibility-toggle) { filter: brightness(1.08) !important; }
.multi-seat:hover .multi-seat-panel,
.poker-seat:hover .poker-seat-panel,
.multi-seat-empty:hover,
.poker-empty-seat:hover,
.empty-player-seat:hover { transform: none !important; animation: none !important; }

/* Result text is centered within the Multiplayer Blackjack result surface. */
body.multiplayer-live .multi-hand-result:not(:empty),
body.multiplayer-live .seat-round-profit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* Restore the compact single-player Roulette outside-bet grid. */
.roulette-outside-board {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  grid-template-rows: 48px 48px !important;
  gap: 4px !important;
  margin-top: 4px !important;
  min-width: 650px !important;
}
.roulette-outside-board [data-roulette-bet="low"] { grid-column: 1 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="even"] { grid-column: 2 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="red"] { grid-column: 3 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="black"] { grid-column: 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="odd"] { grid-column: 5 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="high"] { grid-column: 6 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="dozen1"] { grid-column: 1 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="dozen2"] { grid-column: 3 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="dozen3"] { grid-column: 5 / span 2 !important; grid-row: 2 !important; }

/* Observer status and action buttons keep clear spacing. */
#developerObserverMessage { margin: 15px 0 0 !important; padding-top: 3px !important; min-height: 24px !important; }
#developerObserverPanel button,
[data-admin-observe],
[data-admin-join] { animation: none !important; transform: none !important; }

/* Errors and short system notices must always be visible over open drawers. */
.toast {
  position: fixed !important;
  z-index: 300000 !important;
  pointer-events: none !important;
}
.toast.show { transform: translate(-50%, 0) !important; }

/* Opening Social does not dim or blur the game behind it. */
#socialOverlay .social-backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* In-game Poker leave confirmation. */
.poker-leave-confirm-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 210000 !important;
  display: grid !important;
  place-items: center !important;
  padding: 20px !important;
}
.poker-leave-confirm-overlay.hidden { display: none !important; }
.poker-leave-confirm-overlay .social-backdrop { background: rgba(3, 9, 17, .72) !important; backdrop-filter: blur(3px) !important; }
.poker-leave-confirm-panel {
  position: relative !important;
  z-index: 2 !important;
  width: min(470px, calc(100vw - 32px)) !important;
  padding: 28px !important;
  border: 3px solid #071116 !important;
  border-radius: 17px !important;
  background: #111d2d !important;
  color: #fff !important;
  box-shadow: 8px 8px 0 #071116 !important;
}
.poker-leave-confirm-panel p { color: #cbd8e8 !important; line-height: 1.55 !important; }
.poker-leave-confirm-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; margin-top: 22px !important; }

/* Selectable public table levels. */
.home-game-level-group { display: grid !important; gap: 7px !important; min-width: 0 !important; }
.home-game-level-group > .home-game-btn { width: 100% !important; }
.table-level-picker {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 9px !important;
  border: 2px solid #071116 !important;
  border-radius: 9px !important;
  background: #17263a !important;
  box-shadow: 2px 2px 0 #071116 !important;
}
.table-level-picker span { color: #c8d7e8 !important; font-size: .62rem !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: .05em !important; }
.table-level-picker select { min-width: 0 !important; width: 100% !important; padding: 7px 9px !important; border: 1px solid #48627f !important; border-radius: 7px !important; background: #0b1422 !important; color: #fff !important; font-weight: 800 !important; }
.table-level-settings-form { align-items: start !important; }

@media (max-width: 800px) {
  .roulette-outside-board { min-width: 610px !important; }
  .poker-leave-confirm-actions { grid-template-columns: 1fr !important; }
  .table-level-picker { grid-template-columns: 1fr !important; }
}

/* ================================================================
   v0.9.38 · requested level sliders, restored table layouts and timers
   ================================================================ */

/* Password eye remains visually unchanged under the pointer. */
.password-visibility-toggle,
.password-visibility-toggle:hover,
.password-visibility-toggle:active {
  background: #17263a !important;
  filter: none !important;
  box-shadow: none !important;
  transform: translateY(-50%) !important;
  animation: none !important;
  transition: none !important;
}
.password-visibility-toggle:focus-visible {
  background: #17263a !important;
  filter: none !important;
  transform: translateY(-50%) !important;
  animation: none !important;
  transition: none !important;
  outline: 2px solid #74d7ff !important;
  outline-offset: 1px !important;
}

/* Three-position level controls for every game that offers table levels. */
.table-level-picker {
  grid-template-columns: minmax(104px, auto) minmax(0, 1fr) !important;
  gap: 10px 13px !important;
  padding: 9px 11px 10px !important;
}
.table-level-slider {
  position: relative !important;
  display: grid !important;
  grid-template-rows: 24px auto !important;
  gap: 5px !important;
  min-width: 0 !important;
}
.table-level-range {
  position: relative !important;
  z-index: 3 !important;
  width: 100% !important;
  height: 24px !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  cursor: grab !important;
  touch-action: pan-y !important;
}
.table-level-range:active { cursor: grabbing !important; }
.table-level-range::-webkit-slider-runnable-track {
  height: 8px !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #74d7ff 0 var(--level-progress, 0%), #0b1422 var(--level-progress, 0%) 100%) !important;
  box-shadow: 2px 2px 0 #071116 !important;
}
.table-level-range::-moz-range-track {
  height: 6px !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: #0b1422 !important;
  box-shadow: 2px 2px 0 #071116 !important;
}
.table-level-range::-moz-range-progress {
  height: 6px !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: #74d7ff !important;
}
.table-level-range::-webkit-slider-thumb {
  width: 22px !important;
  height: 22px !important;
  margin-top: -9px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 3px solid #071116 !important;
  border-radius: 50% !important;
  background: #c8ff3d !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
.table-level-range::-moz-range-thumb {
  width: 18px !important;
  height: 18px !important;
  border: 3px solid #071116 !important;
  border-radius: 50% !important;
  background: #c8ff3d !important;
  box-shadow: 3px 3px 0 #071116 !important;
}
.table-level-stops {
  position: absolute !important;
  z-index: 2 !important;
  top: 8px !important;
  left: 10px !important;
  right: 10px !important;
  display: flex !important;
  justify-content: space-between !important;
  pointer-events: none !important;
}
.table-level-stops i {
  width: 6px !important;
  height: 6px !important;
  border: 1px solid #071116 !important;
  border-radius: 50% !important;
  background: #fff !important;
}
.table-level-value {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  color: #fff !important;
  font-size: .7rem !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Poker seat information restored from v0.9.34 only. */
.poker-seat,
.poker-seat:hover,
.poker-seat:focus-within {
  transform: translate(-50%, -50%) !important;
  transition: opacity .22s ease, filter .22s ease !important;
}
.poker-seat.is-active,
.poker-seat.is-active:hover,
.poker-seat.poker-hand-winner,
.poker-seat.poker-hand-winner:hover {
  transform: translate(-50%, -50%) !important;
}
.poker-seat-panel,
.poker-seat:hover .poker-seat-panel,
.poker-seat:focus-within .poker-seat-panel {
  transform: translateX(-50%) !important;
  color: var(--wf-ink) !important;
  background: var(--wf-white) !important;
  border: 2px solid var(--wf-ink) !important;
  border-radius: 17px !important;
  box-shadow: 4px 4px 0 rgba(18,18,18,.82) !important;
}
.poker-seat.is-me .poker-seat-panel,
.poker-seat.is-me:hover .poker-seat-panel {
  color: var(--wf-ink) !important;
  background: var(--wf-lime) !important;
  border-color: var(--wf-ink) !important;
  box-shadow: 6px 6px 0 var(--wf-ink) !important;
}
.poker-avatar,
.poker-seat:hover .poker-avatar {
  color: var(--wf-ink) !important;
  background: var(--wf-coral) !important;
  border: 3px solid var(--wf-ink) !important;
  box-shadow: 4px 4px 0 var(--wf-ink) !important;
  transform: none !important;
  animation: none !important;
}
@media (max-width: 800px) {
  #pokerApp .poker-seat,
  #pokerApp .poker-seat:hover,
  #pokerApp .poker-seat:focus-within,
  #pokerApp .poker-seat.is-active,
  #pokerApp .poker-seat.is-active:hover,
  #pokerApp .poker-seat.poker-hand-winner,
  #pokerApp .poker-seat.poker-hand-winner:hover {
    transform: translate(-50%, calc(-50% - 24px)) !important;
  }
}

/* Roulette table geometry restored from v0.9.34. */
.roulette-number-board,
.roulette-outside-board {
  grid-template-columns: 56px repeat(12, minmax(42px, 1fr)) 48px !important;
  min-width: 720px !important;
}
.roulette-outside-board {
  display: grid !important;
  grid-template-rows: 48px 48px !important;
  gap: 4px !important;
  margin-top: 4px !important;
}
.roulette-outside-board [data-roulette-bet="dozen1"] { grid-column: 2 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="dozen2"] { grid-column: 6 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="dozen3"] { grid-column: 10 / span 4 !important; grid-row: 1 !important; }
.roulette-outside-board [data-roulette-bet="low"] { grid-column: 2 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="even"] { grid-column: 4 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="red"] { grid-column: 6 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="black"] { grid-column: 8 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="odd"] { grid-column: 10 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board [data-roulette-bet="high"] { grid-column: 12 / span 2 !important; grid-row: 2 !important; }
.roulette-outside-board .wide { min-height: 48px !important; }
@media (max-width: 560px) {
  .roulette-number-board,
  .roulette-outside-board {
    grid-template-columns: 52px repeat(12, minmax(39px, 1fr)) 44px !important;
    min-width: 636px !important;
  }
}

/* Visual ten-second Multiplayer Blackjack turn timer sits on the felt. */
.multi-turn-timer {
  position: absolute !important;
  z-index: 150 !important;
  top: 14px !important;
  right: 14px !important;
  display: grid !important;
  grid-template-columns: minmax(82px, auto) auto !important;
  align-items: center !important;
  gap: 1px 10px !important;
  min-width: 174px !important;
  padding: 8px 10px 10px !important;
  border: 3px solid #071116 !important;
  border-radius: 12px !important;
  color: #071116 !important;
  background: #f3ca4f !important;
  box-shadow: 4px 4px 0 #071116 !important;
  pointer-events: none !important;
}
.multi-turn-timer.hidden { display: none !important; }
.multi-turn-timer > span {
  overflow: hidden !important;
  font-size: .58rem !important;
  font-weight: 1000 !important;
  letter-spacing: .06em !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.multi-turn-timer > strong {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  min-width: 30px !important;
  font-size: 1.6rem !important;
  line-height: 1 !important;
  text-align: right !important;
}
.multi-turn-timer > small {
  color: #26313c !important;
  font-size: .48rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
}
.multi-turn-timer > i {
  position: relative !important;
  grid-column: 1 / -1 !important;
  display: block !important;
  width: 100% !important;
  height: 7px !important;
  margin-top: 5px !important;
  overflow: hidden !important;
  border: 2px solid #071116 !important;
  border-radius: 999px !important;
  background: #fff !important;
}
.multi-turn-timer > i > b {
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 100%;
  background: #3578e5 !important;
  transition: width .1s linear !important;
}
.multi-turn-timer.urgent { background: #ff7885 !important; }
.multi-turn-timer.urgent > i > b { background: #b61f39 !important; }
@media (max-width: 800px) {
  .multi-turn-timer { top: 8px !important; right: 8px !important; min-width: 144px !important; padding: 6px 8px 8px !important; }
  .multi-turn-timer > span { max-width: 76px !important; }
}

/* Notice, modal stacking and form spacing corrections. */
.system-notice-panel #systemNoticeTitle,
.system-notice-panel h2 { color: #fff !important; }
#adminProfileOverlay { z-index: 2450 !important; }
#adminPermissionsOverlay { z-index: 2550 !important; }
#accountPasswordMessage { margin-top: 18px !important; padding-top: 3px !important; }
#maintenanceMessage {
  width: auto !important;
  margin: 17px 12px 22px !important;
  padding: 14px 18px !important;
  border: 2px solid #33445d !important;
  border-radius: 12px !important;
  color: #eaf1fb !important;
  background: #0b1422 !important;
  line-height: 1.55 !important;
  text-align: center !important;
}
.bot-only-table-setting { grid-column: span 2 !important; }
@media (max-width: 620px) {
  .table-level-picker { grid-template-columns: 1fr !important; }
  .table-level-value { text-align: left !important; }
  .bot-only-table-setting { grid-column: auto !important; }
}

/* ================================================================
   v0.9.39 · automatic daily backup archive
   ================================================================ */
.automatic-backup-settings {
  grid-column: 1 / -1;
}
.automatic-backup-settings > label:not(.developer-toggle) {
  display: grid;
  gap: 7px;
  color: #fff;
  font-weight: 800;
}
.automatic-backup-settings input[type="time"] {
  width: min(220px, 100%);
  min-height: 44px;
  padding: 9px 12px;
  border: 2px solid #071116;
  border-radius: 10px;
  background: #e9f1fb;
  color: #071116;
  font: inherit;
  font-weight: 850;
  box-sizing: border-box;
}
.automatic-backup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.automatic-backup-cron-note {
  display: block;
  color: #bed0df;
  line-height: 1.45;
}
.automatic-backup-cron-note code {
  padding: 2px 6px;
  border-radius: 5px;
  color: #fff;
  background: #0b1422;
}
.automatic-backup-archive {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 16px;
  border: 2px solid #071116;
  border-radius: 13px;
  background: #101c2c;
  box-shadow: 4px 4px 0 #071116;
}
.automatic-backup-archive-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.automatic-backup-archive-head > div {
  display: grid;
  gap: 5px;
}
.automatic-backup-archive-head strong {
  color: #fff;
}
.automatic-backup-archive-head small {
  color: #bed0df;
  line-height: 1.45;
}
.automatic-backup-archive-head small.error {
  color: #ffb4bc;
}
.automatic-backup-archive-head > span {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 2px solid #071116;
  border-radius: 999px;
  color: #071116;
  background: #c8ff3d;
  font-size: .78rem;
  font-weight: 950;
  box-shadow: 2px 2px 0 #071116;
}
.automatic-backup-list {
  display: grid;
  gap: 9px;
  max-height: 330px;
  overflow: auto;
  padding: 2px 4px 4px 2px;
}
.automatic-backup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 2px solid #071116;
  border-radius: 10px;
  background: #17263a;
}
.automatic-backup-row > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.automatic-backup-row strong,
.automatic-backup-row small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.automatic-backup-row strong { color: #fff; }
.automatic-backup-row small { color: #bed0df; }
.automatic-backup-row button { min-width: 112px; }
.automatic-backup-empty {
  margin: 0;
  padding: 14px;
  color: #bed0df;
  text-align: center;
}
@media (max-width: 620px) {
  .automatic-backup-settings { grid-column: auto; }
  .automatic-backup-actions { display: grid; grid-template-columns: 1fr; }
  .automatic-backup-archive-head,
  .automatic-backup-row { grid-template-columns: 1fr; }
  .automatic-backup-archive-head { display: grid; }
  .automatic-backup-archive-head > span { justify-self: start; }
  .automatic-backup-row button { width: 100%; }
}
