/* Volleyball Site public */
.vball-wrap,.vball-main{--vball-radius:12px;color:var(--vball-ink,#1a2332);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}
.vball-wrap a{color:var(--vball-navy,#0a1628)}
.vball-card{background:var(--vball-card,#fff);border-radius:var(--vball-radius);padding:1.25rem 1.5rem;margin:1rem 0;box-shadow:0 1px 3px rgba(10,22,40,.08)}
.vball-hero{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;background:var(--vball-navy,#0a1628);color:#fff;padding:1.75rem;border-radius:var(--vball-radius);margin-bottom:1.25rem}
.vball-hero h1,.vball-recruit-hero h1{margin:.2rem 0 .4rem;font-size:2rem;letter-spacing:-.02em}
.vball-hero a{color:#fff}
.vball-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;opacity:.85;margin:0}
.vball-headshot{width:180px;height:220px;object-fit:cover;border-radius:8px;background:#123}
.vball-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;list-style:none;padding:0;margin:1rem 0}
.vball-metrics li{background:rgba(255,255,255,.08);padding:.5rem .75rem;border-radius:8px;font-size:.85rem}
.vball-metrics strong{display:block;font-size:1rem}
.vball-pill{display:inline-block;background:var(--vball-navy,#0a1628);color:#fff;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:600}
.vball-table{width:100%;border-collapse:collapse}
.vball-table th,.vball-table td{padding:.45rem .6rem;border-bottom:1px solid #e6eaf0;text-align:left}
.vball-table caption{text-align:left;font-weight:700;margin-bottom:.4rem}
.vball-btn,.vball-copy{display:inline-block;background:var(--vball-navy,#0a1628);color:#fff!important;border:0;border-radius:8px;padding:.45rem .9rem;font-weight:600;cursor:pointer;text-decoration:none;margin:.15rem .25rem 0 0}
.vball-btn:hover,.vball-copy:hover{filter:brightness(1.05)}
.vball-empty{color:var(--vball-muted,#5c6b7a)}
.vball-note{font-size:.85rem;color:var(--vball-muted,#5c6b7a)}
.vball-embed{position:relative;padding-top:56.25%;background:#0a1628;border-radius:12px;overflow:hidden;border:1px solid #dcdcde}
.vball-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vball-lazy-video{position:absolute;inset:0;width:100%;height:100%;background:radial-gradient(ellipse at center,rgba(10,22,40,.35) 0%,#0a1628 70%);color:#fff;font-size:.82rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:0}
.vball-video-links{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.vball-video-links a,.vball-video-out{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.55rem 1rem;border-radius:999px;background:#0a1628;color:#fff!important;font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border:2px solid #1e3358;flex:1 1 8.5rem}
.vball-video-out{background:#0a1628;color:#fff!important;border-color:#0a1628;width:100%;border-radius:8px}
.vball-family-video{margin:1rem 0;padding:1rem 1.05rem 1.1rem;background:#fff;border:1px solid #dcdcde;border-top:3px solid #0a1628;border-radius:16px}
.vball-family-video__kicker{margin:0 0 .65rem;color:#646970;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.vball-family-video input[type="url"],.vball-family-video textarea{width:100%;min-height:48px;display:block;font-size:1rem}
.vball-family-video textarea{min-height:7rem}
@media (max-width:720px){.vball-video-links a{flex:1 1 100%;min-height:52px}}
.vball-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}
.vball-gallery img{width:100%;height:140px;object-fit:cover;border-radius:8px}
.vball-program-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.vball-program-card{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem;border-radius:12px;background:#fff;border:2px solid transparent;text-align:left;cursor:pointer;text-decoration:none;color:inherit;box-shadow:0 1px 3px rgba(10,22,40,.08)}
.vball-program-card.is-selected,.vball-program-card:focus{border-color:var(--vball-accent,#0a1628)}
.vball-prog-league{border-top:4px solid var(--vball-league,#2e6da4)}
.vball-prog-mini{border-top:4px solid var(--vball-mini,#e07a3d)}
.vball-prog-club{border-top:4px solid var(--vball-club,#0a1628)}
.vball-prog-open{border-top:4px solid var(--vball-open,#6b4c9a)}
.vball-prog-private,.vball-prog-lessons{border-top:4px solid var(--vball-private,#3d8b6e)}
.vball-kiosk{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem}
.vball-kiosk-btn{min-height:72px;font-size:1.1rem;border-radius:10px;border:2px solid #d5dbe3;background:#fff;cursor:pointer}
.vball-kiosk-btn.is-in{background:#d4edda;border-color:#3d8b6e}
.vball-kiosk-btn.is-out{background:#f8d7da;border-color:#a33}
.vball-scoreboard{display:flex;justify-content:space-around;text-align:center;font-size:1.4rem;padding:1rem 0}
.vball-scoreboard .sets{font-size:3rem;display:block}
.vball-live-note{color:var(--vball-muted)}
.vball-gym-grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.vball-cal{list-style:none;padding:0}
.vball-cal li{padding:.4rem 0;border-bottom:1px solid #eef1f5}
.vball-dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.3rem}
.vball-dot.match{background:var(--vball-league,#2e6da4)}
.vball-dot.practice{background:var(--vball-navy,#0a1628)}
.vball-sponsor-grid{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.vball-qr{margin:.6rem 0 0}
blockquote{border-left:4px solid var(--vball-navy,#0a1628);margin:0;padding:.2rem 0 .2rem 1rem;font-style:italic}
.vball-mini h1{font-size:1.6rem}
@media (max-width:640px){
  .vball-hero{padding:1rem}
  .vball-headshot{width:100%;max-width:280px;height:auto}
  .vball-signup-bar{position:sticky;bottom:0}
}

/* Calendar month / week / list (built by public.js) */
.vball-cal-views{display:flex;gap:.4rem;margin:0 0 .85rem;flex-wrap:wrap}
.vball-cal-views button{background:var(--vball-bg,#f4f6f9);border:1px solid #d7dee7;border-radius:999px;padding:.45rem .9rem;min-height:40px;cursor:pointer;font-weight:600;color:var(--vball-navy,#0a1628)}
.vball-cal-views button[aria-current="true"]{background:var(--vball-navy,#0a1628);color:#fff;border-color:var(--vball-navy,#0a1628)}
.vball-cal-month,.vball-cal-week{display:none;width:100%;border-collapse:collapse;table-layout:fixed}
.vball-cal-wrap.is-month .vball-cal-month,.vball-cal-wrap.is-week .vball-cal-week{display:table}
.vball-cal-wrap.is-month .vball-cal,.vball-cal-wrap.is-week .vball-cal{display:none}
.vball-cal-month th,.vball-cal-week th{background:var(--vball-navy,#0a1628);color:#fff;text-align:center;font-size:.75rem;padding:.4rem}
.vball-cal-month td,.vball-cal-week td{border:1px solid #e6ebf1;padding:.4rem;vertical-align:top;height:6.5rem;font-size:.8rem}
.vball-cal-daynum{display:block;font-weight:700;color:var(--vball-navy,#0a1628);margin-bottom:.25rem}
.vball-cal-ev{display:block;width:100%;box-sizing:border-box;appearance:none;-webkit-appearance:none;border:0;border-radius:4px;padding:.2rem .35rem;margin:0 0 .2rem;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font:inherit;font-size:.75rem;font-weight:700;line-height:1.25;text-align:left;touch-action:manipulation}
.vball-cal-ev.match{background:var(--vball-league,#2e6da4)}
.vball-cal-ev.practice{background:var(--vball-navy,#0a1628)}
.vball-cal-ev:hover,.vball-cal-ev:focus-visible{filter:brightness(1.08)}
@media (max-width:700px){.vball-cal-month td,.vball-cal-week td{height:auto;min-height:3.5rem}.vball-cal-ev{min-height:2rem;padding:.35rem .4rem}}
.vball-cal-sheet{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;z-index:80}
.vball-cal-sheet::backdrop{background:rgba(10,22,40,.55)}
.vball-cal-sheet__panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(32rem,calc(100% - 1rem));max-height:min(86vh,36rem);overflow:auto;background:#fff;color:var(--vball-ink,#1a2332);border-radius:16px 16px 0 0;padding:1.25rem 1.2rem calc(1.35rem + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 32px rgba(10,22,40,.18)}
.vball-cal-sheet__close{position:absolute;top:.65rem;right:.65rem;width:44px;height:44px;border:0;border-radius:999px;background:#f4f6f9;color:var(--vball-navy,#0a1628);font-size:1.5rem;line-height:1;cursor:pointer}
.vball-cal-sheet__kind{margin:0 2.5rem .35rem 0;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--vball-muted,#5c6b7a)}
.vball-cal-sheet__panel.is-match .vball-cal-sheet__kind{color:var(--vball-league,#2e6da4)}
.vball-cal-sheet__title{margin:0 2.5rem .5rem 0;font-size:1.2rem;line-height:1.25;overflow-wrap:anywhere}
.vball-cal-sheet__when,.vball-cal-sheet__where{margin:.25rem 0;font-size:1rem}
.vball-cal-sheet__actions{margin:.9rem 0 0}
.vball-cal-sheet__details{min-height:44px}
.vball-cal-sheet [hidden]{display:none!important}
@media (min-width:700px){.vball-cal-sheet__panel{top:50%;bottom:auto;transform:translate(-50%,-50%);border-radius:16px;width:min(28rem,calc(100% - 2rem))}}

/* Huge kiosk tap targets */
.vball-kiosk{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}
.vball-kiosk-btn{min-height:96px;font-size:1.2rem;font-weight:700;border-radius:12px;border:2px solid #d5dbe3;background:#fff;cursor:pointer;padding:.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;color:var(--vball-navy,#0a1628)}
.vball-kiosk-btn .num{font-size:1.6rem;color:var(--vball-accent,#0a1628)}
.vball-kiosk-btn[data-status="checked_in"],.vball-kiosk-btn.is-in{background:#e7f7ee;border-color:var(--vball-lessons,#3d8b6e)}
.vball-kiosk-btn[data-status="late"],.vball-kiosk-btn.is-late{background:#fff4e0;border-color:var(--vball-accent,#0a1628)}
.vball-kiosk-btn[data-status="absent"],.vball-kiosk-btn.is-absent{background:#fdecea;border-color:#c0392b}
.vball-kiosk-btn[data-status="checked_out"],.vball-kiosk-btn.is-out{background:#f4f6f9;border-color:#5c6b7a}
.vball-checkin-public input{font-size:1.4rem;min-height:52px;width:8rem;letter-spacing:.3em;text-align:center}

.vball-kiosk-phone,.vball-kiosk{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}
.vball-kiosk-btn{min-height:112px;min-width:140px;font-size:1.25rem;padding:1rem;touch-action:manipulation}
.vball-kiosk .vball-kiosk-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.15rem}
.vball-kiosk-btn .name,.vball-kiosk-btn small,.vball-kiosk-btn .vball-kiosk-avail{display:block;width:100%;line-height:1.25}
.vball-kiosk-btn small{font-size:.78rem;font-weight:600;color:#5c6b7a}

.vball-kiosk-btn.is-blocked,.vball-kiosk-btn[data-blocked="1"]{opacity:.45;background:#eee;cursor:not-allowed}
.vball-family-card{padding:1rem;border:1px solid #d5dbe3;border-radius:12px;margin:1rem 0}
.vball-bio-nag{background:#fff8e5;border:2px solid #dba017;padding:.75rem 1rem;border-radius:8px;margin:1rem 0}
.vball-bio-nag ul{margin:.5rem 0;padding-left:1.2rem}
.vball-bio-nag li{margin:.25rem 0}
.vball-family-card button,.vball-family-card .vball-btn{min-height:44px}
.vball-ical-subscribe{margin:.75rem 0 1rem}
.vball-ical-subscribe .vball-btn{margin:.25rem .4rem .25rem 0;display:inline-block}
.vball-ical-subscribe code{display:block;margin-top:.4rem;overflow-wrap:anywhere;font-size:.8em}
.vball-coach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.vball-coach-card img{width:100%;height:180px;object-fit:cover;border-radius:12px}
.vball-coach-card a.coach-card__media{display:block}
.vball-coach-card h3 a{color:inherit;text-decoration:none}
.vball-coach-card .coach-card__bio{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.vball-coach-card .coach-card__contact{margin:.5rem 0 0;font-size:.85rem;word-break:break-word;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem}
.vball-coach-card .coach-card__contact a{display:inline-flex;align-items:center}
.vball-coach-teams{list-style:none;padding:0;margin:.75rem 0;display:flex;flex-wrap:wrap;gap:.4rem}
.vball-coach-teams a{display:inline-block;padding:.2rem .7rem;border-radius:999px;background:#f6f7f7;color:#0a1628;text-decoration:none;font-weight:700;border:1px solid #dcdcde}
.vball-coach-contact a{display:inline-block;margin-right:1rem}
.vball-join-poster{text-align:center;padding:1.5rem}
.vball-jersey-pad{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.5rem}
.vball-jersey-pad .is-green{background:#d4edda;border:2px solid #3d8b6e}
.vball-jersey-pad .is-red{background:#f8d7da;border:2px solid #a33}
.vball-gym-alert{background:#fff3cd;border:2px solid #e0a800;padding:.75rem 1rem;border-radius:8px;font-weight:700}
.vball-heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px}
.vball-heat span{display:block;text-align:center;padding:.35rem .2rem;border-radius:6px;font-size:.75rem}
.vball-heat .ok{background:#d4edda}
.vball-heat .low{background:#fff3cd}
.vball-heat .out{background:#f8d7da}
@media print{.vball-join-poster{page-break-inside:avoid}}

.vball-form-qr{margin:.75rem 0;max-width:160px}
.vball-form-qr svg{width:140px;height:140px;display:block;background:#fff}
.vball-form-qr-row{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:flex-start}
.vball-form-qr-row .vball-form-qr{margin:0}
.vball-card-fail{background:#fdecea;border:2px solid #d63638;padding:.75rem 1rem;border-radius:8px;margin:1rem 0}
.vball-family-next{border:2px solid #0a1628;border-radius:12px;padding:.85rem 1.1rem;margin:0 0 1rem;background:#fff}
.vball-family-next.is-urgent{border-color:#c62828;background:#fdecea}
.vball-family-next.is-warn{border-color:#c9a227;background:#fff8e5}
.vball-family-next.is-ok{border-color:#0a7a32;background:#eef8f1}
.vball-family-next .vball-family-kicker{margin:0 0 .35rem}
.vball-family-next p{margin:.25rem 0}

.vball-family-photo img{width:96px;height:120px;object-fit:cover;border-radius:8px}

/* Signature pad + signed copies (family portal, login-walled) */
.vball-sig-wrap{margin:1rem 0;overscroll-behavior:contain}
.vball-sig-wrap canvas.vball-sig-pad{
  display:block;width:100%;min-height:160px;height:168px;max-width:100%;
  background:#fff;border:2px solid var(--vball-navy,#0a1628);border-radius:8px;
  touch-action:none;cursor:crosshair;box-shadow:inset 0 0 0 3px var(--vball-accent,#0a1628);
}
.vball-sig-wrap .vball-sig-clear{
  min-height:44px;padding:.45rem .9rem;border:1px solid var(--vball-navy,#0a1628);
  background:#fff;color:var(--vball-navy,#0a1628);border-radius:8px;font-weight:600;cursor:pointer;
}
.vball-sig-err{color:#b32d2e;font-weight:700}
.vball-sig-img{max-width:280px;width:100%;height:auto;border-bottom:2px solid var(--vball-navy,#0a1628);background:#fff;display:block}
.vball-form-copy{margin:.75rem 0}
.vball-form-copy dl{display:grid;grid-template-columns:minmax(7rem,auto) 1fr;gap:.2rem .85rem}
.vball-form-copy dt{font-weight:700}
.vball-form-copy dd{margin:0}
.vball-form-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.75rem}
.vball-btn-ghost{background:#fff;color:var(--vball-navy,#0a1628)!important;border:2px solid var(--vball-navy,#0a1628)}
.vball-family-forms{margin:1rem 0}
.vball-family-form{margin:1rem 0;padding:1rem;background:#f4f6f9;border:1px solid #dcdcde;border-radius:12px}
.vball-family-form.is-signed{background:#f3faf6;padding:.75rem 1rem}
.vball-family-form.is-signed .vball-florida-sheet,
.vball-family-form.is-signed .vball-form-sign,
.vball-family-form.is-signed .vball-sig-wrap,
.vball-family-form.is-signed .vball-form-qr{
  display:none !important;
}
.vball-form-copy.is-compact{margin:0}
.vball-form-copy.is-compact h3{margin:0 0 .35rem;font-size:1rem}
.vball-form-copy.is-compact .vball-sig-img{max-height:48px;max-width:160px}
.vball-form-copy.is-compact .vball-form-actions{margin-top:.5rem}
.vball-attest-block{margin:1rem 0;padding:.85rem 1rem;border:1px solid #111;background:#fafbfc;break-inside:avoid;page-break-inside:avoid}
.vball-attest-block__title{margin:0 0 .5rem;font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.vball-attest-block__dl{display:grid;grid-template-columns:minmax(7.5rem,auto) 1fr;gap:.25rem .85rem;margin:0}
.vball-attest-block__dl dt{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#333}
.vball-attest-block__dl dd{margin:0}
.vball-attest-block__sig .vball-sig-img{max-height:72px;max-width:240px}
.vball-attest-block.is-compact{padding:.55rem .7rem;margin:.5rem 0}
.vball-attest-block.is-compact .vball-attest-block__title{font-size:.8rem}
.vball-attest-block.is-compact .vball-sig-img{max-height:40px;max-width:140px}
/* Screen contrast for signing record (1.0.189) pack-agree-snap-contrast-189 */
.vball-agree-snap,.vball-attest-block{background:#f4f7fb!important;color:#070b14!important}
.vball-agree-snap p,.vball-agree-snap strong,.vball-agree-snap dt,.vball-agree-snap dd,.vball-agree-snap h3,
.vball-attest-block,.vball-attest-block p,.vball-attest-block strong,.vball-attest-block dt,.vball-attest-block dd,
.vball-attest-block__title{color:#070b14!important}
.vball-attest-block__dl dt{color:#333!important}

.vball-form-saved{background:#d8f3e4;border:2px solid #1e6b3c;padding:.75rem 1rem;border-radius:8px;color:#0a1628}
.vball-form-saved strong{color:#0a1628}
.vball-form input,.vball-form textarea{width:100%;max-width:32rem;min-height:44px;padding:.45rem .6rem;border:1px solid #d5dbe3;border-radius:8px;font:inherit}
.vball-form textarea{min-height:5rem}
.vball-form label{display:block;font-weight:600;margin:.35rem 0}
.vball-family-checklist{list-style:none;padding:0;margin:1rem 0}
.vball-family-checklist li{padding:.35rem 0;border-bottom:1px solid #e6ebf1}

.vball-family-stats{margin:1.25rem 0 0;padding:1rem;background:#f4f6f9;border:1px solid #dcdcde;border-radius:12px}
.vball-family-stats h2{margin-top:0}
/* Parent tokenized stats card — white tiles, dark teal During/+ (1.0.316 phone polish) */
.vball-counting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.55rem 0}
.vball-counting-grid.is-plain{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.vball-counting-wrap{margin:.55rem 0}
.vball-count-tabs{
	display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 .45rem;
	background:#dde3ea;border-radius:999px;padding:3px
}
.vball-count-tab{
	flex:1 1 0;min-height:48px;border:0;background:transparent;color:#5b6777;
	font-weight:800;font-size:.95rem;line-height:1.2;border-radius:999px;cursor:pointer;
	padding:.55rem .7rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent
}
.vball-count-tab.is-on{background:var(--vball-teal,#0f5c5a);color:#fff}
.vball-count-hint{margin:0 0 .45rem;font-size:.85rem;font-weight:600;color:#5b6777;line-height:1.35}
.vball-counting-wrap.is-during .vball-counting-grid,
.vball-counting-wrap.is-during .vball-counting-grid.is-plain,
.vball-counting-wrap.is-after .vball-counting-grid,
.vball-counting-wrap.is-after .vball-counting-grid.is-plain{
	grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem
}
.vball-count-field{
	display:flex;flex-direction:column;align-items:stretch;gap:.2rem;margin:0;min-width:0;
	background:#fff;border:1px solid #d7dee6;border-radius:12px;padding:.55rem .5rem .5rem;
	box-shadow:0 1px 2px rgba(10,22,40,.05);font-weight:700;font-size:.8rem;color:#0a1628
}
.vball-count-name{
	font-size:.95rem;letter-spacing:0;font-weight:800;line-height:1.2;text-transform:none;
	white-space:normal;overflow-wrap:break-word;color:#0a1628;min-height:0;text-align:center
}
.vball-counting-wrap.is-during .vball-count-name,
.vball-counting-wrap.is-after .vball-count-name{
	font-size:.95rem;line-height:1.2;min-height:0;font-weight:800;align-items:center;justify-content:center;color:#0a1628;text-align:center
}
.vball-count-abbr{display:none}
.vball-count-field input,
.vball-count-field input.vball-count-num{
	width:100%;min-width:0;min-height:1.85rem;height:auto;font-size:1.7rem;font-weight:800;
	text-align:center;border:0;border-radius:0;padding:0;margin:0;box-sizing:border-box;
	-moz-appearance:textfield;background:transparent;color:#0a1628;letter-spacing:-.02em
}
.vball-count-step{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;margin-top:.15rem}
.vball-count-btn{
	appearance:none;-webkit-appearance:none;margin:0;padding:0;border-radius:12px;
	font-weight:800;font-size:1.45rem;line-height:1;cursor:pointer;touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;box-sizing:border-box;min-height:44px
}
.vball-count-btn.is-minus{
	min-width:0;background:#c5ccd6;color:#4a5564;border:0
}
.vball-count-btn.is-plus{
	min-width:0;background:var(--vball-teal,#0f5c5a);color:#fff;border:0
}
/* Keep steppers in both modes — After still lets you type the big number. */
.vball-counting-wrap.is-after .vball-count-btn{display:block}
.vball-counting-wrap.is-after .vball-count-step{display:grid}
@media (max-width:720px){
	.vball-counting-grid.is-plain,
	.vball-counting-wrap.is-after .vball-counting-grid.is-plain,
	.vball-counting-wrap.is-during .vball-counting-grid.is-plain{
		grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;align-items:stretch
	}
	.vball-counting-grid.is-plain .vball-count-field{height:100%;justify-content:flex-start}
	.vball-counting-grid.is-plain .vball-count-name,
	.vball-counting-wrap.is-during .vball-count-name{
		font-size:.98rem;line-height:1.15;min-height:0;display:block;align-items:center;text-align:center;font-weight:800;color:#0a1628
	}
	.vball-counting-wrap.is-after .vball-count-field input,
	.vball-counting-grid.is-plain .vball-count-field input,
	.vball-counting-wrap.is-during .vball-count-field input{
		min-height:1.7rem;font-size:1.55rem;padding:0;margin:0;text-align:center
	}
	.vball-count-tab{min-height:42px;font-size:.9rem}
}
@media (max-width:339px){
	.vball-counting-grid.is-plain,
	.vball-counting-wrap.is-after .vball-counting-grid.is-plain{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Parent stats token 1.0.316 phone polish — denser full-width, centered labels */
@media (max-width:720px){
	.vball-token-card{max-width:none;width:100%;margin:0}
	.vball-token-card.vball-stats-card{padding:.65rem .4rem .85rem;border-radius:0;border-left:0;border-right:0}
	.vball-counting-grid,.vball-counting-grid.is-plain,
	.vball-counting-wrap.is-during .vball-counting-grid,
	.vball-counting-wrap.is-during .vball-counting-grid.is-plain,
	.vball-counting-wrap.is-after .vball-counting-grid,
	.vball-counting-wrap.is-after .vball-counting-grid.is-plain{gap:.45rem;margin:.4rem 0}
	.vball-count-field{padding:.45rem .4rem .4rem;border-radius:12px;gap:.15rem}
	.vball-count-name,
	.vball-counting-wrap.is-during .vball-count-name,
	.vball-counting-wrap.is-after .vball-count-name,
	.vball-counting-grid.is-plain .vball-count-name{
		font-size:.98rem;font-weight:800;text-align:center;display:block;color:#0a1628;line-height:1.15
	}
	.vball-count-field input,
	.vball-counting-wrap.is-during .vball-count-field input,
	.vball-counting-wrap.is-after .vball-count-field input,
	.vball-counting-grid.is-plain .vball-count-field input{
		min-height:1.7rem;font-size:1.55rem;text-align:center;padding:0;margin:0
	}
	.vball-count-step{gap:6px;margin-top:0}
	.vball-count-btn{min-height:42px;border-radius:10px;font-size:1.35rem}
	.vball-count-tab{min-height:42px;font-size:.9rem;padding:.4rem .55rem}
	.vball-calc-rates{padding:.55rem .65rem;margin:0 0 .55rem;border-radius:12px}
	.vball-token-card.vball-stats-card .vball-btn,
	.vball-token-card.vball-stats-card .vball-btn-volt{min-height:48px;border-radius:12px}
}

.vball-count-field input::-webkit-outer-spin-button,.vball-count-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.vball-calc-rates{
	background:#e4ecec;border:1px solid #c9dbda;border-radius:16px;padding:.9rem 1rem;
	font-size:.95rem;line-height:1.4;margin:0 0 1rem
}
.vball-calc-kicker,.vball-calc-kicker-during,.vball-calc-kicker-after{
	margin:0 0 .55rem;font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
	color:var(--vball-teal,#0f5c5a)
}
.vball-calc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.4rem .85rem}
.vball-calc-list li{display:flex;justify-content:space-between;gap:.5rem;color:#0a1628;font-weight:700}
.vball-calc-list .vball-calc-lab{font-weight:600;color:#5b6777}

/* Token stats card chrome */
.vball-token-card.vball-stats-card{
	--vball-teal:#0f5c5a;
	background:#eef2f4;color:#0a1628;border:1px solid #d7dee6;border-radius:18px;padding:.85rem .7rem 1rem
}
.vball-token-card.vball-stats-card .vball-token-kicker{
	color:var(--vball-teal,#0f5c5a);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase
}
.vball-token-card.vball-stats-card h1{color:#0a1628;font-size:1.65rem;letter-spacing:-.02em;margin:.1rem 0 .15rem}
.vball-token-card.vball-stats-card .vball-token-meta{color:#5b6777;margin:0 0 .45rem}
.vball-token-card.vball-stats-card .vball-btn,
.vball-token-card.vball-stats-card .vball-btn-volt{
	background:#0b4846;color:#fff!important;border:0;border-radius:14px;min-height:52px;font-weight:800;width:100%
}

.vball-stats-howto{margin:1rem 0;padding:1rem;background:#fff;border:2px solid var(--vball-navy,#0a1628);border-radius:12px}
body.is-hud.is-family-app .vball-stats-howto .vball-btn,
.vball-stats-howto .vball-btn{
  display:block;width:100%;max-width:none;min-height:56px!important;padding:.95rem 1.15rem;font-size:1.08rem;font-weight:800
}

.vball-scoresheet-photo{max-width:100%;height:auto;border:1px solid #d5dbe3;border-radius:8px;margin:0 0 1rem}
.vball-scoresheet-notice{background:#fff8e5;border-left:4px solid #dba017;padding:.75rem 1rem;margin:0 0 1rem}
.vball-scoresheet-upload{margin:1.25rem 0 0;padding:1rem;border:1px dashed #0a1628;border-radius:8px;background:#f4f6f9}
.vball-scoresheet-upload-form{max-width:420px}
.vball-scoresheet-card .vball-scoresheet-upload-form{margin-top:.6rem}
.vball-scoresheet-family{margin:1rem 0;padding:1rem;background:#fff;border:1px solid #d5dbe3;border-radius:12px}
.vball-scoresheet-family h3{margin:.2rem 0 .5rem}
.vball-scoresheet-card{margin:0 0 .85rem;padding:.75rem;border:1px solid #e6ebf1;border-radius:8px;background:#f4f6f9}

.vball-practice-avail{margin:1rem 0;padding:1rem;background:#f4f6f9;border:1px solid #dcdcde;border-radius:12px}
.vball-practice-avail-home .vball-practice-avail{background:#fff;border:1px solid #dcdcde}
.vball-practice-avail-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.vball-practice-avail .vball-btn{min-height:52px;min-width:7.5rem;font-weight:700;touch-action:manipulation}
.vball-practice-avail .vball-btn.is-on{outline:3px solid var(--vball-navy,#0a1628);background:var(--vball-navy,#0a1628);color:#fff}
.vball-practice-avail .vball-btn.is-cant{background:#fff4e0;border-color:#dba017;color:#7a4e00;outline-color:#dba017}
.vball-kiosk-avail,.vball-att-avail{display:inline-block;color:#7a4e00;font-weight:700;font-size:.8rem;background:#fff4e0;border-radius:999px;padding:.15rem .55rem;margin-top:.25rem}
.vball-kiosk-btn .vball-kiosk-avail{margin:.15rem 0}
@media (max-width:600px){
	.vball-practice-avail .vball-btn{flex:1 1 30%}
}

.vball-florida-sheet{background:#fff;color:#111;border:1px solid #111;padding:1.1rem 1.2rem;margin:.75rem 0;max-width:40rem}
.vball-florida-sheet__head{text-align:center;margin-bottom:.75rem}
.vball-florida-sheet__mark{max-height:48px;width:auto;display:block;margin:0 auto .4rem}
.vball-florida-sheet__org{margin:0;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.95rem}
.vball-florida-sheet__title{margin:.2rem 0 .5rem;font-size:1.15rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;text-align:center}
.vball-florida-sheet__intro,.vball-florida-sheet__attest{font-size:.9rem;line-height:1.45;margin:.5rem 0 .75rem}
.vball-florida-sheet__line{display:block;border-bottom:1px solid #111;padding:.35rem 0 .15rem;margin:.45rem 0}
.vball-florida-sheet__line > span:first-child{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#333}
.vball-florida-sheet__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.vball-florida-sheet__sig img{display:block;max-height:72px;width:auto;margin-top:.2rem}
.vball-florida-sheet__status{font-size:.85rem;color:#5c6b7a;margin-top:.6rem}
.vball-form.vball-florida-sheet{border:0;padding:0;background:transparent}
.vball-form.vball-florida-sheet .vball-florida-sheet__org{text-align:center}
@media (max-width:600px){.vball-florida-sheet__row{grid-template-columns:1fr}}

.vball-unsigned-filters{display:flex;flex-wrap:wrap;gap:.55rem .85rem;align-items:center;margin:0 0 1rem}
.vball-unsigned-filters .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:.35rem .9rem;border-radius:999px;border:2px solid #0a1628;background:#fff;color:#0a1628;font-weight:700;text-decoration:none}
.vball-unsigned-filters .btn.is-on{background:#0a1628;color:#fff}
.vball-unsigned-gender,.vball-unsigned-years{display:inline-flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.vball-unsigned-years .btn{padding:.35rem .7rem;font-variant-numeric:tabular-nums}
@media (max-width:600px){
	.vball-unsigned-years .btn{padding:.35rem .55rem;font-size:.95rem}
}


/* Family portal — compact home */
.vball-family.vball-card,.vball-family{background:transparent;box-shadow:none;border:0;padding:0;margin:0}
.vball-family-head{background:#fff;color:#0a1628;border-radius:16px;padding:.85rem 1.15rem;margin:0 0 1rem;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.5rem;border:1px solid #dcdcde}
.vball-family-kicker{margin:0 0 .15rem;color:#646970;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.vball-family-head h1{margin:0;color:#0a1628;font-size:1.45rem;letter-spacing:-.02em;font-weight:800}
.vball-tonight-kicker{margin:0 0 .45rem;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--vball-navy,#0a1628)}
.vball-tonight-home{margin:0 0 1rem;padding:1rem 1.1rem;background:#fff;border-radius:16px;border:1px solid #e6ebf1}
.vball-family-lookup{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:0 0 1rem;padding:.9rem 1.1rem;background:#fff;border-radius:16px;border:1px solid #e6ebf1}
.vball-family-lookup label{flex:1 1 220px;font-weight:700;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:#5c6b7a}
.vball-family-lookup input{display:block;width:100%;min-height:44px;margin-top:.3rem;padding:.4rem .7rem;border:1px solid #d5dbe3;border-radius:10px;font:inherit;text-transform:none;letter-spacing:0}
.vball-family-card{background:#fff;border:1px solid #e6ebf1;border-top:4px solid var(--vball-prog,var(--vball-navy,#0a1628));border-radius:16px;padding:1.1rem 1.2rem;margin:0 0 1rem;box-shadow:0 8px 24px rgba(10,22,40,.05)}
.vball-family-card__top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem;margin:0 0 .65rem}
.vball-family-card__top h2{margin:0;font-size:1.2rem;color:var(--vball-navy,#0a1628)}
.vball-family-prog{display:inline-block;margin:.35rem .4rem 0 0;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#0a1628;color:#fff;border-radius:999px;padding:.18rem .55rem}
.vball-family-status{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.28rem .65rem;white-space:nowrap}
.vball-family-status.is-hold{background:#fff4e0;color:#7a4e00}
.vball-family-status.is-pending{background:#e8eef8;color:#0a1628}
.vball-family-status.is-ok{background:#e7f7ee;color:#1e6b3c}
.vball-family-status.is-block{background:#fdecea;color:#b32d2e}
.vball-family-hold-copy{margin:0 0 .6rem;font-size:1rem}
.vball-family-payall{margin:0 0 1rem;padding:.9rem 1.1rem;background:#fff;border-radius:16px;border:1px solid #e6ebf1}
.vball-family-form{border-radius:14px}
@media (max-width:600px){
	.vball-family-head h1{font-size:1.25rem}
	.vball-family-lookup .vball-btn{width:100%}
}

/* Token cards + family matches board — light desk */
.vball-matches-board{margin:1rem 0 1.25rem;padding:1rem 1.1rem;background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px}
.vball-matches-board h2{margin:0 0 .85rem;color:#0a1628;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase}
.vball-match-tile{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:.9rem 1rem;margin:0 0 .75rem}
.vball-match-tile.is-need{border-color:#0a1628;box-shadow:none}
.vball-match-tile h3{margin:.35rem 0 .2rem;font-size:1.1rem;color:#0a1628}
.vball-match-meta{margin:0;color:#646970;font-size:.85rem}
.vball-match-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.vball-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px}
.vball-chip.is-win{background:#e7f7ee;color:#1e6b3c}
.vball-chip.is-need{background:#fff4e0;color:#7a4e00}
.vball-chip.is-soon{background:#e8eef8;color:#0a1628}
.vball-chip.is-done{background:#f0f0f1;color:#646970}
.vball-chip--readonly{margin:.4rem 0}
.vball-match-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;align-items:flex-start}
.vball-match-actions .vball-stats-howto{margin:0;padding:0;background:transparent;border:0;flex:1 1 140px}
.vball-match-add{flex:1 1 160px}
.vball-match-add summary{list-style:none;cursor:pointer;text-align:center}
.vball-match-add summary::-webkit-details-marker{display:none}
.vball-match-stats-form{margin-top:.75rem;padding:.75rem;background:#f6f7f7;border:1px solid #dcdcde;border-radius:12px}
.vball-btn-tap{width:100%;min-height:48px;font-size:1.05rem;font-weight:800;background:#0a1628;color:#fff!important;border-radius:10px;touch-action:manipulation}
.vball-matches-board .vball-btn-ghost{background:#fff;color:#0a1628!important;border:2px solid #0a1628;border-radius:10px}
.vball-matches-board .vball-btn-ghost{width:100%;min-height:48px}
.vball-token-card{max-width:28rem;margin:0 auto}
.vball-token-card h1{margin:.2rem 0 .35rem;color:var(--vball-navy,#0a1628)}
.vball-token-opp{font-size:1.15rem;font-weight:700;margin:.2rem 0}
.vball-token-form input[type=text],.vball-token-form input[type=date],.vball-token-form input[name=opponent],.vball-token-form input[name=opponent_name]{width:100%;font-size:1.1rem;padding:.75rem;border:1px solid #dcdcde;border-radius:10px;background:#fff;color:#1d2327}
.vball-season-total{margin:1rem 0}
.vball-season-total h3{margin:.2rem 0 .35rem}
.vball-day-line{display:flex;flex-wrap:wrap;gap:.35rem .85rem;font-size:.92rem;line-height:1.5}
.vball-family-day-stats,.vball-family-match-stats{margin:1.25rem 0;padding:1rem;background:#f4f6f9;border:1px solid #dcdcde;border-radius:12px}
.vball-set-row{display:flex;gap:.5rem;align-items:center}
.vball-set-row input{width:5em;font-size:1.4rem;padding:.7rem;text-align:center;border:1px solid #dcdcde;border-radius:10px;background:#fff;color:#1d2327}
.vball-wl-row{display:flex;gap:.5rem;flex-wrap:wrap}
.vball-wl-choice{flex:1;min-width:90px;border:2px solid var(--vball-navy,#0a1628);border-radius:10px;padding:.85rem;text-align:center;font-size:1.1rem;font-weight:800}
.vball-results-card-mail .vball-btn{width:100%}
@media (max-width:600px){
	.vball-match-actions{flex-direction:column}
	.vball-match-add,.vball-match-actions .vball-stats-howto{flex:1 1 auto;width:100%}
}
.vball-token-kicker{margin:0 0 .2rem;color:#646970;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.vball-token-meta{color:var(--vball-muted,#646970);margin:.2rem 0 .75rem}
.vball-btn-volt{background:#0a1628;color:#fff!important;width:100%;min-height:48px;font-size:1.05rem;font-weight:800;border-radius:10px}
.vball-jersey{font-weight:700;color:#646970}
.vball-wl{display:flex;gap:.5rem;flex-wrap:wrap}
.vball-wl-opt{flex:1;min-width:90px;border:2px solid #070b14;border-radius:10px;padding:.85rem;text-align:center;font-size:1.15rem;font-weight:800;background:#fff;color:#070b14!important}
.vball-wl-opt.is-on{background:#0a1628;color:#fff}
.vball-photo-slot{display:block;font-weight:700}
.vball-board-label{margin:.6rem 0 .4rem;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#646970}
.vball-family-match-stats{background:#f6f7f7;border:1px solid #dcdcde;border-radius:12px;padding:.85rem;margin:0 0 .75rem}

.vball-family-tabs{
	display:flex;
	flex-wrap:nowrap;
	align-items:stretch;
	gap:.35rem;
	overflow-x:auto;
	overscroll-behavior-x:contain;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	position:sticky;
	top:8px;
	z-index:5;
	background:#fff;
	border:1px solid #dcdcde;
	border-radius:12px;
	padding:4px;
	margin:0 0 1rem;
}
.vball-family-tabs::-webkit-scrollbar{display:none}
.vball-family-tabs button{
	flex:0 0 auto;
	border:0;
	background:transparent;
	color:#646970;
	font-weight:800;
	padding:.75rem 1.05rem;
	min-height:48px;
	min-width:5.6rem;
	border-radius:8px;
	cursor:pointer;
	font:inherit;
	font-size:.9rem;
	white-space:nowrap;
	-webkit-tap-highlight-color:transparent;
}
.vball-family-tabs button.is-on{background:#0a1628;color:#fff}
@media (max-width:420px){
	.vball-family-tabs{top:0;margin:0 -4px 1rem;border-radius:12px}
	.vball-family-tabs button{min-height:48px;font-size:.88rem;padding:.7rem .95rem}
}
.vball-tab-panel{display:none}
.vball-tab-panel.is-on{display:block}
.vball-match-tile{display:block;text-decoration:none;color:#1d2327}
.vball-match-opp{display:block;font-size:1.05rem;margin:.35rem 0 .15rem;color:#0a1628}
.vball-token-card.vball-results-card{background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px;padding:1.1rem 1.2rem}
.vball-token-card.vball-results-card h1{color:#0a1628}
.vball-token-card .vball-token-kicker{color:#646970}
.vball-token-card .vball-token-meta{color:#646970}
.vball-token-card .vball-count-field{color:#646970}
.vball-token-card .vball-count-field input,.vball-token-card input[name=opponent],.vball-token-card .vball-set-row input{background:#fff;color:#1d2327;border-color:#dcdcde}
.vball-token-card .vball-calc-rates{background:#f6f7f7;color:#1d2327}
.vball-token-card .vball-calc-rates strong{color:#0a1628}
.vball-token-card .vball-note{color:#646970}
.vball-token-card .vball-wl-opt,.vball-token-card .vball-wl-opt label{color:#070b14!important;border-color:#070b14;background:#fff}
.vball-wl-opt input{accent-color:#070b14}
.vball-photo-slot input{margin-top:.4rem;width:100%}
.vball-photo-actions{display:flex;flex-direction:column;gap:10px;margin:.5rem 0 0}
.vball-photo-pick{position:relative;display:block;text-align:center;cursor:pointer;overflow:hidden}
.vball-photo-pick input[type="file"]{
	position:absolute;inset:0;opacity:0;width:100%;height:100%;
	min-height:0;padding:0;margin:0;border:0;cursor:pointer
}
body.is-hud .vball-photo-pick input[type="file"],
body.is-hud .vball-photo-form input[type="file"]{
	position:absolute;inset:0;opacity:0;width:100%;height:100%;
	min-height:0;padding:0;margin:0;border:0;background:transparent;box-shadow:none
}


.vball-billing-board{margin:0 0 1.25rem;padding:1rem 1.1rem;background:#fff;border:1px solid #e6ebf1;border-radius:16px}
.vball-billing-board h2{margin:.1rem 0 .5rem}
.vball-bill-kicker{margin:0 0 .75rem;font-weight:800;color:#0a1628}
.vball-bill-kid{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.75rem 0;border-bottom:1px solid #e6ebf1;text-decoration:none;color:inherit}
.vball-bill-kid h3{margin:0;font-size:1rem}
.vball-bill-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.vball-bill-amt{font-weight:800}
.vball-bill-total{display:flex;justify-content:space-between;padding:.85rem 0;font-size:1.05rem}
.vball-bill-ok{color:#1e6b3c;font-weight:700}
.vball-player-bill{padding:.2rem 0 1rem}
.vball-player-bill__top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .5rem}
.vball-bill-lines{list-style:none;margin:0 0 .75rem;padding:0}
.vball-bill-line{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem 0;border-bottom:1px solid #e6ebf1}
.vball-bill-line em{font-style:normal;color:#b32d2e;font-size:.85rem;margin-left:.35rem}
.vball-bill-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.vball-bill-actions .vball-btn,.vball-bill-actions form{flex:1 1 140px}
.vball-bill-actions .vball-btn{width:100%;min-height:48px}
.vball-family-status.is-due{background:#fff4e0;color:#7a4e00}
.vball-family-status.is-past{background:#fdecea;color:#b32d2e}
.vball-family-status.is-cancel{background:#e8eef8;color:#0a1628}
.vball-btn-ghost{background:transparent;color:#0a1628;border:2px solid #0a1628}
.vball-gear-board,.vball-teams-board,.vball-recruit-dash{margin:0 0 1rem}
.vball-gear-year{margin:1rem 0 .4rem;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#0a1628}
.vball-gear-lines,.vball-teams-lines,.vball-interest-list,.vball-recruit-nudge{list-style:none;margin:0;padding:0}
.vball-gear-line{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid #e6ebf1}
.vball-gear-line em{font-style:normal;font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.vball-gear-line em.is-ordered{color:#7a4e00}
.vball-gear-line em.is-assigned,.vball-gear-line em.is-received{color:#1e6b3c}
.vball-recruit-zero{margin:.35rem 0;color:#0a1628}
.vball-recruit-needed{background:#fdecea;border:1px solid #f5c2c0;border-radius:12px;padding:.85rem 1rem;margin:0 0 1rem}
.vball-recruit-needed p{margin:.25rem 0}
.vball-recruit-nudge li{padding:.45rem 0;border-bottom:1px solid #e6ebf1}
.vball-interest-list li{padding:.45rem 0;border-bottom:1px solid #e6ebf1}
.vball-bio-nag{background:#fff4e0;border:1px solid #f0d5a0;border-radius:12px;padding:.85rem 1rem;margin:0 0 1rem}

/* Family portal — light desk (paper + navy). Scoped so public pages stay as-is. */
.vball-family{
	--vball-navy:#0a1628;
	--vball-accent:#0a1628;
	--vball-paper:#fff;
	--vball-wash:#f6f7f7;
	--vball-line:#dcdcde;
	--vball-ink:#1d2327;
	--vball-muted:#646970;
	--vball-card:#fff;
	--vball-text:#1d2327;
	--card:#fff;
	--text:#1d2327;
	--ink:#1d2327;
	--muted:#646970;
	--accent:#0a1628;
	color:var(--vball-ink);
	background:var(--vball-wash);
}
.family-app .app-card:has(.vball-family),
.family-app .app-card:has(.vball-token-card){
	background:#f6f7f7;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-radius:16px;
	box-shadow:none;
	overflow:visible;
}
.vball-family a{color:#0a1628}
.vball-family-head{
	background:#fff;
	color:#0a1628;
	border-radius:16px;
	padding:1.05rem 1.2rem;
	margin:0 0 1.1rem;
	border:1px solid #dcdcde;
}
.vball-family-kicker{color:#646970}
.vball-family-head h1{color:#0a1628;font-size:1.6rem}
.vball-family-card{
	background:#fff;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-top:3px solid var(--vball-prog,var(--vball-navy,#0a1628));
	border-radius:16px;
	padding:1.15rem 1.15rem 1.25rem;
	margin:0 0 1.15rem;
	box-shadow:0 1px 3px rgba(10,22,40,.06);
	overflow:visible;
}
.vball-family-card__top{align-items:center;gap:.75rem}
.vball-family-card__top h2{color:#0a1628;font-size:1.25rem;letter-spacing:-.02em}
.vball-family-who{display:flex;align-items:center;gap:.75rem;min-width:0}
.vball-family-avatar{
	flex:0 0 48px;
	width:48px;height:48px;
	border-radius:50%;
	background:#0a1628;
	color:#fff;
	font-weight:800;
	font-size:1rem;
	letter-spacing:.02em;
	display:flex;align-items:center;justify-content:center;
}
.vball-family-meta{margin:.15rem 0 0;color:#646970;font-size:.9rem}
.vball-family-prog{background:#0a1628;color:#fff;border:1px solid #0a1628}
.vball-family-status{border-radius:999px;padding:.3rem .7rem}
.vball-family-status.is-ok{background:#e7f7ee;color:#1e6b3c}
.vball-family-status.is-past,.vball-family-status.is-block{background:#fdecea;color:#b32d2e}
.vball-family-status.is-due,.vball-family-status.is-hold{background:#fff4e0;color:#7a4e00}
.vball-family-status.is-pending,.vball-family-status.is-cancel{background:#e8eef8;color:#0a1628}
.vball-family-status.is-uncommitted{background:#0a1628;color:#fff}
.vball-family .vball-btn,
.vball-family-card .vball-btn,
.vball-family .vball-btn-volt,
.vball-family .vball-btn-tap,
.vball-bill-actions .vball-btn:not(.vball-btn-ghost),
.vball-token-card .vball-btn,
.vball-token-card .vball-btn-volt{
	background:#0a1628;
	color:#fff!important;
	border:0;
	border-radius:10px;
	min-height:48px;
	font-weight:800;
}
.vball-family .vball-btn-ghost,
.vball-bill-actions .vball-btn-ghost,
.vball-matches-board .vball-btn-ghost{
	background:#fff;
	color:#0a1628!important;
	border:2px solid #0a1628;
	border-radius:10px;
}
.vball-family-photo img{width:96px;height:128px;object-fit:cover;object-position:center top;border-radius:12px;background:#0a1628}
.vball-family-card input,.vball-family-card select,.vball-family-card textarea,
.vball-family-lookup input,
.vball-family-video input,.vball-family-video textarea{
	background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:10px
}
.vball-family-card label,.vball-family-card h2,.vball-family-card h3{color:#0a1628}
.vball-family-card .vball-note{color:#646970}
.vball-family-card p{color:#1d2327}
.vball-family-form,.vball-family-stats,.vball-family-lookup,.vball-family-payall,.vball-billing-board{
	background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px
}
.vball-family-form.is-signed{background:#f3faf6}
.vball-recruit-needed{
	background:#fff;
	border:1px solid #dcdcde;
	border-radius:16px;
	padding:1rem 1.05rem;
	margin:0 0 1rem;
	color:#1d2327;
}
.vball-recruit-needed p{margin:.3rem 0;color:#1d2327;overflow:visible;white-space:normal;text-overflow:unset}
.vball-recruit-needed strong{color:#0a1628;display:block;font-size:1.02rem}
.vball-recruit-needed .vball-note{color:#646970}
.vball-needed-link{color:#0a1628;font-weight:700;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.vball-needed-link:hover,.vball-needed-link:focus{color:#0a1628}
.vball-bio-nag li{overflow:visible;white-space:normal;text-overflow:unset}
.vball-family [id^="vball-profile-"]{scroll-margin-top:72px}
.vball-recruit-dash{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:1rem 1.05rem;color:#1d2327}
.vball-recruit-dash h2,.vball-recruit-dash h3{color:#0a1628;margin:.2rem 0 .55rem}
.vball-recruit-dash h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#646970}
.vball-recruit-totals{margin:.65rem 0 1rem}
.vball-recruit-zero{color:#0a1628;font-size:1.05rem;margin:.2rem 0}
.vball-recruit-nudge li,.vball-interest-list li,.vball-gear-line,.vball-bill-line{
	border-bottom-color:#dcdcde;color:#1d2327
}
.vball-gear-board,.vball-teams-board{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:1rem 1.05rem;color:#1d2327}
.vball-gear-year{color:#646970}
.vball-gear-line em.is-ordered{color:#7a4e00}
.vball-gear-line em.is-assigned,.vball-gear-line em.is-received{color:#1e6b3c}
.vball-bill-kicker,.vball-bill-amt{color:#0a1628}
.vball-player-bill{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:.9rem 1rem;margin:0 0 .85rem}
.vball-unsigned-card:not(:has(img)){display:none}
@media (max-width:420px){
}

.vball-upcoming-strip{margin:0 0 1rem;padding:.85rem 1rem;background:#fff;border:1px solid #e6ebf1;border-radius:14px}
.vball-upcoming-kicker{margin:0 0 .4rem;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--vball-navy,#0a1628)}
.vball-upcoming-strip ul{list-style:none;margin:0;padding:0}
.vball-upcoming-strip li{padding:.35rem 0;border-bottom:1px solid #eef1f5;font-size:.95rem}
.vball-upcoming-strip li:last-child{border-bottom:0}
.vball-upcoming-strip strong{display:block;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--vball-navy,#0a1628)}


.coach-bio__contact { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1rem; align-items: center; }
.coach-mail { display: inline-block; position: relative; }
.coach-mail[open] { flex: 1 1 100%; }
.coach-mail__btn::-webkit-details-marker,
.coach-mail__btn::marker { display: none; content: ""; }
.coach-mail-icon,
.coach-mail__btn,
a.coach-mail-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border-radius: 999px;
	background: var(--vball-navy, #0a1628);
	color: #fff !important;
	border: 2px solid var(--vball-navy, #0a1628);
	cursor: pointer;
	text-decoration: none !important;
	font-weight: 700;
	list-style: none;
	box-sizing: border-box;
}
.coach-card .coach-mail-icon,
.vball-coach-card .coach-mail-icon {
	border-color: rgba(255,255,255,.4);
}
.coach-mail__svg { display: block; pointer-events: none; }
.coach-mail__panel { margin-top: 0.75rem; max-width: 28rem; }
.coach-form { position: relative; }
.coach-form label { display: block; margin: 0.65rem 0; font-weight: 600; }
.coach-form input,
.coach-form select,
.coach-form textarea {
	display: block;
	width: 100%;
	min-height: 44px;
	margin-top: 0.25rem;
	padding: 0.5rem 0.8rem;
	border-radius: 12px;
	border: 1px solid #c9d2dc;
	font: inherit;
	background: #fff;
	color: #0a1628;
}
.coach-form textarea { min-height: 7rem; }
.coach-form__wants { border: 0; padding: 0; margin: 0.75rem 0; }
.coach-form__wants legend { font-weight: 700; margin-bottom: 0.35rem; }
.coach-form__check { display: block; font-weight: 500; margin: 0.35rem 0; }
.coach-form__check input { display: inline-block; width: auto; min-height: 22px; min-width: 22px; margin-right: 0.4rem; }
.coach-form__notice { font-weight: 700; }
.vball-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.coach-apply { margin-top: 1.25rem; max-width: 44rem; }
.coach-form__checks { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.coach-form__actions { margin-top: 0.75rem; }
.coach-form__label { display: block; }
#apply-to-coach { scroll-margin-top: 5rem; }
.page-hero .coach-mail__btn,
.coach-bio__hero .coach-mail__btn,
.vball-coach-hero .coach-mail__btn {
	background: #fff;
	color: var(--vball-navy, #0a1628);
	border-color: #fff;
}

.coach-card .coach-card__contact,
.vball-coach-card .coach-card__contact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.75rem;
}


/* ------------------------------------------------------------------
   Family / token light desk — LAST layer. Beats scheme-dark canvas,
   :root tokens, .app-card wrap, and hardcoded form fields.
   Public home / programs / recruiting board stay dark sports-app.
   Header stays navy (tokens restored below). No volt in family/token.
   ------------------------------------------------------------------ */
html:has(body.is-family-app) {
	--vball-bg:#f6f7f7; --vball-card:#fff; --vball-text:#1d2327; --vball-ink:#1d2327;
	--vball-muted:#646970; --vball-accent:#0a1628; --bg:#f6f7f7; --card:#fff;
	--text:#1d2327; --ink:#1d2327; --accent:#0a1628;
	background:#f6f7f7 !important;
	color:#1d2327;
}
body.is-family-app,
body.is-family-app.scheme-dark {
	--vball-bg:#f6f7f7; --vball-card:#fff; --vball-text:#1d2327; --vball-ink:#1d2327;
	--vball-muted:#646970; --vball-accent:#0a1628; --bg:#f6f7f7; --card:#fff;
	--text:#1d2327; --ink:#1d2327; --accent:#0a1628;
	background:#f6f7f7 !important;
	color:#1d2327 !important;
}

/* Header / announce / drawer stay paper+navy. Footer stays cinematic navy. */
body.is-family-app .site-header,
body.is-family-app.scheme-dark .site-header,
body.is-family-app .announce,
body.is-family-app .mobile-drawer {
	--vball-accent:#0a1628;
	--accent:#0a1628;
	--vball-bg:#f6f7f7;
	--vball-card:#fff;
	--vball-text:#1d2327;
	--vball-ink:#1d2327;
	--bg:#f6f7f7;
	--card:#fff;
	--text:#1d2327;
	--ink:#1d2327;
}
body.is-family-app .site-footer {
	--vball-accent:#fff;
	--accent:#fff;
	--vball-text:#d7dee8;
	--vball-ink:#fff;
}

/* Canvas + wrap. Body class is is-family-app; main is family-app. */
body.is-family-app .site-main,
body.is-family-app .app-stack,
body.is-family-app .family-app,
.family-app,
.family-app .app-card,
.family-app .app-card:has(.vball-family),
.family-app .app-card:has(.vball-token-card) {
	background:#f6f7f7;
	color:#1d2327;
}
body.is-family-app .app-card,
body.is-family-app .vball-family,
.family-app .app-card,
.vball-family {
	background:#f6f7f7;
	color:#1d2327;
	border-color:#dcdcde;
	overflow:visible;
	overflow-x:visible;
}
body.is-family-app .vball-family-card,
body.is-family-app .vball-token-card,
.vball-family-card,
.vball-token-card,
.vball-token-card.vball-stats-card,
.vball-token-card.vball-results-card {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
	overflow:visible;
}

/* Sticky swipe tabs. Ancestors must stay overflow:visible. */
body.is-family-app .vball-family-tabs,
.vball-family .vball-family-tabs,
.vball-family-tabs {
	position:sticky;
	top:8px;
	z-index:5;
	display:flex;
	flex-wrap:nowrap;
	overflow-x:auto;
	overscroll-behavior-x:contain;
	-webkit-overflow-scrolling:touch;
	background:#fff;
	border:1px solid #dcdcde;
}
body.is-family-app .vball-family-tabs button.is-on,
.vball-family-tabs button.is-on {
	background:#0a1628;
	color:#fff;
}

/* scheme-dark input/select/textarea — hardcoded #0c1524 + volt border. */
body.is-family-app.scheme-dark input,
body.is-family-app.scheme-dark select,
body.is-family-app.scheme-dark textarea,
body.scheme-dark.is-family-app input:not([type="radio"]):not([type="checkbox"]),
body.scheme-dark.is-family-app select,
body.scheme-dark.is-family-app textarea,
body.is-family-app.scheme-dark .tonight-tool input,
body.is-family-app.scheme-dark .tonight-tool select,
body.is-family-app.scheme-dark .age-finder input:not([type="radio"]):not([type="checkbox"]),
body.is-family-app.scheme-dark .signup-wizard input:not([type="radio"]):not([type="checkbox"]),
body.is-family-app.scheme-dark .search-form input,
body.is-family-app.scheme-dark .vball-signup-form input,
body.is-family-app.scheme-dark .vball-signup-form select,
body.is-family-app.scheme-dark .vball-family input,
body.is-family-app.scheme-dark .vball-family select,
body.is-family-app.scheme-dark .vball-family textarea,
body.is-family-app.scheme-dark .vball-token-card input,
body.is-family-app.scheme-dark .vball-token-card select,
body.is-family-app.scheme-dark .vball-token-card textarea,
body.is-family-app.scheme-dark .vball-family-card input,
body.is-family-app.scheme-dark .vball-family-card select,
body.is-family-app.scheme-dark .vball-family-card textarea {
	background:#fff;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-radius:10px;
}
body.is-family-app.scheme-dark input:focus,
body.is-family-app.scheme-dark select:focus,
body.is-family-app.scheme-dark textarea:focus {
	border-color:#0a1628;
	outline:2px solid #0a1628;
	outline-offset:1px;
}
body.is-family-app.scheme-dark input::placeholder,
body.is-family-app.scheme-dark textarea::placeholder {
	color:#646970;
}

/* Links / heads in the family canvas. Do not touch header a. */
body.is-family-app .site-main a,
body.is-family-app.scheme-dark .site-main a,
body.is-family-app .vball-family a,
body.is-family-app .vball-token-card a,
.family-app a,
.vball-family a,
.vball-token-card a {
	color:#0a1628;
}
body.is-family-app .site-main a:hover,
body.is-family-app.scheme-dark .site-main a:hover,
.vball-family a:hover,
.vball-token-card a:hover {
	color:#1a2c4a;
}
body.is-family-app .site-main h1,
body.is-family-app .site-main h2,
body.is-family-app .site-main h3,
body.is-family-app.scheme-dark .site-main h1,
body.is-family-app.scheme-dark .site-main h2,
body.is-family-app.scheme-dark .site-main h3 {
	color:#0a1628;
}

/* Buttons inside family: navy fill, white text, 10px radius. */
body.is-family-app .site-main .vball-btn,
body.is-family-app .site-main .vball-btn-volt,
body.is-family-app .site-main .vball-btn-tap,
body.is-family-app .vball-family .vball-btn,
body.is-family-app .vball-family .vball-btn-volt,
body.is-family-app .vball-token-card .vball-btn,
body.is-family-app .vball-token-card .vball-btn-volt,
.vball-family .vball-btn,
.vball-family .vball-btn-volt,
.vball-family .vball-btn-tap,
.vball-token-card .vball-btn,
.vball-token-card .vball-btn-volt {
	background:#0a1628;
	color:#fff !important;
	border:0;
	border-radius:10px;
}
body.is-family-app .site-main .vball-btn-ghost,
.vball-family .vball-btn-ghost,
.vball-bill-actions .vball-btn-ghost,
.vball-matches-board .vball-btn-ghost {
	background:#fff;
	color:#0a1628 !important;
	border:2px solid #0a1628;
	border-radius:10px;
}

/* Family product nav in main — navy selected, no volt CTA. */
body.is-family-app .site-main .family-nav,
body.is-family-app.scheme-dark .site-main .family-nav,
body.is-family-app.scheme-dark .family-nav {
	background:#fff;
}
body.is-family-app .site-main .family-nav__item,
body.is-family-app.scheme-dark .site-main .family-nav__item,
body.is-family-app.scheme-dark .family-nav__item {
	color:#0a1628;
	background:transparent;
}
body.is-family-app .site-main .family-nav__item.is-on,
body.is-family-app .site-main .family-nav__item:hover,
body.is-family-app .site-main .family-nav__item[href*="register"],
body.is-family-app.scheme-dark .site-main .family-nav__item.is-on,
body.is-family-app.scheme-dark .site-main .family-nav__item:hover,
body.is-family-app.scheme-dark .family-nav__item.is-on,
body.is-family-app.scheme-dark .family-nav__item:hover {
	background:#0a1628;
	color:#fff;
}

/* No #e8ff3d in family / token. */
body.is-family-app .vball-family .vball-video-out,
body.is-family-app .vball-family .vball-lazy-video,
.vball-family .vball-video-out,
.vball-family .vball-lazy-video {
	background:#0a1628;
	color:#fff !important;
	border-color:#0a1628;
}
body.is-family-app .recruit-video {
	border-top-color:#0a1628;
}

/* Tables / calendar / signup plates under family. */
body.is-family-app.scheme-dark .vball-table,
body.is-family-app.scheme-dark .vball-table th,
body.is-family-app.scheme-dark .vball-table td,
body.is-family-app.scheme-dark .vball-cal-month td,
body.is-family-app.scheme-dark .vball-cal-week td,
body.is-family-app.scheme-dark .vball-cal-views button,
body.is-family-app.scheme-dark .vball-cal-sheet__close,
body.is-family-app.scheme-dark .vball-cal-sheet__panel {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
}
body.is-family-app.scheme-dark .vball-program-card,
body.is-family-app.scheme-dark .signup-choice {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
}

/* Page hero stays a navy band with white type. */
body.is-family-app .page-hero,
body.is-family-app .page-hero h1,
body.is-family-app .page-hero h2,
body.is-family-app .page-hero h3,
body.is-family-app .page-hero .eyebrow,
body.is-family-app .page-hero .lead,
body.is-family-app .page-hero a,
body.is-family-app.scheme-dark .page-hero h1,
body.is-family-app.scheme-dark .page-hero h2,
body.is-family-app.scheme-dark .page-hero h3,
body.is-family-app.scheme-dark .page-hero a {
	color:#fff;
}

/* Recruit video / footage chips on family-classed pages: navy, no volt. */
body.is-family-app .recruit-video,
.vball-family .recruit-video {
	border-top-color:#0a1628;
}
body.is-family-app .recruit-video .vball-lazy-video::before,
body.is-family-app .recruit-video__tap,
body.is-family-app .recruit-footage__chip:hover,
body.is-family-app .recruit-footage__chip:focus,
body.is-family-app .vball-lazy-video,
body.is-family-app .vball-video-out,
.vball-family .vball-lazy-video,
.vball-family .vball-video-out,
.vball-token-card .vball-lazy-video,
.vball-token-card .vball-video-out {
	background:#0a1628;
	color:#fff !important;
	border-color:#0a1628;
	box-shadow:none;
}

/* Check-in kiosk is also is-family-app — keep the dark full-screen. */
body.is-family-app.is-kiosk,
body.is-family-app.is-kiosk.scheme-dark {
	--vball-bg:#0a1628; --vball-card:#101a2c; --vball-text:#fff; --vball-ink:#fff;
	--vball-accent:#0a1628; --bg:#0a1628; --card:#101a2c; --text:#fff; --accent:#fff;
	background:#0a1628 !important;
	color:#fff !important;
}
html:has(body.is-family-app.is-kiosk) {
	background:#0a1628 !important;
	--vball-bg:#0a1628; --vball-accent:#0a1628; --bg:#0a1628; --accent:#fff;
}

/* Family recruiting send progress — counts only, not a staff list. */
.vball-recruit-send-family{margin:1.1rem 0 0;padding-top:.85rem;border-top:1px solid #dcdcde}
.vball-send-family-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 1rem}
.vball-send-family-kpi{background:#fff;border:1px solid #dcdcde;border-top:3px solid #0a1628;border-radius:12px;padding:10px 12px}
.vball-send-family-kpi span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#646970;font-weight:700}
.vball-send-family-kpi strong{display:block;font-size:1.85rem;line-height:1.1;color:#0a1628;margin-top:4px}
.vball-send-family-list{margin:.35rem 0 0}

.vball-req-board{margin:1.1rem 0 0;padding-top:.85rem;border-top:1px solid #dcdcde}
.vball-req-board h3{margin:0 0 .4rem}
.vball-req-cap{font-weight:700;margin:.35rem 0 .7rem}
.vball-req-search{display:flex;flex-wrap:wrap;gap:.45rem;align-items:flex-end;margin:0 0 .75rem}
.vball-req-search label span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#646970;font-weight:700}
.vball-req-search input,.vball-req-search select{min-height:40px;border:1px solid #c3c4c7;border-radius:8px;padding:.3rem .5rem}
.vball-req-picks{list-style:none;margin:0 0 1rem;padding:0}
.vball-req-picks li{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.5rem 0;border-bottom:1px solid #e6ebf1}
.vball-req-picks form{margin:0}
.vball-req-list{list-style:none;margin:0;padding:0}
.vball-req-row{padding:.5rem .7rem;margin:0 0 .4rem;border:1px solid #e6ebf1;border-left:4px solid #9aa0a6;border-radius:8px;background:#fff;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:space-between}
.vball-req-row.is-queued{border-left-color:#9aa0a6}
.vball-req-row.is-contacted{border-left-color:#5ad4ff}
.vball-req-row.is-replied{border-left-color:#f5a623}
.vball-req-row.is-interested{border-left-color:#0a7a32}
.vball-req-row.is-no{border-left-color:#c62828}
.vball-req-row.is-declined{border-left-color:#9a6b6b;opacity:.8}
.vball-req-status{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.2rem .55rem}
.vball-req-status.is-queued{background:#e8eaed;color:#5f6368}
.vball-req-status.is-contacted{background:#e6f7ff;color:#0a6a8a}
.vball-req-status.is-replied{background:#fff4e0;color:#7a4e00}
.vball-req-status.is-interested{background:#eef8f1;color:#0a7a32}
.vball-req-status.is-no{background:#fdecea;color:#c62828}
.vball-req-status.is-declined{background:#f1eeef;color:#8a5a5a}


/* Signed terms + family billing. */
.vball-terms-family{margin:1rem 0 0;padding-top:.85rem;border-top:1px solid #dcdcde}
.vball-terms-family h3{color:#0a1628;margin:0 0 .4rem}
.vball-terms-page .vball-terms-meta{list-style:none;padding:0;margin:.4rem 0 1rem;display:flex;flex-wrap:wrap;gap:.6rem;color:#646970;font-size:.85rem}
.vball-terms-page .vball-terms-body{margin:1rem 0}
.vball-terms-page .vball-terms-body h1,.vball-terms-page .vball-terms-body h2{color:#0a1628}
.vball-family-status.is-declined,.vball-family-status.is-past_due{background:#fdecea;color:#b32d2e}
.vball-family-card-form{margin:.5rem 0 0}


/* phpList / Listmonk public subscribe — HUD theme can restyle later. */
.vball-listmonk{margin:1rem 0;padding:1rem 1.1rem;background:var(--vball-card,#fff);border:1px solid #dcdcde;border-top:3px solid var(--vball-navy,#0a1628);border-radius:12px;max-width:28rem}
.vball-listmonk__kicker{margin:0 0 .35rem;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--vball-muted,#646970)}
.vball-listmonk__intro,.vball-listmonk__notice,.vball-listmonk__msg{margin:.35rem 0}
.vball-listmonk__field{display:block;margin:.45rem 0}
.vball-listmonk__field span{display:block;font-size:.85rem;font-weight:600;margin-bottom:.15rem}
.vball-listmonk__field input{width:100%;min-height:44px;padding:.4rem .6rem;border:1px solid #c3c4c7;border-radius:8px}
.vball-listmonk__check{display:flex;gap:.5rem;align-items:flex-start;margin:.5rem 0}
.vball-listmonk__hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.vball-listmonk--footer{margin:1.5rem auto}

.vball-phplist{margin:1rem 0;padding:1rem 1.1rem;background:var(--vball-card,#fff);border:1px solid #dcdcde;border-top:3px solid var(--vball-navy,#0a1628);border-radius:12px;max-width:28rem}
.vball-phplist__kicker{margin:0 0 .35rem;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--vball-muted,#646970)}
.vball-phplist__intro,.vball-phplist__notice,.vball-phplist__msg{margin:.35rem 0}
.vball-phplist__field{display:block;margin:.45rem 0}
.vball-phplist__field span{display:block;font-size:.85rem;font-weight:600;margin-bottom:.15rem}
.vball-phplist__field input{width:100%;min-height:44px;padding:.4rem .6rem;border:1px solid #c3c4c7;border-radius:8px}
.vball-phplist__check{display:flex;gap:.5rem;align-items:flex-start;margin:.5rem 0}
.vball-phplist__hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.vball-phplist--footer{margin:1.5rem auto}


/* Tryout family offer + bib + eligible ages. */
.vball-tryout-offer{border-top:4px solid var(--vball-navy,#0a1628);padding:1.1rem 1.15rem 1.2rem}
.vball-tryout-offer-who{margin:.15rem 0;font-size:1.15rem;font-weight:800;color:#0a1628}
.vball-tryout-offer-team{margin:.2rem 0 .4rem;font-size:1.8rem;line-height:1.15;color:#0a1628}
.vball-tryout-countdown{font-size:2rem;font-weight:800;letter-spacing:.04em;margin:.2rem 0;color:#0a1628}
.vball-tryout-spots{font-weight:700;margin:.2rem 0}
.vball-tryout-offer-copy{font-size:1.05rem;margin:.5rem 0}
.vball-tryout-offer-ctas{display:flex;flex-direction:column;gap:.7rem;margin:1rem 0}
.vball-tryout-cta{min-height:56px;font-size:1.15rem;font-weight:800;width:100%}
.vball-tryout-next{margin:.6rem 0 0;padding-left:1.2rem}
.vball-tryout-bib-num{font-size:4.5rem;line-height:1;font-weight:800;margin:.2rem 0;color:#0a1628}
.vball-tryout-bib-who{font-size:1.2rem;font-weight:800}
.vball-eligible{margin:.25rem 0;font-size:.92rem}
.vball-eligible__age{font-weight:800}
.vball-eligible__age.is-rare{opacity:.45;font-weight:600}
.vball-bib-sticker__name{font-size:16px;font-weight:800;margin:.15rem 0 0;text-align:center}

.vball-member-links{display:inline;margin-left:.45rem;font-weight:600;font-size:14px}
.vball-member-links a,.vball-member-link{color:#007a99;text-decoration:underline;font-size:14px}
.vball-member-links a:hover{color:#0a1628}


/* Coach gym-door attendance list: one paper sheet (mark, then Submit). */
.vball-checkin-public.vball-card{
	padding:0;
	margin:.5rem 0;
	background:transparent;
	box-shadow:none;
	border:0;
}
.vball-checkin-public > p{margin:0 0 8px}
.vball-kiosk.vball-att-list,
.vball-kiosk.vball-att-list.vball-kiosk-phone,
.vball-att-list{
	display:flex !important;
	flex-direction:column;
	gap:0;
	grid-template-columns:none !important;
	background:#fff;
	color:#0a1628;
	border:1px solid #d5dbe3;
	border-radius:8px;
	overflow:hidden;
}
.vball-att-row{
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	align-items:center;
	gap:8px;
	background:transparent;
	color:#0a1628;
	border:0;
	border-bottom:1px solid #e6eaf0;
	border-radius:0;
	padding:8px 10px;
}
.vball-att-row.is-dirty{background:#f4f6f9}
.vball-att-row.is-saved{background:#eef8f1}
.vball-att-row.is-error{background:#fdecea}
.vball-att-who{flex:1 1 0;min-width:0}
.vball-att-name{
	display:block;
	font-size:1.22rem;
	font-weight:800;
	line-height:1.15;
	color:#0a7a32;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.vball-att-row.is-blocked .vball-att-name{color:#c0392b}
.vball-att-list .vball-att-reason,
.vball-att-list .vball-kiosk-avail{display:none}
.vball-att-marks{display:flex;flex:1 1 auto;gap:4px;min-width:0;max-width:58%}
.vball-att-mark{
	flex:1 1 0;
	min-height:40px;
	min-width:4.9em;
	padding:0 6px;
	border:1px solid #c5ccd6;
	border-radius:8px;
	background:#f4f6f9;
	color:#0a1628;
	font-size:.72rem;
	font-weight:800;
	line-height:1.1;
	cursor:pointer;
	touch-action:manipulation;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:clip;
	box-sizing:border-box;
}
.vball-att-mark[data-status="present"]{background:#c8f0d4;border-color:#1f9d55;color:#0a1628}
.vball-att-mark[data-status="absent"]{background:#f7c9c6;border-color:#c0392b;color:#0a1628}
.vball-att-mark[data-status="excused"]{background:#ffe9a3;border-color:#c9a227;color:#0a1628}
.vball-att-mark.is-on{color:#0a1628;border-width:2px}
.vball-att-mark[data-status="present"].is-on{background:#22c55e;border-color:#15803d;color:#0a1628}
.vball-att-mark[data-status="absent"].is-on{background:#e74c3c;border-color:#a12622;color:#0a1628}
.vball-att-mark[data-status="excused"].is-on{background:#f5c518;border-color:#b8860b;color:#0a1628}
.vball-att-mark[disabled],.vball-att-row.is-blocked .vball-att-mark[data-status="present"]{
	opacity:.38;cursor:not-allowed;
}
.vball-att-submit-wrap{
	position:sticky;
	bottom:0;
	z-index:6;
	padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));
	background:#fff;
	box-shadow:0 -4px 10px rgba(10,22,40,.06);
}
.vball-att-list .vball-att-coach,
.vball-att-coach{
	display:flex;
	flex-direction:column;
	gap:4px;
	margin:0 0 6px;
	background:transparent;
	color:#0a1628;
	border:0;
	border-radius:0;
	padding:0;
}
.vball-att-list .vball-att-coach label,
.vball-att-coach label{
	font-size:.75rem;
	font-weight:700;
	color:#0a1628;
	line-height:1.2;
}
.vball-att-list .vball-att-coach-select,
.vball-att-coach-select{
	display:block;
	width:100%;
	max-width:100%;
	min-height:40px;
	padding:4px 8px;
	border:1px solid #0a1628;
	border-radius:8px;
	background:#fff;
	color:#0a1628;
	font-size:1rem;
	font-weight:700;
	line-height:1.2;
	color-scheme:light;
	-webkit-appearance:auto;
	appearance:auto;
}
.vball-att-submit{
	display:block;
	width:100%;
	min-height:44px;
	padding:.35rem .75rem;
	border:0;
	border-radius:8px;
	background:#0a1628;
	color:#fff;
	font-size:1rem;
	font-weight:800;
	cursor:pointer;
	touch-action:manipulation;
}
.vball-att-submit.is-busy{opacity:.7}
.vball-att-submit-msg{margin:4px 0 0;font-weight:700;text-align:center;color:#0a1628}


.vball-att-row[hidden]{display:none !important}
.vball-att-team-picker{
	position:sticky;
	top:0;
	z-index:5;
	display:flex;
	flex-direction:column;
	gap:6px;
	padding:8px 10px;
	background:#fff;
	color:#0a1628;
	border-bottom:1px solid #e6eaf0;
}
.vball-att-team-picker > label,.vball-att-team-picker label[for="vball-att-team-select"],.vball-att-team-picker label[for="vball-att-age-select"],.vball-att-team-picker label[for="vball-att-gym-select"]{
	font-size:.75rem;
	font-weight:700;
	color:#0a1628;
	line-height:1.2;
}
.vball-att-list .vball-att-team-select,
.vball-att-team-select{
	display:block;
	width:100%;
	max-width:100%;
	height:44px;
	min-height:44px;
	padding:0 12px;
	border:1px solid #0a1628;
	border-radius:8px;
	background:#fff;
	color:#0a1628;
	font-size:1rem;
	font-weight:700;
	line-height:44px;
	text-align:left;
	text-align-last:left;
	color-scheme:light;
	-webkit-appearance:none;
	appearance:none;
}
.vball-att-team-multi{
	display:flex;
	flex-wrap:wrap;
	justify-content:flex-start;
	gap:6px;
}
.vball-att-team-chip{
	display:inline-flex;
	align-items:center;
	justify-content:flex-start;
	gap:6px;
	height:36px;
	min-height:36px;
	padding:0 12px 0 8px;
	border:1px solid #c5ccd6;
	border-radius:999px;
	background:#f4f6f9;
	color:#0a1628;
	font-size:.85rem;
	font-weight:800;
	line-height:1;
	cursor:pointer;
	touch-action:manipulation;
	user-select:none;
	white-space:nowrap;
	overflow:hidden;
	box-sizing:border-box;
	text-align:left;
}
.vball-att-team-chip span{
	display:inline-flex;
	align-items:center;
	height:36px;
	color:#0a1628;
	font-size:.9rem;
	font-weight:800;
	line-height:36px;
	letter-spacing:0;
	margin:0;
	padding:0;
	text-align:left;
	transform:translateY(1px);
}
.vball-att-team-chip input{
	width:16px !important;
	min-width:16px !important;
	height:16px !important;
	min-height:16px !important;
	margin:0 !important;
	padding:0 !important;
	letter-spacing:0 !important;
	flex:0 0 16px;
	align-self:center;
	position:relative;
	top:1px;
	accent-color:#0a1628;
}
.vball-att-team-chip.is-on{
	background:#f5c518;
	border-color:#b8860b;
	color:#0a1628;
}
.vball-att-team-chip.is-on span{color:#0a1628}

@media (max-width:400px){
	.vball-att-row{flex-direction:row;flex-wrap:nowrap}
	.vball-att-name{font-size:1.12rem}
	.vball-att-mark{font-size:.68rem;padding:0 4px;min-height:40px;min-width:4.6em}
}

.vball-att-team-picker[data-filter="gym"] .vball-att-team-multi,.vball-att-team-picker[data-filter="gym"] .vball-att-team-chip{display:none}

/* Family extra photos — one column on phone, fat tap, bright fields */
.vball-family-gallery{margin:1.25rem 0}
.vball-family-gallery h2{margin:.25rem 0 .5rem}
.vball-family-gallery__thumbs{display:grid;grid-template-columns:1fr;gap:.75rem;margin:.75rem 0}
.vball-family-gallery figure{margin:0;background:#fff;border:1px solid #dcdcde;border-radius:12px;overflow:hidden}
.vball-family-gallery img{width:100%;height:180px;object-fit:cover;display:block;background:#0a1628}
.vball-family-gallery__remove{margin:0;padding:.65rem}
.vball-family-gallery__remove .vball-btn{width:100%;min-height:48px}
.vball-family-gallery__add input[type="file"]{
	display:block;width:100%;box-sizing:border-box;min-height:52px;margin-top:.35rem;
	padding:14px 16px;font-size:16px;background:#fff;color:#070b14;
	border:2px dashed #0a1628;border-radius:14px
}
.vball-family-gallery__add .vball-btn{min-height:48px;width:100%;max-width:20rem}
@media (min-width:700px){
	.vball-family-gallery__thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
	.vball-family-gallery__add .vball-btn{width:auto}
}
.vball-player-photos .vball-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}

.vball-team-tournaments .vball-entry h4{font-size:1.2rem;margin:.2rem 0 .35rem}
.vball-tourney-days-public,
.vball-tourney-matches{list-style:none;margin:.5rem 0 1rem;padding:0;display:grid;gap:10px}
.vball-tourney-day,
.vball-tourney-match{
	margin:0;padding:12px 14px;
	background:#fff;border:1px solid #e6eaf0;border-radius:12px
}
.vball-tourney-day p,
.vball-tourney-match p{margin:0 0 .25rem;font-size:1rem;line-height:1.35}
.vball-tourney-day__day,
.vball-tourney-match__when{font-weight:800}
.vball-tourney-lbl{display:inline-block;min-width:5.5rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#3c434a}
.vball-upcoming-tournament-itin .vball-tourney-days-public{margin:.4rem 0 0}
@media (min-width:900px){
	.vball-tourney-match{
		display:grid;
		grid-template-columns:6.5rem minmax(0,.9fr) minmax(0,1.2fr) minmax(0,.9fr);
		align-items:center;gap:12px
	}
	.vball-tourney-match:has(.vball-tourney-match__gym){
		grid-template-columns:6.5rem minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr) minmax(0,.8fr)
	}
	.vball-tourney-match p{margin:0}
	.vball-tourney-match__gym .vball-tourney-lbl,
	.vball-tourney-match__court .vball-tourney-lbl,
	.vball-tourney-match__opp .vball-tourney-lbl,
	.vball-tourney-match__pool .vball-tourney-lbl{display:none}
}

.vball-family-contact{margin:0 0 1.25rem;padding:1rem 1.05rem 1.1rem;background:#fff;border:1px solid #dcdcde;border-top:3px solid #0a1628;border-radius:16px}
.vball-family-contact h2{margin:.1rem 0 .4rem;color:#0a1628}
.vball-family-contact label{display:block;font-weight:700}
.vball-family-contact input{display:block;width:100%;box-sizing:border-box;min-height:52px;font-size:16px;padding:14px 16px;border:2px solid #c9d2dc;border-radius:14px;margin-top:.25rem;background:#fff;color:#0a1628}
.vball-family-contact .vball-addr-row{display:grid;grid-template-columns:1fr 4.5rem 7rem;gap:.6rem}
.vball-family-contact .vball-addr-row p{margin:0 0 16px}
.vball-family-contact .vball-btn{min-height:52px}
@media (max-width:720px){
	.vball-family-contact .vball-addr-row{grid-template-columns:1fr}
	.vball-family-contact .vball-btn{width:100%}
}

.vball-geo-checkin{margin:14px 0 0;padding:16px 16px 18px;background:#0a1628;color:#fff;border-radius:14px}
.vball-geo-checkin p{margin:0 0 10px;color:#fff;font-weight:700;font-size:1.05rem;line-height:1.35}
.vball-geo-checkin .vball-geo-door{margin:10px 0 0;color:#d7dde6;font-weight:600;font-size:.92rem}
.vball-geo-checkin .vball-geo-btn{
	display:block;width:100%;min-height:56px;padding:14px 18px;border:0;border-radius:12px;
	background:#fff;color:#0a1628;font-weight:800;font-size:1.12rem;cursor:pointer
}
.vball-geo-checkin .vball-geo-msg{margin:10px 0 0;font-weight:800}
.vball-geo-checkin.is-present{background:#0a7}
.vball-geo-checkin.is-busy .vball-geo-btn{opacity:.7}
@media (min-width:700px){
	.vball-geo-checkin .vball-geo-btn{max-width:22rem}
}

.vball-tourney-match.is-play{background:#fff;border:1px solid #e6eaf0}
.vball-tourney-match.is-ref,
.vball-tourney-matches .vball-tourney-match.is-ref{
	background:repeating-linear-gradient(-45deg,#f3e6c8 0 10px,#faf3e4 10px 20px);
	border:2px solid #8a5a18;color:#5a3a12
}
.vball-tourney-match__chip{
	display:inline-block;margin:0 0 .4rem;padding:.15rem .55rem;border-radius:4px;
	font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
	background:#8a5a18;color:#fff
}
.vball-tourney-match.is-ref .vball-tourney-match__when,
.vball-tourney-match.is-ref .vball-tourney-match__court,
.vball-tourney-match.is-ref .vball-tourney-match__opp{color:#5a3a12}
.vball-tourney-map{margin:.35rem 0 1rem}
.vball-tourney-map .vball-map-embed-wrap{max-width:560px}
@media (min-width:900px){
	.vball-tourney-match.is-ref{
		grid-template-columns:auto 6.5rem minmax(0,1.1fr) minmax(0,1.3fr)
	}
	.vball-tourney-match.is-ref .vball-tourney-match__chip{margin:0}
}


/* Family portal text fix 1.0.180 */
.vball-family-head{overflow:visible}
.vball-family-kicker{-webkit-text-stroke:0;position:static}
.vball-family-head h1{-webkit-text-stroke:0;position:relative;z-index:1;line-height:1.15}
.vball-tonight-home{color:#0a1628}
.vball-tonight-kicker{color:#0a1628}
.vball-billing-board .vball-note,
.vball-billing-board p.vball-note{
	max-width:100%;
	min-width:0;
	white-space:normal;
	overflow:visible;
	text-overflow:clip;
	overflow-wrap:anywhere;
	word-break:normal;
}

/* Family portal Style B landing (1.0.199) — metaphor cards, 4-across / 1-col */
.vball-family-hub{margin:0 0 1.25rem}
.vball-family-hub-kicker{
	margin:0 0 .25rem;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#646970
}
.vball-family-hub-lead{margin:0 0 .85rem;font-size:.95rem;color:#5c6b7a}
.vball-family-hub-grid.vball-desk-hub-grid,
.vball-family-hub-grid.vball-rpt-hub-grid,
.vball-family .vball-family-hub-grid{
	display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0
}
.vball-family-hub-grid .vball-desk-hub-card,
.vball-family-hub-grid .vball-rpt-hub-card,
.vball-family-hub-card{
	display:block;position:relative;overflow:hidden;padding:0;min-height:0;
	aspect-ratio:16 / 10;border:1px solid rgba(90,212,255,.32);background:#070b14;
	color:#e8eef7;text-decoration:none;border-radius:12px;
	box-shadow:0 10px 28px rgba(10,22,40,.18)
}
.vball-family-hub-grid .vball-desk-hub-card:hover,
.vball-family-hub-grid .vball-rpt-hub-card:hover,
.vball-family-hub-card:hover{
	border-color:#5ad4ff;box-shadow:0 0 0 1px rgba(90,212,255,.35) inset,0 14px 32px rgba(10,22,40,.28);
	transform:translateY(-2px)
}
.vball-family-hub-grid .vball-desk-hub-thumb,
.vball-family-hub-grid .vball-rpt-hub-thumb{display:block;position:absolute;inset:0;z-index:0}
.vball-family-hub-grid .vball-desk-hub-thumb img,
.vball-family-hub-grid .vball-rpt-hub-thumb img{
	display:block;width:100%;height:100%;object-fit:cover;object-position:center
}
.vball-family-hub-grid .vball-desk-hub-overlay,
.vball-family-hub-grid .vball-rpt-hub-overlay{
	position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;
	padding:16px 14px 14px;box-sizing:border-box;max-width:100%;overflow:hidden;
	background:linear-gradient(180deg,rgba(7,11,20,.2) 0%,rgba(7,11,20,.58) 40%,rgba(7,11,20,.95) 78%,#070b14 100%)
}
.vball-family-hub-grid .vball-desk-hub-card strong,
.vball-family-hub-grid .vball-rpt-hub-card strong{
	font:800 15px/1.2 "Arial Narrow",Impact,Arial,sans-serif;color:#fff;letter-spacing:.04em;
	text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.75);
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%
}
.vball-family-hub-grid .vball-desk-hub-blurb,
.vball-family-hub-grid .vball-rpt-hub-blurb{
	font:400 12px/1.4 Arial,sans-serif;color:#d7e6f4;opacity:1;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
	text-shadow:0 1px 6px rgba(0,0,0,.65);max-width:100%
}
@media (max-width:900px){
	.vball-family-hub-grid.vball-desk-hub-grid,
	.vball-family-hub-grid.vball-rpt-hub-grid,
	.vball-family .vball-family-hub-grid{grid-template-columns:1fr}
	.vball-family-hub-grid .vball-desk-hub-card,
	.vball-family-hub-grid .vball-rpt-hub-card{aspect-ratio:16 / 9;border-radius:14px}
}

/* Official Florida Region USAV medical consent (filled over real form image). */
.vball-fl-official{position:relative;width:8.5in;max-width:100%;height:11in;margin:0 auto;background:#fff;color:#000;overflow:hidden;box-sizing:border-box}
.vball-fl-official__sheet{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.vball-fl-official__fields{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.vball-fl-official__fields--bot{/* bottom duplicate uses same % + 50.06% offset via field tops */}
.vball-fl-official__f{position:absolute;display:flex;align-items:flex-end;margin:0;padding:0 2px 1px;box-sizing:border-box;color:#000;font:700 10.5pt Helvetica,Arial,sans-serif;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vball-fl-official__sigimg{display:block;max-width:100%;max-height:36px;width:auto;height:auto;object-fit:contain;-webkit-print-color-adjust:exact;print-color-adjust:exact}
/* Coordinates from Florida Medical Treatment Consent Form-July 2021 (612×792 pt). */
.vball-fl-official__fields--top .is-athlete{left:29.46%;top:21.9%;width:60.5%;height:2.1%}
.vball-fl-official__fields--top .is-dob{left:20%;top:25.9%;width:27.2%;height:2.1%}
.vball-fl-official__fields--top .is-cell{left:58.6%;top:25.9%;width:31.2%;height:2.1%}
.vball-fl-official__fields--top .is-guardian{left:32.9%;top:35.2%;width:55.6%;height:2.1%}
.vball-fl-official__fields--top .is-gcell{left:14.1%;top:38.85%;width:25.3%;height:2.1%}
.vball-fl-official__fields--top .is-rel{left:65.5%;top:38.85%;width:23.4%;height:2.1%}
.vball-fl-official__fields--top .is-sig{left:17.4%;top:41.9%;width:41%;height:3.2%;align-items:center}
.vball-fl-official__fields--top .is-date{left:64.5%;top:42.5%;width:24.4%;height:2.1%}
/* Bottom half offset ≈ 396.48/792 = 50.06% */
.vball-fl-official__fields--bot .is-athlete{left:29.46%;top:72%;width:60.5%;height:2.1%}
.vball-fl-official__fields--bot .is-dob{left:20%;top:75.96%;width:27.2%;height:2.1%}
.vball-fl-official__fields--bot .is-cell{left:58.6%;top:75.96%;width:31.2%;height:2.1%}
.vball-fl-official__fields--bot .is-guardian{left:32.9%;top:85.26%;width:55.6%;height:2.1%}
.vball-fl-official__fields--bot .is-gcell{left:14.1%;top:88.91%;width:25.3%;height:2.1%}
.vball-fl-official__fields--bot .is-rel{left:65.5%;top:88.91%;width:23.4%;height:2.1%}
.vball-fl-official__fields--bot .is-sig{left:17.4%;top:91.96%;width:41%;height:3.2%;align-items:center}
.vball-fl-official__fields--bot .is-date{left:64.5%;top:92.56%;width:24.4%;height:2.1%}
@media print{
	.vball-fl-official{width:8.5in;max-width:8.5in;height:11in;margin:0;page-break-inside:avoid;break-inside:avoid}
	.vball-fl-official__sheet,.vball-fl-official__sigimg{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* —— Coach Tonight day hub + session (tokenized attendance) —— */
.vball-day-hub,
.vball-day-session{
	max-width:480px;
	margin:0 auto;
	padding:12px 12px calc(16px + env(safe-area-inset-bottom,0px));
	color:#e8edf4;
	background:transparent;
	border:0;
	box-shadow:none;
}
.vball-day-hub__head{margin:0 0 14px}
.vball-day-hub__title-row,
.vball-day-session__title-row{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
}
.vball-day-hub__title,
.vball-day-session__title{
	margin:0;
	font:800 1.75rem/1.1 "Arial Narrow",Impact,system-ui,sans-serif;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:#e8edf4;
}
.vball-day-hub__badge{
	display:inline-flex;
	align-items:center;
	min-height:24px;
	padding:0 10px;
	border:1px solid rgba(90,212,255,.45);
	border-radius:999px;
	font:800 .68rem/1 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.08em;
	color:#5ad4ff;
}
.vball-day-hub__date{
	margin:6px 0 0;
	font-size:.9rem;
	opacity:.7;
}
.vball-day-hub__taker{
	display:flex;
	flex-direction:column;
	gap:6px;
	margin:0 0 14px;
	padding:10px 12px;
	border:1px solid rgba(90,212,255,.22);
	border-radius:10px;
	background:rgba(7,11,20,.55);
}
.vball-day-hub__taker label{
	font:800 .68rem/1.2 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:rgba(232,237,244,.7);
}
.vball-day-hub__taker-select{
	min-height:44px;
	width:100%;
	padding:8px 10px;
	border:1px solid rgba(90,212,255,.35);
	border-radius:8px;
	background:#0a1628;
	color:#e8edf4;
	font-weight:700;
}
.vball-day-hub__cards{display:flex;flex-direction:column;gap:10px}
.vball-day-hub__card{
	padding:12px;
	border:1px solid rgba(90,212,255,.28);
	border-radius:12px;
	background:rgba(10,22,40,.78);
}
.vball-day-hub__card.is-live{border-color:rgba(255,90,106,.55)}
.vball-day-hub__card-top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	margin:0 0 8px;
}
.vball-day-hub__chip{
	display:inline-flex;
	align-items:center;
	min-height:22px;
	padding:0 8px;
	border:1px solid rgba(232,237,244,.25);
	border-radius:6px;
	font:800 .62rem/1 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.08em;
	color:rgba(232,237,244,.85);
}
.vball-day-hub__chip.is-practice.is-on,
.vball-day-hub__chip.is-practice{border-color:rgba(90,212,255,.55);color:#5ad4ff}
.vball-day-hub__chip.is-film.is-on,
.vball-day-hub__chip.is-film{border-color:rgba(245,197,24,.55);color:#f5c518}
.vball-day-hub__chip.is-open.is-on,
.vball-day-hub__chip.is-open{border-color:rgba(167,139,250,.55);color:#c4b5fd}
.vball-day-hub__live{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font:800 .68rem/1 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.08em;
	color:#ff8a96;
}
.vball-day-hub__live b{
	width:8px;height:8px;border-radius:50%;
	background:#ff5a6a;
	box-shadow:0 0 0 3px rgba(255,90,106,.25);
}
.vball-day-hub__card-title{
	margin:0 0 4px;
	font:800 1.15rem/1.2 system-ui,sans-serif;
	color:#e8edf4;
}
.vball-day-hub__card-meta,
.vball-day-hub__card-stat{
	margin:0 0 4px;
	font-size:.85rem;
	opacity:.72;
}
.vball-day-hub__open{
	display:flex;
	align-items:center;
	justify-content:center;
	margin-top:10px;
	min-height:44px;
	padding:0 14px;
	border-radius:8px;
	background:#070b14;
	border:1px solid rgba(90,212,255,.35);
	color:#e8edf4 !important;
	font:800 .9rem/1 system-ui,sans-serif;
	text-decoration:none !important;
	text-align:center;
}
.vball-day-hub__open:hover{border-color:#5ad4ff;color:#fff !important}
.vball-day-hub__empty{opacity:.75}

.vball-day-session__crumbs{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	align-items:center;
	margin:0 0 10px;
	font:800 .68rem/1.2 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.06em;
	text-transform:uppercase;
	color:rgba(232,237,244,.65);
}
.vball-day-session__crumbs a{color:#5ad4ff;text-decoration:none}
.vball-day-session__head{margin:0 0 12px}
.vball-day-session__chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.vball-day-session__token{
	display:grid;
	grid-template-columns:1fr auto;
	gap:4px 12px;
	align-items:center;
	margin:0 0 12px;
	padding:10px 12px;
	border:1px solid rgba(90,212,255,.28);
	border-radius:10px;
	background:rgba(7,11,20,.55);
}
.vball-day-session__token-lab{
	font:800 .62rem/1 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.08em;
	text-transform:uppercase;
	opacity:.7;
}
.vball-day-session__token-code{
	grid-row:span 2;
	font:800 1.35rem/1 ui-monospace,Menlo,monospace;
	letter-spacing:.12em;
	color:#5ad4ff;
}
.vball-day-session__token-meta{font-size:.8rem;opacity:.7}
.vball-day-session__find{margin:0 0 10px}
.vball-day-session__find-input{
	width:100%;
	min-height:44px;
	padding:8px 12px;
	border:1px solid rgba(90,212,255,.3);
	border-radius:8px;
	background:#0a1628;
	color:#e8edf4;
	font-size:1rem;
}
.vball-day-session .vball-att-list{
	background:rgba(255,255,255,.96);
	border-color:rgba(90,212,255,.2);
}
.vball-day-session__footer{
	display:flex;
	flex-direction:column;
	gap:8px;
	margin:12px 0 0;
}
.vball-day-session__lock,
.vball-day-session__next{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:0 14px;
	border-radius:8px;
	font:800 .9rem/1 system-ui,sans-serif;
	text-decoration:none !important;
	text-align:center;
	cursor:pointer;
}
.vball-day-session__lock{
	background:transparent;
	border:1px solid rgba(255,90,106,.55);
	color:#ff8a96;
}
.vball-day-session__next{
	background:#070b14;
	border:1px solid rgba(90,212,255,.35);
	color:#e8edf4 !important;
}
.vball-day-session__next.is-muted{opacity:.75}

.vball-att-mark[data-status="late"]{background:#ffe9a3;border-color:#c9a227;color:#0a1628}
.vball-att-mark[data-status="late"].is-on{background:#f5c518;border-color:#b8860b;color:#0a1628}
.vball-att-row.is-blocked .vball-att-mark[data-status="late"]{opacity:.38;cursor:not-allowed}
@media (max-width:420px){
	.vball-att-marks{max-width:68%}
	.vball-att-mark{min-width:0;font-size:.62rem;padding:0 3px}
}


/* 1.0.317 — stats-card post-submit confirmation readable on light paper */
.vball-token-card.vball-stats-card,
.vball-token-card.vball-stats-card[data-just-saved]{
	color:#0a1628;
}
.vball-token-card.vball-stats-card .vball-form-saved,
.vball-token-card.vball-stats-card .vball-form-saved strong,
.vball-stats-card .vball-form-saved,
.vball-stats-card .vball-form-saved *{
	background:#d8f3e4;
	border-color:#1e6b3c;
	color:#0a1628;
}
.vball-stats-card .vball-form-saved{border:2px solid #1e6b3c}
.vball-stats-confirm{
	margin:.35rem 0 .2rem;
}
.vball-stats-card .vball-day-line,
.vball-token-card.vball-stats-card .vball-day-line{
	display:block;
	background:#fff;
	border:1px solid #b7c4d0;
	border-radius:12px;
	padding:.7rem .85rem;
	color:#0a1628;
	font-weight:750;
	font-size:.95rem;
	line-height:1.45;
}
.vball-token-card.vball-stats-card .vball-note,
.vball-token-card.vball-stats-card .vball-token-meta,
.vball-token-card.vball-stats-card .vball-count-hint,
.vball-stats-card .vball-stats-confirm,
.vball-stats-card .vball-stats-confirm p,
.vball-stats-card .vball-note{
	color:#1a2433;
}
.vball-token-card.vball-stats-card .vball-calc-kicker,
.vball-token-card.vball-stats-card .vball-calc-kicker-during,
.vball-token-card.vball-stats-card .vball-calc-kicker-after,
.vball-stats-card .vball-calc-rates,
.vball-stats-card .vball-calc-list li{
	color:#0a1628;
}
.vball-stats-card .vball-calc-kicker,
.vball-stats-card .vball-calc-kicker-during,
.vball-stats-card .vball-calc-kicker-after{
	color:#0b4846;
}

/* 1.0.325 College recruiting question — grid + progression */
.vball-want-college--grid{
	margin:1rem 0;padding:14px 16px;
	background:rgba(10,18,32,.92);border:1px solid rgba(90,212,255,.35);
	color:#e8edf4;border-radius:0;
}
.vball-want-college__head{
	display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 16px;
	margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid rgba(90,212,255,.28);
}
.vball-want-college__head h3{
	margin:0;color:#5ad4ff;
	font:800 13px/1.2 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.1em;text-transform:uppercase;
}
.vball-want-college__q{margin:0 0 12px;padding:0;border:0;min-width:0}
.vball-want-college__q legend{
	padding:0;margin:0 0 8px;color:rgba(232,237,244,.85);font-weight:700;font-size:14px;
}
.vball-want-college__opts{
	display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:22rem;
}
.vball-want-college__opt{
	display:flex;align-items:center;justify-content:center;gap:8px;
	min-height:44px;margin:0;padding:8px 12px;
	background:rgba(8,14,26,.75);border:1px solid rgba(90,212,255,.4);
	cursor:pointer;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:12px;
}
.vball-want-college__opt:has(input:checked),
.vball-want-college__opt:has(input:checked) span{
	background:#5ad4ff;color:#070b14;border-color:transparent;
}
.vball-want-college__grid{
	display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;
}
.vball-want-college__cell{
	display:flex;flex-direction:column;gap:4px;margin:0;
	font:800 11px/1.2 "Arial Narrow",Impact,sans-serif;
	letter-spacing:.06em;text-transform:uppercase;color:rgba(232,237,244,.65);
}
.vball-want-college__cell input[type=text],
.vball-want-college__cell input:not([type]){
	min-height:40px;padding:8px 10px;border:1px solid rgba(90,212,255,.4);
	background:#0a1424;color:#e8edf4;border-radius:0;font:600 14px/1.2 system-ui,sans-serif;
	text-transform:none;letter-spacing:0;
}
.vball-want-college__cell--check{
	flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-weight:600;font-size:14px;color:#e8edf4;
}
.vball-want-college__cell--divs{grid-column:1/-1}
.vball-want-college__divs{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.vball-want-college__divs label{
	display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 10px;
	background:rgba(8,14,26,.7);border:1px solid rgba(90,212,255,.35);
	font:700 12px/1 system-ui,sans-serif;color:#e8edf4;text-transform:none;letter-spacing:0;
}
.vball-want-college .vball-recruit-prog{min-width:160px;flex:1;max-width:280px}
.vball-want-college .vball-recruit-prog__meta{
	display:flex;justify-content:space-between;gap:8px;
	font:800 10px/1.2 "Arial Narrow",Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:rgba(232,237,244,.7);
}
.vball-want-college .vball-recruit-prog__meta b{color:#5ad4ff}
.vball-want-college .vball-recruit-prog__track{height:8px;background:rgba(0,0,0,.35);border:1px solid rgba(90,212,255,.28);overflow:hidden}
.vball-want-college .vball-recruit-prog__track i{display:block;height:100%;background:linear-gradient(90deg,#3d8b6e,#5ad4ff)}
.vball-want-college .vball-note{color:rgba(232,237,244,.7);font-size:12px;margin:.5rem 0 0}
@media (max-width:640px){
	.vball-want-college__opts,
	.vball-want-college__grid{grid-template-columns:1fr}
}


/* === Family portal locks 1–9: locked sidebar + mobile bottom + hold banner === */
.vball-family-sidebar{
	display:flex;flex-wrap:wrap;gap:.35rem .45rem;
	margin:0 0 1rem;padding:.65rem .75rem;
	background:#0a1628;border:1px solid #1e2f48;border-radius:14px;
}
.vball-family-sidebar .vball-family-nav__link,
.vball-family-sidebar .family-nav__item{
	display:inline-flex;align-items:center;justify-content:center;
	min-height:40px;padding:.4rem .7rem;border-radius:999px;
	background:#14233a;color:#e8eef7!important;border:1px solid #2a3f5c;
	font-size:.82rem;font-weight:700;letter-spacing:.02em;text-decoration:none!important;
}
.vball-family-sidebar .vball-family-nav__link:hover,
.vball-family-sidebar .family-nav__item:hover{background:#1b3050;color:#fff!important}
.vball-family-sidebar .vball-family-nav__link.is-on,
.vball-family-sidebar .family-nav__item.is-on{
	background:#5ad4ff;color:#0a1628!important;border-color:#5ad4ff;
}
.vball-family-bottom{display:none}
.vball-account-on-hold{
	margin:0 0 1rem;padding:.85rem 1.1rem;border-radius:12px;
	background:#0a1628;color:#ffe08a;border:2px solid #f0b429;
	font-size:1rem;line-height:1.35;
}
.vball-account-on-hold strong{color:#ffe08a;font-weight:800}
.vball-family-messages{background:#0f1c2e;border:1px solid #2a3f5c;color:#e8eef7}
.vball-family-messages h2,.vball-family-messages p,.vball-family-messages strong{color:#e8eef7}
.vball-family-messages__list{list-style:none;margin:.75rem 0 0;padding:0}
.vball-family-messages__item{padding:.75rem 0;border-top:1px solid #2a3f5c}
.vball-family-messages .vball-note{color:rgba(232,238,247,.7)}
@media (max-width:720px){
	.vball-family-sidebar{display:none!important}
	.vball-family-bottom{
		display:flex!important;position:fixed;left:0;right:0;bottom:0;z-index:1200;
		flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
		gap:.25rem;padding:.45rem .5rem calc(.45rem + env(safe-area-inset-bottom,0));
		background:#0a1628;border-top:1px solid #2a3f5c;box-shadow:0 -6px 20px rgba(0,0,0,.35);
	}
	.vball-family-bottom .vball-family-nav__link{
		flex:0 0 auto;min-width:4.6rem;min-height:44px;padding:.35rem .55rem;
		border-radius:10px;background:#14233a;color:#e8eef7!important;
		border:1px solid #2a3f5c;font-size:.72rem;font-weight:700;text-align:center;text-decoration:none!important;
	}
	.vball-family-bottom .vball-family-nav__link.is-on{background:#5ad4ff;color:#0a1628!important;border-color:#5ad4ff}
	.vball-family{padding-bottom:5.5rem}
}

/* Family Billing desk */
.vball-billing-desk{background:#0f1c2e;color:#e8eef7;border:1px solid #2a3f5c;border-radius:16px;padding:1rem 1.1rem;margin:0 0 1.25rem}
.vball-billing-desk h2,.vball-billing-desk h3{color:#e8eef7;margin:.25rem 0 .5rem}
.vball-billing-desk .vball-note,.vball-billing-desk .vball-match-meta{color:rgba(232,238,247,.7)}
.vball-bill-desk-block{margin:1.1rem 0;padding-top:.75rem;border-top:1px solid #2a3f5c}
.vball-bill-card-row,.vball-bill-line{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid #24344d}
.vball-bill-card-meta{display:flex;flex-wrap:wrap;gap:.4rem .65rem;align-items:center}
.vball-bill-card-actions{display:flex;flex-wrap:wrap;gap:.35rem}
.vball-billing-desk .vball-btn{min-height:44px}
.vball-bill-next{font-weight:700;color:#5ad4ff;margin:.25rem 0 .75rem}
.vball-billing-desk .vball-bill-kid{background:#14233a;border:1px solid #2a3f5c;color:#e8eef7}


/* v417 kill horizontal pills — family-portal.css owns left rail */
body.is-family-app.is-hud .vball-family-sidebar:not(.vball-fp-rail){display:none!important}
body.is-family-app.is-hud .family-nav.vball-family-sidebar{display:none!important}
