:root {
  --felt: #073f32;
  --felt-deep: #04251f;
  --gold: #f0c76b;
  --cream: #fff4dc;
  --ink: #18211e;
  --muted: #9eb8af;
  --red: #c53434;
  --black: #171b1c;
  --panel: rgba(8, 30, 27, 0.78);
  --line: rgba(255, 255, 255, 0.14);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--cream);
  background:
    radial-gradient(circle at top left, rgba(240, 199, 107, 0.16), transparent 34rem),
    radial-gradient(circle at 80% 10%, rgba(63, 170, 132, 0.16), transparent 28rem),
    linear-gradient(145deg, #06140f, #0a241d 45%, #030907);
}

button, select { font: inherit; }

.table-shell {
  width: min(1180px, calc(100% - 28px));
  margin: 0 auto;
  padding: 28px 0 42px;
}

.hero-panel,
.controls-panel,
.betting-panel,
.rules-panel,
.review-panel {
  border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.035));
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(16px);
}

.hero-panel {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 22px 24px;
  border-radius: 28px;
}

.eyebrow,
.area-label,
.mini-label {
  margin: 0;
  color: var(--gold);
  font-size: 0.77rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

h1, h2 {
  margin: 2px 0 0;
  font-family: "Bebas Neue", Impact, sans-serif;
  font-weight: 400;
  letter-spacing: 0.035em;
}

h1 { font-size: clamp(3rem, 8vw, 6.4rem); line-height: 0.9; }
h2 { font-size: clamp(2rem, 4vw, 3rem); }

.subhead {
  max-width: 620px;
  margin: 10px 0 0;
  color: var(--muted);
}

.score-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(92px, 1fr));
  overflow: hidden;
  min-width: 220px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(0, 0, 0, 0.24);
}

.score-card div {
  padding: 18px 20px;
  text-align: center;
}

.score-card div + div { border-left: 1px solid var(--line); }
.score-card span { display: block; color: var(--muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; }
.score-card strong { display: block; margin-top: 4px; font-size: 2.6rem; line-height: 1; }

.game-table {
  position: relative;
  overflow: hidden;
  min-height: 650px;
  margin-top: 18px;
  padding: 28px;
  border: 10px solid #4d2d17;
  border-radius: 44px;
  background:
    radial-gradient(circle at center, rgba(31, 130, 95, 0.7), transparent 56%),
    repeating-linear-gradient(32deg, rgba(255,255,255,0.025), rgba(255,255,255,0.025) 2px, transparent 2px, transparent 9px),
    linear-gradient(145deg, var(--felt), var(--felt-deep));
  box-shadow: inset 0 0 80px rgba(0, 0, 0, 0.54), 0 30px 90px rgba(0, 0, 0, 0.36);
}

.felt-glow {
  position: absolute;
  inset: 16%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 244, 220, 0.08), transparent 64%);
  pointer-events: none;
}

.top-row,
.center-stage,
.player-area {
  position: relative;
  z-index: 1;
}

.top-row {
  display: grid;
  grid-template-columns: 1fr minmax(170px, 220px);
  gap: 18px;
  align-items: start;
}

.hand {
  display: flex;
  justify-content: center;
  gap: clamp(8px, 2vw, 18px);
  min-height: 148px;
  padding: 14px 0;
}

.cpu-hand .card { transform: scale(0.92); }

.round-panel {
  display: grid;
  gap: 13px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(0, 0, 0, 0.24);
}

.round-panel strong { font-size: 1.2rem; }

.center-stage {
  display: grid;
  grid-template-columns: 1fr minmax(190px, 270px) 1fr;
  gap: 18px;
  align-items: center;
  margin: 42px 0;
}

.played-slot {
  display: grid;
  justify-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.status-orb {
  display: grid;
  align-content: center;
  min-height: 154px;
  padding: 24px;
  text-align: center;
  border: 1px solid rgba(240, 199, 107, 0.36);
  border-radius: 999px;
  background: radial-gradient(circle, rgba(240, 199, 107, 0.18), rgba(0, 0, 0, 0.26));
}

.status-orb span { color: var(--gold); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; }
.status-orb strong { margin-top: 8px; font-size: 1.05rem; }

.player-area { margin-top: 12px; }

.card {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(82px, 12vw, 118px);
  aspect-ratio: 0.70;
  padding: 0;
  border: 1px solid rgba(24, 33, 30, 0.28);
  border-radius: 15px;
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 239, 205, 0.96)),
    var(--cream);
  box-shadow: 0 18px 28px rgba(0, 0, 0, 0.25), inset 0 0 0 4px rgba(255, 255, 255, 0.55);
  user-select: none;
}

.player-hand .card {
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease;
}

.player-hand .card:hover:not(.disabled) {
  transform: translateY(-12px) rotate(-1deg);
  box-shadow: 0 28px 38px rgba(0, 0, 0, 0.34), 0 0 0 3px rgba(240, 199, 107, 0.36);
}

.card.disabled { opacity: 0.45; cursor: not-allowed; }
.card.red { color: var(--red); }
.card.black { color: var(--black); }
.card.small-card { width: 74px; border-radius: 12px; }

.card-back {
  color: var(--cream);
  background:
    radial-gradient(circle at center, rgba(240, 199, 107, 0.26), transparent 38%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.12), rgba(255,255,255,0.12) 4px, transparent 4px, transparent 10px),
    linear-gradient(145deg, #8a1f27, #3d0d16);
}

.card-back::after {
  content: "TRUCO";
  font-family: "Bebas Neue", sans-serif;
  font-size: 1.8rem;
  letter-spacing: 0.08em;
}

.card-rank {
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: clamp(2.6rem, 7vw, 4.8rem);
  line-height: 0.8;
}

.card-suit {
  margin-top: 8px;
  font-size: clamp(1.4rem, 4vw, 2.4rem);
}

.corner {
  position: absolute;
  display: grid;
  top: 9px;
  left: 9px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.corner.bottom {
  inset: auto 9px 9px auto;
  transform: rotate(180deg);
}

.manilha-badge {
  position: absolute;
  right: 8px;
  top: 8px;
  padding: 3px 6px;
  border-radius: 999px;
  color: #3b2604;
  background: var(--gold);
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.ghost-card,
.placeholder {
  color: rgba(255, 244, 220, 0.54);
  border: 1px dashed rgba(255, 244, 220, 0.24);
  background: rgba(0, 0, 0, 0.18);
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.03);
}

.controls-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 18px;
  padding: 16px;
  border-radius: 22px;
}

button,
select {
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
}

button {
  color: #261803;
  background: linear-gradient(135deg, #ffe49b, var(--gold));
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.24);
}

button.secondary {
  color: var(--cream);
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid var(--line);
}

button.danger {
  color: var(--cream);
  background: linear-gradient(135deg, #983030, #521616);
}

button:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
}

button.card {
  padding: 0;
  border-radius: 15px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 239, 205, 0.96)),
    var(--cream);
}

.card.card-back {
  background:
    radial-gradient(circle at center, rgba(240, 199, 107, 0.26), transparent 38%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.12), rgba(255,255,255,0.12) 4px, transparent 4px, transparent 10px),
    linear-gradient(145deg, #8a1f27, #3d0d16);
}

.difficulty {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-left: auto;
  color: var(--muted);
}

.lesson-picker {
  margin-left: 0;
}

select {
  color: var(--cream);
  background: rgba(0, 0, 0, 0.32);
  border: 1px solid var(--line);
}

.betting-panel {
  display: grid;
  grid-template-columns: minmax(220px, 360px) 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 18px;
  padding: 18px 20px;
  border-radius: 26px;
}

.betting-panel h2 {
  margin-bottom: 4px;
}

.betting-panel p {
  margin: 0;
  color: #d8e7e1;
  line-height: 1.45;
}

.bet-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.rules-panel {
  display: grid;
  grid-template-columns: minmax(220px, 330px) 1fr;
  gap: 18px;
  margin-top: 18px;
  padding: 22px;
  border-radius: 28px;
}

.rules-panel p {
  color: #d8e7e1;
  line-height: 1.55;
}

.rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.rule-grid article {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(0, 0, 0, 0.2);
}

.rule-grid strong {
  display: block;
  color: var(--gold);
  margin-bottom: 6px;
}

.rule-grid p {
  margin: 0;
}

.review-panel {
  display: grid;
  grid-template-columns: minmax(180px, 260px) 1fr;
  gap: 18px;
  margin-top: 18px;
  padding: 22px;
  border-radius: 28px;
}

#reviewList {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 22px;
  color: #d8e7e1;
}

#reviewList li::marker { color: var(--gold); font-weight: 900; }

@media (max-width: 760px) {
  .table-shell { width: min(100% - 16px, 1180px); padding-top: 8px; }
  .hero-panel, .review-panel { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; }
  .betting-panel { grid-template-columns: 1fr; }
  .bet-actions { justify-content: flex-start; }
  .rules-panel { grid-template-columns: 1fr; }
  .rule-grid { grid-template-columns: 1fr; }
  .score-card { min-width: 0; }
  .game-table { min-height: 0; padding: 16px; border-width: 6px; border-radius: 30px; }
  .top-row { grid-template-columns: 1fr; }
  .round-panel { grid-template-columns: repeat(3, 1fr); align-items: center; }
  .center-stage { grid-template-columns: 1fr; margin: 18px 0; }
  .status-orb { order: -1; min-height: 112px; border-radius: 28px; }
  .hand { min-height: 116px; }
  .difficulty { width: 100%; margin-left: 0; justify-content: space-between; }
  .difficulty select { max-width: 58%; }
}
