/* Family Portal 1.0.428 — locked navy/cyan chrome. No cream/mint/pastel. */
:root{
	--fp-bg:#0b1220;
	--fp-card:rgba(15,23,42,.88);
	--fp-border:#1e293b;
	--fp-accent:#22d3ee;
	--fp-text:#fff;
	--fp-muted:#e5e7eb;
	--fp-rail:240px;
}
html:has(body.is-family-app),
body.is-family-app,
body.is-family-app.is-hud,
body.vball-family,
body.is-family-app .site,
body.is-family-app #page,
body.is-family-app .site-main,
body.is-family-app .vball-fp-bare{
	background:var(--fp-bg)!important;
	color:var(--fp-text)!important;
}
body.is-family-app.is-hud .site-header,
body.is-family-app.is-hud .site-footer,
body.is-family-app.is-hud .announcement-bar,
body.is-family-app.is-hud .urgent-bar,
body.is-family-app.is-hud .header-support,
body.is-family-app.is-hud .synergy-hq-bubble,
body.is-family-app.is-hud .vball-support-bubble,
body.is-family-app.is-hud #wpadminbar{
	display:none!important;
}
body.is-family-app.admin-bar,
html.wp-toolbar body.is-family-app{padding-top:0!important;}

/* Kill legacy cream/progress widgets if any PHP still emits them */
body.is-family-app .vball-family-progress,
body.is-family-app .vball-prog,
body.is-family-app .vball-prog-kpi,
body.is-family-app .vball-ia-statusbar,
body.is-family-app .vball-ia-child,
body.is-family-app .vball-tonight-card,
body.is-family-app .vball-family-status.is-block{
	display:none!important;
}

.vball-fp-topbar{
	grid-column:1 / -1;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	padding:.65rem 1.25rem;
	background:#0b1220;
	border-bottom:1px solid var(--fp-border);
}
.vball-fp-topbar__brand{font-weight:700;letter-spacing:.04em;color:var(--fp-text);font-size:.85rem;}
.vball-fp-topbar__right{display:flex;align-items:center;gap:1rem;}
.vball-fp-topbar__who{color:var(--fp-muted);font-size:.85rem;}
.vball-fp-topbar__out{color:var(--fp-accent);text-decoration:none;font-size:.85rem;}

.vball-fp-shell{
	display:grid;
	grid-template-columns:var(--fp-rail) minmax(0,1fr);
	grid-template-rows:auto 1fr;
	min-height:100vh;
	background:var(--fp-bg);
	color:var(--fp-text);
	max-width:100%;
}
.vball-fp-rail{
	grid-row:2;
	position:sticky;
	top:0;
	align-self:start;
	height:calc(100vh - 48px);
	overflow:auto;
	width:var(--fp-rail);
	background:#0b1220;
	border-right:1px solid var(--fp-border);
	padding:1rem 0 2rem;
}
.vball-fp-rail__brand{
	padding:0 1.1rem 1.25rem;
	font-weight:800;
	letter-spacing:.06em;
	font-size:.8rem;
	color:#fff;
}
.vball-fp-rail__brand span{
	display:block;
	margin-top:.35rem;
	font-weight:500;
	letter-spacing:0;
	font-size:.72rem;
	color:var(--fp-accent);
	text-transform:none;
}
.vball-fp-rail__nav{display:flex;flex-direction:column;gap:.15rem;padding:0 .5rem;}
.vball-fp-rail__link{
	display:flex;align-items:center;gap:.7rem;
	padding:.65rem .75rem;
	border-radius:8px;
	color:var(--fp-muted);
	text-decoration:none;
	border-left:3px solid transparent;
	font-size:.92rem;
}
.vball-fp-rail__link svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;}
.vball-fp-rail__link.is-on{
	color:var(--fp-accent);
	background:rgba(34,211,238,.08);
	border-left-color:var(--fp-accent);
}
.vball-fp-rail__ico{display:inline-flex;}
.vball-family-bottom{display:none;}

.vball-fp-main{
	grid-row:2;
	min-width:0;
	padding:1.25rem 1.5rem 3rem;
	background:var(--fp-bg);
	color:var(--fp-text);
}
.vball-fp-canvas{max-width:1100px;}
.vball-fp-title{
	margin:0 0 .35rem;
	font-size:1.85rem;
	font-weight:800;
	letter-spacing:.02em;
	color:#fff;
}
.vball-fp-pagehead{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;}
.vball-fp-pagehead--spread{justify-content:space-between;}
.vball-fp-shield{color:var(--fp-accent);display:inline-flex;}
.vball-fp-crumb{margin:0;color:var(--fp-accent);font-size:.9rem;}
.vball-fp-kicker{
	margin:0 0 .5rem;
	font-size:.72rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--fp-accent);
	font-weight:700;
}
.vball-fp-muted{color:var(--fp-muted);font-size:.92rem;}
.vball-fp-accent{color:var(--fp-accent);}
.vball-fp-notice{color:#fff;background:var(--fp-card);border:1px solid var(--fp-border);padding:.75rem 1rem;border-radius:8px;}
.vball-fp-card{
	background:var(--fp-card);
	border:1px solid var(--fp-border);
	border-radius:10px;
	padding:1.1rem 1.2rem;
	margin-bottom:1rem;
	color:#fff;
}
.vball-fp-card-title{margin:0 0 .75rem;font-size:1.15rem;}
.vball-fp-home-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem;
	margin-bottom:1rem;
}
@media (max-width:900px){
	.vball-fp-shell{grid-template-columns:1fr;}
	.vball-fp-rail{position:relative;height:auto;width:100%;border-right:0;border-bottom:1px solid var(--fp-border);}
	.vball-fp-home-grid{grid-template-columns:1fr;}
	.vball-family-bottom{
		display:flex;flex-wrap:wrap;gap:.35rem;padding:.5rem;
		position:sticky;bottom:0;background:#0b1220;border-top:1px solid var(--fp-border);z-index:20;
	}
	.vball-family-bottom a{color:var(--fp-muted);text-decoration:none;font-size:.75rem;padding:.4rem .55rem;border-radius:6px;}
	.vball-family-bottom a.is-on{color:var(--fp-accent);background:rgba(34,211,238,.1);}
}

.vball-fp-chip{
	display:inline-block;
	padding:.2rem .55rem;
	border-radius:999px;
	background:rgba(34,211,238,.15);
	color:var(--fp-accent);
	font-size:.78rem;
	font-weight:700;
	margin-right:.35rem;
}
.vball-fp-chip.is-ghost{background:transparent;border:1px solid var(--fp-border);color:var(--fp-muted);}
.vball-fp-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:6px;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.vball-fp-badge.is-paid{background:rgba(34,197,94,.18);color:#4ade80;border:1px solid rgba(34,197,94,.35);}
.vball-fp-badge.is-due{background:rgba(59,130,246,.15);color:#93c5fd;border:1px solid rgba(59,130,246,.35);}

.vball-fp-player-card{display:flex;gap:1rem;align-items:center;}
.vball-fp-player-card__photo img,.vball-fp-avatar{
	width:72px;height:72px;border-radius:12px;object-fit:cover;
	background:var(--fp-border);display:inline-flex;align-items:center;justify-content:center;
	font-size:1.5rem;font-weight:800;color:var(--fp-accent);
}
.vball-fp-player-card__name{margin:0 0 .35rem;font-size:1.35rem;}
.vball-fp-team-chip{font-size:1.2rem;font-weight:700;margin:.25rem 0;}
.vball-fp-mini-bill{display:flex;align-items:center;gap:.6rem;margin-top:.75rem;flex-wrap:wrap;}
.vball-fp-link{color:var(--fp-accent);text-decoration:none;}

.vball-fp-table{width:100%;border-collapse:collapse;}
.vball-fp-table th,.vball-fp-table td{
	padding:.65rem .25rem;border-bottom:1px solid var(--fp-border);
	text-align:left;color:#fff;font-size:.95rem;
}
.vball-fp-table th{color:var(--fp-muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;}
.vball-fp-table .is-right, .vball-fp-table th.is-right, .vball-fp-table td.is-right{text-align:right;}

.vball-fp-info-card__val{margin:.15rem 0 .35rem;font-size:1.35rem;font-weight:700;}
.vball-fp-practice-list{list-style:none;margin:0;padding:0;}
.vball-fp-practice-list li{
	display:flex;justify-content:space-between;gap:1rem;
	padding:.55rem 0;border-bottom:1px solid var(--fp-border);
}

/* Tracker — cyan checks only */
.vball-fp-tracker{margin:0 0 1.25rem;overflow-x:auto;}
.vball-fp-tracker__steps{
	display:flex;gap:.35rem;list-style:none;margin:0;padding:0;min-width:max-content;
}
.vball-fp-tracker__step{
	display:flex;align-items:center;gap:.35rem;
	padding:.45rem .7rem;border-radius:999px;
	border:1px solid var(--fp-border);color:var(--fp-muted);font-size:.8rem;
}
.vball-fp-tracker__step.is-done{color:var(--fp-accent);border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.08);}
.vball-fp-tracker__step.is-current{color:#fff;border-color:var(--fp-accent);}
.vball-fp-tracker__mark{color:var(--fp-accent);font-weight:800;}

/* Calendar week grid */
.vball-fp-cal-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin:0 0 1rem;}
.vball-fp-cal-nav__btn{
	display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;
	border:1px solid var(--fp-border);border-radius:6px;color:#fff;text-decoration:none;background:var(--fp-card);
}
.vball-fp-cal-nav__range{font-weight:600;color:#fff;}
.vball-fp-week{
	display:grid;
	grid-template-columns:72px repeat(7,minmax(0,1fr));
	grid-template-rows:auto 1fr;
	border:1px solid var(--fp-border);
	border-radius:10px;
	overflow:hidden;
	background:var(--fp-card);
	min-height:420px;
}
.vball-fp-week__corner{border-bottom:1px solid var(--fp-border);background:#0b1220;}
.vball-fp-week__dayhead{
	padding:.55rem .35rem;text-align:center;font-size:.72rem;letter-spacing:.04em;
	color:var(--fp-muted);border-bottom:1px solid var(--fp-border);border-left:1px solid var(--fp-border);
	background:#0b1220;
}
.vball-fp-week__hours{
	display:grid;grid-template-rows:repeat(6,1fr);
	border-right:1px solid var(--fp-border);min-height:360px;
}
.vball-fp-week__hour{
	padding:.35rem .4rem;font-size:.68rem;color:var(--fp-muted);
	border-bottom:1px solid rgba(30,58,95,.55);
}
.vball-fp-week__col{
	position:relative;min-height:360px;border-left:1px solid var(--fp-border);
	background-image:linear-gradient(to bottom, transparent 0, transparent calc(100%/6 - 1px), rgba(30,58,95,.55) calc(100%/6));
	background-size:100% calc(100%/6);
}
.vball-fp-event{
	position:absolute;left:4px;right:4px;
	border-radius:8px;padding:.4rem .45rem;overflow:hidden;
	background:rgba(34,211,238,.92);color:#0b1220;
	box-shadow:0 0 0 1px rgba(34,211,238,.35);
	font-size:.72rem;line-height:1.25;
}
.vball-fp-event.is-scrimmage{background:rgba(59,130,246,.92);color:#fff;}
.vball-fp-event__time{margin:0;font-weight:700;}
.vball-fp-event__court,.vball-fp-event__gym{margin:0;opacity:.9;}
.vball-fp-event__title{margin:.15rem 0 0;font-weight:800;}
.vball-fp-cal-foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.85rem;align-items:center;}
.vball-fp-cal-legend{display:flex;align-items:center;gap:.5rem;color:var(--fp-muted);font-size:.85rem;}
.vball-fp-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--fp-accent);}
.vball-fp-legend-swatch.is-scrimmage{background:#3b82f6;}
.vball-fp-info-i{
	display:inline-flex;width:1rem;height:1rem;align-items:center;justify-content:center;
	border:1px solid var(--fp-border);border-radius:50%;font-size:.7rem;margin-right:.35rem;color:var(--fp-accent);
}

/* Billing board dark tokens */
body.is-family-app #vball-billing,
body.is-family-app .vball-billing-board,
body.is-family-app .vball-bill-desk-block,
body.is-family-app .vball-bill-card-row,
body.is-family-app .vball-bill-kid,
body.is-family-app .vball-bill-line{
	background:var(--fp-card)!important;
	color:#fff!important;
	border-color:var(--fp-border)!important;
}
body.is-family-app .vball-billing-board h2,
body.is-family-app .vball-billing-board h3,
body.is-family-app .vball-bill-kicker,
body.is-family-app .vball-bill-next{color:#fff!important;}
body.is-family-app .vball-note{color:var(--fp-muted)!important;}
/* Family action buttons — 8px only (kill theme HUD pills). Chips stay rounded-full. */
body.is-family-app .vball-btn,
body.is-family-app a.vball-btn,
body.is-family-app button.vball-btn,
body.is-family-app .vball-btn-volt,
body.is-family-app .vball-btn-tap,
body.is-hud.is-family-app .vball-btn,
body.is-hud.is-family-app a.vball-btn,
body.is-hud.is-family-app button.vball-btn,
body.is-hud.is-family-app .vball-btn-volt,
body.is-hud.is-family-app .vball-btn-tap{
	background:#22d3ee!important;
	color:#0b1220!important;
	-webkit-text-fill-color:#0b1220!important;
	border:1px solid #22d3ee!important;
	border-radius:8px!important;
	padding:10px 16px!important;
	min-height:0!important;
	height:auto!important;
	font-size:13px!important;
	font-weight:700!important;
	letter-spacing:0!important;
	text-transform:none!important;
	line-height:1.2!important;
	cursor:pointer;
	text-decoration:none;
	display:inline-flex!important;
	align-items:center;
	justify-content:center;
	gap:.35rem;
	box-sizing:border-box;
	box-shadow:none!important;
}
body.is-family-app .vball-btn-ghost,
body.is-family-app a.vball-btn.vball-btn-ghost,
body.is-family-app button.vball-btn.vball-btn-ghost,
body.is-hud.is-family-app .vball-btn-ghost,
body.is-hud.is-family-app a.vball-btn.vball-btn-ghost,
body.is-hud.is-family-app button.vball-btn.vball-btn-ghost,
body.is-hud.is-family-app .vball-back{
	background:transparent!important;
	color:#22d3ee!important;
	-webkit-text-fill-color:#22d3ee!important;
	border:1px solid #22d3ee!important;
	border-radius:8px!important;
	padding:10px 16px!important;
	min-height:0!important;
	height:auto!important;
	font-size:13px!important;
	font-weight:700!important;
	letter-spacing:0!important;
	text-transform:none!important;
	box-shadow:none!important;
}
body.is-family-app .vball-btn:disabled,
body.is-family-app .vball-btn[disabled],
body.is-family-app button.vball-btn-ghost:disabled{
	opacity:.4!important;cursor:not-allowed;
}
body.is-family-app .vball-btn-compact{padding:8px 12px!important;font-size:13px!important;}
body.is-family-app .vball-btn-block{display:flex!important;width:100%;box-sizing:border-box;}
body.is-family-app .vball-fp-actions--block{margin-top:.85rem;}
/* Explicit kill-switch for any leftover stadium radii on family buttons */
body.is-family-app .vball-btn.btn-pill,
body.is-family-app .vball-btn.rounded-full,
body.is-family-app .vball-btn.pill,
body.is-hud.is-family-app button.vball-btn,
body.is-hud.is-family-app a.vball-btn{
	border-radius:8px!important;
}

body.is-family-app .vball-family-status.is-ok,
body.is-family-app .vball-family-status.is-paid{background:rgba(34,197,94,.2);color:#4ade80;border:0;}

/* Uniforms */
.vball-fp-uni-summary{display:flex;gap:1.25rem;align-items:center;}
.vball-fp-uni-jersey{
	width:110px;height:130px;border-radius:12px;
	background:#0b1220;
	border:1px solid var(--fp-border);
	display:flex;align-items:center;justify-content:center;
	padding:.35rem;overflow:hidden;
}
.vball-fp-uni-jersey__img{width:100%;height:100%;object-fit:contain;display:block;}
.vball-fp-uni-jersey__img.is-photo{object-fit:cover;border-radius:10px;}
.vball-fp-uni-jersey__name{font-size:.65rem;letter-spacing:.04em;color:var(--fp-accent);font-weight:700;}
.vball-fp-uni-jersey__num{font-size:1.8rem;font-weight:800;color:#fff;}
body.is-family-app .vball-gear-board,
body.is-family-app .vball-family-uniform,
body.is-family-app .vball-gear-line{
	background:transparent!important;color:#fff!important;border-color:var(--fp-border)!important;
}
body.is-family-app .vball-gear-line{
	display:flex;justify-content:space-between;gap:1rem;
	padding:.65rem 0;border-bottom:1px solid var(--fp-border);
}
body.is-family-app .vball-gear-line em.is-ordered{color:#4ade80;font-style:normal;font-weight:700;}
body.is-family-app .vball-gear-line em.is-assigned,
body.is-family-app .vball-gear-line em.is-received{color:var(--fp-accent);font-style:normal;}
body.is-family-app .vball-family-uniform input,
body.is-family-app .vball-family-uniform select,
body.is-family-app .vball-fp-form input,
body.is-family-app .vball-fp-input,
body.is-family-app.scheme-dark .vball-fp-form input,
body.is-family-app.scheme-dark .vball-fp-input,
body.is-family-app .vball-family .vball-fp-form input,
body.is-family-app .scheme-dark .vball-fp-form input{
	background:#0b1220!important;color:#fff!important;border:1px solid var(--fp-border)!important;border-radius:8px;padding:.55rem .7rem;width:100%;max-width:320px;
	-webkit-appearance:none;appearance:none;
}
body.is-family-app .vball-fp-form label,
body.is-family-app .vball-fp-field-lab{
	display:block;margin-bottom:.35rem;color:var(--fp-accent)!important;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}
body.is-family-app .vball-fp-input::placeholder{color:#6b7c93;opacity:1;}

.vball-account-on-hold{
	background:rgba(34,211,238,.08);border:1px solid var(--fp-accent);color:#fff;
	padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem;
}
.vball-card-fail{
	background:var(--fp-card);border:1px solid var(--fp-border);color:#fff;
	padding:1rem;border-radius:8px;margin-bottom:1rem;
}

/* Forms / paperwork / recruiting inside cards */
body.is-family-app .vball-fp-card a{color:var(--fp-accent);}
body.is-family-app .vball-form-card,
body.is-family-app .vball-want-college,
body.is-family-app .vball-teams-board{background:transparent!important;color:#fff!important;}


/* v418b — bottom nav never bleeds into desktop canvas */
.vball-family-bottom{display:none!important;}
@media (max-width:900px){
	.vball-family-bottom{
		display:flex!important;flex-wrap:wrap;gap:.35rem;padding:.5rem;
		position:sticky;bottom:0;background:#0b1220;border-top:1px solid var(--fp-border);z-index:20;
		grid-column:1 / -1;
	}
}
.vball-fp-cardhead{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;}
.vball-fp-cardhead__title{margin:0;font-size:1.05rem;font-weight:700;color:#fff;}
.vball-fp-sib-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.vball-fp-sib-empty{border:1px dashed var(--fp-border);border-radius:10px;padding:1.25rem;text-align:center;}
.vball-fp-sib-card{display:flex;gap:.75rem;align-items:center;background:#0b1220;border:1px solid var(--fp-border);border-radius:10px;padding:.85rem;}
.vball-fp-sib-card__name{margin:0;font-weight:700;}
.vball-fp-money{font-size:1.75rem;font-weight:800;margin:.25rem 0;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.vball-fp-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;}
.vball-fp-card-list{list-style:none;margin:0;padding:0;}
.vball-fp-card-list li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--fp-border);}
.vball-fp-bill-who{margin:0 0 .35rem;color:#fff;}
.vball-fp-lockbox{margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--fp-accent);border-radius:10px;background:rgba(34,211,238,.06);}
.vball-fp-notice-card{margin-bottom:.75rem;}
body.is-family-app .vball-fp-main .app-card,
body.is-family-app .app-card{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;}
body.is-family-app .site-main.family-app{padding:0!important;max-width:none!important;}


/* v419 exact-copy additions */
.vball-fp-tracker__steps{align-items:center;gap:0;}
.vball-fp-tracker__line{
	width:28px;height:2px;background:var(--fp-accent);opacity:.55;flex:0 0 auto;align-self:center;
	list-style:none;margin:0;padding:0;border:0;
}
.vball-fp-tracker__step.is-done .vball-fp-tracker__mark,
.vball-fp-tracker__step.is-current .vball-fp-tracker__mark{color:var(--fp-accent);}
.vball-fp-practice-list li{flex-wrap:wrap;}
.vball-fp-practice-list li .vball-fp-muted{flex:1 1 100%;font-size:.85rem;}

.vball-fp-week{min-height:520px;}
.vball-fp-week__hours{
	display:grid;grid-template-rows:repeat(var(--fp-hours,13),minmax(36px,1fr));
	border-right:1px solid var(--fp-border);min-height:480px;
}
.vball-fp-week__col{
	position:relative;min-height:480px;border-left:1px solid var(--fp-border);
	background-image:linear-gradient(to bottom, transparent 0, transparent calc(100%/var(--fp-hours,13) - 1px), rgba(30,58,95,.55) calc(100%/var(--fp-hours,13)));
	background-size:100% calc(100%/var(--fp-hours,13));
}

.vball-fp-notice-list{display:flex;flex-direction:column;gap:.65rem;}
a.vball-fp-notice-card{
	display:flex;align-items:flex-start;gap:.85rem;text-decoration:none;color:inherit;margin:0;
}
.vball-fp-notice-dot{
	width:12px;height:12px;border-radius:50%;margin-top:.35rem;flex:0 0 auto;
	border:2px solid #fff;background:transparent;
}
.vball-fp-notice-card.is-unread .vball-fp-notice-dot{background:var(--fp-accent);border-color:var(--fp-accent);}
.vball-fp-notice-card__body{flex:1;min-width:0;}
.vball-fp-notice-card__body p{margin:.25rem 0 0;color:var(--fp-muted);font-size:.9rem;}
.vball-fp-notice-card__meta{display:flex;align-items:center;gap:.5rem;white-space:nowrap;color:var(--fp-muted);}

.vball-fp-school-list{list-style:none;margin:0;padding:0;}
.vball-fp-school-row{
	display:grid;grid-template-columns:56px 1fr auto;gap:1rem;align-items:center;
	padding:1rem 0;border-bottom:1px solid var(--fp-border);
}
.vball-fp-school-row__logo{
	width:52px;height:52px;border-radius:10px;border:1px solid var(--fp-border);
	display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--fp-accent);background:#0b1220;overflow:hidden;padding:0;
}
.vball-fp-school-row__logo img{width:100%;height:100%;object-fit:cover;display:block;}
.vball-fp-school-row__meta{display:flex;flex-direction:column;gap:.25rem;}




.vball-fp-inline-form{display:inline;}

.vball-fp-kit-list{list-style:none;margin:0;padding:0;}
.vball-fp-kit-row{
	display:grid;grid-template-columns:48px 1fr auto auto;gap:.85rem;align-items:center;
	padding:.75rem 0;border-bottom:1px solid var(--fp-border);
}
.vball-fp-kit-row__thumb{width:48px;height:48px;border-radius:8px;background:#0b1220;border:1px solid var(--fp-border);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.vball-fp-kit-row__thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.vball-fp-kit-row__meta{display:flex;flex-direction:column;gap:.15rem;}
.vball-fp-pers{color:var(--fp-accent);font-size:.85rem;}
.vball-fp-kit-status{padding:.25rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.vball-fp-kit-status.is-ordered{background:rgba(34,197,94,.2);color:#4ade80;}
.vball-fp-kit-status.is-pending{background:rgba(251,146,60,.18);color:#fb923c;}

.vball-fp-paper-list{list-style:none;margin:0;padding:0;}
.vball-fp-paper-row{
	display:flex;justify-content:space-between;gap:1rem;align-items:center;
	padding:.85rem 0;border-bottom:1px solid var(--fp-border);
}
.vball-fp-paper-row__icon{
	width:36px;height:36px;border-radius:8px;background:#0b1220;border:1px solid var(--fp-border);
	display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;flex:0 0 auto;
}
.vball-fp-paper-row > div:first-of-type{flex:1;min-width:0;}
.vball-fp-paper-row__acts{display:flex;align-items:center;gap:.65rem;}
.vball-fp-check-dot{
	width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
	border:2px solid var(--fp-border);color:var(--fp-muted);font-weight:800;
}
.vball-fp-check-dot.is-ok{background:rgba(34,197,94,.2);border-color:#22c55e;color:#4ade80;}
.vball-fp-complete-badge{
	width:72px;height:72px;border-radius:50%;border:2px solid var(--fp-accent);color:var(--fp-accent);
	display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;
}
.vball-fp-complete-badge em{font-style:normal;font-size:.65rem;letter-spacing:.04em;text-transform:uppercase;}
.vball-fp-contact{display:flex;align-items:center;gap:.4rem;}
button.vball-btn:disabled,button.vball-btn[disabled]{opacity:.4;cursor:not-allowed;}


/* === v422 chrome punch list === */
.vball-fp-card{
	background:rgba(15,23,42,.88)!important;
	border:1px solid #1e293b!important;
	border-radius:12px;
	padding:1.1rem 1.2rem;
	margin-bottom:1rem;
}
.vball-fp-title-ico{
	display:inline-flex;align-items:center;justify-content:center;
	width:28px;height:28px;flex:0 0 auto;color:var(--fp-accent);
}
.vball-fp-title-ico svg{
	width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;
	stroke-linecap:round;stroke-linejoin:round;
}
.vball-fp-pagehead{display:flex;align-items:center;gap:.75rem;margin-bottom:1.1rem;}
.vball-fp-pagehead__left{display:flex;align-items:center;gap:.75rem;}
.vball-fp-title{margin:0;font-size:1.55rem;font-weight:800;color:#fff;}
.vball-fp-rail__link{color:#94a3b8;}
.vball-fp-rail__link.is-on{color:#22d3ee;}
.vball-fp-rail__link.is-on .vball-fp-rail__lab{color:#22d3ee;}

/* Receipt type chips */
.vball-fp-typechip{
	display:inline-block;padding:.12rem .4rem;border-radius:5px;font-size:.65rem;font-weight:800;letter-spacing:.05em;
}
.vball-fp-typechip.is-deposit{background:rgba(34,197,94,.16);color:#4ade80;border:1px solid rgba(34,197,94,.35);}
.vball-fp-typechip.is-charge{background:rgba(59,130,246,.16);color:#93c5fd;border:1px solid rgba(59,130,246,.4);}
.vball-fp-chev{color:var(--fp-muted);margin-left:.15rem;}
.vball-fp-receipts td,.vball-fp-receipts th{font-size:.9rem;}
.vball-fp-money__unit{font-size:.85rem;font-weight:500;}
.vball-fp-next-charge{display:flex;align-items:center;gap:.4rem;}
.vball-fp-cal-mini{display:inline-flex;color:var(--fp-accent);}
.vball-fp-bill-open{list-style:none;margin:0;padding:0;}
.vball-fp-bill-open li{
	display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:center;
	padding:.55rem 0;border-bottom:1px solid var(--fp-border);
}
.vball-fp-money .vball-fp-badge{vertical-align:middle;margin-left:.35rem;}

/* Messages dots */
.vball-fp-notice-dot{
	width:10px;height:10px;border-radius:50%;margin-top:.4rem;flex:0 0 auto;
	border:2px solid #64748b;background:transparent;
}
.vball-fp-notice-card.is-unread .vball-fp-notice-dot{
	background:#22d3ee;border-color:#22d3ee;
}
.vball-fp-notice-card.is-read .vball-fp-notice-dot{
	background:transparent;border-color:#64748b;
}

/* Paperwork circular left icon */
.vball-fp-paper-row__icon{
	width:40px;height:40px;border-radius:50%!important;
	background:rgba(15,23,42,.9);border:1px solid #1e293b;
	display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex:0 0 auto;
}
.vball-fp-paper-row{display:flex;gap:.85rem;align-items:center;}

/* Kit pending/ordered chips compact */
.vball-fp-kit-status.is-ordered{background:rgba(34,197,94,.18);color:#4ade80;}
.vball-fp-kit-status.is-pending{background:rgba(251,146,60,.16);color:#fb923c;}

/* Recruiting compass fill none */
.vball-fp-rail__link svg circle,
.vball-fp-rail__link svg polygon,
.vball-fp-title-ico svg circle,
.vball-fp-title-ico svg polygon{fill:none;}
/* raised-bar 034743 */


/* Parent-safe recruiting status chips — distinct colors (chips stay pill). */
.vball-fp-status-line{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .2rem;}
.vball-fp-status-chip{
	display:inline-flex;align-items:center;gap:.25rem;
	padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;
	letter-spacing:.03em;border:1px solid transparent;line-height:1.2;
}
.vball-fp-status-chip.is-sent{color:#22d3ee;border-color:#22d3ee;background:transparent;}
.vball-fp-status-chip.is-inquiry{color:#22d3ee;border-color:#22d3ee;background:transparent;}
.vball-fp-status-chip.is-inbound{color:#a78bfa;border-color:#8b5cf6;background:rgba(139,92,246,.12);}
.vball-fp-status-chip.is-waiting{color:#fbbf24;border-color:#f59e0b;background:rgba(245,158,11,.14);}
.vball-fp-status-chip.is-pending{color:#fbbf24;border-color:#f59e0b;background:rgba(245,158,11,.12);}
.vball-fp-status-chip.is-shared,.vball-fp-status-chip.is-approved{color:#4ade80;border-color:#22c55e;background:rgba(34,197,94,.14);}
.vball-fp-status-chip.is-emailed{color:#60a5fa;border-color:#3b82f6;background:rgba(59,130,246,.14);}
.vball-fp-status-chip.is-followup{color:#f9a8d4;border-color:#ec4899;background:rgba(236,72,153,.12);}
.vball-fp-status-chip.is-quiet{color:#94a3b8;border-color:#64748b;background:rgba(100,116,139,.14);}
.vball-fp-status-chip.is-bounce{color:#f87171;border-color:#ef4444;background:rgba(239,68,68,.14);}
.vball-fp-status-chip.is-declined{color:#94a3b8;border-color:#64748b;background:rgba(100,116,139,.1);}
.vball-fp-school-mono{
	display:inline-flex;align-items:center;justify-content:center;
	width:100%;height:100%;border-radius:50%;font-weight:800;font-size:.72rem;
	color:#22d3ee;background:#0b1220;border:1px solid rgba(34,211,238,.35);
}
.vball-fp-inline-form--stack{display:flex;flex-direction:column;gap:.4rem;align-items:stretch;}
.vball-fp-inline-form--stack .vball-btn{width:100%;}

/* Recruiting Approve / Decline — filled green / filled red, 8px (not pill). */
body.is-family-app button.vball-btn.vball-fp-btn-approve,
body.is-family-app a.vball-btn.vball-fp-btn-approve,
body.is-hud.is-family-app button.vball-btn.vball-fp-btn-approve{
	background:#16a34a!important;
	color:#fff!important;
	-webkit-text-fill-color:#fff!important;
	border:1px solid #16a34a!important;
	border-radius:8px!important;
}
body.is-family-app button.vball-btn.vball-fp-btn-decline,
body.is-family-app a.vball-btn.vball-fp-btn-decline,
body.is-hud.is-family-app button.vball-btn.vball-fp-btn-decline,
body.is-family-app button.vball-btn.vball-btn-ghost.vball-fp-btn-decline{
	background:#dc2626!important;
	color:#fff!important;
	-webkit-text-fill-color:#fff!important;
	border:1px solid #dc2626!important;
	border-radius:8px!important;
}




/* Recruiting rules card + in-portal article */
.vball-fp-rules-card{
	display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
	margin-top:1rem;padding:.9rem 1rem;
	border:1px solid rgba(34,211,238,.55);border-radius:10px;background:transparent;
}
.vball-fp-rules-card__title{margin:0 0 .25rem;font-weight:700;color:#fff;font-size:1rem;}
.vball-fp-rules-card__btn{white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:12px!important;}
.vball-fp-rules-article{margin-top:1rem;max-width:52rem;}
.vball-fp-rules-article__nav{margin:0 0 1rem;}
.vball-fp-rules-article__h{margin:0 0 .75rem;font-size:1.45rem;color:#fff;}
.vball-fp-rules-article h3{margin:1.15rem 0 .4rem;color:#22d3ee;font-size:1.05rem;}
.vball-fp-rules-article p,.vball-fp-rules-article li{color:#e8eef7;line-height:1.55;}
.vball-fp-rules-list{margin:.35rem 0 .75rem;padding-left:1.15rem;}
.vball-fp-rules-list li{margin:.35rem 0;}
.vball-fp-rules-article__foot{
	margin:1.25rem 0 1rem;padding:.75rem .9rem;border-left:3px solid #22d3ee;
	background:rgba(34,211,238,.06);color:#cbd5e1;font-size:.95rem;
}
.vball-fp-rules-article a.vball-fp-link{color:#22d3ee;text-decoration:underline;}

/* Billing — Paid to date (1.0.428) */
.vball-fp-billing .vball-fp-home-grid{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:1100px){
	.vball-fp-billing .vball-fp-home-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:900px){
	.vball-fp-billing .vball-fp-home-grid{grid-template-columns:1fr;}
}
.vball-fp-card--paid-total .vball-fp-money--accent{color:var(--fp-accent,#22d3ee);}

/* Profile packet read-only card (1.0.429) — layout only; rail/colors locked */
.vball-fp-packet-card__body{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.vball-fp-packet-card__shot{
	width:72px;height:88px;object-fit:cover;border-radius:8px;
	border:1px solid var(--fp-border,rgba(34,211,238,.25));flex:0 0 auto;background:#123
}
.vball-fp-packet-card__meta{display:flex;flex-direction:column;gap:.25rem;flex:1 1 200px;min-width:0;color:#fff}
.vball-fp-packet-card__schools{list-style:none;margin:.5rem 0 0;padding:0}
.vball-fp-packet-card__schools li{
	display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;
	padding:.4rem 0;border-bottom:1px solid var(--fp-border,rgba(148,163,184,.2));font-size:.9rem
}
.vball-fp-packet-card__foot{margin:.85rem 0 0}
