:root {
  --bg: #000000;
  --panel: #1f2546;
  --panel-2: #121731;
  --panel-3: #343c64;
  --line: #2d3852;
  --line-soft: #3f4d6a;
  --text: #e8edf6;
  --text-soft: #b7c0d1;
  --text-dim: #90a0b5;
  --accent: #6e87b5;
  --good: #77c59c;
  --danger: #de8f8f;
  --card-well: #0d1428;
  --card-well-line: #293654;
  --card-bg: #f6f8fc;
  --card-border: #c8d1e0;
  --card-text: #151d2a;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  background: #000000;
  color: var(--text);
}

.poker-shell {
  width: min(1380px, calc(100vw - 20px));
  margin: 10px auto 14px;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 220px;
  gap: 10px;
}

.paytable-column {
  border: 0;
  border-radius: 12px;
  background: var(--panel);
  padding: 10px;
  display: grid;
  align-content: start;
  gap: 8px;
}

.paytable-column h2 {
  margin: 0;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-soft);
}

.paytable-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}

.paytable-list li {
  border: 0;
  border-radius: 9px;
  background: var(--panel-2);
  padding: 7px 8px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
}

.paytable-label {
  font-size: 0.8rem;
  color: var(--text);
  font-weight: 700;
}

.paytable-x {
  color: #cfd9f2;
  font-weight: 800;
  font-size: 0.8rem;
}

.paytable-usd {
  color: var(--text-dim);
  font-size: 0.74rem;
  font-weight: 700;
}

.poker-board {
  border: 0;
  border-radius: 14px;
  background: var(--card-well);
  padding: 12px;
  display: grid;
  gap: 10px;
}

.poker-top-zone {
  border: 0;
  border-radius: 12px;
  background: var(--card-well);
  padding: 8px;
  display: grid;
  gap: 8px;
}

.poker-bottom-zone {
  border: 0;
  border-radius: 12px;
  background: var(--panel);
  padding: 8px;
  display: grid;
  gap: 8px;
}

.board-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.board-kicker {
  margin: 0;
  font-size: 0.74rem;
  color: var(--text-dim);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
}

.board-header h1 {
  margin: 2px 0 0;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
}

.status-stack {
  display: grid;
  gap: 2px;
  text-align: right;
}

.status-stack p {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-dim);
}

#statusText {
  color: var(--text-soft);
}

.top-hands {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.hands-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.hand-panel {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 6px 6px 4px;
  display: grid;
  gap: 5px;
}

.cards-win-badge,
.main-hand-win-box {
  min-height: 28px;
  border: 0;
  border-radius: 8px;
  background: rgba(13, 23, 45, 0.92);
  color: #ecf3ff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.cards-win-badge[hidden],
.main-hand-win-box[hidden] {
  display: none !important;
}

.hand-panel header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 6px;
}

.hand-panel h4 {
  margin: 0;
  font-size: 0.72rem;
  color: var(--text-soft);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.hand-result {
  font-size: 0.72rem;
  color: var(--text-dim);
}

.hand-result.win {
  color: var(--good);
}

.hand-result.tier-basic {
  color: #d1d8e6;
}

.hand-result.tier-three {
  color: #8ee2a4;
}

.hand-result.tier-strong {
  color: #84d7ff;
}

.hand-result.tier-high {
  color: #ffc777;
}

.hand-result.tier-elite {
  color: #ff9ee2;
}

.hand-cards-wrap,
.main-hand-cards-wrap {
  position: relative;
}

.cards-win-badge,
.main-hand-win-box {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  pointer-events: none;
  max-width: calc(100% - 12px);
  overflow: hidden;
  text-overflow: ellipsis;
}

.main-hand-win-box {
  top: 60%;
}

.cards-win-badge.win-tier-basic,
.main-hand-win-box.win-tier-basic {
  background: rgba(7, 9, 13, 0.95);
  border-color: #3a3f4b;
  color: #ecf1fb;
}

.cards-win-badge.win-tier-three,
.main-hand-win-box.win-tier-three {
  background: rgba(16, 58, 27, 0.95);
  border-color: #429a59;
  color: #dcffe4;
}

.cards-win-badge.win-tier-strong,
.main-hand-win-box.win-tier-strong {
  background: rgba(15, 44, 75, 0.95);
  border-color: #4a88ca;
  color: #dff1ff;
}

.cards-win-badge.win-tier-high,
.main-hand-win-box.win-tier-high {
  background: rgba(77, 42, 14, 0.95);
  border-color: #c88644;
  color: #ffebc9;
}

.cards-win-badge.win-tier-elite,
.main-hand-win-box.win-tier-elite {
  background: rgba(80, 20, 80, 0.95);
  border-color: #ca58ca;
  color: #ffe1fb;
}

.hand-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.hand-cards .card {
  padding: 2px;
}

.hand-cards .card-rank-top,
.hand-cards .card-rank-bottom {
  font-size: clamp(0.72rem, 1.25vw, 0.98rem);
}

.hand-cards .card-suit {
  font-size: clamp(1.1rem, 1.95vw, 1.55rem);
}

.main-hand-section {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  display: grid;
  gap: 8px;
}

.main-hand-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}

.main-hand-header h2 {
  margin: 0;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.main-hand-header p {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-dim);
}

.main-hand-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.main-hand-row .card {
  padding: 6px;
}

.main-hand-row .card-rank-top,
.main-hand-row .card-rank-bottom {
  font-size: clamp(1.2rem, 2.3vw, 1.8rem);
}

.main-hand-row .card-suit {
  font-size: clamp(2.8rem, 5.4vw, 4.8rem);
}

.main-card-slot {
  display: grid;
  gap: 4px;
}

.hold-pill {
  min-height: 20px;
  border: 0;
  border-radius: 999px;
  background: var(--panel-3);
  color: var(--text-dim);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hold-pill.is-held {
  background: var(--accent);
  border-color: var(--accent);
  color: #f3f7ff;
}

.card {
  aspect-ratio: 3 / 4;
  border: 1px solid var(--card-border);
  border-radius: 10px;
  background: var(--card-bg);
  color: #0b1230;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: 4px;
  font-weight: 700;
  user-select: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.card.flip-in {
  animation: card-flip-in 145ms cubic-bezier(0.2, 0.75, 0.2, 1);
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

@keyframes card-flip-in {
  0% {
    transform: perspective(800px) rotateY(90deg) scale(0.985);
    opacity: 0.45;
  }
  100% {
    transform: perspective(800px) rotateY(0deg) scale(1);
    opacity: 1;
  }
}

.card.back {
  background: #1f2b49;
  border-color: #334a76;
  color: #9eb0d4;
}

.card.empty {
  background: #cdd5e5;
  border-color: #aeb9d0;
  color: #61708f;
}

.card.holdable {
  cursor: pointer;
}

.card.is-held {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.card-rank-top,
.card-rank-bottom {
  font-size: clamp(0.9rem, 1.55vw, 1.3rem);
  line-height: 1;
}

.card-rank-bottom {
  display: none;
}

.card-suit {
  justify-self: center;
  align-self: center;
  font-size: clamp(1.5rem, 2.9vw, 2.3rem);
  line-height: 1;
}

.card.is-red {
  color: #c84242;
}

@media (prefers-reduced-motion: reduce) {
  .card.flip-in {
    animation: none;
  }
}

.hud-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.hud-tile {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0 8px 0 0;
  display: grid;
  gap: 2px;
}

.hud-tile span {
  font-size: 0.72rem;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.hud-tile strong {
  font-size: 1rem;
}

.hud-subline {
  margin-top: 1px;
  color: var(--text-soft);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
}

.control-row {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) auto auto;
  gap: 8px;
  align-items: end;
}

.bet-input-wrap {
  display: grid;
  gap: 4px;
  font-size: 0.74rem;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.bet-input-box {
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.14);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
}

.bet-input-box span {
  color: var(--text-soft);
}

#betAmountInput {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--text);
  font-size: 1.02rem;
  font-family: "Consolas", "SFMono-Regular", Menlo, monospace;
  font-weight: 700;
}

.bet-buttons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.action-btn {
  min-width: 130px;
  background: #283599;
  color: #ffffff;
  font-size: 1rem;
  min-height: 40px;
  border-radius: 10px;
  border: 0;
  font-family: inherit;
  font-weight: 700;
  cursor: pointer;
}

.action-btn:hover:not(:disabled) {
  background: #42508a;
}

button:disabled,
input:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.fair-panel {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  display: grid;
  gap: 6px;
}

.fair-panel h3 {
  margin: 0;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fair-panel header p {
  margin: 1px 0 0;
  font-size: 0.75rem;
  color: var(--text-dim);
}

.fair-controls {
  display: grid;
  grid-template-columns: 95px minmax(0, 1fr) auto auto;
  gap: 6px;
  align-items: center;
}

.fair-controls label {
  font-size: 0.74rem;
  color: var(--text-soft);
  font-weight: 700;
}

#clientSeedInput {
  border: 0;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.14);
  color: var(--text);
  min-height: 36px;
  padding: 0 8px;
}

.fair-line {
  margin: 0;
  font-size: 0.74rem;
  color: var(--text-soft);
}

.fair-line code {
  color: var(--text);
}

.board-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.board-links a {
  font-size: 0.75rem;
}

@media (max-width: 1180px) {
  .poker-shell {
    grid-template-columns: 1fr;
  }

  .paytable-column {
    order: 2;
  }

  .poker-board {
    order: 1;
  }

  .paytable-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .hands-grid {
    grid-template-columns: 1fr;
  }

  .control-row {
    grid-template-columns: 1fr;
  }

  .action-btn {
    width: 100%;
  }

  .fair-controls {
    grid-template-columns: 1fr;
  }

  .hud-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .poker-shell {
    width: calc(100vw - 14px);
    margin: 7px auto;
  }

  .poker-board,
  .paytable-column {
    padding: 10px;
  }

  .main-hand-row {
    gap: 5px;
  }

  .card {
    padding: 3px;
  }

  .board-header {
    flex-direction: column;
  }

  .status-stack {
    text-align: left;
  }

  .paytable-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 390px) {
  .poker-shell {
    width: calc(100vw - 10px);
  }

  .top-hands,
  .main-hand-section,
  .fair-panel {
    padding: 6px;
  }

  .bet-input-box {
    min-height: 38px;
  }

  .mini-btn,
  .action-btn {
    min-height: 36px;
  }
}
