/* Phones: the main menu, public page, coach view, entry form and bout-sheet result page */

.landing-body { background: #1b3358 linear-gradient(160deg, #0f1b2d, #1b3358) fixed no-repeat; min-height: 100%; }
.landing { max-width: 920px; margin: 0 auto; padding: 48px 20px; color: #fff; }
.landing-head { display: flex; gap: 16px; align-items: center; margin-bottom: 28px; }
.landing-head h1 { font-size: 30px; }
.landing .muted { color: #a9b8cc; }
.logo { font-size: 38px; }
.landing-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-bottom: 20px; }
.land-card { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); border-radius: 14px; padding: 20px; color: #fff; display: flex; flex-direction: column; gap: 6px; text-decoration: none !important; }
.land-card:hover { background: rgba(255,255,255,.13); }
.land-card b { font-size: 18px; }
.land-card span { color: #dbe4f0; font-size: 13px; }
.land-card.primary { background: var(--brand); border-color: #3b6af0; }
.landing a { color: #9cc0ff; }
/* dark pages: native date pickers, selects and scrollbars follow (a light dialog switches back below) */
.screen-public { background: #0a1220; color: #e8eef7; color-scheme: dark; }
.screen-public .modal { color-scheme: light; }
.pv { min-height: 100vh; padding-bottom: 86px; }
.pv-top { background: linear-gradient(160deg, #13244a, #0a1220 70%); padding: 16px 16px 0; position: sticky; top: 0; z-index: 10; box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.pv-brand { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #9fb0c7; }
.pv-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #64748b; }
.pv-dot.on { background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.7); animation: pvpulse 1.8s infinite; }
@keyframes pvpulse { 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
.pv-top h1 { font-size: 22px; margin: 4px 0 0; color: #fff; line-height: 1.15; }
.pv-top p { margin: 2px 0 10px; color: #9fb0c7; font-size: 13px; }
.pv-tabs { display: flex; gap: 4px; }
.pv-tabs button { position: relative; flex: 1; min-width: 0; background: none; border: 0; color: #9fb0c7; font: inherit; font-weight: 700; font-size: 12px; padding: 8px 2px 10px; display: flex; flex-direction: column; align-items: center; gap: 2px; border-bottom: 3px solid transparent; cursor: pointer; }
.pv-tabs button svg.ic { width: 20px; height: 20px; }
.pv-tabs button.on { color: #facc15; border-color: #facc15; }
.pv-msg { margin: 12px 12px 0; background: #1d4ed8; color: #fff; border-radius: 12px; padding: 10px 14px; font-weight: 700; }
.pv-msg.alert { background: #facc15; color: #111; }
.pv-notes { margin: 12px 12px 0; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 10px 14px; white-space: pre-wrap; color: #cbd6e4; font-size: 14px; }
.pv-main { padding: 12px; max-width: 1180px; margin: 0 auto; }
.pv-foot { text-align: center; color: #8ea0b8; font-size: 12px; padding: 20px; }
.pv-foot a { color: #93c5fd; }
.pv-sec { margin: 16px 0; }
.pv-h { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: #9fb0c7; margin: 0 0 8px; display: flex; justify-content: space-between; align-items: center; }
.pv-link { background: none; border: 0; color: #93c5fd; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 0; text-transform: none; letter-spacing: 0; }
.pv-muted { color: #8ea0b8; }
.pv-empty { color: #8ea0b8; text-align: center; padding: 18px; }
.pv-tip { width: 100%; background: #121c2e; border: 1px dashed #334766; color: #cbd6e4; border-radius: 12px; padding: 12px; font: inherit; font-size: 14px; cursor: pointer; margin-bottom: 4px; }
.pv-chips { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 10px; }
.pv-chips.scroll { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
.pv-chip { min-height: 36px; background: #121c2e; border: 1px solid #2b3b54; color: #cbd6e4; border-radius: 99px; padding: 7px 14px; font: inherit; font-weight: 700; font-size: 13px; white-space: nowrap; cursor: pointer; }
.pv-chip.on { background: #facc15; border-color: #facc15; color: #111; }
.pv-mine { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.pv-mine-card { flex: 0 0 auto; min-width: 180px; text-align: left; background: #121c2e; border: 1px solid #2b3b54; border-left: 5px solid #64748b; border-radius: 12px; padding: 10px 12px; color: #fff; font: inherit; display: flex; flex-direction: column; gap: 2px; cursor: pointer; }
.pv-mine-card span { color: #9fb0c7; font-size: 12px; }
.pv-mine-card em { font-style: normal; font-weight: 700; font-size: 13px; }
.pv-mine-card.hot { border-left-color: #ef4444; } .pv-mine-card.hot em { color: #fca5a5; }
.pv-mine-card.warm { border-left-color: #facc15; } .pv-mine-card.warm em { color: #fde68a; }
.pv-mine-card.done em { color: #9fb0c7; }
.pv-mats { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 720px) { .pv-mats { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .pv-mats { grid-template-columns: 1fr 1fr 1fr; } }
.pv-mat { background: #121c2e; border: 1px solid #22324a; border-radius: 16px; padding: 12px 14px; }
.pv-mat.live { border-color: #e11d48; box-shadow: 0 0 0 1px #e11d48 inset; }
.pv-mat header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.pv-mat h2, .pv-mat h3 { margin: 0; font-size: 20px; color: #facc15; }
.pv-loc { color: #8ea0b8; font-size: 12px; }
.pv-state { margin-left: auto; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; background: #334155; }
.pv-state.live { background: #be123c; }
.pv-state.report { background: #1d4ed8; }
.pv-meta { display: flex; justify-content: space-between; font-size: 12px; color: #9fb0c7; margin-bottom: 4px; }
.pv-clock { font-weight: 800; color: #94a3b8; font-variant-numeric: tabular-nums; font-size: 15px; }
.pv-clock.running { color: #4ade80; }
.pv-w { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
.pv-bar { width: 5px; align-self: stretch; border-radius: 3px; }
.pv-bar.c-red { background: var(--red); } .pv-bar.c-green { background: var(--green); }
.pv-wn { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pv-wn b { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #fff; }
.pv-wn span { font-size: 12px; color: #8ea0b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-sc { font-size: 32px; font-weight: 900; min-width: 2ch; text-align: right; font-variant-numeric: tabular-nums; color: #fff; }
.pv-deck { display: flex; gap: 8px; align-items: baseline; border-top: 1px solid #22324a; padding-top: 6px; margin-top: 6px; font-size: 13px; }
.pv-tag { font-size: 10px; font-weight: 800; text-transform: uppercase; color: #9fb0c7; background: #1e293b; padding: 1px 6px; border-radius: 4px; white-space: nowrap; }
.pv-deck-b { color: #dbe4f0; } .pv-deck-b em { color: #94a3b8; font-style: normal; }
.pv-waiting { background: #b45309; color: #fff; font-size: 10px; padding: 0 5px; border-radius: 4px; }
.pv-res { display: flex; gap: 10px; align-items: center; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 9px 12px; margin-bottom: 6px; }
.pv-res-wt { font-weight: 800; color: #facc15; min-width: 38px; }
.pv-res-body { flex: 1; min-width: 0; }
.pv-res-body b { color: #fff; }
.pv-res-type { font-weight: 800; font-size: 13px; color: #cbd6e4; white-space: nowrap; }
.pv-card { background: #121c2e; border: 1px solid #22324a; border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; }
.pv-card h3, .pv-card h4 { margin: 0 0 4px; color: #facc15; font-size: 16px; }
.pv-card .placers { columns: 1; }
.pv-card .muted { color: #8ea0b8; }
.pv-search { width: 100%; font-size: 17px; padding: 13px 14px; border-radius: 12px; background: #121c2e; border: 1px solid #2b3b54; color: #fff; margin-bottom: 12px; }
.pv-list { display: flex; flex-direction: column; gap: 6px; }
.pv-row { display: flex; align-items: center; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; }
.pv-row-main { flex: 1; text-align: left; background: none; border: 0; color: #fff; font: inherit; padding: 10px 12px; display: flex; flex-direction: column; cursor: pointer; }
.pv-row-main span { color: #8ea0b8; font-size: 13px; }
.pv-star { background: none; border: 0; font-size: 26px; color: #64748b; padding: 6px 14px; cursor: pointer; }
.pv-star.on { color: #facc15; }
.pv-detail h3 { margin: 0; color: #fff; font-size: 20px; }
.pv-detail p { margin: 2px 0 10px; }
.pv-next { border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; background: #1e293b; display: flex; flex-direction: column; gap: 2px; }
.pv-next small { font-size: 10px; font-weight: 800; letter-spacing: .08em; color: #9fb0c7; }
.pv-next b { font-size: 18px; }
.pv-next span { font-size: 13px; color: #cbd6e4; }
.pv-next.hot { background: #7f1d1d; } .pv-next.warm { background: #713f12; }
.pv-hist { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; font-size: 13px; padding: 6px 0; border-top: 1px solid #22324a; }
.pv-w-win { color: #4ade80; font-weight: 800; } .pv-w-loss { color: #fca5a5; font-weight: 700; }
.pv-bracket { color: #e2e8f0; }
.pv-bracket .bracket-wrap { color: var(--ink); border-radius: 12px; }
.pv-team { display: flex; align-items: center; gap: 12px; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 11px 14px; margin-bottom: 6px; }
.pv-team b { flex: 1; color: #fff; }
.pv-rank { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #1e293b; font-weight: 800; }
.pv-rank.r1 { background: #facc15; color: #111; } .pv-rank.r2 { background: #cbd5e1; color: #111; } .pv-rank.r3 { background: #d97706; color: #111; }
.pv-pts { font-weight: 900; font-size: 18px; font-variant-numeric: tabular-nums; }
@media (max-width: 719px) {
  .pv-tabs { position: fixed; bottom: 0; left: 0; right: 0; background: #0f1a2e; border-top: 1px solid #22324a; padding: 4px 4px calc(6px + env(safe-area-inset-bottom)); z-index: 20; }
  .pv-tabs button { border-bottom: 0; border-top: 3px solid transparent; padding-top: 7px; }
  .pv-tabs button.on { border-top-color: #facc15; }
  .pv-top { padding-bottom: 12px; position: static; }
}

body.offline .main::before { content: 'Connection to the server lost — changes will not save until it returns.'; display: block; background: #b91c1c; color: #fff; padding: 8px 20px; font-weight: 600; position: sticky; top: 0; z-index: 50; }

@media (max-width: 900px) {
  body.side-open { overflow: hidden; }
  .grid2, .mc-layout, .form-grid { grid-template-columns: 1fr; }
  .span2 { grid-column: span 1; }
  .page { padding: 14px; }
}
@media (max-width: 900px) {
  .move-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .move-btn { padding: 10px 4px; }
  .move-btn b { font-size: 20px; }
  .move-btn small { display: none; }
  .pen-grid { grid-template-columns: repeat(2, 1fr); }
  .timer-grid { grid-template-columns: repeat(2, 1fr); }
  .mat-screen { height: auto; min-height: 100vh; }
  #mat-body { overflow: visible; }
}
#print-root { display: none; }
.landing-brand { font-size: 15px; font-weight: 800; letter-spacing: .04em; color: #9cc0ff; margin-bottom: 10px; text-transform: uppercase; }
.land-ic { font-size: 22px; opacity: .8; }
.pv-msg, .pv-notes { max-width: 1156px; }
@media (min-width: 1180px) { .pv-msg, .pv-notes { margin-left: auto; margin-right: auto; } }
.pv-btn { display: block; width: 100%; background: #facc15; color: #111; border: 0; border-radius: 12px; padding: 13px; font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; margin: 8px 0; }
.pv-btn.sm { display: inline-block; width: auto; font-size: 13px; padding: 8px 12px; margin: 0; }
.pv-btn.ghost { background: #1e293b; color: #e8eef7; border: 1px solid #334766; }
.pv-btn.danger { color: #fca5a5; border-color: #7f1d1d; }
.pv-mini { min-width: 36px; min-height: 36px; display: inline-grid; place-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #e8eef7; border-radius: 8px; font: inherit; font-size: 11px; padding: 2px 8px; cursor: pointer; text-transform: none; letter-spacing: 0; }
.coach-login h2, .coach-login h3 { margin: 0 0 4px; color: #fff; font-size: 17px; }
.code-input { text-transform: uppercase; letter-spacing: .2em; text-align: center; font-size: 26px; font-weight: 800; margin-top: 10px; }
.coach-login .err { color: #fca5a5; }
.coach-sum { display: flex; justify-content: space-between; align-items: center; }
.coach-sum b { display: block; font-size: 18px; color: #fff; }
.coach-sum-n { text-align: right; white-space: nowrap; }
.coach-sum-n b { font-size: 28px; color: #facc15; }
.coach-sum-n span { font-size: 12px; color: #8ea0b8; }
.coach-ath { background: #121c2e; border: 1px solid #22324a; border-left: 5px solid #475569; border-radius: 12px; }
.coach-ath.hot { border-left-color: #ef4444; background: #2a1320; }
.coach-ath.warm { border-left-color: #facc15; }
.coach-ath.done { opacity: .75; }
.coach-ath-main { display: flex; align-items: center; gap: 10px; width: 100%; background: none; border: 0; color: #fff; font: inherit; text-align: left; padding: 10px 12px; cursor: pointer; }
.coach-wt { font-weight: 900; color: #facc15; min-width: 38px; }
.coach-nm { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.coach-nm em { font-style: normal; font-size: 13px; color: #cbd6e4; }
.coach-ath.hot .coach-nm em { color: #fca5a5; font-weight: 800; }
.coach-ath.warm .coach-nm em { color: #fde68a; font-weight: 700; }
.coach-rec { font-weight: 800; color: #9fb0c7; }
.coach-ath-more { padding: 0 12px 12px; }
.coach-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.up-next .pv-h { display: flex; align-items: center; justify-content: flex-start; gap: 6px; color: #facc15; }
.up-card { border-left: 5px solid #facc15; }
.up-card.hot { border-left-color: #ef4444; background: #2a1320; }
.up-head { display: flex; gap: 10px; align-items: baseline; }
.up-head > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.up-head b { color: #fff; font-size: 16px; }
.up-head em { font-style: normal; font-size: 13px; color: #fde68a; font-weight: 700; }
.up-card.hot .up-head em { color: #fca5a5; }
.up-vs { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8ea0b8; margin: 8px 0 2px; }
.scout-opp { display: flex; flex-direction: column; }
.scout-opp b { color: #fff; font-size: 16px; }
.scout-opp em { font-style: normal; font-size: 13px; color: #cbd6e4; }
.scout-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 4px; }
.scout-facts span { font-size: 12px; font-weight: 700; background: #1e293b; border: 1px solid #334766; border-radius: 99px; padding: 2px 9px; color: #dbe5f1; }
.scout-met { font-size: 13px; font-weight: 700; color: #fde68a; margin: 4px 0; display: flex; gap: 6px; align-items: center; }
.scout-today .pv-hist:first-child { border-top: 0; }
.scout-next { background: #0d1626; border: 1px solid #22324a; border-radius: 10px; padding: 8px 10px; margin-bottom: 8px; }
.coach-dl b { color: #fff; display: flex; gap: 6px; align-items: center; }
.dl-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.dl-row { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: #1e293b; border: 1px solid #334766; border-radius: 12px; padding: 10px 12px; color: #e8eef7; font: inherit; cursor: pointer; }
.dl-row > span:first-child { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.dl-row b { display: block; }
.dl-row em { font-style: normal; font-size: 12px; color: #9fb0c7; }
.dl-row:disabled { opacity: .5; cursor: default; }
.dl-go { font-weight: 800; font-size: 13px; background: #facc15; color: #111; border-radius: 8px; padding: 5px 10px; }
.dl-row:disabled .dl-go { background: #475569; color: #cbd6e4; }
.coach-banner { position: fixed; top: 10px; left: 10px; right: 10px; z-index: 99; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; font-weight: 800; color: #fff; background: #1d4ed8; box-shadow: 0 10px 30px rgba(0,0,0,.5); animation: pop .25s ease-out; }
.coach-banner.hot { background: #b91c1c; } .coach-banner.warm, .coach-banner.warn { background: #a16207; } .coach-banner.ok { background: #15803d; }
.coach-banner span { flex: 1; }
.coach-banner button { background: #fff; color: #111; border: 0; border-radius: 8px; padding: 6px 12px; font-weight: 800; }
.pv-mat.mine { box-shadow: 0 0 0 2px #facc15 inset; }
.pv-chip.mine:not(.on) { border-color: #facc15; }
.req-head { display: flex; justify-content: space-between; align-items: center; }
.req-head b { color: #fff; }
.req-st { font-size: 11px; font-weight: 800; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; background: #334155; }
.req-st.approved { background: #15803d; } .req-st.denied { background: #b91c1c; } .req-st.pending { background: #a16207; }
.req-reply { background: #1e293b; border-radius: 8px; padding: 8px 10px; margin-top: 6px; font-size: 14px; }
.pv-card p { margin: 6px 0 0; }
.coach-modal { color: var(--ink); }
.req-sum { background: #f7f9fc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.coach-modal .field select { width: 100%; text-overflow: ellipsis; }
.coach-count label { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.coach-count span { display: flex; flex-direction: column; gap: 2px; }
.coach-count b { color: #fff; }
.coach-count em { font-style: normal; font-size: 12px; color: #8ea0b8; }
.coach-count select { font-size: 16px; font-weight: 800; padding: 6px 10px; border-radius: 10px; background: #0f172a; color: #fff; border: 1px solid #334155; min-width: 140px; }
.landing-grid.small-cards { margin-top: 12px; }
.staff-signin .landing-grid.small-cards { margin-top: 10px; margin-bottom: 0; }
.landing-grid.small-cards .land-card { padding: 14px 20px; }
.staff-signin { margin: 8px 0 18px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 12px; }
.staff-signin summary { cursor: pointer; color: #dbe4f0; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; list-style: none; min-height: 44px; padding: 0 10px; margin-left: -10px; border-radius: 8px; }
.staff-signin summary:hover { background: rgba(255,255,255,.07); }
.staff-signin summary:focus-visible { outline: 2px solid #9cc0ff; outline-offset: 2px; }
.staff-signin summary::-webkit-details-marker { display: none; }
.staff-signin summary::after { content: '▸'; margin-left: 2px; transition: transform .15s; }
.staff-signin[open] summary::after { transform: rotate(90deg); }
.staff-signin summary .ic { width: 15px; height: 15px; }
.coach-say { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; font-size: 12px; color: #9fb0c7; }
.coach-say input { background: #0f172a; color: #fff; border: 1px solid #334155; border-radius: 8px; padding: 8px 10px; font: inherit; font-size: 15px; }
.coach-vote { border-color: #a16207; }
.coach-vote b { color: #facc15; }
.coach-vote .row { display: flex; gap: 8px; }
.coach-vote select { flex: 1; min-width: 0; background: #0f172a; color: #fff; border: 1px solid #334155; border-radius: 8px; padding: 8px; font: inherit; }
.pv-detail-acts { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.pv-team b { display: flex; flex-direction: column; }
.pv-race { font-style: normal; font-size: 12px; font-weight: 600; color: #9fb0c7; }
.pv-race.win { color: #86efac; }
.pv-clinch { border-color: #facc15; color: #facc15; font-weight: 800; text-align: center; }
.pv-sponsors { max-width: 1180px; margin: 0 auto; padding: 0 12px; }
.pv-sp-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; padding-bottom: 6px; }
.pv-sp { min-width: 0; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 4px; align-items: center; text-align: center; color: #fff; }
.pv-sp img { max-width: 100%; max-height: 70px; object-fit: contain; background: #fff; border-radius: 6px; padding: 4px; }
.pv-sp span { font-size: 12px; color: #9fb0c7; }
@media (max-width: 420px) { .pv-sp-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .pv-sp { padding: 8px; } }
body.admin-body .backup-bar ~ .main { padding-top: 44px; }
.gym-banner { position: fixed; left: 10px; right: 10px; bottom: 90px; z-index: 300; background: #7a2e0e; color: #fff; border-radius: 12px; padding: 10px 14px; font-weight: 700; font-size: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.land-ic svg.ic { width: 26px; height: 26px; stroke-width: 1.8; }
.land-card .land-ic { color: #9cc0ff; opacity: 1; line-height: 0; }
.land-card.primary .land-ic { color: #fff; }
.landing-brand { display: flex; align-items: center; gap: 10px; }
.landing-brand small { font-size: 11px; letter-spacing: 0; text-transform: none; }
.pv-mini svg.ic { width: 13px; height: 13px; vertical-align: -2px; }
.pv-sec svg.ic, .pv-msg svg.ic { vertical-align: -0.2em; }
.pv-foot .logo-mark, .pv-brand .logo-mark, .st-brand .logo-mark { vertical-align: -0.28em; }
.shop-vendor.closed { opacity: .75; }
.shop-head { display: flex; gap: 10px; align-items: center; }
.shop-head svg.ic { width: 24px; height: 24px; color: #facc15; flex: 0 0 auto; }
.shop-head b { font-size: 17px; }
.shop-closed { font-size: 11px; font-weight: 800; color: #fca5a5; border: 1px solid #fca5a5; border-radius: 999px; padding: 1px 7px; margin-left: 4px; vertical-align: 2px; }
.shop-blurb { margin: 6px 0 2px; color: #cbd6e4; font-size: 13.5px; }
.shop-cat { margin: 10px 0 2px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8ea0b8; }
.shop-items { list-style: none; margin: 0; padding: 0; }
.shop-items li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px dashed #22324a; }
.shop-items li:last-child { border-bottom: 0; }
.shop-items small { display: block; color: #8ea0b8; font-size: 12px; }
.shop-name { font-weight: 600; }
.shop-price { white-space: nowrap; font-variant-numeric: tabular-nums; }
.shop-price s { color: #8ea0b8; margin-right: 2px; }
.shop-price b { color: #fff; }
.shop-items li.out .shop-name { color: #8ea0b8; text-decoration: line-through; }
.shop-tag { font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; border-radius: 999px; padding: 2px 7px; }
.shop-tag.sale { background: #15803d; color: #fff; }
.shop-tag.out { background: #3a1d24; color: #fca5a5; }
.shop-items li { align-items: center; }
.shop-info { flex: 1; min-width: 0; }
.shop-thumb { flex: 0 0 auto; width: 52px; height: 52px; padding: 0; border: 1px solid #2b3b54; border-radius: 10px; overflow: hidden; background: #0b1220; cursor: zoom-in; }
.shop-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shop-items li.out .shop-thumb { opacity: .5; }
.shop-diet { display: inline-block; margin-left: 5px; font-size: 10px; font-weight: 800; letter-spacing: .03em; color: #86efac; border: 1px solid #166534; border-radius: 5px; padding: 0 4px; vertical-align: 1px; }
.shop-sizes { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.shop-sizes span { font-size: 11px; font-weight: 700; border: 1px solid #334766; border-radius: 6px; padding: 1px 6px; color: #dbe5f1; }
.shop-sizes span.out { color: #94a3b8; border-color: #22324a; text-decoration: line-through; }
.shop-ic { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #2a2410; }
.shop-ic.k-merch { background: #13233f; } .shop-ic.k-merch svg.ic { color: #93c5fd; }
.shop-ic.k-other { background: #231a36; } .shop-ic.k-other svg.ic { color: #c4b5fd; }
.shop-head .shop-ic svg.ic { width: 22px; height: 22px; }
.shop-pay { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-top: 8px; }
/* how to pay: flat tags (not chips — nothing to tap) */
.shop-pay span { font-size: 11.5px; font-weight: 700; background: #1e293b; border: 0; color: #dbe5f1; border-radius: 4px; padding: 2px 7px; }
.shop-pay em { font-style: normal; font-size: 12.5px; color: #cbd6e4; }
.shop-news { display: flex; gap: 8px; align-items: flex-start; margin-top: 8px; background: #2a2410; border: 1px solid #a16207; color: #fde68a; border-radius: 10px; padding: 8px 10px; font-weight: 700; font-size: 14px; }
.shop-news svg.ic { flex: 0 0 auto; margin-top: 2px; }
.shop-news small { display: block; font-weight: 600; font-size: 11.5px; color: #d6b86a; }
.shop-upd { margin-top: 8px; font-size: 11.5px; color: #8ea0b8; text-align: right; }
.shop-closed-list > summary { cursor: pointer; color: #8ea0b8; font-weight: 700; font-size: 13px; padding: 8px 2px; }
.shop-lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.88); display: grid; place-items: center; padding: 16px; cursor: zoom-out; }
.shop-lightbox figure { margin: 0; max-width: 100%; text-align: center; }
.shop-lightbox img { max-width: 100%; max-height: 80vh; border-radius: 12px; }
.shop-lightbox figcaption { color: #fff; font-weight: 700; margin-top: 8px; }
.shop-lightbox button { position: absolute; top: 14px; right: 14px; background: #fff; color: #111; border: 0; border-radius: 99px; width: 36px; height: 36px; display: grid; place-items: center; }
.land-card b { color: #fff; }
.req-st.pending { color: #fcd34d; }
code.team-code { font-weight: 700; }
.preset-row { display: flex; gap: 10px; align-items: flex-end; }
.preset-row .field { margin: 0; }
.preset-row .btn { flex: 0 0 auto; }
.rules-for { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; }
.rules-for .field.inline { margin: 0; display: flex; align-items: center; gap: 8px; }
tr.div-row td { background: #f2f5fa; border-top: 2px solid var(--line); padding: 7px 12px; font-size: 13px; }
.div-chips .wchip { background: #fff; border-color: var(--line); color: var(--ink); }
.div-chips .wchip.on { background: var(--brand); color: #fff; border-color: var(--brand); box-shadow: none; }
h2.div-h { margin: 18px 0 8px; font-size: 17px; }
button.copyable { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 auto; background: none; border: 2px dashed transparent; border-radius: 10px; cursor: pointer; font-family: inherit; }
button.copyable:hover { border-color: var(--line); background: #f8fafc; }
button.copyable svg.ic { width: 20px; height: 20px; color: var(--muted); }
button.copyable-link { display: block; margin: 4px auto 0; background: none; border: 0; cursor: pointer; text-decoration: underline dotted; font-family: inherit; }
.btn.tint-purple { background: #f3edff; border-color: #d8c6fa; color: #5b2bb5; }
.btn.tint-purple:hover { background: #e9ddff; }
.pv-az { position: sticky; top: 0; z-index: 1; background: #0b1220; color: #facc15; font-weight: 800; font-size: 12px; padding: 6px 4px 2px; letter-spacing: .08em; }
@media (max-width: 560px) {
  .coach-modal .form-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 10px; }
  .coach-modal .form-grid > .field { grid-column: span 6; }
  .coach-modal .form-grid > .field:has([name=first]), .coach-modal .form-grid > .field:has([name=last]),
  .coach-modal .form-grid > .field:has([name=wins]), .coach-modal .form-grid > .field:has([name=losses]) { grid-column: span 3; }
  .coach-modal .form-grid > .field:has([name=weightId]) { grid-column: span 4; }
  .coach-modal .form-grid > .field:has([name=grade]) { grid-column: span 2; }
  .coach-modal .modal-foot { display: flex; flex-wrap: wrap; gap: 8px; }
  .coach-modal .modal-foot .btn { flex: 1 1 0; justify-content: center; white-space: nowrap; }
  .coach-modal .modal-foot [data-ok] { flex-basis: 100%; order: -1; padding-top: 12px; padding-bottom: 12px; }
}
.pv-tabs button span { text-align: center; line-height: 1.15; }
@media (max-width: 700px) {
  .pv-tabs.n7 button, .pv-tabs.n6 button { font-size: 10.5px; padding-left: 0; padding-right: 0; min-width: 0; }
  .pv-tabs.n7 button svg.ic { width: 19px; height: 19px; }
}
.pv-team.mine { border-color: #facc15; background: #2a2610; }
.field.invalid input, .field.invalid select { border-color: #d92d20; box-shadow: 0 0 0 3px rgba(217, 45, 32, .15); }
.coach-modal .form-grid > .reg-added { grid-column: 1 / -1; }
@media (max-width: 700px) { .pv-tabs.n7 { gap: 0; } }
.pv-field { display: flex; flex-direction: column; gap: 4px; margin: 10px 0; font-size: 14px; font-weight: 600; color: #cbd5e1; }
.pv-field input { font: inherit; font-weight: 400; font-size: 16px; padding: 11px 12px; border-radius: 10px; border: 1px solid #2c3f5c; background: #0f1a2e; color: #fff; }
.pv-field small { font-weight: 400; color: #8fa3bf; font-size: 12.5px; }
.signup-card h2, .signup-card h3 { margin: 0 0 6px; font-size: 17px; color: #fff; }
.signup-card.ok { border-color: #15803d; background: #0f2a1b; }
.signup-code { font: 800 34px/1.1 ui-monospace, Consolas, monospace; letter-spacing: .12em; color: #facc15; margin: 6px 0 8px; }
a.pv-btn { display: inline-block; text-align: center; text-decoration: none; }
.req-waiting { border-color: #f5c27a; }
.invite-pre { white-space: pre-wrap; background: #f7f9fc; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font: 13px/1.45 ui-monospace, Consolas, monospace; max-height: 240px; overflow: auto; }
.pv-event { display: flex; flex-direction: column; gap: 8px; }
.pv-when { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.pv-when b { font-size: 20px; color: #fff; }
.pv-when span { font-weight: 800; color: #facc15; font-size: 14px; }
.pv-where { color: #cbd5e1; }
.pv-ev-notes { background: #0f1a2e; border: 1px solid #22324a; border-radius: 10px; padding: 9px 12px; color: #e2e8f0; line-height: 1.45; }
.pv-ev-stats { display: flex; gap: 8px 16px; flex-wrap: wrap; color: #cbd5e1; font-size: 14px; }
.pv-ev-stats b { color: #fff; }
.pv-ev-reg { background: #14532d; border: 1px solid #15803d; color: #dcfce7; border-radius: 10px; padding: 9px 12px; font-size: 14px; line-height: 1.45; }
.pv-ev-reg a:not(.pv-btn) { color: #fde68a; font-weight: 700; }
.pv-ev-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.en-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.en-grid .span2 { grid-column: 1 / -1; }
.en-grid select { font: inherit; font-size: 16px; padding: 11px 10px; border-radius: 10px; border: 1px solid #2c3f5c; background: #0f1a2e; color: #fff; }
.en-row { border-top: 1px solid #22324a; padding: 10px 0; display: flex; flex-direction: column; gap: 4px; }
.en-row:first-of-type { border-top: 0; }
.en-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 8px; align-items: center; }
.en-st { font-size: 12px; font-weight: 800; padding: 2px 9px; border-radius: 999px; background: #334155; color: #e2e8f0; white-space: nowrap; }
.en-st.ok { background: #14532d; color: #bbf7d0; } .en-st.warn { background: #713f12; color: #fde68a; } .en-st.bad { background: #7f1d1d; color: #fecaca; }
.en-help { color: #cbd5e1; }
.en-due { color: #fbbf24; } .en-paid { color: #86efac; }
.en-family { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; justify-content: space-between; border-top: 1px solid #334766; margin-top: 8px; padding-top: 10px; font-size: 14px; } .en-family > span:first-child { font-weight: 800; color: #fff; flex: 1; } .en-family b { font-size: 16px; }
.en-gender { border: 0; padding: 0; margin: 10px 0; min-width: 0; }
.en-gender legend { padding: 0; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: #cbd5e1; }
.en-radios { display: flex; gap: 10px; }
.en-radio { flex: 1; display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 8px 12px; border-radius: 10px; border: 1px solid #2c3f5c; background: #0f1a2e; color: #fff; font-size: 16px; font-weight: 400; cursor: pointer; }
.pv-field .en-radio input { width: 20px; height: 20px; padding: 0; margin: 0; border: 0; background: none; accent-color: #3b82f6; }
.en-radio:has(input:checked) { border-color: #60a5fa; background: #172554; }
.en-radio:focus-within { outline: 2px solid #93c5fd; outline-offset: 1px; }
.pv-btn.pay { background: #2563eb; color: #fff; }
.en-done { border-color: #1e40af; background: #101d3a; }
.en-done h2 { margin: 0 0 6px; font-size: 17px; color: #fff; }
.en-done .row { gap: 8px; }
.en-paynote { color: #cbd5e1; margin: 2px 0 0; }
.en-notes { background: #0f1a2e; border: 1px solid #22324a; border-radius: 10px; padding: 8px 11px; margin: 8px 0 4px; color: #e2e8f0; }
.en-fee, .en-pay { background: #172554; border: 1px solid #1e40af; color: #dbeafe; border-radius: 10px; padding: 8px 11px; }
@media (max-width: 420px) { .en-grid { grid-template-columns: 1fr; } }
.screen-result { background: #f3f5f9; }
.c-red-t { color: var(--red); font-weight: 800; } .c-green-t { color: var(--green); font-weight: 800; }
.pv-row.open { border-color: #facc15; background: #1a2436; }
.pv-row.open .pv-row-main b { color: #facc15; }
.pv-inline { margin: 4px 0 10px 14px; border-left: 3px solid #facc15; animation: pv-open .15s ease-out; }
.pv-inline > p { margin: 0 0 8px; }
@keyframes pv-open { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.coach-chat h2 { margin: 0 0 8px; }
.cc-thread { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow-y: auto; padding: 2px; }
.cc-msg { max-width: 85%; padding: 8px 11px; border-radius: 14px; background: #1e293b; color: #e2e8f0; align-self: flex-start; }
.cc-msg.mine { align-self: flex-end; background: #1d4ed8; color: #fff; }
.cc-msg.all { border: 1px solid #facc15; }
.cc-msg small { display: block; margin-top: 3px; font-size: 11px; opacity: .75; }
.cc-quick { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 8px; }
.cc-input { display: flex; gap: 8px; }
.cc-input input { flex: 1; min-width: 0; background: #0b1220; border: 1px solid #2b3b54; color: #fff; border-radius: 10px; padding: 10px 12px; font: inherit; font-size: 16px; }
.pv-badge { font-style: normal; background: #ef4444; color: #fff; border-radius: 99px; padding: 0 6px; font-size: 11px; font-weight: 800; margin-left: 2px; }
/* on a tab the badge sits on the icon's corner, so the tab keeps its height */
.pv-tabs .pv-badge { position: absolute; top: 2px; left: calc(50% + 6px); margin: 0; line-height: 16px; }
.pv-h2 { font-size: 16px; margin: 16px 2px 8px; }
.coach-banner.msg { background: #1d4ed8; }
.mat-code.sm { font-size: 15px; padding: 2px 8px; letter-spacing: .08em; }
button.pv-team { width: 100%; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.pv-team.open { border-color: #3b5b8a; border-bottom-left-radius: 0; border-bottom-right-radius: 0; margin-bottom: 0; }
.pv-chev { color: #6b7f99; font-size: 12px; width: 12px; text-align: center; }
.pv-tbreak { background: #0e1726; border: 1px solid #3b5b8a; border-top: 0; border-radius: 0 0 12px 12px; padding: 10px 12px; margin-bottom: 8px; }
.tb-kinds { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.tb-kinds span { flex: 1 1 70px; background: #121c2e; border: 1px solid #22324a; border-radius: 10px; padding: 6px 8px; display: flex; flex-direction: column; }
.tb-kinds small { font-size: 11px; color: #9fb0c7; } .tb-kinds b { font-size: 17px; color: #fff; }
.tb-kinds .neg b { color: #fca5a5; }
.tb-head, .tb-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) repeat(4, 38px); gap: 4px; align-items: center; }
.tb-head { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #6b7f99; padding: 0 0 4px; text-align: right; }
.tb-row { padding: 6px 0; border-top: 1px solid #1e2b40; cursor: pointer; }
.tb-wt { color: #facc15; font-weight: 800; font-size: 13px; }
.tb-nm { display: flex; flex-direction: column; min-width: 0; } .tb-nm b { color: #fff; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .tb-nm small { color: #9fb0c7; font-size: 11px; }
.tb-p { text-align: right; font-variant-numeric: tabular-nums; color: #cbd6e4; font-size: 13px; } .tb-tot { color: #fff; font-weight: 800; }
.tb-ded { margin-top: 8px; font-size: 12px; color: #fca5a5; }
.brv-switch { display: inline-flex; background: #0b1220; border: 1px solid #22324a; border-radius: 99px; padding: 3px; margin: 2px 0 10px; }
.brv-switch button { background: none; border: 0; color: #9fb0c7; font: inherit; font-weight: 700; font-size: 13px; padding: 6px 14px; border-radius: 99px; cursor: pointer; }
.brv-switch button.on { background: #facc15; color: #111; }
.brv.view-rounds .brv-full, .brv.view-full .brv-rounds { display: none; }
.brv-title { display: flex; justify-content: space-between; align-items: baseline; font-weight: 800; color: #fff; font-size: 16px; margin: 4px 2px 8px; }
.brv-title span { font-size: 12px; color: #9fb0c7; font-weight: 600; }
.brv-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.brv-cards .bb { width: auto; max-width: none; margin: 0; }
.brv-nav { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; }
.brv-pool { background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 8px 10px; margin-bottom: 10px; }
.brv-st { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto 36px; gap: 8px; align-items: center; padding: 5px 0; border-top: 1px solid #1e2b40; }
.brv-st:first-of-type { border-top: 0; }
.brv-st b { color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .brv-n { color: #facc15; font-weight: 800; } .brv-tm { color: #9fb0c7; font-size: 12px; } .brv-wl { text-align: right; color: #cbd6e4; font-variant-numeric: tabular-nums; }
.brv-cards .bb { border-radius: 10px; font-size: 14px; }
.brv-cards .bb-meta { padding: 4px 10px; }
.brv-cards .bb-line { padding: 6px 10px; }
.coach-only { display: flex; gap: 8px; align-items: flex-start; background: #2a2610; border: 1px solid #a16207; color: #fde68a; border-radius: 10px; padding: 9px 11px; font-size: 13px; line-height: 1.35; margin: 4px 0 10px; }
.coach-only svg.ic { flex: none; width: 16px; height: 16px; margin-top: 1px; color: #facc15; }
.coach-only a { color: #fde68a; text-decoration: underline; }
.coach-alerts h2, .coach-alerts h3 { display: flex; align-items: center; gap: 8px; font-size: 16px; margin: 0 0 6px; color: #fff; }
.coach-alerts h3 svg.ic, .coach-alerts h2 svg.ic { width: 18px; height: 18px; color: #facc15; }
.ca-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid #1e2b40; }
.ca-row:first-of-type { border-top: 0; }
.ca-row > div { flex: 1; display: flex; flex-direction: column; } .ca-row small { color: #9fb0c7; font-size: 12.5px; }

/* team logos (Teams & Coaches → Show team logos): small, never stretch a row */
.tlogo { display: inline-block; vertical-align: middle; object-fit: contain; flex: none; border-radius: 3px; }
.tl-xs { width: 16px; height: 16px; margin-right: 5px; vertical-align: -3px; }
.tl-sm { width: 22px; height: 22px; margin-right: 6px; }
.tl-md { width: 30px; height: 30px; }
.tl-lg { width: 64px; height: 64px; }
.tl-bd { width: 1.1em; height: 1.1em; margin-right: .3em; vertical-align: -.15em; }
.pv-team .tlogo { margin-right: -2px; }
.aw-step .tl-lg { display: block; margin: 0 auto 6px; width: 72px; height: 72px; }
.aw-team .tl-md { margin-right: 8px; }
.scout-opp em { display: flex; align-items: center; }
.tl-blank { visibility: hidden; }
.pv-more { display: block; width: 100%; margin: 8px 0 0; padding: 11px; border-radius: 12px; border: 1px solid #22324a; background: #121c2e; color: #93c5fd; font: inherit; font-weight: 700; cursor: pointer; }
.pv-more:hover { background: #172439; }
/* coach: upcoming matches, one line each */
.up-list .up-group { margin-bottom: 8px; }
.up-gh { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: #9fb0c7; margin: 10px 2px 4px; }
.up-row { display: grid; grid-template-columns: 78px 44px 1fr; gap: 8px; align-items: center; width: 100%; text-align: left; background: #121c2e; border: 1px solid #22324a; border-left: 4px solid #475569; border-radius: 10px; padding: 8px 10px; margin: 4px 0; color: #fff; font: inherit; cursor: pointer; }
.up-row.hot { border-left-color: #ef4444; background: #2a1320; }
.up-row.warm { border-left-color: #facc15; }
.up-when, .up-bout, .up-who { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.up-when b { font-size: 14px; }
.up-when em, .up-bout em, .up-who em { font-style: normal; font-size: 12px; color: #9fb0c7; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.up-row.hot .up-when em { color: #fca5a5; font-weight: 800; text-transform: uppercase; }
.up-row.warm .up-when em { color: #fde68a; font-weight: 700; }
.up-bout { font-weight: 700; color: #cbd6e4; font-size: 13px; }
.up-mine { color: #fde047; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coach-wh { margin-top: 18px; }
.coach-settings .pv-card { margin-bottom: 10px; }
/* highlighted wrestlers on mat cards (a coach's team, or the ones a fan follows) */
.pv-mine-w { color: #fde047; font-weight: 800; }
.pv-w.is-mine .pv-wn b { color: #fde047; }
.cv-mats-tip { margin: 0 2px 8px; }

/* 0.27: follow a whole team, results search */
.pv-row-main.static { cursor: default; }
.pv-row-main.static b { display: flex; align-items: center; gap: 6px; }
.pv-teams-hit { margin-bottom: 12px; }
.pv-team-row { border-color: #334766; }
.pv-team-follow { flex: 0 0 auto; margin-right: 8px; background: #1e293b; border: 1px solid #3b4d68; color: #e2e8f0; font: inherit; font-size: 14px; font-weight: 700; border-radius: 999px; padding: 8px 12px; cursor: pointer; white-space: nowrap; }
.pv-team-follow.on { background: #422006; border-color: #a16207; color: #fde047; }
.pv-team-f { margin-top: 10px; }
.pv-team-fh { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; font-size: 14px; }
.pv-team-fh b { color: #fff; }
.pv-team-fh .pv-muted { font-size: 12px; }
.pv-team-bell { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.pv-team-bell.on { color: #fde047; }
.pv-mine-card.more { justify-content: center; border-left-color: #334766; }
.pv-mine-card.more em { color: #93c5fd; }
.pv-rsearch { font-size: 15px; padding: 10px 12px; margin-bottom: 8px; }
.pv-res.is-mine { border-color: #a16207; background: #1f1a0e; }

/* "We're next": a slim strip pinned to the top of the coach view (34px) */
.coach-next { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; gap: 8px; width: 100%; height: 34px; padding: 0 12px; border: 0; font: inherit; font-size: 14px; color: #fff; text-align: left; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.45); }
.coach-next.hot { background: #b91c1c; animation: cn-flash 1.6s ease-in-out infinite; }
.coach-next.warm { background: #a16207; }
.coach-next b { letter-spacing: .06em; font-size: 13px; white-space: nowrap; }
.coach-next .cn-who { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.coach-next .cn-mat { font-weight: 800; white-space: nowrap; }
.coach-next em { font-style: normal; font-size: 12px; font-weight: 800; background: rgba(0,0,0,.28); border-radius: 999px; padding: 2px 7px; }
.cn-dot { width: 9px; height: 9px; border-radius: 50%; background: #fff; flex: 0 0 auto; animation: cn-pulse 1s ease-in-out infinite; }
.coach-next.warm .cn-dot { animation-duration: 1.8s; }
@keyframes cn-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
@keyframes cn-flash { 0%, 100% { background: #b91c1c; } 50% { background: #dc2626; } }
@media (prefers-reduced-motion: reduce) { .coach-next, .cn-dot { animation: none; } }
.coach-next + .pv-top { top: 34px; }

/* sessions: the schedule (public page, coach view) */
.pv-sched { background: #121c2e; border: 1px solid #2b3b54; border-radius: 12px; margin: 0 0 12px; }
.pv-sched summary { list-style: none; display: flex; align-items: center; gap: 8px; padding: 10px 12px; cursor: pointer; color: #dbe4f0; font-size: 14px; }
.pv-sched summary::-webkit-details-marker { display: none; }
.pv-sched summary > span { flex: 1; min-width: 0; }
.pv-sched summary b { color: #fde047; }
.pv-sched summary em { font-style: normal; color: #9fb0c7; }
.pv-sched .sch-more { font-style: normal; font-size: 12px; font-weight: 700; color: #93c5fd; white-space: nowrap; }
.pv-sched[open] .sch-more { color: #9fb0c7; }
.pv-sched ul { list-style: none; margin: 0; padding: 0 12px 8px; display: grid; gap: 2px; }
.pv-sched li { display: flex; gap: 10px; justify-content: space-between; padding: 8px 0; border-top: 1px solid #22324a; }
.pv-sched li > div:first-child { min-width: 0; }
.pv-sched li > div:first-child small { display: block; margin-top: 2px; }
.pv-sched li b { color: #fff; }
.pv-sched li small { color: #8ea0b8; font-size: 12px; }
.pv-sched li.done { opacity: .55; }
.pv-sched .sch-when { text-align: right; font-weight: 700; color: #fff; white-space: nowrap; display: grid; gap: 2px; }
.sch-pill { display: inline-block; vertical-align: 1px; margin-left: 4px; font-size: 11px; font-weight: 800; border-radius: 999px; padding: 1px 7px; text-transform: uppercase; letter-spacing: .04em; }
.sch-pill.now { background: #166534; color: #dcfce7; } .sch-pill.next { background: #854d0e; color: #fef3c7; } .sch-pill.done { background: #334155; color: #cbd5e1; }
.pv-event .pv-sched { margin-top: 10px; }
.pv-sched .sch-late { color: #fbbf24; font-style: normal; }

/* coach view: weigh-ins */
/* dark tags on the dark coach view; the row puts the space around them (gap), not the tag */
.wi-tag { display: inline-block; padding: 0 6px; border-radius: 6px; background: #1e293b; color: #cbd5e1; font-size: 12px; font-style: normal; font-weight: 700; white-space: nowrap; }
.wi-tag.ok { background: #14532d; color: #bbf7d0; } .wi-tag.bad { background: #7f1d1d; color: #fecaca; } .wi-tag.warn { background: #713f12; color: #fde68a; }
.coach-nm em:has(.wi-tag), .reg-nm em:has(.wi-tag) { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.wi-coach { border-left: 4px solid #2563eb; color: #e8eef7; } .wi-coach.warn { border-left-color: #f59e0b; background: #2a2410; } .wi-coach.bad { border-left-color: #ef4444; background: #2a1320; }
.wi-coach .pv-muted { color: #aab8cb; }
.wi-coach-p { margin-top: 6px; } .wi-coach-p b { color: #fca5a5; }

/* 0.31 design pass: public page, coach view, entry form and bout-sheet result page */
/* toasts on phones: full width, above the bottom tab bar (not on top of it), with an edge on the dark page */
.screen-public .toast { border: 1px solid rgba(255,255,255,.28); }
@media (max-width: 719px) {
  body.screen-public #toasts { left: 12px; right: 12px; bottom: calc(84px + env(safe-area-inset-bottom)); max-width: none; }
}
/* the tab bar: one line per tab; phones get the short names (Scores, Shop) */
.pv-tabs button > span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pv-tabs .tl-short { display: none; }
@media (max-width: 719px) {
  .pv-tabs .tl-long.has-short { display: none; }
  .pv-tabs .tl-short { display: inline; }
}
/* big screens: the header lines up with the page under it (1180px), tabs start at the left */
@media (min-width: 1180px) {
  .pv-top > .pv-brand, .pv-top > h1, .pv-top > p, .pv-top > .pv-tabs { max-width: 1156px; margin-left: auto; margin-right: auto; }
  .pv-top > .pv-brand { display: flex; }
  .pv-tabs { justify-content: flex-start; }
  .pv-tabs button { flex: 0 0 132px; }
}
/* coach header: the dot, the team (cut short when long) and the buttons — on their own row when it's tight */
.cv-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; width: 100%; }
.cv-team { flex: 1 1 170px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-icons { display: flex; gap: 6px; margin-left: auto; }
/* section titles: the same small heading everywhere in the coach view */
.coach-chat h2.pv-h { margin: 0 0 8px; }
.pv-h.pv-h-top { margin-top: 18px; }
/* coach roster: on a narrow phone Edit / Remove go on their own line so the name keeps the width */
@media (max-width: 419px) {
  .reg-row { flex-wrap: wrap; row-gap: 6px; }
  .reg-acts { flex-basis: 100%; padding-left: 48px; justify-content: flex-start; }
}
/* chips that scroll sideways: a fade at the right edge says there are more */
.pv-chips.scroll, .pv-chips.shop-kinds { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; padding-right: 28px; -webkit-overflow-scrolling: touch; -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); }
.pv-chip { flex: none; }
/* the A–Z list: letters to jump to; one column everywhere, like the coach view's list */
.pv-azjump { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 10px; }
.pv-azjump button { min-width: 34px; min-height: 34px; background: #121c2e; border: 1px solid #2b3b54; color: #e2e8f0; border-radius: 8px; font: inherit; font-weight: 800; font-size: 13px; cursor: pointer; }
.pv-azjump button:hover { border-color: #facc15; }
.pv-az { scroll-margin-top: 8px; }
@media (min-width: 720px) {
  .pv-az { scroll-margin-top: 170px; }
}
/* open entries page: the card titles */
.en-mine h2, .en-form h2 { margin: 0 0 8px; font-size: 17px; color: #fff; }
/* bout-sheet result page (#/r): its own card name, so the head table's QR-code cards (zoom cursor, hover ring) don't apply */
.qrr-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px; display: grid; gap: 12px; min-width: 0; }
.qrr-card h2 { margin: 0; display: flex; gap: 8px; align-items: center; font-size: 20px; }
.qrr-card .ec-card { min-width: 0; overflow-wrap: anywhere; }
.qrr-card .btn { justify-content: center; }
.qrr-card.qr-sent h2 { color: #15803d; }
.qr-top .qr-home { padding: 10px; margin: -10px; display: inline-grid; place-items: center; }
.qr-top h1 { flex: 1; min-width: 0; font-size: 15px; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* six or seven tabs on a phone: no gaps between them, so "Head table" fits on one line */
@media (max-width: 700px) { .pv-tabs.n6 { gap: 0; } .pv-tabs.n6 button, .pv-tabs.n7 button { flex: 1 1 auto; letter-spacing: -.01em; } }
/* coach view: a wrestler opened from Upcoming matches opens right under that match */
.up-row.open { border-bottom-left-radius: 0; border-bottom-right-radius: 0; margin-bottom: 0; }
.up-more { background: #0f1828; border: 1px solid #22324a; border-top: 0; border-left: 4px solid #475569; border-radius: 0 0 10px 10px; margin: 0 0 6px; padding-top: 10px; }
.up-row.hot + .up-more { border-left-color: #ef4444; border-color: #4a2030; }
.up-row.warm + .up-more { border-left-color: #facc15; }
/* the Wrestlers tab on a wide screen: one centred column about a phone and a half wide (easier to read down) */
@media (min-width: 900px) { .pv-main.pv-tab-wrestlers { max-width: 680px; } }
/* tap a result to see how the points were scored (public page and coach view) */
.has-mv { cursor: pointer; }
.pv-res.has-mv:hover, .pv-res.has-mv:focus-visible { border-color: #3b5478; }
.pv-hist.has-mv:hover { background: rgba(255,255,255,.03); }
.has-mv:focus-visible { outline: 2px solid #facc15; outline-offset: 2px; }
.mv-chev { color: #8aa0bd; font-size: 12px; margin-left: 6px; }
.pv-res > .mv-chev { margin-left: 0; }
.pv-moves { background: #0f1828; border: 1px solid #22324a; border-radius: 10px; padding: 8px 10px; margin: -2px 0 8px; font-size: 13px; }
.pv-hist + .pv-moves { margin-top: 4px; }
.mv-head { display: flex; gap: 14px; color: #cbd6e4; font-weight: 700; font-size: 12px; padding-bottom: 6px; border-bottom: 1px solid #22324a; margin-bottom: 2px; }
.mv-head span { display: inline-flex; align-items: center; }
.mv-row { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 5px 0; border-top: 1px solid #1a2638; }
.mv-row:first-of-type { border-top: 0; }
.mv-when { color: #8aa0bd; font-variant-numeric: tabular-nums; font-size: 12px; }
.mv-what { color: #e2e8f0; overflow-wrap: anywhere; }
.mv-what b { color: #86efac; }
.mv-to { color: #fca5a5; }
.mv-sc { color: #fff; font-weight: 800; font-variant-numeric: tabular-nums; }
.mv-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; }
.mv-dot.c-red { background: var(--red); } .mv-dot.c-green { background: var(--green); }
.mv-note { margin: 6px 0 0; }
/* leaders of the day (public page and coach view, when the head table turns them on) */
.ld-pv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.ld-pv h3 { margin: 0 0 6px; font-size: 14px; color: #facc15; text-transform: uppercase; letter-spacing: .05em; }
.ld-pv-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 6px 0; border-top: 1px solid #22324a; }
.ld-pv-row:first-of-type { border-top: 0; }
.ld-pv-row.mine { background: rgba(250,204,21,.08); border-radius: 6px; }
.ld-pv-pl { color: #8aa0bd; font-weight: 800; text-align: right; }
.ld-pv-who { min-width: 0; overflow-wrap: anywhere; }
.ld-pv-who small { display: block; color: #8aa0bd; font-size: 12px; }
.ld-pv-v { font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ld-pv-note { margin: 6px 0 0; }
.ld-pv .pv-moves { margin: 2px 0 6px; }
/* coach view: Overall / Our team for the leaders */
.pv-seg { display: inline-flex; background: #121c2e; border: 1px solid #2b3b54; border-radius: 999px; padding: 3px; gap: 2px; margin: 0 0 10px; }
.pv-seg button { font: inherit; font-size: 13px; font-weight: 700; color: #cbd6e4; background: transparent; border: 0; border-radius: 999px; padding: 6px 14px; min-height: 34px; cursor: pointer; }
.pv-seg button.on { background: #facc15; color: #111827; }
.pv-seg button:focus-visible { outline: 2px solid #facc15; outline-offset: 2px; }
/* leaders: on a big screen every category is open; on a phone each folds to its title and leader */
.ld-pv-h { display: flex; align-items: baseline; gap: 10px; width: 100%; background: none; border: 0; padding: 0; margin: 0 0 6px; color: inherit; font: inherit; text-align: left; cursor: default; }
.ld-pv-h h3 { margin: 0; }
.ld-pv-sum, .ld-pv-chev { display: none; }
@media (max-width: 720px) {
  .ld-pv-grid { gap: 8px; }
  .ld-pv { padding: 0; }
  .ld-pv-h { cursor: pointer; padding: 12px 14px; margin: 0; min-height: 48px; align-items: center; }
  .ld-pv-h h3 { flex: none; }
  .ld-pv-sum { display: flex; flex: 1; min-width: 0; justify-content: flex-end; gap: 8px; color: #cbd6e4; font-size: 13px; }
  .ld-pv-sum span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
  .ld-pv-sum b { color: #fff; flex: none; }
  .ld-pv-chev { display: inline; color: #8aa0bd; font-size: 12px; transition: transform .15s; }
  .ld-pv.open .ld-pv-chev { transform: rotate(180deg); }
  .ld-pv.open .ld-pv-sum { visibility: hidden; }
  .ld-pv-body { display: none; padding: 0 14px 12px; }
  .ld-pv.open .ld-pv-body { display: block; }
  .ld-pv-h:focus-visible { outline: 2px solid #facc15; outline-offset: -2px; border-radius: 12px; }
}
/* the tournament's logo (on a white tile, so a dark logo still shows) beside its name, and the Tickets / Live
   stream / Directions / Event info buttons under it — each only when the head table filled it in (Setup → Event) */
.pv-id { display: flex; align-items: center; gap: 12px; margin: 6px 0 10px; }
.pv-id-t { min-width: 0; }
.pv-top .pv-id h1 { margin-top: 0; }
.pv-top .pv-id p { margin-bottom: 0; }
.pv-logo { flex: none; height: 52px; width: auto; max-width: 104px; object-fit: contain; background: #fff; border-radius: 10px; padding: 4px; box-sizing: border-box; }
.pv-links { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.pv-link { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); color: #e8eef7; font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.pv-link:hover, .pv-link:focus-visible { background: rgba(255,255,255,.15); color: #fff; }
.pv-link svg.ic { width: 15px; height: 15px; color: #facc15; }
@media (max-width: 380px) { .pv-logo { height: 44px; max-width: 80px; } .pv-link { padding: 4px 10px; font-size: 12.5px; } }
@media (min-width: 1180px) {
  .pv-top > .pv-id { max-width: 1156px; margin: 6px auto 10px; }
  .pv-top > .pv-links { max-width: 1156px; margin: 0 auto 12px; }
}
/* on the hub: back to every tournament on the site (top right of the header) */
.pv-home { position: absolute; top: 11px; right: max(16px, calc((100% - 1156px) / 2)); display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); color: #dbe7f7; font-size: 13px; font-weight: 600; text-decoration: none; z-index: 1; }
.pv-home:hover { background: rgba(255,255,255,.14); color: #fff; }
.pv-home:focus-visible { outline: 2px solid #60a5fa; outline-offset: 2px; }
@media (max-width: 700px) { .pv-home { top: 8px; min-height: 28px; padding: 0 10px; font-size: 12px; } }

/* ---- Advancement explained (public page and coach view) ----
   "How 157 works" above a weight's bracket (folds to one line; remembered on the phone), where each pool wrestler
   would go (dashed: if the pool ended now; solid ✓: decided), and a wrestler's path in the coach view. */
.adv { background: #121c2e; border: 1px solid #22324a; border-radius: 14px; margin: 0 0 12px; color: #e6edf7; overflow: hidden; }
.adv-h { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 46px; padding: 10px 14px; background: none; border: 0; color: #fff; font: inherit; font-weight: 800; font-size: 15px; text-align: left; cursor: pointer; }
.adv-h:focus-visible { outline: 2px solid #facc15; outline-offset: -2px; border-radius: 14px; }
.adv-i { width: 22px; height: 22px; border-radius: 50%; background: rgba(250,204,21,.16); color: #facc15; display: inline-grid; place-items: center; font-size: 13px; flex: none; }
.adv-t { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adv-pill { margin-left: auto; flex: none; font-size: 11px; font-weight: 700; color: #bcd0ff; background: rgba(47,107,255,.18); border-radius: 999px; padding: 3px 9px; white-space: nowrap; }
.adv-pill .adv-ps { display: none; }
@media (max-width: 520px) { .adv-pill .adv-pl { display: none; } .adv-pill .adv-ps { display: inline; } .adv:not(.open) .adv-pill { display: none; } .adv-t { white-space: normal; } }
.adv-chev { flex: none; color: #9fb0c7; font-size: 13px; transition: transform .15s; }
.adv:not(.open) .adv-chev { transform: rotate(-90deg); }
.adv-b { padding: 0 14px 14px; font-size: 13.5px; line-height: 1.45; }
.adv-b > p { margin: 0 0 10px; color: #c7d3e3; }
.adv-b > p b { color: #fff; }
.adv-flow { display: grid; gap: 8px; margin: 4px 0 12px; }
.adv-row { display: grid; grid-template-columns: 1fr 14px 1fr 14px 1fr; align-items: stretch; gap: 4px; }
.adv-row > .ar { display: grid; place-items: center; color: #6f84a3; font-size: 13px; }
.adv-box { min-width: 0; border-radius: 9px; padding: 7px 8px; font-size: 12px; line-height: 1.25; background: #0d1628; border: 1px solid #2d4468; color: #dbe7f7; display: flex; flex-direction: column; justify-content: center; overflow-wrap: anywhere; }
.adv-box b { font-size: 12.5px; color: #fff; }
.adv-box small { color: #9fb0c7; font-size: 11px; margin-top: 2px; }
.adv-box.g { border-color: rgba(34,197,94,.55); background: rgba(34,197,94,.08); }
.adv-box.a { border-color: rgba(245,158,11,.55); background: rgba(245,158,11,.08); }
.adv-box.m { border-style: dashed; color: #9fb0c7; }
.adv-box.pl { border-color: rgba(250,204,21,.5); background: rgba(250,204,21,.07); }
.adv-box.pl b { color: #facc15; }
.adv-sm { font-size: 12.5px; color: #9fb0c7; margin: 6px 0 0; line-height: 1.45; }
.adv-sm b { color: #dbe7f7; font-weight: 600; }
@media (min-width: 900px) { .adv-row { grid-template-columns: 1fr 18px 1fr 18px 1fr; } .adv-box { font-size: 13px; } .adv-box b { font-size: 13.5px; } .adv-b { font-size: 14px; } }
/* where each pool wrestler would go */
.adv-tag { display: inline-block; flex: none; font-size: 10.5px; font-weight: 800; letter-spacing: .02em; line-height: 1.35; border-radius: 999px; padding: 1px 7px; margin-left: 6px; white-space: nowrap; font-style: normal; }
.adv-tag.g { color: #86efac; border: 1px solid rgba(34,197,94,.6); }
.adv-tag.a { color: #fcd34d; border: 1px solid rgba(245,158,11,.6); }
.adv-tag.m { color: #9fb0c7; border: 1px solid #36507a; }
.adv-tag.dash { border-style: dashed; }
.adv-tag.solid.g { background: rgba(34,197,94,.18); }
.adv-tag.solid.a { background: rgba(245,158,11,.16); }
.adv-tag.solid.m { background: rgba(148,163,184,.14); }
.brv-st.brv-adv b { display: flex; align-items: center; min-width: 0; }
.brv-st.brv-adv .brv-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.brv-pool .br-col-title { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.adv-pn { font-weight: 600; letter-spacing: 0; text-transform: none; color: #7f92ad; font-size: 11.5px; white-space: nowrap; }
.adv-legend { display: flex; gap: 6px 14px; flex-wrap: wrap; align-items: center; font-size: 11.5px; color: #9fb0c7; margin: -2px 0 12px; }
.adv-legend .adv-tag { margin: 0 4px 0 0; }
.adv-legend b { color: #cbd6e4; }
/* the whole bracket (a white sheet): the same tags in darker colors */
.bracket-wrap .adv-tag { vertical-align: 1px; }
.bracket-wrap .adv-tag.g { color: #15803d; border-color: rgba(21,128,61,.55); }
.bracket-wrap .adv-tag.a { color: #b45309; border-color: rgba(180,83,9,.5); }
.bracket-wrap .adv-tag.m { color: #64748b; border-color: #cbd5e1; }
.bracket-wrap .adv-tag.solid.g { background: #dcfce7; }
.bracket-wrap .adv-tag.solid.a { background: #fef3c7; }
.bracket-wrap .adv-tag.solid.m { background: #f1f5f9; }
.bracket-wrap .adv-pn { color: #64748b; margin-left: 8px; }
.bracket-wrap .adv-legend { color: #4b5563; margin: 0 0 12px; }
.bracket-wrap .adv-legend b { color: #111827; }
/* coach view: a wrestler's path through his weight */
.adv-path { margin: 4px 0 10px; border: 1px solid #2d4468; border-radius: 12px; background: #0d1628; padding: 10px 12px; }
.adv-path h4 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: #9fb0c7; }
.adv-path ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.adv-path li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; font-size: 13px; color: #dbe7f7; line-height: 1.35; }
.adv-path li i { width: 12px; height: 12px; border-radius: 50%; margin-top: 3px; border: 2px solid #36507a; box-sizing: border-box; }
.adv-path li.done i { background: #22c55e; border-color: #22c55e; }
.adv-path li.now i { border-color: #facc15; box-shadow: 0 0 0 3px rgba(250,204,21,.2); }
.adv-path li b { color: #fff; }
.adv-path li small { display: block; color: #9fb0c7; font-size: 12px; }
/* ---- end of advancement explained ---- */
/* ---- dual meets: public page and coach view (Builder C) ---- */
.pvd-badge { display: inline-grid; place-items: center; min-width: 36px; height: 20px; padding: 0 5px; border-radius: 5px; background: #1e293b; border: 1px solid #36507a; color: #dbe4f0; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; flex: none; }
.pvd-badge.lg { min-width: 46px; height: 26px; font-size: 12.5px; border-radius: 7px; }
/* team colors: home green, visitor red (NFHS; Setup can swap them) */
.pvd-badge.tc-green { border-color: #16a34a; box-shadow: inset 3px 0 0 #16a34a; } .pvd-badge.tc-red { border-color: #dc2626; box-shadow: inset 3px 0 0 #dc2626; }
.pvd-dot { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 5px; vertical-align: 1px; }
.pvd-dot.tc-green { background: #22c55e; } .pvd-dot.tc-red { background: #ef4444; }
/* the duals of a tri-meet or quad */
.pvd-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px; margin: 0 0 12px; }
.pvd-tbl .rt .pv-muted { font-weight: 600; }
.pvd-card { display: flex; flex-direction: column; gap: 4px; text-align: left; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 8px 12px; color: #fff; font: inherit; cursor: pointer; min-width: 0; }
.pvd-card.on { border-color: #facc15; box-shadow: 0 0 0 1px #facc15 inset; }
.pvd-card.live:not(.on) { border-color: #9f1239; }
.pvd-card-m { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 11.5px; color: #9fb0c7; }
.pvd-card-m .pv-state { margin-left: 0; font-size: 10px; padding: 1px 7px; }
.pv-state.done { background: #14532d; color: #bbf7d0; }
.pvd-card-t { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.pvd-card-t b { font-size: 14.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvd-card-t em { font-style: normal; font-weight: 900; font-size: 18px; font-variant-numeric: tabular-nums; }
.pvd-card-t.trail b, .pvd-card-t.trail em { color: #9fb0c7; }
.pvd-card-t.win b::after { content: ' ✓'; color: #4ade80; font-size: 12px; }
@media (max-width: 719px) { .pvd-list { display: flex; overflow-x: auto; gap: 8px; padding-bottom: 4px; scroll-snap-type: x proximity; } .pvd-list .pvd-card { flex: 0 0 min(78%, 300px); scroll-snap-align: start; } }
/* the scoreboard */
.pvd-sb header { align-items: center; }
.pv-mat.pvd-sb header h2 { font-size: 12.5px; color: #9fb0c7; text-transform: uppercase; letter-spacing: .08em; display: flex; align-items: center; gap: 6px; min-width: 0; }
.pvd-sbr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 6px; margin: 4px 0; }
.pvd-big { display: flex; justify-content: center; align-items: center; gap: 8px; font-size: 44px; font-weight: 900; font-variant-numeric: tabular-nums; color: #fff; line-height: 1; }
.pvd-big i { font-style: normal; color: #52647f; font-size: 26px; font-weight: 700; }
.pvd-big .trail { color: #cbd6e4; }
.pvd-big.pre span { color: #52647f; }
.pvd-names { display: flex; justify-content: space-between; gap: 8px; margin: -2px 0 10px; }
.pvd-names span { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.pvd-names span.r { text-align: right; }
.pvd-names b { color: #fff; font-size: 16px; overflow-wrap: anywhere; }
.pvd-names small { color: #8ea0b8; font-size: 11.5px; }
.pvd-prog { display: grid; gap: 3px; margin: 2px 0 6px; }
.pvd-prog span { height: 6px; border-radius: 3px; background: #26354d; }
.pvd-prog span.tc-green { background: #22c55e; } .pvd-prog span.tc-red { background: #ef4444; } .pvd-prog span.x { background: #475569; }
.pvd-prog span.now { background: #facc15; box-shadow: 0 0 0 2px rgba(250,204,21,.25); }
.pvd-sbf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 8px; font-size: 12.5px; color: #9fb0c7; }
.pvd-sbf b { color: #fff; }
.pvd-key { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.pvd-key i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
.pvd-key i.tc-green { background: #22c55e; } .pvd-key i.tc-red { background: #ef4444; } .pvd-key i + i { margin-left: 5px; }
.pvd-now { border-top: 1px solid #22324a; margin-top: 10px; padding-top: 10px; }
.pvd-now .pv-meta b { color: #facc15; font-size: 13px; letter-spacing: .02em; text-transform: uppercase; }
.pvd-now.ex .pv-meta b { color: #cbd6e4; }
.pvd-worth { font-size: 12.5px; color: #9fb0c7; margin: 4px 0 2px; }
.pvd-worth b { color: #dbe4f0; font-weight: 700; }
.pvd-info { display: grid; gap: 4px; font-size: 13px; color: #cbd6e4; }
.pvd-info b { color: #fff; }
.pvd-info .pv-link { padding: 0; }
.pvd-exm { font-size: 11px; color: #9fb0c7; }
.pvd-info b { white-space: nowrap; }
.pvd-worth b { white-space: normal; } /* (the list wraps on a phone instead of running off the card) */
.pvd-order p { margin: 0 0 8px; font-size: 13px; color: #cbd6e4; }
.pvd-order p b { color: #fff; }
.pvd-order ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: 6px; }
.pvd-order li { background: #0f1827; border: 1px solid #22324a; border-radius: 8px; padding: 4px 8px; color: #facc15; font-weight: 800; font-size: 14px; display: flex; flex-direction: column; line-height: 1.15; }
.pvd-order li small { color: #6b7f99; font-size: 10.5px; font-weight: 700; }
/* the bouts in dual order: cards on a phone */
.pvd-note { margin: -4px 2px 8px; }
.pvd-colh { display: grid; grid-template-columns: 38px minmax(0,1fr) auto 46px; gap: 8px; padding: 0 12px 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #6b7f99; }
.pvd-colh span:nth-child(3), .pvd-colh span:nth-child(4) { text-align: right; }
.pvd-b { display: grid; grid-template-columns: 38px minmax(0,1fr) auto 46px; gap: 8px; align-items: center; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 8px 12px; margin-bottom: 6px; }
.pvd-b.has-mv { cursor: pointer; }
.pvd-b .pv-res-wt { min-width: 0; }
.pvd-bb { min-width: 0; line-height: 1.25; }
.pvd-bb > div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvd-bb b { color: #fff; }
.pvd-bb .small { font-size: 12.5px; }
.pvd-rt { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.pvd-rt .pv-res-type { font-size: 12.5px; }
.pvd-tp { font-size: 11px; font-weight: 800; border-radius: 99px; padding: 1px 7px; white-space: nowrap; }
.pvd-tp.tc-green { background: rgba(34,197,94,.16); color: #86efac; } .pvd-tp.tc-red { background: rgba(239,68,68,.16); color: #fca5a5; }
.pvd-run { text-align: right; font-weight: 900; font-variant-numeric: tabular-nums; color: #fff; font-size: 15px; white-space: nowrap; }
.pvd-b.now { border-color: #facc15; box-shadow: 0 0 0 1px #facc15 inset; background: #1a1c1a; }
.pvd-b.now .pvd-run { color: #6b7f99; }
.pvd-b.now .pvd-livesc { color: #fff; }
.pvd-b.up { background: #0f1827; border-style: dashed; border-color: #283a55; }
.pvd-b.up .pvd-bb b { color: #dbe4f0; font-weight: 600; }
.pvd-b.up .pvd-run { color: #52647f; font-weight: 700; }
.pvd-st { display: inline-block; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; border-radius: 4px; padding: 1px 6px; white-space: nowrap; background: #1e293b; color: #9fb0c7; }
.pvd-st.now { background: #facc15; color: #111; } .pvd-st.deck { background: #1d4ed8; color: #fff; }
.pvd-fo { color: #fca5a5; }
.pvd-ded { display: grid; grid-template-columns: 38px minmax(0,1fr) 46px; gap: 8px; align-items: center; border: 1px solid rgba(248,113,113,.35); background: rgba(127,29,29,.18); border-radius: 12px; padding: 7px 12px; margin: -2px 0 6px; font-size: 12.5px; color: #fecaca; }
.pvd-ded b { color: #fca5a5; font-weight: 800; }
/* exhibition (JV) bouts */
.pvd-ex { background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 10px 12px; margin: 12px 0 0; }
.pvd-ex h3 { margin: 0 0 6px; font-size: 13px; color: #dbe4f0; display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.pvd-ex h3 span { color: #8ea0b8; font-weight: 600; font-size: 12px; }
.pvd-ex > div { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; color: #cbd6e4; padding: 5px 0; border-top: 1px solid #1e2b40; }
.pvd-ex > div span:first-child { min-width: 0; }
.pvd-ex > div span:last-child { color: #9fb0c7; white-space: nowrap; }
.pvd-ex em { font-style: normal; color: #8ea0b8; }
/* a tied dual: the criteria */
.pvd-tie { margin-top: 12px; }
.pvd-tie h3 { color: #fff; font-size: 14px; }
.pvd-tb { display: grid; grid-template-columns: 16px minmax(0,1fr) 34px 34px; gap: 6px; align-items: baseline; font-size: 12.5px; color: #cbd6e4; padding: 4px 0; border-top: 1px solid #1e2b40; }
.pvd-tb .k { color: #6b7f99; font-weight: 800; }
.pvd-tb .v { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.pvd-tb.pvd-tbh { border-top: 0; font-size: 10.5px; color: #6b7f99; font-weight: 800; letter-spacing: .05em; }
.pvd-tb.on { color: #fff; background: rgba(250,204,21,.08); border-radius: 6px; }
.pvd-tb.on .k { color: #facc15; }
.pvd-tie-v { margin: 8px 0 0; font-size: 13px; color: #dbe4f0; }
/* a wide screen: the scoreboard beside the bouts table */
.pvd-grid { display: flex; flex-direction: column; }
.pvd-grid > .pvd-main { margin-top: 16px; }
.pvd-main .pv-h { flex-wrap: wrap; gap: 4px 12px; }
@media (min-width: 1000px) {
  .pv-main.pv-tab-live:has(.pvd-grid) { max-width: 1240px; }
  .pvd-grid { display: grid; grid-template-columns: minmax(360px, 430px) minmax(0, 1fr); grid-template-areas: "a main" "c main"; grid-template-rows: auto 1fr; gap: 0 16px; align-items: start; }
  .pvd-a { grid-area: a; } .pvd-c { grid-area: c; } .pvd-grid > .pvd-main { grid-area: main; margin-top: 0; }
}
.pvd-tblw { overflow-x: auto; border-radius: 14px; }
.pvd-tbl { width: 100%; border-collapse: separate; border-spacing: 0; background: #121c2e; border: 1px solid #22324a; border-radius: 14px; overflow: hidden; font-size: 13.5px; }
.pvd-tbl th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: #6b7f99; padding: 9px 10px 7px; border-bottom: 1px solid #22324a; font-weight: 800; white-space: nowrap; }
.pvd-th { display: inline-flex; align-items: center; gap: 6px; }
.pvd-tbl td { padding: 7px 10px; border-top: 1px solid #1a2740; color: #cbd6e4; white-space: nowrap; }
.pvd-tbl tbody tr:first-child td { border-top: 0; }
.pvd-tbl .n { color: #6b7f99; font-size: 12px; width: 18px; }
.pvd-tbl .wt { color: #facc15; font-weight: 800; width: 40px; }
.pvd-tbl .w { color: #fff; font-weight: 700; } .pvd-tbl .l { color: #8ea0b8; }
.pvd-tbl td.w:not(.cur)::after { content: ' ✓'; color: #4ade80; font-size: 11px; }
.pvd-tbl .num { text-align: right; font-variant-numeric: tabular-nums; width: 40px; }
.pvd-tbl th.num { text-align: right; }
.pvd-tbl .pts { font-weight: 800; } .pvd-tbl .pts.tc-green { color: #86efac; } .pvd-tbl .pts.tc-red { color: #fca5a5; } .pvd-tbl .pts.neg { color: #fca5a5; }
.pvd-tbl .run { font-weight: 900; color: #fff; text-align: right; width: 58px; font-variant-numeric: tabular-nums; }
.pvd-tbl .rt { font-weight: 800; color: #dbe4f0; }
.pvd-tbl tr.has-mv { cursor: pointer; }
.pvd-tbl tr.now td { background: rgba(250,204,21,.08); border-top: 1px solid rgba(250,204,21,.5); border-bottom: 1px solid rgba(250,204,21,.5); }
.pvd-tbl tr.now td.run { color: #6b7f99; }
.pvd-tbl tr.now + tr td { border-top: 0; }
.pvd-cursc { color: #facc15; font-weight: 900; margin-left: 4px; }
.pvd-tbl tr.up td { color: #9fb0c7; }
.pvd-tbl tr.up td.run { color: #52647f; font-weight: 700; }
.pvd-tbl tr.ded td { background: rgba(127,29,29,.16); color: #fecaca; font-size: 12.5px; }
.pvd-tbl tr.pvd-mvrow td { padding: 0 10px; border-top: 0; white-space: normal; }
.pvd-tbl tr.pvd-mvrow:has(.pv-moves[hidden]) { display: none; }
/* lineups: both teams side by side, in bout order */
.pvd-hidden h3 { color: #fff; }
.pvd-cnt { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 0; border-top: 1px solid #1e2b40; font-size: 14px; color: #dbe4f0; }
.pvd-cnt > span { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.pvd-cnt b { color: #fff; white-space: nowrap; }
.pvd-lk { display: flex; flex-direction: column; gap: 6px; }
.pvd-lk h2, .pvd-lk h3 { margin: 0; color: #fff; font-size: 18px; line-height: 1.2; }
.pvd-lkr { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; color: #9fb0c7; }
.pvd-lkr b { color: #fff; }
.pvd-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 800; border-radius: 99px; padding: 3px 9px; white-space: nowrap; }
.pvd-pill svg.ic { width: 13px; height: 13px; }
.pvd-pill.amb { background: #713f12; color: #fde68a; } .pvd-pill.ok { background: #14532d; color: #bbf7d0; } .pvd-pill.mut { background: #1e293b; color: #cbd6e4; } .pvd-pill.bad { background: #7f1d1d; color: #fecaca; }
.pvd-mh { display: grid; grid-template-columns: 44px minmax(0,1fr) minmax(0,1fr); gap: 8px; padding: 4px 10px 4px; font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #9fb0c7; }
.pvd-mh span:last-child { padding-left: 9px; }
.pvd-m { display: grid; grid-template-columns: 44px minmax(0,1fr) minmax(0,1fr); gap: 8px; align-items: center; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 7px 10px; margin-bottom: 5px; }
.pvd-m .bn { display: flex; flex-direction: column; line-height: 1.1; }
.pvd-m .bn b { color: #facc15; font-weight: 900; font-size: 14px; }
.pvd-m .bn small { color: #6b7f99; font-size: 10px; font-weight: 700; white-space: nowrap; }
.pvd-m .c { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.pvd-m .c b { color: #fff; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvd-m .c.me b, .pvd-m .c.fl b { color: #fde047; }
.pvd-m .c span { font-size: 11.5px; color: #9fb0c7; display: flex; flex-wrap: wrap; gap: 2px 5px; align-items: center; }
.pvd-m .c.r { border-left: 1px solid #22324a; padding-left: 8px; }
.pvd-m .c.ff b { color: #cbd6e4; font-weight: 700; font-style: italic; }
.pvd-m .c.ff.good b { color: #86efac; } .pvd-m .c.ff.bad b { color: #fca5a5; }
.pvd-m .wi-tag { font-size: 11px; padding: 0 5px; }
.pvd-m.first { border-color: #3b5478; }
.pvd-wl { font-style: normal; font-weight: 800; font-size: 11px; }
.pvd-wl.w { color: #4ade80; } .pvd-wl.l { color: #fca5a5; }
@media (min-width: 900px) { .pvd-lineups { max-width: 820px; } .pv-main.pv-tab-lineups { max-width: 760px; } }
.pvd-m .c.hid b { color: #6b7f99; } .pvd-m .c.hid span { font-style: italic; }
.pvd-inlink { background: none; border: 0; padding: 0; font: inherit; color: #93c5fd; font-weight: 700; cursor: pointer; text-decoration: underline; }
.pvd-sw { display: block; width: 100%; margin: 8px 0 0; padding: 11px; border-radius: 12px; border: 1px solid #2b3b54; background: #121c2e; color: #93c5fd; font: inherit; font-weight: 700; cursor: pointer; }
.pvd-swapnote { margin: 12px 2px 0; }
/* coach: the lineup entry (before the lock) */
.pvd-wh { margin-top: 14px; }
.pvd-lu { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 4px 10px; align-items: center; background: #121c2e; border: 1px solid #22324a; border-left: 5px solid #475569; border-radius: 12px; padding: 8px 10px; margin-bottom: 6px; }
.pvd-lu.set { border-left-color: #3b82f6; }
.pvd-lu.empty { border-left-color: #f59e0b; background: #1c1810; }
.pvd-pick { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; background: #0f172a; border: 1px solid #334155; border-radius: 10px; padding: 5px 10px; color: #fff; font: inherit; text-align: left; cursor: pointer; min-width: 0; }
.pvd-pick.ro { cursor: default; }
.pvd-pick .pk { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.pvd-pick .pk b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvd-pick .pk > span { font-size: 12px; color: #9fb0c7; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.pvd-pick .cv { color: #9fb0c7; font-size: 12px; }
.pvd-pick.open { border-color: #facc15; box-shadow: 0 0 0 2px rgba(250,204,21,.25); }
.pvd-lu.empty .pvd-pick { border: 1px dashed #b45309; background: #1a150c; }
.pvd-lu.empty .pvd-pick .pk b { color: #fcd34d; font-weight: 700; }
.pvd-ff, .pvd-opp { grid-column: 2; font-size: 12.5px; }
.pvd-ff { color: #fcd34d; font-weight: 700; }
.pvd-opp { color: #9fb0c7; }
.pvd-pk-menu { grid-column: 1 / -1; background: #16233a; border: 1px solid #3b5478; border-radius: 12px; box-shadow: 0 10px 26px rgba(0,0,0,.45); padding: 6px; margin-top: 4px; display: flex; flex-direction: column; }
.pvd-pk-menu h5 { margin: 4px 8px 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: #9fb0c7; }
.pvd-opt { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 7px 10px; border: 0; border-radius: 8px; background: none; color: #fff; font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.pvd-opt:hover:not([disabled]), .pvd-opt:focus-visible { background: rgba(147,197,253,.1); outline: none; }
.pvd-opt > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pvd-opt small { color: #9fb0c7; font-size: 12px; }
.pvd-opt.on { background: rgba(250,204,21,.12); }
.pvd-opt.on b::before { content: '✓ '; color: #facc15; }
.pvd-opt.off { opacity: .45; cursor: not-allowed; }
.pvd-opt.ff { color: #fca5a5; border-top: 1px solid #2b3b54; border-radius: 0 0 8px 8px; margin-top: 4px; }
.pvd-pk-menu p { margin: 6px 10px 4px; font-size: 11.5px; color: #8ea0b8; line-height: 1.35; }
.pvd-ex p { margin: 6px 0 0; }
.pvd-ex .pvd-sw { margin-top: 8px; }
/* dual tournaments (0.38): the Duals tab — pools, the bracket, placement duals, places, How the duals work */
.pvd-badge.tbd { color: #6b7f99; border-style: dashed; }
.pvd-card-t b.tbd { color: #8ea0b8; font-style: italic; font-weight: 600; }
.pvd-allc { justify-content: center; color: #93c5fd; font-weight: 800; font-size: 14px; }
.pvd-allc small { color: #8ea0b8; font-weight: 600; font-size: 11.5px; }
.pvt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
.pvt-side .adv { margin: 0; }
.pvt-sec { margin: 0 0 16px; }
.pvt-sec .pv-h { flex-wrap: wrap; gap: 4px 12px; }
.pvt-sec .pv-h .pv-muted { text-transform: none; letter-spacing: 0; font-weight: 600; font-size: 12px; }
.pvt-pools { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pvt-pools.one { grid-template-columns: minmax(0, 640px); }
.pvt-pool { background: #121c2e; border: 1px solid #22324a; border-radius: 12px; padding: 8px 12px 6px; margin-bottom: 8px; min-width: 0; }
.pvt-ph { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin: 2px 0 2px; }
.pvt-ph b { color: #9fb0c7; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.pvt-ph span { color: #7f92ad; font-size: 11.5px; white-space: nowrap; }
.pvt-row { display: grid; grid-template-columns: 18px minmax(0,1fr) 38px 72px; gap: 6px; align-items: center; width: 100%; padding: 7px 0; border: 0; border-top: 1px solid #1e2b40; background: none; color: #fff; font: inherit; text-align: left; cursor: pointer; }
.pvt-row.pvt-hd { cursor: default; border-top: 0; padding: 2px 0 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #6b7f99; }
.pvt-row.pvt-hd span:nth-child(3), .pvt-row.pvt-hd span:nth-child(4) { text-align: right; }
.pvt-row .rk { color: #facc15; font-weight: 900; font-size: 14px; }
.pvt-row b { display: flex; align-items: center; min-width: 0; font-size: 14.5px; }
.pvt-row b .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pvt-row .wl { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.pvt-row .fa { text-align: right; color: #9fb0c7; font-variant-numeric: tabular-nums; font-size: 13px; }
.pvt-row.mine { background: rgba(250,204,21,.08); border-radius: 6px; }
.pvt-row.mine b .nm { color: #fde047; }
.pvt-row.static { cursor: default; }
.pvt-row:hover:not(.pvt-hd):not(.static) b .nm { text-decoration: underline; }
.pvt-row .pvt-s { display: none; }
@media (max-width: 520px) { .pvt-row .pvt-l { display: none; } .pvt-row .pvt-s { display: inline; } }
.pvt-note { margin: 4px 0 4px; font-size: 11.5px; color: #8ea0b8; }
.pvt-tie { margin: 6px 0 4px; font-size: 12.5px; color: #fde68a; background: #2a2610; border: 1px solid #a16207; border-radius: 8px; padding: 6px 8px; display: flex; gap: 6px; align-items: flex-start; }
.pvt-tie svg.ic { width: 14px; height: 14px; flex: none; margin-top: 2px; }
.pvt-br { display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 12px 22px; align-items: stretch; }
.pvt-col { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pvt-colb { flex: 1; display: flex; flex-direction: column; justify-content: space-around; gap: 12px; position: relative; }
.pvt-col + .pvt-col .pvt-colb::before { content: ''; position: absolute; left: -16px; top: 25%; bottom: 25%; border-left: 2px solid #33476a; }
.pvt-colh { margin: 0; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: #7f92ad; }
.pvt-colh span { text-transform: none; letter-spacing: 0; font-weight: 600; }
.pvt-d { display: block; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer; background: #121c2e; border: 1px solid #22324a; border-radius: 12px; overflow: hidden; padding: 0; }
.pvt-d.live { border-color: #e11d48; box-shadow: 0 0 0 1px #e11d48 inset; }
.pvt-d.wait { border-style: dashed; background: #0f1827; }
.pvt-d:focus-visible { outline: 2px solid #facc15; outline-offset: 2px; }
.pvt-dm { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 11.5px; color: #9fb0c7; padding: 6px 12px; background: #0f1827; border-bottom: 1px solid #22324a; }
.pvt-dm > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvt-dm b { color: #dbe4f0; font-weight: 700; }
.pvt-dm .pv-state { margin-left: 0; flex: none; font-size: 10px; padding: 1px 7px; }
.pvt-when { flex: none; color: #cbd6e4; font-weight: 700; white-space: nowrap; }
.pvt-t.tbd .nm { white-space: normal; font-size: 13.5px; line-height: 1.25; }
.pvd-card-m .pv-state, .pvd-sb header .pv-state { flex: none; white-space: nowrap; }
.pvt-t { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 7px 12px; }
.pvt-t + .pvt-t { border-top: 1px solid #1e2b40; }
.pvt-t .sd { font-size: 11px; font-weight: 800; color: #9fb0c7; }
.pvt-t b { color: #fff; font-size: 15px; display: flex; align-items: center; gap: 7px; min-width: 0; }
.pvt-t b .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvt-t .sc { font-size: 22px; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }
.pvt-t.trail .sc { color: #9fb0c7; }
.pvt-t.tbd b { color: #7f92ad; font-style: italic; font-weight: 600; }
.pvt-t.lose b, .pvt-t.lose .sc { color: #8ea0b8; }
.pvt-pls { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.pvt-d.sm .pvt-t { grid-template-columns: auto minmax(0,1fr) auto; padding: 6px 10px; }
.pvt-d.sm .pvt-t b { font-size: 14px; }
.pvt-d.sm .pvt-t .sc { font-size: 18px; }
.pvt-d.sm .pvt-dm { padding: 5px 10px; }
.pvt-places h3 { color: #facc15; }
.pvt-places ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 12px; }
.pvt-places li { display: flex; align-items: baseline; gap: 8px; padding: 4px 0; border-top: 1px solid #1e2b40; }
.pvt-places .pl { font-weight: 900; color: #9fb0c7; min-width: 34px; }
.pvt-places li.p1 .pl { color: #facc15; } .pvt-places li.p2 .pl { color: #cbd5e1; } .pvt-places li.p3 .pl { color: #d97706; }
.pvt-places .pvt-tl { background: none; border: 0; padding: 0; font: inherit; font-size: 15px; font-weight: 700; color: #fff; cursor: pointer; text-align: left; }
.pvt-places .pvt-tl:hover { text-decoration: underline; }
.adv-row.pvt-r2 { grid-template-columns: minmax(0,1fr) 16px minmax(0,1.2fr); }
.pvt-seg { margin: 0 0 12px; }
.pvt-team h2 { margin: 0; color: #fff; font-size: 20px; }
.pvt-path { margin: 4px 0 0; color: #dbe4f0; font-size: 14px; }
.pvt-poss { display: grid; gap: 6px; margin-top: 8px; }
.pvt-poss > div { background: #0f1827; border: 1px dashed #283a55; border-radius: 12px; padding: 8px 12px; font-size: 13px; color: #cbd6e4; display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; }
.pvt-poss b { color: #fff; }
.pvt-poss > div > span:last-child { flex-basis: 100%; color: #9fb0c7; }
@media (min-width: 1000px) { .pv-main.pv-tab-bracket:has(.pvt-seg) { max-width: 1240px; } }
@media (max-width: 999px) {
  .pvt-grid { grid-template-columns: 1fr; }
  .pvt-br { grid-template-columns: 1fr; }
  .pvt-col + .pvt-col .pvt-colb::before { display: none; }
  .pvt-colh { margin-top: 4px; }
}
@media (max-width: 719px) { .pvt-pools { grid-template-columns: 1fr; gap: 0; } }
/* ---- end of dual meets (Builder C) ---- */

/* ---- 0.39 organization pass: Live Results and Coach View (Builder C) ---- */
/* one label per tab on phones and laptops; six tabs still fit a 390-wide phone */
@media (max-width: 700px) { .pv-tabs.n6 { gap: 0; } .pv-tabs.n5 button { font-size: 11px; } }
.pv-h-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pv-h .pv-h-link { text-transform: none; letter-spacing: 0; font-size: 12.5px; min-height: 30px; }
.pv-back { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 6px 0; margin: 0 0 4px; color: #93c5fd; font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.pv-back:hover, .pv-back:focus-visible { text-decoration: underline; }
/* P4: the teams on the Wrestlers tab, and a team's page */
.pv-tchips .pv-chips { gap: 8px; }
.pv-tchip { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.pv-tchip.mine { border-color: #facc15; color: #fde047; }
.pv-row.mine .pv-row-main b { color: #fde047; }
.pv-tp { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: center; }
.pv-tp h2 { margin: 0; font-size: 21px; color: #fff; }
.pv-tp.mine h2 { color: #fde047; }
.pv-tp-logo { grid-row: span 2; display: grid; place-items: center; }
.pv-tp-logo img, .pv-tp-logo .tlogo, .pv-tp-logo > * { width: 46px !important; height: 46px !important; font-size: 13px; }
.pv-tp.nologo { grid-template-columns: minmax(0, 1fr); }
.pv-tp.nologo .pv-tp-sub { grid-column: 1; }
.pv-tp-sub { grid-column: 2; color: #9fb0c7; font-size: 13px; line-height: 1.4; }
.pv-tp-sub b { color: #fff; }
.pv-tp-sub .nw { white-space: nowrap; }
.pv-tp-acts { grid-column: 1 / -1; display: flex; gap: 8px; margin-top: 10px; }
.pv-tp-acts .pv-btn { flex: 1 1 0; justify-content: center; }
.pv-tp-acts .pv-btn.on { border-color: #facc15; color: #fde047; }
.pv-tp-wt { display: inline-block; min-width: 30px; color: #facc15; font-weight: 800; }
.pv-tp-st { font-style: normal; }
.pv-tp-st.hot { color: #fca5a5; font-weight: 800; } .pv-tp-st.warm { color: #fde68a; font-weight: 700; } .pv-tp-st.done { color: #6b7f99; }
.pv-tb-acts { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 2px; }
.pv-tb-acts .pv-btn.on { border-color: #facc15; color: #fde047; }
.pv-drec-s { display: block; font-size: 12px; font-weight: 600; color: #9fb0c7; }
.pv-drec .pv-chev { color: #6b7f99; font-size: 18px; }
.pv-drec.mine b { color: #fde047; }
.pv-team-go { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; }
.pv-team-go:hover b, .pv-team-go:focus-visible b { text-decoration: underline; }
.pvt-t.mine { background: rgba(250,204,21,.08); }
.pvt-t.mine .nm { color: #fde047; }
.pvt-places li.mine .pvt-tl { color: #fde047; }
/* P2: a dual's bouts on Live — both wrestlers side by side, the running score on the right */
.pvd-lockline { margin: 2px 2px 10px; }
.pvd-mh.pvd-lr, .pvd-m.pvd-lr { grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1fr) 52px; gap: 6px; }
.pvd-mh.pvd-lr span:last-child { text-align: right; padding: 0; }
.pvd-mh.pvd-lr span:nth-child(3) { padding-left: 9px; }
.pvd-m.pvd-lr .run { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; text-align: right; }
.pvd-m.pvd-lr .run b { color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pvd-m.pvd-lr .run b.dim { color: #52647f; font-weight: 700; }
.pvd-m.pvd-lr .run .pvd-tp { font-size: 10px; padding: 1px 5px; white-space: nowrap; }
.pvd-m.pvd-lr .run .mv-chev, .pvd-m.pvd-lr .run svg { margin: 0; }
.pvd-m.pvd-lr.has-mv { cursor: pointer; }
.pvd-rtag { grid-column: 2 / -1; display: flex; gap: 8px; align-items: center; font-size: 12px; color: #9fb0c7; margin-top: -1px; }
.pvd-rtag .pvd-st { font-size: 10px; padding: 1px 6px; }
.pvd-m.pvd-lr.now { border-color: #facc15; background: #1d2230; box-shadow: 0 0 0 1px rgba(250,204,21,.25); }
.pvd-m.pvd-lr.up { background: #0f1827; border-style: dashed; border-color: #283a55; }
.pvd-m .c span em.pvd-wl.sc { color: #fff; background: #334155; border-radius: 5px; padding: 0 6px; font-weight: 900; font-size: 13px; }
.pvd-m .c span em.pvd-wl.sc:empty { display: none; }
.pvd-tbl td.w:not(.cur)::after { content: none; }
.pvd-tbl td.w:not(.cur) > span:first-child::after { content: ' ✓'; color: #4ade80; font-size: 11px; }
.pvd-tbl .wt small, .pvd-tbl small.pvd-rg { display: block; font-size: 11px; font-weight: 600; color: #6b7f99; }
.pvd-tbl td.l.hid { font-style: italic; color: #6b7f99; }
/* P5: Info — the event card as a sheet (a phone: from the bottom) */
.screen-public .modal.pv-sheet { background: #121c2e; color: #e8eef7; color-scheme: dark; border: 1px solid #36507a; }
.modal.pv-sheet .modal-head { border-bottom-color: #22324a; }
.modal.pv-sheet .modal-head h2 { color: #fff; font-size: 19px; }
.modal.pv-sheet .modal-head .icon-btn { width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); color: #cbd6e4; }
.modal.pv-sheet .modal-body { padding-top: 4px; }
.pvi-sec { border-top: 1px solid #22324a; padding: 12px 0; }
.pvi-sec:first-child { border-top: 0; }
.pvi-sec h3 { margin: 0 0 6px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8ea0b8; }
.pvi-when b { display: block; font-size: 16px; color: #fff; }
.pvi-when > span { color: #9fb0c7; font-size: 14px; }
.pvi .pv-links { margin: 10px 0 0; }
.pvi-msg { margin: 0 0 6px; font-size: 14px; color: #dbe7f7; }
.pvi-stats { display: flex; flex-wrap: wrap; gap: 14px; font-size: 13px; color: #9fb0c7; margin-top: 6px; } .pvi-stats b { color: #fff; }
.pvi-sched .pv-card { margin: 0; }
.pvi-stand { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 14px; margin-bottom: 8px; }
.pvi-stand b { color: #fff; } .pvi-stand small { display: block; color: #9fb0c7; font-size: 12.5px; }
.pvi-open { color: #86efac; font-size: 12px; font-weight: 800; white-space: nowrap; } .pvi-closed { color: #8ea0b8; font-size: 12px; font-weight: 700; white-space: nowrap; }
.pvi-coach { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; color: #cbd6e4; }
.pvi-coach .pv-btn { white-space: nowrap; flex: none; }
@media (max-width: 600px) {
  .modal-wrap:has(.pv-sheet) { place-items: end stretch; padding: 0; }
  .modal.pv-sheet { width: 100%; border-radius: 18px 18px 0 0; max-height: 88vh; border-bottom: 0; padding-bottom: env(safe-area-inset-bottom); }
}
/* P3: the coach's My team — summary with Roster & weigh-ins / Downloads, the ⋯ menu, My team's pages */
.coach-next b { text-transform: uppercase; }
.coach-sum { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; }
.coach-sum .cs-t { min-width: 0; }
.coach-sum .cs-acts { grid-column: 1 / -1; display: flex; gap: 8px; margin-top: 8px; }
.coach-sum .cs-acts .pv-btn { flex: 1 1 0; justify-content: center; white-space: nowrap; font-size: 13px; padding-left: 8px; padding-right: 8px; }
.cv-pre-dl { margin: 4px 0 12px; }
.cv-pageh { font-size: 20px; color: #fff; margin: 0 0 10px; }
.up-row { grid-template-columns: 92px 44px minmax(0, 1fr); }
.up-row.done { border-left-color: #334155; }
.up-row.done .up-when b { color: #9fb0c7; }
.up-row.open { outline: 2px solid rgba(250,204,21,.7); outline-offset: -1px; }
.up-list .up-who em { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.up-who .wi-tag { margin-left: 6px; font-size: 11px; padding: 0 5px; }
.cv-icons .cv-more { font-size: 18px; line-height: 1; letter-spacing: 1px; min-width: 40px; }
.cv-icons .cv-more.on { background: #facc15; color: #0b1220; border-color: #facc15; }
.cv-menu-dim { position: fixed; inset: 0; background: rgba(2,6,15,.45); z-index: 70; }
.cv-menu { position: fixed; right: max(12px, calc(50vw - 578px)); top: 88px; z-index: 71; width: min(300px, calc(100vw - 24px)); background: #16233b; border: 1px solid #36507a; border-radius: 12px; box-shadow: 0 14px 40px rgba(0,0,0,.55); padding: 6px; color: #e8eef7; font-size: 14px; }
.cv-menu .mi { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: inherit; font: inherit; text-align: left; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.cv-menu .mi:hover, .cv-menu .mi:focus-visible { background: rgba(255,255,255,.07); outline: none; }
.cv-menu .mi:focus-visible { box-shadow: 0 0 0 2px #facc15 inset; }
.cv-menu .mi > span { display: flex; align-items: flex-start; gap: 9px; min-width: 0; }
.cv-menu .mi > span > span { display: flex; flex-direction: column; min-width: 0; }
.cv-menu .mi small { color: #8ea0b8; font-size: 11.5px; margin-top: 1px; line-height: 1.3; }
.cv-menu .mi svg.ic { flex: none; width: 16px; height: 16px; color: #9fb0c7; margin-top: 2px; }
.cv-menu .mi[aria-disabled="true"] .cv-sw { opacity: .45; }
.cv-menu hr { border: 0; border-top: 1px solid #2a3d5c; margin: 4px 6px; }
.cv-menu .red, .cv-menu .red svg.ic { color: #fca5a5; }
.cv-menu select { flex: none; background: #0d1628; color: #fff; border: 1px solid #36507a; border-radius: 8px; padding: 5px 8px; font: inherit; font-size: 13px; }
.cv-sw { flex: none; width: 40px; height: 24px; border-radius: 999px; background: #334155; position: relative; }
.cv-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: left .15s; }
.cv-sw.on { background: #22c55e; } .cv-sw.on::after { left: 19px; }
.coach-modal .en-usaw { margin: -4px 0 4px; }
@media (max-width: 560px) {
  .coach-modal .form-grid > .field:has([name=gender]) { grid-column: span 2; }
  .coach-modal .form-grid > .field:has([name=usawId]) { grid-column: span 4; }
  .coach-modal .form-grid > .en-usaw { grid-column: 1 / -1; }
}
/* P7: the coach view on a laptop — My team's list beside the opened wrestler */
.cv-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 20px; align-items: start; }
.cv-grid .up-row { position: relative; padding-right: 28px; }
.cv-grid .up-row::after { content: '›'; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: #6b7f99; font-size: 20px; }
.cv-grid .up-row.open { border-radius: 10px; margin-bottom: 4px; outline: 2px solid #facc15; }
.cv-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; background: #121c2e; border: 1px solid #22324a; border-left: 4px solid #475569; border-radius: 12px; padding: 14px 16px; margin-top: 30px; }
.cv-side.hot { border-left-color: #ef4444; } .cv-side.warm { border-left-color: #facc15; }
.cv-side h3 { margin: 0 0 2px; font-size: 20px; color: #fde047; }
.cv-side-sub { color: #9fb0c7; font-weight: 800; font-size: 13px; margin-bottom: 10px; }
.cv-side.hot .cv-side-sub { color: #fca5a5; } .cv-side.warm .cv-side-sub { color: #fde68a; }
.cv-side .coach-ath-more { padding: 0; }
@media (min-width: 1000px) {
  .coach-sum { grid-template-columns: minmax(0, 1fr) auto auto; }
  .coach-sum .cs-acts { grid-column: 2; grid-row: 1; margin: 0; }
  .coach-sum .cs-acts .pv-btn { flex: none; }
  .coach-sum .coach-sum-n { grid-column: 3; grid-row: 1; margin-left: 12px; }
}
/* coach view the day after the event: "Final results · Sep 28" under the team's name (the dot is quiet) */
.cv-status { flex: 0 0 100%; order: 9; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #9fb0c7; }
/* ---- end of Live Results and Coach View (Builder C, 0.39) ---- */
.pay-after { display: block; font-weight: 600; font-size: 12px; line-height: 1.3; margin-top: 2px; }

/* 0.44 — two divisions at once: which one this phone shows (Live Results and the coach view header) */
.pv-divpick { display: flex; gap: 0; margin: 0 0 10px; background: #0b1424; border: 1px solid #2b3b54; border-radius: 10px; padding: 3px; }
.pv-divbtn { flex: 1 1 0; min-width: 0; min-height: 36px; background: none; border: 0; border-radius: 8px; color: #cbd6e4; font: inherit; font-weight: 700; font-size: 13px; padding: 6px 8px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-divbtn.on { background: #facc15; color: #111827; }
.pv-divbtn:focus-visible { outline: 2px solid #93c5fd; outline-offset: 1px; }
@media (min-width: 1180px) {
  .pv-top > .pv-divpick { max-width: 560px; margin-left: max(0px, calc((100% - 1156px) / 2)); }
}
/* 0.45 — linked teams in the coach view */
.up-team { font-size: .75em; font-weight: 700; color: #9fb0c7; margin-left: 4px; }
.cv-rteams { margin: 0 0 10px; }

/* 0.51 — design pass (phones): the entry page fits the phone; Report now in amber; a mat's border marks only
   "mine" (the coach's wrestler); the pre-event dot is quiet; thumb-size targets */
.en-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.en-exp { border: 0; padding: 0; margin: 10px 0; min-width: 0; }
.en-exp legend { padding: 0; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: #cbd5e1; }
.en-exp .en-radios { display: grid; grid-template-columns: 1fr; gap: 8px; }
.pv-state.report { background: #f59e0b; color: #111; }
.pv-mat.live { border-color: #2c3f5c; box-shadow: none; }
.pv-azjump button, .pv-mini, .pv-h-link { min-height: 44px; min-width: 44px; }
.pv-link { min-height: 44px; }

/* 0.51 — design pass (phones), part 2: one set of status colours (red wrestling · amber Report now · blue on deck /
   in the hole · green done), On deck as one chip, My team's mat first, the next bout under a name, dark bracket boxes */
.pv-tag.deck { background: #1d4ed8; color: #fff; }
.pv-tag.hole { background: none; color: #93c5fd; box-shadow: inset 0 0 0 1px #3b82f6; }
.up-row.warm, .up-row.warm + .up-more, .cv-side.warm { border-left-color: #3b82f6; }
.cv-side.warm .cv-side-sub { color: #93c5fd; }
.up-row.hot.report { border-left-color: #f59e0b; background: #261d0c; }
.up-row.hot.report + .up-more { border-color: #4a3a14; border-left-color: #f59e0b; }
.cv-side.hot.report { border-left-color: #f59e0b; }
.up-row.hot.report .up-when em, .cv-side.hot.report .cv-side-sub { color: #fcd34d; }
.up-row.done { border-left-color: #166534; }
.pv-mine-card.warm { border-left-color: #3b82f6; } .pv-mine-card.warm em { color: #93c5fd; }
.pv-mine-card.hot.report { border-left-color: #f59e0b; } .pv-mine-card.hot.report em { color: #fcd34d; }
.pv-tp-st.warm { color: #93c5fd; } .pv-tp-st.hot.report { color: #fcd34d; }
.pv-next.warm { background: #1e3a8a; } .pv-next.hot.report { background: #78350f; }
.coach-next.hot { background: #f59e0b; color: #111; animation: cn-flash-amber 1.6s ease-in-out infinite; }
.coach-next.hot .cn-dot { background: #111; }
.coach-next.warm { background: #1d4ed8; }
@keyframes cn-flash-amber { 0%, 100% { background: #f59e0b; } 50% { background: #fbbf24; } }
@media (prefers-reduced-motion: reduce) { .coach-next.hot { animation: none; } }
.coach-banner.hot { background: #f59e0b; color: #111; } .coach-banner.warm { background: #1d4ed8; }
/* My team: "Mat 3" big, the gym under it, then the status */
.up-row { grid-template-columns: 112px 44px minmax(0, 1fr); }
.up-when .up-mat { font-size: 18px; font-weight: 800; line-height: 1.1; }
.up-gym { font-size: 11px; color: #9fb0c7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.up-when .up-gym + em, .up-when .up-gym + .pv-tag { margin-top: 2px; }
.up-when .pv-tag { align-self: flex-start; margin-top: 3px; font-size: 10.5px; padding: 2px 7px; }
.coach-sum-n small { display: block; font-size: 12px; font-weight: 700; color: #93c5fd; }
/* Live: Find a wrestler; Wrestlers: the next bout under a name */
.pv-find { margin-bottom: 12px; }
.pv-row-main { min-width: 0; }
.pv-row-main .pv-row-st { font-style: normal; font-size: 12.5px; font-weight: 700; color: #9fb0c7; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pv-row-st.hot { color: #fca5a5; } .pv-row-st.hot.report { color: #fcd34d; } .pv-row-st.warm { color: #93c5fd; }
/* the brackets (Live Results and the coach view): dark bout boxes, like the rest of the page */
.pv-bracket .bracket-wrap { background: #121c2e; border-color: #22324a; color: #e2e8f0; }
.pv-bracket .br-pair::after, .pv-bracket .br-pair::before, .pv-bracket .br-single.has-next::after { border-color: #3a4f70; }
.pv-bracket .br-col-title, .pv-bracket .br-section-title { color: #9fb0c7; }
.pv-bracket .bb { background: #0f1a2e; border-color: #2c3f5c; color: #e2e8f0; }
.pv-bracket .bb-meta { background: #16233b; border-bottom-color: #22324a; color: #8ea0b8; }
.pv-bracket .bb-res { color: #cbd6e4; }
.pv-bracket .bb-line + .bb-line { border-top-color: #22324a; }
.pv-bracket .bb-line.win .bb-name { color: #fff; }
.pv-bracket .bb-line.lose .bb-name, .pv-bracket .bb-line.ph .bb-name, .pv-bracket .bb-team { color: #8ea0b8; }
.pv-bracket .bb-line.bye .bb-name { color: #5f7392; }
.pv-bracket .bb-seed { background: #334155; }
.pv-bracket .bb-line.hl { background: rgba(250,204,21,.13); } .pv-bracket .bb-line.hl .bb-name { color: #fde047; }
.pv-bracket .bb.clickable:hover, .pv-bracket .bb.clickable:focus-visible { border-color: #60a5fa; box-shadow: none; }
.pv-bracket .bb.bb-st-onmat { border-color: #ef4444; box-shadow: 0 0 0 1px #ef4444; }
.pv-bracket .bb.bb-st-queued { border-color: #3b82f6; }
.pv-bracket .bb.champion { background: #1f1a0e; border-color: #eab308; }
.pv-bracket .pool-grid th, .pv-bracket .pool-grid td { border-color: #2c3f5c; }
.pv-bracket .pool-grid .pg-x { background: #1e293b; }
.pv-bracket .pool-grid .pg-r.w { background: rgba(34,197,94,.14); }
.pv-bracket .pool-grid .pg-r.l { background: rgba(239,68,68,.1); color: #9fb0c7; }
.pv-bracket .pool-grid .pg-r.pend, .pv-bracket .pool-grid .pg-name > span { color: #8ea0b8; }
.pv-bracket .pool-grid tr.hl td { background: rgba(250,204,21,.13); }
.pv-bracket .bracket-wrap .adv-tag.g { color: #86efac; border-color: rgba(34,197,94,.6); }
.pv-bracket .bracket-wrap .adv-tag.a { color: #fcd34d; border-color: rgba(245,158,11,.6); }
.pv-bracket .bracket-wrap .adv-tag.m { color: #9fb0c7; border-color: #36507a; }
.pv-row-st.wait { font-weight: 600; color: #8ea0b8; }

/* 0.52 — Live Results refresh: the wrestle.live look. Deep navy, Barlow (text) and Barlow Condensed (names, scores,
   headings), the 0.51 status colours with a word beside every colour. The coach view shares most of these pieces. */
.screen-public { background: #0a1020; }
.pv { font-family: var(--f-text); font-variant-numeric: tabular-nums; color: #eef2f8; }
.pv button, .pv input { font-family: inherit; }
.pv-top { background: #0a1020; box-shadow: 0 1px 0 #1f2a42; padding: 10px 16px 0; }
.pv-bar1 { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.pv-wm { font-size: 21px; }
.pv-gap { flex: 1; }
.pv-brand { font-size: 11.5px; letter-spacing: .08em; color: #c8d1e1; }
.pv-brand.off { color: #fcd34d; }
.pv-dot.on { background: #ef4444; animation: pvpulse-red 1.8s infinite; }
@keyframes pvpulse-red { 0% { box-shadow: 0 0 0 0 rgba(239,68,68,.6); } 70% { box-shadow: 0 0 0 8px rgba(239,68,68,0); } 100% { box-shadow: 0 0 0 0 rgba(239,68,68,0); } }
@media (prefers-reduced-motion: reduce) { .pv-dot.on { animation: none; box-shadow: 0 0 0 3px rgba(239,68,68,.25); } }
.pv-home { color: #c8d1e1; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; min-height: 40px; display: inline-flex; align-items: center; }
.pv-aa { flex: none; display: inline-flex; align-items: baseline; gap: 1px; height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid #3a4766; background: none; color: #c8d1e1; font-weight: 800; font-size: 13px; line-height: 34px; cursor: pointer; }
.pv-aa span { font-size: 18px; }
.pv-aa.on { background: #facc15; border-color: #facc15; color: #1a1405; }
.pv-top h1 { font-family: var(--f-cond); font-weight: 700; font-size: 30px; line-height: 1; letter-spacing: .01em; margin: 8px 0 0; }
.pv-top p { color: #9aa6bd; margin: 4px 0 10px; }
.pv-prog { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; }
.pv-prog span { font-size: 12.5px; color: #9aa6bd; }
.pv-prog span b { color: #eef2f8; }
.pv-prog i { display: block; height: 6px; border-radius: 999px; background: #1a2440; overflow: hidden; }
.pv-prog i b { display: block; height: 100%; background: #facc15; border-radius: 999px; }
.pv-tabs button { font-size: 12.5px; color: #9aa6bd; }
@media (max-width: 719px) {
  .pv-tabs { background: #0d1528; border-top-color: #24304a; box-shadow: 0 -8px 20px rgba(0,0,0,.35); padding: 0 4px calc(8px + env(safe-area-inset-bottom)); }
  .pv-tabs button { font-size: 11.5px; padding: 8px 0 6px; gap: 3px; }
  .pv-tabs button svg.ic { width: 22px; height: 22px; }
}
/* headings: condensed, sentence case */
.pv-h { font-family: var(--f-cond); font-weight: 700; font-size: 21px; letter-spacing: .02em; text-transform: none; color: #eef2f8; margin: 0 0 10px; }
.pv-h .pv-muted { font-family: var(--f-text); font-size: 14px; font-weight: 500; }
.pv-h .pv-link { font-family: var(--f-text); }
.pv-sec { margin: 22px 0; }
.pv-main { padding: 16px; }
/* cards, rows, chips: one surface colour and one line colour */
.pv-card, .pv-mat, .pv-res, .pv-row, .pv-team, .pv-search, .pv-tip, .pv-chip, .pv-notes { background: #121a2e; border-color: #24304a; }
.pv-card, .pv-mat { border-radius: 14px; }
.pv-search { border-radius: 12px; border-color: #24304a; font-size: 16px; }
.pv-search::placeholder { color: #7f8ba3; }
.pv-chip { color: #c8d1e1; }
.pv-chip.on { background: #facc15; border-color: #facc15; color: #1a1405; }
.pv-card h3, .pv-card h4 { font-family: var(--f-cond); font-weight: 700; font-size: 19px; letter-spacing: .02em; }
.pv-muted, .pv-empty { color: #9aa6bd; }
.pv-btn { background: #facc15; color: #1a1405; border-radius: 12px; }
.pv-btn.ghost { background: none; color: #eef2f8; border: 1px solid #3a4766; }
/* the mats: the mat's name and the score condensed and big; the state pill says it in words */
.pv-mat h2, .pv-mat h3 { font-family: var(--f-cond); font-weight: 800; font-size: 26px; line-height: 1; letter-spacing: .01em; color: #eef2f8; }
.pv-mat.live h2 { color: #fca5a5; }
.pv-mat.report { border-color: #f59e0b; }
.pv-mat.report h2 { color: #fcd34d; }
.pv-state { font-size: 11.5px; padding: 3px 9px; border-radius: 6px; letter-spacing: .06em; }
.pv-state.live { background: #ef4444; color: #fff; }
.pv-state.idle { background: #1a2440; color: #9aa6bd; }
.pv-sc { font-family: var(--f-cond); font-weight: 800; font-size: 38px; line-height: 1; }
.pv-clock { font-family: var(--f-cond); font-weight: 700; font-size: 19px; }
.pv-wn b { font-size: 17px; }
.pv-deck { border-top-color: #24304a; }
/* results */
.pv-res { border-radius: 12px; }
.pv-res-wt { font-family: var(--f-cond); font-weight: 700; font-size: 18px; color: #9aa6bd; }
.pv-res-type { color: #86efac; }
/* your wrestlers: stacked cards (a followed team's are a row you can swipe) */
.pv-mine.stack { flex-direction: column; overflow: visible; gap: 10px; }
.pv-mine-card, .pv-mine-card.hot, .pv-mine-card.warm, .pv-mine-card.hot.report, .pv-mine-card.done { border: 1px solid #24304a; border-radius: 14px; background: #121a2e; padding: 0; overflow: hidden; gap: 0; min-width: 230px; }
.pv-mine.stack .pv-mine-card { min-width: 0; width: 100%; }
.pv-mine-card.hot { border-color: #ef4444; }
.pv-mine-card.hot.report { border-color: #f59e0b; }
.pv-mine-card .pv-mc-band { display: flex; align-items: center; gap: 8px; padding: 9px 14px; font-family: var(--f-cond); font-weight: 800; font-size: 19px; letter-spacing: .04em; text-transform: uppercase; background: #ef4444; color: #fff; }
.pv-mine-card.hot.report .pv-mc-band { background: #f59e0b; color: #1a1205; }
.pv-mc-band i { margin-left: auto; font-style: normal; font-family: var(--f-text); font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.pv-mine-card .pv-mc-body { display: flex; flex-direction: column; gap: 7px; padding: 11px 14px 12px; color: #eef2f8; font-size: 15px; }
.pv-mine-card .pv-mc-chip { align-self: flex-start; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #93c5fd; background: #13284a; border-radius: 6px; padding: 3px 8px; }
.pv-mine-card .pv-mc-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; color: #eef2f8; font-size: 15px; }
.pv-mc-who b { font-size: 18px; }
.pv-mine-card .pv-mc-who > span { color: #9aa6bd; font-size: 13px; }
.pv-mc-rec { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 700; color: #86efac; }
.pv-mine-card .pv-mc-vs { font-size: 14px; color: #c8d1e1; padding: 8px 10px; background: #0d1426; border-radius: 9px; }
.pv-mc-vs b { color: #eef2f8; }
.pv-mine-card em { font-size: 13.5px; }
.pv-mine-card.wait em { color: #c8d1e1; }
.pv-mine-card.more { justify-content: center; padding: 12px 14px; }
.pv-tip { border-style: dashed; border-color: #3a4766; }
/* (0.52) the reconnecting bar, and "Back live" */
.pv-stale { display: flex; align-items: center; gap: 10px; padding: 11px 16px; background: #f59e0b; color: #1a1205; }
.pv-stale svg.ic { flex: none; width: 22px; height: 22px; }
.pv-stale div { flex: 1; display: flex; flex-direction: column; line-height: 1.25; }
.pv-stale span { font-size: 13.5px; }
.pv-stale-retry { flex: none; min-height: 40px; padding: 0 14px; border-radius: 9px; border: 0; background: #1a1205; color: #fcd34d; font: inherit; font-weight: 800; cursor: pointer; }
.pv.stale .pv-mats, .pv.stale .pv-mine, .pv.stale #pv-results, .pv.stale .pv-dual-live { opacity: .55; }
.pv-backlive { padding: 10px 16px; background: #0f2e1d; color: #86efac; font-weight: 700; font-size: 14px; }
/* (0.52) bigger text (Aa): about 20% larger; the tabs stay their size so they still fit */
.pv.big .pv-top > :not(.pv-tabs), .pv.big .pv-main, .pv.big .pv-msg, .pv.big .pv-notes, .pv.big .pv-stale, .pv.big .pv-backlive { zoom: 1.2; }
/* (0.52) a Madison group or round robin under a wrestler: the standings, then every bout in the group */
.pv-grp { margin: 10px 0; border: 1px solid #24304a; border-radius: 12px; background: #0d1426; padding: 10px 12px; }
.pv-grp h4 { margin: 2px 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: #9aa6bd; }
.pv-grp h4 + .pv-grp-b, .pv-grp-st + h4 { margin-top: 12px; }
.pv-grp-st > div { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; gap: 8px; align-items: baseline; padding: 6px 4px; border-bottom: 1px solid #1f2a42; font-size: 14px; }
.pv-grp-st > div:last-child { border-bottom: 0; }
.pv-grp-st > div > span:first-child { font-family: var(--f-cond); font-weight: 800; color: #9aa6bd; }
.pv-grp-st > div > b:last-child { font-family: var(--f-cond); font-size: 17px; }
.pv-grp-st .me { background: rgba(250,204,21,.08); border-radius: 6px; }
.pv-grp-st .me > b:nth-child(2) { color: #facc15; }
.pv-grp-b > div { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid #1f2a42; font-size: 14px; }
.pv-grp-b > div:last-child { border-bottom: 0; }
.pv-grp-b .me { font-weight: 700; color: #facc15; }
.pv-grp-b .won { font-weight: 700; }
.pv-grp-b b { font-size: 12.5px; }
.pv-grp-b .st-call { color: #fcd34d; } .pv-grp-b .st-queue { color: #93c5fd; }
.adv-path { border-color: #24304a; background: #0d1426; }
/* (0.52) after the event: each followed wrestler's picture card */
.pv-share-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin-bottom: 8px; border: 1px solid #24304a; border-radius: 12px; background: #121a2e; }
.pv-share-row > div { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.pv-share-row > div span { font-size: 13px; color: #9aa6bd; }
.pv-share-pl { flex: none; min-width: 44px; text-align: center; padding: 3px 8px; border-radius: 7px; background: #24304a; color: #eef2f8; font-family: var(--f-cond); font-weight: 800; font-size: 17px; }
.pv-share-pl.p1 { background: #facc15; color: #1a1405; } .pv-share-pl.p2 { background: #cbd5e1; color: #0a1020; } .pv-share-pl.p3 { background: #d9a066; color: #1a1405; }
/* (0.52) the bracket by round: how far along each round is, and where the winner goes next */
.brv-chips .pv-chip { display: inline-flex; flex-direction: column; align-items: center; gap: 0; line-height: 1.15; padding: 6px 14px; }
.brv-chips .pv-chip small { font-size: 11px; font-weight: 600; opacity: .85; }
.brv-chips .pv-chip.all-done:not(.on) { background: #0f2e1d; border-color: #14532d; color: #86efac; }
.pv-bracket .bb-next, .brv .bb-next { padding: 4px 7px; border-top: 1px solid #22324a; font-size: 11.5px; color: #9aa6bd; }
.brv-title { font-family: var(--f-cond); font-weight: 700; font-size: 21px; letter-spacing: .02em; }
.brv-switch { border-color: #24304a; background: #121a2e; }
.brv-switch button.on { color: #1a1405; }
/* footer */
.pv-foot { color: #7f8ba3; }
.pv-foot .wm { font-size: 17px; vertical-align: -2px; }
.boot .wm { font-size: 34px; }
/* (0.52) the dual meet's scoreboard: the team score condensed and big */
.pvd-big { font-family: var(--f-cond); font-weight: 800; }
.pvd-big span:first-child:not(.trail), .pvd-big span:last-child:not(.trail) { color: #eef2f8; }
.pvd-need b { color: #facc15; }
.pv-card .adv-path h4, .pv-card .pv-grp h4 { font-family: var(--f-text); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #9aa6bd; }
/* (0.52) the next bout under a name: Report now is the amber band, Wrestling the red one */
.pv-next.hot.report { background: #f59e0b; color: #1a1205; }
.pv-next.hot.report small, .pv-next.hot.report span { color: #3b2a07; }
.pv-next.hot:not(.report) { background: #ef4444; color: #fff; }
.pv-next.hot:not(.report) small, .pv-next.hot:not(.report) span { color: #fee2e2; }
.pv-next.warm { background: #13284a; } .pv-next.warm b { color: #bfdbfe; }
.pv-next b { font-family: var(--f-cond); font-size: 22px; letter-spacing: .02em; }
.pv-clock.running { color: #fca5a5; }
.pv-grp-b .st-live { color: #fca5a5; }
/* (0.52) a dual's bout now: Wrestling in red, Report now in amber (one meaning per colour) */
.pvd-now .pv-meta b.st-live { color: #fca5a5; } .pvd-now .pv-meta b.st-call { color: #fcd34d; }
/* (0.52) the header's first line holds "‹ All events" now (not pinned in the corner over Aa); on big screens it lines
   up with the page like the rest of the header */
.pv-bar1 .pv-home { position: static; right: auto; top: auto; }
@media (min-width: 1180px) {
  .pv-top > .pv-bar1, .pv-top > .pv-prog { max-width: 1156px; margin-left: auto; margin-right: auto; }
}
