/* Schedule above the conversation. */
.l-top-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,min(38%,440px));gap:24px;align-items:stretch}
.l-top-grid .l-next,.l-top-grid .l-calendar{display:flex;flex-direction:column}
.l-top-grid .l-next-foot,.l-top-grid .l-cal-agenda{margin-top:auto}
.l-top-grid .l-next{grid-column:1;grid-row:1}.l-top-grid .l-calendar{grid-column:2;grid-row:1}.l-top-grid .discussion{grid-column:1/-1;grid-row:2;margin:0;min-width:0}
.l-calendar{min-width:0;border-top:2px solid #ffe500}
.l-calendar .panel-head{gap:12px;flex-wrap:wrap}.l-calendar .panel-head h2{font-size:var(--fs-2xl)}
.l-cal-nav{display:flex;gap:4px;align-items:center}.l-cal-nav button{min-width:36px;min-height:36px;padding:8px!important}.l-cal-nav [data-cal-step]{font-size:var(--fs-3xl);line-height:1}
.l-cal-body{padding:0 24px 20px}.l-cal-week,.l-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.l-cal-week{color:#98b3d6;text-align:center;font-size:var(--fs-xs);padding-bottom:12px}
.l-cal-day{position:relative;display:flex;align-items:center;justify-content:center;min-height:40px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:#d5def0;font:inherit;font-size:var(--fs-md);cursor:pointer;padding:8px 4px 12px}
.l-cal-day.has-games{background:#00c9f216;color:#00c9f2;font-weight:var(--fw-bold)}.l-cal-day.is-today{border-color:#ffe500;color:#ffe500}
.l-cal-day[aria-pressed=true]{background:#ff008a25;border-color:#ff008a;color:#fff}.l-cal-day:hover{background:#ffffff12}.l-cal-day:focus-visible{outline:2px solid #00c9f2;outline-offset:2px}
.l-cal-day i,.l-cal-key i{width:4px;height:4px;border-radius:50%;background:#00c9f2}.l-cal-day i{position:absolute;bottom:5px}
.l-cal-key{display:flex;justify-content:space-between;gap:12px;margin-top:16px;color:#98b3d6;font-size:var(--fs-xs)}.l-cal-key span{display:flex;align-items:center;gap:8px}
.l-cal-agenda{border-top:1px solid #ffffff14;padding:16px 24px 20px;min-height:54px}.l-cal-agenda h3{font-size:var(--fs-sm);margin:0 0 8px;color:#98b3d6}.l-cal-agenda p{font-size:var(--fs-sm);color:#98b3d6;margin:0}.l-cal-agenda .game-row{padding:12px 0;width:100%;text-align:left}.l-cal-agenda .game-title{font-size:var(--fs-md)}
.discussion-empty{padding:12px 12px 8px}.discussion-empty>span{display:none}.discussion-empty h3{font-size:var(--fs-md)}.discussion-empty p{font-size:var(--fs-sm);max-width:430px}.discussion-scope{margin-bottom:16px}
.sidebar .nav-item[aria-current=location]:before{content:'';position:absolute;left:-22px;top:11px;bottom:11px;width:3px;background:#00c9f2}
.e-chart-zero{stroke:#98b3d6;stroke-width:1;stroke-dasharray:4 5}.e-cash-chart .e-chart-line{stroke:#ffe500}.e-cash-chart .e-chart-point{color:#ffe500}
@media(max-width:1050px){.l-top-grid{grid-template-columns:1fr}.l-top-grid .l-next{grid-column:1;grid-row:1}.l-top-grid .l-calendar{grid-column:1;grid-row:2}.l-top-grid .discussion{grid-column:1;grid-row:3}}
@media(max-width:800px){.sidebar .nav-item[aria-current=location]:before{display:none}}
@media(max-width:600px){.l-top-grid .l-calendar{display:none}.l-top-grid .discussion{grid-row:2}.member .m-preview{display:none}}
@media(max-width:440px){.e-point-detail{flex-wrap:wrap}.e-point-detail>strong{max-width:100%;overflow-wrap:anywhere}}
.e-avatar{position:relative;overflow:hidden}.e-avatar-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.e-chart-summary .e-avatar>span{margin:0;color:inherit}.player-card-top .e-avatar{width:46px;height:46px}
/* Three championship lanes and larger player recognition. */
.l-races{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
[data-m-award="cash-leader"],[data-award="cash-leader"]{--award-accent:#ffe500;--award-wash:#ffe50014}
.l-race.cash{background:#ffe500;border-color:#ffe500;color:#030e2e;box-shadow:none}
.l-race.cash>strong,.l-race.cash .eyebrow,.l-race.cash .l-race-value,.l-race.cash .l-mini-cup,.l-race.cash .l-race-bottom,.l-race.cash .e-podium-name,.l-race.cash .e-podium-value,.l-race.cash .e-podium-rank{color:#030e2e}
.l-race.cash .l-race-bottom,.l-race.cash .e-podium{border-color:#030e2e30}.l-race.cash .e-avatar{background:#ffffff40;border-color:#030e2e30;color:#030e2e}.l-race.cash:hover{border-color:#fff;box-shadow:0 10px 26px #02092066}
.l-race .l-mini-cup{width:68px;height:68px;flex:none}.l-race .e-holder-line>.e-avatar{width:76px;height:76px;border-radius:var(--r-lg);font-size:var(--fs-2xl);border-width:2px}.l-race>strong{font-size:var(--fs-3xl);line-height:1.15;min-height:2.3em}.l-race .e-podium .e-avatar{width:36px;height:36px;border-radius:var(--r-md);font-size:var(--fs-sm)}.l-race .e-podium-row{font-size:var(--fs-sm);gap:12px}.l-race .e-podium-value{max-width:44%}.l-race .e-podium{margin-top:auto}
.l-trophy .e-holder-line>.e-avatar{width:54px;height:54px;border-radius:var(--r-lg);font-size:var(--fs-lg)}.l-trophy[data-m-award] .l-trophy-art{width:96px;height:96px;padding:16px;border-radius:var(--r-lg)}.l-trophy .e-podium .e-avatar{width:30px;height:30px;border-radius:var(--r-md)}
.e-avatar{width:42px;height:42px;font-size:var(--fs-md)}.e-avatar.e-avatar-large{width:64px;height:64px;font-size:var(--fs-xl);border-radius:var(--r-lg)}.e-badge{width:28px;height:29px}.e-badge svg{width:26px;height:26px}.e-milestone-badge{width:auto;min-width:43px;height:28px}.e-milestone-badge b{font-size:var(--fs-sm)}.e-award-cash-leader{color:#ffe500}
@media(max-width:1200px){.l-race{padding:24px}.l-race>strong{font-size:var(--fs-3xl)}.l-race .l-mini-cup{width:56px;height:56px}.l-race .e-holder-line>.e-avatar{width:64px;height:64px}}
@media(max-width:1050px){.l-races{grid-template-columns:1fr}.l-race>strong{min-height:0}.l-race .l-mini-cup{width:64px;height:64px}}
@media(max-width:440px){.e-board-row .e-milestone-badge{min-width:40px}.e-board-row .e-badge svg{width:23px}.e-board-row .e-badge{width:25px}.e-board-row .e-milestone-badge{width:auto}.l-race .e-podium-row{font-size:var(--fs-sm)}}
:root{--bg:#04070d;background:#04070d}body,.workspace{background:#04070d}.sidebar{background:#02050a}.l-cabinet{background:#03060c}
/* Open sections: use the page canvas for informational areas. */
.l-banner{background:transparent;border:0;box-shadow:none;border-radius:0}
.e-engagement{border-top:1px solid #ffffff1a;margin-top:40px;padding-top:28px;gap:32px}
.e-engagement>.panel,.l-bottom-grid>.panel{background:transparent;border:0;box-shadow:none;border-radius:0}
.e-engagement .panel-head,.l-bottom-grid>.panel>.panel-head{padding-left:0;padding-right:0}
.e-engagement .e-control-row,.e-engagement .e-board-list,.e-engagement .e-chart-summary,.e-engagement .e-chart-note{padding-left:0;padding-right:0}
.e-engagement .e-point-detail{margin-left:0;margin-right:0}.e-engagement .e-progress-svg{padding-left:0;padding-right:0}
.e-engagement>.e-progress{border-left:1px solid #ffffff1a;padding-left:32px}.e-board .eyebrow{color:#00c9f2}.e-progress .eyebrow{color:#ff008a}
.l-cabinet{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;margin-top:44px}
.l-bottom-grid{border-top:1px solid #ffffff1a;padding-top:24px;margin-top:36px;gap:32px}
.l-bottom-grid .l-night-winner,.l-bottom-grid .l-result-strip,.l-bottom-grid .game-list{padding-left:0;padding-right:0}
@media(max-width:1300px){.e-engagement>.e-progress{border-left:0;border-top:1px solid #ffffff1a;padding-left:0;padding-top:24px}}
@media(max-width:700px){.e-engagement{margin-top:32px;padding-top:20px;gap:24px}.l-cabinet{margin-top:32px}.l-bottom-grid{gap:24px}.l-banner{padding-left:0;padding-right:0}}
@media(min-width:1450px){.l-trophies{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1151px) and (max-width:1449px){.l-trophies{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Luminous highlights from the latest user-supplied image. */
:root{--accent-aqua:#00c9f2;--accent-rating:#ff008a;--accent-pink:#ff008a;--accent-gold:#ffe500;--accent-lilac:#ff008a;--accent-lime:#ffe500}
[data-m-award="night-winner"],[data-award="night-winner"]{--award-accent:var(--accent-lime);--award-wash:#ffe50012}
[data-m-award="table-regular"],[data-award="table-regular"]{--award-accent:var(--accent-lilac);--award-wash:#ff008a12}
.l-race.points{background:linear-gradient(125deg,#00d6f5,#00c9f2 65%,#00b5e6);box-shadow:0 0 26px #00c9f20a}
.l-race.rating{background:linear-gradient(125deg,#ff259b,#ff008a 65%,#e9008a);box-shadow:0 0 26px #ff008a0a}
.l-race.cash{background:linear-gradient(125deg,#ffed33,#ffe500 65%,#f2d900);box-shadow:0 0 26px #ffe5000a}
.l-trophy[data-m-award]:not(.locked) .l-trophy-art,.l-award-detail[data-award] .l-trophy-art{box-shadow:0 0 20px var(--award-wash,#00c9f212),inset 0 1px 0 #ffffff99}
.l-trophy[data-m-award]:not(.locked){box-shadow:inset 0 1px 0 var(--award-wash,#00c9f212)}
.e-award-night-winner,.l-recap .l-cup{color:var(--accent-lime)}.e-award-table-regular{color:var(--accent-lilac)}
.e-milestone-streak{color:var(--accent-lilac);background:#ff008a14;border-color:#ff008a4d}
.e-profile-badges article[data-badge-kind="streak"]{border-left-color:var(--accent-lilac);background:linear-gradient(100deg,#ff008a09,transparent),#0d1c40}.e-profile-badges article[data-badge-kind="streak"]>span{color:var(--accent-lilac)}
.e-chart-line{filter:drop-shadow(0 0 3px #00c9f226)}.e-rating-chart .e-chart-line{filter:drop-shadow(0 0 3px #ff008a26)}.e-cash-chart .e-chart-line{filter:drop-shadow(0 0 3px #ffe50026)}
.e-chart-point:hover circle:last-child,.e-chart-point:focus circle:last-child{fill:currentColor;stroke:#fff}
.l-banner:after{-webkit-text-stroke-color:#ff008a19}.l-next{box-shadow:0 -6px 24px #00c9f206}.discussion{box-shadow:0 -6px 24px #ff008a06}
.button:not(.secondary):not(.ghost):hover{box-shadow:0 0 20px #00c9f229}
/* Compact league identity, without character artwork or supporting labels. */
.l-banner.l-brand-banner{display:block;padding:8px 0 24px;margin-bottom:8px;min-height:0}
.l-brand-banner:after{display:none}.l-brand-copy{min-width:0}
.l-brand-banner h1.l-brand-title{margin:12px 0 0;font-size:inherit;line-height:1;max-width:460px;letter-spacing:normal}
.l-banner-wordmark{display:block;width:100%;height:auto}
.l-brand-welcome{margin-top:12px}.l-brand-welcome .button{min-height:36px;padding:8px 12px;font-size:var(--fs-sm)}
@media(max-width:480px){.l-banner.l-brand-banner{padding-top:0;padding-bottom:20px}.l-brand-banner .eyebrow{font-size:var(--fs-xs)}}
.sidebar .rop-sidebar-banner{width:100%;max-width:192px;height:auto;background:transparent;padding:0;display:block}.sidebar .brand-caption{padding-left:0}.loading .rop-sidebar-banner{width:220px;height:auto}
@media(max-width:800px){.sidebar .rop-sidebar-banner{width:165px;max-width:50vw}.sidebar .brand{gap:16px}}

/* Consistent circular player portraits across cards, tables, profiles and the Rail. */
.avatar,.discussion-avatar,.e-avatar,.e-avatar.e-avatar-large,
.e-podium .e-avatar,.l-race .e-holder-line>.e-avatar,
.l-race .e-podium .e-avatar,.l-trophy .e-holder-line>.e-avatar,
.l-trophy .e-podium .e-avatar{border-radius:50%;overflow:hidden;flex-shrink:0}
.l-race>.e-holder-line{justify-content:center;flex-wrap:wrap;width:100%}
.l-race>strong{text-align:center;width:100%}
.l-race>.l-race-value{text-align:center;width:100%}
.e-player-identity{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.e-player-identity .e-player-nickname{display:block;color:#a6b9d2;font-size:var(--fs-xs);font-weight:var(--fw-regular);line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.l-brand-banner .l-brand-copy{text-align:center}
.l-brand-banner h1.l-brand-title{margin:0 auto}

/* Every earned badge is visible; details open above scroll containers. */
.e-badges{flex-wrap:wrap;max-width:100%;row-gap:8px;white-space:normal}
button.e-badge{appearance:none;background:transparent;border:0;padding:0;cursor:pointer;font:inherit}
button.e-milestone-badge{border:1px solid #ffe50066;background:#ffe50012;color:#ffe500;padding:1px 8px}
button.e-milestone-streak{background:#ff008a15;border-color:#ff008a66;color:#ff008a}
button.e-badge:focus-visible{outline:2px solid #00c9f2;outline-offset:3px}
.e-board-row .e-badges{min-width:0;flex-shrink:1}
.m-complete-standings td:nth-child(2){width:34%;max-width:390px}
.e-badge-description{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:300px;max-width:calc(100vw - 18px);max-height:calc(100vh - 18px);overflow:auto;border:1px solid #00c9f280;border-radius:var(--r-md);background:#081426;color:#f2f6ff;padding:16px 16px;box-shadow:0 12px 36px #0009;font-weight:var(--fw-semibold);font-size:var(--fs-md);line-height:1.55;font-family:var(--font-ui);text-align:left;white-space:normal;overflow-wrap:anywhere;z-index:10000}
.e-badge-description p{font-size:var(--fs-sm);font-weight:var(--fw-regular);line-height:1.6;color:#afc2db;margin:8px 0 0}
.e-badge-description::backdrop{background:transparent;pointer-events:none}
.e-badge.e-award-five-session-club,.e-badge.e-award-points-leader,.e-badge.e-award-net-rating-leader,.e-badge.e-award-cash-leader{color:#ff008a}
.e-badge.e-award-biggest-cash-win{color:#ffe500}

/* A single, comparable view of every player's season metrics. */
.m-complete-standings{position:relative;overflow-x:auto;max-width:100%}
.m-complete-standings table{min-width:780px;width:100%}
.m-complete-standings th{white-space:nowrap}
.m-complete-standings td:not(:nth-child(2)){white-space:nowrap;font-variant-numeric:tabular-nums}
.m-complete-standings td:nth-child(2){min-width:230px}
.m-complete-standings .m-rating-value{color:#ff008a;font-weight:var(--fw-semibold)}
.m-complete-standings .m-cash-value{color:#ffe500;font-weight:var(--fw-semibold)}
.m-complete-standings:focus-visible{outline:2px solid #00c9f2;outline-offset:3px}

/* Keep the latest scored game immediately beneath The Rail, across the full home width. */
.l-bottom-grid.l-home-recap{grid-template-columns:minmax(0,1fr);margin-top:0;margin-bottom:36px}
.l-home-recap>.panel{min-width:0}

/* Player identity replaces redundant status pills on My Record. */
.record-welcome{display:flex;align-items:center;gap:20px;margin-top:24px}.record-welcome-avatar{display:flex;flex:none}.record-welcome-avatar .e-avatar,.record-welcome-avatar .avatar{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;min-width:72px;border-radius:50%;overflow:hidden;font-size:var(--fs-2xl);border:1px solid #344677;background:#07142e}.record-welcome-avatar img{width:100%;height:100%;object-fit:cover}.hero-copy .record-welcome p,.rop-hero-copy .record-welcome p{margin:0;min-width:0}@media(max-width:520px){.record-welcome{align-items:flex-start;gap:16px}.record-welcome-avatar .e-avatar,.record-welcome-avatar .avatar{width:56px;height:56px;min-width:56px;font-size:var(--fs-xl)}}

/* Separate earned badges from player names and nicknames in standings. */
.member td>.e-badges,.commissioner-standings td>.e-badges{display:flex;margin-top:12px}

/* League Home holds the next night and the Rail; the calendar lives with the game archive. */
.l-top-grid.l-home-top{grid-template-columns:minmax(0,1fr)}.l-home-top .l-next{grid-column:1;grid-row:1}.l-home-top .discussion{grid-column:1;grid-row:2}
.m-archive-calendar{margin:0 0 24px}.m-archive-calendar .l-calendar{max-width:520px}
.member .e-engagement{margin-top:32px}

/* Mobile: a bottom tab bar replaces the top navigation strip; "More" opens the full menu as a sheet. */
.m-tabbar,.m-topbar-brand,.m-nav-backdrop{display:none}
@media(max-width:800px){
 .shell.member .sidebar{display:none}
 .shell.member.m-nav-open .sidebar{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));max-height:calc(100dvh - 64px - env(safe-area-inset-bottom));overflow-y:auto;z-index:70;background:#02050a;border:0;border-top:1px solid #ffffff1a;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:16px 20px 20px;box-shadow:0 -14px 44px #000c}
 .shell.member.m-nav-open .sidebar .brand,.shell.member.m-nav-open .sidebar .workspace-switch{display:none}
 .shell.member.m-nav-open .sidebar .nav-label{margin:0 12px 8px}
 .shell.member.m-nav-open .navigation{display:grid;grid-template-columns:1fr;gap:2px;overflow:visible;padding:0}
 .shell.member.m-nav-open .nav-item{font-size:var(--fs-md);padding:12px 12px;white-space:normal;gap:12px;min-height:48px}
 .shell.member.m-nav-open .sidebar-footer{display:none}
 .m-nav-backdrop{display:block;position:fixed;inset:0;z-index:60;background:#02050a99;border:0;padding:0;margin:0}
 .m-topbar-brand{display:block;flex:none;width:118px}.m-topbar-brand img{display:block;width:100%;height:auto}
 .member .m-topbar{gap:12px}.member .m-topbar .breadcrumb{display:none}
 .member .main{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 .m-tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:80;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#02050af0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid #ffffff1a}
 .m-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;border:0;background:transparent;color:#98b3d6;font-weight:var(--fw-semibold);font-size:var(--fs-xs);line-height:1;font-family:var(--font-ui);letter-spacing:.02em;text-decoration:none;padding:8px 2px;cursor:pointer}
 .m-tab svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
 .m-tab[aria-current=page]{color:#00c9f2}
 .m-tab:focus-visible{outline:2px solid #00c9f2;outline-offset:-3px;border-radius:var(--r-md)}
}

/* Palette v2 (2026-09-19): navy ground, cyan = action + primary data, pink = single accent (you / now / highlight), yellow = trophies and streaks only, red = danger. Adds a raised surface step. */
:root,.sidebar{--surface-raised:#13244d;--chrome:#e6edfa;--accent-rating:#00c9f2;--accent-gold:#ffe500;--accent-pink:#ff008a;--accent-lilac:#ff008a;--accent-lime:#ffe500;--red:#ff8196}
.hero-side,.hero .pill,.l-banner .pill,.snapshot-tag,.m-preview select,.e-player-select select,.avatar,.l-league-emblem,.l-cal-day,.workspace-switch,.m-preview{background:var(--surface-raised)}
.nav-item:hover,.sidebar .nav-item[aria-current=page],.sidebar .nav-item[aria-current=location]{background:var(--surface-raised)}
.m-you,.l-record-race-row.is-you{background:#ff008a10;box-shadow:inset 3px 0 0 var(--accent-pink)}
.m-you td:first-child,.m-you .rank{color:var(--accent-pink)}
.l-cal-day.is-today{border-color:var(--accent-pink);color:var(--accent-pink)}.l-cal-day[aria-pressed=true]{background:#00c9f225;border-color:#00c9f2;color:#fff}.l-calendar{border-top-color:#00c9f2}
.discussion{border-top-color:#00c9f2;box-shadow:none}.e-progress{border-top-color:#00c9f2}.e-progress .eyebrow{color:#00c9f2}.l-banner:after{-webkit-text-stroke-color:#00c9f219}
.hero,.l-banner{background:radial-gradient(ellipse at 100% 0,#00c9f21a,transparent 60%),radial-gradient(ellipse at 0 100%,#ff008a10,transparent 65%),#071432}
.stats>.stat:nth-child(4n+2),.stats>.stat:nth-child(4n+3){border-top-color:#00c9f2}.stats>.stat:nth-child(4n){border-top-color:#344677}
.l-race.rating,.l-race.cash{background:linear-gradient(125deg,#1a2f63,#13244d);color:#fff;border-color:#344677;box-shadow:none}.l-race.rating .leader-score,.l-race.cash .leader-score,.l-race.rating strong,.l-race.cash strong{color:#fff}
.m-complete-standings .m-rating-value,.m-game-results .m-rating-value,.commissioner-average-cash{color:#00c9f2}.m-complete-standings .m-cash-value,.m-complete-standings .m-average-cash-value{color:var(--chrome)}
.e-rating-chart .e-chart-line{stroke:#00c9f2;filter:drop-shadow(0 0 3px #00c9f226)}.e-rating-chart .e-chart-point{color:#00c9f2}.e-cash-chart .e-chart-line{stroke:var(--chrome);filter:none}.e-cash-chart .e-chart-point{color:var(--chrome)}
.m-record-chart-controls button[data-m-record-chart="netRating"][aria-pressed="true"]{background:#00c9f2;color:#04070d}.m-record-chart-controls button[data-m-record-chart="cash"][aria-pressed="true"]{background:var(--chrome);color:#04070d}
.m-record-chart[data-record-metric="netRating"]{--record-accent:#00c9f2}.m-record-chart[data-record-metric="cash"]{--record-accent:#e6edfa}
[data-m-award],[data-award],.e-badge,.e-award-night-winner,.e-award-table-regular,.e-award-cash-leader,.e-award-net-rating-leader,.e-award-five-session-club,.e-award-highest-average-cash,.e-badge.e-award-five-session-club,.e-badge.e-award-points-leader,.e-badge.e-award-net-rating-leader,.e-badge.e-award-cash-leader,.e-badge.e-award-highest-average-cash,.e-badge.e-award-biggest-cash-win,.l-recap .l-cup,.l-bulletin .l-orbit,.l-cabinet .eyebrow{--award-accent:#ffe500;--award-wash:#ffe50012;color:#ffe500}
.l-recap,.l-bulletin{border-top-color:#ffe500}
.e-profile-badges article[data-badge-kind="streak"],.e-profile-badges article[data-badge-kind="sessions"]{border-left-color:#ffe500;background:linear-gradient(100deg,#ffe50009,transparent),#0d1c40}.e-profile-badges article>span,.e-profile-badges [data-badge-id]>span{color:#ffe500}
.e-milestone-streak,button.e-milestone-streak,.e-milestone-sessions,button.e-milestone-badge{color:#ffe500;background:#ffe50012;border-color:#ffe50066}
.study-editor-actions .study-delete,.study-notebook{color:var(--red)}.study-editor .study-danger{background:var(--red);border-color:var(--red);color:#04070d}.study-delete-confirm,.study-error{border-color:#ff819670;background:#ff819608}

/* Standings row hierarchy (2026-09-19): dim rank, 48px avatar, white name, one dominant number, badges fold past two. */
.m-complete-standings td{padding:16px 12px;vertical-align:middle}
.m-complete-standings td.rank{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:#6f86ad}
.m-complete-standings td.score{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:#fff}
.m-complete-standings .m-rating-value,.m-complete-standings .m-cash-value,.m-complete-standings .m-average-cash-value{font-weight:var(--fw-regular);color:#c7d0dc}
.m-complete-standings .e-avatar{width:48px;height:48px;border-radius:50%;font-size:var(--fs-md)}
.m-complete-standings .e-player-link{color:#fff;gap:12px}.m-complete-standings .e-player-link:hover{color:var(--cyan)}
.m-complete-standings .e-player-identity>span:first-child{font-weight:var(--fw-semibold);font-size:var(--fs-md)}
.m-complete-standings .e-badges{margin-top:8px}
.e-badge-fold,.rop-badge-fold{display:inline-flex;align-items:center;vertical-align:middle}
.e-badge-fold>summary,.rop-badge-fold>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;height:25px;padding:0 9px;border:1px solid #344677;border-radius:var(--r-pill);background:var(--surface-raised);color:#98b3d6;font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1}
.e-badge-fold>summary::-webkit-details-marker,.rop-badge-fold>summary::-webkit-details-marker{display:none}
.e-badge-fold>summary:hover,.e-badge-fold[open]>summary,.rop-badge-fold>summary:hover,.rop-badge-fold[open]>summary{color:#fff;border-color:#00c9f2}
.e-badge-fold-rest,.rop-badge-fold-rest{display:inline-flex;gap:4px;margin-left:4px;align-items:center}

/* Surfaces + motion (2026-09-19): two container levels (page, card); raised fill is for interactive elements only. 150ms state transitions, hover distinct from active. */
.hero-side,.discussion-scope,.m-preview{background:transparent}
.hero-side{border-left:1px solid var(--line)}.hero-side:before{display:none}
.discussion-scope{border:1px solid var(--line);border-radius:var(--r-md)}
.m-preview{border-bottom:1px solid var(--line)}
.nav-item:hover{background:#ffffff08;color:#fff}
.sidebar .nav-item[aria-current=page],.sidebar .nav-item[aria-current=location]{background:var(--surface-raised);color:#00c9f2}
.m-complete-standings tbody tr:hover,.e-board-row:hover,.l-upcoming:hover{background:#ffffff05}
.m-complete-standings tbody tr.m-you:hover{background:#ff008a16}
.button:active,.text-button:active,.m-tab:active{transform:translateY(1px)}
.text-button:hover{text-decoration:underline;text-underline-offset:3px}
.m-tab:hover{color:#fff}
@media(prefers-reduced-motion:no-preference){
 .nav-item,.button,.text-button,.m-tab,.e-badge,.e-badge-fold>summary,.pill,.panel,.card,.m-complete-standings tbody tr,.e-board-row,.l-upcoming,.l-cal-day,.segmented button,.e-player-link,.rop-earned-badge{transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}
 .m-nav-backdrop{transition:opacity .2s ease}
 .sidebar{transition:transform .22s cubic-bezier(.2,.7,.2,1)}
 .drawer,.m-more-sheet{animation:rop-rise .22s cubic-bezier(.2,.7,.2,1)}
 @keyframes rop-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
 #main>*{animation:rop-fade .18s ease}
 @keyframes rop-fade{from{opacity:0}to{opacity:1}}
}

/* One icon set (2026-09-19): sidebar uses the same 1.5px line icons as the tab bar and the leagues app. */
.m-nav-icon svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.member .m-nav-icon{color:#98b3d6;font-size:0;line-height:0;display:inline-flex}.member .nav-item[aria-current=page] .m-nav-icon,.member .nav-item[aria-current=location] .m-nav-icon{color:#00c9f2}

.sidebar-signout{display:inline-block;margin-top:10px;color:#98b3d6;font-size:var(--fs-sm)}.sidebar-signout:hover{color:#fff}

/* Standings (2026-09-22): only the rank column is pinned — the name scrolls away with
   everything else. A sticky cell needs its own opaque fill, so the row states are re-layered
   on top of it as background-image and composite exactly as they do on a normal row. */
.m-complete-standings{--standings-rank-w:48px}
.m-complete-standings th:first-child,.m-complete-standings td:first-child{width:var(--standings-rank-w);min-width:var(--standings-rank-w);padding-right:0;text-align:left}
.m-complete-standings th:first-child,.m-complete-standings td:first-child{position:sticky;left:0;z-index:2}
/* The card, not the page, is what sits behind this cell — var(--bg) left it visibly darker
   than the columns scrolling past it. */
.m-complete-standings td:first-child{background-color:var(--surface);box-shadow:1px 0 0 var(--line)}
/* Without a stated width the auto layout handed the player column all the slack, opening a wide
   empty gap before Points. */
.m-complete-standings th:nth-child(2){width:240px}
/* Neither the player name nor the Net Rating column carries extra weight of its own. */
.m-complete-standings td:nth-child(2) .e-player-link,.m-complete-standings td:nth-child(2) .e-player-identity>span{font-weight:var(--fw-regular)}
.m-complete-standings td.m-rating-value{font-weight:var(--fw-regular)}
.m-complete-standings thead th{z-index:3}
.m-complete-standings tbody tr.m-you td:first-child{background-image:linear-gradient(#ff008a10,#ff008a10)}
.m-complete-standings tbody tr:hover td:first-child{background-image:linear-gradient(#ffffff05,#ffffff05)}
.m-complete-standings tbody tr.m-you:hover td:first-child{background-image:linear-gradient(#ff008a16,#ff008a16)}
.m-complete-standings tbody tr.m-you td:first-child{box-shadow:inset 3px 0 0 var(--accent-pink),1px 0 0 var(--line)}
.l-date small{display:block;font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;opacity:.75;line-height:1}
/* --- last-game recap as a bar (2026-09-21) ---
   Was a full panel at the foot of the homepage; now a single strip above the fold. */
.l-home-recap{margin:0 0 20px}
.l-recap-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:14px 20px}
.l-recap-bar .eyebrow{flex:none}
.l-recap-bar-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0;flex:1}
.l-recap-bar-main strong{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.3px}
.l-recap-bar-main span{font-size:var(--fs-xs);color:var(--muted)}
.l-recap-bar-winner{display:flex;align-items:center;gap:8px;min-width:0;flex:none}
.l-recap-bar-winner b{font-size:var(--fs-sm);font-weight:var(--fw-semibold);display:block;overflow-wrap:anywhere}
.l-recap-bar-winner small{font-size:var(--fs-xs);color:var(--muted);display:block;margin-top:2px}
.l-recap-bar .l-cup{flex:none;width:24px;height:24px;display:grid;place-items:center}
.l-recap-bar .l-cup svg{width:100%;height:100%}
.l-recap-bar>.text-button{flex:none;margin-left:auto}
.l-recap-bar-when{display:none}
@media(max-width:570px){
 .l-recap-bar{padding:12px 16px;gap:6px 10px}
 .l-recap-bar .eyebrow{display:none}
 .l-recap-bar-when{display:inline}
 .l-recap-bar-main{flex:1 1 100%}
 .l-recap-bar-main strong{font-size:var(--fs-md)}
 .l-recap-bar-winner{flex:1 1 auto}
 .l-recap-bar>.text-button{margin-left:auto}
}

/* Three-line date tile: the weekday made the old 8px grid gap look loose and pushed the
   month off the bottom. Rows tighten, the day number loses its extra leading, and the tile
   grows just enough to hold all three lines. */
.l-date{gap:3px;min-height:84px;padding:8px 4px}
.l-date strong{line-height:1}
.l-date small{margin-bottom:2px}
@media(max-width:900px){.l-date{min-height:80px}}
@media(max-width:570px){.l-date{min-height:74px;width:54px}}
