:root { --ink:#14213d; --paper:#f4f7fb; --surface:#ffffff; --cream:#e7edf7; --accent:#2563eb; --accent-soft:#78a9ff; --muted:#53627a; --line:rgba(20,33,61,.16); color-scheme:light dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.45; }
button,select,input { font:inherit; }
button,select { cursor:pointer; }
.hero { min-height:430px; color:#fff; background-color:#081426; background-image:linear-gradient(90deg,rgba(8,20,38,.34),rgba(8,20,38,.05)),url('../brand/nextpitch-header-1600x650.png'); background-position:center; background-size:cover; position:relative; overflow:hidden; }
.hero::after { content:""; position:absolute; right:-120px; top:86px; width:490px; height:490px; border:1px solid rgba(120,169,255,.34); border-radius:50%; box-shadow:0 0 0 46px rgba(120,169,255,.035),0 0 0 92px rgba(120,169,255,.035); }
.home-mode .hero { overflow:visible; }
.home-mode .hero::after { z-index:0; }
.home-mode .hero-copy { z-index:4; }
.nav { max-width:1200px; margin:auto; padding:26px 30px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(255,255,255,.15); position:relative; z-index:1; }
.brand { color:#fff; text-decoration:none; font-size:14px; font-weight:900; letter-spacing:.08em; display:flex; align-items:center; gap:10px; }
.brand img { display:block; width:194px; height:auto; }
.brand-divider { width:1px; height:18px; background:rgba(255,255,255,.28); }
.brand-product { color:#f0f4fb; font-size:15px; letter-spacing:.1em; }
.product-nav { display:flex; align-self:stretch; gap:8px; }
.product-nav a { display:flex; align-items:center; padding:0 14px; border-bottom:3px solid transparent; color:#e0e7f2; text-decoration:none; font-size:15px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.product-nav .mobile-home-link { display:none; }
.product-nav a:hover,.product-nav a.active { border-bottom-color:var(--accent-soft); color:#fff; }
.product-nav a b { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:5px; padding:0 6px; border-radius:99px; background:var(--accent); color:#fff; font-size:11px; }
.season { color:#c4cfdf; font-size:12px; letter-spacing:.16em; }
.hero-copy { max-width:1200px; margin:auto; padding:64px 30px 52px; position:relative; z-index:1; }
.eyebrow { margin:0 0 16px; color:var(--accent-soft); font-weight:800; letter-spacing:.18em; font-size:12px; }
h1 { margin:0; max-width:630px; font-size:clamp(48px,7vw,82px); line-height:.88; letter-spacing:-.065em; }
h1 em { font-family:Georgia,serif; color:var(--accent-soft); font-weight:400; }
.intro { max-width:440px; margin:24px 0 28px; color:#cad4e5; line-height:1.55; }
.stats { display:flex; gap:28px; font-size:13px; color:#c4cfdf; text-transform:uppercase; letter-spacing:.07em; }
.stats b { color:#fff; font-size:17px; margin-right:5px; }
.home-team-search { position:relative; width:min(650px,100%); margin-top:28px; padding:14px 16px; border:1px solid rgba(255,255,255,.2); border-radius:10px; background:#fff; box-shadow:0 22px 55px rgba(0,0,0,.24); color:#14213d; }
.home-team-search>label { display:block; margin-bottom:7px; color:#53627a; font-size:11px; font-weight:900; letter-spacing:.12em; }
.home-team-search>input { min-height:40px; color:#14213d; font-size:18px; }
.home-team-suggestions { position:absolute; z-index:40; top:calc(100% + 7px); right:0; left:0; max-height:370px; overflow-y:auto; border:1px solid rgba(20,33,61,.18); border-top:3px solid #2563eb; border-radius:8px; background:#fff; box-shadow:0 24px 55px rgba(0,0,0,.35); color:#14213d; }
.home-team-suggestions[hidden] { display:none; }
.home-team-result { display:grid; grid-template-columns:42px minmax(130px,1fr) auto; align-items:center; gap:12px; min-height:65px; padding:10px 13px; border-bottom:1px solid rgba(20,33,61,.12); }
.home-team-result:last-child { border-bottom:0; }
.home-team-result>div:nth-child(2) { min-width:0; }
.home-team-result strong,.home-team-result small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-team-result strong { font-size:16px; }
.home-team-result small { margin-top:4px; color:#53627a; font-size:13px; }
.home-search-crest,.my-team-crest,.game-team-crest { display:grid; place-items:center; overflow:hidden; border:1px solid rgba(20,33,61,.16); border-radius:10px; background:#fff; color:#14213d; font-size:10px; font-weight:900; }
.home-search-crest { width:40px; height:40px; }
.home-search-crest img,.my-team-crest img,.game-team-crest img { width:100%; height:100%; object-fit:contain; padding:4px; }
.home-age-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.home-age-links a { padding:8px 10px; border-radius:6px; background:#e7edf7; color:#14213d; font-size:13px; font-weight:900; text-decoration:none; }
.home-age-links a:hover,.home-age-links a:focus-visible { background:#2563eb; color:#fff; }
.home-search-help { margin:10px 0 0; color:#c4cfdf; font-size:13px; }
.search-no-results { margin:0; padding:20px; color:#64748b; font-size:13px; text-align:center; }
main { max-width:1200px; margin:-26px auto 0; padding:0 30px 80px; position:relative; z-index:2; }
.team-mode .hero { min-height:92px; }
.team-mode .hero-copy { display:none; }
.team-mode .hero::after { top:-270px; }
.team-mode main { margin-top:0; }
.view-hidden { display:none!important; }
.home-intro { display:grid; grid-template-columns:1.1fr 1.3fr auto; align-items:center; gap:35px; padding:28px 30px; border:1px solid var(--line); background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.15); }
.home-intro p { margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.home-intro a,.my-teams-head>a { color:var(--accent); font-size:13px; font-weight:900; text-decoration:none; white-space:nowrap; }
.filter-shell { display:grid; grid-template-columns:.8fr 1fr 1.3fr 1.7fr auto; gap:1px; background:var(--line); border:1px solid var(--line); box-shadow:0 14px 34px rgba(9,18,36,.16); }
.filter-shell>label,.filter-shell>.search { min-width:0; display:flex; flex-direction:column; gap:7px; background:var(--surface); padding:14px 16px; font-size:11px; font-weight:800; letter-spacing:.11em; }
.filter-shell .search { position:relative; overflow:visible; }
.filter-shell .search>label { font:inherit; }
select,input { min-width:0; width:100%; border:0; color:var(--ink); font-size:16px; font-weight:700; outline:0; }
select { color:#14213d; -webkit-text-fill-color:#14213d; background:#fff; border:1px solid #cbd6e7; border-radius:6px; padding:7px 8px; color-scheme:light; }
select option { color:#14213d; background:#fff; font-weight:700; }
select:focus-visible { outline:3px solid rgba(37,99,235,.28); border-color:var(--accent); }
select:disabled { opacity:.55; cursor:not-allowed; }
input { background:transparent; }
input::placeholder { color:#728097; opacity:1; }
.club-suggestions { position:absolute; z-index:30; top:calc(100% + 1px); right:-1px; left:-1px; max-height:332px; overflow-y:auto; border:1px solid var(--line); border-top:3px solid var(--accent); background:var(--surface); box-shadow:0 22px 45px rgba(9,18,36,.27); letter-spacing:normal; }
.club-suggestions[hidden] { display:none; }
.club-suggestion { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; min-height:57px; padding:8px 11px; border:0; border-bottom:1px solid var(--line); background:var(--surface); color:var(--ink); text-align:left; }
.club-suggestion:last-child { border-bottom:0; }
.club-suggestion:hover,.club-suggestion.active { background:color-mix(in srgb,var(--accent) 9%,var(--surface)); }
.club-suggestion:focus-visible { position:relative; outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent); outline-offset:-3px; }
.club-suggestion>span { min-width:0; }
.club-suggestion strong,.club-suggestion small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.club-suggestion strong { font-size:15px; }
.club-suggestion small { margin-top:3px; color:var(--muted); font-size:12px; font-weight:700; }
.club-suggestion i { color:var(--accent); font-size:16px; font-style:normal; }
.teams { border:0; background:var(--accent); padding:0 22px; font-weight:800; color:#fff; white-space:nowrap; }
.teams span { color:#cfe0ff; }
.teams b { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:5px; padding:0 5px; border-radius:99px; background:#fff; color:#14213d; font-size:10px; }
.teams.active { background:#14213d; color:#fff; }
.teams.active span { color:var(--accent-soft); }
.starred-summary { display:flex; align-items:flex-start; justify-content:flex-end; gap:16px; padding:14px 16px; border:1px solid var(--line); border-top:0; background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.11); }
.starred-summary-label { flex:0 0 auto; padding-top:10px; color:var(--muted); font-size:12px; font-weight:900; letter-spacing:.11em; }
.starred-team-list { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.starred-team-chip { display:flex; align-items:stretch; min-width:0; min-height:38px; overflow:hidden; border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line)); border-radius:99px; background:var(--paper); color:var(--ink); font-size:13px; }
.starred-team-chip:hover { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--surface)); }
.starred-team-link { display:flex; align-items:center; gap:7px; min-width:0; padding:7px 10px 7px 12px; color:var(--ink); text-decoration:none; }
.starred-team-link:focus-visible,.starred-team-remove:focus-visible { position:relative; z-index:1; outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent); outline-offset:-3px; }
.starred-team-link>span { color:var(--accent); font-size:16px; }
.starred-team-chip strong { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.starred-team-chip small { padding:4px 6px; border-radius:5px; background:var(--cream); color:var(--muted); font-size:12px; font-weight:900; }
.starred-team-remove { display:grid; place-items:center; width:36px; min-height:100%; border:0; border-left:1px solid var(--line); background:transparent; color:var(--muted); font-size:18px; line-height:1; }
.starred-team-remove:hover { background:color-mix(in srgb,#a6414b 12%,var(--surface)); color:#a6414b; }
.my-teams-view { padding-top:45px; }
.my-teams-head { display:flex; align-items:end; justify-content:space-between; gap:30px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.my-teams-head p:last-child { max-width:580px; margin:11px 0 0; color:var(--muted); font-size:15px; line-height:1.6; }
.my-team-cards { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding-top:18px; }
.my-team-card { display:grid; grid-template-columns:58px minmax(0,1fr) auto 38px; align-items:center; gap:13px; min-height:92px; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.my-team-crest { width:56px; height:56px; }
.my-team-card>div:nth-child(2) { min-width:0; }
.my-team-card p { margin:0 0 4px; color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.my-team-card a { display:block; overflow:hidden; color:var(--ink); font-family:Georgia,serif; font-size:20px; text-overflow:ellipsis; text-decoration:none; white-space:nowrap; }
.my-team-card a:hover { color:var(--accent); }
.my-team-card div>span { display:block; margin-top:5px; color:var(--muted); font-size:13px; }
.my-team-rank { text-align:center; }
.my-team-rank small { display:block; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.08em; }
.my-team-rank b { display:block; margin-top:5px; color:var(--accent); font-family:Georgia,serif; font-size:20px; }
.my-team-card>button { width:36px; height:36px; border:0; border-radius:50%; background:var(--cream); color:var(--muted); font-size:18px; }
.my-team-card>button:hover { background:#a6414b; color:#fff; }
.my-teams-empty { padding:65px 20px; border-bottom:1px solid var(--line); text-align:center; }
.my-teams-empty>span { font-size:36px; color:var(--accent); }
.my-teams-empty h3 { margin:12px 0 7px; font-family:Georgia,serif; font-size:27px; }
.my-teams-empty p { margin:0 0 17px; color:var(--muted); font-size:13px; }
.my-teams-empty a { color:var(--accent); font-weight:900; }
.matchup-lab { display:grid; grid-template-columns:1.05fr 1fr; gap:22px 38px; margin-top:48px; padding:28px; border:1px solid var(--line); background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.1); }
.matchup-copy p:last-child { max-width:460px; margin:11px 0 0; color:var(--muted); font-size:15px; line-height:1.6; }
.matchup-search-wrap { position:relative; align-self:center; padding:13px 14px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.matchup-search-wrap>label { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.11em; }
.matchup-search-wrap input { min-height:38px; font-size:16px; }
.matchup-suggestions { position:absolute; z-index:25; top:calc(100% + 5px); right:0; left:0; max-height:300px; overflow-y:auto; border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:7px; background:var(--surface); box-shadow:0 20px 45px rgba(9,18,36,.28); }
.matchup-suggestions[hidden] { display:none; }
.matchup-suggestions button { display:grid; grid-template-columns:34px 1fr; align-items:center; gap:10px; width:100%; min-height:54px; padding:8px 11px; border:0; border-bottom:1px solid var(--line); background:var(--surface); color:var(--ink); text-align:left; }
.matchup-suggestions button:hover { background:color-mix(in srgb,var(--accent) 9%,var(--surface)); }
.matchup-suggestions strong,.matchup-suggestions small { display:block; }
.matchup-suggestions small { margin-top:3px; color:var(--muted); font-size:12px; }
.matchup-results { grid-column:1/-1; display:grid; gap:9px; }
.matchup-results>p { margin:0; padding:20px; border:1px dashed var(--line); color:var(--muted); font-size:13px; text-align:center; }
.projection-card { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:20px; padding:17px 20px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.projection-card>div:last-of-type { text-align:right; }
.projection-card small { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.08em; }
.projection-card strong { display:block; font-size:16px; }
.projection-card>b { color:var(--accent); font-family:Georgia,serif; font-size:34px; font-weight:400; white-space:nowrap; }
.projection-card>b span { padding:0 8px; color:var(--muted); }
.projection-card>p { grid-column:1/-1; margin:0; padding-top:11px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; text-align:center; }
.projection-card>p span { margin-left:12px; color:var(--accent); font-weight:900; }
.projection-card.unavailable { display:flex; justify-content:space-between; color:var(--muted); }
.projection-card.unavailable strong { color:var(--ink); }
.my-teams-schedule { padding-top:52px; }
.compact-empty { padding:35px 20px; }
.rankings-view { padding-top:58px; }
.rankings-head { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; padding-bottom:24px; }
.rankings-intro { max-width:650px; margin:13px 0 0; color:var(--muted); font-size:14px; line-height:1.55; }
.preseason-badge { flex:0 0 auto; padding:9px 12px; border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line)); border-radius:99px; background:color-mix(in srgb,var(--accent) 9%,var(--surface)); color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.11em; }
.ranking-filters { display:grid; grid-template-columns:.72fr 1fr 1.35fr 1.45fr 1fr auto; gap:1px; border:1px solid var(--line); background:var(--line); box-shadow:0 14px 34px rgba(9,18,36,.12); }
.ranking-filters label { min-width:0; display:flex; flex-direction:column; gap:7px; padding:13px 14px; background:var(--surface); font-size:11px; font-weight:800; letter-spacing:.11em; }
.ranking-mine { border:0; padding:0 18px; background:var(--accent); color:#fff; font-weight:900; white-space:nowrap; }
.ranking-mine.active { background:var(--ink); }
.ranking-note { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-top:15px; background:var(--line); border:1px solid var(--line); }
.ranking-note>div { display:flex; gap:14px; align-items:flex-start; padding:14px 16px; background:color-mix(in srgb,var(--surface) 88%,var(--paper)); }
.ranking-note strong { flex:0 0 auto; color:var(--accent); font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.ranking-note span { color:var(--muted); font-size:13px; line-height:1.5; }
.ranking-meta { display:flex; justify-content:space-between; padding:25px 0 10px; color:var(--muted); font-size:13px; }
.ranking-table-wrap { overflow-x:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ranking-table { width:100%; min-width:1030px; border-collapse:collapse; }
.ranking-table th { padding:12px 9px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.1em; text-align:left; text-transform:uppercase; }
.ranking-table th:first-child,.ranking-table td:first-child { padding-left:14px; }
.ranking-table td { height:70px; padding:9px; border-bottom:1px solid var(--line); font-size:14px; font-weight:700; white-space:nowrap; }
.ranking-table tbody tr:last-child td { border-bottom:0; }
.ranking-table tbody tr:hover { background:color-mix(in srgb,var(--accent) 5%,transparent); }
.rank-number { width:58px; color:var(--accent); font-family:Georgia,serif; font-size:18px!important; }
.ranking-team-cell { display:grid; grid-template-columns:24px 38px minmax(150px,1fr); gap:8px; align-items:center; }
.ranking-star { border:0; padding:2px; background:transparent; color:#70817b; font-size:19px; }
.ranking-star:hover,.ranking-star.active { color:var(--accent); }
.ranking-club-logo { display:grid; place-items:center; width:36px; height:36px; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; color:#14213d; font-size:10px; font-weight:900; }
.ranking-club-logo img { width:100%; height:100%; object-fit:contain; padding:3px; }
.ranking-team-name { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:4px; border:0; padding:0; background:transparent; color:inherit; text-align:left; }
.ranking-team-name strong { max-width:220px; overflow:hidden; text-overflow:ellipsis; font-size:15px; white-space:nowrap; }
.ranking-team-name small { max-width:230px; overflow:hidden; color:var(--muted); font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.ranking-team-name:hover strong { color:var(--accent); text-decoration:underline; }
.power-value { color:var(--accent); font-size:14px!important; font-weight:900!important; }
.ranking-table i[class^="form-"] { display:inline-grid; place-items:center; width:22px; height:22px; margin-right:3px; border-radius:50%; color:#fff; font-size:10px; font-style:normal; font-weight:900; }
.form-w { background:#237a57; }.form-d { background:#6e7786; }.form-l { background:#a6414b; }
.confidence { display:inline-block; width:54px; height:5px; margin-right:7px; overflow:hidden; border-radius:99px; background:var(--cream); vertical-align:middle; }
.confidence i { display:block; height:100%; background:var(--accent); }
.confidence-label { color:var(--muted); font-size:12px; }
.unranked { opacity:.72; }
.unranked-reason { color:var(--muted); font-size:11px; font-style:italic; }
.ranking-empty { padding:70px 20px; text-align:center; }
.ranking-empty h3 { margin:0 0 8px; font-family:Georgia,serif; font-size:27px; }
.ranking-empty p { margin:0; color:var(--muted); font-size:13px; }
.validation { display:grid; grid-template-columns:270px 1fr; gap:40px; margin-top:58px; padding:31px 0 0; border-top:1px solid var(--line); }
.validation h3 { margin:0 0 10px; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.validation>div:first-child>p:last-child { color:var(--muted); font-size:14px; line-height:1.55; }
.validation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.validation-grid article { display:grid; grid-template-columns:1fr 1fr; gap:13px; padding:15px; border:1px solid var(--line); background:var(--surface); }
.validation-grid article>span { grid-column:1/-1; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.validation-grid article.winner { border-color:color-mix(in srgb,var(--accent) 45%,var(--line)); box-shadow:inset 0 3px var(--accent); }
.validation-grid article div { display:flex; flex-direction:column; gap:4px; }
.validation-grid article b { font-family:Georgia,serif; font-size:22px; }
.validation-grid article small { color:var(--muted); font-size:11px; }
.validation-sample { grid-column:1/-1; margin:5px 0 0; color:var(--muted); font-size:11px; text-align:right; }
.team-detail { width:min(670px,calc(100vw - 30px)); max-height:calc(100vh - 30px); padding:28px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--ink); box-shadow:0 25px 80px rgba(0,0,0,.36); }
.team-detail::backdrop { background:rgba(4,10,21,.76); backdrop-filter:blur(3px); }
.confirm-dialog { width:min(430px,calc(100vw - 28px)); padding:26px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--ink); box-shadow:0 25px 80px rgba(0,0,0,.4); text-align:center; }
.confirm-dialog::backdrop { background:rgba(4,10,21,.76); backdrop-filter:blur(3px); }
.confirm-icon { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 14px; border-radius:50%; background:color-mix(in srgb,var(--accent) 13%,var(--surface)); color:var(--accent); font-size:22px; }
.confirm-dialog h3 { margin:0; font-family:Georgia,serif; font-size:28px; font-weight:400; }
.confirm-dialog p { margin:12px 0 22px; color:var(--muted); font-size:14px; line-height:1.5; }
.confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.confirm-actions button { min-height:46px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); font-size:13px; font-weight:900; }
.confirm-actions button.danger { border-color:#a6414b; background:#a6414b; color:#fff; }
.detail-close { position:absolute; top:15px; right:16px; width:34px; height:34px; border:0; border-radius:50%; background:var(--cream); color:var(--ink); font-size:22px; }
.detail-title { display:flex; align-items:center; gap:15px; padding-right:40px; }
.detail-title img { width:58px; height:58px; object-fit:contain; padding:4px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.detail-title h3 { margin:0; font-family:Georgia,serif; font-size:31px; font-weight:400; }
.detail-title>div>span { display:block; margin-top:5px; color:var(--muted); font-size:13px; }
.detail-ranks { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:25px; background:var(--line); border:1px solid var(--line); }
.detail-ranks div { display:flex; flex-direction:column; gap:6px; padding:14px; background:var(--paper); }
.detail-ranks small { color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.09em; }
.detail-ranks b { color:var(--accent); font-family:Georgia,serif; font-size:23px; }
.detail-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:18px; background:var(--line); border:1px solid var(--line); }
.detail-stats div { min-height:88px; display:flex; flex-direction:column; gap:6px; padding:14px; background:var(--surface); }
.detail-stats span { color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.detail-stats b { font-size:15px; }
.detail-stats small { color:var(--muted); font-size:12px; }
.detail-source,.detail-unranked { margin:18px 0 0; padding:14px; border-left:3px solid var(--accent); background:var(--paper); color:var(--muted); font-size:13px; line-height:1.55; }
.detail-unranked strong { color:var(--ink); }
.detail-unranked p { margin:6px 0 0; }
.team-page { padding-top:42px; }
.team-page-backlinks { display:flex; justify-content:space-between; margin-bottom:18px; }
.team-page-backlinks a { color:var(--accent); font-size:12px; font-weight:900; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; }
.team-page-backlinks a:hover { text-decoration:underline; }
.team-page-hero { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:26px; border:1px solid var(--line); background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.12); }
.team-page-identity { display:flex; align-items:center; gap:18px; min-width:0; }
.team-page-identity>img { flex:0 0 auto; width:76px; height:76px; object-fit:contain; padding:6px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.team-page-identity h2 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-page-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px 14px; margin-top:8px; }
.team-conference { color:var(--ink); font-size:15px; font-weight:800; }
.team-location { color:var(--muted); font-size:14px; font-weight:700; }
.team-location>span { color:var(--accent); }
.team-page-star { flex:0 0 auto; min-height:48px; padding:0 18px; border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line)); border-radius:8px; background:color-mix(in srgb,var(--accent) 9%,var(--surface)); color:var(--ink); font-size:12px; font-weight:900; }
.team-page-star span { margin-right:5px; color:var(--accent); font-size:17px; }
.team-page-star.active { background:var(--accent); color:#fff; }
.team-page-star.active span { color:#fff; }
.team-page-rating { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:14px; border:1px solid var(--line); background:var(--line); }
.team-page-rating article { display:flex; min-height:112px; flex-direction:column; gap:7px; padding:16px; background:var(--surface); }
.team-page-rating small { color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.1em; }
.team-page-rating b { color:var(--accent); font-family:Georgia,serif; font-size:29px; font-weight:400; }
.team-page-rating span { color:var(--muted); font-size:12px; line-height:1.4; }
.team-rating-unavailable { grid-column:1/-1; padding:23px; background:var(--surface); }
.team-rating-unavailable h3 { margin:0 0 6px; font-family:Georgia,serif; font-size:26px; font-weight:400; }
.team-rating-unavailable p:last-child { margin:0; color:var(--muted); font-size:12px; }
.team-page-summary { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; margin-top:14px; border:1px solid var(--line); background:var(--line); }
.team-page-summary>div { display:flex; min-height:78px; flex-direction:column; gap:7px; padding:13px; background:var(--paper); }
.team-page-summary>div>span { color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.team-page-summary>div>b { font-size:16px; }
.team-page-summary>p { grid-column:1/-1; margin:0; padding:12px 13px; background:var(--surface); color:var(--muted); font-size:13px; line-height:1.5; }
.team-page-summary i[class^="form-"] { display:inline-grid; place-items:center; width:22px; height:22px; margin-right:3px; border-radius:50%; color:#fff; font-size:10px; font-style:normal; }
.team-standings { margin-top:22px; border:1px solid var(--line); background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.1); }
.team-standings-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:24px; border-bottom:1px solid var(--line); }
.team-standings-head .eyebrow { margin-bottom:8px; }
.team-standings-head p:last-child { margin:8px 0 0; color:var(--muted); font-size:14px; }
.team-standings-head>a { flex:0 0 auto; color:var(--accent); font-size:13px; font-weight:900; text-decoration:none; }
#team-standings-content { display:grid; grid-template-columns:220px minmax(0,1fr); }
.team-standing-summary { display:flex; flex-direction:column; justify-content:center; gap:7px; min-height:170px; padding:24px; border-right:1px solid var(--line); background:var(--paper); }
.team-standing-summary>span { color:var(--muted); font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.team-standing-summary>strong { color:var(--accent); font-family:Georgia,serif; font-size:30px; font-weight:400; line-height:1.1; }
.team-standing-summary>small { color:var(--muted); font-size:13px; line-height:1.4; }
.team-standings-table-wrap { max-height:430px; overflow:auto; }
.team-standings-table { width:100%; min-width:620px; border-collapse:collapse; }
.team-standings-table th { position:sticky; top:0; z-index:1; padding:12px 14px; border-bottom:1px solid var(--line); background:var(--surface); color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.09em; text-align:left; text-transform:uppercase; }
.team-standings-table th:not(:nth-child(2)),.team-standings-table td:not(:nth-child(2)) { text-align:center; }
.team-standings-table td { height:62px; padding:9px 14px; border-bottom:1px solid var(--line); font-size:14px; font-weight:800; }
.team-standings-table tbody tr:last-child td { border-bottom:0; }
.team-standings-table tr.current { background:color-mix(in srgb,var(--accent) 11%,var(--surface)); box-shadow:inset 4px 0 var(--accent); }
.standing-rank { color:var(--accent); font-family:Georgia,serif; font-size:19px!important; }
.standing-team { display:flex; align-items:center; gap:11px; min-width:0; color:var(--ink); text-decoration:none; }
.standing-team:hover strong { color:var(--accent); text-decoration:underline; }
.standing-team>span:last-child { display:flex; min-width:0; flex-direction:column; gap:3px; }
.standing-team strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.standing-team small { color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.standing-crest { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; color:#14213d; font-size:10px; font-weight:900; }
.standing-crest img { width:100%; height:100%; object-fit:contain; padding:3px; }
.team-page-schedule { padding-top:50px; }
.team-page-error { padding:15px; }
.team-page-error p:last-child { color:var(--muted); }
.schedule { padding-top:58px; }
.schedule-head { display:flex; align-items:end; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:18px; gap:20px; }
.green { color:var(--accent); margin-bottom:7px; }
h2 { margin:0; font-family:Georgia,serif; font-size:36px; font-weight:400; }
.status-tabs { display:flex; gap:4px; background:var(--cream); border-radius:99px; padding:4px; }
.status-tabs button { border:0; border-radius:99px; background:transparent; color:var(--muted); padding:10px 15px; font-size:14px; font-weight:800; }
.status-tabs button.active { background:var(--ink); color:var(--surface); }
.result-meta { display:flex; justify-content:space-between; align-items:center; padding:15px 0; color:var(--muted); font-size:13px; letter-spacing:.02em; }
.date-row { display:flex; align-items:center; gap:18px; padding:29px 0 8px; color:var(--accent); font-size:12px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.date-row i { height:1px; background:var(--line); flex:1; }
.match-card { display:grid; grid-template-columns:190px minmax(300px,1fr) 310px; align-items:center; min-height:132px; border-bottom:1px solid var(--line); transition:background .15s ease; }
.match-card:hover { background:color-mix(in srgb,var(--surface) 60%,transparent); cursor:pointer; }
.match-card:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent); outline-offset:-3px; }
.match-time { display:grid; grid-template-columns:auto 1fr; align-items:baseline; column-gap:6px; padding-right:18px; }
.match-time b { font-family:Georgia,serif; font-size:29px; }
.match-time>span { font-size:11px; font-weight:900; letter-spacing:.04em; }
.match-time small { grid-column:1/-1; color:var(--muted); margin-top:8px; font-size:13px; }
.match-time em { grid-column:1/-1; color:var(--accent); margin-top:4px; font-size:12px; font-style:normal; }
.match-teams { display:grid; gap:14px; padding:0 28px; border-left:1px solid var(--line); }
.match-teams>.team-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; align-items:center; }
.team-entry { display:grid; grid-template-columns:24px minmax(0,1fr); gap:5px; align-items:center; min-width:0; }
.team-star { display:grid; place-items:center; width:24px; height:34px; border:0; border-radius:6px; background:transparent; padding:0; }
.team-star:hover { background:color-mix(in srgb,var(--accent) 10%,transparent); }
.team-star:focus-visible,.team-profile-link:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent); outline-offset:2px; }
.team-profile-link { display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; align-items:center; min-width:0; border-radius:7px; color:inherit; padding:2px 5px 2px 0; text-decoration:none; }
.team-profile-link:hover { background:color-mix(in srgb,var(--accent) 10%,transparent); color:var(--accent); }
.match-teams strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.star-glyph { color:#70817b; font-size:20px; line-height:1; transition:color .15s ease,transform .15s ease; }
.team-star:hover .star-glyph,.team-star.active .star-glyph { color:var(--accent); transform:scale(1.07); }
.club-logo { display:grid; place-items:center; width:32px; height:32px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; color:#14213d; font-size:10px; font-weight:900; letter-spacing:.04em; }
.club-logo img { display:block; width:100%; height:100%; object-fit:contain; padding:3px; }
.match-teams .age { font-size:11px; font-weight:800; background:var(--cream); padding:5px 8px; border-radius:4px; }
.score { min-width:20px; font-family:Georgia,serif; font-size:22px; text-align:right; }
.venue { display:flex; gap:12px; align-items:center; padding-left:28px; border-left:1px solid var(--line); min-width:0; }
.venue>span { color:var(--accent); font-size:20px; }
.venue div { display:flex; min-width:0; flex-direction:column; gap:5px; }
.venue b { font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.venue small { color:var(--muted); font-size:13px; }
.venue em { color:var(--accent); font-size:11px; font-style:normal; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.game-page { padding-top:42px; }
.game-page-hero { padding:25px; border:1px solid var(--line); background:var(--surface); box-shadow:0 14px 34px rgba(9,18,36,.12); }
.game-kicker { display:flex; align-items:end; justify-content:space-between; gap:20px; padding-bottom:19px; border-bottom:1px solid var(--line); }
.game-kicker>span { color:var(--muted); font-size:14px; }
.game-scoreboard { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:35px; padding-top:26px; }
.game-scoreboard>a { display:flex; align-items:center; gap:14px; min-width:0; color:var(--ink); text-decoration:none; }
.game-scoreboard>a:last-child { flex-direction:row-reverse; text-align:right; }
.game-team-crest { flex:0 0 auto; width:68px; height:68px; }
.game-scoreboard small { display:block; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.09em; }
.game-scoreboard strong { display:block; margin-top:6px; font-family:Georgia,serif; font-size:24px; }
.game-score { text-align:center; }
.game-score b { display:block; margin-top:5px; color:var(--accent); font-family:Georgia,serif; font-size:42px; font-weight:400; }
.game-score b span { padding:0 8px; color:var(--muted); }
.game-projection { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:34px; margin-top:16px; padding:25px; border:1px solid var(--line); background:var(--surface); }
.projection-heading>p:last-child { margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.55; }
.game-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:16px; border:1px solid var(--line); background:var(--line); }
.game-facts article { display:flex; min-height:105px; flex-direction:column; gap:7px; padding:16px; background:var(--surface); }
.game-facts small { color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.09em; }
.game-facts b { font-size:16px; line-height:1.4; }
.game-facts span { color:var(--muted); font-size:12px; }
.empty { padding:80px 20px; text-align:center; }
.empty>span { display:grid; place-items:center; margin:auto; width:54px; height:54px; border:1px solid var(--line); border-radius:50%; color:var(--accent); font-size:24px; }
.empty h3 { font-family:Georgia,serif; font-size:26px; margin:18px 0 8px; }
.empty p { margin:0; color:var(--muted); font-size:13px; }
.sentinel { display:flex; justify-content:center; gap:5px; padding:36px; }
.sentinel i { width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 1s infinite alternate; }
.sentinel i:nth-child(2) { animation-delay:.2s; }.sentinel i:nth-child(3) { animation-delay:.4s; }
.save-status { position:fixed; right:22px; bottom:22px; z-index:10; max-width:min(360px,calc(100vw - 32px)); padding:12px 16px; border:1px solid rgba(255,255,255,.16); border-radius:10px; background:#14213d; color:#fff; box-shadow:0 12px 35px rgba(0,0,0,.24); font-size:14px; font-weight:700; opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .18s ease,transform .18s ease; }
.save-status.show { opacity:1; transform:translateY(0); }
footer { max-width:1140px; margin:auto; padding:22px 0 34px; border-top:1px solid var(--line); display:flex; justify-content:space-between; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.09em; }
.fatal { margin:10vh auto; padding:30px; }
@keyframes pulse { to { opacity:.25; transform:translateY(-4px); } }
@media (max-width:900px) {
  .nav { gap:18px; }
  .season { display:none; }
  .filter-shell { grid-template-columns:1fr 1fr 1fr; }
  .search { grid-column:1/3; }
  .teams { min-height:55px; }
  .match-card { grid-template-columns:170px 1fr; padding:20px 0; }
  .venue { grid-column:2; border:0; padding:14px 0 0 28px; }
  .ranking-filters { grid-template-columns:1fr 1fr 1fr; }
  .ranking-search { grid-column:1/3; }
  .ranking-mine { min-height:54px; }
  .ranking-note { grid-template-columns:1fr; }
  .validation { grid-template-columns:1fr; gap:20px; }
  .team-page-summary { grid-template-columns:repeat(3,1fr); }
  .home-intro { grid-template-columns:1fr 1fr; }
  .home-intro>a { grid-column:1/-1; }
  .my-team-cards { grid-template-columns:1fr; }
  .matchup-lab,.game-projection { grid-template-columns:1fr; }
  .game-facts { grid-template-columns:1fr 1fr; }
  footer { margin:0 30px; }
}
@media (max-width:620px) {
  .hero { min-height:405px; }
  .hero::after { right:-280px; }
  .nav { flex-wrap:wrap; row-gap:14px; padding:20px; }
  .brand-divider,.brand-product { display:none; }
  .brand { width:100%; justify-content:center; gap:8px; font-size:13px; }
  .brand img { width:180px; }
  .product-nav { width:100%; min-height:42px; gap:0; margin-left:0; border-top:1px solid rgba(255,255,255,.12); }
  .product-nav a { flex:1; justify-content:center; padding:10px 5px 8px; font-size:13px; letter-spacing:.03em; }
  .product-nav .mobile-home-link { display:flex; }
  .product-nav a b { min-width:18px; height:18px; margin-left:3px; font-size:10px; }
  .hero-copy { padding:54px 20px 48px; }
  .hero-copy[data-view-panel="home"] h1 { font-size:45px; line-height:.95; }
  .intro { font-size:14px; }
  .stats { flex-wrap:wrap; gap:13px; }
  .home-team-search { margin-top:22px; padding:12px; }
  .home-team-search>input { min-height:46px; font-size:16px; }
  .home-team-result { grid-template-columns:38px minmax(0,1fr); }
  .home-search-crest { width:36px; height:36px; }
  .home-age-links { grid-column:1/-1; justify-content:flex-start; padding-left:50px; }
  .home-age-links a { padding:8px 10px; font-size:12px; }
  main { padding:0 10px 60px; }
  .home-intro { grid-template-columns:1fr; gap:16px; padding:22px 18px; }
  .home-intro>a { grid-column:auto; }
  select,input { min-height:48px; padding:11px 12px; font-size:16px; }
  input { border:1px solid #cbd6e7; border-radius:6px; background:#fff; color:#14213d; }
  .filter-shell { grid-template-columns:1fr; }
  .filter-shell>label,.filter-shell>.search { gap:8px; padding:14px; font-size:12px; }
  .filter-shell .search,.filter-shell .teams { grid-column:auto; }
  .filter-shell .teams { min-height:54px; font-size:15px; }
  .club-suggestions { max-height:310px; }
  .club-suggestion { min-height:60px; }
  .club-suggestion strong { font-size:15px; }
  .club-suggestion small { font-size:12px; }
  .starred-summary { align-items:stretch; flex-direction:column; gap:8px; padding:12px; }
  .starred-summary-label { padding-top:0; font-size:11px; }
  .starred-team-list { justify-content:flex-start; }
  .starred-team-chip { min-height:44px; font-size:14px; }
  .starred-team-chip small { font-size:11px; }
  .starred-team-remove { width:44px; font-size:20px; }
  .my-teams-view { padding-top:30px; }
  .my-teams-head { align-items:flex-start; flex-direction:column; gap:14px; }
  .my-team-card { grid-template-columns:50px minmax(0,1fr) 38px; min-height:86px; padding:11px; }
  .my-team-crest { width:48px; height:48px; }
  .my-team-card a { font-size:18px; }
  .my-team-rank { display:none; }
  .matchup-lab { gap:20px; margin-top:35px; padding:18px 14px; }
  .matchup-search-wrap input { min-height:46px; }
  .projection-card { grid-template-columns:1fr auto 1fr; gap:8px; padding:14px 10px; }
  .projection-card strong { font-size:12px; }
  .projection-card>b { font-size:28px; }
  .projection-card>p span { display:block; margin:5px 0 0; }
  .projection-card.unavailable { align-items:flex-start; flex-direction:column; }
  .rankings-view { padding-top:44px; }
  .rankings-head { align-items:flex-start; flex-direction:column; gap:14px; }
  .preseason-badge { align-self:flex-start; }
  .ranking-filters { grid-template-columns:1fr; }
  .ranking-filters label { gap:8px; padding:14px; font-size:12px; }
  .ranking-search,.ranking-mine { grid-column:auto; }
  .ranking-mine { min-height:54px; font-size:15px; }
  .ranking-note>div { flex-direction:column; gap:6px; }
  .ranking-note strong { font-size:12px; }
  .ranking-note span { font-size:13px; }
  .ranking-meta { align-items:flex-start; flex-direction:column; gap:5px; font-size:13px; }
  .ranking-table th { font-size:11px; }
  .ranking-table td { font-size:14px; }
  .validation-grid { grid-template-columns:1fr; }
  .detail-ranks { grid-template-columns:1fr 1fr; }
  .detail-stats { grid-template-columns:1fr 1fr; }
  .team-detail { padding:22px 16px; }
  .schedule { padding-top:44px; }
  .schedule-head { align-items:flex-start; flex-direction:column; }
  h2 { font-size:31px; }
  .result-meta { align-items:flex-start; flex-direction:column; gap:6px; font-size:13px; }
  .match-card { grid-template-columns:105px minmax(0,1fr); min-height:0; padding:19px 0; }
  .match-time { padding-right:12px; }
  .match-time b { font-size:24px; }
  .match-time>span { font-size:11px; }
  .match-time small { font-size:13px; }
  .match-time em { font-size:12px; }
  .match-teams { padding-left:15px; padding-right:0; }
  .match-teams>.team-row { grid-template-columns:minmax(0,1fr) auto auto; gap:5px; }
  .team-entry { grid-template-columns:21px minmax(0,1fr); gap:4px; }
  .team-star { width:21px; }
  .team-profile-link { grid-template-columns:30px minmax(0,1fr); gap:6px; }
  .club-logo { width:29px; height:29px; }
  .match-teams strong { font-size:15px; }
  .match-teams .age { font-size:11px; }
  .venue { grid-column:2; padding:13px 0 0 15px; }
  .venue b { max-width:210px; font-size:15px; }
  .venue small { font-size:13px; }
  .venue em { font-size:11px; }
  .team-page { padding-top:30px; }
  .team-page-hero { align-items:flex-start; flex-direction:column; padding:18px; }
  .team-page-identity { align-items:flex-start; }
  .team-page-identity>img { width:58px; height:58px; }
  .team-page-identity h2 { font-size:28px; white-space:normal; }
  .team-page-meta { align-items:flex-start; flex-direction:column; gap:6px; }
  .team-conference { font-size:16px; }
  .team-location { font-size:15px; }
  .team-page-star { width:100%; }
  .team-page-rating { grid-template-columns:1fr 1fr; }
  .team-page-summary { grid-template-columns:1fr 1fr; }
  .team-page-summary>div>span { font-size:11px; }
  .team-page-summary>div>b { font-size:16px; }
  .team-page-summary>p { font-size:13px; }
  .team-standings-head { align-items:flex-start; flex-direction:column; padding:18px; }
  #team-standings-content { grid-template-columns:1fr; }
  .team-standing-summary { min-height:0; padding:18px; border-right:0; border-bottom:1px solid var(--line); }
  .team-standings-table-wrap { max-height:390px; }
  .team-standings-table td { height:64px; font-size:14px; }
  .team-page-schedule { padding-top:42px; }
  .game-page { padding-top:30px; }
  .game-page-hero { padding:18px 14px; }
  .game-kicker { align-items:flex-start; flex-direction:column; }
  .game-scoreboard { grid-template-columns:1fr; gap:20px; }
  .game-scoreboard>a,.game-scoreboard>a:last-child { flex-direction:row; text-align:left; }
  .game-team-crest { width:54px; height:54px; }
  .game-score { order:3; padding-top:16px; border-top:1px solid var(--line); }
  .game-projection { gap:20px; padding:18px 14px; }
  .game-facts { grid-template-columns:1fr 1fr; }
  .game-facts article { min-height:96px; padding:13px; }
  footer { margin:0 10px; flex-direction:column; gap:10px; font-size:12px; }
}
@media (max-width:420px) {
  .nav { gap:8px; }
  .brand img { width:168px; }
  .product-nav a { padding:9px 4px 7px; }
}
@media (prefers-color-scheme:dark) {
  :root { --paper:#080f1d; --surface:#101b30; --ink:#f4f7ff; --cream:#182844; --accent:#77a7ff; --accent-soft:#9bc1ff; --muted:#9aa9c2; --line:rgba(215,226,245,.16); }
  .teams { color:#081226; }
  .teams.active { background:var(--accent-soft); color:#081226; }
  .match-card:hover { background:rgba(255,255,255,.025); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .sentinel i { animation:none; } }

/* NextPitch iOS product concept */
:root { color-scheme:light; --paper:#f3f6fa; --surface:#fff; --ink:#081426; --muted:#667085; --line:rgba(8,20,38,.09); --accent:#2563eb; --accent-soft:#72b7ff; }
body { min-height:100%; padding-bottom:82px; background:linear-gradient(180deg,#eef3f8 0,#f7f9fc 720px); font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.hero { min-height:540px; overflow:visible; background:#081426; background-image:radial-gradient(circle at 82% 18%,rgba(37,99,235,.28),transparent 30%),radial-gradient(circle at 92% 70%,rgba(99,230,190,.1),transparent 27%); }
.hero::before { content:""; position:absolute; inset:auto -80px -120px auto; width:430px; height:430px; border:1px solid rgba(114,183,255,.14); border-radius:50%; box-shadow:0 0 0 60px rgba(114,183,255,.025),0 0 0 120px rgba(114,183,255,.02); }
.hero::after { width:220px; height:420px; top:126px; right:8%; border:0; border-left:1px solid rgba(99,230,190,.3); border-radius:50%; box-shadow:none; transform:rotate(26deg); }
.nav { max-width:1100px; padding:22px 26px; border-bottom-color:rgba(255,255,255,.1); }
.brand img { width:166px; }
.brand-divider,.brand-product { display:none; }
.product-nav { gap:2px; }
.product-nav a { min-height:42px; padding:0 15px; border:0; border-radius:12px; color:#aebbd0; font-size:12px; letter-spacing:.03em; text-transform:none; }
.product-nav a:hover,.product-nav a.active { border:0; background:rgba(255,255,255,.08); color:#fff; }
.season { padding:7px 10px; border:1px solid rgba(255,255,255,.12); border-radius:99px; font-size:10px; }
.hero-copy { max-width:1100px; padding:58px 26px 82px; }
.hero-season-pill { display:inline-flex; align-items:center; gap:8px; margin-bottom:30px; padding:7px 11px; border:1px solid rgba(255,255,255,.12); border-radius:99px; background:rgba(255,255,255,.06); color:#d5dfed; font-size:11px; font-weight:750; }
.hero-season-pill span { width:7px; height:7px; border-radius:50%; background:#63e6be; box-shadow:0 0 0 4px rgba(99,230,190,.12); }
.hero-copy .eyebrow { margin-bottom:12px; color:#72b7ff; }
h1 { max-width:700px; font-size:clamp(48px,6vw,76px); line-height:.98; letter-spacing:-.055em; }
h1 em { color:#fff; font-family:inherit; font-style:normal; font-weight:750; }
.intro { max-width:510px; margin-top:21px; color:#aebbd0; font-size:16px; }
.home-team-search { width:min(600px,100%); margin-top:29px; padding:12px 15px; border-color:rgba(255,255,255,.12); border-radius:16px; box-shadow:0 25px 60px rgba(0,0,0,.3); }
.home-team-search>input { min-height:42px; font-size:17px; }
.home-search-help { color:#8796ad; }
main { max-width:1100px; margin:-42px auto 0; padding:0 26px 90px; }
.home-dashboard { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; }
.next-match-card,.insight-card { min-height:240px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 15px 45px rgba(8,20,38,.09); }
.next-match-card { padding:21px 22px 17px; }
.card-label { display:flex; align-items:center; justify-content:space-between; color:#718096; font-size:10px; font-weight:850; letter-spacing:.14em; }
.card-label button { border:0; background:transparent; color:#98a2b3; letter-spacing:2px; }
.card-label small { color:#98a2b3; font-size:10px; letter-spacing:.08em; }
.next-match-date { display:flex; justify-content:space-between; gap:16px; margin-top:15px; padding-bottom:15px; border-bottom:1px solid var(--line); }
.next-match-date strong { font-size:17px; }
.next-match-date span { color:var(--muted); font-size:13px; }
.next-match-teams { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:15px; padding:17px 0; }
.next-match-teams>div { display:flex; align-items:center; gap:9px; min-width:0; }
.next-match-teams>div:last-child { flex-direction:row-reverse; text-align:right; }
.next-match-teams b { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.next-match-teams em { color:#98a2b3; font-size:11px; font-style:normal; font-weight:800; text-transform:uppercase; }
.demo-crest { flex:0 0 auto; display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#081426; color:#63e6be; font-size:10px; font-weight:900; }
.demo-crest.away { background:#e8eef7; color:#2563eb; }
.demo-crest { overflow:hidden; border:1px solid rgba(8,20,38,.1); background:#fff; }
.demo-crest.away { background:#fff; }
.demo-crest img { display:block; width:100%; height:100%; padding:4px; object-fit:contain; }
.next-match-card>a,.next-match-action { display:flex; width:100%; align-items:center; justify-content:space-between; color:#2563eb; font-size:13px; font-weight:800; text-decoration:none; }
.next-match-action { padding:0; border:0; background:transparent; cursor:pointer; }
.next-match-empty { min-height:164px; display:flex; align-items:flex-start; flex-direction:column; justify-content:center; }
.next-match-empty-icon { display:grid; width:40px; height:40px; place-items:center; margin-bottom:13px; border-radius:13px; background:#eaf2ff; color:#2563eb; font-size:18px; font-weight:900; }
.next-match-empty strong { font-size:18px; letter-spacing:-.02em; }
.next-match-empty p { max-width:390px; margin-top:6px; color:var(--muted); font-size:13px; line-height:1.45; }
.insight-card { position:relative; overflow:hidden; padding:22px; border:0; background:#0e2240; color:#fff; text-align:left; }
.insight-card::after { content:""; position:absolute; width:230px; height:230px; right:-100px; bottom:-110px; border:1px solid rgba(99,230,190,.35); border-radius:50%; box-shadow:0 0 0 35px rgba(99,230,190,.04); }
.insight-top { display:flex; align-items:center; gap:8px; color:#9fb1ca; font-size:10px; font-weight:850; letter-spacing:.12em; }
.insight-top i { padding:4px 6px; border-radius:5px; background:#63e6be; color:#081426; font-style:normal; letter-spacing:.05em; }
.insight-card>strong { display:block; margin-top:18px; font-size:20px; }
.insight-card>small { display:block; margin-top:6px; color:#9fb1ca; }
.insight-score { display:flex; align-items:center; gap:10px; margin-top:25px; }
.insight-score b { font-family:Georgia,serif; font-size:35px; font-weight:400; }
.insight-score em { color:#7188a7; font-style:normal; }
.insight-score i { margin-left:auto; padding:7px 9px; border-radius:99px; background:rgba(99,230,190,.1); color:#63e6be; font-size:10px; font-style:normal; font-weight:800; }
.home-intro { margin-top:14px; border-radius:20px; box-shadow:none; }
.tab-bar { display:none; }
.premium-sheet { width:min(465px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); padding:28px; overflow:auto; border:0; border-radius:28px; background:#fff; color:#081426; box-shadow:0 30px 90px rgba(0,0,0,.45); }
.premium-sheet::backdrop { background:rgba(4,12,25,.74); backdrop-filter:blur(10px); }
.premium-close { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:34px; height:34px; border:0; border-radius:50%; background:#eef2f7; color:#64748b; font-size:21px; }
.premium-mark { display:grid; place-items:center; width:58px; height:58px; margin:2px auto 17px; border-radius:18px; background:#081426; }
.premium-mark img { width:30px; height:30px; }
.premium-kicker { margin:0 0 8px; color:#2563eb; font-size:11px; font-weight:900; letter-spacing:.15em; text-align:center; }
.premium-sheet h2 { font-family:inherit; font-size:31px; font-weight:800; letter-spacing:-.04em; text-align:center; }
.premium-lede { max-width:340px; margin:10px auto 20px; color:#667085; font-size:14px; line-height:1.55; text-align:center; }
.premium-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; overflow:hidden; border:1px solid #dae3ef; border-radius:15px; background:#dae3ef; }
.premium-preview span { padding:13px 7px; background:#f5f8fc; text-align:center; }
.premium-preview small,.premium-preview strong { display:block; }
.premium-preview small { color:#7c889c; font-size:8px; font-weight:850; letter-spacing:.08em; }
.premium-preview strong { margin-top:5px; color:#2563eb; font-family:Georgia,serif; font-size:22px; }
.premium-sheet ul { display:grid; gap:14px; margin:22px 0; padding:0; list-style:none; }
.premium-sheet li { display:grid; grid-template-columns:26px 1fr; gap:10px; }
.premium-sheet li>span { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#def9ef; color:#087d5d; font-size:12px; font-weight:900; }
.premium-sheet li strong,.premium-sheet li small { display:block; }
.premium-sheet li strong { font-size:14px; }
.premium-sheet li small { margin-top:2px; color:#7a8699; font-size:12px; }
.subscribe-button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; padding:0 18px; border:0; border-radius:15px; background:#2563eb; color:#fff; box-shadow:0 10px 24px rgba(37,99,235,.24); font-size:14px; font-weight:850; }
.subscribe-button b { font-size:13px; }
.subscribe-button.confirmed { background:#087d5d; }
.premium-terms { margin:13px 0 0; color:#98a2b3; font-size:10px; text-align:center; }

@media (max-width:700px) {
  body { padding-bottom:88px; background:#f3f6fa; }
  .hero { min-height:500px; }
  .nav { min-height:68px; padding:14px 18px; }
  .brand img { width:146px; }
  .product-nav,.season { display:none; }
  .hero-copy { padding:42px 18px 72px; }
  .hero-season-pill { margin-bottom:25px; }
  .hero-copy .eyebrow { font-size:10px; }
  h1 { font-size:42px; line-height:1.01; }
  .intro { margin-bottom:20px; font-size:14px; }
  .home-team-search { margin-top:20px; border-radius:15px; }
  .home-search-help { display:none; }
  main { margin-top:-34px; padding:0 14px 50px; }
  .home-dashboard { grid-template-columns:1fr; }
  .next-match-card,.insight-card { min-height:0; border-radius:19px; }
  .insight-card { min-height:210px; }
  .home-intro { display:block; padding:21px; }
  .home-intro>p { margin-top:12px; }
  .home-intro>a { display:inline-block; margin-top:14px; }
  .tab-bar { position:fixed; z-index:90; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(4,1fr); min-height:78px; padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left)); border-top:1px solid rgba(8,20,38,.1); background:rgba(255,255,255,.92); box-shadow:0 -8px 28px rgba(8,20,38,.08); backdrop-filter:blur(18px); }
  .tab-bar a { position:relative; display:flex; align-items:center; flex-direction:column; justify-content:center; gap:3px; border-radius:12px; color:#8793a5; text-decoration:none; }
  .tab-bar a.active { color:#2563eb; }
  .tab-icon { font-size:22px; font-weight:600; line-height:1; }
  .tab-bar b { font-size:10px; }
  .tab-bar i { position:absolute; top:2px; right:12px; padding:2px 4px; border-radius:4px; background:#63e6be; color:#081426; font-size:7px; font-style:normal; font-weight:900; }
  .team-mode .hero { min-height:68px; }
  .team-mode main { padding-top:0; }
  .filter-shell { overflow:hidden; border-radius:16px; }
  .rankings-view,.my-teams-view { padding-top:26px; }
  footer { display:none; }
  .save-status { bottom:96px; }
  .premium-sheet { padding:25px 20px 20px; border-radius:25px; }
}

@media (prefers-color-scheme:dark) {
  :root { color-scheme:light; --paper:#f3f6fa; --surface:#fff; --ink:#081426; --muted:#667085; --line:rgba(8,20,38,.09); --accent:#2563eb; --accent-soft:#72b7ff; }
}

/* Website-wide iOS visual system */
body { padding-bottom:0; }
h2,.validation h3,.ranking-empty h3,.team-rating-unavailable h3,.empty h3,.confirm-dialog h3,.detail-title h3 { font-family:inherit; font-weight:780; letter-spacing:-.035em; }
h2 { font-size:34px; }
.eyebrow { color:#2563eb; font-size:11px; letter-spacing:.14em; }
.green { color:#2563eb; }
button,a,select,input { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible { outline:3px solid rgba(37,99,235,.3); outline-offset:3px; }
.insight-card { display:block; text-decoration:none; }
.team-mode .hero { min-height:88px; overflow:hidden; }
.team-mode .hero::before,.team-mode .hero::after { opacity:.42; }
.team-mode main { margin-top:0; }
body:not(.home-mode):not(.team-mode) .hero { min-height:430px; }

.home-intro,.filter-shell,.starred-summary,.my-team-card,.matchup-lab,.ranking-note,.validation,.team-page-hero,.team-standings,.game-page-hero,.game-projection,.game-facts,.confirm-dialog,.team-detail { border-color:var(--line); border-radius:20px; box-shadow:0 10px 32px rgba(8,20,38,.065); }
.home-intro,.matchup-lab,.validation,.team-page-hero,.team-standings,.game-page-hero,.game-projection { overflow:hidden; }
.home-intro { background:rgba(255,255,255,.92); }
.home-intro a,.my-teams-head>a,.team-standings-head>a,.team-page-backlinks a { color:#2563eb; }

.filter-shell,.ranking-filters { gap:0; overflow:visible; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(8,20,38,.075); }
.filter-shell>label,.filter-shell>.search,.ranking-filters label { border-right:1px solid var(--line); background:#fff; }
.filter-shell>label:first-child,.ranking-filters label:first-child { border-radius:20px 0 0 20px; }
select { min-height:42px; border-color:#d9e1ec; border-radius:11px; background:#f6f8fb; }
input { min-height:42px; }
.teams,.ranking-mine { border-radius:0 19px 19px 0; background:#2563eb; box-shadow:inset 0 1px rgba(255,255,255,.12); }
.teams.active,.ranking-mine.active { background:#081426; }
.club-suggestions,.matchup-suggestions,.home-team-suggestions { overflow:hidden auto; border-radius:15px; box-shadow:0 22px 55px rgba(8,20,38,.2); }
.club-suggestion,.home-team-result,.matchup-suggestions button { transition:background .16s ease; }
.starred-summary { margin-top:10px; border-top:1px solid var(--line); background:#fff; }
.starred-team-chip { min-height:42px; border-color:#d7e0ec; background:#f6f8fb; }

.my-teams-head,.schedule-head { border-bottom-color:var(--line); }
.my-team-cards { gap:14px; }
.my-team-card { border-radius:18px; background:#fff; box-shadow:0 7px 22px rgba(8,20,38,.055); }
.my-team-card>button { background:#eef3f8; }
.matchup-lab { border:0; border-radius:22px; background:#fff; }
.matchup-search-wrap { border:0; border-radius:15px; background:#f3f6fa; }
.projection-card { border-color:var(--line); border-radius:16px; background:#f5f8fc; }
.projection-card>b { color:#2563eb; }

.rankings-head { padding-bottom:20px; }
.preseason-badge { border:0; background:#e9f1ff; color:#2563eb; }
.ranking-note { gap:10px; border:0; background:transparent; box-shadow:none; }
.ranking-note>div { border:1px solid var(--line); border-radius:16px; background:#fff; }
.ranking-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 10px 30px rgba(8,20,38,.055); }
.ranking-table th { background:#f6f8fb; }
.ranking-table tbody tr { transition:background .16s ease; }
.ranking-table tbody tr:hover { background:#f1f6ff; }
.ranking-club-logo,.club-logo,.standing-crest,.my-team-crest,.game-team-crest,.team-page-identity>img { border-color:#dfe6ef; border-radius:12px; box-shadow:0 3px 10px rgba(8,20,38,.05); }
.validation { padding:25px; background:#fff; }
.validation-grid article { border-radius:15px; }

.status-tabs { padding:4px; background:#e8eef6; }
.status-tabs button { min-height:39px; padding:8px 15px; border-radius:99px; }
.status-tabs button.active { background:#fff; color:#081426; box-shadow:0 2px 8px rgba(8,20,38,.12); }
.result-meta { margin-bottom:4px; }
.date-row { padding-top:31px; }
.match-card { min-height:126px; margin-bottom:11px; padding:0 18px; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 6px 21px rgba(8,20,38,.05); }
.match-card:hover { background:#fbfdff; box-shadow:0 10px 28px rgba(8,20,38,.085); }
.match-teams,.venue { border-left-color:var(--line); }
.match-time b,.score,.rank-number,.standing-rank,.team-page-rating b,.team-standing-summary>strong,.game-score b { font-family:"Source Serif 4",Georgia,serif; }
.match-teams .age { border-radius:7px; background:#edf3fb; }
.team-profile-link { border-radius:10px; }

.team-page-backlinks { padding:3px 3px 0; }
.team-page-hero { padding:24px; border:0; border-radius:22px; background:#fff; }
.team-page-identity>img { width:82px; height:82px; }
.team-page-star { min-height:50px; border:0; border-radius:14px; background:#e9f1ff; color:#0c2d65; }
.team-page-star.active { background:#2563eb; }
.team-page-rating { gap:12px; border:0; background:transparent; }
.team-page-rating article { min-height:116px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 6px 20px rgba(8,20,38,.045); }
.team-page-summary { gap:10px; border:0; background:transparent; }
.team-page-summary>div,.team-page-summary>p { border:1px solid var(--line); border-radius:16px; background:#fff; }
.team-standings { border:0; border-radius:22px; background:#fff; }
.team-standing-summary { background:#f4f7fb; }
.team-standings-table th { background:#f6f8fb; }
.team-standings-table tr.current { background:#edf4ff; box-shadow:inset 4px 0 #2563eb; }

.game-page-hero,.game-projection { border:0; border-radius:22px; background:#fff; }
.game-scoreboard>a { padding:10px; border-radius:16px; }
.game-scoreboard>a:hover { background:#f4f7fb; }
.game-facts { gap:10px; border:0; background:transparent; box-shadow:none; }
.game-facts article { border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 5px 18px rgba(8,20,38,.045); }

.confirm-dialog,.team-detail { border:0; background:#fff; }
.confirm-actions button { border-radius:13px; }
.confirm-actions .danger { background:#b42335; color:#fff; }
.save-status { border:0; border-radius:14px; background:#081426; box-shadow:0 15px 40px rgba(8,20,38,.28); }
footer { color:#7e8a9c; }

@media (max-width:900px) {
  .filter-shell,.ranking-filters { overflow:hidden; }
  .filter-shell>label,.filter-shell>.search,.ranking-filters label { border-bottom:1px solid var(--line); }
  .teams,.ranking-mine { border-radius:0; }
  .match-card { padding:18px; }
}

@media (max-width:700px) {
  h2 { font-size:29px; }
  .nav { display:grid; grid-template-columns:minmax(0,1fr); justify-items:center; justify-content:stretch; border-bottom:0; }
  .brand { width:fit-content; justify-self:center; }
  .brand img { width:160px; }
  body:not(.home-mode):not(.team-mode) .hero { min-height:360px; }
  .hero-copy[data-view-panel="schedule"] { padding-bottom:68px; }
  .filter-shell,.ranking-filters { border-radius:18px; }
  .filter-shell>label:first-child,.ranking-filters label:first-child { border-radius:18px 18px 0 0; }
  .filter-shell>label,.filter-shell>.search,.ranking-filters label { border-right:0; }
  .teams,.ranking-mine { min-height:56px; border-radius:0 0 17px 17px; }
  .starred-summary { border-radius:17px; }
  .my-team-card { border-radius:17px; }
  .matchup-lab { border-radius:20px; }
  .ranking-note { gap:8px; }
  .ranking-table-wrap { border-radius:17px; }
  .match-card { grid-template-columns:94px minmax(0,1fr); margin-bottom:10px; padding:16px 13px; border-radius:17px; }
  .match-teams { padding-left:12px; }
  .venue { padding-left:12px; }
  .team-page-hero,.team-standings,.game-page-hero,.game-projection { border-radius:19px; }
  .team-page-rating,.team-page-summary,.game-facts { gap:8px; }
  .team-page-rating article,.team-page-summary>div,.team-page-summary>p,.game-facts article { border-radius:15px; }
  .team-page-identity>img { width:64px; height:64px; }
  .team-page-backlinks { margin-bottom:13px; }
  .tab-bar b { font-size:11px; }
}
