/* Tour nomination portal. Sits on top of tour-results.css (the house look:
 * backdrop, Anton and Poppins, the purple) and adds the pieces of the entry
 * flow: capacity bars, bowler cards, squad choice, the switch toggles, the
 * agreement and a pay bar that stays under the thumb. Phone first. Motion is
 * transform and opacity only, and all of it stops for reduced motion.
 * Prefixed pt- so nothing else in the application is touched. */

:root {
  --pt-green: #22c55e;
  --pt-amber: #f59e0b;
  --pt-glow: 0 0 0 1px rgba(124, 58, 237, 0.55), 0 8px 30px rgba(109, 40, 217, 0.35);
  --pt-radius: 14px;
}
.pt-body { padding-bottom: 110px; }

/* ---- Entrance ------------------------------------------------------------ */
.pt-in { opacity: 0; transform: translate3d(0, 14px, 0); animation: pt-up 520ms cubic-bezier(0.22, 1, 0.36, 1) forwards; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes pt-up { to { opacity: 1; transform: translate3d(0, 0, 0); } }

/* ---- Status pills ---------------------------------------------------------- */
.pt-state { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.pt-state-open { background: rgba(34, 197, 94, 0.16); color: var(--pt-green); }
.pt-state-upcoming { background: rgba(245, 158, 11, 0.16); color: var(--pt-amber); }
.pt-state-full, .pt-state-closed { background: rgba(220, 38, 38, 0.16); color: #f87171; }
.pt-state .tr-dot { animation: tr-pulse 1.6s ease-in-out infinite; }

/* ---- Capacity bar ---------------------------------------------------------- */
.pt-cap { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pt-cap-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 0.72rem; color: var(--tr-muted); }
.pt-cap-top b { font-family: var(--tr-display); font-weight: 400; font-size: 1.05rem; color: var(--tr-text); letter-spacing: 0.02em; }
.pt-cap-track { position: relative; height: 9px; border-radius: 999px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.11) 0 5px, rgba(255, 255, 255, 0.05) 5px 7px); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.7); overflow: hidden; }
.pt-cap-fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 999px; background: linear-gradient(90deg, var(--tr-brand), var(--tr-brand-light)); transition: width 1100ms cubic-bezier(0.22, 1, 0.36, 1); }
.pt-cap-fill::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent); transform: translateX(-100%); animation: pt-sheen 2.4s ease-in-out 1.2s infinite; }
.pt-cap.is-hot .pt-cap-fill { background: linear-gradient(90deg, #b45309, var(--pt-amber)); }
.pt-cap.is-full .pt-cap-fill { background: linear-gradient(90deg, #7f1d1d, var(--tr-red)); }
@keyframes pt-sheen { to { transform: translateX(100%); } }

/* ---- Event cards (the list) ------------------------------------------------ */
.pt-events { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.pt-event { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 16px 14px 14px; border-radius: var(--pt-radius); background:
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(168, 85, 247, 0.22), transparent 60%),
    radial-gradient(ellipse 60% 50% at 0% 100%, rgba(220, 38, 38, 0.14), transparent 60%),
    linear-gradient(160deg, rgba(109, 40, 217, 0.2), rgba(8, 6, 14, 0.85) 55%);
  border: 1px solid rgba(255, 255, 255, 0.09); overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 24px 50px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.6); }
/* The etched edge and the pin rings: concentric arcs in the corner, the way a
   pin deck is drawn, sitting under the content. */
.pt-event::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(168, 85, 247, 0.9), transparent 38%, transparent 62%, rgba(220, 38, 38, 0.6)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
.pt-event::after { content: ''; position: absolute; right: -70px; top: -70px; width: 260px; height: 260px; border-radius: 50%; pointer-events: none; opacity: 0.55;
  background: repeating-radial-gradient(circle at center, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 14px), radial-gradient(circle at center, rgba(168, 85, 247, 0.25), transparent 65%);
  -webkit-mask: radial-gradient(circle at center, #000 30%, transparent 72%); mask: radial-gradient(circle at center, #000 30%, transparent 72%); }
.pt-event > * { position: relative; z-index: 1; }
.pt-event-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.pt-event-name { font-family: var(--tr-display); font-size: clamp(1.35rem, 6.5vw, 2rem); line-height: 1; letter-spacing: 0.03em; text-transform: uppercase; overflow-wrap: anywhere; background: linear-gradient(180deg, #ffffff 0%, #e6e2f3 50%, #b7b0d4 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.6)) drop-shadow(0 0 18px rgba(168, 85, 247, 0.25)); }
.pt-event-meta { font-size: 0.78rem; color: var(--tr-muted); }
.pt-event-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.pt-squadcaps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.pt-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---- Buttons ----------------------------------------------------------------- */
.pt-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 18px; border-radius: 12px; border: 0; font-family: var(--tr-body); font-weight: 800; font-size: 0.92rem; letter-spacing: 0.02em; color: #fff; text-decoration: none; cursor: pointer; flex: 1 1 auto; overflow: hidden; transition: transform 160ms ease, box-shadow 200ms ease, opacity 200ms ease; }
.pt-btn:active { transform: scale(0.97); }
.pt-btn-go { background: linear-gradient(180deg, #9d5cff 0%, var(--tr-brand-light) 45%, #5b21b6 100%); box-shadow: var(--pt-glow), inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 rgba(0, 0, 0, 0.35); text-shadow: 0 1px 0 rgba(0, 0, 0, 0.35); }
.pt-btn-go::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.28) 50%, transparent 70%); transform: translateX(-120%); animation: pt-shine 3s ease-in-out infinite; }
@keyframes pt-shine { 60%, 100% { transform: translateX(120%); } }
.pt-btn-ghost { background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)); border: 1px solid rgba(255, 255, 255, 0.14); color: var(--tr-text); font-weight: 700; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 6px 18px rgba(0, 0, 0, 0.35); }
.pt-btn-sm { min-height: 36px; padding: 6px 12px; font-size: 0.8rem; flex: 0 0 auto; }
.pt-btn[disabled], .pt-btn.is-disabled { opacity: 0.45; pointer-events: none; box-shadow: none; }
.pt-btn.is-busy { pointer-events: none; }
.pt-btn.is-busy .pt-btn-label { opacity: 0.2; }
.pt-btn.is-busy::before { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, 0.3); border-top-color: #fff; animation: pt-spin 700ms linear infinite; }
@keyframes pt-spin { to { transform: rotate(360deg); } }

/* ---- Steps --------------------------------------------------------------------- */
.pt-step { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: var(--pt-radius); background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(6, 5, 10, 0.75) 40%); border: 1px solid rgba(255, 255, 255, 0.09); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 18px 40px rgba(0, 0, 0, 0.45); scroll-margin-top: 70px; }
.pt-step-head { display: flex; align-items: center; gap: 10px; }
.pt-step-num { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--tr-brand), var(--tr-brand-light)); font-family: var(--tr-display); font-size: 1rem; box-shadow: 0 0 18px rgba(124, 58, 237, 0.55); }
.pt-step.is-done .pt-step-num { background: var(--pt-green); box-shadow: 0 0 18px rgba(34, 197, 94, 0.45); }
.pt-step-title { font-family: var(--tr-display); font-size: 1.25rem; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1; }
.pt-step-sub { margin-left: auto; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tr-muted); }

/* ---- Bowler cards ------------------------------------------------------------ */
.pt-bowler { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; padding: 10px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--tr-line); }
.pt-avatar { width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--tr-display); font-size: 1rem; letter-spacing: 0.04em; background: conic-gradient(from 210deg, var(--tr-brand), #a855f7, var(--tr-red), var(--tr-brand)); box-shadow: inset 0 0 0 3px rgba(10, 10, 13, 0.85); }
.pt-bowler-who { display: flex; flex-direction: column; min-width: 0; }
.pt-bowler-name { font-weight: 700; font-size: 0.98rem; line-height: 1.15; overflow-wrap: anywhere; }
.pt-bowler-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.pt-tag { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.04em; padding: 1px 7px; border-radius: 999px; background: rgba(255, 255, 255, 0.07); color: #d4d4dc; }
.pt-tag-ok { background: rgba(34, 197, 94, 0.16); color: var(--pt-green); }
.pt-bowler-fee { display: flex; flex-direction: column; align-items: flex-end; }
.pt-bowler-fee b { font-family: var(--tr-display); font-weight: 400; font-size: 1.3rem; line-height: 1; }
.pt-bowler-fee span { font-size: 0.6rem; color: var(--tr-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.pt-bowler-extra { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; }
.pt-remove { background: none; border: 0; color: var(--tr-muted); font-size: 0.72rem; font-weight: 700; cursor: pointer; padding: 4px 0; text-decoration: underline; }
.pt-bad { color: #fca5a5; font-size: 0.78rem; }
/* A bowler who cannot be priced: the reason takes the whole width of the
   card under the name, never a column beside it. */
.pt-bowler-fee:has(.pt-bad) { grid-column: 1 / -1; grid-row: 2; align-items: flex-start; }
.pt-bowler-fee .pt-bad { text-transform: none; letter-spacing: 0; font-size: 0.82rem; }

/* ---- Switch toggle (registrations) ------------------------------------------- */
.pt-switch { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: rgba(109, 40, 217, 0.1); border: 1px dashed rgba(124, 58, 237, 0.45); cursor: pointer; }
.pt-switch-text { display: flex; flex-direction: column; min-width: 0; font-size: 0.8rem; font-weight: 700; }
.pt-switch-text span { font-size: 0.66rem; font-weight: 500; color: var(--tr-muted); }
.pt-switch input { position: absolute; opacity: 0; pointer-events: none; }
.pt-switch-ui { position: relative; width: 46px; height: 26px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); transition: background 220ms ease; }
.pt-switch-ui::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.pt-switch input:checked + .pt-switch-ui { background: var(--pt-green); }
.pt-switch input:checked + .pt-switch-ui::after { transform: translateX(20px); }
.pt-switch:has(input:checked) { border-style: solid; border-color: rgba(34, 197, 94, 0.55); background: rgba(34, 197, 94, 0.08); }

/* ---- Add a bowler ----------------------------------------------------------------- */
.pt-add { display: flex; flex-direction: column; gap: 8px; }
.pt-add-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.pt-input { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--tr-line); background: rgba(255, 255, 255, 0.06); color: var(--tr-text); font-family: var(--tr-body); font-size: 1rem; transition: border-color 160ms ease, box-shadow 160ms ease; }
.pt-input:focus { outline: none; border-color: var(--tr-brand-light); box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.3); }
.pt-found { display: none; flex-direction: column; gap: 10px; padding: 12px; border-radius: 12px; background: linear-gradient(160deg, rgba(34, 197, 94, 0.1), rgba(0, 0, 0, 0.3)); border: 1px solid rgba(34, 197, 94, 0.4); }
.pt-found.is-open { display: flex; animation: pt-up 360ms cubic-bezier(0.22, 1, 0.36, 1); }
.pt-found-name { font-family: var(--tr-display); font-size: 1.35rem; letter-spacing: 0.03em; text-transform: uppercase; }
.pt-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pt-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tr-muted); }
.pt-msg { font-size: 0.8rem; color: var(--tr-muted); min-height: 1em; }
.pt-msg.is-bad { color: #fca5a5; }

/* Segmented control (gender) */
.pt-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: rgba(255, 255, 255, 0.06); border: 1px solid var(--tr-line); }
.pt-seg label { position: relative; }
.pt-seg input { position: absolute; opacity: 0; }
.pt-seg span { display: flex; align-items: center; justify-content: center; min-height: 38px; border-radius: 9px; font-size: 0.85rem; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--tr-muted); transition: background 200ms ease, color 200ms ease; cursor: pointer; }
.pt-seg input:checked + span { background: linear-gradient(135deg, var(--tr-brand), var(--tr-brand-light)); color: #fff; }

/* ---- Squads ------------------------------------------------------------------------ */
.pt-squads { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pt-squad { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--tr-line); cursor: pointer; transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease; min-width: 0; }
.pt-squad input { position: absolute; opacity: 0; }
.pt-squad-label { font-family: var(--tr-display); font-size: 1.4rem; line-height: 1; letter-spacing: 0.03em; }
.pt-squad-when { font-size: 0.72rem; color: var(--tr-muted); }
.pt-squad:has(input:checked) { border-color: var(--tr-brand-light); box-shadow: var(--pt-glow); transform: translateY(-2px); background: rgba(109, 40, 217, 0.14); }
.pt-squad:has(input:checked)::after { content: ''; position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; border-radius: 50%; background: var(--pt-green) no-repeat center / 12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); animation: pt-pop 300ms cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes pt-pop { from { transform: scale(0); } to { transform: scale(1); } }
.pt-squad.is-full { opacity: 0.55; cursor: default; }
.pt-select { appearance: none; -webkit-appearance: none; }

/* ---- Agreement ------------------------------------------------------------------- */
.pt-agree { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; align-items: start; cursor: pointer; font-size: 0.85rem; }
.pt-agree input { position: absolute; opacity: 0; }
.pt-box { width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--tr-brand-light); display: inline-flex; align-items: center; justify-content: center; transition: background 200ms ease; }
.pt-box svg { width: 16px; height: 16px; stroke: #fff; stroke-width: 4; fill: none; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset 300ms ease 60ms; }
.pt-agree input:checked + .pt-box { background: var(--pt-green); border-color: var(--pt-green); }
.pt-agree input:checked + .pt-box svg { stroke-dashoffset: 0; }
.pt-agree a { color: var(--tr-brand-light); }

/* ---- Pay bar ---------------------------------------------------------------------- */
.pt-paybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: linear-gradient(to top, rgba(8, 8, 12, 0.98) 60%, rgba(8, 8, 12, 0.85)); border-top: 1px solid rgba(124, 58, 237, 0.4); backdrop-filter: blur(10px); }
.pt-paybar-in { max-width: 760px; margin: 0 auto; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; }
.pt-total { display: flex; flex-direction: column; line-height: 1; }
.pt-total span { font-size: 0.6rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tr-muted); }
.pt-total b { font-family: var(--tr-display); font-weight: 400; font-size: 2rem; letter-spacing: 0.02em; }
.pt-total small { font-size: 0.62rem; color: var(--tr-muted); margin-top: 3px; }
.pt-lines { display: flex; flex-direction: column; gap: 4px; font-size: 0.85rem; }
.pt-lines div { display: flex; justify-content: space-between; gap: 10px; }
.pt-lines .is-total { border-top: 1px solid var(--tr-line); padding-top: 6px; font-weight: 800; }

/* ---- Paid ------------------------------------------------------------------------- */
.pt-success { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 22px 14px; border-radius: var(--pt-radius); background: radial-gradient(circle at 50% 0%, rgba(34, 197, 94, 0.2), rgba(0, 0, 0, 0.4) 70%); border: 1px solid rgba(34, 197, 94, 0.35); }
.pt-tick { width: 84px; height: 84px; }
.pt-tick circle { fill: none; stroke: var(--pt-green); stroke-width: 5; stroke-dasharray: 260; stroke-dashoffset: 260; animation: pt-draw 700ms ease forwards; }
.pt-tick path { fill: none; stroke: #fff; stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 60; stroke-dashoffset: 60; animation: pt-draw 400ms ease 600ms forwards; }
@keyframes pt-draw { to { stroke-dashoffset: 0; } }
.pt-success h2 { margin: 0; font-family: var(--tr-display); font-weight: 400; font-size: clamp(2rem, 10vw, 3rem); letter-spacing: 0.03em; text-transform: uppercase; line-height: 1; }
.pt-countdown { font-family: var(--tr-display); font-size: 1.1rem; letter-spacing: 0.04em; color: var(--pt-amber); }

/* ---- Squad list -------------------------------------------------------------------- */
.pt-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); }
.pt-list li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 4px; border-bottom: 1px solid var(--tr-line); font-size: 0.92rem; }
.pt-list li:nth-child(even) { background: rgba(255, 255, 255, 0.03); }
.pt-list-n { font-family: var(--tr-display); color: var(--tr-muted); text-align: right; }
.pt-paid { width: 20px; height: 20px; }
.pt-paid path { fill: none; stroke: var(--pt-green); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.pt-pending { font-size: 0.6rem; font-weight: 800; color: var(--pt-amber); letter-spacing: 0.08em; text-transform: uppercase; }

@media (min-width: 720px) {
  .pt-events { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-squads { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pt-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .pt-in, .pt-found.is-open { animation: none; opacity: 1; transform: none; }
  .pt-cap-fill, .pt-switch-ui::after { transition: none; }
  .pt-cap-fill::after, .pt-btn-go::after { animation: none; }
  .pt-tick circle, .pt-tick path { animation: none; stroke-dashoffset: 0; }
}
.pt-form { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.pt-link { color: var(--tr-brand-light); font-weight: 700; }
.pt-body [hidden] { display: none !important; }

.pt-test { border-color: #f59e0b; }
.pt-test .tr-champ-label { color: #f59e0b; }

/* ---- The marquee over the event list ---------------------------------------- */
.pt-marquee { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 14px 14px; border-radius: var(--pt-radius); overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.09);
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 22px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), transparent 40%),
    radial-gradient(ellipse 70% 120% at 0% 50%, rgba(109, 40, 217, 0.5), transparent 60%),
    radial-gradient(ellipse 50% 120% at 100% 50%, rgba(220, 38, 38, 0.28), transparent 60%),
    rgba(6, 5, 10, 0.8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 18px 40px rgba(0, 0, 0, 0.5); }
.pt-marquee::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--tr-brand), var(--tr-live) 50%, var(--tr-gold)); }
.pt-marquee-title { font-family: var(--tr-display); font-size: clamp(1.6rem, 8vw, 2.6rem); line-height: 1; letter-spacing: 0.03em; text-transform: uppercase; background: linear-gradient(180deg, #fff7d6 0%, var(--tr-gold) 55%, #b8891a 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.6)); }

/* ---- A squad for each bowler --------------------------------------------------- */
.pt-pick { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 10px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--tr-line); }
.pt-pick.is-picked { border-color: rgba(34, 197, 94, 0.45); }
.pt-pick-name { font-weight: 700; font-size: 0.95rem; }
.pt-pick-squads { display: flex; flex-wrap: wrap; gap: 6px; }
.pt-chip { position: relative; flex: 1 1 auto; min-width: 0; cursor: pointer; }
.pt-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.pt-chip span { display: flex; align-items: baseline; justify-content: center; gap: 6px; min-height: 42px; padding: 6px 12px; border-radius: 10px; border: 1px solid var(--tr-line); background: rgba(255, 255, 255, 0.05); font-family: var(--tr-display); font-size: 1.15rem; letter-spacing: 0.03em; transition: background 160ms ease, border-color 160ms ease, transform 160ms ease; }
.pt-chip span small { font-family: var(--tr-body); font-size: 0.7rem; font-weight: 600; color: var(--tr-muted); }
.pt-chip input:checked + span { background: linear-gradient(180deg, #9d5cff, var(--tr-brand) 100%); border-color: var(--tr-brand-light); box-shadow: var(--pt-glow); transform: translateY(-1px); }
.pt-chip input:checked + span small { color: rgba(255, 255, 255, 0.85); }
.pt-chip.is-full span { opacity: 0.4; text-decoration: line-through; }
.pt-select-sm { min-height: 40px; font-size: 0.85rem; }

.pt-unpaid { border-color: rgba(245, 158, 11, 0.55); }
.pt-unpaid .tr-champ-label { color: var(--pt-amber); }
.pt-unpaid .pt-actions { margin-top: 4px; }

/* ---- The event's documents ------------------------------------------------- */
.pt-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pt-doc { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 6px 10px 6px 8px; border-radius: 10px; border: 1px solid rgba(245, 197, 66, 0.4); background: linear-gradient(180deg, rgba(245, 197, 66, 0.12), rgba(0, 0, 0, 0.3)); color: var(--tr-text); text-decoration: none; font-size: 0.85rem; font-weight: 700; flex: 1 1 auto; min-width: 0; }
.pt-doc-kind { flex: 0 0 auto; padding: 2px 6px; border-radius: 6px; background: var(--tr-gold); color: #1a1200; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; }
.pt-doc-name { min-width: 0; overflow-wrap: anywhere; }
