/* RCRD's own scoreboard-inspired visual system. */
:root{--sport-ink:#101c19;--sport-deep:#112c23;--sport-field:#183d2d;--sport-lime:#dcf46a;--sport-paper:#f4f5ee;--sport-line:#dfe5d9;--sport-muted:#67766d}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--sport-paper)}
body.logged-in .site-header{background:var(--sport-ink);border:0;color:#f7f9f0;min-height:78px}
body.logged-in .brand{font-size:1.65rem;letter-spacing:-.11em}
body.logged-in .site-header nav>a:not(.button){color:#b7c9bc;transition:color .2s}
body.logged-in .site-header nav>a:not(.button):hover{color:var(--sport-lime)}
body.logged-in .site-header nav .button{background:var(--sport-lime);color:var(--sport-ink);font-weight:800}
body.logged-in main{max-width:1500px;padding-bottom:100px}
body.logged-in .eyebrow{color:#47745a;letter-spacing:.17em;font-size:.72rem}
body.logged-in .button.lime{background:var(--sport-lime);color:var(--sport-ink);border-radius:10px;font-weight:850;padding:15px 22px;transition:transform .2s,background .2s}
body.logged-in .button.lime:hover{background:#efff9f;transform:translateY(-2px)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e97a50;outline-offset:3px}

.sport-dashboard-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;overflow:hidden;min-height:340px;margin:34px 0 18px;padding:clamp(30px,5vw,66px);border-radius:24px;background:radial-gradient(circle at 68% 10%,#28694a 0,transparent 32%),linear-gradient(120deg,#112a22 0%,#194e36 100%);color:#fff}
.sport-dashboard-hero:before{content:"";position:absolute;width:480px;height:480px;border:1px solid rgba(225,250,194,.13);border-radius:50%;right:-120px;top:-200px;box-shadow:0 0 0 68px rgba(225,250,194,.04),0 0 0 136px rgba(225,250,194,.03)}
.sport-dashboard-hero .eyebrow{color:var(--sport-lime);margin-bottom:24px}
.sport-dashboard-hero h1{position:relative;font-size:clamp(3.2rem,6.5vw,6.7rem);line-height:.88;max-width:710px;margin:0 0 20px;letter-spacing:-.09em;text-wrap:balance}
.sport-dashboard-hero .dashboard-hero-copy>p:not(.eyebrow){color:#c6d9cb;font-size:1.05rem;margin:0}
.dashboard-hero-actions{position:relative;display:flex;align-items:center;gap:22px;margin-top:30px;flex-wrap:wrap}
.hero-text-link{color:#f5ffe1;font-weight:750;text-decoration:underline;text-underline-offset:5px}
.dashboard-hero-score{position:relative;flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;text-align:right;min-width:185px;padding:18px 0}
.dashboard-hero-score>span{font-size:.73rem;color:#c1d5c5;text-transform:uppercase;letter-spacing:.13em;font-weight:800}
.dashboard-hero-score strong{font-size:clamp(3.5rem,6vw,6rem);line-height:1.1;letter-spacing:-.1em;font-variant-numeric:tabular-nums}
.dashboard-hero-score strong i{font-style:normal;color:var(--sport-lime);margin:0 .08em}
.dashboard-hero-score small{font-size:.7rem;letter-spacing:.15em;font-weight:800;color:#dce9d8}
.dashboard-hero-score small span{color:var(--sport-lime);margin:0 10px}
.sport-stats{gap:12px;margin-bottom:56px}
.sport-stats>div{position:relative;overflow:hidden;background:#fff;border:1px solid var(--sport-line);border-radius:14px;padding:24px 28px;min-height:145px;box-shadow:0 8px 24px rgba(19,51,35,.035)}
.sport-stats>div:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--sport-lime)}
.sport-stats span{color:var(--sport-muted);font-size:.71rem}
.sport-stats strong{font-size:3.35rem;letter-spacing:-.1em;color:var(--sport-ink)}
.sport-stats strong i{font-style:normal;font-size:.45em;letter-spacing:-.02em;margin-left:3px}
.sport-stats small{color:#78857b;font-size:.75rem;font-weight:650}
.sport-home-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.72fr);align-items:start;gap:20px}
.sport-home-grid .panel,.sport-home-grid .leaderboard{border-radius:20px}
.match-feed{padding:30px;background:transparent;border:0}
.match-feed .section-title{align-items:end;margin-bottom:20px}
.match-feed .section-title h2,.sport-section-heading h2{font-size:clamp(1.75rem,3vw,2.35rem);line-height:1;margin:0;letter-spacing:-.065em;color:var(--sport-ink)}
.match-feed .section-title a{color:#275b3d;font-size:.84rem;white-space:nowrap}
.score-card{border:1px solid #dce4d9;background:#fff;border-radius:16px;margin:0 0 12px;box-shadow:0 4px 16px rgba(16,32,25,.035);transition:transform .2s,box-shadow .2s,border-color .2s}
.score-card:hover{transform:translateY(-3px);border-color:#b6d8a0;box-shadow:0 14px 24px rgba(16,32,25,.085)}
.score-card-link{display:block;padding:20px 24px;color:var(--sport-ink)}
.score-card-top,.score-card-body{display:flex;justify-content:space-between;align-items:center;gap:20px}
.score-card-top{margin-bottom:17px}
.result-tag{display:inline-flex;align-items:center;min-width:54px;justify-content:center;background:#e9ede8;color:#435749;border-radius:5px;padding:5px 8px;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:900}
.result-tag.is-win{background:#e2f7c3;color:#215d2a}.result-tag.is-loss{background:#fff0e9;color:#b94732}
.score-card .match-date{font-size:.72rem;color:#89958b;letter-spacing:.07em;text-transform:uppercase}
.score-card-detail{min-width:0}.score-card-detail h3{font-size:1.21rem;margin:0 0 4px;line-height:1.2;letter-spacing:-.04em}
.score-card .score-card-meta{font-size:.78rem;color:#718075;margin:0 0 14px}
.score-card .score-card-players{color:#34463a;font-size:.85rem;line-height:1.4;margin:0}
.score-card-players span{font-size:.66rem;font-weight:900;color:#a1ada3;text-transform:uppercase;letter-spacing:.12em;margin:0 7px}
.score-card-result{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:2.45rem;letter-spacing:-.1em;font-variant-numeric:tabular-nums;line-height:1}
.score-card-result span{color:#b3c4b4;font-weight:300;margin:0 3px}
.score-card-more{display:block;margin-top:17px;padding-top:12px;border-top:1px solid #edf0eb;color:#38784b;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.score-card-more span{float:right;font-size:1.1rem;line-height:.8}
.sport-leaderboard{background:var(--sport-ink);color:#fff;padding:32px}
.sport-leaderboard .eyebrow{color:var(--sport-lime)!important}
.sport-leaderboard h2{font-size:2.15rem;margin:0 0 6px;letter-spacing:-.07em}
.sport-leaderboard h2 span{color:var(--sport-lime)}
.leaderboard-intro{font-size:.83rem;color:#a6b9ac;margin:0 0 25px}
.sport-leaderboard .leader-row{grid-template-columns:30px 1fr auto;padding:14px 0;border-color:#30453a;font-size:.85rem}
.sport-leaderboard .leader-row b{font-size:.78rem}
.sport-leaderboard .leader-row em{font-size:.76rem;color:#d5e5d0;font-weight:800}
.leaderboard-all{display:block;margin-top:22px;color:var(--sport-lime);font-size:.8rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}

.sport-profile{max-width:none;padding:34px 0 70px}
.profile-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;min-height:260px;padding:clamp(28px,4.5vw,60px);border-radius:22px;background:linear-gradient(115deg,#132d25,#1c543a);color:#fff}
.profile-hero:before{content:"";position:absolute;right:-80px;bottom:-230px;width:500px;height:500px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 80px rgba(255,255,255,.035),0 0 0 160px rgba(255,255,255,.02)}
.profile-hero-main{position:relative;display:flex;align-items:center;gap:26px;min-width:0}
.profile-avatar{flex:0 0 98px;width:98px;height:98px;border:4px solid var(--sport-lime);border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#367952;color:#fff;font-weight:900;font-size:2.4rem}
.profile-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.profile-hero .eyebrow{color:var(--sport-lime);margin-bottom:10px}
.sport-profile .profile-hero h1{font-size:clamp(2.6rem,5vw,5rem);line-height:.95;margin:0 0 13px;letter-spacing:-.08em}
.profile-subline{color:#cbdfce;margin:0;font-size:.9rem}.profile-subline span{padding:0 7px;color:var(--sport-lime)}
.profile-hero-mark{position:relative;color:rgba(255,255,255,.12);font-weight:900;font-size:9rem;letter-spacing:-.15em;line-height:1}.profile-hero-mark span{font-size:.4em;vertical-align:top;color:var(--sport-lime)}
.profile-content-grid{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.6fr);gap:38px;margin-top:44px;align-items:start}
.sport-section-heading{margin-bottom:23px}.sport-section-heading .eyebrow{margin-bottom:10px}
.performance-panel{background:#fff;border:1px solid var(--sport-line);border-radius:20px;padding:30px}
.performance-primary{display:flex;align-items:baseline;justify-content:space-between;margin-top:40px}.performance-primary strong{font-size:5rem;line-height:1;letter-spacing:-.1em;font-variant-numeric:tabular-nums}.performance-primary small{font-size:.43em;margin-left:4px}.performance-primary>span{font-size:.76rem;color:var(--sport-muted);font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.performance-meter{height:9px;background:#e7ecdf;border-radius:99px;overflow:hidden;margin:12px 0 28px}.performance-meter span{display:block;height:100%;background:linear-gradient(90deg,#4f9d55,var(--sport-lime));border-radius:99px}
.performance-lines>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid #edf0e9;font-size:.9rem}.performance-lines span{color:#63766a}.performance-lines strong{font-variant-numeric:tabular-nums;font-size:1.05rem}
.profile-bio{margin-top:26px;padding-top:26px;border-top:1px solid var(--sport-line);font-size:.9rem;line-height:1.55;color:#51665a}.profile-bio .eyebrow{margin-bottom:7px}
.profile-matches .score-card{margin-bottom:12px}.sport-empty{padding:30px;background:#fff;border:1px solid var(--sport-line);border-radius:14px}
.match-list .score-card{max-width:940px}.match-list{padding-bottom:55px}
.sport-page-heading{padding:72px 0 42px;border-bottom:1px solid var(--sport-line);margin-bottom:30px}
.sport-page-heading .eyebrow{margin-bottom:16px}
.sport-page-heading h1{font-size:clamp(3.7rem,7vw,7rem);letter-spacing:-.09em;line-height:.9;margin-bottom:20px}
.sport-page-heading h1 span{color:#94ba4d}
.sport-page-heading>p:last-child{font-size:1.03rem;color:#65766a;margin:0}
.sport-match-list{max-width:950px}
.sport-player-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;padding-bottom:60px}
.sport-player-grid .player-card{min-height:220px;display:flex;flex-direction:column;padding:23px;border-radius:16px;box-shadow:0 4px 16px rgba(16,32,25,.035);transition:transform .2s,box-shadow .2s,border-color .2s}
.sport-player-grid .player-card:hover{transform:translateY(-4px);border-color:#afd189;box-shadow:0 14px 25px rgba(16,32,25,.09)}
.player-card-top{display:flex;justify-content:space-between;align-items:start}
.sport-player-grid .avatar{overflow:hidden;width:54px;height:54px;background:#e3f3c1;color:#203728}
.sport-player-grid .avatar img{width:100%;height:100%;object-fit:cover}
.player-card-arrow{font-size:1.1rem;color:#578d58}
.sport-player-grid .player-card h2{font-size:1.5rem;margin:25px 0 16px;line-height:1.1}
.player-card-record{display:flex;gap:16px;margin-top:auto;padding-top:13px;border-top:1px solid var(--sport-line);color:#718276;font-size:.8rem}
.player-card-record span{display:flex;gap:5px;align-items:baseline}.player-card-record strong{font-size:1.1rem;color:#162c20}
.match-recap{max-width:1000px;padding:75px 0}
.match-recap h1{font-size:clamp(3.2rem,6vw,6rem);line-height:.94;letter-spacing:-.08em;margin-bottom:18px}
.match-recap>p:not(.eyebrow){color:#627568;font-weight:650}
.recap-score{background:linear-gradient(110deg,#10251d,#1f5036);border-radius:22px;box-shadow:0 20px 35px rgba(16,32,25,.13);padding:clamp(25px,4vw,50px)}
.recap-score p{color:var(--sport-lime)}.recap-score strong{color:var(--sport-lime);font-variant-numeric:tabular-nums}
.match-notes{background:#fff;border:1px solid var(--sport-line);border-radius:14px;padding:23px 27px;color:#4f6255}

@media(max-width:900px){.sport-home-grid,.profile-content-grid{grid-template-columns:1fr}.sport-leaderboard{order:2}.profile-hero-mark{font-size:6rem}.profile-content-grid{gap:28px}}
@media(max-width:700px){body.logged-in .site-header{min-height:70px}.sport-dashboard-hero{margin:18px 0 12px;min-height:0;display:block;padding:32px 25px}.sport-dashboard-hero h1{font-size:clamp(2.9rem,12vw,5rem)}.dashboard-hero-score{align-items:flex-start;text-align:left;margin-top:32px;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.2)}.dashboard-hero-score strong{font-size:3.6rem}.sport-stats{grid-template-columns:repeat(3,1fr);margin-bottom:40px}.sport-stats>div{min-height:118px;padding:16px 13px}.sport-stats strong{font-size:2.2rem}.sport-stats small{font-size:.65rem}.match-feed{padding:0}.profile-hero{padding:28px}.profile-hero-mark{display:none}.profile-avatar{flex-basis:74px;width:74px;height:74px;font-size:2rem}.profile-hero-main{gap:18px}.profile-content-grid{margin-top:28px}.performance-panel{padding:24px}.sport-page-heading{padding:48px 0 28px}.sport-page-heading h1{font-size:3.6rem}.recap-score{gap:8px}}
@media(max-width:480px){.score-card-link{padding:17px}.score-card-body{align-items:flex-start}.score-card-result{font-size:1.8rem}.score-card-detail h3{font-size:1.05rem}.score-card .score-card-players{font-size:.76rem}.score-card-players span{margin:0 3px}.sport-stats>div{border-radius:10px}.sport-stats span{font-size:.6rem}.sport-stats strong{font-size:1.85rem}.profile-hero-main{align-items:flex-start;flex-direction:column}.profile-hero h1{font-size:2.7rem}}

/* A result explains itself without knowing which player is signed in. */
.score-card-top{align-items:baseline;margin-bottom:14px}
.score-card-context{font-size:.82rem;font-weight:850;color:#263e2d;line-height:1.3}
.score-team-list{display:grid;gap:7px}
.score-team{display:grid;grid-template-columns:minmax(0,1fr) auto 54px;gap:10px;align-items:center;min-height:54px;padding:8px 12px 8px 16px;border-radius:8px;background:#edf2ec;color:#203429}
.score-team-winner{background:#17231e;color:#fff}
.score-team-loser{background:#fff0ed;color:#973e32}
.score-team-name{font-size:.91rem;font-weight:780;line-height:1.25;overflow-wrap:anywhere}
.score-team-outcome{font-size:.61rem;line-height:1;text-transform:uppercase;letter-spacing:.1em;font-weight:900;white-space:nowrap}
.score-team-winner .score-team-outcome{color:#dff56e}
.score-team-loser .score-team-outcome{color:#a34235}
.score-team-points{text-align:right;font-size:1.55rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.07em}
.score-card-more{margin-top:13px}
.dashboard-hero-actions .add-game-primary{background:var(--sport-lime);color:var(--sport-ink);font-weight:900}
.site-header nav .nav-add-game{background:var(--sport-lime)!important;color:var(--sport-ink)!important;border-radius:9px;padding:11px 16px;font-weight:900!important}
.site-header .desktop-nav{gap:18px}
.site-header .desktop-nav .nav-signout{background:#314337!important;color:#f4f8ec!important;padding:11px 16px;border-radius:999px}
@media(max-width:480px){.score-team{grid-template-columns:minmax(0,1fr) auto 35px;padding:9px 10px;gap:6px}.score-team-name{font-size:.78rem}.score-team-outcome{font-size:.52rem}.score-team-points{font-size:1.35rem}}

.archive-add-game{display:inline-block;margin-top:24px}
.add-game-heading{margin-bottom:24px}.add-game-heading h1{margin-bottom:18px}
.add-game-form{max-width:1000px;margin:0 auto 90px;display:grid;gap:15px}
.game-form-panel{display:grid;grid-template-columns:48px minmax(0,1fr);gap:20px;padding:30px;background:#fff;border:1px solid var(--sport-line);border-radius:17px}
.game-form-step{display:grid;place-items:center;width:43px;height:43px;border-radius:9px;background:var(--sport-ink);color:var(--sport-lime);font-size:.85rem;font-weight:900}
.game-form-panel h2{font-size:1.6rem;letter-spacing:-.05em;margin:3px 0 5px}
.game-form-panel h2+p{font-size:.87rem;color:#637468;line-height:1.5;margin:0 0 24px}
.game-form-grid,.game-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.game-form-grid label,.game-player-slot>label,.game-score-label,.game-note-label,.game-note-form>label{display:grid;gap:8px;font-size:.75rem;letter-spacing:.04em;font-weight:850;color:#304a36}
.add-game-form input,.add-game-form select,.add-game-form textarea,.game-note-form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #c7d3c4;border-radius:9px;background:#fbfcf8;color:var(--sport-ink);font:inherit;font-size:.88rem;letter-spacing:normal;outline:none}
.add-game-form input:focus,.add-game-form select:focus,.add-game-form textarea:focus,.game-note-form textarea:focus{border-color:#638d4f;box-shadow:0 0 0 3px rgba(179,225,107,.25)}
.game-form-hint{font-size:.77rem;color:#697b6e;margin:15px 0 0}
.game-team-fields{margin:0;padding:20px;border:1px solid var(--sport-line);border-radius:12px;min-width:0}
.game-team-fields legend{padding:0 7px;font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#243b2b}
.game-player-slot{display:grid;gap:7px;margin:9px 0 18px}.game-player-slot>span{text-align:center;color:#92a195;font-size:.72rem;font-weight:800;text-transform:uppercase}
.game-scoreboard{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:end;margin:16px 0 0;padding:15px 18px 18px;border:1px solid #bfd0bf;border-radius:12px;background:#f3f7ef}
.game-scoreboard-title{grid-column:1/-1;margin:0 0 2px;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#304a36}
.game-scoreboard label{display:grid;gap:7px;color:#304a36;font-size:.75rem;font-weight:850;letter-spacing:.04em}
.game-scoreboard input{min-height:56px!important;padding:8px 12px!important;border-color:#89a285!important;background:#fff!important;font-size:1.9rem!important;font-weight:900!important;line-height:1;text-align:center;font-variant-numeric:tabular-nums}
.game-score-divider{padding-bottom:12px;color:#799078;font-size:1.4rem;font-weight:700}
.game-note-label textarea{min-height:115px;resize:vertical;line-height:1.45}
.game-form-submit{display:flex;gap:20px;align-items:center;justify-content:flex-end;padding:10px 0}.game-form-submit button{border:0;cursor:pointer;font:inherit;font-weight:900}.game-form-submit>a{font-size:.88rem;font-weight:750;color:#4f6955}
.game-form-alert,.game-form-success{max-width:1000px;margin:12px auto 22px;padding:14px 17px;border-radius:10px;font-weight:750;font-size:.9rem}.game-form-alert{background:#fff0ec;color:#9c3526;border:1px solid #ebaf9f}.game-form-success{background:#e6f5d4;color:#245d2c;border:1px solid #b7d995}
.sport-recap-score{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:transparent;box-shadow:none;padding:0;margin:35px 0 50px}
.recap-team{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 15px;align-items:center;min-height:160px;padding:26px;border-radius:15px}
.recap-team span{grid-column:1/-1;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:900}
.recap-team h2{margin:0;font-size:clamp(1.2rem,2.3vw,1.9rem);line-height:1.2;letter-spacing:-.05em}
.recap-team strong{font-size:clamp(2.6rem,4vw,4.5rem);letter-spacing:-.08em;line-height:1}
.recap-winner{background:var(--sport-ink);color:#fff}.recap-winner span{color:var(--sport-lime)}
.recap-loser{background:#fff0ed;color:#973e32}.recap-loser span{color:#a34235}
.sport-recap-score .recap-loser strong{color:#973e32}
.recap-pending{background:#edf2ec;color:#203429}.recap-pending span,.sport-recap-score .recap-pending strong{color:#607969}
.sport-match-recap .game-notes{margin-top:20px}.game-note{padding:20px 23px;background:#fff;border:1px solid var(--sport-line);border-radius:11px;margin-bottom:10px}.game-note p{margin:0 0 10px;white-space:pre-wrap;line-height:1.5}.game-note small{color:#77877b;font-size:.75rem;font-weight:700}.game-notes-empty{color:#718276}.game-note-form{display:grid;gap:10px;margin-top:28px}.game-note-form button{justify-self:start;border:0;cursor:pointer;font:inherit;font-weight:850}
@media(max-width:700px){.game-form-panel{grid-template-columns:1fr;padding:22px}.game-form-panel>.game-form-step{width:auto;height:auto;place-content:start;background:transparent;color:#638d4f;border-radius:0;font-size:.72rem;letter-spacing:.09em}.game-form-grid,.game-team-grid{grid-template-columns:1fr}.sport-recap-score{grid-template-columns:1fr}.recap-team{min-height:110px}.game-form-submit{justify-content:flex-start}}
