// ===================================================================== // PAGE LAYOUTS — CORE (Schedule, Teams, Roster) · 2 options each // Flat / professional C1 (navy + red). Shared nav/footer/PageHead from // HomeVariations.jsx (on window). Contrast rule: red accents only on // LIGHT backgrounds; on navy/dark use white or --bb-red-bright. // ===================================================================== const { hv, BNav, FooterBlock, BrandBar, PageHead } = window; const pcSt = { wrap: { maxWidth:1200, margin:'0 auto', padding:'56px 40px 80px' }, tabs: { display:'flex', gap:8, marginBottom:28 }, tab: (on) => ({ fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:14, letterSpacing:'0.05em', textTransform:'uppercase', padding:'10px 20px', borderRadius:8, cursor:'pointer', border:0, background: on?'var(--bb-navy)':'#fff', color: on?'#fff':'var(--bb-navy)', boxShadow: on?'none':'inset 0 0 0 1.5px var(--border-1)' }), // schedule list row: { display:'flex', alignItems:'center', gap:28, background:'#fff', border:'1px solid var(--border-1)', borderRadius:12, padding:'20px 28px', marginBottom:12, boxShadow:'var(--shadow-sm)' }, date: { textAlign:'center', width:72, flexShrink:0 }, dDay: { fontFamily:"'JetBrains Mono', monospace", fontSize:12, letterSpacing:'0.12em', color:'var(--bb-red)' }, dNum: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:900, fontSize:44, lineHeight:0.9, color:'var(--bb-navy)' }, dMon: { fontFamily:"'JetBrains Mono', monospace", fontSize:11, letterSpacing:'0.12em', textTransform:'uppercase', color:'var(--fg-3)' }, dYr: { fontFamily:"'JetBrains Mono', monospace", fontSize:10, letterSpacing:'0.1em', color:'var(--fg-3)', marginTop:2 }, match: { flex:1, borderLeft:'1px solid var(--border-1)', paddingLeft:28 }, matchName: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:26, textTransform:'uppercase', color:'var(--bb-navy)', lineHeight:1 }, matchMeta: { fontSize:14, color:'var(--fg-2)', marginTop:6 }, badge: (kind) => ({ fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:900, fontSize:14, letterSpacing:'0.06em', textTransform:'uppercase', padding:'8px 16px', borderRadius:8, flexShrink:0, background: kind==='W'?'rgba(47,125,74,0.14)':kind==='L'?'var(--bb-red-soft)':'var(--bb-navy)', color: kind==='W'?'var(--status-win)':kind==='L'?'var(--bb-red)':'#fff' }), score: { fontFamily:"'JetBrains Mono', monospace", fontWeight:600, fontSize:18, color:'var(--bb-navy)', width:64, textAlign:'center', flexShrink:0 }, // section headers within page blockHd: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:900, fontSize:30, textTransform:'uppercase', color:'var(--bb-navy)', margin:'0 0 18px' }, // teams grid teamCard: { background:'#fff', border:'1px solid var(--border-1)', borderRadius:12, overflow:'hidden', boxShadow:'var(--shadow-sm)' }, teamBar: { height:8 }, teamBody: { padding:'22px 24px 26px' }, link: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:13, letterSpacing:'0.06em', textTransform:'uppercase', color:'var(--bb-red)', cursor:'pointer', marginTop:14, display:'inline-block' }, // roster card pCard: { background:'#fff', border:'1px solid var(--border-1)', borderRadius:12, overflow:'hidden', boxShadow:'var(--shadow-sm)' }, pPhoto: { position:'relative', height:220, background:'#eceff4' }, pNum: { position:'absolute', bottom:10, right:14, fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:900, fontSize:64, lineHeight:0.8, color:'#fff', textShadow:'0 2px 12px rgba(0,0,0,0.5)' }, pBody: { padding:'16px 18px 20px' }, pName: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:24, textTransform:'uppercase', color:'var(--bb-navy)', lineHeight:1 }, pMeta: { fontFamily:"'JetBrains Mono', monospace", fontSize:12, letterSpacing:'0.08em', color:'var(--fg-3)', marginTop:6 }, pStat: { fontFamily:"'JetBrains Mono', monospace", fontSize:13, color:'var(--bb-red)', marginTop:8 }, // roster team header — photo left, staff right teamHeader: { display:'grid', gridTemplateColumns:'1.25fr 1fr', gap:0, borderRadius:14, overflow:'hidden', boxShadow:'var(--shadow-md)', border:'1px solid var(--border-1)' }, teamPhoto: { position:'relative', minHeight:340, background:'#e7ebf1' }, staffPanel: { background:'var(--bb-navy)', color:'#fff', padding:'14px 38px', display:'flex', flexDirection:'column', justifyContent:'center' }, staffRow: { padding:'20px 0', borderBottom:'1px solid rgba(255,255,255,0.14)' }, staffLbl: { fontFamily:"'JetBrains Mono', monospace", fontSize:11, letterSpacing:'0.14em', textTransform:'uppercase', color:'var(--bb-red-bright)', marginBottom:8 }, staffName: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:28, lineHeight:1, textTransform:'uppercase' }, staffCoaches: { fontSize:16, lineHeight:1.55, color:'rgba(255,255,255,0.88)' }, staffSub: { fontFamily:"'JetBrains Mono', monospace", fontSize:12, letterSpacing:'0.08em', textTransform:'uppercase', color:'rgba(255,255,255,0.55)' }, honorRow: { display:'flex', alignItems:'center', gap:12, background:'#fff', border:'1px solid var(--border-1)', borderRadius:10, padding:'14px 18px', fontSize:15, color:'var(--bb-navy)', fontWeight:600, boxShadow:'var(--shadow-sm)' }, honorStar: { color:'var(--bb-red)', fontSize:18, flexShrink:0 }, dropHint: { fontFamily:"'JetBrains Mono', monospace", fontSize:12.5, letterSpacing:'0.04em', color:'var(--fg-3)', marginTop:28, textAlign:'center' }, }; function SchedTabs({ active='All' }) { return
Drop a headshot onto any card to fill it in — photos save automatically.
Coach {sel.coach}'s {squad} roster will be posted once the {sel.age} squad is finalized for the season.