const DS = window.WNYPremierDesignSystem_31708a;
const { Button, Badge, Card, NewsCard, TeamCard, GameCard, StatBand, Alert, StandingsTable, NavBar, Field, Icon, Keyline } = DS;
const DSPATH = '_ds/wny-premier-design-system-31708ad2-d6ff-4a2f-8529-fd21b4b8b705';
const LOGO = DSPATH + '/assets/WNY-Premier-Logo-transparent.png';
const NAV = [['Home','index.html'],['About','about.html'],['Divisions','divisions.html'],['Schedules','schedules.html'],['Tournaments','tournaments.html'],['All Stars','all-stars.html'],['Rules','rules.html'],['Fields','fields.html'],['Payments','payments.html'],['Contact','contact.html']];
const hrefOf = (label) => { const m = NAV.find((n) => n[0] === label); return m ? m[1] : 'index.html'; };
const wnySection = (bg) => ({ padding: 'var(--space-section) 24px', background: bg || 'var(--bg-main)' });
const CopyCtx = React.createContext({});
function Copy({ k, tag, style, className, children }) {
  const map = React.useContext(CopyCtx) || {};
  const T = tag || 'p';
  if (map[k] != null && map[k] !== '') return React.createElement(T, { style, className, 'data-copy-key': k, dangerouslySetInnerHTML: { __html: map[k] } });
  return React.createElement(T, { style, className, 'data-copy-key': k }, children);
}
const wnyWrap = { maxWidth: 1200, margin: '0 auto' };
const wnyNarrow = { maxWidth: 840, margin: '0 auto' };
const wnyEyebrow = { fontWeight: 600, textTransform: 'uppercase', letterSpacing: '.14em', fontSize: '.75rem', color: 'var(--color-primary-red)', marginBottom: 8, fontFamily: 'var(--font-body)' };
const SCORE_EMAIL = 'WNYPREMIERGAMESCORES@GMAIL.COM';
function LinkBtn({ href, blank, ...props }) { return <Button onClick={() => { blank ? window.open(href) : (window.location.href = href); }} {...props}/>; }
function useCopyMap(){ return React.useContext(CopyCtx) || {}; }
function useRegOpen(){ const map = React.useContext(CopyCtx) || {}; return (map.registration_open || 'true') !== 'false'; }
function useTournRegOpen(){ const map = React.useContext(CopyCtx) || {}; return (map.tournament_registration_open || 'true') !== 'false'; }
function TournRegisterBtn({ href = 'tournament-register.html', children = 'Register Your Team', style, ...props }){
  const open = useTournRegOpen();
  if (open) return <LinkBtn href={href} style={style} {...props}>{children}</LinkBtn>;
  return <Button {...props} disabled title="Tournament registration is currently closed" style={{ ...style, background: 'var(--color-bleacher-grey)', borderColor: 'var(--color-bleacher-grey)', color: '#fff', cursor: 'not-allowed', opacity: 1 }}>{children}</Button>;
}
function RegisterBtn({ href = 'register.html', children = 'Register Your Team', style, ...props }){
  const open = useRegOpen();
  if (open) return <LinkBtn href={href} style={style} {...props}>{children}</LinkBtn>;
  return <Button {...props} disabled title="Registration is currently closed" style={{ ...style, background: 'var(--color-bleacher-grey)', borderColor: 'var(--color-bleacher-grey)', color: '#fff', cursor: 'not-allowed', opacity: 1 }}>{children}</Button>;
}
function SectionTitle({ eyebrow, children, style }) {
  return <div style={{ marginBottom: 28, ...style }}>
    {eyebrow && <div style={wnyEyebrow}>{eyebrow}</div>}
    <h2 style={{ margin: 0 }}>{children}</h2>
  </div>;
}
function PageHero({ eyebrow, title, lead, children, photo }) {
  return <div style={{ background: 'var(--bg-dark)', color: '#fff', position: 'relative', overflow: 'hidden' }}>
    {photo && <img src={photo} alt="" aria-hidden="true" style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', objectFit: 'cover', objectPosition: 'center 30%' }}/>}
    {photo && <div aria-hidden="true" style={{ position: 'absolute', inset: 0, background: 'linear-gradient(180deg, rgba(21,46,82,.55) 0%, rgba(21,46,82,.85) 100%)' }}></div>}
    {!photo && <div aria-hidden="true" style={{ position: 'absolute', right: 10, top: -40, fontFamily: 'var(--font-display)', fontSize: '13rem', color: 'transparent', WebkitTextStroke: '2px rgba(165,13,37,.28)', lineHeight: 1, pointerEvents: 'none' }}>18</div>}
    <div style={{ ...wnyWrap, position: 'relative', zIndex: 2, padding: '64px 24px 52px' }}>
      <div style={{ ...wnyEyebrow, color: 'var(--color-wood-ash)', letterSpacing: '.2em' }}>{eyebrow}</div>
      <h1 className="t-display" style={{ margin: '0 0 14px', color: '#fff', fontSize: 'clamp(2.2rem,5.5vw,3.6rem)' }}>{title}</h1>
      {lead && <p className="t-lead" style={{ maxWidth: 620, margin: 0, color: 'var(--color-field-grey)' }}>{lead}</p>}
      {children}
    </div>
  </div>;
}
function TournSubnav({ active }) {
  const items = [['Tournaments', 'tournaments.html'], ['Register', 'tournament-register.html'], ['Results', 'tournament-results.html']];
  return <div style={{ background: 'var(--color-primary-navy)', padding: '0 24px' }}>
    <div style={{ ...wnyWrap, display: 'flex', gap: 4, overflowX: 'auto' }}>
      {items.map(([l, href]) => <a key={l} href={href} style={{ padding: '12px 18px', color: active === l ? '#fff' : '#A0A5B1', textDecoration: 'none', fontFamily: 'var(--font-heading)', fontWeight: 700, textTransform: 'uppercase', letterSpacing: '.05em', fontSize: '.92rem', borderBottom: '3px solid ' + (active === l ? 'var(--color-primary-red)' : 'transparent') }}>{l}</a>)}
    </div>
  </div>;
}
function Footer() {
  const linkStyle = { color: 'var(--color-field-grey)', textDecoration: 'none' };
  return <footer style={{ background: 'var(--bg-dark)', color: 'var(--color-field-grey)', padding: '48px 24px 36px' }}>
    <div style={{ ...wnyWrap, display: 'grid', gridTemplateColumns: '2fr 1fr 1fr 1.4fr', gap: 32, fontSize: '.9rem' }}>
      <div>
        <div style={{ fontFamily: 'var(--font-display)', textTransform: 'uppercase', fontSize: '1.4rem', color: '#fff', marginBottom: 6 }}>WNY <span style={{ color: 'var(--color-primary-red)' }}>Premier</span></div>
        <div>Baseball Travel League · Est. 2018 · Western New York</div>
        <div style={{ display: 'flex', gap: 16, marginTop: 14 }}>
          {['home-plate', 'diamond', 'scoreboard', 'trophy'].map((n) => <Icon key={n} name={n} size={22} color="#A0A5B1"/>)}
        </div>
      </div>
      <div style={{ display: 'grid', gap: 8, alignContent: 'start' }}>
        <div style={{ ...wnyEyebrow, color: 'var(--color-wood-ash)', marginBottom: 2 }}>League</div>
        <a href="divisions.html" style={linkStyle}>Divisions &amp; Teams</a>
        <a href="schedules.html" style={linkStyle}>Schedules &amp; Scores</a>
        <a href="tournaments.html" style={linkStyle}>Tournaments</a>
        <a href="news.html" style={linkStyle}>News</a>
      </div>
      <div style={{ display: 'grid', gap: 8, alignContent: 'start' }}>
        <div style={{ ...wnyEyebrow, color: 'var(--color-wood-ash)', marginBottom: 2 }}>Resources</div>
        <a href="rules.html" style={linkStyle}>Rules &amp; Forms</a>
        <a href="fields.html" style={linkStyle}>Field Locations</a>
        <a href="payments.html" style={linkStyle}>Payments</a>
        <a href="contact.html" style={linkStyle}>Contact</a>
        <a href="coach.html" style={{ ...linkStyle, color: '#fff', fontWeight: 600 }}>Coach Login</a>
      </div>
      <div style={{ display: 'grid', gap: 8, alignContent: 'start' }}>
        <div style={{ ...wnyEyebrow, color: 'var(--color-wood-ash)', marginBottom: 2 }}>Report Scores</div>
        <div>Email age, team, division, date, and score after every game:</div>
        <a href={'mailto:' + SCORE_EMAIL} style={{ ...linkStyle, color: '#fff', fontWeight: 600, wordBreak: 'break-all' }}>{SCORE_EMAIL}</a>
      </div>
    </div>
    <div style={{ ...wnyWrap, marginTop: 32, paddingTop: 18, borderTop: '1px solid rgba(255,255,255,.12)', fontSize: '.8rem', display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap', gap: 8 }}>
      <span>© 2026 WNY Premier Baseball Travel League</span>
      <span>258 Parker St., Cheektowaga, NY 14206</span>
    </div>
  </footer>;
}
function Chrome({ active, children }) {
  const [menu, setMenu] = React.useState(false);
  const [copyMap, setCopyMap] = React.useState({});
  const regOpen = (copyMap.registration_open || 'true') !== 'false';
  React.useEffect(() => { if (window.DB) DB.list('site_content').then((rows) => { const m = {}; (rows || []).forEach((r) => { m[r.key] = r.html; }); setCopyMap(m); }).catch(() => {}); }, []);
  const wrapRef = React.useRef(null);
  const closeTimer = React.useRef(null);
  const [dd, setDd] = React.useState(null); // {left} when open
  const openDd = (target) => {
    clearTimeout(closeTimer.current);
    const wrap = wrapRef.current; if (!wrap) return;
    const r = target.getBoundingClientRect(), w = wrap.getBoundingClientRect();
    setDd({ left: Math.max(8, r.left - w.left - 12) });
  };
  const scheduleClose = () => { clearTimeout(closeTimer.current); closeTimer.current = setTimeout(() => setDd(null), 180); };
  const onOver = (e) => {
    const el = e.target.closest('a,button'); if (!el) return;
    if (el.textContent.trim() === 'Tournaments') openDd(el); else if (!e.target.closest('.tourn-dd')) scheduleClose();
  };
  const ddItems = [['Tournaments Home', 'tournaments.html'], ['Tournament Registration', 'tournament-register.html'], ['Tournament Results', 'tournament-results.html']];
  return <div style={{ background: 'var(--bg-main)', minHeight: '100vh' }}>
    <style>{'.reg-closed nav > div:last-child > button{background:var(--color-bleacher-grey) !important;border-color:var(--color-bleacher-grey) !important;cursor:not-allowed !important;transform:none !important;box-shadow:none !important}'
      + 'nav > div:first-child{display:none !important}nav > div:last-child{flex:1}nav > div:last-child > button{margin-left:auto}nav{padding:14px 22px !important}'
      + '@media(max-width:920px){.wny-navwrap nav{display:none !important}.wny-mobilebar{display:flex !important}.wny-mobilebar img{height:48px !important}}'
      + '@media(max-width:820px){[style*="grid-template-columns"]:not([style*="auto-fit"]){grid-template-columns:1fr !important}[style*="var(--bg-dark)"][style*="grid-template-columns"]{grid-template-columns:repeat(2,1fr) !important}.potd-track img{height:300px}h1.t-display{font-size:2.2rem !important}}'
      + '@media(max-width:820px){.tourn-dd{display:none !important}section img,section image-slot{max-width:100%}section table{display:block;overflow-x:auto;max-width:100%}section [style*="display: flex"]:not(.potd-track){flex-wrap:wrap}.potd-track{flex-wrap:nowrap !important}footer [style*="display: grid"]{grid-template-columns:1fr !important}}'
      + '@media(max-width:440px){[style*="auto-fit"]{grid-template-columns:1fr !important}h1.t-display{font-size:1.9rem !important}section{padding-left:16px !important;padding-right:16px !important}}'
    }</style>
    <div style={{ position: 'sticky', top: 0, zIndex: 20, padding: '4px 12px', background: 'rgba(255,255,255,.97)', backdropFilter: 'blur(6px)', display: 'flex', alignItems: 'center', gap: 10 }}>
      <div ref={wrapRef} className={'wny-navwrap' + (regOpen ? '' : ' reg-closed')} style={{ flex: 1, minWidth: 0, position: 'relative' }} onMouseOver={onOver} onMouseLeave={scheduleClose}>
        <NavBar links={NAV.map((n) => n[0])} active={active} onNavigate={(l) => { window.location.href = hrefOf(l); }} cta="Register Your Team" onCta={() => { if (regOpen) window.location.href = 'register.html'; }} logo={LOGO}/>
        <div className="wny-mobilebar" style={{ display: 'none', alignItems: 'center', justifyContent: 'space-between', padding: '10px 4px' }}>
          <a href="index.html" style={{ display: 'flex', alignItems: 'center', gap: 10, textDecoration: 'none' }}>
            <img src={LOGO} alt="" style={{ height: 34 }}/>
            <span style={{ fontFamily: 'var(--font-display)', textTransform: 'uppercase', fontSize: '1.15rem', color: 'var(--color-primary-navy)' }}>WNY <span style={{ color: 'var(--color-primary-red)' }}>Premier</span></span>
          </a>
          <button aria-label={menu ? 'Close menu' : 'Open menu'} aria-expanded={menu} onClick={() => setMenu(!menu)} style={{ background: 'none', border: 'none', padding: 8, cursor: 'pointer', color: 'var(--color-primary-navy)' }}>
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" aria-hidden="true">{menu ? <g><line x1="5" y1="5" x2="19" y2="19"></line><line x1="19" y1="5" x2="5" y2="19"></line></g> : <g><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="18" x2="21" y2="18"></line></g>}</svg>
          </button>
        </div>
        {menu && <div style={{ position: 'absolute', top: '100%', left: -12, right: -56, background: 'var(--color-primary-navy)', borderTop: '3px solid var(--color-primary-red)', boxShadow: '0 14px 30px rgba(21,46,82,.35)', zIndex: 50, display: 'grid', padding: '8px 0 16px' }}>
          {NAV.map(([l, href]) => <a key={l} href={href} style={{ padding: '13px 24px', color: l === active ? '#fff' : '#c9cfdb', background: l === active ? 'rgba(165,13,37,.35)' : 'transparent', textDecoration: 'none', fontFamily: 'var(--font-heading)', fontWeight: 700, textTransform: 'uppercase', letterSpacing: '.06em', fontSize: '1rem' }}>{l}</a>)}
          <a href={regOpen ? 'register.html' : null} style={{ margin: '10px 24px 0', padding: '12px 18px', textAlign: 'center', pointerEvents: regOpen ? 'auto' : 'none', background: regOpen ? 'var(--color-primary-red)' : 'var(--color-bleacher-grey)', color: '#fff', textDecoration: 'none', borderRadius: 4, fontFamily: 'var(--font-heading)', fontWeight: 700, textTransform: 'uppercase', letterSpacing: '.06em' }}>Register Your Team</a>
        </div>}
        {dd && <div className="tourn-dd" onMouseEnter={() => clearTimeout(closeTimer.current)} onMouseLeave={scheduleClose} style={{ position: 'absolute', top: '100%', left: dd.left, background: 'var(--color-primary-navy)', borderTop: '3px solid var(--color-primary-red)', boxShadow: '0 10px 24px rgba(21,46,82,.28)', borderRadius: '0 0 6px 6px', minWidth: 230, padding: '6px 0', zIndex: 40, display: 'grid' }}>
          {ddItems.map(([l, href]) => <a key={l} href={href} style={{ padding: '10px 18px', color: '#fff', textDecoration: 'none', fontFamily: 'var(--font-heading)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '.05em', fontSize: '.9rem', transition: 'background .12s cubic-bezier(.2,.7,.3,1)' }} onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--color-primary-red)'; }} onMouseLeave={(e) => { e.currentTarget.style.background = 'transparent'; }}>{l}</a>)}
        </div>}
      </div>
      <a href="https://www.facebook.com/PBTL2018" target="_blank" rel="noopener" aria-label="WNY Premier on Facebook" title="Follow us on Facebook" style={{ width: 34, height: 34, borderRadius: '50%', background: 'var(--color-primary-navy)', color: '#fff', display: 'flex', alignItems: 'center', justifyContent: 'center', flexShrink: 0, transition: 'background .15s cubic-bezier(.2,.7,.3,1), transform .15s cubic-bezier(.2,.7,.3,1)' }} onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--color-primary-red)'; e.currentTarget.style.transform = 'translateY(-1px)'; }} onMouseLeave={(e) => { e.currentTarget.style.background = 'var(--color-primary-navy)'; e.currentTarget.style.transform = 'none'; }}><svg width="17" height="17" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style={{ display: 'block' }}><path d="M13.5 21v-7.6h2.55l.38-2.96H13.5V8.55c0-.86.24-1.44 1.47-1.44h1.57V4.46c-.27-.04-1.2-.12-2.29-.12-2.26 0-3.81 1.38-3.81 3.92v2.18H7.89v2.96h2.55V21h3.06z"></path></svg></a>
    </div>
    <Keyline/>
    <CopyCtx.Provider value={copyMap}>{children}</CopyCtx.Provider>
    <Footer/>
  </div>;
}
Object.assign(window, { DS, LinkBtn, useCopyMap, useRegOpen, RegisterBtn, useTournRegOpen, TournRegisterBtn, SectionTitle, PageHero, Footer, Chrome, TournSubnav, Copy, wnySection, wnyWrap, wnyNarrow, wnyEyebrow, SCORE_EMAIL, LOGO, NAV });
