  :root {
      --black: #0d0d0d;
      --felt: #0f1f14;
      --card: #161616;
      --border: #2a2a2a;
      --gold: #c9a84c;
      --gold-dim: #7a6330;
      --red: #c0392b;
      --green: #27ae60;
      --text: #e8e0d0;
      --muted: #6b6357;
      --chip: #f0e6cc;
  }

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

  body {
      background-color: var(--black);
      background-image:
          radial-gradient(ellipse 120% 60% at 50% -10%, #1a3320 0%, transparent 60%),
          repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(255, 255, 255, .012) 40px, rgba(255, 255, 255, .012) 41px),
          repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(255, 255, 255, .012) 40px, rgba(255, 255, 255, .012) 41px);
      color: var(--text);
      font-family: 'DM Sans', sans-serif;
      min-height: 100vh;
      padding-bottom: 60px;
  }

  /* AD BANNER */
  .ad-banner {
      background: #111;
      border-bottom: 1px solid var(--border);
      text-align: center;
      padding: 6px 16px;
      font-size: 11px;
      color: var(--muted);
      letter-spacing: .08em;
      text-transform: uppercase;
  }

  .ad-slot {
      display: inline-block;
      background: #1a1a1a;
      border: 1px dashed #2e2e2e;
      border-radius: 3px;
      padding: 4px 18px;
      font-size: 10px;
      color: #3a3a3a;
      letter-spacing: .1em;
      vertical-align: middle;
      margin-left: 8px;
  }

  /* HEADER */
  header {
      text-align: center;
      padding: 48px 20px 32px;
  }

  .suits {
      display: flex;
      justify-content: center;
      gap: 10px;
      margin-bottom: 16px;
      font-size: 18px;
      opacity: .35;
      letter-spacing: 4px;
  }

  .suits .red {
      color: var(--red);
  }

  h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2.2rem, 7vw, 3.8rem);
      font-weight: 900;
      color: var(--gold);
      letter-spacing: -.01em;
      line-height: 1;
      margin-bottom: 6px;
  }

  .tagline {
      font-size: 12px;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--muted);
  }

  .rule {
      width: 120px;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--gold-dim), transparent);
      margin: 20px auto 0;
  }

  /* LAYOUT */
  .container {
      max-width: 760px;
      margin: 0 auto;
      padding: 0 16px;
  }

  /* STEP WIZARD NAV */
  .step-nav {
      display: flex;
      margin-bottom: 24px;
      background: #111;
      border: 1px solid var(--border);
      border-radius: 4px;
      overflow: hidden;
  }

  .step-tab {
      flex: 1;
      padding: 13px 8px;
      text-align: center;
      cursor: pointer;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      border-right: 1px solid var(--border);
      transition: all .2s;
      user-select: none;
  }

  .step-tab:last-child {
      border-right: none;
  }

  .step-tab .step-num {
      display: block;
      font-family: 'DM Mono', monospace;
      font-size: 16px;
      font-weight: 500;
      color: #333;
      line-height: 1;
      margin-bottom: 4px;
      transition: color .2s;
  }

  .step-tab.active {
      background: var(--card);
      color: var(--text);
  }

  .step-tab.active .step-num {
      color: var(--gold);
  }

  .step-tab.done .step-num {
      color: var(--green);
  }

  .step-tab.done {
      color: #5a5348;
  }

  /* PANEL */
  .panel {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 4px;
      overflow: hidden;
  }

  .panel-header {
      background: #111;
      border-bottom: 1px solid var(--border);
      padding: 14px 20px;
  }

  .panel-header h2 {
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--gold);
      letter-spacing: .04em;
  }

  /* STEP PAGES */
  .step-page {
      display: none;
  }

  .step-page.active {
      display: block;
  }

  /* INPUTS */
  .buy-in-area,
  .cash-out-area {
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 16px;
  }

  .buy-in-area>*:empty {
      display: none;
  }

  .cash-out-note {
      font-size: 12px;
      color: var(--muted);
      margin-bottom: 14px;
  }

  .player-rows {
      display: flex;
      flex-direction: column;
      gap: 10px;
      /* margin-bottom: 16px; */
  }

  .player-row {
      display: grid;
      grid-template-columns: 1fr 130px 40px;
      gap: 8px;
      align-items: center;
  }

  .cashout-row {
      display: grid;
      grid-template-columns: 1fr 130px;
      gap: 8px;
      align-items: center;
  }

  input[type="text"],
  input[type="number"] {
      background: #0d0d0d;
      border: 1px solid var(--border);
      border-radius: 3px;
      color: var(--text);
      font-family: 'DM Mono', monospace;
      font-size: 14px;
      padding: 9px 12px;
      width: 100%;
      outline: none;
      transition: border-color .15s;
  }

  input[type="text"]::placeholder,
  input[type="number"]::placeholder {
      color: var(--muted);
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
  }

  input:focus {
      border-color: var(--gold-dim);
  }

  input[type="number"] {
      text-align: right;
  }

  .player-name-label {
      font-size: 14px;
      color: var(--text);
      padding: 9px 4px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
  }

  .btn-remove {
      background: none;
      border: 1px solid #2a2a2a;
      border-radius: 3px;
      color: var(--muted);
      cursor: pointer;
      font-size: 18px;
      height: 38px;
      width: 38px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
      flex-shrink: 0;
      line-height: 1;
  }

  .btn-remove:hover {
      border-color: var(--red);
      color: var(--red);
  }

  .btn-add {
      background: none;
      border: 1px dashed #2e2e2e;
      border-radius: 3px;
      color: var(--muted);
      cursor: pointer;
      font-size: 13px;
      letter-spacing: .08em;
      padding: 9px 16px;
      text-transform: uppercase;
      transition: all .15s;
      width: 100%;
  }

  .btn-add:hover {
      border-color: var(--gold-dim);
      color: var(--gold);
  }

  /* TOTALS */
  .totals-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      padding: 16px 20px;
      border-top: 1px solid var(--border);
      background: #111;
  }

  .total-item {
      display: flex;
      flex-direction: column;
      gap: 3px;
  }

  .total-label {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .15em;
      color: var(--muted);
  }

  .total-value {
      font-family: 'DM Mono', monospace;
      font-size: 1.1rem;
      color: var(--chip);
      font-weight: 500;
  }

  /* NAV BUTTONS */
  .nav-buttons {
      display: flex;
      gap: 10px;
      padding: 20px;
      border-top: 1px solid var(--border);
  }

  .btn-next {
      background: var(--gold);
      border: none;
      border-radius: 3px;
      color: #000;
      cursor: pointer;
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: .1em;
      padding: 12px 28px;
      text-transform: uppercase;
      transition: background .15s, transform .1s;
      flex: 1;
  }

  .btn-next:hover {
      background: #dbb95a;
  }

  .btn-next:active {
      transform: scale(.98);
  }

  .btn-back,
  .btn-reset {
      background: none;
      border: 1px solid var(--border);
      border-radius: 3px;
      color: var(--muted);
      cursor: pointer;
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      letter-spacing: .08em;
      padding: 12px 20px;
      text-transform: uppercase;
      transition: all .15s;
  }

  .btn-back:hover,
  .btn-reset:hover {
      border-color: #444;
      color: var(--text);
  }

  /* RESULTS */
  .result-error {
      background: rgba(192, 57, 43, .1);
      border: 1px solid rgba(192, 57, 43, .3);
      border-radius: 3px;
      color: #e74c3c;
      font-size: 13px;
      padding: 12px 16px;
      margin: 20px 20px 20px 20px;
  }

  .net-table {
      width: 100%;
      border-collapse: collapse;
  }

  .net-table th {
      background: #0d0d0d;
      border-bottom: 1px solid var(--border);
      color: var(--muted);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .15em;
      padding: 10px 16px;
      text-align: left;
      text-transform: uppercase;
  }

  .net-table th:last-child {
      text-align: right;
  }

  .net-table td {
      border-bottom: 1px solid #1e1e1e;
      font-family: 'DM Mono', monospace;
      font-size: 14px;
      padding: 12px 16px;
      vertical-align: middle;
  }

  .net-table td:first-child {
      color: var(--text);
      font-family: 'DM Sans', sans-serif;
  }

  .net-table td:last-child {
      text-align: right;
      font-weight: 500;
  }

  .net-table tr:last-child td {
      border-bottom: none;
  }

  .net-table tr:hover td {
      background: #191919;
  }

  .pos {
      color: var(--green);
  }

  .neg {
      color: var(--red);
  }

  .zero {
      color: var(--muted);
  }

  .pill {
      display: inline-block;
      border-radius: 2px;
      font-size: 11px;
      padding: 2px 7px;
      margin-left: 6px;
      vertical-align: middle;
  }

  .pill.pos {
      background: rgba(39, 174, 96, .12);
      color: var(--green);
  }

  .pill.neg {
      background: rgba(192, 57, 43, .12);
      color: var(--red);
  }

  .pill.zero {
      background: #1e1e1e;
      color: var(--muted);
  }

  /* TRANSFERS */
  .transfers {
      padding: 20px;
      border-top: 1px solid var(--border);
  }

  .transfers h3 {
      font-family: 'Playfair Display', serif;
      font-size: .85rem;
      color: var(--gold);
      letter-spacing: .08em;
      margin-bottom: 12px;
      text-transform: uppercase;
  }

  .transfer-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
  }

  .transfer-item {
      background: #111;
      border: 1px solid var(--border);
      border-radius: 3px;
      padding: 11px 14px;
      font-size: 13px;
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
  }

  .from {
      color: var(--red);
      font-family: 'DM Mono', monospace;
      font-weight: 500;
  }

  .to {
      color: var(--green);
      font-family: 'DM Mono', monospace;
      font-weight: 500;
  }

  .arrow {
      color: var(--muted);
      font-size: 12px;
      letter-spacing: .05em;
  }

  .amount {
      font-family: 'DM Mono', monospace;
      color: var(--chip);
      margin-left: auto;
  }

  .no-transfers {
      color: var(--muted);
      font-size: 13px;
      font-style: italic;
  }

  /* AD INLINE */
  .ad-inline {
      background: #111;
      border: 1px dashed #222;
      border-radius: 4px;
      padding: 16px;
      text-align: center;
      color: #2e2e2e;
      font-size: 11px;
      letter-spacing: .1em;
      text-transform: uppercase;
      margin-bottom: 24px;
      min-height: 90px;
      display: flex;
      align-items: center;
      justify-content: center;
  }

  /* FOOTER */
  footer {
      text-align: center;
      padding: 40px 20px 20px;
      color: var(--muted);
      font-size: 11px;
      letter-spacing: .1em;
      text-transform: uppercase;
      border-top: 1px solid var(--border);
      margin-top: 40px;
  }

  footer .suits-sm {
      opacity: .2;
      letter-spacing: 6px;
      display: block;
      margin-bottom: 8px;
  }

  /* RESPONSIVE */
  @media (max-width: 520px) {
      .player-row {
          grid-template-columns: 1fr 100px 36px;
          gap: 6px;
      }

      .cashout-row {
          grid-template-columns: 1fr 100px;
          gap: 6px;
      }

      input[type="text"],
      input[type="number"] {
          font-size: 13px;
          padding: 8px 10px;
      }

      .btn-next {
          padding: 11px 16px;
      }

      h1 {
          font-size: 2rem;
      }

      .step-tab {
          font-size: 9px;
          padding: 10px 4px;
      }

      .step-tab .step-num {
          font-size: 14px;
      }
  }

.kofi-footer-wrap {
    margin-top: 16px;
}

.kofi-button {
    background: var(--gold) !important;
    border-radius: 999px !important;
    border: none !important;
    box-shadow: none !important;
    padding: 7px 14px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.kofi-button span,
.kofi-button .kofitext,
.kofi-button .kofitext span {
    color: #000000 !important;
}

.kofi-button:hover {
    background: #dbb95a !important;
    transform: none !important;
}