.competition-center{background:#f3f5f1;min-height:100vh}.competition-hero{background:linear-gradient(120deg,rgba(5,25,17,.96),rgba(15,61,46,.85)),url('../images/team.jpg') center/cover;color:#fff;padding:78px 5vw 64px}.competition-hero-inner{max-width:1220px;margin:auto}.competition-hero h1{font-size:clamp(46px,8vw,92px);line-height:.92;margin:12px 0 18px}.competition-hero p:last-child{font-size:clamp(17px,2vw,22px);max-width:760px;line-height:1.55}.competition-shell{max-width:1280px;margin:auto;padding:34px 5vw 80px}.year-nav,.session-nav{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;padding:4px 0 14px}.year-button,.session-button{border:1px solid #ccd5ce;background:#fff;color:#173323;border-radius:999px;padding:11px 18px;font-weight:900;white-space:nowrap;box-shadow:none}.year-button.active,.session-button.active{background:#0f3d2e;color:#fff;border-color:#0f3d2e}.overall-board{background:#fff;border:1px solid #d9ded8;border-radius:26px;overflow:hidden;box-shadow:0 18px 50px rgba(15,61,46,.09);margin:12px 0 30px}.board-kicker{text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:900;color:#738078}.board-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;padding:28px}.team-score{text-align:center}.team-score:first-child{text-align:left}.team-score:last-child{text-align:right}.team-name{font-size:clamp(20px,3vw,34px);font-weight:950}.team-points{font-size:clamp(56px,9vw,104px);line-height:.9;font-weight:950;margin-top:8px}.score-divider{text-align:center;color:#778078;font-weight:900}.score-divider strong{display:block;font-size:22px;color:#173323}.score-breakdown{display:grid;grid-template-columns:repeat(3,1fr);background:#f7f9f6;border-top:1px solid #d9ded8}.score-breakdown div{text-align:center;padding:16px;border-right:1px solid #d9ded8}.score-breakdown div:last-child{border-right:0}.score-breakdown strong{display:block;font-size:21px;color:#0f3d2e}.score-breakdown span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#737a73}.session-header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:18px 0}.session-header h2{font-size:clamp(30px,5vw,50px);margin:0}.session-meta{text-align:right;color:#69736b;font-weight:750}.session-score{display:flex;gap:8px;align-items:center;font-weight:900}.team-dot{width:13px;height:13px;border-radius:50%;display:inline-block}.match-list{display:grid;gap:18px}.match-card{background:#fff;border:1px solid #d9ded8;border-radius:24px;overflow:hidden;box-shadow:0 10px 34px rgba(15,61,46,.07)}.match-summary{display:grid;grid-template-columns:1fr minmax(120px,180px) 1fr;align-items:center;gap:18px;padding:22px;cursor:pointer}.match-side{display:flex;align-items:center;gap:12px}.match-side.side-b{justify-content:flex-end;text-align:right}.player-stack{display:flex}.side-b .player-stack{order:2}.player-stack img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #fff;margin-left:-10px;box-shadow:0 3px 12px rgba(0,0,0,.15)}.player-stack img:first-child{margin-left:0}.side-label{font-weight:900;font-size:16px;line-height:1.35}.match-result{text-align:center}.match-result strong{display:block;font-size:26px;color:#0f3d2e}.match-result span{display:block;color:#6f776f;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.match-result button{background:transparent;color:#0f3d2e;box-shadow:none;padding:7px 8px;margin-top:4px;font-size:12px}.match-details{display:none;border-top:1px solid #d9ded8;background:#fafbf9;padding:20px}.match-card.open .match-details{display:block}.hole-scroll{overflow-x:auto;padding-bottom:8px}.hole-grid{display:grid;grid-template-columns:repeat(18,minmax(56px,1fr));min-width:1008px;border:1px solid #cfd7d0;border-radius:14px;overflow:hidden}.hole-cell{border-right:1px solid #d7ddd8;text-align:center;background:#fff}.hole-cell:last-child{border-right:0}.hole-number{background:#0f3d2e;color:#fff;font-weight:900;padding:7px}.hole-scores{padding:9px 3px;font-size:12px;line-height:1.35}.hole-marker{height:6px}.hole-status{font-size:10px;color:#687169;padding:0 3px 8px;min-height:30px}.details-note{color:#6c746d;font-size:12px;margin:10px 0 0}.net-card{background:#fff;border:1px solid #d9ded8;border-radius:26px;overflow:hidden;box-shadow:0 12px 38px rgba(15,61,46,.08)}.podium{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0}.podium-place{text-align:center;padding:28px 16px;border-right:1px solid #d9ded8;position:relative}.podium-place:last-child{border-right:0}.podium-place:nth-child(1){background:linear-gradient(#fff8dc,#fff)}.podium-place img{width:82px;height:82px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 8px 20px rgba(0,0,0,.14)}.place-number{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#0f3d2e;color:#fff;font-weight:950;position:absolute;top:16px;right:16px}.podium-place h3{margin:12px 0 4px}.podium-place p{margin:3px 0;color:#667068}.podium-points{font-size:26px;font-weight:950;color:#0f3d2e}.standings-table{width:100%;border-collapse:collapse}.standings-table th,.standings-table td{padding:14px 18px;border-top:1px solid #e0e5e0;text-align:left}.standings-table th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;background:#f5f7f4}.standings-table td:last-child,.standings-table th:last-child{text-align:right}.empty-state{padding:40px;background:#fff;border-radius:24px;text-align:center;color:#6a736b}@media(max-width:760px){.competition-shell{padding-left:4vw;padding-right:4vw}.board-head{grid-template-columns:1fr auto 1fr;padding:22px 14px;gap:10px}.team-name{font-size:17px}.team-points{font-size:54px}.score-breakdown{grid-template-columns:1fr}.score-breakdown div{border-right:0;border-bottom:1px solid #d9ded8}.score-breakdown div:last-child{border-bottom:0}.session-header{display:block}.session-meta{text-align:left;margin-top:8px}.match-summary{grid-template-columns:1fr;gap:12px}.match-side,.match-side.side-b{justify-content:flex-start;text-align:left}.side-b .player-stack{order:0}.match-result{border-top:1px solid #edf0ed;border-bottom:1px solid #edf0ed;padding:10px}.podium{grid-template-columns:1fr}.podium-place{border-right:0;border-bottom:1px solid #d9ded8}.podium-place:last-child{border-bottom:0}}


/* BGW match-card orientation and winner treatment */
.match-summary{position:relative;isolation:isolate;overflow:hidden}
.match-side,.match-result{position:relative;z-index:2}
.match-side .side-label{color:inherit!important}
.match-side-left{color:var(--left-team)}
.match-side-right{color:var(--right-team)}
.match-side.is-winner{color:#fff}
.match-side.is-winner small{color:rgba(255,255,255,.88)}
.match-card.winner-left .match-summary::before,.match-card.winner-right .match-summary::after{content:"";position:absolute;z-index:1;top:0;bottom:0;width:38%;pointer-events:none}
.match-card.winner-left .match-summary::before{left:0;background:var(--left-team);clip-path:polygon(0 0,78% 0,100% 50%,78% 100%,0 100%)}
.match-card.winner-right .match-summary::after{right:0;background:var(--right-team);clip-path:polygon(22% 0,100% 0,100% 100%,22% 100%,0 50%)}
.match-card.winner-left .match-side-left .player-stack img,.match-card.winner-right .match-side-right .player-stack img{border-color:rgba(255,255,255,.9)}
.hole-scorecard{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:stretch;min-width:0}
.scorecard-names{display:grid;grid-template-rows:33px 27px 27px 6px minmax(30px,1fr);border:1px solid #cfd7d0;border-right:0;border-radius:14px 0 0 14px;overflow:hidden;background:#fff;position:sticky;left:0;z-index:3}
.scorecard-hole-label{background:#0f3d2e;color:#fff;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;padding:0 10px}
.scorecard-player{display:flex;align-items:center;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap;border-bottom:1px solid #edf0ed}
.scorecard-status-label{display:flex;align-items:center;padding:0 10px;font-size:10px;font-weight:800;color:#687169;background:#fff}
.hole-scorecard .hole-scroll{padding-bottom:8px}
.hole-scorecard .hole-grid{border-radius:0 14px 14px 0;border-left:0}
@media(max-width:760px){
.match-summary{padding:0;gap:0}
.match-side{min-height:116px;padding:20px 62px 20px 20px}
.match-side.side-b{padding:20px 20px 20px 62px}
.match-result{margin:0 18px;padding:14px 8px;background:#fff;z-index:3}
.match-card.winner-left .match-summary::before,.match-card.winner-right .match-summary::after{width:100%;height:116px;opacity:1}
.match-card.winner-left .match-summary::before{top:0;bottom:auto;left:0;clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%)}
.match-card.winner-right .match-summary::after{top:auto;bottom:0;right:0;clip-path:polygon(14% 0,100% 0,100% 100%,14% 100%,0 50%)}
.match-side.is-winner{color:#fff}
.match-side.is-winner small{color:rgba(255,255,255,.88)}
.match-card.winner-left .match-side-left,.match-card.winner-right .match-side-right{z-index:4}
.match-card.winner-left .match-side-left .player-stack img,.match-card.winner-right .match-side-right .player-stack img{border-color:#fff}
.hole-scorecard{grid-template-columns:96px minmax(0,1fr);min-width:0}.scorecard-names{grid-template-rows:33px 27px 27px 6px minmax(30px,1fr)}
}


/* Team roster shown directly on the overall score graphic */
.year-button{min-width:max-content}.board-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-top:15px;text-align:left}.board-roster a{display:flex;align-items:center;gap:7px;color:#34443c;text-decoration:none;font-size:12px;font-weight:800;min-width:0}.board-roster img{width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.18);flex:none}.board-roster span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-chart{margin-top:28px;padding-top:24px;border-top:1px solid #dce4df}.net-chart h3{margin:0 0 14px;color:#173f31;font-size:1.25rem}.net-chart iframe{display:block;width:100%;height:620px;border:0;border-radius:16px;background:#f2f5f3}@media(max-width:760px){.board-roster{grid-template-columns:1fr}.board-roster a{font-size:11px}.net-chart iframe{height:500px}}
