/* v14: final shared visual system. No remote fonts or runtime dependencies. */
:root{--type:"Segoe UI","Helvetica Neue",Arial,sans-serif;--accent:#c63c00;--muted:#616774;--line:#e0e3e7}
body,.admin-body,button,input,select,textarea{font-family:var(--type);font-weight:400;letter-spacing:normal;word-spacing:normal;line-height:1.6}
body{color:#202329;background:#fff}
*{min-width:0}
[hidden]{display:none!important}
h1,h2,h3,h4,.section-title h2,.hero h1,.admin-topbar h1,.panel-intro h2{font-family:var(--type);font-weight:700;line-height:1.16;letter-spacing:-.025em;word-spacing:normal;text-transform:none;text-shadow:none;text-wrap:balance}
h1{font-size:clamp(2.2rem,4vw,3.5rem)}
h2,.section-title h2{font-size:clamp(1.9rem,3.2vw,2.8rem)}
h3{font-size:1.2rem;line-height:1.35;letter-spacing:-.01em}
p{line-height:1.7}
strong,b{font-weight:700}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer}
:focus-visible{outline:3px solid #e86629;outline-offset:4px}
.eyebrow,.hero .eyebrow,.notice-tag,.card-head span{font-size:.7rem;font-weight:700;line-height:1.5;letter-spacing:.13em;color:var(--accent)}
.eyebrow{display:block;margin-bottom:.65rem}
.section{padding:80px max(5vw,calc((100vw - 1240px)/2));scroll-margin-top:110px}
.section-title{gap:3rem;align-items:start;margin-bottom:2rem}
.section-title>div{flex:1.1}.section-title>p{flex:1;margin:0;max-width:490px;color:#616774}
.section-title h2:after{width:36px;height:3px;margin-top:1.05rem;border-radius:2px}
.gamebar{font-size:.72rem;letter-spacing:.02em;padding:.55rem 5vw;background:#08090b;border:0}
.gamebar strong{font-weight:600;color:#ff986b}
.site-header{height:92px;padding-inline:max(4vw,calc((100vw - 1280px)/2));background:#111315;box-shadow:none;border-color:#303235}
.site-header nav{gap:1.25rem}.site-header nav a{font-size:.83rem;font-weight:600;letter-spacing:0}
.site-header .portal-link{padding:.65rem .95rem;background:#e64b09!important;border-radius:6px;box-shadow:none;color:white!important}
.hero{grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);min-height:620px;gap:6vw;padding-block:80px;background-position:center;background-image:linear-gradient(90deg,rgba(6,8,10,.94),rgba(6,8,10,.72) 48%,rgba(6,8,10,.3)),url('hardcourt-hero.png')}
.hero:after{display:none}
.hero .eyebrow{background:none;border:0;padding:0;backdrop-filter:none;color:#ff986b}
.hero h1{font-size:clamp(3.4rem,5.7vw,5.4rem);line-height:1.04;letter-spacing:-.035em;margin:.6rem 0 1.5rem;color:#fff}
.hero h1 em{display:inline;color:#ff783a;letter-spacing:inherit;text-shadow:none}
.hero-copy>p{font-size:1.05rem;line-height:1.8;max-width:530px;padding:0;border:0;color:#d1d3d6}
.actions{flex-wrap:wrap;gap:.7rem;margin-top:1.75rem}
.btn,.tabs button{font-family:var(--type);font-weight:600;letter-spacing:0;font-size:.87rem;line-height:1.4}
.btn{padding:.8rem 1.15rem;border-width:1px;border-radius:6px;min-height:44px}
.btn.primary{background:#c63c00;border-color:#c63c00;color:white}
.hero .btn{background:transparent;border-color:#74777b;backdrop-filter:none}
.hero .btn.primary{background:#d94305;border-color:#d94305;color:#fff;box-shadow:none}
.next-card{align-self:center;margin:0;padding:1.5rem;background:rgba(17,20,23,.92);border:1px solid #494b4c;border-radius:12px;box-shadow:0 18px 48px #0003;backdrop-filter:none}
.card-head{gap:.75rem;align-items:start}.card-head span{color:#ff986b;font-size:.66rem}.card-head b{font-size:.75rem;font-weight:500;color:#afb5bc;text-align:right}
.next-card .game{grid-template-columns:48px minmax(0,1fr) 32px;gap:.75rem;padding:1.15rem 0}
.game time{font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums;color:#ff986b!important}
.game b{font-size:.9rem;font-weight:600;line-height:1.45}.game small{font-size:.8rem;color:#adb4bd}.game>span{font-size:.65rem;color:#b9c0c8;text-align:right}
.next-card>a{font-size:.8rem;font-weight:600;text-decoration:none;margin-top:1rem}
.league-pulse{background:#f6f7f8;color:#202329;box-shadow:none;border-bottom:1px solid #e0e3e7;padding-inline:max(5vw,calc((100vw - 1240px)/2))}
.league-pulse div{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1.7rem 2rem;border-right:1px solid #dfe2e6}
.league-pulse div:first-child{padding-left:0}.league-pulse strong{display:block;font-family:var(--type);font-size:2.6rem;font-weight:600;line-height:1.15;letter-spacing:-.035em;font-variant-numeric:lining-nums tabular-nums;color:#202329}
.league-pulse span{display:block;font-size:.77rem;font-weight:500;line-height:1.5;letter-spacing:.01em;text-transform:none;color:#616774}
.notice{margin:28px max(5vw,calc((100vw - 1240px)/2)) 0;padding:1rem 1.2rem;background:#fff8f4;color:#555c66;border:1px solid #f1dacd;border-left:3px solid #df672e;border-radius:6px;box-shadow:none;gap:1.5rem;font-size:.82rem}
.notice strong{color:#a73405;font-weight:600;margin-bottom:.15rem}.notice-tag{font-size:.62rem;color:#8c431f}
.calendar-jumps{margin:0 0 1.5rem;flex-wrap:wrap}.btn.mini.archive{background:#202329;border-color:#202329}.btn.mini{font-size:.8rem;min-height:40px}
.calendar-tools{align-items:center;gap:1.5rem}.filters{flex:1;flex-wrap:wrap}.filters label{font-size:.75rem;text-transform:none;font-weight:600;letter-spacing:0;flex:1;max-width:260px}
.filters select{width:100%;border-radius:6px;padding:.7rem;font:400 .86rem var(--type);min-height:44px}
.month-nav{gap:.7rem}.month-nav strong{font-size:1.06rem;min-width:150px;font-weight:600}.month-nav button{border-radius:6px}
.calendar-status{font-size:.83rem;font-weight:400;background:#f6f7f8;border:1px solid #e0e3e7;border-radius:6px;color:#555e69;padding:.8rem 1rem}
.calendar-scroll{overflow-x:auto;border-radius:8px;border:1px solid #d8dde2}
.calendar{box-shadow:none;border:0;min-width:0}.weekday{background:#202329;font-size:.65rem;font-weight:600;letter-spacing:.08em;padding:.8rem .3rem}
.calendar-day{min-height:110px;padding:.55rem;border-color:#e3e6e9}.day-number{font-size:.8rem;font-weight:600}.calendar-day.is-today{box-shadow:inset 0 0 0 2px #d65520}
.calendar-game{box-shadow:none;border-radius:4px;border-left-width:3px;padding:.5rem;background:#f6f7f8;overflow-wrap:anywhere;font-family:var(--type)}
.calendar-game b{color:#ac3507;font-size:.74rem}.calendar-game span,.calendar-game small{line-height:1.45;font-size:.72rem}.calendar-game em{font-weight:600}.calendar-game:hover b,.calendar-game:hover em{color:#ffad86}
.text-link{font-size:.84rem;font-weight:600;color:#a73405;text-underline-offset:4px}
.dark,.history{background:#131619}.dark .section-title p,.history .section-title p{color:#b8bfc7}.dark .eyebrow,.history .eyebrow{color:#ff986b}
.tabs{gap:.45rem}.tabs button{padding:.55rem .95rem;border-color:#c8cdd3;border-radius:6px;font-size:.8rem;font-weight:600;min-height:40px}
.tabs button.active{background:#202329;border-color:#202329;color:white}.dark .tabs button{border-color:#555d65;color:#d3d8de}.dark .tabs button.active{background:#f4763b;border-color:#f4763b;color:#17191c}
table{font-size:.87rem;font-variant-numeric:tabular-nums}th{font-size:.69rem;font-weight:600;letter-spacing:.06em;padding:.85rem 1rem;color:#aeb8c2}td{padding:.75rem 1rem;color:inherit}
th:nth-child(2),td:nth-child(2){text-align:left}tbody tr:hover{background:#ffffff07}.standings-division{font-size:.66rem;letter-spacing:.03em;text-transform:none;color:#9aa4af;font-weight:400}
.team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.team-card{padding:1.35rem;border-radius:8px;border-color:#e1e4e8;box-shadow:none;display:flex;flex-direction:column;align-items:start}
.team-card:before{width:3px;background:#d95621}.team-card span{font-size:.68rem;font-weight:600;letter-spacing:.05em;color:#68717d}.team-card h3{font-size:1.06rem;line-height:1.4;margin:.6rem 0 .4rem}.team-card small{font-size:.75rem;font-weight:400;color:#717985}
.team-card:after{font-size:.74rem;text-transform:none;font-weight:600;letter-spacing:0;color:#ad3608;margin-top:auto;padding-top:1.25rem}.team-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #1823330d;border-color:#c6ccd3}
.split{background:#f5f6f7;gap:5vw}.workflow{border:1px solid #e1e4e8;border-radius:10px;padding:2rem;box-shadow:none}.workflow li{font-size:.9rem;padding:.8rem 0}
.empty-state{border:1px solid #dce0e5;border-radius:8px;background:#fff;padding:1.5rem}.empty-state span{font-size:2.3rem;font-weight:600;line-height:1.3;color:#bd3b09}.empty-state strong{font-size:.85rem}.empty-state p{font-size:.83rem;color:#636d78}
.timeline{gap:1rem;background:none;border:0}.timeline article{background:#1c2025;border:1px solid #30363e;border-radius:8px;padding:1.6rem}.timeline time{display:block;font-size:1.4rem;font-weight:600;letter-spacing:0;color:#ff986b;margin-bottom:1.25rem}.timeline h3{font-size:1.06rem}.timeline p,.legacy-grid p{font-size:.86rem;color:#b7bec7}
.legacy-grid{gap:1.5rem;margin-top:2.5rem}.legacy-grid>div{background:transparent;border-top:1px solid #424950;padding:1.5rem 0 0}.legacy-grid h3{font-size:1.06rem}
.info{grid-template-columns:minmax(0,1fr) 310px;gap:5vw}.info-grid{gap:1.5rem;margin-top:2rem}.info-grid article{border-top:1px solid #dadfe4;padding-top:1.25rem}.info-grid h3{font-size:1.05rem}.info-grid p{font-size:.87rem;color:#606975}.info>aside{border:0;border-radius:10px;padding:1.8rem;background:#171b20}.info>aside p{font-size:.9rem;color:#bcc4cd}
footer{border-top:1px solid #333b43;padding:2rem max(5vw,calc((100vw - 1240px)/2));gap:1.5rem;background:#101316;font-size:.8rem}footer img{width:130px;height:87px;object-fit:contain;background:#fff;border-radius:5px}footer strong{font-weight:600}footer div span{font-size:.75rem;color:#a4afbb}footer nav{flex-wrap:wrap}footer a{text-decoration:none;color:#c1cad4}
.site-modal{border-radius:12px;border-top:4px solid #d65520;padding:2rem}.site-modal h2{font-size:1.9rem;line-height:1.2}.modal-roster{min-width:0}.modal-meta span{background:#eef0f3;color:#4c5764;border-radius:4px;font-size:.7rem;font-weight:500;text-transform:none}.modal-score{border-radius:8px}.modal-score strong{font-weight:600;font-size:1rem}.modal-score b{font-size:1.4rem}.modal-note{font-size:.85rem;line-height:1.7;border-radius:4px}
.portal-main{max-width:1150px}.portal-main>h1{font-size:clamp(2rem,4vw,3rem)!important}.portal-card{border:1px solid #e0e3e7;border-radius:10px;box-shadow:0 6px 25px #17243408}.portal-card h2{font-size:1.55rem!important}.portal-side{border-right:1px solid #353b42}.portal-side nav a{font-weight:500;font-size:.9rem}.field label{font-weight:600}.field input,.field select,.field textarea{border-radius:5px}.role-grid article{border-radius:6px}.role-grid p{font-size:.86rem}
.admin-body{background:#f3f5f7}.admin-shell{grid-template-columns:240px minmax(0,1fr)}.admin-sidebar{border-right:1px solid #343a42;background:#12161a}.admin-brand span{font-size:.65rem;font-weight:600;letter-spacing:.12em}.admin-sidebar nav button,.admin-side-footer button{font-family:var(--type);font-size:.83rem;line-height:1.45;font-weight:500}.admin-topbar{align-items:center;gap:1.5rem}.admin-topbar h1{font-size:clamp(1.65rem,2.5vw,2.45rem);margin:.2rem 0;line-height:1.2}.panel-intro h2{font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.2}.admin-topbar .eyebrow{font-size:.63rem}.admin-user{flex-shrink:0}.admin-user strong{font-size:.86rem}.welcome-strip{border-radius:10px;border-left-width:3px;box-shadow:none}.welcome-strip h2{font-size:1.85rem}.welcome-strip p{font-size:.9rem}.metric-grid article,.admin-card,.admin-team{border-radius:8px;box-shadow:none}.metric-grid article{border:1px solid #e0e4e8}.metric-grid strong{font:600 2rem/1.25 var(--type);letter-spacing:-.02em}.metric-grid span{font-size:.72rem;font-weight:500;text-transform:none;letter-spacing:0}.metric-grid small{font-size:.75rem}.admin-card h2{font-size:1.6rem}.admin-card h3{font-size:1.05rem}.panel-intro p{font-size:.9rem}.admin-team h3{font-size:1.05rem}.admin-team span,.admin-team small{font-size:.78rem}.admin-team:after{font-weight:600;font-size:.75rem}.admin-list-item{border-radius:6px;font-size:.9rem;overflow-wrap:anywhere}.admin-list-item small{font-size:.77rem}.admin-list-item time{font-weight:600}.status-pill,.game-status{font-weight:600;font-size:.65rem;letter-spacing:.03em}.admin-card label,.compact-field,.panel-intro label,.schedule-toolbar label{font-weight:600;font-size:.8rem;text-transform:none;letter-spacing:0}.admin-card input,.admin-card select,.admin-card textarea,.schedule-toolbar input,.schedule-toolbar select{font:400 .9rem/1.5 var(--type);border-radius:5px;min-height:42px}.admin-card input[type=checkbox]{min-height:0;width:auto}.request-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.request-summary strong{font-size:.85rem;font-weight:500;overflow-wrap:anywhere}.request-summary span{font-weight:600}.access-review legend{font-weight:600;font-size:.85rem;text-transform:none;letter-spacing:0}.review-warning{font-size:.85rem;font-weight:400}.team-editor,.access-review,#game-form,#announcement-form{border-radius:10px;border-top-width:4px}.permission-grid label,.review-checks label{font-size:.8rem;font-weight:400}.admin-standings-table th{color:#d5dce4}.admin-standings-block h3{background:#262d35;font-size:1rem}.text-button{font-family:var(--type);font-weight:600}.admin-side-footer a{font-weight:500}
@media(min-width:901px) and (max-width:1100px){.site-header nav{gap:.65rem}.site-header nav a{font-size:.76rem}.site-header{padding-inline:3vw}.hero{gap:3vw}.hero h1{font-size:3.8rem}}
@media(max-width:900px){.section{padding:56px 5vw}.site-header{height:80px}.site-header nav{top:80px;padding:1.2rem;background:#111315}.site-header nav a{padding:.45rem}.hero{grid-template-columns:1fr;gap:2.5rem;min-height:0;background-position:65% center}.hero h1{font-size:clamp(3.3rem,8vw,4.7rem)}.hero-copy{max-width:620px}.next-card{max-width:540px;width:100%;margin:0;align-self:auto}.league-pulse{grid-template-columns:repeat(4,minmax(0,1fr))}.league-pulse div{padding:1.3rem 1rem!important;border-bottom:0!important;border-right:1px solid #dfe2e6!important}.league-pulse div:last-child{border-right:0!important}.league-pulse strong{font-size:2.2rem}.section-title{display:block}.section-title>p{max-width:650px}.calendar{min-width:760px}#schedule{overflow:visible}.calendar-tools{display:flex;flex-wrap:wrap}.calendar-tools .filters{min-width:100%;margin-bottom:0}.month-nav{margin:0 0 1rem}.split,.info{grid-template-columns:1fr}.info>aside{max-width:540px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-jumps{margin-top:1.5rem}.portal-shell{display:block}.admin-shell{grid-template-columns:210px minmax(0,1fr)}.admin-topbar{flex-wrap:wrap}.admin-topbar .admin-user{flex-shrink:1;text-align:left}.admin-grid.two{grid-template-columns:1fr}}
@media(max-width:780px){.admin-shell{display:block}.admin-topbar{display:block}.admin-user{margin-top:1rem}.admin-sidebar{height:auto}.admin-main{padding:1.2rem 1rem 3rem}.admin-topbar h1{font-size:1.9rem}.admin-brand span{padding-left:.5rem}.admin-card-head{flex-wrap:wrap;align-items:start}.admin-card-head h2{font-size:1.35rem}}
@media(max-width:580px){.hero{padding-block:48px;min-height:0}.hero h1{font-size:clamp(2.75rem,11vw,3.8rem);line-height:1.08;letter-spacing:-.03em}.hero-copy>p{font-size:.95rem}.hero .actions{display:flex;flex-direction:column;align-items:stretch}.hero .eyebrow{font-size:.62rem}.next-card{padding:1.15rem}.league-pulse{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 5vw}.league-pulse div{padding:1.3rem 1rem!important}.league-pulse div:nth-child(2){border-right:0!important}.league-pulse div:nth-child(-n+2){border-bottom:1px solid #dfe2e6!important}.league-pulse strong{font-size:2.25rem}.league-pulse span{font-size:.75rem}.notice{margin:20px 5vw 0;display:block}.notice-tag{margin-top:.7rem}.section{padding:46px 5vw}.section-title h2,h2{font-size:1.85rem;line-height:1.18;letter-spacing:-.02em}.section-title{margin-bottom:1.5rem}.filters{display:flex}.filters label{max-width:none;flex:1 1 100%}.calendar-jumps{display:flex}.calendar-jumps .btn{flex:1;font-size:.75rem;padding:.65rem}.team-grid,.timeline,.legacy-grid,.info-grid{grid-template-columns:1fr}.team-card{padding:1.25rem}.workflow{padding:1.3rem}.legacy-grid{gap:1rem}.info{gap:2rem}.site-modal{padding:1.2rem}.site-modal h2{font-size:1.45rem;padding-right:2rem}.site-modal p{font-size:.9rem}.modal-roster{font-size:.8rem}.portal-main{padding:2rem 5vw}.portal-card{padding:1.25rem}.portal-side nav a{font-size:.8rem;padding:.6rem}.portal-side img{width:140px}.request-summary,.access-scope-grid{grid-template-columns:1fr}.roster-row{grid-template-columns:55px minmax(0,1fr) auto}.roster-row .text-button{font-size:.7rem;padding:0}.admin-user{display:flex;gap:.5rem;flex-wrap:wrap}.admin-user .btn{margin-left:0}.admin-topbar .eyebrow{font-size:.6rem}.welcome-strip{padding:1.3rem}.welcome-strip h2{font-size:1.5rem}footer{padding:1.75rem 5vw}footer img{width:105px;height:70px}footer div{flex:1}footer nav{gap:1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
