:root {
  color-scheme: dark;
  --bg: #10130f;
  --panel: #181d16;
  --panel-2: #202719;
  --text: #f2ead7;
  --muted: #b9ad95;
  --line: #3b4730;
  --accent: #d8a84f;
  --accent-2: #75b266;
  --danger: #e27d66;
}

* {
  box-sizing: border-box;
}

html {
  touch-action: manipulation;
}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: radial-gradient(circle at top, #202917, var(--bg) 45%);
  color: var(--text);
}

button,
input,
select {
  font: inherit;
  touch-action: manipulation;
}

button {
  border: 0;
  border-radius: 8px;
  padding: 11px 14px;
  background: var(--accent);
  color: #17130a;
  font-weight: 800;
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

button.primary {
  width: 100%;
  margin-top: 16px;
  font-size: 1.05rem;
}

input,
select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px 12px;
  background: #0f120d;
  color: var(--text);
  font-size: 16px;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: clamp(2rem, 7vw, 4rem);
  line-height: 0.95;
}

h2 {
  margin-bottom: 14px;
}

h3 {
  margin-bottom: 4px;
}

.app {
  width: min(1180px, calc(100% - 24px));
  margin: 0 auto;
  padding: 18px 0 32px;
}

.topbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.eyebrow {
  margin-bottom: 8px;
  color: var(--accent);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.phase {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  background: #0f120d;
  color: var(--accent);
  font-weight: 900;
}

.panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: rgba(24, 29, 22, 0.92);
}

.grid {
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 16px;
  margin-top: 16px;
}

.join-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}

.hint,
.muted {
  color: var(--muted);
}

.warning {
  color: var(--danger);
  font-weight: 800;
}

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

.settings label span,
.stable-select-tools label span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.92rem;
}

.player,
.result-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
}

.result-summary {
  margin: 12px 0;
  border-top: 1px solid var(--line);
}

.player span {
  display: block;
  color: var(--muted);
  font-size: 0.85rem;
}

.log {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.92rem;
}

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

.big-money {
  color: var(--accent);
  font-size: 2rem;
  font-weight: 900;
}

.actions {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.horse-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: var(--panel-2);
}

.horse-card.selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(216, 168, 79, 0.25);
}

.hero-card {
  margin-bottom: 14px;
}

.horse-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.horse-head p {
  color: var(--muted);
  margin-bottom: 10px;
}

.attrs {
  display: grid;
  gap: 8px;
}

.attrs div {
  display: grid;
  grid-template-columns: 94px 1fr 34px;
  gap: 8px;
  align-items: center;
}

meter {
  width: 100%;
}

.train-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.train-buttons button {
  padding: 9px;
  font-size: 0.88rem;
}

.track {
  display: grid;
  gap: 12px;
}

.lane-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 6px;
}

.lane-meta strong {
  color: var(--text);
}

.lane-meta em {
  min-width: 58px;
  border-radius: 999px;
  padding: 4px 9px;
  background: rgba(216, 168, 79, 0.16);
  color: var(--accent);
  font-style: normal;
  font-weight: 900;
  text-align: center;
}

.rail {
  position: relative;
  height: 18px;
  border-radius: 999px;
  background: #0f120d;
  overflow: hidden;
}

.rail::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.04) 0,
      rgba(255, 255, 255, 0.04) 2px,
      transparent 2px,
      transparent 42px
    ),
    linear-gradient(180deg, rgba(117, 178, 102, 0.22), rgba(44, 92, 43, 0.18));
}

.rail::after {
  content: "";
  position: absolute;
  top: 0;
  right: 16px;
  width: 10px;
  height: 100%;
  background:
    repeating-linear-gradient(
      0deg,
      #f4ead5 0,
      #f4ead5 7px,
      #17130a 7px,
      #17130a 14px
    );
  box-shadow: 0 0 0 1px rgba(244, 234, 213, 0.35), 0 0 18px rgba(216, 168, 79, 0.35);
  opacity: 0.9;
}

.horse-dot {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  background: var(--stable-color, var(--accent-2));
  box-shadow: 0 0 18px var(--stable-color, rgba(117, 178, 102, 0.6));
  transition: left 220ms linear;
}

.race-horse {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 58px;
  height: 38px;
  transform: translate(-36px, -58%);
  transition: left 220ms linear;
  animation: horse-bob 360ms ease-in-out infinite;
}

.horse-shape {
  position: absolute;
  left: 11px;
  top: 13px;
  width: 34px;
  height: 15px;
  border-radius: 12px 14px 10px 12px;
  background: linear-gradient(180deg, #7b4a25, #4d2c17);
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.22);
}

.horse-neck {
  position: absolute;
  right: -3px;
  top: -8px;
  width: 11px;
  height: 18px;
  border-radius: 8px 8px 2px 2px;
  background: #6a3f20;
  transform: rotate(-32deg);
  transform-origin: bottom center;
}

.horse-head-shape {
  position: absolute;
  right: -15px;
  top: -12px;
  width: 17px;
  height: 11px;
  border-radius: 10px 11px 8px 4px;
  background: #6a3f20;
  transform: rotate(-12deg);
}

.horse-head-shape::before {
  content: "";
  position: absolute;
  right: 2px;
  top: -4px;
  width: 4px;
  height: 7px;
  border-radius: 4px 4px 0 0;
  background: #4d2c17;
  transform: rotate(18deg);
}

.horse-tail {
  position: absolute;
  left: -10px;
  top: 1px;
  width: 14px;
  height: 5px;
  border-radius: 999px 0 0 999px;
  background: #25150c;
  transform: rotate(-22deg);
  transform-origin: right center;
  animation: tail-flick 520ms ease-in-out infinite;
}

.horse-leg {
  position: absolute;
  top: 12px;
  width: 4px;
  height: 17px;
  border-radius: 4px;
  background: #331d10;
  transform-origin: top center;
  animation: gallop-front 360ms ease-in-out infinite;
}

.leg-front-a {
  right: 5px;
}

.leg-front-b {
  right: 12px;
  animation-name: gallop-back;
}

.leg-back-a {
  left: 8px;
  animation-name: gallop-back;
}

.leg-back-b {
  left: 15px;
}

.jockey {
  position: absolute;
  left: 23px;
  top: 0;
  z-index: 3;
  width: 17px;
  height: 20px;
  transform: rotate(11deg);
  transform-origin: bottom center;
  animation: jockey-lean 360ms ease-in-out infinite;
}

.jockey-head {
  position: absolute;
  left: 5px;
  top: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #f0c28f;
}

.jockey-body {
  position: absolute;
  left: 2px;
  top: 8px;
  width: 14px;
  height: 10px;
  border-radius: 4px 4px 8px 8px;
  background: var(--stable-color, var(--accent-2));
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.2), 0 0 10px var(--stable-color, rgba(117, 178, 102, 0.5));
}

.horse-shadow {
  position: absolute;
  left: 7px;
  right: 2px;
  bottom: 1px;
  height: 5px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.34);
  filter: blur(1px);
}

@keyframes horse-bob {
  0%,
  100% {
    margin-top: 1px;
  }
  50% {
    margin-top: -2px;
  }
}

@keyframes gallop-front {
  0%,
  100% {
    transform: rotate(25deg);
  }
  50% {
    transform: rotate(-32deg);
  }
}

@keyframes gallop-back {
  0%,
  100% {
    transform: rotate(-28deg);
  }
  50% {
    transform: rotate(30deg);
  }
}

@keyframes jockey-lean {
  0%,
  100% {
    transform: rotate(9deg) translateY(0);
  }
  50% {
    transform: rotate(13deg) translateY(1px);
  }
}

@keyframes tail-flick {
  0%,
  100% {
    transform: rotate(-18deg);
  }
  50% {
    transform: rotate(-34deg);
  }
}

.result-row {
  grid-template-columns: 42px 1fr auto;
}

@media (max-width: 800px) {
  .topbar {
    align-items: start;
    flex-direction: column;
  }

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

  .settings {
    grid-template-columns: 1fr;
  }

  .actions,
  .join-row,
  .stable-select-tools {
    grid-template-columns: 1fr;
  }
}

.controller-body {
  background: #10130f;
}

.controller-app {
  width: min(560px, calc(100% - 20px));
  margin: 0 auto;
  padding: 14px 0 28px;
}

.database-app {
  width: min(1180px, calc(100% - 20px));
  margin: 0 auto;
  padding: 18px 0 32px;
}

.database-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.text-link {
  color: var(--accent);
  font-weight: 900;
}

.database-editor-actions {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto auto auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 10px;
}

.database-section-picker span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.9rem;
}

button.primary-inline {
  background: var(--accent-2);
}

.database-editor {
  width: 100%;
  min-height: 70vh;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #0f120d;
  color: var(--text);
  font-family: Consolas, Monaco, "Courier New", monospace;
  font-size: 13px;
  line-height: 1.45;
}

.horse-database {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.database-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-2);
}

.database-row-main {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.database-row-main p {
  margin-bottom: 0;
  color: var(--muted);
}

.database-row-main > strong {
  color: var(--accent);
  white-space: nowrap;
}

.database-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.database-stats span {
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 8px;
  background: #0f120d;
  color: var(--muted);
}

.database-stats strong {
  display: block;
  margin-top: 3px;
  color: var(--text);
}

.race-history-list {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}

.race-history-list div {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  border-top: 1px solid rgba(185, 173, 149, 0.18);
  padding-top: 6px;
}

.race-history-list em {
  color: var(--accent);
  font-style: normal;
  font-weight: 900;
}

.controller-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.controller-header h1 {
  font-size: 2.2rem;
}

.controller-status {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.controller-app > #statusPanel {
  position: sticky;
  top: 0;
  z-index: 5;
}

.controller-status div,
.bid-box div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #0f120d;
}

.controller-status span,
.bid-box span {
  display: block;
  color: var(--muted);
  font-size: 0.82rem;
}

.controller-status small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
}

.controller-status strong,
.bid-box strong {
  display: block;
  margin-top: 4px;
  font-size: 1.1rem;
}

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

.bid-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.quick-bids {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.stacked {
  grid-template-columns: 1fr;
}

.controller-list {
  display: grid;
  gap: 12px;
}

.race-card-panel {
  margin: 12px 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #0f120d;
}

.race-card-panel h3 {
  margin-bottom: 8px;
  color: var(--accent);
}

.next-race-panel {
  padding: 8px;
}

.next-race-panel h3 {
  margin-bottom: 6px;
}

.race-card-list {
  display: grid;
  gap: 8px;
}

.race-card-item {
  display: grid;
  grid-template-columns: auto auto;
  gap: 3px 8px;
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 8px;
  background: rgba(24, 29, 22, 0.8);
}

.race-card-item.current {
  border-color: var(--accent);
}

.race-card-item strong,
.race-card-item em,
.race-card-item small {
  grid-column: 1 / -1;
}

.race-card-item span,
.race-card-item small {
  color: var(--muted);
}

.race-card-item em {
  color: var(--text);
  font-style: normal;
  font-weight: 800;
}

.controller-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-2);
}

.controller-card.selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(216, 168, 79, 0.25);
}

.controller-card.disabled-card {
  opacity: 0.62;
}

.controller-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}

.button-stack {
  display: grid;
  gap: 7px;
  min-width: 112px;
}

.controller-card-head p {
  margin-bottom: 0;
  color: var(--muted);
}

.mini-attrs {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.horse-stat-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.horse-stat-strip span {
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 7px;
  background: #0f120d;
  color: var(--muted);
  font-size: 0.78rem;
}

.horse-stat-strip strong {
  display: block;
  margin-top: 2px;
  color: var(--text);
  font-size: 0.92rem;
}

.mini-attrs div {
  display: grid;
  grid-template-columns: 1fr 36px minmax(82px, auto);
  align-items: center;
  gap: 8px;
}

.mini-attrs span {
  color: var(--muted);
}

.mini-attrs button {
  padding: 7px 8px;
}

.stable-select-tools {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: end;
  margin-bottom: 12px;
}

.new-stable-panel {
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 12px;
  background: rgba(15, 18, 13, 0.65);
}

.new-stable-panel p {
  margin-bottom: 8px;
}

@media (max-width: 480px) {
  .database-editor-actions {
    grid-template-columns: 1fr;
  }

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

  .controller-status div {
    padding: 8px;
  }

  .controller-status strong {
    font-size: 1rem;
  }
}

.display-body {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 0%, rgba(216, 168, 79, 0.18), transparent 34%),
    radial-gradient(circle at 80% 15%, rgba(117, 178, 102, 0.16), transparent 32%),
    #0c100a;
}

.display-app {
  width: min(1500px, calc(100% - 56px));
  height: 100vh;
  height: 100dvh;
  margin: 0 auto;
  padding: 14px 0;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
  overflow: hidden;
}

.display-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.display-header h1 {
  font-size: clamp(2.4rem, 5vw, 5.2rem);
}

.display-meta {
  display: flex;
  gap: 8px;
  justify-items: end;
}

.display-meta span,
.display-meta strong {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 12px;
  background: rgba(15, 18, 13, 0.88);
}

.display-meta span {
  color: var(--accent);
  font-weight: 900;
}

.display-panel {
  min-height: 0;
  overflow: hidden;
}

.display-grid,
.auction-display,
.results-display {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 20px;
  height: 100%;
  min-height: 0;
}

.display-card,
.race-display,
.center-message {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: rgba(24, 29, 22, 0.92);
  min-height: 0;
}

.center-message {
  min-height: 100%;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.center-message h2,
.display-grid h2,
.horse-feature h2,
.race-title h2,
.results-display h2 {
  font-size: clamp(2rem, 4vw, 4.2rem);
  line-height: 0.95;
}

.display-kicker {
  margin-bottom: 6px;
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.join-url {
  display: inline-block;
  margin: 16px 0;
  border-radius: 8px;
  padding: 16px 20px;
  background: #0f120d;
  color: var(--accent);
  font-size: clamp(1.4rem, 3vw, 3rem);
  font-weight: 900;
}

.display-players {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

.display-players.slim {
  margin-top: 18px;
}

.display-player {
  border: 1px solid var(--line);
  border-left: 6px solid var(--stable-color, var(--accent));
  border-radius: 8px;
  padding: 10px 12px;
  background: #0f120d;
}

.display-player strong,
.display-player span {
  display: block;
}

.display-player span {
  margin-top: 6px;
  color: var(--muted);
}

.display-player.eliminated,
.stable-tile.eliminated,
.ready-pill.eliminated,
.display-result-row.eliminated {
  opacity: 0.48;
}

.brand-dot {
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  border-radius: 50%;
  margin-right: 0.42em;
  background: var(--stable-color, var(--accent));
  box-shadow: 0 0 10px var(--stable-color, var(--accent));
  vertical-align: -0.04em;
}

.brand-picker {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 7px;
  margin-top: 10px;
}

.swatch {
  min-height: 34px;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  background: var(--stable-color);
}

.swatch.selected {
  border-color: var(--text);
  box-shadow: 0 0 0 2px var(--stable-color);
}

.swatch.unavailable {
  filter: grayscale(0.9);
  opacity: 0.28;
}

.auction-screen {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 0.9fr) minmax(0, 1.15fr);
  gap: 10px;
  overflow: hidden;
}

.auction-display {
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 10px;
  height: 100%;
  min-height: 0;
}

.auction-board {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 10px;
  margin-top: 0;
  min-height: 0;
}

.auction-board-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.auction-board-title h3 {
  font-size: clamp(1.15rem, 1.6vw, 1.55rem);
}

.auction-board-title strong {
  color: var(--accent);
  font-size: clamp(1.15rem, 2vw, 1.9rem);
}

.stable-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
  gap: 8px;
  min-height: 0;
  overflow: hidden;
}

.stable-tile {
  border: 1px solid var(--line);
  border-left: 6px solid var(--stable-color, var(--accent));
  border-radius: 8px;
  padding: 8px 10px;
  background: #0f120d;
  min-width: 0;
}

.stable-head,
.stable-horses div,
.upcoming-horses div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.stable-head {
  margin-bottom: 6px;
  color: var(--accent);
}

.stable-head span {
  color: var(--muted);
  font-size: 0.95rem;
}

.stable-horses {
  display: grid;
  gap: 4px;
  font-size: 0.88rem;
}

.stable-horses div,
.upcoming-horses div {
  border-top: 1px solid rgba(185, 173, 149, 0.16);
  padding-top: 4px;
  color: var(--muted);
}

.stable-horses strong,
.upcoming-horses strong {
  color: var(--text);
}

.upcoming-horses {
  display: grid;
  gap: 4px;
  font-size: 0.9rem;
  max-height: 145px;
  margin-bottom: 8px;
  overflow: hidden;
}

.compact-title {
  margin-top: 10px;
}

.display-race-card {
  gap: 5px;
  font-size: 0.85rem;
}

.display-race-card .race-card-item {
  padding: 6px 7px;
}

.horse-history-panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.horse-history-panel div {
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 7px;
  background: #0f120d;
}

.horse-history-panel span {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
}

.horse-history-panel strong {
  display: block;
  margin-top: 3px;
  color: var(--accent);
  font-size: 1rem;
}

.auction-title,
.race-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
}

.rating-badge {
  border-radius: 8px;
  padding: 12px;
  background: var(--accent);
  color: #17130a;
  font-size: 2rem;
  font-weight: 900;
}

.display-attrs {
  gap: 8px;
}

.display-attrs div {
  grid-template-columns: 105px 1fr 42px;
  font-size: 1rem;
}

.bid-display {
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.bid-amount {
  color: var(--accent);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 900;
  line-height: 1;
}

.leader {
  margin-top: 8px;
  font-size: 1.4rem;
}

.timer {
  width: 92px;
  height: 92px;
  display: grid;
  place-items: center;
  margin-top: 14px;
  border: 4px solid var(--accent);
  border-radius: 50%;
  font-size: 2.8rem;
  font-weight: 900;
}

.ready-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  width: min(900px, 100%);
  margin-top: 28px;
}

.ready-pill {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: #0f120d;
  text-align: left;
}

.ready-pill strong {
  display: block;
  margin-top: 6px;
  color: var(--muted);
}

.ready-pill.ready {
  border-color: var(--accent-2);
}

.ready-pill.ready strong {
  color: var(--accent-2);
}

.entry-count {
  margin-top: 12px;
  color: var(--accent);
  font-size: clamp(2.6rem, 6vw, 6rem);
  font-weight: 900;
}

.countdown-number {
  color: var(--accent);
  font-size: clamp(8rem, 24vw, 18rem);
  font-weight: 900;
  line-height: 0.9;
}

.race-display {
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 18px;
}

.big-track {
  height: 100%;
  align-content: stretch;
  grid-auto-rows: minmax(0, 1fr);
  gap: 6px;
}

.big-track .rail {
  height: 100%;
  min-height: 34px;
  max-height: 46px;
  border: 1px solid rgba(216, 168, 79, 0.18);
}

.big-track .horse-dot {
  width: 24px;
  height: 24px;
}

.big-track .lane-meta {
  margin-bottom: 3px;
  font-size: clamp(0.72rem, 1.2vw, 0.92rem);
  line-height: 1.1;
}

.big-track .lane {
  min-height: 0;
  display: grid;
  grid-template-rows: auto 1fr;
}

.display-result-row {
  display: grid;
  grid-template-columns: 70px 1fr minmax(180px, auto) 130px;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 14px 0;
  font-size: clamp(1.15rem, 2vw, 1.7rem);
}

.prize-money {
  color: var(--accent);
  text-align: right;
}

.display-result-row.winner {
  color: var(--accent);
}

.final-standings {
  width: min(900px, 100%);
}

@media (max-width: 900px) {
  .display-body {
    overflow: auto;
  }

  .display-app {
    width: min(100% - 24px, 900px);
    height: auto;
  }

  .display-header,
  .display-grid,
  .auction-display,
  .auction-screen,
  .auction-board,
  .results-display {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .auction-screen {
    grid-template-rows: auto auto;
  }

  .display-header {
    align-items: start;
  }
}

.bet-slip {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

.bet-slip-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid rgba(185, 173, 149, 0.18);
  padding-top: 8px;
  color: var(--muted);
}

.bet-slip-row strong {
  color: var(--accent);
  white-space: nowrap;
}

.bet-slip-row.winner strong {
  color: var(--accent-2);
}

.betting-card .controller-card-head {
  margin-bottom: 8px;
}

.betting-odds-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bet-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}

.bet-actions > div {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 8px;
  background: #0f120d;
}

.bet-actions strong {
  color: var(--accent);
}

.betting-display {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
  gap: 16px;
  height: 100%;
  min-height: 0;
}

.market-table {
  display: grid;
  gap: 7px;
  min-height: 0;
  max-height: calc(100vh - 210px);
  overflow: hidden;
}

.market-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.5fr) minmax(90px, 0.7fr) repeat(4, minmax(72px, 0.55fr)) minmax(82px, 0.55fr) minmax(92px, 0.55fr);
  gap: 8px;
  align-items: center;
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 8px 10px;
  background: #0f120d;
  font-size: clamp(0.78rem, 1.05vw, 0.98rem);
}

.market-row span {
  color: var(--muted);
}

.market-row em {
  color: var(--accent);
  font-style: normal;
  font-weight: 900;
}

.betting-results-panel {
  display: grid;
  gap: 6px;
  margin-top: 16px;
}

.betting-results-panel div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid rgba(185, 173, 149, 0.18);
  padding-top: 6px;
  color: var(--muted);
}

.betting-results-panel strong {
  color: var(--accent-2);
}

@media (max-width: 800px) {
  .bet-actions {
    grid-template-columns: 1fr;
  }

  .betting-odds-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* v8-17 streamlined betting and live bet slips */
.compact-section-header {
  gap: 10px;
  align-items: center;
}

.compact-section-header h2 {
  margin-bottom: 4px;
}

.compact-section-header button {
  padding: 8px 10px;
  font-size: 0.92rem;
  white-space: nowrap;
}

.compact-betting-list {
  display: grid;
  gap: 7px;
}

.compact-bet-summary {
  padding: 9px 10px;
  margin-bottom: 8px;
}

.compact-bet-summary h3 {
  margin-bottom: 2px;
  font-size: 1rem;
}

.compact-bet-summary .bet-slip-row {
  padding-top: 5px;
  font-size: 0.86rem;
}

.compact-bet-row {
  padding: 8px 9px;
}

.compact-bet-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.compact-bet-top strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-bet-top span {
  color: var(--accent);
  font-size: 0.86rem;
  font-weight: 900;
  white-space: nowrap;
}

.compact-bet-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.15;
}

.compact-bet-actions {
  display: grid;
  gap: 5px;
}

.compact-bet-line {
  display: grid;
  grid-template-columns: 48px repeat(3, minmax(42px, 1fr));
  gap: 5px;
  align-items: center;
}

.compact-bet-line span {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 900;
}

.tiny-bet-btn,
.compact-bet-line button {
  min-height: 28px;
  padding: 5px 4px;
  border-radius: 6px;
  font-size: 0.76rem;
  line-height: 1;
}

.race-live-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 310px);
  gap: 12px;
}

.race-track-wrap {
  min-height: 0;
  display: grid;
}

.race-bet-slip-panel {
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 10px;
  background: #0f120d;
}

.race-bet-slip-panel h3 {
  margin-bottom: 8px;
  color: var(--accent);
  font-size: 1rem;
}

.race-bet-slip-list {
  display: grid;
  gap: 6px;
  max-height: 100%;
  overflow: hidden;
}

.race-bet-slip-row {
  display: grid;
  gap: 2px;
  border-top: 1px solid rgba(185, 173, 149, 0.13);
  padding-top: 6px;
  font-size: clamp(0.68rem, 0.9vw, 0.86rem);
}

.race-bet-slip-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.race-bet-slip-row strong {
  color: var(--text);
}

.race-bet-slip-row span {
  color: var(--muted);
}

.race-bet-slip-row em {
  color: var(--accent);
  font-style: normal;
  font-weight: 900;
}

@media (max-width: 900px) {
  .compact-bet-line {
    grid-template-columns: 44px repeat(3, minmax(38px, 1fr));
  }

  .race-live-layout {
    grid-template-columns: 1fr;
  }

  .race-bet-slip-panel {
    display: none;
  }
}

.hidden {
  display: none !important;
}

.database-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.horse-tools-panel {
  margin-bottom: 12px;
}

.horse-filter-grid,
.horse-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 10px;
}

.horse-filter-grid label span,
.horse-form-grid label span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 800;
}

.horse-toolbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.ghost-button {
  border: 1px solid var(--line);
  background: #0f120d;
  color: var(--text);
}

.danger-button {
  background: var(--danger);
  color: #190905;
}

.small-button {
  padding: 7px 9px;
  font-size: 0.78rem;
  border-radius: 7px;
}

.horse-row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.horse-row-actions strong {
  color: var(--accent);
  white-space: nowrap;
}

.horse-form-panel {
  margin-bottom: 12px;
  border-color: rgba(216, 168, 79, 0.55);
}

.horse-form-grid {
  margin-top: 12px;
}

.horse-form-grid .span-two,
.span-two {
  grid-column: span 2;
}

.horse-form-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.horse-form-actions button {
  min-width: 150px;
}

.compact-database-stats {
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 6px;
}

.compact-database-stats span {
  padding: 6px 7px;
  font-size: 0.86rem;
}

@media (max-width: 720px) {
  .database-header {
    align-items: start;
    flex-direction: column;
  }

  .database-header-actions {
    justify-content: flex-start;
  }

  .horse-form-grid .span-two,
  .span-two {
    grid-column: span 1;
  }

  .database-row-main {
    flex-direction: column;
  }

  .horse-row-actions {
    justify-content: flex-start;
  }
}

/* =========================================================
   Layered race animation renderer
   Fixed playback: 2.5x | Fixed camera window: 350m
   ========================================================= */

.race-animation-display {
  padding: 12px;
  gap: 10px;
}

.race-animation-title {
  align-items: center;
}

.race-animation-title h2 {
  font-size: clamp(1.7rem, 3vw, 3.3rem);
}

.race-live-readout {
  display: grid;
  justify-items: end;
  gap: 4px;
  text-align: right;
}

.race-live-readout strong {
  color: var(--accent);
  font-size: clamp(1rem, 1.7vw, 1.55rem);
}

.race-live-readout span {
  color: var(--muted);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.race-animation-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 10px;
}

.race-camera {
  position: relative;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(185, 173, 149, 0.25);
  border-radius: 8px;
  background: #8fbe63;
  isolation: isolate;
}

.race-sky {
  position: absolute;
  inset: 0 0 auto 0;
  height: 22%;
  background: linear-gradient(#bcdff1, #eef7fb);
  z-index: 0;
}

.race-distant {
  position: absolute;
  left: -20%;
  top: 10%;
  width: 180%;
  height: 19%;
  opacity: 0.5;
  background:
    radial-gradient(ellipse at 10% 100%, #6f9554 0 14%, transparent 14.5%),
    radial-gradient(ellipse at 30% 100%, #62864b 0 18%, transparent 18.5%),
    radial-gradient(ellipse at 50% 100%, #759d58 0 15%, transparent 15.5%),
    radial-gradient(ellipse at 70% 100%, #648b4c 0 18%, transparent 18.5%),
    radial-gradient(ellipse at 90% 100%, #5f8247 0 15%, transparent 15.5%);
  background-size: 360px 150px;
  background-repeat: repeat-x;
  will-change: transform;
  z-index: 1;
}

.race-track-surface {
  position: absolute;
  inset: 22% 0 0 0;
  background:
    repeating-linear-gradient(
      90deg,
      #88be59 0 78px,
      #7fb352 78px 156px
    );
  z-index: 0;
}

.race-track-sheen {
  position: absolute;
  inset: 22% 0 0 0;
  background:
    linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.08),
      rgba(255, 255, 255, 0) 18%,
      rgba(0, 0, 0, 0.05) 100%
    );
  pointer-events: none;
  z-index: 2;
}

.race-course-rail {
  position: absolute;
  left: 0;
  right: 0;
  top: 24.5%;
  height: 4px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 7px 0 rgba(255, 255, 255, 0.84);
  z-index: 10;
}

.race-lane-layer,
.race-marker-layer,
.race-horses-layer {
  position: absolute;
  inset: 0;
}

.race-lane-layer {
  z-index: 2;
}

.race-marker-layer {
  z-index: 6;
  pointer-events: none;
}

.race-horses-layer {
  z-index: 12;
  pointer-events: none;
}

.race-lane-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  opacity: 0.25;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.8) 0 18px,
      rgba(255, 255, 255, 0) 18px 34px
    );
}

.race-distance-marker {
  position: absolute;
  top: 16%;
  width: 72px;
  transform: translateX(-50%);
  text-align: center;
  z-index: 6;
}

.race-distance-sign {
  display: inline-block;
  min-width: 52px;
  padding: 5px 7px;
  border: 2px solid #17212b;
  border-radius: 5px;
  background: #fff;
  color: #17212b;
  font-size: 11px;
  font-weight: 900;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16);
}

.race-distance-post {
  width: 4px;
  height: 48px;
  margin: 0 auto;
  border-left: 1px solid #888;
  border-right: 1px solid #888;
  background: #f1f1f1;
}

.race-finish-marker {
  position: absolute;
  top: 14%;
  bottom: 4%;
  width: 88px;
  transform: translateX(-50%);
  z-index: 8;
  pointer-events: none;
}

.race-finish-sign {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 5px;
  padding: 5px 8px;
  background: #17212b;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.race-finish-line {
  position: absolute;
  left: 50%;
  top: 31%;
  bottom: 2%;
  width: 16px;
  transform: translateX(-50%);
  background:
    linear-gradient(45deg, #111 25%, transparent 25%) 0 0 / 12px 12px,
    linear-gradient(45deg, transparent 75%, #111 75%) 0 0 / 12px 12px,
    linear-gradient(45deg, transparent 75%, #111 75%) 6px -6px / 12px 12px,
    linear-gradient(45deg, #111 25%, #fff 25%, #fff 75%, transparent 75%) 6px -6px / 12px 12px;
  opacity: 0.95;
}

.animated-racehorse {
  position: absolute;
  width: 260px;
  height: 150px;
  transform-origin: center center;
  will-change: left, top, transform;
}

.animated-horse-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.animated-jockey-back  { z-index: 1; }
.animated-horse-base   { z-index: 2; }
.animated-cloth        { z-index: 3; }
.animated-cloth-number { z-index: 4; }
.animated-saddle       { z-index: 5; }
.animated-jockey-front { z-index: 6; }

.race-animation-sidebar {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 8px;
  overflow: hidden;
}

.race-position-panel {
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(185, 173, 149, 0.18);
  border-radius: 8px;
  padding: 9px;
  background: #0f120d;
}

.race-sidebar-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}

.race-sidebar-heading h3 {
  margin: 0;
  color: var(--accent);
  font-size: 0.95rem;
}

.race-sidebar-heading span {
  color: var(--muted);
  font-size: 0.62rem;
}

.race-position-list {
  display: grid;
  gap: 4px;
}

.race-position-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  border-left: 3px solid transparent;
  border-radius: 6px;
  padding: 4px 6px;
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.72rem;
}

.race-position-row.offscreen {
  border-left-color: #e84d5b;
  background: rgba(232, 77, 91, 0.08);
}

.race-position-row .rank {
  color: var(--accent);
  font-size: 1rem;
  font-weight: 900;
}

.race-position-row .name {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.race-position-row .name strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 0.72rem;
}

.race-position-row .name small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 0.61rem;
}

.race-position-row .gap {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.race-animation-sidebar .race-bet-slip-panel {
  max-height: 190px;
  overflow: hidden;
  padding: 8px;
}

.race-animation-sidebar .race-bet-slip-panel h3 {
  margin-bottom: 5px;
  font-size: 0.85rem;
}

.race-animation-sidebar .race-bet-slip-list {
  gap: 3px;
}

.race-animation-sidebar .race-bet-slip-row {
  padding-top: 3px;
  font-size: 0.62rem;
}

@media (max-width: 1000px) {
  .race-animation-layout {
    grid-template-columns: minmax(0, 1fr) 220px;
  }

  .animated-racehorse {
    width: 220px;
    height: 127px;
  }

  .race-position-row {
    min-height: 34px;
  }
}

@media (max-width: 760px) {
  .race-animation-layout {
    grid-template-columns: 1fr;
  }

  .race-animation-sidebar {
    display: none;
  }
}

/* +1 / +5 / +10 training controls */
.training-attrs .training-attr-row {
  display: grid;
  grid-template-columns: 1fr 40px;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(185,173,149,0.14);
}

.training-bundle-buttons {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 7px !important;
}

.training-bundle-buttons button {
  display: grid;
  gap: 2px;
  padding: 8px 5px;
}

.training-bundle-buttons small {
  font-size: 0.72rem;
  opacity: 0.8;
}


/* ========================================================
   LEGACY_UI_V1
   ======================================================== */

.legacy-goal-panel {
  margin: 14px 0;
  border: 1px solid rgba(216,168,79,.55);
  border-radius: 10px;
  padding: 16px;

  background:
    linear-gradient(
      135deg,
      rgba(216,168,79,.13),
      rgba(117,178,102,.08)
    );
}

.legacy-goal-panel h3 {
  margin: 5px 0 7px;
}

.legacy-goal-panel p {
  margin-bottom: 10px;
  color: var(--muted);
}

.legacy-eyebrow {
  color: var(--accent);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .09em;
}

.legacy-ranks {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin-top: 10px;
}

.legacy-ranks span {
  color: var(--muted);
  font-size: .68rem;
}


.hall-of-fame-panel {
  margin: 14px 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: #0f120d;
}

.hall-of-fame-panel summary {
  padding: 13px;
  color: var(--accent);
  font-weight: 900;
  cursor: pointer;
}

.hall-empty {
  padding: 0 13px 13px;
}


.goat-table {
  border-top: 1px solid var(--line);
}

.goat-row {
  display: grid;

  grid-template-columns:
    28px
    minmax(130px,1fr)
    46px
    58px
    minmax(72px,auto);

  gap: 7px;
  align-items: center;

  padding: 9px 10px;

  border-bottom:
    1px solid rgba(185,173,149,.12);

  font-size: .78rem;
}

.goat-head {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.goat-horse {
  min-width: 0;
}

.goat-horse > strong,
.goat-horse > small {
  display: block;
}

.goat-horse > strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.goat-horse > small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .68rem;
}


.retirement-banner {
  margin: 8px 0 14px;

  border:
    1px solid rgba(216,168,79,.65);

  border-radius: 10px;

  padding: 13px;

  text-align: center;

  background:
    rgba(216,168,79,.11);
}

.retirement-banner span,
.retirement-banner strong,
.retirement-banner small {
  display: block;
}

.retirement-banner span {
  color: var(--accent);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .09em;
}

.retirement-banner strong {
  margin: 6px 0;
  font-size: 1.2rem;
}

.retirement-banner small {
  color: var(--muted);
}


@media (max-width: 480px) {

  .goat-row {
    grid-template-columns:
      24px
      minmax(105px,1fr)
      38px
      48px;
  }

  .goat-row > :last-child {
    display: none;
  }

}



/* =========================================================
   ICON_SHOWCASE_UI_CSS_V1
   ========================================================= */

.icon-showcase-panel {
  margin: 18px 0;
  padding: 16px;

  border:
    1px solid rgba(216,168,79,.65);

  border-radius: 12px;

  background:
    linear-gradient(
      135deg,
      rgba(216,168,79,.14),
      rgba(32,25,14,.34)
    );
}

.showcase-kicker {
  display: block;
  color: var(--accent);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.icon-showcase-panel h3,
.showcase-results h2 {
  margin: 5px 0 8px;
}

.showcase-status {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 14px 0;
}

.showcase-status strong {
  font-size: 1.8rem;
  color: var(--accent);
}

.showcase-status span {
  color: var(--muted);
}

.showcase-candidates {
  display: grid;
  gap: 7px;
  margin: 12px 0;
}

.showcase-candidate {
  display: flex;
  justify-content: space-between;
  gap: 12px;

  padding: 8px 10px;

  border:
    1px solid rgba(185,173,149,.14);

  border-radius: 7px;

  background:
    rgba(0,0,0,.14);
}

.showcase-candidate small {
  color: var(--muted);
  text-align: right;
}

.showcase-start-btn {
  width: 100%;
  margin-top: 8px;
}

.showcase-test-box {
  margin-top: 14px;
  padding: 12px;

  border:
    1px dashed rgba(216,168,79,.45);

  border-radius: 8px;
}

.showcase-test-box p {
  margin: 6px 0 10px;
  color: var(--muted);
  font-size: .82rem;
}

.showcase-test-warning {
  padding: 9px 11px;

  border:
    1px dashed rgba(216,168,79,.55);

  border-radius: 7px;

  color: var(--accent);
}

.showcase-result-list {
  display: grid;
  gap: 7px;
  margin: 14px 0;
}

.showcase-result-row {
  display: grid;

  grid-template-columns:
    36px
    minmax(130px,1fr)
    auto;

  align-items: center;
  gap: 10px;

  padding: 10px;

  border:
    1px solid var(--line);

  border-radius: 8px;
}

.showcase-result-row.winner {
  border-color:
    rgba(216,168,79,.8);

  background:
    rgba(216,168,79,.10);
}

.showcase-place {
  font-size: 1.25rem;
  color: var(--accent);
}

.showcase-result-horse strong,
.showcase-result-horse small {
  display: block;
}

.showcase-result-horse small,
.showcase-record {
  color: var(--muted);
}

.last-showcase {
  display: grid;
  gap: 3px;

  margin-top: 14px;
  padding-top: 12px;

  border-top:
    1px solid rgba(185,173,149,.18);
}

.last-showcase small {
  color: var(--muted);
  font-size: .65rem;
  letter-spacing: .08em;
}

.last-showcase em {
  color: var(--muted);
  font-size: .7rem;
}

@media (max-width: 520px) {

  .showcase-result-row {
    grid-template-columns:
      30px 1fr;
  }

  .showcase-record {
    grid-column: 2;
  }

  .showcase-candidate {
    display: block;
  }

  .showcase-candidate small {
    display: block;
    margin-top: 3px;
    text-align: left;
  }

}



/* =========================================================
   SHOWCASE_ECONOMY_UI_CSS_V1
   ========================================================= */

.power-chip-balance {
  color: var(--accent);
}

.rare-showcase {
  position: relative;
  overflow: hidden;

  border:
    2px solid rgba(216,168,79,.78);

  box-shadow:
    0 0 24px rgba(216,168,79,.10);
}

.rare-showcase::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  background:
    radial-gradient(
      circle at top right,
      rgba(216,168,79,.14),
      transparent 42%
    );
}

.showcase-intro {
  position: relative;
  color: var(--muted);
}

.chip-payout-card {
  position: relative;

  margin: 15px 0;
  padding: 12px;

  border:
    1px solid rgba(216,168,79,.42);

  border-radius: 9px;

  background:
    rgba(0,0,0,.18);
}

.chip-payout-card > strong {
  display: block;

  margin-bottom: 9px;

  color: var(--accent);
}

.chip-payout-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0,1fr));

  gap: 6px;

  margin-bottom: 9px;
}

.chip-payout-grid span {
  display: flex;
  justify-content: space-between;
  gap: 5px;

  padding: 6px;

  border:
    1px solid rgba(185,173,149,.12);

  border-radius: 6px;

  font-size: .72rem;
}

.chip-payout-grid b {
  color: var(--accent);
}

.chip-payout-card small {
  display: block;

  color: var(--muted);
}

.showcase-candidate {
  position: relative;
  align-items: center;
}

.showcase-candidate.active-stable-icon {
  border-color:
    rgba(216,168,79,.55);

  background:
    rgba(216,168,79,.08);
}

.active-chip-badge,
.inactive-chip-badge {
  flex: 0 0 auto;

  padding:
    4px 6px;

  border-radius:
    5px;

  font-size:
    .58rem;

  font-weight:
    900;

  letter-spacing:
    .05em;
}

.active-chip-badge {
  color:
    var(--accent);

  border:
    1px solid rgba(216,168,79,.45);
}

.inactive-chip-badge {
  color:
    var(--muted);

  border:
    1px solid rgba(185,173,149,.18);
}

.showcase-result-meta {
  display: grid;

  gap: 4px;

  text-align: right;
}

.chips-earned {
  color: var(--accent);

  font-size: 1rem;
}

.chip-ineligible {
  color: var(--muted);

  font-size: .64rem;
}

.last-showcase-summary {
  display: grid;

  gap: 4px;

  margin:
    16px 0;

  padding:
    12px;

  border:
    1px solid var(--line);

  border-radius:
    8px;
}

.last-showcase-summary > strong {
  font-size:
    1.05rem;
}

.last-showcase-summary small {
  color:
    var(--muted);
}


@media (max-width: 620px) {

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

  .showcase-candidate {
    display: block;
  }

  .active-chip-badge,
  .inactive-chip-badge {
    display: inline-block;

    margin-top: 7px;
  }

  .showcase-result-meta {
    grid-column: 2;

    text-align: left;
  }

}



/* =========================================================
   POWER_UP_UI_CSS_V1
   ========================================================= */

.power-up-panel {
  margin: 14px 0;
  padding: 12px;

  border:
    1px solid rgba(216,168,79,.45);

  border-radius: 10px;

  background:
    rgba(216,168,79,.05);
}

.power-up-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;

  margin-bottom: 14px;
}

.power-up-header h3 {
  margin:
    3px 0 0;
}

.power-up-header > small {
  max-width: 260px;
  color: var(--muted);
  text-align: right;
}

.power-up-kicker {
  color: var(--accent);

  font-size: .62rem;
  font-weight: 900;

  letter-spacing: .1em;
}

.power-up-group {
  display: grid;
  gap: 8px;

  margin-top: 12px;
}

.power-target-card {
  padding: 9px;

  border:
    1px solid rgba(185,173,149,.15);

  border-radius: 8px;

  background:
    rgba(0,0,0,.12);
}

.power-target-card.rival {
  border-color:
    rgba(220,100,100,.18);
}

.power-target-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;

  margin-bottom: 7px;
}

.power-used-badge {
  padding: 3px 5px;

  border-radius: 4px;

  background:
    rgba(216,168,79,.14);

  color: var(--accent);

  font-size: .56rem;
  font-weight: 900;
}

.power-buttons {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );

  gap: 6px;

  margin-top: 7px;
}

.power-button {
  display: grid;
  gap: 3px;

  min-height: 74px;

  padding: 7px;

  text-align: left;
}

.power-button span {
  font-weight: 800;
}

.power-button small {
  color: var(--muted);

  font-size: .63rem;
  line-height: 1.2;
}

.power-button b {
  color: var(--accent);

  font-size: .72rem;
}

.power-button.offensive {
  border-color:
    rgba(220,100,100,.25);
}

.active-power-effects {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;

  margin-top: 12px;
  padding-top: 10px;

  border-top:
    1px solid rgba(185,173,149,.12);
}

.active-power-effects > strong {
  flex-basis: 100%;
}

.active-power-effects span {
  padding: 5px 7px;

  border:
    1px solid rgba(216,168,79,.25);

  border-radius: 6px;

  font-size: .68rem;
}


@media (max-width: 700px) {

  .power-up-header {
    display: block;
  }

  .power-up-header > small {
    display: block;

    margin-top: 5px;

    max-width: none;

    text-align: left;
  }

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

}


@media (max-width: 430px) {

  .power-buttons {
    grid-template-columns:
      1fr;
  }

}



/* =========================================================
   BETTING_UI_REPAIR_CSS_V1
   ========================================================= */

.power-up-drawer {
  padding: 0;
}

.power-up-drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;

  padding: 11px 12px;

  cursor: pointer;
  list-style: none;
}

.power-up-drawer-toggle::-webkit-details-marker {
  display: none;
}

.power-up-drawer-toggle span {
  font-weight: 900;
  color: var(--accent);
}

.power-up-drawer-toggle small {
  color: var(--muted);
}

.power-up-drawer-content {
  padding: 0 12px 12px;
}

.power-up-drawer:not([open])
.power-up-drawer-content {
  display: none;
}

.single-bet-builder {
  display: grid;
  gap: 8px;

  margin-top: 9px;
  padding-top: 9px;

  border-top:
    1px solid rgba(185,173,149,.13);
}

.bet-type-toggle {
  display: flex;
  gap: 8px;
}

.bet-type-toggle label {
  display: flex;
  align-items: center;
  gap: 5px;

  min-height: 38px;
  padding: 6px 12px;

  border: 1px solid var(--line);
  border-radius: 7px;

  cursor: pointer;
}

.bet-amount-row {
  display: grid;

  grid-template-columns:
    auto minmax(80px,1fr) auto;

  align-items: center;
  gap: 6px;
}

.bet-amount-input {
  width: 100%;
  min-height: 42px;

  padding: 8px 10px;

  border: 1px solid var(--line);
  border-radius: 7px;

  background: rgba(0,0,0,.18);
  color: inherit;

  font-size: 1rem;
  font-weight: 800;
}

.place-single-bet {
  min-height: 42px;
  white-space: nowrap;
}

.bet-quick-amounts {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.bet-quick-btn {
  min-height: 34px;
  padding: 5px 9px;

  font-size: .72rem;
}

@media (max-width: 460px) {

  .bet-amount-row {
    grid-template-columns:
      auto minmax(70px,1fr);
  }

  .place-single-bet {
    grid-column: 1 / -1;
  }

}



/* =========================================================
   POWER_CHIP_VISIBILITY_CSS_V1
   ========================================================= */

.public-power-warning {
  margin-bottom: 12px;

  border:
    2px solid
    rgba(238, 186, 73, .58);

  background:
    linear-gradient(
      135deg,
      rgba(238, 186, 73, .12),
      rgba(0, 0, 0, .08)
    );
}

.public-power-warning-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.public-power-warning-head h3 {
  margin: 3px 0 0;
}

.public-power-warning-head > strong {
  padding: 5px 8px;

  border:
    1px solid
    rgba(238, 186, 73, .4);

  border-radius: 7px;

  white-space: nowrap;

  color: #f0c865;

  font-size: .72rem;
}

.public-power-warning > p {
  margin: 8px 0 11px;

  color: var(--muted);
}

.public-power-effect-list {
  display: grid;
  gap: 6px;
}

.public-power-effect-row {
  display: flex;
  align-items: center;
  gap: 9px;

  padding: 8px 10px;

  border: 1px solid;
  border-radius: 8px;
}

.public-power-effect-row.positive {
  border-color:
    rgba(96, 206, 137, .48);

  background:
    rgba(96, 206, 137, .08);
}

.public-power-effect-row.negative {
  border-color:
    rgba(230, 101, 101, .55);

  background:
    rgba(230, 101, 101, .09);
}

.public-power-effect-icon {
  display: grid;
  place-items: center;

  width: 30px;
  height: 30px;

  flex: 0 0 30px;

  border-radius: 50%;

  background:
    rgba(255, 255, 255, .07);
}

.public-power-effect-row strong {
  display: block;
}

.public-power-effect-row small {
  display: block;

  margin-top: 2px;

  color: var(--muted);
}

.runner-power-effects {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;

  margin:
    8px 0 4px;
}

.public-power-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  padding: 6px 8px;

  border: 1px solid;
  border-radius: 7px;
}

.public-power-badge b {
  font-size: .72rem;
}

.public-power-badge small {
  font-size: .66rem;
}

.public-power-badge.positive {
  border-color:
    rgba(96, 206, 137, .55);

  background:
    rgba(96, 206, 137, .1);

  color: #a8efbd;
}

.public-power-badge.positive small {
  color: #c7f5d3;
}

.public-power-badge.negative {
  border-color:
    rgba(230, 101, 101, .62);

  background:
    rgba(230, 101, 101, .11);

  color: #ffb3b3;
}

.public-power-badge.negative small {
  color: #ffd0d0;
}

.power-up-drawer[open] >
.power-up-drawer-toggle {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

@media (max-width: 600px) {

  .public-power-warning-head {
    display: block;
  }

  .public-power-warning-head > strong {
    display: inline-flex;

    margin-top: 7px;
  }

  .public-power-badge {
    width: 100%;

    justify-content:
      space-between;
  }

}


/* =========================================================
   BETTING_FAVOURITE_HIGHLIGHT_CSS_V1
   ========================================================= */

.betting-card.market-favourite {
  border:
    2px solid
    rgba(235, 187, 68, .82);

  background:
    linear-gradient(
      135deg,
      rgba(235, 187, 68, .13),
      rgba(255, 255, 255, .015)
    );

  box-shadow:
    0 0 0 1px
    rgba(235, 187, 68, .12),
    0 8px 28px
    rgba(0, 0, 0, .2);
}

.favourite-badge {
  display: inline-flex;
  align-items: center;

  margin-left: 7px;
  padding: 3px 6px;

  border:
    1px solid
    rgba(235, 187, 68, .62);

  border-radius: 6px;

  background:
    rgba(235, 187, 68, .14);

  color: #f2c85d;

  font-size: .58rem;
  font-style: normal;
  font-weight: 900;

  letter-spacing: .04em;
  vertical-align: middle;
}

.market-favourite
.compact-bet-top > span {
  color: #f2c85d;
  font-weight: 800;
}

@media (max-width: 600px) {

  .favourite-badge {
    display: flex;
    width: max-content;

    margin:
      5px 0 0;
  }

}

/* POWER CHIP READABILITY FIX V1 */

.power-button {
  color: #17130b !important;
}

.power-button span,
.power-button span * {
  color: #17130b !important;
}

.power-button small {
  color: #4a3a1d !important;
  opacity: 1 !important;
  font-weight: 700;
}

.power-button b {
  color: #2f230f !important;
  opacity: 1 !important;
  font-weight: 900;
}

.power-button.offensive,
.power-button.offensive span,
.power-button.offensive small,
.power-button.offensive b {
  color: #2a1712 !important;
}

.power-button:disabled {
  opacity: 0.58 !important;
}

.power-button:disabled span,
.power-button:disabled small,
.power-button:disabled b {
  opacity: 1 !important;
}

@media (max-width: 600px) {
  .power-button small {
    font-size: 0.82rem;
    line-height: 1.25;
  }

  .power-button b {
    font-size: 0.9rem;
  }
}



/* =========================================================
   POWER_CHIP_PHASE_CSS_V1
   ========================================================= */

.power-phase-heading {
  align-items: flex-start;
}

.power-phase-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.power-phase-timer {
  min-width: 58px;
  padding: 9px 10px;

  border: 1px solid rgba(235, 187, 68, .48);
  border-radius: 8px;

  background: rgba(235, 187, 68, .1);
  color: #f2c85d;

  text-align: center;
  font-size: 1.05rem;
  font-weight: 900;
}

.power-phase-note {
  margin-top: 12px;
}

.power-phase-note p {
  margin-bottom: 0;
}

.display-power-effects {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.display-power-effect {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;

  padding: 13px 15px;

  border: 1px solid;
  border-radius: 9px;
}

.display-power-effect.positive {
  border-color: rgba(96, 206, 137, .5);
  background: rgba(96, 206, 137, .09);
}

.display-power-effect.negative {
  border-color: rgba(230, 101, 101, .55);
  background: rgba(230, 101, 101, .1);
}

@media (max-width: 600px) {
  .power-phase-heading,
  .power-phase-actions {
    display: grid;
    width: 100%;
  }

  .power-phase-actions {
    grid-template-columns: 70px minmax(0, 1fr);
  }
}


/* =========================================================
   POWER_CHIP_SCREEN_FIX_CSS_V1
   ========================================================= */

.power-up-drawer-fixed {
  display: block;
  overflow: visible;
}

.power-up-drawer-fixed .power-up-drawer-content {
  display: block;
}

.power-up-drawer-heading {
  cursor: default;
  pointer-events: none;
}

.power-up-drawer-fixed .power-button {
  position: relative;
  z-index: 2;
  pointer-events: auto;
}

.power-up-drawer-fixed .power-buttons {
  position: relative;
  z-index: 2;
}

/* POWER CHIP CONTENT FORCE OPEN V2 */
.power-up-drawer.power-up-drawer-fixed:not([open]) .power-up-drawer-content,
.power-up-drawer-fixed .power-up-drawer-content {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

.power-up-drawer-fixed .power-up-group,
.power-up-drawer-fixed .power-target-card,
.power-up-drawer-fixed .power-buttons,
.power-up-drawer-fixed .power-button {
  visibility: visible !important;
  pointer-events: auto !important;
}
