@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
:root{--bg:#0b121d;--line:rgba(255,255,255,.08);--text:#f2f7ff;--muted:#7d92ad;--blue:#1473f5;--red:#ff5a6b;--green:#3ee6a6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% -10%,rgba(22,119,255,.28),transparent 36%),radial-gradient(circle at 80% 0%,rgba(62,230,166,.08),transparent 28%);pointer-events:none}.shell{width:min(1880px,calc(100% - 48px));margin:0 auto;position:relative;z-index:1}.header{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#050e1d,#020813);border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.45)}.header-inner{height:62px;display:grid;grid-template-columns:270px 1fr 220px;gap:24px;align-items:center}.brand{display:flex;align-items:center;gap:10px;font-weight:950;font-size:30px;letter-spacing:-.05em;font-style:italic}.rw{letter-spacing:-.07em}.rw .w,.brand b{color:var(--blue)}.brand-sep{width:1px;height:20px;background:rgba(255,255,255,.5);margin:0 6px}.nav{height:100%;display:flex;justify-content:center;gap:28px}.nav a{height:100%;display:flex;align-items:center;text-transform:uppercase;font-size:12px;font-weight:900;color:#dbe7f7;border-bottom:2px solid transparent}.nav a.active{color:white;border-bottom-color:var(--blue)}.status{display:flex;justify-content:flex-end;gap:9px;align-items:center;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);position:relative;box-shadow:0 0 0 4px rgba(62,230,166,.1)}.dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:pulse 1.6s infinite}@keyframes pulse{0%{transform:scale(1);opacity:.6}70%{transform:scale(2.2);opacity:0}100%{opacity:0}}.scorebar{background:rgba(4,12,25,.96);border-bottom:1px solid var(--line)}.scorebar-inner{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:11px 0}.live-title{font-weight:950;color:var(--red);text-transform:uppercase;letter-spacing:.04em}.live-title span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:600;text-transform:none}.score-grid{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:8px}.score-card,.panel{position:relative;background:linear-gradient(180deg,#03101e,#020812 85%);border:1px solid rgba(136,170,214,.22);border-radius:10px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.55)}.score-card{padding:11px 12px;min-height:100px}.score-meta{display:flex;gap:12px;margin-bottom:8px;font-size:11px;font-weight:950;text-transform:uppercase;color:var(--red)}.score-meta span:last-child{color:var(--muted);font-weight:700;text-transform:none}.team-row{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;margin:6px 0;font-size:14px;font-weight:850}.logo{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:white;color:#071323;font-size:10px;font-weight:950;box-shadow:0 4px 10px rgba(0,0,0,.5);overflow:hidden}.score-card small{display:flex;align-items:center;margin-top:8px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:850;letter-spacing:.04em;gap:6px}.tier-chip{display:inline-flex;align-items:center;justify-content:center;height:18px;min-width:28px;padding:0 6px;margin-left:8px;border-radius:4px;font-size:10px;font-weight:900;letter-spacing:.04em;background:rgba(22,119,255,.09);color:#cfe3ff;border:1px solid rgba(22,119,255,.18);line-height:1;transform:translateY(-1px)}.status-pill{display:inline-flex;align-items:center;gap:5px;font-weight:950;text-transform:uppercase}.status-live{color:var(--red)}.status-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1.4s infinite}.status-final{color:var(--green)}.status-scheduled{color:var(--muted)}.live-tag{display:inline-flex;align-items:center;gap:4px;color:var(--red)}.live-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1.4s infinite}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.seg{display:inline-flex;gap:2px;border:1px solid rgba(120,150,190,.24);background:#051426;border-radius:8px;padding:3px}.seg button{border:0;background:transparent;color:#dce8f8;padding:10px 14px;border-radius:6px;font-size:12px;font-weight:900;cursor:pointer}.seg button.active{background:var(--blue);color:#fff}.seg button.disabled{opacity:.25;filter:grayscale(1);pointer-events:none}.search{border:1px solid var(--line);background:#071323;color:#fff;border-radius:8px;padding:11px 14px;width:260px}.grid-top{display:grid;grid-template-columns:1.2fr 1.45fr .9fr .8fr;gap:14px;margin-top:16px}.grid-bottom{display:grid;grid-template-columns:1.15fr .85fr 1fr 1fr;gap:14px;margin-top:14px}.panel-head{height:48px;border-bottom:1px solid rgba(120,150,190,.22);padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}.panel-head h2{margin:0;font-size:14px;text-transform:uppercase;font-weight:950;letter-spacing:.05em}.panel-head a{font-size:12px;color:#58a8ff;font-weight:900}.panel-body{padding:14px 16px}.game{cursor:pointer;transition:.18s}.game:hover{background:rgba(255,255,255,.025);transform:translateY(-1px)}.grid-top{align-items:start}.game-list{max-height:430px;overflow-y:auto;overscroll-behavior:contain;padding-right:10px}.game-list::-webkit-scrollbar{width:8px}.game-list::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:10px}.game-list::-webkit-scrollbar-thumb{background:rgba(120,150,190,.32);border-radius:10px}.game-list .game{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(128,151,178,.15);margin-bottom:6px}.game:last-child{border-bottom:0}.game-teams{display:grid;gap:5px}.game-team{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:9px;font-size:14px;font-weight:800}.game-score{display:grid;gap:6px;text-align:right;font-size:18px;font-weight:950}.period{font-size:11px;text-transform:uppercase;font-weight:900;color:var(--muted)}.featured{background:linear-gradient(180deg,rgba(3,12,25,.16),rgba(3,10,19,.68)),url('../images/arena-lights.jpg');background-size:cover;background-position:center 35%;box-shadow:0 14px 32px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.07);overflow:hidden}.featured:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 34%,rgba(0,0,0,.02),rgba(0,0,0,.42) 72%),radial-gradient(circle at 50% 10%,rgba(35,125,255,.16),transparent 44%),linear-gradient(180deg,rgba(2,8,19,.04),rgba(2,8,19,.58));z-index:0;pointer-events:none}.featured:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,19,.58),rgba(2,8,19,.12) 48%,rgba(2,8,19,.58)),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 34%);z-index:0;pointer-events:none}.featured>.panel-head,.featured>.panel-body{position:relative;z-index:1}.featured .panel-head{background:linear-gradient(180deg,#03101e,#020812)!important;backdrop-filter:none!important}.feature-match{min-height:280px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px}.feature-team{text-align:center}.big-logo{width:92px;height:92px;border-radius:50%;background:white;color:#071323;display:grid;place-items:center;font-size:24px;font-weight:950;margin:0 auto 12px;box-shadow:0 16px 30px rgba(0,0,0,.55),0 0 0 5px rgba(255,255,255,.04);overflow:hidden}.feature-name{font-size:22px;line-height:1.05;text-transform:uppercase;font-weight:950;text-shadow:0 2px 14px rgba(0,0,0,.75)}.feature-score{font-size:88px;font-weight:950;letter-spacing:-.1em;text-align:center;margin:10px 0}.feature-score span{color:#5f748d;margin:0 7px}.note{text-align:center;color:#c8d6e7;font-size:13px;line-height:1.6;text-shadow:0 2px 12px rgba(0,0,0,.8)}table{width:100%;border-collapse:collapse}th,td{padding:9px 0;border-bottom:1px solid rgba(128,151,178,.15);font-size:12px;text-align:left}th{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.right{text-align:right}.team-cell{display:flex;align-items:center;gap:9px;min-width:0}.team-cell span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-game{padding:12px 0;border-bottom:1px solid rgba(120,150,190,.15);cursor:pointer;transition:.18s}.schedule-game:hover{background:rgba(255,255,255,.025);transform:translateY(-1px)}.schedule-game:last-child{border-bottom:0}.matchup{font-weight:950;font-size:13px;text-transform:uppercase;letter-spacing:-.02em;line-height:1.2}.meta{display:flex;justify-content:space-between;gap:12px;margin-top:5px}.rink{color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{font-weight:950;font-size:12px;color:#fff;white-space:nowrap}.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.resource{border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:10px;padding:12px}.resource b{font-size:12px;text-transform:uppercase}.resource span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.empty{padding:24px;border:1px dashed rgba(120,150,190,.3);border-radius:10px;text-align:center;color:var(--muted);font-size:13px}.footer{margin-top:24px;border-top:1px solid var(--line);padding:22px 0 34px;color:var(--muted);font-size:12px}.game-center{position:fixed;inset:0;z-index:100;display:none;background:rgba(2,8,19,.78);backdrop-filter:blur(14px);padding:24px}.game-center.open{display:grid;place-items:center}.gc-card{width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,#081a30,#020812);border:1px solid rgba(136,170,214,.28);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.7)}.gc-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22)}.gc-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.06em}.gc-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:7px;padding:8px 11px;font-weight:900;cursor:pointer}.gc-body{padding:18px}.gc-score{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;min-height:190px}.gc-team{text-align:center}.gc-team-name{font-size:22px;font-weight:950;text-transform:uppercase;line-height:1.05;margin-top:12px}.gc-scoreline{font-size:86px;font-weight:950;letter-spacing:-.1em;text-align:center}.gc-meta{text-align:center;color:var(--muted);font-size:13px;line-height:1.6}.gc-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:16px}.gc-box{border:1px solid rgba(120,150,190,.2);background:rgba(255,255,255,.02);border-radius:10px;padding:14px}.gc-box h3{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.timeline{display:grid;gap:10px}.timeline-item{display:grid;grid-template-columns:52px 1fr;gap:10px;color:#dbe7f7;font-size:13px}.time-pill{color:#7d92ad;font-weight:900;font-size:11px}.stat-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid rgba(120,150,190,.13);font-size:13px}.gc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.gc-button{border:1px solid rgba(22,119,255,.35);background:rgba(22,119,255,.12);color:#dcecff;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:900;text-transform:uppercase}.gc-button.secondary{border-color:rgba(120,150,190,.24);background:rgba(255,255,255,.025);color:#c9d7e9}.scorebar{position:relative;z-index:2}.scorebar-inner{align-items:start}.score-grid{max-height:126px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-gutter:stable}.panel-body{scrollbar-gutter:stable}#liveList{height:430px;max-height:430px;overflow-y:auto;overscroll-behavior:contain}#scheduleBody{height:360px;max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding-right:10px}#directoryBody{height:360px;max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding-right:10px}#standingsBody,#rwpiBody{overflow-anchor:none}.game,.schedule-game,.score-card{overflow-anchor:none}@media(max-width:760px){.score-grid{max-height:238px}#liveList{height:360px;max-height:360px}#scheduleBody,#directoryBody{height:320px;max-height:320px}}@media(max-width:1180px){.header-inner{grid-template-columns:1fr auto}.nav{display:none}.score-grid{grid-template-columns:repeat(2,1fr)}.grid-top,.grid-bottom{grid-template-columns:1fr 1fr}.featured{grid-column:1/-1}}@media(max-width:760px){.shell{width:calc(100% - 24px)}.header-inner{height:auto;padding:12px 0;display:flex;align-items:flex-start;flex-direction:column}.scorebar-inner{grid-template-columns:1fr}.score-grid{grid-template-columns:1fr}.grid-top,.grid-bottom{grid-template-columns:1fr}.feature-match{grid-template-columns:1fr}.feature-score{font-size:52px}.seg{max-width:100%;overflow:auto}.resource-grid{grid-template-columns:1fr}.gc-score{grid-template-columns:1fr}.gc-scoreline{font-size:58px}.gc-grid{grid-template-columns:1fr}.game-center{padding:12px}}@media (min-width:1181px){.grid-top{align-items:stretch;grid-auto-rows:530px}.grid-bottom{align-items:stretch;grid-auto-rows:360px}.grid-top>.panel,.grid-bottom>.panel{height:100%;min-height:0;display:flex;flex-direction:column}.grid-top>.panel>.panel-body,.grid-bottom>.panel>.panel-body{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:12px}.featured>.panel-body{overflow:hidden}#liveList,#scheduleBody,#directoryBody{height:auto;max-height:none}#standingsBody,#rwpiBody{overflow-anchor:none}.feature-match{min-height:0;height:100%}}@media (max-width:1180px){.grid-top>.panel,.grid-bottom>.panel{min-height:0}.grid-top>.panel>.panel-body,.grid-bottom>.panel>.panel-body{max-height:360px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.featured>.panel-body{max-height:none;overflow:hidden}#liveList,#scheduleBody,#directoryBody{height:auto;max-height:360px}}.panel-body::-webkit-scrollbar{width:8px}.panel-body::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:10px}.panel-body::-webkit-scrollbar-thumb{background:rgba(120,150,190,.32);border-radius:10px}.logo,.big-logo{position:relative;flex:0 0 auto;display:grid;place-items:center;background:#fff;overflow:hidden}.logo img,.big-logo img{position:relative;z-index:2;width:92%;height:92%;object-fit:contain;object-position:center;display:block;border-radius:0;background:transparent;padding:0}.logo img{width:92%;height:92%}.big-logo img{width:92%;height:92%}.logo-fallback{position:absolute;inset:0;display:grid;place-items:center;z-index:1;color:#071323}.logo.logo-wide img,.big-logo.logo-wide img{width:78%;height:54%}.logo.logo-tall img,.big-logo.logo-tall img{width:54%;height:78%}.logo.logo-round img,.big-logo.logo-round img{width:72%;height:72%}.logo.logo-small img,.big-logo.logo-small img{width:82%;height:82%}.logo.logo-large img,.big-logo.logo-large img{width:60%;height:60%}.logo-fallback{position:relative;z-index:1}.rwpi-score{display:inline-flex;align-items:center;justify-content:flex-end;min-width:36px;font-weight:950;color:#fff}.rwpi-meta{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.game-importance{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10px;font-weight:950;text-transform:uppercase;color:#d8e8ff}.importance-bar{width:38px;height:5px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;display:inline-block}.importance-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--green));box-shadow:0 0 10px rgba(22,119,255,.35)}.rivalry-tags{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-top:10px}.rivalry-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;border:1px solid rgba(88,168,255,.22);background:rgba(22,119,255,.1);color:#d8e8ff;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}.rivalry-tag.hot{border-color:rgba(255,90,107,.34);background:rgba(255,90,107,.12);color:#ffd5dc}.schedule-game .rivalry-tags{justify-content:flex-start;margin-top:8px}.live-soft{box-shadow:0 0 0 1px rgba(255,90,107,.22),0 0 24px rgba(255,90,107,.09),inset 0 0 18px rgba(255,90,107,.035)}.live-soft:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);box-shadow:0 0 18px rgba(255,90,107,.8)}.move-rise,.move-fall,.move-hold{display:inline-flex;align-items:center;justify-content:center;width:18px;min-width:18px;margin-right:7px;font-size:15px;font-weight:950;line-height:1;transform:translateY(-1px);white-space:nowrap}.move-rise{color:#ef4444;text-shadow:0 0 10px rgba(239,68,68,.32)}.move-fall{color:#3b82f6}.move-hold{color:#9CA3AF;font-size:14px}.move-rise.hot{animation:rwpiPulse 1.45s ease-in-out infinite}@keyframes rwpiPulse{0%,100%{opacity:.72;transform:translateY(-1px) scale(1)}50%{opacity:1;transform:translateY(-1px) scale(1.08)}}.rwpi-legend{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);display:flex;gap:12px;flex-wrap:wrap;color:#7d92ad;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.rwpi-legend b{font-size:13px;line-height:0}.rwpi-legend .rise{color:#ef4444}.rwpi-legend .hold{color:#9CA3AF}.rwpi-legend .fall{color:#3b82f6}.rwpi-hot-strip{margin:0 0 12px;padding:9px 10px;border:1px solid rgba(239,68,68,.24);background:linear-gradient(90deg,rgba(239,68,68,.10),rgba(22,119,255,.04));border-radius:10px}.rwpi-hot-title{margin-bottom:7px;color:#ff9aa5;font-size:9px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}.rwpi-hot-items{display:flex;flex-direction:column;gap:5px}.rwpi-hot-item{display:flex;justify-content:space-between;gap:8px;color:#fff;font-size:11px;font-weight:900}.rwpi-hot-item span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rwpi-hot-item b{color:#ef4444;font-size:10px}.rwpi-mini-metrics{display:block;margin-top:3px;color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;line-height:1.35}.rwpi-form{color:#dbe7f7}.move-rise.strong{font-size:17px;text-shadow:0 0 14px rgba(239,68,68,.46)}.move-fall.strong{font-size:17px;text-shadow:0 0 12px rgba(59,130,246,.34)}.rwpi-trend-title{margin:10px 0 6px;color:#86a5c5;font-size:10px;font-weight:900;letter-spacing:.12em}.rwpi-trend{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid rgba(255,255,255,.06);font-size:11px}.rwpi-trend.rise span{color:#ef4444}.rwpi-trend.fall span{color:#3b82f6}.rwpi-trend.hold span{color:#9CA3AF}.rwpi-trend strong{color:#fff}.rwpi-mover{margin:10px 0 8px;padding:8px 10px;border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);border-radius:10px;font-size:11px}.rwpi-mover-label{color:#ef4444;font-size:10px;font-weight:900;letter-spacing:.12em;margin-bottom:4px}.rwpi-mover-row{display:flex;justify-content:space-between;gap:10px;color:#fff;font-weight:900}.rwpi-mover-row span:first-child{color:#ef4444}#rwpiBody tr{display:table-row}#rwpiBody td:first-child{width:auto;max-width:1px;padding-right:10px}#rwpiBody td.right{width:44px;min-width:44px;white-space:nowrap;vertical-align:top;padding-left:6px}#rwpiBody .team-cell{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:9px;min-width:0}#rwpiBody .team-cell>span{min-width:0;display:block;white-space:normal;overflow:hidden}#rwpiBody .rwpi-score{min-width:34px;text-align:right}#rwpiBody .rwpi-mini-metrics{white-space:normal;overflow-wrap:anywhere;word-break:normal;max-width:100%}#rwpiBody .rwpi-hot-item span:first-child,#rwpiBody .rwpi-mover-row span,#rwpiBody .rwpi-trend span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#rwpiBody .rwpi-mover-row,#rwpiBody .rwpi-trend{min-width:0}#standingsBody td:first-child{width:auto;max-width:1px;padding-right:8px}#standingsBody td.right{white-space:nowrap;vertical-align:top;padding-left:6px}#standingsBody td:nth-child(2){width:30px;min-width:30px}#standingsBody td:nth-child(3){width:54px;min-width:54px}#standingsBody td:nth-child(4){width:32px;min-width:32px}#standingsBody .team-cell{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;min-width:0}#standingsBody .team-cell span{min-width:0;display:block;white-space:normal;overflow:hidden;text-overflow:ellipsis}#rwpiBody tr,#standingsBody tr{transition:background .16s ease}#rwpiBody tr:hover,#standingsBody tr:hover{background:rgba(255,255,255,.025)}#rwpiBody td,#standingsBody td{padding-top:8px;padding-bottom:8px}#rwpiBody .team-cell,#standingsBody .team-cell{align-items:start}#rwpiBody .logo,#standingsBody .logo{margin-top:1px}#rwpiBody .rwpi-mini-metrics{margin-top:2px;color:#6f859f;font-size:9px;line-height:1.28;letter-spacing:.045em}#rwpiBody .rwpi-form{color:#c8d6e7}#rwpiBody .rwpi-score{font-size:13px}#rwpiBody .move-rise,#rwpiBody .move-fall,#rwpiBody .move-hold{margin-right:6px}#rwpiBody .rwpi-hot-strip{margin-bottom:10px;padding:8px 9px}#rwpiBody .rwpi-hot-title{margin-bottom:6px}#rwpiBody .rwpi-hot-items{gap:4px}#rwpiBody .rwpi-mover{margin:9px 0 7px;padding:8px 9px}#rwpiBody .rwpi-trend-title{margin:9px 0 5px}#rwpiBody .rwpi-trend{padding:4px 0}#rwpiBody .rwpi-legend{margin-top:10px;padding-top:9px;gap:10px}#standingsBody td{font-size:11px}#standingsBody .team-cell span{font-size:11px;line-height:1.25}#standingsBody .logo{width:28px;height:28px}@media (min-width:1181px){.grid-top{grid-template-columns:1.2fr 1.42fr .92fr .86fr}}.analytics-toggle{cursor:pointer;user-select:none}.analytics-toggle:after{content:"+";margin-left:8px;color:#7d92ad;font-weight:950}.analytics-toggle.open:after{content:"–"}.analytics-panel{display:none;margin-top:10px}.analytics-panel.open{display:block}.rw-legend-grid{display:grid;grid-template-columns:1fr;gap:9px}.rw-legend-item{border:1px solid rgba(120,150,190,.2);background:rgba(255,255,255,.02);border-radius:8px;padding:9px 10px}.rw-legend-item b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;color:#f2f7ff}.rw-legend-item span{font-size:11px;color:#7d92ad;line-height:1.38}.rw-legend-item .rise{color:#ef4444;font-weight:950}.rw-legend-item .hold{color:#9CA3AF;font-weight:950}.rw-legend-item .fall{color:#3b82f6;font-weight:950}.analytics-note{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08);font-size:10px;line-height:1.45;color:#7d92ad;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.trending-card{margin:0 0 12px;padding:10px;border:1px solid rgba(22,119,255,.22);background:linear-gradient(90deg,rgba(22,119,255,.10),rgba(239,68,68,.045));border-radius:10px}.trending-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.trending-title{font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;color:#dbe7f7}.trending-sub{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#7d92ad;white-space:nowrap}.trending-list{display:grid;gap:6px}.trending-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.trending-item:first-child{border-top:0;padding-top:0}.trending-arrow{font-size:15px;font-weight:950;line-height:1;transform:translateY(-1px)}.trending-arrow.rise{color:#ef4444;text-shadow:0 0 12px rgba(239,68,68,.35)}.trending-arrow.fall{color:#3b82f6;text-shadow:0 0 10px rgba(59,130,246,.28)}.trending-arrow.hold{color:#9CA3AF}.trending-team{min-width:0;font-size:11px;font-weight:950;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trending-meta{display:block;margin-top:2px;font-size:9px;font-weight:850;color:#7d92ad;text-transform:uppercase;letter-spacing:.045em}.trending-delta{font-size:10px;font-weight:950;color:#dbe7f7;white-space:nowrap}.trending-delta.rise{color:#ef4444}.trending-delta.fall{color:#3b82f6}.trending-empty{font-size:11px;color:#7d92ad;font-weight:800;line-height:1.4}#trendingBody .trending-card{margin:0;border-color:rgba(22,119,255,.24);background:linear-gradient(180deg,rgba(22,119,255,.105),rgba(255,255,255,.018))}#trendingBody .trending-title{font-size:11px}#trendingBody .trending-item{grid-template-columns:22px minmax(0,1fr) auto;padding:10px 0}#trendingBody .trending-arrow{font-size:18px}#trendingBody .trending-team{font-size:12px;line-height:1.15}#trendingBody .trending-meta{font-size:9px;line-height:1.35;white-space:normal}#trendingBody .trending-delta{font-size:11px}#trendingBody .trending-note{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}#trendingBody .biggest-mover{margin:0 0 12px;padding:12px;border:1px solid rgba(239,68,68,.28);background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(22,119,255,.055));border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}#trendingBody .biggest-mover-label{margin-bottom:7px;color:#ff9aa5;font-size:9px;font-weight:950;letter-spacing:.16em;text-transform:uppercase}#trendingBody .biggest-mover-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px}#trendingBody .biggest-mover-arrow{font-size:21px;font-weight:950;color:#ef4444;line-height:1;text-shadow:0 0 14px rgba(239,68,68,.46)}#trendingBody .biggest-mover-team{min-width:0;color:#fff;font-size:13px;font-weight:950;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#trendingBody .biggest-mover-meta{display:block;margin-top:3px;color:#7d92ad;font-size:9px;font-weight:850;line-height:1.35;text-transform:uppercase;letter-spacing:.045em;white-space:normal}#trendingBody .biggest-mover-delta{color:#ef4444;font-size:16px;font-weight:950;white-space:nowrap}#trendingBody .trending-card{border-color:rgba(239,68,68,.24);background:linear-gradient(180deg,rgba(239,68,68,.075),rgba(22,119,255,.045) 42%,rgba(255,255,255,.018))}#trendingBody .biggest-mover{padding:14px;border-color:rgba(239,68,68,.38);background:radial-gradient(circle at 0% 0%,rgba(239,68,68,.22),transparent 46%),linear-gradient(135deg,rgba(239,68,68,.14),rgba(22,119,255,.06));box-shadow:0 0 22px rgba(239,68,68,.08),inset 0 1px 0 rgba(255,255,255,.06)}#trendingBody .biggest-mover-label{color:#ffd1d7;font-size:10px;letter-spacing:.15em}#trendingBody .biggest-mover-team{font-size:15px;letter-spacing:-.02em}#trendingBody .biggest-mover-meta{margin-top:5px;color:#dbe7f7;font-size:10px;line-height:1.45}#trendingBody .biggest-mover-delta{font-size:11px;color:#ffd1d7;text-transform:uppercase;letter-spacing:.06em;text-align:right;line-height:1.25}#trendingBody .biggest-mover-delta b{display:block;color:#ef4444;font-size:22px;letter-spacing:-.04em}#trendingBody .trending-title{color:#ffffff;letter-spacing:.13em}#trendingBody .trending-sub{color:#ff9aa5}#trendingBody .trending-meta{color:#aabbd0}#trendingBody .trending-note{color:#9fb2ca}#trendingBody .trending-explain{margin-top:12px;padding:10px;border:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.018);border-radius:9px;color:#9fb2ca;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}#trendingBody .trending-explain b{color:#fff}.help-trigger{width:26px;height:26px;border-radius:50%;border:1px solid rgba(120,150,190,.28);background:rgba(255,255,255,.035);color:#dbe7f7;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:950;cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.24)}.help-trigger:hover{background:rgba(22,119,255,.12);border-color:rgba(22,119,255,.42)}.analytics-drawer-backdrop{position:fixed;inset:0;z-index:140;display:none;background:rgba(2,8,19,.66);backdrop-filter:blur(8px)}.analytics-drawer-backdrop.open{display:block}.analytics-drawer{position:fixed;top:0;right:0;bottom:0;z-index:150;width:min(430px,calc(100% - 24px));background:linear-gradient(180deg,#081a30,#020812);border-left:1px solid rgba(136,170,214,.26);box-shadow:-24px 0 60px rgba(0,0,0,.62);transform:translateX(105%);transition:transform .22s ease;display:flex;flex-direction:column}.analytics-drawer.open{transform:translateX(0)}.analytics-drawer-head{min-height:62px;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22);display:flex;align-items:center;justify-content:space-between;gap:14px}.analytics-drawer-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.07em;font-weight:950}.analytics-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:8px;padding:8px 11px;font-weight:950;cursor:pointer}.analytics-drawer-body{padding:16px 18px 24px;overflow-y:auto}.analytics-drawer-intro{margin:0 0 14px;color:#7d92ad;font-size:12px;line-height:1.55}.analytics-drawer .rw-legend-grid{gap:10px}.analytics-drawer .rw-legend-item{padding:11px 12px}.analytics-drawer-footer{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);color:#7d92ad;font-size:10px;font-weight:850;line-height:1.5;text-transform:uppercase;letter-spacing:.055em}@media(max-width:760px){.analytics-drawer{width:calc(100% - 18px)}.help-trigger{width:28px;height:28px}}.help-trigger{width:22px;height:22px;border-radius:50%;border:1px solid rgba(140,170,210,.18);background:rgba(255,255,255,.02);color:#7d92ad;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;cursor:pointer;transition:all .18s ease}.help-trigger:hover{color:#ffffff;border-color:rgba(140,170,210,.35);background:rgba(255,255,255,.05)}.help-trigger:active{transform:scale(.95)}#trendingBody .trending-card{padding:12px;border-color:rgba(120,150,190,.22);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(22,119,255,.035) 54%,rgba(255,255,255,.012))}#trendingBody .momentum-hero{margin:0 0 12px;padding:14px;border:1px solid rgba(239,68,68,.38);background:radial-gradient(circle at 0% 0%,rgba(239,68,68,.22),transparent 46%),linear-gradient(135deg,rgba(239,68,68,.14),rgba(22,119,255,.055));border-radius:11px;box-shadow:0 0 24px rgba(239,68,68,.09),inset 0 1px 0 rgba(255,255,255,.06)}#trendingBody .momentum-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;color:#ffd1d7;font-size:10px;font-weight:950;letter-spacing:.15em;text-transform:uppercase}#trendingBody .momentum-label span:last-child{color:#7d92ad;font-size:9px;letter-spacing:.08em}#trendingBody .momentum-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px}#trendingBody .momentum-icon{font-size:23px;font-weight:950;line-height:1;text-shadow:0 0 14px rgba(239,68,68,.42)}#trendingBody .momentum-icon.rise{color:#ef4444}#trendingBody .momentum-icon.fall{color:#3b82f6;text-shadow:0 0 12px rgba(59,130,246,.35)}#trendingBody .momentum-team{min-width:0;color:#fff;font-size:16px;font-weight:950;line-height:1.1;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#trendingBody .momentum-story{display:block;margin-top:6px;color:#dbe7f7;font-size:11px;font-weight:850;line-height:1.4;white-space:normal;letter-spacing:0;text-transform:none}#trendingBody .momentum-delta{min-width:58px;text-align:right;color:#ffd1d7;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase;line-height:1.2}#trendingBody .momentum-delta b{display:block;color:#ef4444;font-size:24px;letter-spacing:-.055em}#trendingBody .momentum-delta.fall b{color:#3b82f6}#trendingBody .momentum-split{display:grid;grid-template-columns:1fr;gap:10px}#trendingBody .momentum-box{border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.018);border-radius:10px;padding:10px}#trendingBody .momentum-box-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;color:#dbe7f7;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}#trendingBody .momentum-box-title .hot{color:#ff9aa5}.momentum-box-title .cool{color:#8db8ff}#trendingBody .momentum-list{display:grid;gap:0}#trendingBody .momentum-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}#trendingBody .momentum-item:first-child{border-top:0;padding-top:0}#trendingBody .momentum-name{min-width:0;font-size:12px;font-weight:950;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#trendingBody .momentum-mini{display:block;margin-top:3px;color:#9fb2ca;font-size:9px;font-weight:850;line-height:1.32;text-transform:uppercase;letter-spacing:.045em;white-space:normal}#trendingBody .momentum-why{margin-top:12px;padding:10px;border-top:1px solid rgba(255,255,255,.08);color:#9fb2ca;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}#trendingBody .momentum-why b{color:#fff}.header-inner{grid-template-columns:270px 1fr 300px}.status{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;white-space:nowrap;line-height:1;color:#dbe7f7;font-size:12px;font-weight:950;text-transform:uppercase}.status-time{white-space:nowrap;color:#7d92ad;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.status-context{white-space:nowrap;color:#dbe7f7;font-size:12px;font-weight:950;text-transform:uppercase}@media(max-width:760px){.status{justify-content:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis}.status-time,.status-context{font-size:11px}}.rwpi-footer{margin-top:12px;padding:10px 11px;border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.025);border-radius:10px;color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}.rwpi-footer b{display:block;color:#dbe7f7;font-size:10px;font-weight:950;letter-spacing:.08em;margin-bottom:6px}.rwpi-footer span{display:block;color:#7d92ad}.rwpi-footer .rwpi-built{margin-top:6px;color:#c8d6e7}.best-game-kicker{display:inline-flex;align-items:center;gap:6px;margin:0 auto 8px;padding:5px 8px;border-radius:999px;border:1px solid rgba(255,90,107,.28);background:rgba(255,90,107,.10);color:#ffd5dc;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.best-game-line{margin:8px auto 10px;max-width:280px;color:#dbe7f7;font-size:12px;font-weight:850;line-height:1.45;text-align:center;text-shadow:0 2px 12px rgba(0,0,0,.65)}.best-game-metrics{display:grid;grid-template-columns:1fr;gap:7px;margin:12px auto 0;max-width:285px}.best-game-metric{display:grid;grid-template-columns:92px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.025);border-radius:8px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.055em;color:#7d92ad}.best-game-metric strong{color:#fff;font-size:11px;text-align:right}.quality-bar{height:5px;border-radius:99px;background:rgba(255,255,255,.13);overflow:hidden}.quality-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--green));box-shadow:0 0 12px rgba(22,119,255,.36)}.rink-list,.upset-list{display:grid;gap:9px}.rink-item,.upset-card{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.025);border-radius:10px;padding:10px}.rink-top,.upset-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rink-name,.upset-title{min-width:0;color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.02em;line-height:1.25}.rink-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rink-count,.upset-score{white-space:nowrap;color:#dbe7f7;font-size:11px;font-weight:950}.rink-meta,.upset-meta{margin-top:5px;color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;line-height:1.4}.rink-status-live{color:#ff5a6b}.rink-status-final{color:#3ee6a6}.upset-label{display:inline-flex;margin-bottom:7px;padding:4px 7px;border-radius:999px;border:1px solid rgba(255,90,107,.30);background:rgba(255,90,107,.10);color:#ffd5dc;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.upset-winner{color:#fff;font-weight:950}.upset-loser{color:#7d92ad}.upset-note{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08);color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;line-height:1.45}.featured .feature-score{font-size:78px;margin:6px 0 6px}.best-game-line{margin:10px auto 10px;max-width:320px;font-size:12px;line-height:1.42}.best-game-metrics{max-width:305px;gap:6px;margin-top:11px}.best-game-metric{grid-template-columns:78px 1fr auto;padding:7px 9px}.featured .rivalry-tags{margin-top:9px}.featured .rivalry-tag:not(:first-child){display:none}.featured .note{font-size:12px;line-height:1.45}.featured .panel-head{justify-content:center}.featured .panel-head h2{width:100%;text-align:center}.featured #featuredContext{position:absolute;right:16px}.featured .feature-match{padding-top:28px;gap:22px}.featured .feature-team{align-self:center;transform:translateY(8px)}.featured .big-logo{width:86px;height:86px;margin-bottom:10px;box-shadow:0 14px 26px rgba(0,0,0,.52),0 0 0 4px rgba(255,255,255,.04)}.featured .feature-name{font-size:20px;line-height:1.02;max-width:150px;margin:0 auto}.featured .feature-score{margin:22px 0 14px;letter-spacing:-.075em;animation:scoreRise .42s ease-out both}.featured .feature-score .score-dash{display:inline-block;font-size:.54em;line-height:1;margin:0 14px;transform:translateY(-8%);opacity:.82;letter-spacing:0;color:#6f86a2}.featured .best-game-kicker{display:flex;width:max-content;margin:0 auto 12px}.featured .best-game-line{margin-top:13px}@keyframes scoreRise{0%{opacity:0;transform:translateY(10px) scale(.985)}100%{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:760px){.featured .feature-match{padding-top:18px}.featured .big-logo{width:78px;height:78px}.featured .feature-name{font-size:18px}.featured .feature-score .score-dash{margin:0 10px}}.logo,.big-logo{display:grid!important;place-items:center!important;background:#fff!important;border-radius:50%!important;overflow:hidden!important;position:relative!important;isolation:isolate!important;flex:0 0 auto!important}.logo-fallback{grid-area:1 / 1!important;position:relative!important;z-index:1!important;display:grid!important;place-items:center!important;color:#071323!important;font-weight:950!important;opacity:.55!important;letter-spacing:-.04em!important;line-height:1!important;text-align:center!important}.logo.has-logo .logo-fallback,.big-logo.has-logo .logo-fallback{display:none!important}.logo img,.big-logo img{position:absolute!important;top:50%!important;left:50%!important;z-index:2!important;display:block!important;object-fit:contain!important;object-position:center center!important;background:transparent!important;border-radius:0!important;padding:0!important;margin:0!important;max-width:none!important;max-height:none!important;width:var(--logo-w,92%)!important;height:var(--logo-h,92%)!important;transform:translate(calc(-50%+var(--logo-x,0px)),calc(-50%+var(--logo-y,0px))) scale(var(--logo-scale,1))!important;transform-origin:center center!important}.logo.logo-round img,.logo.logo-square img,.big-logo.logo-round img,.big-logo.logo-square img{width:var(--logo-w,95%)!important;height:var(--logo-h,95%)!important}.logo.logo-wide img,.big-logo.logo-wide img{width:var(--logo-w,96%)!important;height:var(--logo-h,72%)!important}.logo.logo-tall img,.big-logo.logo-tall img{width:var(--logo-w,72%)!important;height:var(--logo-h,96%)!important}.featured .big-logo{width:104px!important;height:104px!important;margin-bottom:12px!important}.logo:not(.has-logo) .logo-fallback{font-size:10px!important}.big-logo:not(.has-logo) .logo-fallback{font-size:26px!important}.featured .big-logo:not(.has-logo) .logo-fallback{font-size:28px!important}.team-row .logo,.game-team .logo,.team-cell .logo{width:30px!important;height:30px!important}#standingsBody .logo{width:28px!important;height:28px!important}.match-intel{margin-top:9px;padding:9px 10px;border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.022);border-radius:9px}.match-intel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.match-intel-label{color:#dbe7f7;font-size:10px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.match-intel-score{color:#fff;font-size:12px;font-weight:950;white-space:nowrap}.match-intel-why{color:#7d92ad;font-size:10px;font-weight:850;line-height:1.35;text-transform:uppercase;letter-spacing:.04em}.match-intel-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.match-intel-tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;border:1px solid rgba(88,168,255,.22);background:rgba(22,119,255,.09);color:#d8e8ff;font-size:9px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}.match-intel-tag.hot{border-color:rgba(255,90,107,.32);background:rgba(255,90,107,.10);color:#ffd5dc}.gc-box.matchup-box{border-color:rgba(22,119,255,.28);background:linear-gradient(180deg,rgba(22,119,255,.06),rgba(255,255,255,.02))}.logo.has-logo img,.big-logo.has-logo img{position:absolute!important;top:50%!important;left:50%!important;width:var(--logo-w,95%)!important;height:var(--logo-h,95%)!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;transform:translate(calc(-50%+var(--logo-x,0px)),calc(-50%+var(--logo-y,0px))) scale(var(--logo-scale,1))!important;transform-origin:center center!important}.logo,.big-logo{position:relative!important;display:grid!important;place-items:center!important}.logo,.big-logo{display:flex!important;align-items:center!important;justify-content:center!important;background:#fff!important;border-radius:6px!important;overflow:hidden!important;position:relative!important;isolation:isolate!important;flex:0 0 auto!important;box-shadow:0 4px 10px rgba(0,0,0,.42)!important}.big-logo{border-radius:12px!important;box-shadow:0 16px 30px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08)!important}.logo img,.big-logo img,.logo.has-logo img,.big-logo.has-logo img{position:absolute!important;top:50%!important;left:50%!important;z-index:2!important;display:block!important;width:var(--logo-w,84%)!important;height:var(--logo-h,84%)!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;background:transparent!important;border-radius:0!important;padding:0!important;margin:0!important;transform:translate(calc(-50%+var(--logo-x,0px)),calc(-50%+var(--logo-y,0px))) scale(var(--logo-scale,1))!important;transform-origin:center center!important}.logo.logo-round img,.logo.logo-square img,.big-logo.logo-round img,.big-logo.logo-square img{width:var(--logo-w,84%)!important;height:var(--logo-h,84%)!important}.logo.logo-wide img,.big-logo.logo-wide img{width:var(--logo-w,88%)!important;height:var(--logo-h,70%)!important}.logo.logo-tall img,.big-logo.logo-tall img{width:var(--logo-w,70%)!important;height:var(--logo-h,88%)!important}.team-row .logo,.game-team .logo,.team-cell .logo{width:32px!important;height:32px!important}#standingsBody .logo{width:30px!important;height:30px!important}.logo:not(.has-logo) .logo-fallback{font-size:10px!important;color:#071323!important}.big-logo:not(.has-logo) .logo-fallback{font-size:26px!important;color:#071323!important}.nav a,.panel-head a{text-decoration:none!important}.featured .panel-head{justify-content:space-between!important}.featured .panel-head h2{width:auto!important;text-align:left!important}.featured #featuredContext{position:static!important;margin-left:auto!important}.team-row,.game-team{gap:7px!important}.team-cell{gap:7px!important}.game-list .game{padding:7px 0!important}.schedule-game{padding:10px 0!important}.logo img,.big-logo img{max-width:92%!important;max-height:92%!important}.logo.logo-wide img,.big-logo.logo-wide img{max-width:92%!important;max-height:78%!important}.logo.logo-tall img,.big-logo.logo-tall img{max-width:78%!important;max-height:92%!important}.logo--circle img,.logo--standard img{width:var(--logo-w,84%)!important;height:var(--logo-h,84%)!important}.logo--wide img{width:var(--logo-w,88%)!important;height:var(--logo-h,70%)!important}.logo--tall img{width:var(--logo-w,70%)!important;height:var(--logo-h,88%)!important}.brand,.brand:visited{color:var(--text)!important;text-decoration:none!important}.nav a,.nav a:visited,.panel-head a{text-decoration:none!important}.nav a.disabled{opacity:.35!important;pointer-events:none!important;cursor:default!important;color:#7d92ad!important;border-bottom-color:transparent!important}.nav a.disabled:hover{color:#7d92ad!important}.logo,.big-logo{display:flex !important;align-items:center !important;justify-content:center !important;background:#fff !important;overflow:hidden !important;position:relative !important;isolation:isolate !important;flex:0 0 auto !important}.logo{width:32px !important;height:32px !important;border-radius:7px !important;box-shadow:0 4px 10px rgba(0,0,0,.42) !important}#standingsBody .logo{width:30px !important;height:30px !important}.big-logo{width:104px !important;height:104px !important;border-radius:12px !important;margin:0 auto 12px !important;box-shadow:0 16px 30px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08) !important}.logo img,.big-logo img,.logo.has-logo img,.big-logo.has-logo img,.logo.logo-wide img,.big-logo.logo-wide img,.logo.logo-tall img,.big-logo.logo-tall img,.logo.logo-round img,.big-logo.logo-round img,.logo.logo-square img,.big-logo.logo-square img,.logo--wide img,.logo--tall img,.logo--circle img,.logo--standard img{position:static !important;display:block !important;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;object-fit:contain !important;object-position:center center !important;padding:6% !important;margin:0 !important;background:transparent !important;border-radius:0 !important;transform:none !important}.logo.has-logo .logo-fallback,.big-logo.has-logo .logo-fallback{display:none !important}.logo-fallback{display:grid !important;place-items:center !important;color:#071323 !important;font-weight:950 !important;text-align:center !important;line-height:1 !important}.team-row,.game-team,.team-cell{gap:6px !important}.team-row{margin:5px 0 !important}.game-list .game{padding:6px 0 !important}.schedule-game{padding:9px 0 !important}.logo{width:30px !important;height:30px !important}.team-row .logo,.game-team .logo,.team-cell .logo{width:30px !important;height:30px !important}#standingsBody .logo{width:29px !important;height:29px !important}.featured .big-logo,.big-logo{width:104px !important;height:104px !important}.panel-head h2{letter-spacing:.08em !important;font-size:13px !important}.panel-head a,.period{letter-spacing:.06em !important}.status-live,.live-tag{color:var(--red) !important;text-shadow:0 0 8px rgba(255,90,107,.40) !important}.status-final{color:var(--green) !important}.status-scheduled{color:var(--muted) !important}.game,.schedule-game,.score-card{transition:background .16s ease,transform .16s ease,border-color .16s ease !important}.game:hover,.schedule-game:hover,.score-card:hover{background:rgba(255,255,255,.03) !important;transform:translateY(-1px) !important}.panel-body{scroll-behavior:smooth !important}.featured .feature-score{margin-bottom:8px !important}.feature-sub{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;font-size:11px;font-weight:900;color:#7d92ad;text-transform:uppercase;letter-spacing:.05em;margin-top:6px;text-align:center}.feature-why{margin:10px auto 0;max-width:340px;text-align:center;font-size:12px;color:#c8d6e7;font-weight:800;line-height:1.4}.empty{padding:24px !important;border:1px dashed rgba(120,150,190,.30) !important;border-radius:10px !important;text-align:center !important;color:var(--muted) !important;font-size:13px !important;font-weight:800 !important;line-height:1.45 !important}.nav a.disabled{opacity:.32 !important;pointer-events:none !important;cursor:default !important;color:#7d92ad !important}@media(max-width:760px){.panel-head h2{font-size:12px !important}.team-row,.game-team,.team-cell{gap:6px !important}.featured .big-logo,.big-logo{width:88px !important;height:88px !important}}.nav a.disabled,.nav a[aria-disabled="true"]{opacity:.32!important;pointer-events:none!important;cursor:default!important;color:#7d92ad!important;border-bottom-color:transparent!important;text-decoration:none!important}.brand,.brand:visited,.nav a,.nav a:visited{text-decoration:none!important}.logo img,.big-logo img{object-fit:contain!important;object-position:center center!important}.team-center{position:fixed;inset:0;z-index:120;display:none;background:rgba(2,8,19,.78);backdrop-filter:blur(14px);padding:24px}.team-center.open{display:grid;place-items:center}.tp-card{width:min(1080px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,#081a30,#020812);border:1px solid rgba(136,170,214,.28);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.7)}.tp-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22)}.tp-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.06em}.tp-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:7px;padding:8px 11px;font-weight:900;cursor:pointer}.tp-body{padding:18px}.tp-hero{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid rgba(120,150,190,.20);background:radial-gradient(circle at 0 0,rgba(22,119,255,.16),transparent 40%),rgba(255,255,255,.02);border-radius:12px}.tp-title{min-width:0}.tp-title h1{margin:0;color:#fff;font-size:30px;line-height:.98;text-transform:uppercase;letter-spacing:-.045em}.tp-sub{margin-top:8px;color:#7d92ad;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.tp-record{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-width:260px}.tp-stat{border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.025);border-radius:9px;padding:10px;text-align:center}.tp-stat b{display:block;color:#fff;font-size:22px;line-height:1;font-weight:950}.tp-stat span{display:block;margin-top:6px;color:#7d92ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.tp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-top:14px}.tp-box{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.02);border-radius:10px;padding:14px}.tp-box h3{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.tp-game{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(120,150,190,.13);cursor:pointer}.tp-game:last-child{border-bottom:0}.tp-game:hover{background:rgba(255,255,255,.025)}.tp-date{color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase}.tp-match{min-width:0;color:#fff;font-size:12px;font-weight:900;line-height:1.3}.tp-score{color:#dbe7f7;font-size:12px;font-weight:950;white-space:nowrap}.tp-meter{height:6px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden}.tp-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:999px}.tp-note{color:#9fb2ca;font-size:11px;font-weight:850;line-height:1.5;text-transform:uppercase;letter-spacing:.05em}.team-page-link{cursor:pointer}.team-page-link:hover{text-decoration:none;color:#fff}@media(max-width:760px){.team-center{padding:12px}.tp-hero{grid-template-columns:1fr;text-align:center}.tp-record{min-width:0}.tp-grid{grid-template-columns:1fr}.tp-title h1{font-size:26px}}.gc-game-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:10px;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.02);border-radius:10px}.gc-nav-btn{border:1px solid rgba(120,150,190,.25);background:#051426;color:#dcecff;border-radius:8px;padding:9px 11px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.gc-nav-btn:disabled{opacity:.35;cursor:default}.gc-nav-center{color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;text-align:center}.gc-team.team-page-link{cursor:pointer;border-radius:10px;padding:8px;transition:background .16s ease,transform .16s ease}.gc-team.team-page-link:hover{background:rgba(255,255,255,.035);transform:translateY(-1px)}@media(max-width:760px){.gc-game-nav{display:grid;grid-template-columns:1fr}.gc-nav-btn{width:100%}}.team-directory-center{position:fixed;inset:0;z-index:132;display:none;background:rgba(2,8,19,.78);backdrop-filter:blur(14px);padding:24px}.team-directory-center.open{display:grid;place-items:center}.td-card{width:min(1120px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,#081a30,#020812);border:1px solid rgba(136,170,214,.28);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.7)}.td-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22)}.td-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.07em;font-weight:950}.td-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:8px;padding:8px 11px;font-weight:950;cursor:pointer}.td-body{padding:16px 18px 20px}.td-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:14px}.td-search{border:1px solid rgba(120,150,190,.24);background:#071323;color:#fff;border-radius:8px;padding:11px 13px;font-size:13px;width:100%}.td-context{color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.td-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.td-team{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.022);border-radius:11px;padding:11px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;cursor:pointer;transition:background .16s ease,transform .16s ease,border-color .16s ease}.td-team:hover{background:rgba(255,255,255,.04);transform:translateY(-1px);border-color:rgba(88,168,255,.28)}.td-team .logo{width:38px!important;height:38px!important}.td-name{min-width:0;color:#fff;font-size:12px;font-weight:950;line-height:1.15;text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-meta{display:block;margin-top:4px;color:#7d92ad;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;line-height:1.3;white-space:normal}.td-score{display:grid;gap:3px;text-align:right;white-space:nowrap}.td-score b{font-size:14px;color:#fff}.td-score span{font-size:9px;color:#7d92ad;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.td-empty{padding:24px;border:1px dashed rgba(120,150,190,.30);border-radius:10px;text-align:center;color:#7d92ad;font-size:13px;font-weight:850}@media(max-width:1180px){.td-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.team-directory-center{padding:12px}.td-toolbar{grid-template-columns:1fr}.td-grid{grid-template-columns:1fr}.td-context{white-space:normal}.td-head{align-items:flex-start;flex-direction:column;padding:12px 14px}.td-close{width:100%}}#teamCenter.team-center,.team-center{z-index:300 !important}#teamCenter.team-center.open,.team-center.open{display:grid !important;place-items:center !important;z-index:300 !important}#teamDirectory.team-directory-center,.team-directory-center{z-index:132 !important}#teamDirectory.team-directory-center.hidden-behind-team,.team-directory-center.hidden-behind-team{display:none !important}.rankings-center{position:fixed;inset:0;z-index:135;display:none;place-items:center;background:rgba(2,8,19,.78);backdrop-filter:blur(14px);padding:24px}.rankings-center.open{display:grid}.rk-card{width:min(1120px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,#081a30,#020812);border:1px solid rgba(136,170,214,.28);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.70)}.rk-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22)}.rk-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.07em;font-weight:950}.rk-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:8px;padding:8px 11px;font-weight:950;cursor:pointer}.rk-body{padding:16px 18px 20px}.rk-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:12px}.rk-search{border:1px solid rgba(120,150,190,.24);background:#071323;color:#fff;border-radius:8px;padding:11px 13px;font-size:13px;font-weight:800}.rk-context{color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.rk-hero{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px;margin-bottom:12px}.rk-feature{border:1px solid rgba(239,68,68,.28);background:radial-gradient(circle at 0 0,rgba(239,68,68,.16),transparent 46%),linear-gradient(135deg,rgba(22,119,255,.07),rgba(255,255,255,.02));border-radius:11px;padding:14px}.rk-feature-label{color:#ffd1d7;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.14em;margin-bottom:9px}.rk-feature-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center}.rk-feature-name{color:#fff;font-size:17px;font-weight:950;text-transform:uppercase;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rk-feature-meta{display:block;margin-top:5px;color:#9fb2ca;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;line-height:1.35}.rk-feature-score{text-align:right;color:#fff;font-size:26px;font-weight:950;letter-spacing:-.05em}.rk-feature-score span{display:block;margin-top:2px;color:#7d92ad;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.rk-summary{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.022);border-radius:11px;padding:13px}.rk-summary b{display:block;color:#fff;font-size:22px;letter-spacing:-.04em}.rk-summary span{display:block;margin-top:5px;color:#7d92ad;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;line-height:1.35}.rk-table{display:grid;gap:7px}.rk-row{display:grid;grid-template-columns:42px minmax(0,1fr) 78px 88px 72px;gap:10px;align-items:center;padding:9px 10px;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.018);border-radius:10px;cursor:pointer;transition:background .16s ease,transform .16s ease,border-color .16s ease}.rk-row:hover{background:rgba(255,255,255,.04);transform:translateY(-1px);border-color:rgba(120,150,190,.30)}.rk-rank{color:#7d92ad;font-size:11px;font-weight:950;text-transform:uppercase;text-align:center}.rk-team{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-width:0}.rk-team .logo{width:34px!important;height:34px!important}.rk-name{min-width:0;color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rk-mini{display:block;margin-top:3px;color:#7d92ad;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;white-space:normal}.rk-score{text-align:right;color:#fff;font-size:16px;font-weight:950}.rk-stat{text-align:right;color:#dbe7f7;font-size:11px;font-weight:900;text-transform:uppercase}.rk-trend{text-align:right;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.rk-trend.rise{color:#ef4444}.rk-trend.hold{color:#9CA3AF}.rk-trend.fall{color:#3b82f6}.rk-note{margin-top:12px;padding:10px 11px;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.018);border-radius:10px;color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}@media(max-width:760px){.rankings-center{padding:12px}.rk-toolbar,.rk-hero{grid-template-columns:1fr}.rk-context{white-space:normal}.rk-row{grid-template-columns:32px minmax(0,1fr) 52px}.rk-stat,.rk-trend{display:none}}.rk-empty-hero{border:1px solid rgba(120,150,190,.22);background:radial-gradient(circle at 0 0,rgba(22,119,255,.12),transparent 46%),rgba(255,255,255,.02);border-radius:11px;padding:15px;margin-bottom:12px}.rk-empty-title{color:#fff;font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}.rk-empty-copy{color:#9fb2ca;font-size:11px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}.rk-row.unranked{grid-template-columns:42px minmax(0,1fr) 78px}.rk-row.unranked .rk-score{color:#7d92ad}.rk-row.unranked .rk-score{color:#7d92ad;font-size:11px;text-transform:uppercase}.rk-version{display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:8px;border-radius:999px;border:1px solid rgba(62,230,166,.28);background:rgba(62,230,166,.08);color:#a7f8d4;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.standings-center{position:fixed;inset:0;z-index:132;display:none;background:rgba(2,8,19,.78);backdrop-filter:blur(14px);padding:24px}.standings-center.open{display:grid;place-items:center}.st-card{width:min(1220px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,#081a30,#020812);border:1px solid rgba(136,170,214,.28);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.7)}.st-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;border-bottom:1px solid rgba(120,150,190,.22)}.st-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.06em;font-weight:950}.st-close{border:1px solid rgba(120,150,190,.25);background:#051426;color:#fff;border-radius:8px;padding:8px 11px;font-weight:950;cursor:pointer}.st-body{padding:18px}.st-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin-bottom:14px}.st-panel{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.022);border-radius:10px;padding:14px}.st-eyebrow{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.12em;color:#58a8ff}.st-title{margin:7px 0 6px;font-size:28px;font-weight:950;text-transform:uppercase;letter-spacing:-.055em;line-height:.98}.st-copy{margin:0;color:#7d92ad;font-size:12px;line-height:1.5;font-weight:800}.st-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.st-metric{border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.02);border-radius:9px;padding:10px}.st-metric b{display:block;font-size:22px;letter-spacing:-.05em;color:#fff}.st-metric span{display:block;margin-top:3px;color:#7d92ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.st-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.st-scope{color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.st-table-wrap{overflow:auto}.st-table{min-width:900px;width:100%;border-collapse:collapse}.st-table th,.st-table td{padding:10px 8px;border-bottom:1px solid rgba(128,151,178,.15);font-size:12px;text-align:left}.st-table th{font-size:10px;text-transform:uppercase;color:#7d92ad;letter-spacing:.08em}.st-table .right{text-align:right}.st-rank{color:#7d92ad;font-weight:950}.st-diff-pos{color:#3ee6a6;font-weight:950}.st-diff-neg{color:#ff5a6b;font-weight:950}.st-team{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center}.st-team-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:950}.st-note{margin-top:11px;color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}@media(max-width:760px){.standings-center{padding:12px}.st-hero,.st-metrics{grid-template-columns:1fr}.st-title{font-size:23px}}.playoff-toggle{display:inline-flex;gap:3px;border:1px solid rgba(120,150,190,.24);background:#051426;border-radius:8px;padding:3px;white-space:nowrap}.playoff-toggle button{border:0;background:transparent;color:#dce8f8;border-radius:6px;padding:8px 10px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.playoff-toggle button.active{background:var(--blue);color:#fff}.playoff-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 0}.playoff-box{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.025);border-radius:10px;padding:11px 12px}.playoff-box b{display:block;color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.playoff-box span{display:block;color:#7d92ad;font-size:10px;font-weight:850;line-height:1.4;text-transform:uppercase;letter-spacing:.05em}.st-row-clinched{background:linear-gradient(90deg,rgba(62,230,166,.08),rgba(255,255,255,0))}.st-row-playoff{background:linear-gradient(90deg,rgba(22,119,255,.07),rgba(255,255,255,0))}.st-row-bubble{background:linear-gradient(90deg,rgba(234,179,8,.08),rgba(255,255,255,0))}.st-row-out{opacity:.58}.st-cutline td{border-top:2px solid rgba(255,255,255,.20)!important}.playoff-badge{display:inline-flex;align-items:center;justify-content:center;min-width:62px;height:20px;padding:0 7px;border-radius:999px;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;border:1px solid rgba(120,150,190,.22);color:#dbe7f7;background:rgba(255,255,255,.035)}.playoff-badge.clinched{border-color:rgba(62,230,166,.32);background:rgba(62,230,166,.10);color:#d8fff0}.playoff-badge.playoff{border-color:rgba(22,119,255,.32);background:rgba(22,119,255,.11);color:#dcecff}.playoff-badge.bubble{border-color:rgba(234,179,8,.34);background:rgba(234,179,8,.10);color:#fff2bd}.playoff-badge.out{border-color:rgba(148,163,184,.20);background:rgba(148,163,184,.06);color:#94a3b8}.seed-pill{display:inline-flex;align-items:center;justify-content:center;width:26px;height:22px;border-radius:6px;border:1px solid rgba(120,150,190,.22);background:rgba(255,255,255,.035);font-size:10px;font-weight:950;color:#fff}@media(max-width:760px){.playoff-summary{grid-template-columns:1fr}.playoff-toggle{width:100%;overflow:auto}.playoff-toggle button{flex:1}}.bracket-wrap{display:none;margin-top:10px}.bracket-wrap.open{display:block}.bracket-disclaimer{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(234,179,8,.25);background:rgba(234,179,8,.075);border-radius:10px;color:#fff2bd;font-size:10px;font-weight:900;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}.bracket-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;align-items:start}.bracket-round{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.022);border-radius:12px;overflow:hidden}.bracket-round-head{height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.025)}.bracket-round-head b{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:#fff}.bracket-round-head span{font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:#7d92ad}.bracket-games{display:grid;gap:10px;padding:12px}.bracket-game{border:1px solid rgba(120,150,190,.18);background:linear-gradient(180deg,rgba(22,119,255,.045),rgba(255,255,255,.018));border-radius:10px;overflow:hidden}.bracket-game-label{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-bottom:1px solid rgba(255,255,255,.07);color:#7d92ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.bracket-team{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:8px 9px;border-top:1px solid rgba(255,255,255,.05);cursor:pointer}.bracket-team:first-of-type{border-top:0}.bracket-team:hover{background:rgba(255,255,255,.035)}.bracket-seed{width:24px;height:22px;border-radius:6px;display:grid;place-items:center;border:1px solid rgba(120,150,190,.22);background:rgba(255,255,255,.035);font-size:10px;font-weight:950;color:#fff}.bracket-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:950;color:#fff}.bracket-meta{font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:#7d92ad;white-space:nowrap}.bracket-placeholder{padding:12px;color:#7d92ad;font-size:11px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}.bracket-team.bye{opacity:.75}.bracket-team.projected-winner{background:rgba(22,119,255,.055)}.bracket-team.projected-winner .bracket-name{color:#d8e8ff}.bracket-path-note{margin-top:12px;padding:10px 12px;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.018);border-radius:10px;color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}@media(max-width:980px){.bracket-grid{grid-template-columns:1fr}.bracket-team{grid-template-columns:28px 1fr auto}}.tp-card{width:min(1180px,100%)!important}.tp-hero{position:relative;overflow:hidden!important;grid-template-columns:132px minmax(0,1fr) minmax(320px,auto)!important;background:radial-gradient(circle at 0 0,rgba(22,119,255,.20),transparent 42%),radial-gradient(circle at 85% 0,rgba(62,230,166,.08),transparent 32%),rgba(255,255,255,.02)!important}.tp-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.055),transparent 22%,rgba(255,255,255,.02));pointer-events:none}.tp-title,.tp-record,.tp-hero>.big-logo,.tp-hero>div{position:relative;z-index:1}.tp-title h1{font-size:34px!important;letter-spacing:-.055em!important;line-height:.94!important}.tp-sub{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important;margin-top:9px!important}.tp-pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid rgba(120,150,190,.22);background:rgba(255,255,255,.026);color:#cfe3ff;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.tp-pill.hot{border-color:rgba(255,90,107,.34);background:rgba(255,90,107,.10);color:#ffd5dc}.tp-pill.green{border-color:rgba(62,230,166,.25);background:rgba(62,230,166,.07);color:#cbffed}.tp-pill.blue{border-color:rgba(22,119,255,.34);background:rgba(22,119,255,.10);color:#d8e8ff}.tp-pill.muted{color:#7d92ad}.tp-record{grid-template-columns:repeat(4,1fr)!important;min-width:360px!important}.tp-stat{min-width:0!important}.tp-stat b{font-size:21px!important}.tp-stat span{line-height:1.15!important}.tp-grid{grid-template-columns:1fr 1fr!important;align-items:start!important}.tp-box{background:rgba(255,255,255,.022)!important}.tp-box.featured-box{border-color:rgba(22,119,255,.26)!important;background:linear-gradient(180deg,rgba(22,119,255,.065),rgba(255,255,255,.018))!important}.tp-box.playoff-box-team{border-color:rgba(255,90,107,.24)!important;background:linear-gradient(180deg,rgba(255,90,107,.06),rgba(255,255,255,.018))!important}.tp-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tp-mini-card{border:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.022);border-radius:9px;padding:10px}.tp-mini-card b{display:block;color:#fff;font-size:18px;line-height:1;font-weight:950}.tp-mini-card span{display:block;margin-top:6px;color:#7d92ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;line-height:1.25}.tp-mini-card.good b{color:#3ee6a6}.tp-mini-card.warn b{color:#ff5a6b}.tp-mini-card.blue b{color:#58a8ff}.tp-form-strip{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.tp-form-dot{width:26px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(120,150,190,.2);background:rgba(255,255,255,.025);font-size:10px;font-weight:950}.tp-form-dot.w{color:#3ee6a6;border-color:rgba(62,230,166,.26);background:rgba(62,230,166,.07)}.tp-form-dot.l{color:#ff5a6b;border-color:rgba(255,90,107,.26);background:rgba(255,90,107,.07)}.tp-form-dot.t{color:#eab308;border-color:rgba(234,179,8,.25);background:rgba(234,179,8,.07)}.tp-meter-row{display:grid;grid-template-columns:86px 1fr auto;gap:10px;align-items:center;margin:10px 0;color:#7d92ad;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.tp-meter-row strong{color:#fff}.tp-meter{height:7px!important}.tp-meter i{box-shadow:0 0 12px rgba(22,119,255,.35)}.tp-schedule-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px}.tp-schedule-head h3{margin:0!important}.tp-link-btn{border:1px solid rgba(120,150,190,.22);background:rgba(255,255,255,.025);color:#dbe7f7;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.tp-link-btn:hover{border-color:rgba(22,119,255,.42);background:rgba(22,119,255,.09)}.tp-game{border-radius:8px;padding:9px 8px!important;margin:0 -8px;border-bottom:1px solid rgba(120,150,190,.11)!important}.tp-game .tp-score.win{color:#3ee6a6}.tp-game .tp-score.loss{color:#ff5a6b}.tp-game .tp-score.tie{color:#eab308}.tp-match .rink{display:inline-block;margin-top:2px}.tp-outcome{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;margin-right:6px;font-size:10px;font-weight:950;background:rgba(255,255,255,.035);border:1px solid rgba(120,150,190,.16)}.tp-outcome.w{color:#3ee6a6;border-color:rgba(62,230,166,.22)}.tp-outcome.l{color:#ff5a6b;border-color:rgba(255,90,107,.22)}.tp-outcome.t{color:#eab308;border-color:rgba(234,179,8,.22)}.tp-status-banner{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 11px;border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.025);border-radius:10px;margin-bottom:12px}.tp-status-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:18px;font-weight:950;background:rgba(22,119,255,.10);color:#d8e8ff}.tp-status-banner h4{margin:0;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.tp-status-banner p{margin:4px 0 0;color:#7d92ad;font-size:11px;font-weight:850;line-height:1.4}.tp-status-banner.clinched .tp-status-icon,.tp-status-banner.playoff .tp-status-icon{background:rgba(62,230,166,.09);color:#3ee6a6}.tp-status-banner.bubble .tp-status-icon{background:rgba(234,179,8,.09);color:#eab308}.tp-status-banner.out .tp-status-icon{background:rgba(255,90,107,.09);color:#ff5a6b}.tp-note strong{color:#dbe7f7}.tp-divider{height:1px;background:rgba(255,255,255,.08);margin:12px 0}.team-center .gc-button{cursor:pointer}@media(max-width:900px){.tp-hero{grid-template-columns:1fr!important;text-align:center!important}.tp-sub{justify-content:center!important}.tp-record{grid-template-columns:repeat(2,1fr)!important;min-width:0!important}.tp-grid{grid-template-columns:1fr!important}.tp-two-col{grid-template-columns:1fr}.tp-meter-row{grid-template-columns:1fr}.tp-title h1{font-size:28px!important}}.min-games-note{margin-top:9px;color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;line-height:1.4}.nav a[data-rw-playoff-hub]{white-space:nowrap}.nav a[data-rw-playoff-hub].active{color:white;border-bottom-color:var(--blue)}.st-head{gap:14px!important}.st-head h2{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}.hub-status-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;border:1px solid rgba(255,90,107,.34);background:rgba(255,90,107,.10);color:#ffd5dc;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;line-height:1}.hub-status-badge.official{border-color:rgba(62,230,166,.32);background:rgba(62,230,166,.10);color:#d5fff0}.hub-status-dot{width:6px;height:6px;border-radius:50%;background:#ff5a6b;box-shadow:0 0 10px rgba(255,90,107,.5)}.hub-status-badge.official .hub-status-dot{background:#3ee6a6;box-shadow:0 0 10px rgba(62,230,166,.5)}.hub-polish-card{margin:0 0 14px;padding:13px 14px;border:1px solid rgba(120,150,190,.22);background:linear-gradient(180deg,rgba(22,119,255,.065),rgba(255,255,255,.018));border-radius:11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.hub-polish-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.hub-polish-title{margin:0;color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.hub-polish-copy{margin:6px 0 0;color:#9fb2ca;font-size:11px;font-weight:850;line-height:1.48;text-transform:uppercase;letter-spacing:.045em}.hub-rule-pill{white-space:nowrap;display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;border:1px solid rgba(88,168,255,.24);background:rgba(22,119,255,.10);color:#d8e8ff;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.hub-polish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.hub-polish-stat{border:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.02);border-radius:9px;padding:9px}.hub-polish-stat b{display:block;color:#f2f7ff;font-size:13px;font-weight:950;line-height:1.1}.hub-polish-stat span{display:block;margin-top:4px;color:#7d92ad;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;line-height:1.25}.hub-empty{margin-top:12px;padding:18px;border:1px dashed rgba(120,150,190,.28);background:rgba(255,255,255,.018);border-radius:11px;text-align:center;color:#9fb2ca}.hub-empty b{display:block;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.hub-empty span{display:block;font-size:11px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.045em}.bracket-wrap.open{overflow-x:auto;scrollbar-gutter:stable}.bracket-grid{min-width:780px}.bracket-disclaimer.rule-aware,.bracket-path-note.rule-aware{border-left:3px solid rgba(255,90,107,.75)!important}.bracket-team{cursor:pointer}.bracket-team:hover{background:rgba(255,255,255,.045)!important}.playoff-badge.projected,.playoff-badge.warning{border-color:rgba(234,179,8,.32)!important;background:rgba(234,179,8,.10)!important;color:#ffe9a3!important}.rule-card{position:relative}.rule-card:before{content:"RULE-AWARE";display:inline-flex;margin:0 0 7px;padding:4px 7px;border-radius:999px;border:1px solid rgba(88,168,255,.22);background:rgba(22,119,255,.09);color:#d8e8ff;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}@media(max-width:760px){.st-head{align-items:flex-start!important}.st-head h2{font-size:13px!important}.hub-polish-top{display:block}.hub-rule-pill{margin-top:9px}.hub-polish-grid{grid-template-columns:1fr}.bracket-grid{min-width:660px}.hub-polish-card{padding:12px}.st-body{padding:14px!important}}:root{--bg:#0b121d !important;--line:rgba(255,255,255,.08) !important;--text:#f2f7ff !important;--muted:#7d92ad !important;--blue:#1473f5 !important;--red:#ff5a6b !important;--green:#3ee6a6 !important}html,body{background:#01040a!important;color:#f4f8ff!important}body:before{background:radial-gradient(circle at 18% -12%,rgba(20,115,245,.18),transparent 34%),radial-gradient(circle at 85% -8%,rgba(53,217,155,.045),transparent 28%),linear-gradient(180deg,#01050d,#010713 46%,#01050d)!important}.header{background:linear-gradient(180deg,#030b18,#01050d)!important;border-bottom-color:rgba(105,132,170,.16)!important;box-shadow:0 10px 26px rgba(0,0,0,.58)!important}.scorebar{background:rgba(2,8,18,.98)!important;border-bottom-color:rgba(105,132,170,.16)!important}.score-card,.panel,.gc-card,.modal-card,.hero-card,.team-card,.resource,.gc-box,.metric,.playoff-card,.bracket-card,.bracket-matchup,.playoff-summary-card,.playoff-rule-card,.playoff-empty,.hub-card{background:linear-gradient(180deg,#051225,#020917 82%)!important;border-color:rgba(105,132,170,.16)!important;box-shadow:0 12px 28px rgba(0,0,0,.62)!important}.panel-head,.gc-head,.modal-head,.analytics-drawer-head{background:linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.006))!important;border-bottom-color:rgba(105,132,170,.14)!important}.filters{border-bottom-color:rgba(105,132,170,.14)!important}.seg,.search,.mini-btn,.analytics-close,.gc-close,.modal-close{background:#030d1d!important;border-color:rgba(105,132,170,.18)!important}.seg button{color:#cfdbeb!important}.seg button.active,.mini-btn.active{background:#1265dc!important;color:#fff!important;box-shadow:0 0 16px rgba(20,115,245,.16)!important}.nav a{color:#cbd8ea!important}.nav a.active{color:#fff!important;border-bottom-color:#1473f5!important}.nav a.disabled{color:#667b96!important;opacity:.30!important}.status-time,.period,.rink,.score-meta span:last-child,.team-sub,.meta .rink,.rwpi-mini-metrics,.trending-meta,.momentum-mini,.playoff-note,.standings-note,.analytics-note{color:#788da8!important}.panel-head a,.panel-head button.linky{color:#4d9cff!important}.score-card:hover,.game:hover,.schedule-game:hover,.team-card:hover,tr.clickable:hover,#rwpiBody tr:hover,#standingsBody tr:hover{background:rgba(255,255,255,.022)!important;border-color:rgba(105,132,170,.24)!important}.panel.featured{background:linear-gradient(180deg,rgba(1,5,13,.30),rgba(1,5,13,.78)),url('../images/arena-lights.jpg')!important;background-size:cover!important;background-position:center 35%!important;box-shadow:0 16px 38px rgba(0,0,0,.68),inset 0 1px 0 rgba(255,255,255,.045)!important}.featured:before{background:radial-gradient(circle at 50% 32%,rgba(20,115,245,.10),transparent 42%),radial-gradient(circle at 50% 8%,rgba(255,255,255,.035),transparent 28%),linear-gradient(180deg,rgba(1,5,13,.10),rgba(1,5,13,.66))!important}.featured:after{background:linear-gradient(90deg,rgba(1,5,13,.70),rgba(1,5,13,.18) 48%,rgba(1,5,13,.70)),linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,0) 34%)!important}.big-logo,.logo{box-shadow:0 8px 18px rgba(0,0,0,.50)!important}.big-logo{box-shadow:0 18px 34px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.055)!important}.table,table{color:#eef5ff!important}th{color:#788da8!important;border-bottom-color:rgba(105,132,170,.13)!important}td{border-bottom-color:rgba(105,132,170,.11)!important}.empty{background:rgba(255,255,255,.012)!important;border-color:rgba(105,132,170,.22)!important;color:#788da8!important}.footer{border-top-color:rgba(105,132,170,.16)!important;color:#788da8!important}.live-soft{box-shadow:0 0 0 1px rgba(255,82,101,.16),0 0 22px rgba(255,82,101,.055),inset 0 0 18px rgba(255,82,101,.026)!important}.status-live,.live-tag{text-shadow:0 0 8px rgba(255,82,101,.26)!important}.move-rise{text-shadow:0 0 10px rgba(239,68,68,.22)!important}.move-fall{text-shadow:0 0 10px rgba(59,130,246,.20)!important}.trending-card,#trendingBody .trending-card,.momentum-hero,#trendingBody .momentum-hero,.biggest-mover,#trendingBody .biggest-mover{background:linear-gradient(180deg,rgba(20,115,245,.055),rgba(255,255,255,.012))!important;border-color:rgba(105,132,170,.18)!important;box-shadow:none!important}.analytics-drawer{background:linear-gradient(180deg,#051225,#020917)!important;border-left-color:rgba(105,132,170,.18)!important;box-shadow:-24px 0 60px rgba(0,0,0,.70)!important}::-webkit-scrollbar-thumb{background:rgba(105,132,170,.28)!important}::-webkit-scrollbar-track{background:rgba(255,255,255,.02)!important}@media (max-width:760px){html,body{overflow-x:hidden!important}.shell{width:calc(100% - 20px)!important}.header-inner{height:auto!important;min-height:58px!important;padding:10px 0!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.brand{font-size:25px!important;line-height:1!important;white-space:nowrap!important}.nav{display:flex!important;width:100%!important;justify-content:flex-start!important;gap:18px!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;padding:2px 0 4px!important;scrollbar-width:none!important}.nav::-webkit-scrollbar{display:none!important}.nav a{height:30px!important;font-size:10px!important;flex:0 0 auto!important}.status{justify-content:flex-start!important;gap:8px!important;overflow:hidden!important;white-space:nowrap!important;font-size:10px!important}.scorebar-inner{grid-template-columns:1fr!important;gap:9px!important;padding:10px 0!important}.score-grid{grid-template-columns:1fr!important;max-height:246px!important;overflow-y:auto!important}.filters{gap:8px!important;padding:11px 0!important}.seg{width:100%!important;overflow-x:auto!important;white-space:nowrap!important;scrollbar-width:none!important}.seg::-webkit-scrollbar{display:none!important}.seg button{padding:9px 12px!important;font-size:11px!important;flex:0 0 auto!important}.search{width:100%!important}.grid-top,.grid-bottom{grid-template-columns:1fr!important;gap:12px!important;grid-auto-rows:auto!important}.panel-head{height:44px!important;min-height:44px!important;padding:0 12px!important}.panel-body{padding:12px!important;max-height:390px!important;overflow-y:auto!important}.featured>.panel-body{max-height:none!important;overflow:hidden!important}.feature-match{grid-template-columns:1fr!important;gap:10px!important;min-height:0!important}.featured .big-logo,.big-logo{width:82px!important;height:82px!important}.feature-score{font-size:48px!important;margin:8px 0!important}.game-list .game{grid-template-columns:1fr auto!important;gap:10px!important}.game-list .period{grid-column:1/-1!important;margin-left:39px!important}.meta{display:grid!important;grid-template-columns:1fr!important;gap:4px!important}.resource-grid{grid-template-columns:1fr!important}table{min-width:560px!important}.panel-body:has(table){overflow-x:auto!important}.standings-table-wrap,.bracket-scroll,.playoff-bracket,.bracket-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.full-standings-table{min-width:780px!important}.bracket-grid,.bracket-board{min-width:720px!important}.game-center,.modal{padding:8px!important;align-items:stretch!important}.gc-card,.modal-card{width:100%!important;max-height:calc(100vh - 16px)!important;border-radius:12px!important}.gc-score,.gc-grid,.team-profile-grid,.team-grid,.td-toolbar{grid-template-columns:1fr!important}.gc-scoreline{font-size:50px!important}.footer{padding:18px 0 28px!important;font-size:11px!important}}@media (max-width:420px){.brand{font-size:22px!important}.nav{gap:14px!important}.nav a{font-size:9px!important}.feature-score{font-size:42px!important}.logo{width:28px!important;height:28px!important}}:root{--bg:#0b121d;--line:rgba(255,255,255,.08);--muted:#7d92ad;--blue:#1473f5}body{background:#01040a!important}body:before{background:radial-gradient(circle at 20% -10%,rgba(29,127,255,.16),transparent 34%),radial-gradient(circle at 80% 0%,rgba(62,230,166,.045),transparent 28%)!important}.header{background:linear-gradient(180deg,#020815,#01040a)!important;border-bottom-color:rgba(120,150,190,.08)!important;box-shadow:0 10px 26px rgba(0,0,0,.64)!important}.scorebar{background:rgba(2,7,16,.97)!important;border-bottom-color:rgba(120,150,190,.08)!important}.panel,.score-card,.gc-card,.resource,.team-card,.gc-box,.hero-card,.metric,.standings-board{background:linear-gradient(180deg,#03101e,#020812 85%)!important;border-color:rgba(120,150,190,.08)!important;box-shadow:0 12px 28px rgba(0,0,0,.65)!important}.panel-head,.gc-head,.modal-head{background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,.006))!important;border-bottom-color:rgba(120,150,190,.08)!important}.empty,.match-intel,.rwpi-footer,.analytics-note,.trending-explain,.momentum-why{background:rgba(255,255,255,.01)!important;border-color:rgba(120,150,190,.08)!important}.seg,.search,.mini-btn,.gc-close,.modal-close{background:#030d1a!important;border-color:rgba(120,150,190,.10)!important}th,td,.game-list .game,.schedule-game,.team-row,.score-card small{border-bottom-color:rgba(120,150,190,.10)!important}.panel:hover,.score-card:hover,.team-card:hover,.resource:hover{box-shadow:0 16px 34px rgba(0,0,0,.72)!important}.caha-team-cell{display:flex;align-items:center;gap:9px;min-width:0}.caha-team-cell .logo{width:30px;height:30px;min-width:30px}.caha-team-cell .caha-team{min-width:0;white-space:normal;line-height:1.2}.caha-game b{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}.caha-game-team{display:flex;align-items:center;gap:8px;min-width:0}.caha-game-team.away{justify-content:flex-start}.caha-game-team.home{justify-content:flex-end;text-align:right}.caha-game-team .logo{width:28px;height:28px;min-width:28px}.caha-game-team span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caha-scoreline{font-size:14px;font-weight:950;color:#fff;white-space:nowrap}.caha-champ-wrap{display:flex;align-items:center;gap:14px;margin-top:10px}.caha-champ-wrap .big-logo{width:72px;height:72px;margin:0;min-width:72px}.caha-champ-copy{min-width:0}.caha-champ-copy b{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em}.caha-champ-copy span{display:block;margin-top:4px;color:#7d92ad;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}@media(max-width:760px){.caha-game b{grid-template-columns:1fr;gap:7px}.caha-game-team.home{justify-content:flex-start;text-align:left}.caha-scoreline{text-align:left}.caha-champ-wrap .big-logo{width:60px;height:60px;min-width:60px}}.caha-division-pills{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 0 12px}.caha-division-pill{border:1px solid rgba(105,132,170,.20);background:#020914;color:#9fb2ca;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.caha-division-pill.active{background:#1677ff;border-color:#1677ff;color:#fff}.logo img,.big-logo img{max-width:none!important;max-height:none!important;transform:translate(var(--logo-x,0),var(--logo-y,0)) scale(var(--logo-scale,1))}.logo[data-team-link],.big-logo[data-team-link]{cursor:pointer!important}.logo[data-team-link]:hover,.big-logo[data-team-link]:hover{outline:1px solid rgba(88,168,255,.45)!important}.rw-real-rink-grid{grid-template-columns:1fr 1fr!important;margin-top:14px}.rw-rink-card,.rw-tryout-card{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.025);border-radius:10px;padding:10px;margin-bottom:9px}.rw-rink-top,.rw-tryout-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rw-rink-title,.rw-tryout-title{min-width:0;color:#fff;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.02em;line-height:1.25}.rw-pill{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;border:1px solid rgba(88,168,255,.25);background:rgba(22,119,255,.10);color:#d8e8ff;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.rw-pill.open{border-color:rgba(255,90,107,.34);background:rgba(255,90,107,.12);color:#ffd5dc}.rw-pill.soon{border-color:rgba(62,230,166,.24);background:rgba(62,230,166,.08);color:#bfffe7}.rw-rink-meta,.rw-tryout-meta{margin-top:5px;color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;line-height:1.4}.rw-rink-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.rw-link-button{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border-radius:8px;border:1px solid rgba(22,119,255,.32);background:rgba(22,119,255,.10);color:#dcecff!important;text-decoration:none!important;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}@media(max-width:760px){.rw-real-rink-grid{grid-template-columns:1fr!important}}.rw-offseason-tabs{display:flex;gap:8px;align-items:center;justify-content:flex-end}.rw-offseason-tabs a{font-size:11px;color:#58a8ff;font-weight:950;text-transform:uppercase;text-decoration:none!important}.rw-offseason-section-title{margin:0 0 8px;color:#9fb2ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.10em}.rw-tryout-card[href]{display:block;text-decoration:none!important;transition:background .16s ease,border-color .16s ease,transform .16s ease}.rw-tryout-card[href]:hover{background:rgba(255,255,255,.04);border-color:rgba(88,168,255,.35);transform:translateY(-1px)}.rw-offseason-mini{display:flex;justify-content:space-between;gap:10px;margin-top:6px;color:#9fb2ca;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;line-height:1.35}.rw-offseason-mini span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rw-pill.confirmed{border-color:rgba(62,230,166,.30);background:rgba(62,230,166,.08);color:#bfffe7}.rw-pill.posted{border-color:rgba(88,168,255,.25);background:rgba(22,119,255,.10);color:#d8e8ff}.rw-pill.locked{border-color:rgba(245,196,81,.32);background:rgba(245,196,81,.09);color:#fff1bd}.rw-offseason-empty{padding:14px;border:1px dashed rgba(120,150,190,.28);border-radius:10px;color:#7d92ad;font-size:11px;font-weight:850;line-height:1.45}.logo:not(.has-logo),.big-logo:not(.has-logo){background:linear-gradient(180deg,#f7fbff,#dbe7f7)!important;border:1px solid rgba(255,255,255,.55)!important}.logo:not(.has-logo) img,.big-logo:not(.has-logo) img{display:none!important}.logo-fallback{color:#071323!important;opacity:1!important;font-family:Inter,Arial,sans-serif!important;font-weight:950!important;letter-spacing:-.06em!important;text-transform:uppercase!important}.big-logo:not(.has-logo) .logo-fallback{font-size:28px!important}.logo:not(.has-logo) img,.big-logo:not(.has-logo) img{display:block!important;visibility:hidden!important;opacity:0!important}.logo.has-logo img,.big-logo.has-logo img{display:block!important;visibility:visible!important;opacity:1!important}.scorebar-inner{grid-template-columns:170px minmax(0,1fr)!important;align-items:start!important}.score-grid{display:flex!important;flex-wrap:nowrap!important;grid-template-columns:none!important;gap:10px!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-x:contain!important;scroll-snap-type:x proximity!important;-webkit-overflow-scrolling:touch!important;padding:0 4px 10px 0!important;scrollbar-gutter:auto!important}.score-grid .score-card{flex:0 0 236px!important;width:236px!important;min-height:136px!important;height:auto!important;scroll-snap-align:start!important}.score-grid .team-row{grid-template-columns:30px minmax(0,1fr) auto!important}.score-grid .team-row>div:nth-child(2){min-width:0!important;white-space:normal!important;overflow:visible!important;line-height:1.16!important}.score-grid .score-card small{white-space:normal!important;line-height:1.25!important}.score-grid::-webkit-scrollbar{height:7px!important}.score-grid::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:10px!important}.score-grid::-webkit-scrollbar-thumb{background:rgba(120,150,190,.34);border-radius:10px!important}@media(max-width:1180px){.scorebar-inner{grid-template-columns:1fr!important;gap:10px!important}.score-grid{display:flex!important;flex-wrap:nowrap!important;grid-template-columns:none!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important}.score-grid .score-card{flex:0 0 242px!important;width:242px!important;min-height:138px!important}}@media(max-width:760px){.scorebar-inner{grid-template-columns:1fr!important}.score-grid{display:flex!important;flex-wrap:nowrap!important;grid-template-columns:none!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;padding-bottom:10px!important}.score-grid .score-card{flex:0 0 84vw!important;width:84vw!important;min-height:142px!important}}.score-card{min-height:132px!important;padding:13px 13px 14px!important;cursor:pointer!important;overflow:visible!important}.score-grid{max-height:174px!important;align-items:stretch!important}.score-card small{white-space:normal!important;line-height:1.35!important;margin-top:9px!important}.score-meta{min-height:18px!important}.team-row span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game,.schedule-game,.feature-match{cursor:pointer!important}.rw-app-strip{display:none!important}@media(max-width:760px){.score-card{min-height:134px!important}.score-grid{max-height:300px!important}}.score-ticker-wrap{position:relative;min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:stretch;gap:8px!important}.score-ticker-btn{border:1px solid rgba(120,150,190,.24);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018));color:#dbe7f7;border-radius:9px;font-size:28px;font-weight:950;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:136px;box-shadow:0 8px 20px rgba(0,0,0,.32);transition:background .16s ease,border-color .16s ease,transform .16s ease,opacity .16s ease}.score-ticker-btn:hover{background:rgba(22,119,255,.12);border-color:rgba(22,119,255,.38);color:#fff;transform:translateY(-1px)}.score-ticker-btn:active{transform:translateY(0) scale(.98)}.score-ticker-btn[disabled]{opacity:.28;cursor:default;transform:none}.score-grid{scroll-behavior:smooth!important}.score-grid.rw-ticker-paused{scroll-behavior:smooth!important}@media(max-width:1180px){.score-ticker-wrap{grid-template-columns:30px minmax(0,1fr) 30px!important}.score-ticker-btn{min-height:138px!important;font-size:25px!important}}@media(max-width:760px){.score-ticker-wrap{grid-template-columns:28px minmax(0,1fr) 28px!important;gap:6px!important}.score-ticker-btn{min-height:142px!important;font-size:23px!important;border-radius:8px!important}.score-grid{scroll-snap-type:x mandatory!important}}.score-ticker-wrap{position:relative!important}.score-ticker-wrap:before,.score-ticker-wrap:after{content:"";position:absolute;top:0;bottom:0;width:34px;z-index:3;pointer-events:none}.score-ticker-wrap:before{left:40px;background:linear-gradient(90deg,rgba(4,12,25,.96),rgba(4,12,25,0))}.score-ticker-wrap:after{right:40px;background:linear-gradient(270deg,rgba(4,12,25,.96),rgba(4,12,25,0))}.score-grid{overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important;padding-bottom:0!important}.score-grid::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.score-grid::-webkit-scrollbar-track,.score-grid::-webkit-scrollbar-thumb{display:none!important;background:transparent!important}.score-card{scroll-snap-align:start}@media(max-width:760px){.score-ticker-wrap:before{left:34px;width:22px}.score-ticker-wrap:after{right:34px;width:22px}}.rule-chip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;border:1px solid rgba(88,168,255,.24);background:rgba(22,119,255,.10);color:#d8e8ff;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.rule-chip.warn{border-color:rgba(234,179,8,.35);background:rgba(234,179,8,.10);color:#fff2bd}.rule-chip.ok{border-color:rgba(62,230,166,.32);background:rgba(62,230,166,.10);color:#d8fff0}.rule-chip.out{border-color:rgba(148,163,184,.22);background:rgba(148,163,184,.07);color:#a8b5c8}.rule-card{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(88,168,255,.22);background:linear-gradient(180deg,rgba(22,119,255,.075),rgba(255,255,255,.018));border-radius:10px;color:#9fb2ca;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.055em}.rule-card b{display:block;color:#fff;font-size:11px;font-weight:950;letter-spacing:.08em;margin-bottom:5px}.bracket-disclaimer.rule-aware{border-color:rgba(88,168,255,.28);background:rgba(22,119,255,.08);color:#d8e8ff}.bracket-path-note.rule-aware b{color:#fff}.rule-small{display:block;margin-top:3px;color:#7d92ad;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;line-height:1.35}.playoff-badge.warning{border-color:rgba(234,179,8,.34);background:rgba(234,179,8,.10);color:#fff2bd}@media(max-width:760px){.caha-game b{grid-template-columns:1fr;gap:7px}.caha-game-team.home{justify-content:flex-start;text-align:left}.caha-scoreline{text-align:left}.caha-champ-wrap .big-logo{width:60px;height:60px;min-width:60px}}.caha-games{display:grid;gap:8px}.caha-game{position:relative;border:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.018);border-radius:10px;padding:10px 11px}.caha-game b{display:block;color:#f2f7ff;font-size:12px;font-weight:950;line-height:1.35}.caha-game span{display:block;margin-top:4px;color:#7f93ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;line-height:1.35}.caha-section-sub{display:block;margin:-5px 0 10px;color:#7f93ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}@media(max-width:760px){.caha-game b{grid-template-columns:1fr;gap:7px}.caha-game-team.home{justify-content:flex-start;text-align:left}.caha-scoreline{text-align:left}.caha-champ-wrap .big-logo{width:60px;height:60px;min-width:60px}}.caha-archive-backdrop{position:fixed;inset:0;z-index:190;display:none;background:rgba(1,5,13,.82);backdrop-filter:blur(10px)}.caha-archive-backdrop.open{display:block}.caha-archive{position:fixed;inset:18px;z-index:200;display:none;background:linear-gradient(180deg,#030b18,#01050d);border:1px solid rgba(105,132,170,.18);border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.76);overflow:hidden;color:#f2f7ff}.caha-archive.open{display:grid;grid-template-rows:auto auto 1fr}.caha-head{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 18px;border-bottom:1px solid rgba(105,132,170,.16);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.008))}.caha-title{display:flex;align-items:center;gap:10px;min-width:0}.caha-title b{font-size:14px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.caha-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid rgba(62,230,166,.24);background:rgba(62,230,166,.08);color:#d8fff0;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.caha-close{border:1px solid rgba(105,132,170,.22);background:#04101f;color:#f2f7ff;border-radius:8px;padding:8px 11px;font-size:11px;font-weight:950;text-transform:uppercase;cursor:pointer}.caha-tabs{display:flex;gap:6px;overflow:auto;padding:12px 18px;border-bottom:1px solid rgba(105,132,170,.14);background:rgba(255,255,255,.012);scrollbar-gutter:stable}.caha-tab{border:1px solid rgba(105,132,170,.20);background:#020914;color:#9fb2ca;border-radius:8px;padding:9px 11px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;cursor:pointer}.caha-tab.active{background:#1677ff;color:#fff;border-color:#1677ff}.caha-body{overflow:auto;padding:16px 18px 22px}.caha-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:14px}.caha-card{border:1px solid rgba(105,132,170,.16);background:linear-gradient(180deg,#03101e,#020812 85%);border-radius:12px;padding:14px;box-shadow:0 12px 28px rgba(0,0,0,.65)}.caha-eyebrow{color:#58a8ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.12em}.caha-card h2{margin:8px 0 8px;font-size:30px;line-height:.95;letter-spacing:-.055em;text-transform:uppercase}.caha-card p{margin:0;color:#7f93ad;font-size:12px;font-weight:850;line-height:1.55;text-transform:uppercase;letter-spacing:.045em}.caha-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.caha-stat{border:1px solid rgba(105,132,170,.14);background:rgba(255,255,255,.018);border-radius:9px;padding:10px}.caha-stat b{display:block;font-size:22px;font-weight:950;letter-spacing:-.04em}.caha-stat span{display:block;margin-top:3px;color:#7f93ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.caha-main{display:grid;grid-template-columns:1fr .78fr;gap:12px}.caha-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.caha-section-head h3{margin:0;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.caha-division-select{border:1px solid rgba(105,132,170,.22);background:#020914;color:#f2f7ff;border-radius:8px;padding:9px 10px;font-size:11px;font-weight:900}.caha-table{width:100%;border-collapse:collapse}.caha-table th,.caha-table td{padding:10px 7px;border-bottom:1px solid rgba(105,132,170,.12);font-size:12px;text-align:left}.caha-table th{color:#7f93ad;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.caha-right{text-align:right!important}.caha-rank{width:26px;color:#7f93ad;font-weight:950}.caha-team{font-weight:950;color:#fff}.caha-chip{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:999px;border:1px solid rgba(105,132,170,.18);background:rgba(255,255,255,.025);color:#9fb2ca;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.caha-chip.champion{border-color:rgba(62,230,166,.28);background:rgba(62,230,166,.08);color:#d8fff0}.caha-chip.leader{border-color:rgba(234,179,8,.28);background:rgba(234,179,8,.08);color:#fff2bd}.caha-note{margin-top:12px;padding:10px 11px;border:1px solid rgba(105,132,170,.14);background:rgba(255,255,255,.018);border-radius:9px;color:#7f93ad;font-size:10px;font-weight:850;line-height:1.5;text-transform:uppercase;letter-spacing:.05em}.caha-games{display:grid;gap:9px}.caha-game{border:1px solid rgba(105,132,170,.14);background:rgba(255,255,255,.018);border-radius:10px;padding:10px}.caha-game b{display:block;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.caha-game span{display:block;margin-top:4px;color:#7f93ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;line-height:1.4}.caha-empty{padding:18px;border:1px dashed rgba(105,132,170,.24);border-radius:10px;text-align:center;color:#7f93ad;font-size:11px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}@media(max-width:900px){.caha-archive{inset:8px}.caha-hero,.caha-main{grid-template-columns:1fr}.caha-card h2{font-size:25px}.caha-stat-grid{grid-template-columns:1fr 1fr}.caha-head{align-items:flex-start;flex-direction:column;padding:12px 14px}.caha-title{flex-wrap:wrap}.caha-tabs{padding:10px 14px}.caha-body{padding:14px}.caha-table{min-width:520px}.caha-table-wrap{overflow:auto}}@media(max-width:760px){.caha-game b{grid-template-columns:1fr;gap:7px}.caha-game-team.home{justify-content:flex-start;text-align:left}.caha-scoreline{text-align:left}.caha-champ-wrap .big-logo{width:60px;height:60px;min-width:60px}}.rw-footer{margin-top:28px;border-top:1px solid rgba(120,150,190,.22);background:linear-gradient(180deg,rgba(3,12,25,.92),rgba(2,8,19,1));position:relative;z-index:1}.rw-footer-inner{padding:24px 0 34px}.rw-footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.rw-footer-logo{width:42px;height:42px;border:1px solid rgba(120,150,190,.25);border-radius:10px;display:grid;place-items:center;font-size:22px;font-weight:950;letter-spacing:-.08em;background:#050e1d}.rw-footer-logo b{color:var(--blue)}.rw-footer-brand strong{display:block;font-size:14px;font-weight:950;letter-spacing:.08em}.rw-footer-brand span{display:block;margin-top:4px;color:#7d92ad;font-size:12px;line-height:1.45}.rw-footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.rw-footer-grid>div{border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.018);border-radius:10px;padding:12px}.rw-footer h4{margin:0 0 9px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#dbe7f7}.rw-footer a,.rw-footer-grid span{display:block;color:#7d92ad;text-decoration:none;font-size:11px;font-weight:850;line-height:1.9;text-transform:uppercase;letter-spacing:.04em}.rw-footer a:hover{color:#dbe7f7}.rw-footer-bottom{display:flex;justify-content:space-between;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);color:#657b96;font-size:10px;font-weight:800;line-height:1.45;text-transform:uppercase;letter-spacing:.045em}@media(max-width:900px){.rw-footer-grid{grid-template-columns:1fr 1fr}.rw-footer-bottom{flex-direction:column}}@media(max-width:560px){.rw-footer-grid{grid-template-columns:1fr}.rw-footer-brand{align-items:flex-start}}.score-pop{animation:rwScorePop .25s ease}@keyframes rwScorePop{0%{transform:scale(1.14)}100%{transform:scale(1)}}.rw-app-strip{margin:14px 0 0;border:1px solid rgba(29,127,255,.24);background:linear-gradient(90deg,rgba(29,127,255,.10),rgba(255,255,255,.018));border-radius:10px;padding:10px 12px;color:#dbe7f7;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.aaa-source-tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:999px;border:1px solid rgba(120,150,190,.24);background:rgba(255,255,255,.025);color:#dbe7f7;font-size:9px;font-weight:950;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap}.aaa-source-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:#7d92ad;box-shadow:0 0 8px rgba(125,146,173,.25)}.aaa-source-caha{border-color:rgba(62,230,166,.28);background:rgba(62,230,166,.08);color:#dfffee}.aaa-source-caha:before{background:var(--green);box-shadow:0 0 10px rgba(62,230,166,.45)}.aaa-source-t1ehl{border-color:rgba(22,119,255,.34);background:rgba(22,119,255,.10);color:#d8e8ff}.aaa-source-t1ehl:before{background:var(--blue);box-shadow:0 0 10px rgba(22,119,255,.45)}.aaa-source-tournament{border-color:rgba(255,90,107,.32);background:rgba(255,90,107,.10);color:#ffd5dc}.aaa-source-tournament:before{background:var(--red);box-shadow:0 0 10px rgba(255,90,107,.45)}.aaa-source-verified{border-color:rgba(120,150,190,.24);background:rgba(255,255,255,.025);color:#aebfd5}.aaa-source-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px}.aaa-count-rule{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;border:1px solid rgba(120,150,190,.18);color:#7d92ad;background:rgba(255,255,255,.018)}.aaa-count-rule.counts{border-color:rgba(62,230,166,.23);color:#bdf6df;background:rgba(62,230,166,.055)}.aaa-count-rule.excluded{border-color:rgba(255,90,107,.20);color:#e9a2ad;background:rgba(255,90,107,.055)}.score-card .aaa-source-row{margin-top:8px}.schedule-game .aaa-source-row{margin-top:7px}.featured .aaa-source-row{justify-content:center;margin-top:10px}.aaa-source-mini{display:block;margin-top:3px;color:#7d92ad;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;line-height:1.35}.scorebar{contain:layout paint style!important}.score-ticker-wrap{display:grid!important;grid-template-columns:34px minmax(0,1fr) 34px!important;gap:8px!important;align-items:stretch!important;min-width:0!important}.score-grid{display:flex!important;flex-wrap:nowrap!important;gap:10px!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important;scroll-snap-type:x proximity!important;overscroll-behavior-x:contain!important;will-change:scroll-position!important;padding:0!important}.score-grid::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.score-grid .score-card{flex:0 0 252px!important;width:252px!important;min-height:148px!important;height:auto!important;overflow:visible!important;cursor:pointer!important;position:relative!important;z-index:1!important;scroll-snap-align:start!important;pointer-events:auto!important}.score-grid .score-card *{pointer-events:none!important}.score-grid .team-row{grid-template-columns:30px minmax(0,1fr) auto!important;align-items:center!important}.score-grid .team-row span{min-width:0!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important}.score-grid .score-card small{white-space:normal!important;overflow:visible!important;line-height:1.32!important}.score-ticker-btn{display:flex!important;align-items:center!important;justify-content:center!important;min-height:148px!important;border:1px solid rgba(120,150,190,.22)!important;background:rgba(255,255,255,.025)!important;color:#dbe7f7!important;border-radius:10px!important;cursor:pointer!important;font-size:24px!important;font-weight:950!important;line-height:1!important;transition:background .16s ease,border-color .16s ease,transform .16s ease!important;z-index:4!important}.score-ticker-btn:hover{background:rgba(22,119,255,.10)!important;border-color:rgba(22,119,255,.32)!important}.score-ticker-btn:active{transform:scale(.98)!important}.score-ticker-wrap:before{left:42px!important;width:28px!important}.score-ticker-wrap:after{right:42px!important;width:28px!important}.score-card,.game,.schedule-game,.feature-match,.tp-game{cursor:pointer!important;position:relative!important;z-index:2!important}.score-card:before,.score-card:after,.game:before,.game:after,.schedule-game:before,.schedule-game:after{pointer-events:none!important}.panel:before,.panel:after,.featured:before,.featured:after{pointer-events:none!important}#gameCenter{z-index:1000!important}.logo,.big-logo{background:#fff!important;color:#071323!important}.logo img,.big-logo img{user-select:none!important;-webkit-user-drag:none!important}.logo-fallback{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;padding:2px!important;color:#071323!important;opacity:.82!important;font-weight:950!important;text-align:center!important;letter-spacing:-.05em!important;line-height:.95!important;text-transform:uppercase!important}.logo .logo-fallback{font-size:10px!important}.big-logo .logo-fallback{font-size:25px!important}.panel{min-width:0!important}.panel-body{min-width:0!important;overflow-anchor:none!important}img[loading="lazy"]{content-visibility:auto}.game-list,.score-grid,#scheduleBody,#directoryBody{overscroll-behavior:contain!important}@media(max-width:760px){.score-ticker-wrap{grid-template-columns:30px minmax(0,1fr) 30px!important;gap:6px!important}.score-grid .score-card{flex-basis:82vw!important;width:82vw!important;min-height:150px!important}.score-ticker-btn{min-height:150px!important;border-radius:8px!important}.score-ticker-wrap:before{left:34px!important;width:18px!important}.score-ticker-wrap:after{right:34px!important;width:18px!important}}.score-grid{position:relative!important;will-change:scroll-position!important}.score-card.rw-ticker-clone{opacity:.92}.live-title{color:#f2f7ff!important}.live-title:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:8px;box-shadow:0 0 14px rgba(255,90,107,.7);vertical-align:1px}.score-grid .score-card[data-rw-top="1"] small{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important}.rw-ticker-league{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;border:1px solid rgba(22,119,255,.18);background:rgba(22,119,255,.09);color:#cfe3ff;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;line-height:1}.rw-ticker-reason{color:#7d92ad;font-weight:850}.score-grid[data-rw-mixed-top="1"] .score-card small{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important}.score-grid[data-rw-mixed-top="1"] .score-card{flex:0 0 252px!important;width:252px!important}.rw-ticker-scope{color:#5f748d;font-weight:900}body.rw-team-open .scorebar,body.rw-team-open .filters,body.rw-team-open .grid-top,body.rw-team-open .grid-bottom,body.rw-team-open #rinkwire-rink-system{content-visibility:auto;contain-intrinsic-size:900px}.tp-card{width:min(1160px,100%)!important}.tp-body{padding:16px!important}.tp-hero{display:grid!important;grid-template-columns:112px minmax(0,1fr) minmax(280px,420px)!important;gap:16px!important;align-items:center!important;padding:14px!important;border:1px solid rgba(120,150,190,.20)!important;background:radial-gradient(circle at 0 0,rgba(22,119,255,.14),transparent 42%),rgba(255,255,255,.02)!important;border-radius:12px!important}.tp-title h1{margin:0!important;font-size:28px!important;line-height:.98!important;text-transform:uppercase!important;letter-spacing:-.045em!important}.tp-sub{margin-top:8px!important;display:flex!important;gap:7px!important;flex-wrap:wrap!important;color:#7d92ad!important;font-size:10px!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.07em!important}.tp-record{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:8px!important;min-width:0!important}.tp-stat{border:1px solid rgba(120,150,190,.18)!important;background:rgba(255,255,255,.025)!important;border-radius:9px!important;padding:10px!important;text-align:center!important}.tp-stat b{display:block!important;color:#fff!important;font-size:20px!important;line-height:1!important;font-weight:950!important;white-space:nowrap!important}.tp-stat span{display:block!important;margin-top:6px!important;color:#7d92ad!important;font-size:9px!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.07em!important;line-height:1.2!important}.rw85-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.rw85-box{border:1px solid rgba(120,150,190,.20);background:rgba(255,255,255,.02);border-radius:10px;padding:14px;min-width:0}.rw85-box h3{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:950;color:#fff}.rw85-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rw85-mini{border:1px solid rgba(120,150,190,.16);background:rgba(255,255,255,.022);border-radius:9px;padding:9px;min-width:0}.rw85-mini b{display:block;color:#fff;font-size:17px;line-height:1;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rw85-mini span{display:block;margin-top:6px;color:#7d92ad;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;line-height:1.25}.rw85-wide{grid-column:1/-1}.rw85-schedule{grid-column:1/-1;padding:0!important;overflow:hidden}.rw85-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid rgba(120,150,190,.16)}.rw85-schedule-head h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:950}.rw85-sub{color:#7d92ad;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.rw85-schedule-scroll{max-height:430px;overflow:auto;overscroll-behavior:contain}.rw85-table{width:100%;border-collapse:collapse}.rw85-table th,.rw85-table td{padding:9px 10px;border-bottom:1px solid rgba(120,150,190,.13);font-size:11px;vertical-align:top}.rw85-table th{color:#7d92ad;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:950;position:sticky;top:0;background:#061426;z-index:1}.rw85-opp{font-weight:950;color:#fff;text-transform:uppercase;line-height:1.2}.rw85-rink{display:block;margin-top:4px;color:#7d92ad;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.rw85-tag{display:inline-flex;height:18px;align-items:center;padding:0 6px;border-radius:4px;border:1px solid rgba(22,119,255,.18);background:rgba(22,119,255,.09);color:#cfe3ff;font-size:9px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.rw85-tag.out{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.025);color:#8fa3bb}.rw85-result{font-weight:950;white-space:nowrap}.rw85-result.win{color:#3ee6a6}.rw85-result.loss{color:#ff8c98}.rw85-result.tie{color:#dbe7f7}.rw85-result.future{color:#7d92ad}.rw85-form{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.rw85-dot{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;font-size:10px;font-weight:950;border:1px solid rgba(120,150,190,.18);background:rgba(255,255,255,.025);color:#7d92ad}.rw85-dot.w{color:#061426;background:#3ee6a6}.rw85-dot.l{color:#fff;background:#ff5a6b}.rw85-dot.t{color:#061426;background:#dbe7f7}.rw85-read{color:#c8d6e7;font-size:12px;line-height:1.55}.rw85-note{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08);color:#7d92ad;font-size:10px;font-weight:850;line-height:1.45;text-transform:uppercase;letter-spacing:.05em}@media(max-width:900px){.tp-hero{grid-template-columns:1fr!important;text-align:center!important}.tp-record{grid-template-columns:repeat(2,1fr)!important}.rw85-grid{grid-template-columns:1fr}.rw85-metrics{grid-template-columns:repeat(2,1fr)}.rw85-schedule-scroll{max-height:420px}.rw85-table{min-width:760px}}#liveList,#scheduleBody,#directoryBody,#scoreGrid,#standingsBody,#rwpiBody,#trendingBody,#rinksBody,#upsetBody{contain:layout paint style}.panel,.score-card,.schedule-game,.game{content-visibility:auto;contain-intrinsic-size:180px}.featured,.featured .panel-body{content-visibility:visible}#liveList[data-rw-phase2-limited]::after,#scheduleBody[data-rw-phase2-limited]::after,#directoryBody[data-rw-phase2-limited]::after{content:"Showing priority results first for faster load";display:block;margin-top:10px;padding:9px 10px;border:1px solid rgba(120,150,190,.18);border-radius:8px;color:#7d92ad;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media (hover:none){.game:hover,.schedule-game:hover,.score-card:hover{transform:none!important}}.score-grid,.panel-body,.game-list,#scheduleBody,#directoryBody{overscroll-behavior:contain}img{content-visibility:auto}.logo img,.big-logo img{backface-visibility:hidden}.panel,.score-card,.game,.schedule-game{contain:layout style}.featured{contain:layout style paint}@media (min-width:1181px){ .score-card,.game,.schedule-game{contain:content} }
/* PHASE 7 startup guard: keep below-the-fold work cheaper */ @media (min-width:1181px){ .grid-bottom{content-visibility:auto;contain-intrinsic-size:760px} .footer{content-visibility:auto;contain-intrinsic-size:90px} }
/* PHASE 8 Team Page Polish: makes existing team profile feel intentional */ .team-profile, .team-modal, .team-page, #teamProfile, #teamPage, #teamOverlay{ scroll-behavior:smooth; } .team-profile .empty, .team-page .empty, #teamProfile .empty, #teamPage .empty{ border:1px dashed rgba(120,150,190,.30); background:rgba(255,255,255,.018); border-radius:10px; color:#7d92ad; font-weight:850; line-height:1.45; } .team-card, .team-directory-card, .directory-team, #directoryBody .team-cell, #directoryBody .resource, #directoryBody .schedule-game, #standingsBody tr[data-team], #rwpiBody tr[data-team]{ cursor:pointer; } .team-card:hover, .team-directory-card:hover, .directory-team:hover, #directoryBody .resource:hover, #directoryBody .schedule-game:hover, #standingsBody tr[data-team]:hover, #rwpiBody tr[data-team]:hover{ background:rgba(255,255,255,.035)!important; } .team-click-hint{ display:inline-flex; align-items:center; gap:6px; margin-left:8px; color:#58a8ff; font-size:9px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; opacity:.78; } .team-click-hint:after{ content:"→"; font-size:11px; transform:translateY(-1px); } .team-profile-kpis{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; } .team-profile-kpi{ border:1px solid rgba(120,150,190,.20); background:rgba(255,255,255,.022); border-radius:10px; padding:10px; } .team-profile-kpi b{ display:block; color:#fff; font-size:20px; font-weight:950; line-height:1; } .team-profile-kpi span{ display:block; margin-top:5px; color:#7d92ad; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; } .team-profile-note{ margin:10px 0 0; padding:10px 11px; border:1px solid rgba(120,150,190,.18); background:rgba(255,255,255,.018); border-radius:10px; color:#9fb2ca; font-size:10px; font-weight:850; line-height:1.45; text-transform:uppercase; letter-spacing:.05em; } .team-profile-schedule{ display:grid; gap:8px; } .team-profile-game{ border:1px solid rgba(120,150,190,.18); background:rgba(255,255,255,.018); border-radius:10px; padding:10px; } .team-profile-game-top{ display:flex; justify-content:space-between; gap:10px; color:#7d92ad; font-size:9px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; } .team-profile-game-main{ display:flex; justify-content:space-between; gap:12px; margin-top:6px; color:#fff; font-size:12px; font-weight:950; text-transform:uppercase; } @media(max-width:760px){ .team-profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} .team-click-hint{display:none} }
/* PHASE 14 clean filter reset */ .rw-matrix-disabled{display:none!important;pointer-events:none!important} .rw-clean-empty{padding:18px;border:1px dashed rgba(120,150,190,.30);background:rgba(255,255,255,.018);border-radius:10px;color:#7d92ad;font-size:13px;font-weight:850;line-height:1.45;text-align:center}
/* PHASE 15 mixed-game fallback */ .rw-fallback-note{ margin:8px 0 10px; padding:8px 10px; border:1px solid rgba(88,168,255,.22); background:rgba(22,119,255,.075); border-radius:8px; color:#cfe3ff; font-size:10px; font-weight:900; line-height:1.35; text-transform:uppercase; letter-spacing:.055em; }
/* PHASE 16 clickable moving top games */ .score-grid.rw-moving-ticker{ display:flex!important; gap:8px!important; overflow-x:auto!important; overflow-y:hidden!important; scroll-behavior:smooth!important; scrollbar-width:none!important; max-height:126px!important; } .score-grid.rw-moving-ticker::-webkit-scrollbar{display:none!important} .score-grid.rw-moving-ticker .score-card{ min-width:210px!important; max-width:250px!important; flex:0 0 220px!important; cursor:pointer!important; } .score-grid.rw-moving-ticker .rw-fallback-note{ flex:0 0 260px!important; display:flex!important; align-items:center!important; margin:0!important; } .score-card[data-id]{cursor:pointer!important} .score-card[data-id]:hover{border-color:rgba(88,168,255,.38)!important} @media(max-width:760px){ .score-grid.rw-moving-ticker{max-height:238px!important} .score-grid.rw-moving-ticker .score-card{min-width:235px!important;flex-basis:235px!important} }
/* PHASE 17 ALIVE FEED */ .rw-fallback-note{display:none!important} .score-grid.rw-alive-feed{ display:flex!important; gap:8px!important; overflow:hidden!important; max-height:126px!important; scroll-behavior:auto!important; position:relative!important; } .score-grid.rw-alive-feed .score-card{ min-width:214px!important; flex:0 0 214px!important; cursor:pointer!important; } .score-grid.rw-alive-feed .rw-alive-track{ display:flex!important; gap:8px!important; width:max-content!important; will-change:transform!important; animation:rwAliveFeed 54s linear infinite!important; } .score-grid.rw-alive-feed:hover .rw-alive-track{animation-play-state:paused!important} @keyframes rwAliveFeed{ 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} } .rw-feed-label{ display:inline-flex; align-items:center; gap:6px; color:#7d92ad; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; } .rw-feed-label:before{ content:""; width:6px; height:6px; border-radius:50%; background:#ff5a6b; box-shadow:0 0 10px rgba(255,90,107,.55); } .featured .rw-feed-label{ justify-content:center; margin-bottom:10px; color:#cfe3ff; } @media(max-width:760px){ .score-grid.rw-alive-feed{max-height:238px!important;overflow-x:auto!important} .score-grid.rw-alive-feed .rw-alive-track{animation:none!important} .score-grid.rw-alive-feed .score-card{min-width:235px!important;flex-basis:235px!important} }
/* PHASE 18 smart feed + populated default */ .score-card.rw-live-game,.game.rw-live-game{ border-color:rgba(255,90,107,.36)!important; box-shadow:0 0 0 1px rgba(255,90,107,.16),0 0 22px rgba(255,90,107,.08),0 10px 24px rgba(0,0,0,.55)!important; } .score-card.rw-live-game:before,.game.rw-live-game:before{ content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:#ff5a6b; box-shadow:0 0 12px rgba(255,90,107,.75); } .score-card.rw-close-game{ border-color:rgba(88,168,255,.32)!important; } .rw-smart-label{ display:inline-flex; align-items:center; gap:6px; color:#cfe3ff; font-size:10px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; } .rw-smart-label:before{ content:""; width:6px; height:6px; border-radius:50%; background:#3ee6a6; box-shadow:0 0 10px rgba(62,230,166,.45); } .featured .rw-smart-label{ justify-content:center; margin-bottom:10px; }
/* PHASE 21 clean selection defaults */
#ageSeg button[data-rw-value="ALL"],
#tierSeg button[data-rw-value="ALL"],
#ageSeg button.rw-no-all,
#tierSeg button.rw-no-all,
#ageSeg button.rw-invalid-choice,
#tierSeg button.rw-invalid-choice{display:none!important;pointer-events:none!important}
[data-rw-tip]{position:relative;cursor:help}
[data-rw-tip]:hover::after,[data-rw-tip]:focus-visible::after{content:attr(data-rw-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);z-index:9999;width:max-content;max-width:260px;padding:8px 10px;border:1px solid rgba(120,150,190,.30);border-radius:8px;background:#071323;color:#dbe7f7;box-shadow:0 14px 34px rgba(0,0,0,.55);font-size:10px;font-weight:850;line-height:1.35;letter-spacing:.035em;text-transform:none;white-space:normal;pointer-events:none}
[data-rw-tip]:hover::before,[data-rw-tip]:focus-visible::before{content:"";position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%) rotate(45deg);z-index:9998;width:8px;height:8px;background:#071323;border-right:1px solid rgba(120,150,190,.30);border-bottom:1px solid rgba(120,150,190,.30);pointer-events:none}
/* PHASE 22 filter labels + status color fix */
.score-card .score-meta span:first-child,
.score-meta span:first-child{
  color:#ff5a6b;
}
.score-card .score-meta span:first-child.rw-status-final,
.score-meta span:first-child.rw-status-final{
  color:#3ee6a6!important;
  text-shadow:0 0 8px rgba(62,230,166,.28)!important;
}
.score-card .score-meta span:first-child.rw-status-live,
.score-meta span:first-child.rw-status-live{
  color:#ff5a6b!important;
  text-shadow:0 0 8px rgba(255,90,107,.38)!important;
}
.rw-filter-label{
  display:inline-flex;
  align-items:center;
  padding:0 9px;
  height:34px;
  border:1px solid rgba(120,150,190,.18);
  border-radius:6px;
  color:#7d92ad;
  background:rgba(255,255,255,.018);
  font-size:10px;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
  pointer-events:none;
  user-select:none;
}
#ageSeg button[data-rw-value="8U"],
#ageSeg button.rw-hide-8u{
  display:none!important;
  pointer-events:none!important;
}

/* =========================
   RINKWIRE SCOREBAR REBUILD
   Final ordered score strip.
   Scope: scorebar / ticker only.
   ========================= */

.scorebar {
  position: relative !important;
  z-index: 2 !important;
  background: #071f46 !important;
  border-top: 1px solid rgba(255,255,255,.10) !important;
  border-bottom: 1px solid rgba(0,0,0,.55) !important;
  box-shadow: none !important;
}

.scorebar-inner {
  display: grid !important;
  grid-template-columns: 150px minmax(0,1fr) !important;
  gap: 12px !important;
  align-items: stretch !important;
  padding: 12px 0 !important;
}

.live-title {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 128px !important;
  padding: 0 10px 0 0 !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  line-height: 1.05 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.live-title span {
  display: block !important;
  margin-top: 7px !important;
  color: rgba(230,240,255,.72) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
}

.score-ticker-wrap {
  position: relative !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 30px minmax(0,1fr) 30px !important;
  gap: 8px !important;
  align-items: stretch !important;
}

.score-ticker-btn {
  appearance: none !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(0,0,0,.22) !important;
  color: #ffffff !important;
  border-radius: 5px !important;
  width: 30px !important;
  min-height: 128px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 22px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

.score-ticker-btn:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.38) !important;
}

.score-grid {
  min-width: 0 !important;
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(245px, 1fr) !important;
  grid-template-columns: none !important;
  gap: 10px !important;
  align-items: stretch !important;
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 0 2px 1px !important;
  overscroll-behavior-x: contain !important;
  scrollbar-width: none !important;
  scroll-snap-type: x proximity !important;
}

.score-grid::-webkit-scrollbar {
  display: none !important;
}

.score-card {
  position: relative !important;
  min-height: 128px !important;
  height: 128px !important;
  padding: 10px 11px !important;
  background: #f7fbff !important;
  color: #071323 !important;
  border: 1px solid rgba(6,20,38,.14) !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  overflow: hidden !important;
  scroll-snap-align: start !important;
  cursor: pointer !important;
  transition: background .16s ease, border-color .16s ease !important;

  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
}

.score-card:hover {
  transform: none !important;
  background: #ffffff !important;
  border-color: rgba(29,127,255,.36) !important;
  box-shadow: none !important;
}

.score-card.live-soft {
  box-shadow: none !important;
}

.score-card.live-soft:before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  background: var(--red) !important;
  box-shadow: none !important;
}

/* Row 1: FINAL / date */
.score-meta {
  order: 1 !important;
  flex: 0 0 15px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  margin: 0 !important;
  color: #49617c !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.score-meta span:first-child {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.score-meta span:last-child {
  color: #6f839b !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Row 2: both team rows stay together above bottom metadata */
.score-card .team-row {
  order: 2 !important;
  flex: 0 0 27px !important;
  display: grid !important;
  grid-template-columns: 26px minmax(0,1fr) auto !important;
  gap: 7px !important;
  align-items: center !important;
  margin: 0 !important;
  color: #071323 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  line-height: 1.05 !important;
  letter-spacing: -.01em !important;
}

.score-card .team-row span,
.score-card .team-row div,
.score-card .team-row strong {
  min-width: 0 !important;
  color: #071323 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.score-card .team-row b {
  color: #071323 !important;
  font-size: 17px !important;
  font-weight: 950 !important;
  letter-spacing: -.04em !important;
  line-height: 1 !important;
  min-width: 18px !important;
  text-align: right !important;
}

.score-card .logo,
.score-card .team-row .logo {
  width: 24px !important;
  height: 24px !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  border: 1px solid rgba(6,20,38,.10) !important;
  box-shadow: none !important;
  flex: 0 0 auto !important;
}

.score-card .logo img,
.score-card .team-row .logo img {
  padding: 5% !important;
  object-fit: contain !important;
}

.score-card .logo-fallback {
  color: #071323 !important;
  font-size: 8px !important;
  font-weight: 950 !important;
  opacity: .72 !important;
}

/* Row 3: league / gender / age / tier always below both teams */
.score-card small {
  order: 3 !important;
  flex: 0 0 22px !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  margin: auto 0 0 !important;
  padding-top: 6px !important;
  border-top: 1px solid rgba(6,20,38,.10) !important;
  color: #5f748d !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.score-card small > span:first-child {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.score-card .tier-chip {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 17px !important;
  min-width: 28px !important;
  padding: 0 6px !important;
  margin-left: 5px !important;
  border-radius: 3px !important;
  background: #e7f0ff !important;
  border: 1px solid rgba(29,127,255,.20) !important;
  color: #0c4f9c !important;
  font-size: 8px !important;
  font-weight: 950 !important;
  letter-spacing: .05em !important;
  line-height: 1 !important;
  transform: none !important;
}

.score-card .status-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.score-card .status-live,
.score-card .live-tag {
  color: #c82032 !important;
  text-shadow: none !important;
}

.score-card .status-live:before,
.score-card .live-tag:before {
  width: 6px !important;
  height: 6px !important;
  background: #c82032 !important;
  box-shadow: 0 0 0 3px rgba(200,32,50,.12) !important;
}

.score-card .status-final {
  color: #008a5b !important;
  text-shadow: none !important;
}

.score-card .status-scheduled {
  color: #5f748d !important;
  text-shadow: none !important;
}

@media (min-width:1181px) {
  .score-grid {
    grid-auto-columns: minmax(250px, 1fr) !important;
  }
}

@media (max-width:1180px) {
  .scorebar-inner {
    grid-template-columns: 130px minmax(0,1fr) !important;
    padding: 10px 0 !important;
  }

  .live-title,
  .score-ticker-btn,
  .score-card {
    min-height: 126px !important;
    height: 126px !important;
  }

  .score-grid {
    grid-auto-columns: minmax(235px, 50vw) !important;
  }
}

@media (max-width:760px) {
  .scorebar-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 9px 0 !important;
  }

  .live-title {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .live-title span {
    margin-top: 0 !important;
    max-width: 58% !important;
    text-align: right !important;
  }

  .score-ticker-wrap {
    grid-template-columns: 26px minmax(0,1fr) 26px !important;
    gap: 6px !important;
  }

  .score-ticker-btn {
    width: 26px !important;
    min-height: 122px !important;
    font-size: 19px !important;
  }

  .score-grid {
    grid-auto-columns: minmax(220px, 82vw) !important;
  }

  .score-card {
    min-height: 122px !important;
    height: 122px !important;
    padding: 8px 9px !important;
    gap: 6px !important;
  }

  .score-card .team-row {
    grid-template-columns: 23px minmax(0,1fr) auto !important;
    gap: 6px !important;
    font-size: 11px !important;
    flex-basis: 26px !important;
  }

  .score-card .team-row b {
    font-size: 16px !important;
  }

  .score-card .logo,
  .score-card .team-row .logo {
    width: 22px !important;
    height: 22px !important;
  }
}

/* =========================
   RINKWIRE SCOREBAR ALIVE PASS
   Scope: subtle ticker motion only.
   No layout, data, header, filters, or dashboard changes.
   ========================= */

/* Subtle blue breathing layer behind the score strip */
.scorebar:after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 18% 50%, rgba(29,127,255,.20), transparent 34%),
    radial-gradient(circle at 82% 50%, rgba(29,127,255,.13), transparent 30%) !important;
  opacity: .38 !important;
  animation: rwScorebarGlow 5.5s ease-in-out infinite !important;
}

@keyframes rwScorebarGlow {
  0%,100% { opacity: .26; transform: translateX(0); }
  50% { opacity: .46; transform: translateX(8px); }
}

/* Keeps content above the glow */
.scorebar-inner {
  position: relative !important;
  z-index: 1 !important;
}

/* Soft card entrance feel */
.score-card {
  animation: rwCardSettle .38s ease-out both !important;
}

@keyframes rwCardSettle {
  from { opacity: .72; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Premium hover lift without changing locked layout */
.score-card:hover {
  background: #ffffff !important;
  border-color: rgba(29,127,255,.42) !important;
  box-shadow: 0 0 0 1px rgba(29,127,255,.10), 0 0 18px rgba(29,127,255,.16) !important;
}

/* Live games feel active, finals stay calm */
.score-card.live-soft {
  border-color: rgba(200,32,50,.34) !important;
  animation: rwLiveCardPulse 2.2s ease-in-out infinite !important;
}

@keyframes rwLiveCardPulse {
  0%,100% { box-shadow: 0 0 0 rgba(200,32,50,0) !important; }
  50% { box-shadow: 0 0 18px rgba(200,32,50,.18) !important; }
}

/* Live dot pulse refined */
.score-card .status-live:before,
.score-card .live-tag:before {
  animation: rwLiveDotPulse 1.35s ease-in-out infinite !important;
}

@keyframes rwLiveDotPulse {
  0%,100% { transform: scale(.95); opacity: .78; }
  50% { transform: scale(1.28); opacity: 1; }
}

/* Final gets a tiny confirmation glow, not loud */
.score-card .status-final {
  position: relative !important;
}

.score-card .status-final:after {
  content: "" !important;
  display: inline-block !important;
  width: 5px !important;
  height: 5px !important;
  margin-left: 5px !important;
  border-radius: 50% !important;
  background: #008a5b !important;
  opacity: .72 !important;
}

/* Arrow buttons feel clickable/alive */
.score-ticker-btn {
  transition: background .18s ease, border-color .18s ease, transform .18s ease !important;
}

.score-ticker-btn:hover {
  transform: translateY(-1px) !important;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .scorebar:after,
  .score-card,
  .score-card.live-soft,
  .score-card .status-live:before,
  .score-card .live-tag:before {
    animation: none !important;
  }
}

.score-when{font-size:.78em;font-weight:500;color:#88aad6;letter-spacing:.04em;}

/* ===== Team page: Roster + Goalies (build5) ===== */
.rw-roster-box{grid-column:1/-1;}
.rw-roster-box h3 .rw-roster-meta{font-size:.7em;color:#88aad6;font-weight:500;margin-left:8px;letter-spacing:.04em;text-transform:uppercase;}
.rw-roster-table-wrap{overflow-x:auto;margin-top:8px;border-radius:8px;border:1px solid rgba(136,170,214,.18);}
.rw-roster-table{width:100%;border-collapse:collapse;font-size:.92em;}
.rw-roster-table thead th{background:rgba(8,26,48,.6);text-align:left;padding:8px 10px;font-weight:600;font-size:.78em;letter-spacing:.06em;text-transform:uppercase;color:#88aad6;border-bottom:1px solid rgba(136,170,214,.22);}
.rw-roster-table thead th.right{text-align:right;}
.rw-roster-table tbody td{padding:8px 10px;border-bottom:1px solid rgba(136,170,214,.10);}
.rw-roster-table tbody tr:nth-child(even){background:rgba(8,26,48,.25);}
.rw-roster-table tbody tr:hover{background:rgba(70,144,255,.08);}
.rw-roster-table td.right{text-align:right;font-variant-numeric:tabular-nums;}
.rw-roster-rank{color:#5f748d;font-size:.85em;width:28px;}
.rw-roster-jersey{color:#88aad6;font-variant-numeric:tabular-nums;width:48px;}
.rw-roster-name b{font-weight:600;}
.rw-roster-pos{font-size:.72em;color:#5f748d;text-transform:uppercase;letter-spacing:.06em;margin-left:6px;}
.rw-roster-more{padding:8px 10px;color:#88aad6;font-size:.85em;text-align:center;background:rgba(8,26,48,.4);border:1px solid rgba(136,170,214,.18);border-top:0;border-radius:0 0 8px 8px;margin-top:-1px;}
.rw-roster-loading .empty{color:#88aad6;}

/* Make standings rows feel clickable */
#standingsBody tr.team-page-link{cursor:pointer;transition:background .12s;}
#standingsBody tr.team-page-link:hover{background:rgba(70,144,255,.10);}
/* ===== HARD NAV CLICK FIX ===== */

/* Header must always be top click layer */
.header {
  position: relative;
  z-index: 9999;
}

/* Scorebar must sit BELOW header */
.scorebar {
  position: relative;
  z-index: 1;
}

/* Prevent ticker from extending invisible hit area */
.score-ticker-wrap {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

/* Kill any rogue overlay behavior */
.score-grid {
  position: relative;
  z-index: 1;
}

/* Buttons stay clickable but not above nav */
.score-ticker-btn {
  z-index: 2;
}

/* Safety: nothing in scorebar can override header */
.scorebar * {
  pointer-events: auto;
}

.header * {
  pointer-events: auto;
}

/* ===== Ticker meta chip (build7) ===== */
.score-card-meta-top{
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:850; letter-spacing:.08em;
  text-transform:uppercase;
  color:#88aad6;
  background:rgba(8,26,48,.55);
  padding:4px 8px;
  border-bottom:1px solid rgba(136,170,214,.18);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.score-card.live-soft .score-card-meta-top{
  color:#ff5a6b;
  background:rgba(60,8,18,.45);
  border-bottom-color:rgba(255,90,107,.25);
}

/* =========================================================
   RINKWIRE STRICT TICKER FIX — CSS ONLY
   Scope:
   - top ticker cards only
   - compact premium sports ticker feel
   - no auto scroll
   - no nav/data/JS/header changes
   - bottom row: LEAGUE • AGE • TIER
   ========================================================= */

/* Ticker lane: no auto-scroll, no hidden hitbox bleed */
.scorebar{
  position:relative !important;
  z-index:2 !important;
  overflow:visible !important;
}

.scorebar-inner{
  align-items:start !important;
  height:auto !important;
  min-height:0 !important;
  padding-top:10px !important;
  padding-bottom:12px !important;
}

/* REMOVE ticker auto-scroll */
.score-ticker-wrap{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  display:flex !important;
  align-items:stretch !important;
}

.score-grid{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  overflow-y:visible !important;
  display:grid !important;
  align-items:stretch !important;
}

/* Card: compact but tall enough for status, two teams, bottom meta */
.score-card{
  position:relative !important;
  height:118px !important;
  min-height:118px !important;
  max-height:118px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  padding:10px 12px 26px 12px !important;
}

/* Top status/time row */
.score-card .score-meta{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin:0 0 7px 0 !important;
  font-size:10px !important;
  line-height:1 !important;
  font-weight:950 !important;
  text-transform:uppercase !important;
}

/* Team rows: [logo] Team Name .... Score */
.score-card .team-row{
  display:grid !important;
  grid-template-columns:24px minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:8px !important;
  height:22px !important;
  min-height:22px !important;
  line-height:22px !important;
  margin:3px 0 !important;
  overflow:hidden !important;
  font-size:13px !important;
  font-weight:850 !important;
}

/* Ticker logos only */
.score-card .logo{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  border-radius:4px !important;
  background:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}

.score-card .logo img{
  width:86% !important;
  height:86% !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:0 !important;
  margin:0 !important;
  transform:none !important;
}

.score-card .team-row span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.score-card .team-row strong{
  justify-self:end !important;
  min-width:18px !important;
  text-align:right !important;
  font-size:13px !important;
  font-weight:950 !important;
}

/* Bottom row: LEAGUE • AGE • TIER pinned to bottom */
.score-card small{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:8px !important;
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  color:var(--muted) !important;
  font-size:10px !important;
  line-height:1 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  font-weight:850 !important;
  opacity:.82 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.score-card .tier-chip{
  height:16px !important;
  min-width:26px !important;
  padding:0 5px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  font-size:9px !important;
  line-height:1 !important;
  transform:none !important;
}

/* The filter chips below the ticker must remain clickable */
.filters{
  position:relative !important;
  z-index:5 !important;
}


/* === RINKWIRE TICKER HEIGHT EXTENSION (ONLY) ===
   Makes the ticker section taller without changing layout
*/

.scorebar-inner{
  padding-top:18px !important;
  padding-bottom:22px !important;
}

.score-ticker-wrap{
  padding-top:6px !important;
  padding-bottom:6px !important;
}

/* === RINKWIRE HORIZONTAL TICKER EXPANSION ===
   Show more games across the screen
*/

/* make ticker row flow horizontally with more cards visible */
.score-grid{
  display:flex !important;
  gap:8px !important;
  overflow-x:visible !important;
}

/* make each card narrower so more fit on screen */
.score-card{
  width:220px !important;
  min-width:220px !important;
  max-width:220px !important;
}

/* tighten inner spacing slightly */
.score-card .team-row{
  gap:6px !important;
}

/* ensure wrapper does not constrain width */
.score-ticker-wrap{
  overflow-x:visible !important;
}

/* === RINKWIRE EDGE TO EDGE TICKER ===
   Make ticker stretch almost full screen width
*/

/* remove container padding limits */
.scorebar{
  padding-left:8px !important;
  padding-right:8px !important;
}

/* break out of centered layout container */
.scorebar-inner{
  max-width:none !important;
  width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* let ticker span wider */
.score-ticker-wrap{
  width:100% !important;
}

/* extend cards closer to screen edges */
.score-grid{
  width:100% !important;
}

/* === RINKWIRE REMOVE VERTICAL PADDING === */

/* remove top/bottom space from ticker */
.scorebar{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.scorebar-inner{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.score-ticker-wrap{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* === RINKWIRE MOVE BOTTOM TEAM ROW UP CLEAN ===
   Obvious fix only:
   - move bottom logo + team name + score up together
   - keep card tall enough so bottom is not cut off
   - CSS only
*/

.score-card{
  min-height:128px !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:18px !important;
}

/* Move ONLY the bottom team row up closer to the top row */
.score-card .team-row:last-of-type{
  margin-top:-10px !important;
}

/* Make sure the ticker lane/card bottom is not clipped */
.scorebar,
.scorebar-inner,
.score-ticker-wrap,
.score-grid{
  overflow:visible !important;
  max-height:none !important;
}

/* === FINAL SIMPLE FIXES === */

/* fix cutoff + spacing */
.score-card{
  overflow:visible !important;
  min-height:120px !important;
  padding-bottom:12px !important;
}

/* tighten rows */
.score-card .team-row{
  margin:2px 0 !important;
}

/* move bottom row up */
.score-card .team-row:last-of-type{
  margin-top:-8px !important;
}

/* remove left label */
.scorebar-label{
  display:none !important;
}

/* =========================================================
   RINKWIRE FINAL TICKER BALANCE FIX — CSS ONLY
   Added by ChatGPT May 2026
   Purpose:
   - balance logo / team name / score rows inside ticker cards
   - stop bottom row from floating too far away or getting cut off
   - keep auto-scroll off
   - no header, JS, server, data, or main layout changes
   ========================================================= */

.scorebar{
  position:relative !important;
  z-index:2 !important;
  padding-left:8px !important;
  padding-right:8px !important;
  overflow:visible !important;
}

.scorebar-inner{
  max-width:none !important;
  width:100% !important;
  padding:8px 0 10px !important;
  align-items:start !important;
}

.score-ticker-wrap{
  width:100% !important;
  display:flex !important;
  align-items:stretch !important;
  gap:8px !important;
  overflow:hidden !important;
  padding:0 !important;
  min-height:0 !important;
  max-height:none !important;
}

.score-grid{
  display:flex !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
  max-height:none !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scroll-behavior:smooth !important;
  padding:0 !important;
  scrollbar-width:none !important;
}

.score-grid::-webkit-scrollbar{
  display:none !important;
}

.score-card{
  width:220px !important;
  min-width:220px !important;
  max-width:220px !important;
  height:124px !important;
  min-height:124px !important;
  max-height:124px !important;
  padding:8px 10px 7px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  gap:4px !important;
  overflow:hidden !important;
  border-radius:10px !important;
}

.score-card-meta-top,
.score-card .score-card-meta-top{
  flex:0 0 17px !important;
  min-height:17px !important;
  max-height:17px !important;
  padding:0 7px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  line-height:1 !important;
}

.score-card .score-meta{
  order:1 !important;
  flex:0 0 15px !important;
  min-height:15px !important;
  max-height:15px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:6px !important;
  overflow:hidden !important;
  font-size:9px !important;
  line-height:1 !important;
}

.score-card .team-row{
  order:2 !important;
  flex:0 0 27px !important;
  min-height:27px !important;
  max-height:27px !important;
  display:grid !important;
  grid-template-columns:26px minmax(0,1fr) 22px !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
  color:#071323 !important;
  font-size:12px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
  letter-spacing:-.01em !important;
}

.score-card .team-row:first-of-type{
  margin-top:1px !important;
}

.score-card .team-row:last-of-type{
  margin-top:0 !important;
  transform:none !important;
}

.score-card .team-row span,
.score-card .team-row div{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:#071323 !important;
}

.score-card .team-row strong,
.score-card .team-row b{
  justify-self:end !important;
  min-width:18px !important;
  text-align:right !important;
  color:#071323 !important;
  font-size:16px !important;
  font-weight:950 !important;
  letter-spacing:-.04em !important;
  line-height:1 !important;
}

.score-card .logo,
.score-card .team-row .logo{
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  max-width:26px !important;
  border-radius:5px !important;
  background:#fff !important;
  border:1px solid rgba(6,20,38,.10) !important;
  box-shadow:none !important;
  flex:0 0 26px !important;
}

.score-card .logo img,
.score-card .team-row .logo img{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:6% !important;
  margin:0 !important;
  transform:none !important;
}

.score-card .logo-fallback{
  color:#071323 !important;
  font-size:8px !important;
  font-weight:950 !important;
  line-height:1 !important;
  opacity:.72 !important;
}

.score-card small{
  order:3 !important;
  flex:0 0 18px !important;
  min-height:18px !important;
  max-height:18px !important;
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:6px !important;
  margin:3px 0 0 !important;
  padding:5px 0 0 !important;
  border-top:1px solid rgba(6,20,38,.10) !important;
  color:#5f748d !important;
  font-size:9px !important;
  font-weight:950 !important;
  line-height:1 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.score-card small > span:first-child{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.score-card .tier-chip{
  height:15px !important;
  min-width:24px !important;
  padding:0 5px !important;
  margin-left:5px !important;
  border-radius:4px !important;
  font-size:8px !important;
  line-height:1 !important;
  transform:none !important;
  flex:0 0 auto !important;
}

.scorebar-label{
  display:none !important;
}

.score-ticker-track,
.score-grid.is-animating,
.score-grid.auto-scroll{
  animation:none !important;
  transform:none !important;
}

@media(max-width:1180px){
  .scorebar-inner{
    grid-template-columns:130px minmax(0,1fr) !important;
    padding:8px 0 10px !important;
  }

  .score-card{
    width:218px !important;
    min-width:218px !important;
    max-width:218px !important;
    height:122px !important;
    min-height:122px !important;
    max-height:122px !important;
  }
}

@media(max-width:760px){
  .scorebar-inner{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:8px 0 10px !important;
  }

  .score-ticker-wrap{
    grid-template-columns:26px minmax(0,1fr) 26px !important;
    gap:6px !important;
  }

  .score-card{
    width:220px !important;
    min-width:220px !important;
    max-width:220px !important;
    height:122px !important;
    min-height:122px !important;
    max-height:122px !important;
    padding:8px 9px 7px !important;
  }

  .score-card .team-row{
    grid-template-columns:25px minmax(0,1fr) 21px !important;
    gap:6px !important;
    font-size:11px !important;
  }

  .score-card .logo,
  .score-card .team-row .logo{
    width:25px !important;
    height:25px !important;
    min-width:25px !important;
    max-width:25px !important;
  }
}

/* =========================================================
   RINKWIRE FINAL TICKER FULL FIX — CSS ONLY
   Added by ChatGPT May 2026
   Purpose:
   - make ticker team logos slightly bigger
   - remove the text block to the left of the left ticker button
   - preserve the balanced ticker card layout from the prior fix
   - no JS, server, data, header, or main page redesign changes
   ========================================================= */

/* Remove the left-side live/title text and let the ticker fill the row */
.scorebar .live-title,
.scorebar .scorebar-label{
  display:none !important;
}

.scorebar-inner{
  grid-template-columns:1fr !important;
  gap:0 !important;
}

/* Keep the ticker controls and cards using the full available width */
.score-ticker-wrap{
  width:100% !important;
  display:flex !important;
  align-items:stretch !important;
  gap:8px !important;
}

.score-ticker-btn{
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  font-size:0 !important;
  color:transparent !important;
  overflow:hidden !important;
}

.score-ticker-btn::before{
  content:"‹" !important;
  color:#ffffff !important;
  font-size:22px !important;
  font-weight:950 !important;
  line-height:1 !important;
}

.score-ticker-btn:last-child::before{
  content:"›" !important;
}

.score-ticker-btn > span,
.score-ticker-btn > b,
.score-ticker-btn > strong,
.score-ticker-btn .label,
.score-ticker-btn .text{
  display:none !important;
}

/* Slightly larger ticker logos without re-breaking the team row spacing */
.score-card .team-row{
  grid-template-columns:29px minmax(0,1fr) 22px !important;
  flex-basis:29px !important;
  min-height:29px !important;
  max-height:29px !important;
  gap:7px !important;
}

.score-card .logo,
.score-card .team-row .logo{
  width:29px !important;
  height:29px !important;
  min-width:29px !important;
  max-width:29px !important;
  flex:0 0 29px !important;
}

.score-card .logo img,
.score-card .team-row .logo img{
  padding:5% !important;
}

@media(max-width:760px){
  .scorebar-inner{
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .score-ticker-wrap{
    gap:6px !important;
  }

  .score-ticker-btn{
    flex:0 0 26px !important;
    width:26px !important;
    min-width:26px !important;
    max-width:26px !important;
  }

  .score-ticker-btn::before{
    font-size:19px !important;
  }

  .score-card .team-row{
    grid-template-columns:28px minmax(0,1fr) 21px !important;
    flex-basis:28px !important;
    min-height:28px !important;
    max-height:28px !important;
    gap:6px !important;
  }

  .score-card .logo,
  .score-card .team-row .logo{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    max-width:28px !important;
    flex:0 0 28px !important;
  }
}


/* =========================================================
   RINKWIRE TRUE TICKER RAIL FIX — FINAL
   Purpose:
   - fix the actual light grey rail/viewport clipping the bottom of cards
   - keep ticker background light grey
   - keep side buttons RW blue
   - keep cards alive but not cut off
   - CSS only
   ========================================================= */

.scorebar{
  background:#f3f4f6 !important;
  border-top:1px solid #e5e7eb !important;
  border-bottom:1px solid #d8dee8 !important;
  height:auto !important;
  min-height:176px !important;
  max-height:none !important;
  overflow:visible !important;
  padding:12px 0 18px !important;
}

.scorebar-inner{
  background:#f3f4f6 !important;
  display:block !important;
  height:auto !important;
  min-height:150px !important;
  max-height:none !important;
  overflow:visible !important;
  padding:0 !important;
}

.scorebar .live-title,
.scorebar .scorebar-label{
  display:none !important;
}

.score-ticker-wrap{
  background:#f3f4f6 !important;
  width:100% !important;
  height:150px !important;
  min-height:150px !important;
  max-height:none !important;
  overflow:visible !important;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) 34px !important;
  gap:10px !important;
  align-items:center !important;
  padding:0 !important;
}

.score-grid{
  background:#f3f4f6 !important;
  height:150px !important;
  min-height:150px !important;
  max-height:none !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  padding:8px 2px 14px !important;
  scroll-behavior:smooth !important;
  scrollbar-width:none !important;
}.score-card{
  background:#ffffff !important;
  width:224px !important;
  min-width:224px !important;
  max-width:224px !important;
  height:132px !important;
  min-height:132px !important;
  max-height:132px !important;
  overflow:hidden !important;
  padding:9px 11px 9px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  gap:4px !important;
  border:1px solid #dbe3ee !important;
  border-radius:11px !important;
  box-shadow:0 7px 18px rgba(15,23,42,.10) !important;
  color:#071323 !important;
  contain:layout style !important;
  content-visibility:visible !important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}

.score-card:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 10px 24px rgba(29,127,255,.18) !important;
  border-color:rgba(29,127,255,.42) !important;
}

.score-card .score-meta{
  flex:0 0 16px !important;
  min-height:16px !important;
  max-height:16px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:7px !important;
  overflow:hidden !important;
  color:#14a06f !important;
  font-size:9px !important;
  line-height:1 !important;
}

.score-card .team-row{
  flex:0 0 30px !important;
  min-height:30px !important;
  max-height:30px !important;
  display:grid !important;
  grid-template-columns:31px minmax(0,1fr) 24px !important;
  align-items:center !important;
  column-gap:8px !important;
  margin:0 !important;
  padding:0 !important;
  color:#071323 !important;
  font-size:12px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
}

.score-card .logo,
.score-card .team-row .logo{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  flex:0 0 30px !important;
  border-radius:6px !important;
  background:#fff !important;
  border:1px solid rgba(6,20,38,.10) !important;
  box-shadow:none !important;
}.score-card .team-row strong,
.score-card .team-row b{
  justify-self:end !important;
  min-width:20px !important;
  text-align:right !important;
  color:#071323 !important;
  font-size:16px !important;
  font-weight:950 !important;
  line-height:1 !important;
}

.score-card small{
  flex:0 0 18px !important;
  min-height:18px !important;
  max-height:18px !important;
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:6px !important;
  margin:2px 0 0 !important;
  padding:5px 0 0 !important;
  border-top:1px solid rgba(6,20,38,.10) !important;
  color:#5f748d !important;
  font-size:9px !important;
  font-weight:950 !important;
  line-height:1 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.score-card .status-live,
.score-card .live-tag{
  color:#ff3b4f !important;
  text-shadow:0 0 10px rgba(255,59,79,.28) !important;
}

.score-card .status-final{
  color:#14b87a !important;
  font-weight:950 !important;
}

.score-ticker-btn,
.ticker-left,
.ticker-right{
  background:#1d7fff !important;
  color:#ffffff !important;
  border:0 !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:42px !important;
  border-radius:9px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:0 8px 18px rgba(29,127,255,.28) !important;
  overflow:hidden !important;
  cursor:pointer !important;
  font-size:0 !important;
}

.score-ticker-btn:hover,
.ticker-left:hover,
.ticker-right:hover{
  background:#0f6fe8 !important;
  transform:translateY(-1px) !important;
}

.score-ticker-btn::before{
  content:"‹" !important;
  color:#ffffff !important;
  font-size:24px !important;
  font-weight:950 !important;
  line-height:1 !important;
}.score-ticker-btn > span,
.score-ticker-btn > b,
.score-ticker-btn > strong,
.score-ticker-btn .label,
.score-ticker-btn .text,
.ticker-left span,
.ticker-right span{
  display:none !important;
}

@media(max-width:760px){
  .scorebar{
    min-height:180px !important;
    padding:10px 0 18px !important;
  }

  .score-ticker-wrap{
    height:154px !important;
    min-height:154px !important;
    grid-template-columns:30px minmax(0,1fr) 30px !important;
    gap:7px !important;
  }

  .score-grid{
    height:154px !important;
    min-height:154px !important;
    padding:8px 2px 14px !important;
  }

  .score-card{
    width:224px !important;
    min-width:224px !important;
    max-width:224px !important;
    height:134px !important;
    min-height:134px !important;
    max-height:134px !important;
  }

  .score-ticker-btn,
  .ticker-left,
  .ticker-right{
    width:30px !important;
    min-width:30px !important;
    max-width:30px !important;
  }
}


/* ===== RINKWIRE CLEAN PREMIUM TICKER 2026-05-03 =====
   Fresh ticker system only. Old scorebar/ticker classes are not used.
*/
.rw-score-rail{position:relative;z-index:5;background:#eef2f6;color:#071323;border-bottom:1px solid rgba(7,19,35,.12);box-shadow:0 8px 18px rgba(0,0,0,.18)}
.rw-score-rail-inner{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;align-items:center;padding:12px 0}
.rw-score-rail-title strong{display:block;font-size:12px;line-height:1;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#071323}
.rw-score-rail-title span{display:block;margin-top:6px;color:rgba(7,19,35,.58);font-size:10px;line-height:1.25;font-weight:850;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-score-ticker-shell{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:8px;align-items:center;min-width:0}
.rw-score-ticker{display:flex;gap:10px;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;padding:4px 1px 8px;overscroll-behavior-x:contain}
.rw-score-ticker::-webkit-scrollbar{display:none}
.rw-score-ticker-btn{width:34px;height:118px;border:0;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:24px;line-height:1;font-weight:950;cursor:pointer;box-shadow:0 6px 16px rgba(7,19,35,.22);transition:transform .16s ease,filter .16s ease}
.rw-score-ticker-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.rw-ticker-card{flex:0 0 282px;height:120px;display:flex;flex-direction:column;justify-content:space-between;gap:7px;padding:10px 11px 9px;border-radius:10px;border:1px solid rgba(7,19,35,.12);background:#fff;color:#071323;box-shadow:0 7px 16px rgba(7,19,35,.10);overflow:hidden;cursor:pointer;contain:layout style paint}
.rw-ticker-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(7,19,35,.14)}
.rw-ticker-top{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}
.rw-ticker-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;line-height:1;font-weight:950;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.rw-ticker-status:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;box-shadow:0 0 0 3px rgba(255,90,107,.08)}
.rw-ticker-card.is-live .rw-ticker-status{color:var(--red)}
.rw-ticker-card.is-live .rw-ticker-status:before{animation:pulse 1.4s infinite}
.rw-ticker-card.is-final .rw-ticker-status{color:var(--green)}
.rw-ticker-card.is-scheduled .rw-ticker-status{color:rgba(7,19,35,.48)}
.rw-ticker-time{color:rgba(7,19,35,.56);font-size:10px;line-height:1;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.rw-ticker-teams{display:grid;gap:5px;min-width:0}
.rw-ticker-team{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;height:24px}
.rw-ticker-logo{position:relative;width:22px;height:22px;border-radius:4px;display:grid;place-items:center;background:#fff;color:#071323;font-size:8px;font-weight:950;box-shadow:0 2px 7px rgba(7,19,35,.16);overflow:hidden;border:0;flex:0 0 auto}
.rw-ticker-logo img{position:relative;z-index:2;width:72%;height:72%;object-fit:contain;object-position:center;display:block;background:transparent;border-radius:0;transform:translate(var(--logo-x,0),var(--logo-y,0)) scale(var(--logo-scale,1))}
.rw-ticker-logo.logo-wide img{width:82%;height:58%}.rw-ticker-logo.logo-tall img{width:58%;height:82%}.rw-ticker-logo.logo-round img,.rw-ticker-logo.logo-square img{width:74%;height:74%}
.rw-ticker-logo .logo-fallback{position:absolute;inset:0;display:grid;place-items:center;z-index:1;color:#071323;font-size:8px;font-weight:950}
.rw-ticker-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:900;letter-spacing:-.02em;color:#071323}
.rw-ticker-score{min-width:22px;text-align:right;font-size:16px;font-weight:950;color:#071323;line-height:1}
.rw-ticker-score .score-when{font-size:10px;font-weight:900;color:rgba(7,19,35,.50)}
.rw-ticker-bottom{padding-top:2px;border-top:1px solid rgba(7,19,35,.08);color:rgba(7,19,35,.58);font-size:9.5px;line-height:1;font-weight:950;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.rw-score-rail-inner{grid-template-columns:1fr;gap:9px;padding:10px 0}.rw-score-rail-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.rw-score-rail-title span{margin-top:0;text-align:right}.rw-score-ticker-shell{grid-template-columns:30px minmax(0,1fr) 30px;gap:6px}.rw-score-ticker-btn{width:30px;height:118px}.rw-ticker-card{flex-basis:260px;height:120px}}

/* === RINKWIRE REAL LOGO + TICKER SAFE FIX 2026-05-03 ===
   Scope:
   - Stop fallback initials bleeding through real logos.
   - Center logos with consistent padding.
   - Keep ticker rail from clipping bottom of cards.
   - Do not change team mappings or app logic.
*/

/* Ticker rail: more bottom room, no bottom clipping */
.rw-score-rail{
  padding-bottom:24px !important;
  overflow:visible !important;
}
.rw-score-rail-inner,
.rw-score-ticker-shell{
  overflow:visible !important;
}
.rw-score-ticker{
  padding-bottom:12px !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
}
.rw-score-ticker-btn{
  align-self:center !important;
}

/* Global logo container: centered, stable, no text bleed */
.logo,
.big-logo{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fff !important;
  overflow:hidden !important;
  color:#071323 !important;
}

/* Logo images should sit centered with breathing room */
.logo img,
.big-logo img{
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  width:80% !important;
  height:80% !important;
  max-width:80% !important;
  max-height:80% !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
}

/* Hide initials only after a real image is present/loaded */
.logo.has-logo .logo-fallback,
.big-logo.has-logo .logo-fallback{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
}

/* Default fallback is centered, but it sits below image and disappears on has-logo */
.logo-fallback{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
}

/* Ticker-only small logo tuning */
.rw-ticker-team .logo{
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
}
.rw-ticker-team .logo img{
  width:82% !important;
  height:82% !important;
  max-width:82% !important;
  max-height:82% !important;
}

/* Locked display name corrections */
.rw-team-name-ca-bears-fix{}
/* === END RINKWIRE REAL LOGO + TICKER SAFE FIX === */

/* ===== RINKWIRE SITE-WIDE TAG HOVER EXPLANATIONS ===== */
.rw-tag-tooltip{
  position:fixed;
  z-index:99999;
  left:0;
  top:0;
  max-width:240px;
  padding:8px 10px;
  border:1px solid rgba(120,150,190,.30);
  border-radius:7px;
  background:#071323;
  color:#dbe7f7;
  font-size:11px;
  font-weight:850;
  line-height:1.35;
  text-align:left;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,6px);
  transition:opacity .14s ease,transform .14s ease;
  box-shadow:0 12px 26px rgba(0,0,0,.55);
}
.rw-tag-tooltip.show{
  opacity:1;
  transform:translate(-50%,0);
}
.tier-chip,
.status-pill,
.live-tag,
.rivalry-tag,
.gc-meta-chip,
.rw-pill,
.caha-badge,
.score-meta span,
.rwpi-built,
.rwpi-form,
.rwpi-meta,
.rwpi-trend-title,
.rw-offseason-tabs a,
.gc-kicker span{
  cursor:help;
}

/* ===== Screen-reader only helper (build23+) ===== */
.rw-sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* ===== Roster RS / PO season tags ===== */
.rw-roster-tag{
  display:inline-block; vertical-align:middle;
  font-size:9px; font-weight:900; letter-spacing:.06em;
  padding:1px 5px; border-radius:3px;
  margin-left:4px;
  text-transform:uppercase;
  line-height:1.4;
}
.rw-roster-tag.rs{ background:rgba(70,144,255,.18); color:#88aad6; border:1px solid rgba(70,144,255,.35); }
.rw-roster-tag.po{ background:rgba(200,32,50,.16); color:#ff8090; border:1px solid rgba(200,32,50,.32); }
.rw-roster-pillset{ display:inline-flex; gap:3px; vertical-align:middle; }
.rw-roster-pillset .rw-roster-tag{ margin-left:0; }
.rw-roster-split{
  display:grid; grid-template-columns:auto 1fr; gap:4px 8px;
  margin-top:4px; font-size:10px; color:#88aad6;
}
.rw-roster-split .rw-roster-tag{ margin:0; align-self:center; }
.rw-roster-split-line{ font-variant-numeric:tabular-nums; font-weight:600; }

/* ===== Season pill (2025–26) ===== */
.rw-season-pill{
  display:inline-block;
  font-size:10px; font-weight:900; letter-spacing:.10em;
  text-transform:uppercase;
  padding:3px 8px;
  border-radius:4px;
  background:rgba(70,144,255,.18);
  color:#88aad6;
  border:1px solid rgba(70,144,255,.30);
  margin-right:8px;
  vertical-align:middle;
  line-height:1.4;
}
.rw-footer-season{
  display:inline-block;
  margin-top:6px;
  font-size:10px; font-weight:900; letter-spacing:.12em;
  text-transform:uppercase;
  padding:3px 8px;
  border-radius:4px;
  background:rgba(70,144,255,.14);
  color:#88aad6;
  border:1px solid rgba(70,144,255,.24);
}

/* ===== Cross-league Player Search ===== */
.rw-ps-trigger{
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(136,170,214,.22);
  border-radius:6px;
  color:#88aad6;
  font-size:11px; font-weight:850;
  letter-spacing:.04em; text-transform:uppercase;
  padding:6px 9px;
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s;
  margin-right:10px;
}
.rw-ps-trigger:hover{
  background:rgba(70,144,255,.16);
  color:#f2f7ff;
  border-color:rgba(70,144,255,.35);
}
.rw-ps-trigger kbd{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:inherit; font-size:9px; font-weight:900;
  background:rgba(0,0,0,.30);
  border:1px solid rgba(136,170,214,.20);
  border-radius:3px;
  padding:1px 5px;
  color:#88aad6;
}
@media (max-width:760px){
  .rw-ps-trigger span, .rw-ps-trigger kbd{ display:none; }
  .rw-ps-trigger{ padding:6px; }
}

.rw-ps-overlay{
  position:fixed; inset:0; z-index:200;
  display:none;
  background:rgba(2,8,19,.78);
  backdrop-filter:blur(14px);
  padding:60px 24px 24px;
  align-items:flex-start; justify-content:center;
}
.rw-ps-overlay.open{ display:flex; }
.rw-ps-card{
  width:min(720px, 100%);
  max-height:calc(100vh - 84px);
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,#081a30,#020812);
  border:1px solid rgba(136,170,214,.28);
  border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.70);
  overflow:hidden;
}
.rw-ps-head{
  display:flex; align-items:center; gap:10px;
  padding:14px 16px;
  border-bottom:1px solid rgba(136,170,214,.18);
  background:rgba(8,26,48,.5);
}
.rw-ps-input-wrap{
  flex:1 1 auto;
  display:flex; align-items:center; gap:10px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(136,170,214,.22);
  border-radius:8px;
  padding:10px 12px;
}
.rw-ps-search-icon{ color:#88aad6; flex:none; }
#rwPsInput{
  flex:1 1 auto;
  background:transparent;
  border:0; outline:none;
  color:#f2f7ff;
  font-size:15px; font-weight:600;
  letter-spacing:-.005em;
}
#rwPsInput::placeholder{ color:#5f748d; }
.rw-ps-kbd{
  font-size:9px; font-weight:900; color:#5f748d;
  background:rgba(0,0,0,.40);
  border:1px solid rgba(136,170,214,.20);
  border-radius:3px;
  padding:2px 5px;
}
.rw-ps-close-btn{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(136,170,214,.22);
  border-radius:6px;
  color:#88aad6;
  font-size:11px; font-weight:850;
  letter-spacing:.06em; text-transform:uppercase;
  padding:8px 12px;
  cursor:pointer;
}
.rw-ps-close-btn:hover{ color:#f2f7ff; background:rgba(255,255,255,.10); }

.rw-ps-meta{
  padding:10px 18px;
  font-size:11px; font-weight:850;
  letter-spacing:.06em; text-transform:uppercase;
  color:#5f748d;
  border-bottom:1px solid rgba(136,170,214,.10);
}

.rw-ps-results{
  overflow-y:auto; flex:1 1 auto;
  padding:8px 0;
}
.rw-ps-empty{
  padding:32px 24px;
  color:#5f748d;
  text-align:center;
  font-size:13px;
}
.rw-ps-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px;
  padding:10px 18px;
  cursor:pointer;
  border-bottom:1px solid rgba(136,170,214,.06);
  transition:background .12s;
}
.rw-ps-row:hover{ background:rgba(70,144,255,.10); }
.rw-ps-row-main{ min-width:0; flex:1 1 auto; }
.rw-ps-row-name{
  color:#f2f7ff; font-size:14px; font-weight:850;
  letter-spacing:-.005em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.rw-ps-row-name mark{
  background:rgba(70,144,255,.30);
  color:#fff;
  padding:0 1px;
  border-radius:2px;
}
.rw-ps-row-team{
  display:flex; align-items:center; gap:8px;
  margin-top:3px;
  font-size:11px; color:#88aad6;
  white-space:nowrap; overflow:hidden;
}
.rw-ps-team-name{ color:#dde6f4; font-weight:600; overflow:hidden; text-overflow:ellipsis; }
.rw-ps-age-tier{
  font-weight:850; letter-spacing:.06em; text-transform:uppercase; font-size:9px;
  color:#5f748d;
  border:1px solid rgba(136,170,214,.20); border-radius:3px;
  padding:1px 5px;
}
.rw-ps-jersey{ color:#5f748d; font-weight:700; }

.rw-ps-row-stats{
  display:flex; gap:14px; flex:none;
  font-variant-numeric:tabular-nums;
}
.rw-ps-row-stats span{
  display:flex; flex-direction:column; align-items:flex-end;
  font-size:9px; font-weight:850; letter-spacing:.04em; text-transform:uppercase;
  color:#5f748d;
  line-height:1.1;
  min-width:24px;
}
.rw-ps-row-stats span b{
  font-size:14px; color:#f2f7ff; line-height:1; margin-bottom:3px;
}
.rw-ps-row-stats .rw-ps-pts b{ color:#4690ff; font-size:16px; }

.rw-ps-league{
  display:inline-flex; align-items:center;
  font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
  padding:2px 6px;
  border-radius:3px;
  color:#88aad6;
  background:rgba(70,144,255,.12);
  border:1px solid rgba(70,144,255,.25);
}
.rw-ps-league-scaha    { color:#7ec0ff; background:rgba(70,144,255,.16); border-color:rgba(70,144,255,.32); }
.rw-ps-league-norcal   { color:#9be9c2; background:rgba(62,230,166,.12); border-color:rgba(62,230,166,.30); }
.rw-ps-league-caha     { color:#ffb877; background:rgba(255,170,90,.12); border-color:rgba(255,170,90,.30); }
.rw-ps-league-t1ehl    { color:#ffe077; background:rgba(255,210,80,.12); border-color:rgba(255,210,80,.30); }
.rw-ps-league-adhshl   { color:#ff9bb8; background:rgba(255,90,140,.12); border-color:rgba(255,90,140,.30); }
.rw-ps-league-shshl    { color:#b8a4ff; background:rgba(160,140,255,.12); border-color:rgba(160,140,255,.30); }
.rw-ps-league-pghl     { color:#ff8090; background:rgba(255,90,107,.12); border-color:rgba(255,90,107,.32); }
.rw-ps-league-lakingshshl{ color:#7ec0ff; background:rgba(70,144,255,.10); border-color:rgba(70,144,255,.20); }
.rw-ps-league-lakhshl  { color:#cfd6e0; background:rgba(190,200,215,.12); border-color:rgba(190,200,215,.30); }

.rw-ps-footer{
  padding:10px 16px;
  border-top:1px solid rgba(136,170,214,.18);
  background:rgba(8,26,48,.4);
  font-size:10px; font-weight:850;
  letter-spacing:.06em; text-transform:uppercase;
  color:#5f748d;
  text-align:center;
}

/* ===== Leaderboards overlay ===== */
.rw-lb-overlay{
  position:fixed; inset:0; z-index:200;
  display:none;
  background:rgba(2,8,19,.78);
  backdrop-filter:blur(14px);
  padding:40px 24px 24px;
  align-items:flex-start; justify-content:center;
}
.rw-lb-overlay.open{ display:flex; }
.rw-lb-card{
  width:min(900px, 100%);
  max-height:calc(100vh - 64px);
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,#081a30,#020812);
  border:1px solid rgba(136,170,214,.28);
  border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.70);
  overflow:hidden;
}
.rw-lb-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid rgba(136,170,214,.18);
  background:rgba(8,26,48,.5);
}
.rw-lb-head h2{ color:#f2f7ff; font-size:18px; margin:0; font-weight:850; }
.rw-lb-season{
  display:inline-block;
  font-size:10px; font-weight:900; letter-spacing:.10em;
  text-transform:uppercase;
  padding:2px 7px; margin-left:8px;
  border-radius:4px;
  background:rgba(70,144,255,.18);
  color:#88aad6;
  border:1px solid rgba(70,144,255,.30);
}
.rw-lb-close{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(136,170,214,.22);
  border-radius:6px;
  color:#88aad6;
  font-size:11px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  padding:8px 12px;
  cursor:pointer;
}
.rw-lb-close:hover{ color:#f2f7ff; background:rgba(255,255,255,.10); }

.rw-lb-tabs{
  display:flex; gap:4px;
  padding:10px 16px 0;
  border-bottom:1px solid rgba(136,170,214,.10);
  background:rgba(8,26,48,.3);
}
.rw-lb-tab{
  background:transparent; border:0;
  color:#5f748d;
  font-size:12px; font-weight:850; letter-spacing:.04em; text-transform:uppercase;
  padding:10px 14px;
  cursor:pointer;
  border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s;
}
.rw-lb-tab:hover{ color:#dde6f4; }
.rw-lb-tab.active{ color:#f2f7ff; border-bottom-color:#4690ff; }

.rw-lb-filters{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:12px 16px;
  border-bottom:1px solid rgba(136,170,214,.10);
}
.rw-lb-filters select, .rw-lb-filters input[type="number"]{
  background:rgba(0,0,0,.30);
  border:1px solid rgba(136,170,214,.22);
  border-radius:6px;
  color:#f2f7ff;
  font-size:12px; font-weight:600; letter-spacing:.02em;
  padding:6px 10px;
}
.rw-lb-min{
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:850; letter-spacing:.04em; text-transform:uppercase;
  color:#88aad6;
}
.rw-lb-min input{ width:54px; text-align:right; }

.rw-lb-results{ overflow-y:auto; flex:1 1 auto; }
.rw-lb-table{ width:100%; border-collapse:collapse; font-size:13px; }
.rw-lb-table thead th{
  position:sticky; top:0; z-index:1;
  background:rgba(8,26,48,.95);
  text-align:left; padding:9px 10px;
  font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  color:#5f748d;
  border-bottom:1px solid rgba(136,170,214,.18);
}
.rw-lb-table thead th.right{ text-align:right; }
.rw-lb-table tbody td{
  padding:9px 10px;
  border-bottom:1px solid rgba(136,170,214,.08);
  color:#dde6f4;
  font-variant-numeric:tabular-nums;
}
.rw-lb-table tbody td.right{ text-align:right; }
.rw-lb-table tbody tr{ cursor:pointer; transition:background .12s; }
.rw-lb-table tbody tr:hover{ background:rgba(70,144,255,.10); }
.rw-lb-rank{ color:#5f748d; font-size:12px; width:32px; }
.rw-lb-player{ min-width:0; }
.rw-lb-name{ color:#f2f7ff; font-weight:850; font-size:14px; }
.rw-lb-meta{ display:flex; align-items:center; gap:7px; margin-top:3px; font-size:11px; color:#88aad6; }
.rw-lb-meta > span{ overflow:hidden; text-overflow:ellipsis; }
.rw-lb-hi b{ color:#4690ff; font-size:15px; }
.rw-lb-hi{ color:#4690ff; }
.rw-lb-empty{ padding:32px 24px; color:#5f748d; text-align:center; font-size:13px; }
.rw-lb-footer{
  display:flex; justify-content:space-between; gap:14px;
  padding:10px 16px;
  border-top:1px solid rgba(136,170,214,.18);
  background:rgba(8,26,48,.4);
  font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  color:#5f748d;
}
@media (max-width:760px){
  .rw-lb-overlay{ padding:8px; }
  .rw-lb-card{ max-height:calc(100vh - 16px); }
  .rw-lb-tabs{ overflow-x:auto; }
  .rw-lb-tab{ flex:0 0 auto; }
  .rw-lb-filters{ overflow-x:auto; flex-wrap:nowrap; }
}

/* ===== Player Profile overlay ===== */
.rw-pp-overlay{
  position:fixed; inset:0; z-index:400;       /* above team page (300) */
  display:none;
  background:rgba(2,8,19,.82);
  backdrop-filter:blur(16px);
  padding:24px;
  align-items:center; justify-content:center;  /* vertical + horizontal center */
}
.rw-pp-overlay.open{ z-index:400; display:flex; }
.rw-pp-card{
  width:min(820px, 100%);
  max-height:calc(100vh - 48px);
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,#0a1c34,#020812);
  border:1px solid rgba(136,170,214,.28);
  border-radius:16px;
  box-shadow:0 32px 70px rgba(0,0,0,.75);
  overflow:hidden;
  position:relative;
}
.rw-pp-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:140px;
  background:radial-gradient(120% 100% at 0% 0%, rgba(70,144,255,.18) 0%, transparent 60%),
             radial-gradient(80% 100% at 100% 0%, rgba(70,144,255,.10) 0%, transparent 60%);
  pointer-events:none;
}

.rw-pp-head{
  position:relative; z-index:1;
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:22px 22px 16px;
  gap:16px;
  border-bottom:1px solid rgba(136,170,214,.16);
}
.rw-pp-hero{
  display:flex; gap:16px; align-items:center;
  flex:1 1 auto; min-width:0;
}
.rw-pp-monogram{
  width:64px; height:64px; flex:none;
  display:grid; place-items:center;
  border-radius:8px;
  background:linear-gradient(135deg, #4690ff, #1a4ea8);
  color:#fff; font-size:24px; font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 4px 14px rgba(70,144,255,.30);
  border:2px solid rgba(255,255,255,.12);
}
.rw-pp-headline{ min-width:0; flex:1 1 auto; }
.rw-pp-tagline{
  font-size:10px; font-weight:850; letter-spacing:.16em; text-transform:uppercase;
  color:#88aad6;
  margin-bottom:4px;
}
.rw-pp-name{
  font-size:28px; font-weight:950; color:#f2f7ff;
  letter-spacing:-.02em; line-height:1.05; margin:0 0 8px;
}
.rw-pp-team-pills{ display:flex; flex-wrap:wrap; gap:6px; }
.rw-pp-team-pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 8px;
  background:rgba(0,0,0,.30);
  border:1px solid rgba(136,170,214,.20);
  border-radius:6px;
  font-size:11px; color:#dde6f4;
  cursor:pointer;
  transition:background .12s, border-color .12s;
}
.rw-pp-team-pill:hover{ background:rgba(70,144,255,.14); border-color:rgba(70,144,255,.32); }
.rw-pp-team-pill-name{ font-weight:600; color:#f2f7ff; }

.rw-pp-close{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(136,170,214,.22);
  border-radius:6px;
  color:#88aad6;
  font-size:11px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  padding:8px 12px;
  cursor:pointer;
  flex:none;
}
.rw-pp-close:hover{ color:#f2f7ff; background:rgba(255,255,255,.10); }

.rw-pp-stats{
  display:flex; gap:8px;
  padding:14px 22px;
  border-bottom:1px solid rgba(136,170,214,.10);
  overflow-x:auto;
  scrollbar-width:none;
}
.rw-pp-stats::-webkit-scrollbar{ display:none; }
.rw-pp-stat{
  flex:1 1 0;
  min-width:80px;
  display:flex; flex-direction:column; align-items:center;
  padding:10px 8px;
  background:rgba(8,26,48,.45);
  border:1px solid rgba(136,170,214,.16);
  border-radius:8px;
  text-align:center;
}
.rw-pp-stat b{
  font-size:22px; font-weight:950; color:#f2f7ff;
  font-variant-numeric:tabular-nums; letter-spacing:-.02em;
  line-height:1;
}
.rw-pp-stat span{
  font-size:9px; font-weight:850; letter-spacing:.10em; text-transform:uppercase;
  color:#88aad6;
  margin-top:5px;
}
.rw-pp-stat-primary{
  background:linear-gradient(180deg, rgba(70,144,255,.20), rgba(70,144,255,.06));
  border-color:rgba(70,144,255,.40);
}
.rw-pp-stat-primary b{ color:#7ec0ff; }
.rw-pp-stat-primary span{ color:#7ec0ff; }

.rw-pp-body{
  flex:1 1 auto; overflow-y:auto;
  padding:14px 22px 18px;
}
.rw-pp-section-head{
  font-size:11px; font-weight:850; letter-spacing:.10em; text-transform:uppercase;
  color:#88aad6;
  margin:0 0 10px;
}
.rw-pp-table-wrap{
  border:1px solid rgba(136,170,214,.18);
  border-radius:10px;
  overflow:hidden;
  background:rgba(0,0,0,.18);
}
.rw-pp-table{ width:100%; border-collapse:collapse; font-size:13px; }
.rw-pp-table thead th{
  text-align:left;
  background:rgba(8,26,48,.7);
  color:#88aad6;
  padding:9px 12px;
  font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  border-bottom:1px solid rgba(136,170,214,.18);
}
.rw-pp-table thead th.right{ text-align:right; }
.rw-pp-table tbody td{
  padding:10px 12px;
  border-bottom:1px solid rgba(136,170,214,.08);
  color:#dde6f4;
  font-variant-numeric:tabular-nums;
  vertical-align:top;
}
.rw-pp-table tbody td.right{ text-align:right; }
.rw-pp-table tbody tr:last-child td{ border-bottom:0; }
.rw-pp-table tbody tr.rw-pp-row-po td{ background:rgba(200,32,50,.05); }
.rw-pp-team-cell{ display:flex; gap:10px; align-items:flex-start; }
.rw-pp-team-name{ color:#f2f7ff; font-weight:850; font-size:14px; }
.rw-pp-team-sub{ color:#88aad6; font-size:11px; margin-top:2px; letter-spacing:.04em; text-transform:uppercase; font-weight:600; }
.rw-pp-th-team, .rw-pp-td-team{ min-width:200px; }
.rw-pp-hi b{ color:#7ec0ff; font-size:15px; }

.rw-pp-actions{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-top:14px;
}
.rw-pp-action{
  background:rgba(70,144,255,.14);
  border:1px solid rgba(70,144,255,.30);
  border-radius:8px;
  color:#88aad6;
  font-size:12px; font-weight:850; letter-spacing:.04em; text-transform:uppercase;
  padding:9px 14px;
  cursor:pointer;
  transition:background .12s, color .12s;
}
.rw-pp-action:hover{ background:rgba(70,144,255,.24); color:#f2f7ff; }

.rw-pp-footer{
  display:flex; justify-content:space-between; gap:14px;
  padding:11px 22px;
  border-top:1px solid rgba(136,170,214,.18);
  background:rgba(8,26,48,.4);
  font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
  color:#5f748d;
}
.rw-pp-footer a{ color:#88aad6; }
.rw-pp-empty{ padding:32px; color:#5f748d; text-align:center; font-size:13px; }

@media (max-width:760px){
  .rw-pp-overlay{ padding:8px; }
  .rw-pp-card{ max-height:calc(100vh - 16px); }
  .rw-pp-name{ font-size:22px; }
  .rw-pp-monogram{ width:52px; height:52px; font-size:20px; }
  .rw-pp-stat{ min-width:64px; }
  .rw-pp-stat b{ font-size:18px; }
  .rw-pp-th-team, .rw-pp-td-team{ min-width:140px; }
}

/* ===== Filter-bar action buttons (Player Search + Top 25) ===== */
.filters .rw-ps-trigger.rw-filter-action{
  margin:0 0 0 10px !important;
  padding:9px 12px !important;
  height:auto !important;
  font-size:11px !important;
  font-weight:850 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  background:rgba(70,144,255,.12) !important;
  border:1px solid rgba(70,144,255,.30) !important;
  color:#88aad6 !important;
  border-radius:6px !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  cursor:pointer !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
.filters .rw-ps-trigger.rw-filter-action:hover{
  background:rgba(70,144,255,.22) !important;
  color:#f2f7ff !important;
}
.filters .rw-ps-trigger.rw-filter-action kbd{
  background:rgba(0,0,0,.30);
  border:1px solid rgba(136,170,214,.20);
  border-radius:3px;
  padding:1px 5px;
  font-size:9px;
  font-weight:900;
  color:#88aad6;
}
.filters .rw-ps-trigger.rw-lb-trigger.rw-filter-action{
  background:rgba(255,170,90,.10) !important;
  border-color:rgba(255,170,90,.30) !important;
  color:#ffc77a !important;
}
.filters .rw-ps-trigger.rw-lb-trigger.rw-filter-action:hover{
  background:rgba(255,170,90,.22) !important;
  color:#ffe0b3 !important;
}
@media (max-width:760px){
  .filters .rw-ps-trigger.rw-filter-action span,
  .filters .rw-ps-trigger.rw-filter-action kbd{ display:none !important; }
  .filters .rw-ps-trigger.rw-filter-action{ padding:9px !important; margin-left:6px !important; }
}

/* ===== Unified search bar dropdown ===== */
.rw-unified-search-wrap{
  position:relative;
  flex:1 1 auto;
  display:flex; align-items:center;
  min-width:200px;
}
.rw-unified-search-wrap .search{ flex:1 1 auto; padding-right:36px; }
.rw-search-kbd{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  font-size:9px; font-weight:900; letter-spacing:.04em;
  color:#5f748d;
  background:rgba(0,0,0,.30);
  border:1px solid rgba(136,170,214,.20);
  border-radius:3px;
  padding:1px 5px;
  pointer-events:none;
}
.rw-unified-results{
  display:none;
  position:absolute; top:calc(100% + 6px); left:0; right:0;
  z-index:100;
  max-height:480px; overflow-y:auto;
  background:linear-gradient(180deg,#0a1c34,#020812);
  border:1px solid rgba(136,170,214,.30);
  border-radius:10px;
  box-shadow:0 18px 42px rgba(0,0,0,.55);
}
.rw-unified-results.open{ display:block; }
.rw-uni-section{ padding:6px 0; border-bottom:1px solid rgba(136,170,214,.10); }
.rw-uni-section:last-of-type{ border-bottom:0; }
.rw-uni-section-head{
  padding:8px 14px 4px;
  font-size:10px; font-weight:850; letter-spacing:.10em; text-transform:uppercase;
  color:#5f748d;
}
.rw-uni-row{
  padding:9px 14px;
  cursor:pointer;
  transition:background .12s;
}
.rw-uni-row:hover{ background:rgba(70,144,255,.10); }
.rw-uni-row-name{
  color:#f2f7ff; font-weight:850; font-size:14px;
  letter-spacing:-.005em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.rw-uni-row-name mark{
  background:rgba(70,144,255,.30); color:#fff; padding:0 1px; border-radius:2px;
}
.rw-uni-row-meta{
  display:flex; align-items:center; gap:8px;
  margin-top:3px;
  font-size:11px; color:#88aad6;
  white-space:nowrap; overflow:hidden;
}
.rw-uni-pts{
  margin-left:auto; color:#7ec0ff; font-weight:850; font-size:11px;
  font-variant-numeric:tabular-nums;
}
.rw-uni-clubs{ color:#5f748d; }
.rw-uni-empty{
  padding:24px 18px;
  color:#5f748d; font-size:13px; text-align:center;
}
.rw-uni-empty b{ color:#dde6f4; }
.rw-uni-footer{
  padding:9px 14px;
  border-top:1px solid rgba(136,170,214,.10);
  font-size:10px; font-weight:600; letter-spacing:.04em;
  color:#5f748d;
  background:rgba(8,26,48,.5);
}
.rw-uni-footer kbd{
  background:rgba(0,0,0,.40); border:1px solid rgba(136,170,214,.20);
  border-radius:3px; padding:1px 5px; font-size:9px; font-weight:900; color:#88aad6;
}

/* Stat Leaders button now matches the rest of the chips (light blue) */
.filters .rw-ps-trigger.rw-lb-action.rw-filter-action,
.filters .rw-ps-trigger.rw-lb-trigger.rw-filter-action{
  background:rgba(70,144,255,.12) !important;
  border-color:rgba(70,144,255,.30) !important;
  color:#88aad6 !important;
}
.filters .rw-ps-trigger.rw-lb-action.rw-filter-action:hover,
.filters .rw-ps-trigger.rw-lb-trigger.rw-filter-action:hover{
  background:rgba(70,144,255,.22) !important;
  color:#f2f7ff !important;
}

/* ============================================================
 * Team Page Schedule (build 2026-05-04)
 * Chronological "Game 1 → Game N" + by-type stat cards
 * ============================================================ */
.rw-sched-box{
  background:linear-gradient(180deg, rgba(11,28,52,.92), rgba(7,20,40,.92));
  border:1px solid rgba(80,130,200,.28);
  border-radius:14px;
  padding:18px 18px 14px;
  margin-bottom:16px;
}
.rw-sched-box h3{
  margin:0 0 12px;
  font-size:18px;
  letter-spacing:.2px;
  color:#e6eefc;
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
}
.rw-sched-meta{
  font-weight:500;
  font-size:11px;
  color:#7d92b5;
  letter-spacing:.3px;
}

/* Stat cards row: Reg / Playoffs / Tournament / Nationals / Pre / Exh + Season Total */
.rw-sched-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:14px;
}
.rw-sched-card,
.rw-sched-total{
  background:rgba(8,22,42,.72);
  border:1px solid rgba(70,110,170,.22);
  border-radius:10px;
  padding:10px 12px 11px;
  position:relative;
}
.rw-sched-card-counts{ border-color:rgba(80,180,140,.30); }
.rw-sched-card-noncounts{ border-color:rgba(140,150,170,.18); opacity:.86; }
.rw-sched-card-label{
  font-size:10.5px;
  letter-spacing:.7px;
  text-transform:uppercase;
  color:#7d96bf;
  font-weight:800;
  margin-bottom:4px;
}
.rw-sched-card-rec{
  font-size:14px;
  font-weight:900;
  color:#e8effc;
}
.rw-sched-card-gd{
  font-size:11px;
  color:#8aa2c7;
  margin-top:1px;
}
.rw-sched-noncount{ color:#7588a6; opacity:.9; }

.rw-sched-total{
  border-color:rgba(70,144,255,.45);
  background:linear-gradient(180deg, rgba(20,55,110,.55), rgba(12,30,60,.65));
  grid-column:span 2;
}
@media (max-width:700px){ .rw-sched-total{ grid-column:auto; } }
.rw-sched-total-label{
  font-size:10.5px;
  letter-spacing:.7px;
  text-transform:uppercase;
  color:#a0c4ff;
  font-weight:800;
  margin-bottom:4px;
}
.rw-sched-total-rec{
  font-size:15px;
  color:#f3f7ff;
  letter-spacing:.2px;
}
.rw-sched-total-rec b{ color:#fff; }
.rw-sched-total-gd{
  font-size:11px;
  color:#a0bbe2;
  margin-top:2px;
}

/* Schedule table: numbered chronological list */
.rw-sched-table-wrap{
  max-height:480px;
  overflow:auto;
  border-radius:8px;
  border:1px solid rgba(70,110,170,.18);
}
.rw-sched-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.rw-sched-table thead th{
  position:sticky;
  top:0;
  background:rgba(7,18,36,.96);
  color:#86a0c8;
  font-weight:700;
  text-transform:uppercase;
  font-size:10.5px;
  letter-spacing:.6px;
  padding:8px 10px;
  text-align:left;
  border-bottom:1px solid rgba(70,110,170,.22);
}
.rw-sched-table tbody tr{
  border-bottom:1px solid rgba(60,90,140,.12);
}
.rw-sched-table tbody tr:hover{
  background:rgba(70,144,255,.06);
}
.rw-sched-table td{
  padding:7px 10px;
  vertical-align:top;
  color:#cbd7eb;
}
.rw-sched-num{
  font-weight:800;
  color:#88aad6;
  width:48px;
  font-variant-numeric:tabular-nums;
}
.rw-sched-faded{ color:#5a6d8a; }
.rw-sched-date{
  width:72px;
  color:#a3b5d4;
  font-variant-numeric:tabular-nums;
  font-size:12.5px;
}
.rw-sched-match b{ color:#e6eefc; }
.rw-sched-cell{
  text-align:right;
  width:120px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.rw-sched-result{
  display:inline-block;
  padding:2px 8px;
  border-radius:6px;
  font-size:12px;
  font-weight:800;
}
.rw-sched-w{ background:rgba(80,180,120,.16); color:#7be19f; }
.rw-sched-l{ background:rgba(220,90,90,.16);  color:#ff9a9a; }
.rw-sched-t{ background:rgba(180,170,90,.18); color:#e8d978; }
.rw-sched-pending{ color:#7d92b5; }
.rw-sched-status{ color:#88aad6; font-size:11.5px; }
.rw-sched-typetag{
  display:inline-block;
  font-size:9.5px;
  letter-spacing:.5px;
  text-transform:uppercase;
  font-weight:800;
  padding:1px 6px;
  border-radius:4px;
  margin-left:6px;
  vertical-align:middle;
}
.rw-sched-typetag-playoff{   background:rgba(255,184,77,.18); color:#ffd49a; }
.rw-sched-typetag-state_championship{ background:rgba(47,109,246,.20); color:#9ec3ff; }
.rw-sched-typetag-tournament{ background:rgba(180,140,255,.16); color:#c8b3ff; }
.rw-sched-typetag-nationals{  background:rgba(255,94,94,.16);   color:#ffaeae; }
.rw-sched-typetag-exhibition{ background:rgba(140,180,220,.12); color:#a3c0e1; }
.rw-sched-typetag-preseason{  background:rgba(140,180,220,.10); color:#9bb6d8; }

/* Footer per-league freshness strip */
.rw-footer-freshness{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(70,110,170,.12);
}
.rw-fr-pill{
  font-size:10.5px;
  letter-spacing:.3px;
  padding:3px 9px 4px;
  border-radius:999px;
  border:1px solid rgba(70,110,170,.22);
  color:#9bb3d6;
  background:rgba(8,22,42,.55);
  white-space:nowrap;
}
.rw-fr-pill b{ color:#cbdcfb; font-weight:800; }
.rw-fr-done{
  border-color:rgba(80,180,140,.30);
  color:#a8d6bd;
  background:rgba(20,55,40,.18);
}
.rw-fr-done b{ color:#cdebd8; }
.rw-fr-live{
  border-color:rgba(255,184,77,.28);
  color:#ffd49a;
  background:rgba(60,40,12,.18);
}
.rw-fr-live b{ color:#ffe7be; }

/* =========================================================
   RINKWIRE FOOTER + HUB TIGHTEN PASS — 2026-05-04
   Scope: footer logo/spacing + lower Hub/Tryouts density only.
   No ticker, header, data, nav, or game render changes.
   ========================================================= */
.rw-footer{
  margin-top:32px !important;
  border-top:1px solid rgba(120,150,190,.16) !important;
  background:
    radial-gradient(circle at 18% 0%,rgba(29,127,255,.11),transparent 34%),
    linear-gradient(180deg,rgba(4,14,30,.96) 0%,rgba(2,8,19,.98) 56%,#020813 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035) !important;
}
.rw-footer-inner{
  padding:24px 0 28px !important;
}
.rw-footer-brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:16px !important;
  padding-bottom:16px !important;
  border-bottom:1px solid rgba(120,150,190,.12) !important;
}
.rw-footer-logo{
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  border-radius:8px !important;
  border:1px solid rgba(136,170,214,.22) !important;
  background:linear-gradient(180deg,rgba(8,24,46,.95),rgba(3,12,25,.95)) !important;
  display:grid !important;
  place-items:center !important;
  overflow:hidden !important;
  box-shadow:0 10px 22px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.05) !important;
}
.rw-footer-logo img{
  width:28px !important;
  height:28px !important;
  display:block !important;
  object-fit:contain !important;
}
.rw-footer-season,
.rw-footer-freshness,
#rwFreshnessStrip,
#rwLastUpdated{
  display:none !important;
}
.rw-footer-brand strong{
  display:block !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.12em !important;
}
.rw-footer-brand span{
  max-width:720px !important;
  margin-top:6px !important;
  color:#8499b5 !important;
  font-size:11px !important;
  line-height:1.45 !important;
}
.rw-footer-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:20px !important;
  padding-bottom:14px !important;
}
.rw-footer-grid>div{
  border:0 !important;
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
}
.rw-footer h4{
  margin:0 0 9px !important;
  color:#dbe7f7 !important;
  font-size:9px !important;
  text-transform:uppercase !important;
  letter-spacing:.14em !important;
  opacity:.92 !important;
}
.rw-footer a,
.rw-footer-grid span{
  display:block !important;
  color:#7f94af !important;
  text-decoration:none !important;
  font-size:10px !important;
  font-weight:850 !important;
  line-height:1.9 !important;
  text-transform:uppercase !important;
  letter-spacing:.045em !important;
}
.rw-footer a:hover{color:#dbe7f7 !important;}
.rw-footer-bottom{
  display:grid !important;
  grid-template-columns:1.35fr 1.1fr .75fr !important;
  align-items:start !important;
  gap:18px !important;
  margin-top:0 !important;
  padding-top:14px !important;
  border-top:1px solid rgba(120,150,190,.12) !important;
  color:#667d99 !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1.45 !important;
  text-transform:uppercase !important;
  letter-spacing:.045em !important;
}
#rinkwire-rink-system{
  margin-top:12px !important;
  margin-bottom:18px !important;
  gap:12px !important;
  grid-auto-rows:minmax(318px,auto) !important;
}
#rinkwire-rink-system .panel-head{
  height:44px !important;
  padding:0 14px !important;
}
#rinkwire-rink-system .panel-body{
  padding:12px 14px !important;
}
#rinkwire-rink-system .rw-rink-card,
#rinkwire-rink-system .rw-tryout-card{
  padding:9px 10px !important;
  border-radius:9px !important;
  margin-bottom:8px !important;
}
#rinkwire-rink-system .rw-rink-title,
#rinkwire-rink-system .rw-tryout-title{
  font-size:12px !important;
  line-height:1.16 !important;
}
#rinkwire-rink-system .rw-rink-meta,
#rinkwire-rink-system .rw-tryout-meta,
#rinkwire-rink-system .rw-offseason-mini{
  font-size:10px !important;
  line-height:1.35 !important;
}
#rinkwire-rink-system .rw-offseason-section-title{
  margin:0 0 7px !important;
  font-size:9px !important;
}
#rinkwire-rink-system .rw-rink-actions{
  margin-top:8px !important;
  gap:8px !important;
}
#rinkwire-rink-system .rw-link-button{
  padding:8px 10px !important;
  font-size:10px !important;
  border-radius:8px !important;
}
@media(max-width:900px){
  .rw-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:18px !important;}
  .rw-footer-bottom{grid-template-columns:1fr !important;gap:8px !important;}
}
@media(max-width:560px){
  .rw-footer-grid{grid-template-columns:1fr !important;}
  .rw-footer-brand{align-items:flex-start !important;}
}


/* =========================================================
   RINKWIRE LOWER SECTION CLEANUP — 2026-05-04B
   Full-file surgical pass. Scope: RinkWire Hub, Tryouts header chips, footer duplicate removal.
   ========================================================= */
.footer{display:none !important;}
#rinkwire-rink-system{
  grid-template-columns:1fr 1fr !important;
  align-items:stretch !important;
  grid-auto-rows:minmax(388px,auto) !important;
  margin-top:12px !important;
  margin-bottom:22px !important;
}
#rinkwire-rink-system .panel{
  height:100% !important;
  min-height:388px !important;
  display:flex !important;
  flex-direction:column !important;
}
#rinkwire-rink-system .panel-head{
  height:46px !important;
  min-height:46px !important;
  padding:0 14px !important;
}
#rinkwire-rink-system .panel-body{
  flex:1 !important;
  min-height:0 !important;
  padding:10px 12px 12px !important;
  overflow-y:auto !important;
}
#rinkwire-rink-system .rw-rink-card{
  padding:8px 10px !important;
  margin-bottom:7px !important;
  border-radius:9px !important;
}
#rinkwire-rink-system .rw-rink-card:last-child{margin-bottom:0 !important;}
#rinkwire-rink-system .rw-rink-title{font-size:11.5px !important;line-height:1.12 !important;}
#rinkwire-rink-system .rw-rink-meta{font-size:9.5px !important;line-height:1.28 !important;margin-top:3px !important;}
#rinkwire-rink-system .rw-rink-actions{display:none !important;}
#rinkwire-rink-system .rw-offseason-tabs{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
}
#rinkwire-rink-system .rw-offseason-tabs a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:24px !important;
  padding:0 9px !important;
  border-radius:999px !important;
  border:1px solid rgba(88,168,255,.30) !important;
  background:rgba(29,127,255,.13) !important;
  color:#cfe3ff !important;
  text-decoration:none !important;
  font-size:9px !important;
  font-weight:950 !important;
  text-transform:uppercase !important;
  letter-spacing:.055em !important;
  line-height:1 !important;
  cursor:pointer !important;
}
#rinkwire-rink-system .rw-offseason-tabs a:hover{
  border-color:rgba(88,168,255,.48) !important;
  background:rgba(29,127,255,.20) !important;
  color:#fff !important;
}
#rinkwire-rink-system .rw-offseason-section-title{
  margin:0 0 7px !important;
  font-size:9px !important;
  letter-spacing:.08em !important;
}
#rinkwire-rink-system .rw-tryout-card{
  padding:8px 10px !important;
  margin-bottom:7px !important;
  border-radius:9px !important;
}
#rinkwire-rink-system .rw-tryout-title{font-size:11.5px !important;line-height:1.15 !important;}
#rinkwire-rink-system .rw-tryout-meta,
#rinkwire-rink-system .rw-offseason-mini{font-size:9.5px !important;line-height:1.28 !important;}
.rw-footer{margin-top:0 !important;}
.rw-footer-brand span:first-of-type{font-size:11px !important;}
@media(max-width:1180px){
  #rinkwire-rink-system{grid-template-columns:1fr !important;grid-auto-rows:auto !important;}
  #rinkwire-rink-system .panel{min-height:0 !important;}
}


/* =========================================================
   RINKWIRE HEADER / FILTER / FOOTER POLISH — 2026-05-04C
   Scope: header tagline, ticker-left balance, stat-leaders placement/icon,
   footer privacy line. No data, server, or ticker behavior changes.
   ========================================================= */
.header-inner{
  grid-template-columns:minmax(520px,auto) minmax(0,1fr) 220px !important;
  gap:22px !important;
}
.brand{
  min-width:0 !important;
  gap:10px !important;
  white-space:nowrap !important;
}
.brand-word{display:inline-flex !important;align-items:center !important;line-height:1 !important;}
.brand-tagline{
  display:inline-flex !important;
  align-items:center !important;
  margin-left:12px !important;
  padding-left:14px !important;
  border-left:1px solid rgba(136,170,214,.26) !important;
  color:#93a8c2 !important;
  font-size:10px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:.075em !important;
  text-transform:uppercase !important;
  font-style:normal !important;
  max-width:360px !important;
  white-space:normal !important;
}
.nav{gap:20px !important;justify-content:flex-start !important;min-width:0 !important;overflow:hidden !important;}
.nav a{font-size:11px !important;white-space:nowrap !important;}
.rw-score-rail-inner{
  grid-template-columns:212px minmax(0,1fr) !important;
  gap:16px !important;
  align-items:center !important;
}
.rw-score-rail-title{
  min-height:102px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:14px 14px 13px !important;
  border:1px solid rgba(7,19,35,.10) !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,.28)) !important;
  box-shadow:0 8px 18px rgba(7,19,35,.07) !important;
}
.rw-rail-eyebrow{
  display:inline-flex !important;
  width:max-content !important;
  margin:0 0 8px !important;
  padding:3px 7px !important;
  border-radius:999px !important;
  background:rgba(29,127,255,.10) !important;
  border:1px solid rgba(29,127,255,.18) !important;
  color:rgba(7,19,35,.66) !important;
  font-size:8.5px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.rw-score-rail-title strong{
  font-size:17px !important;
  letter-spacing:.075em !important;
  line-height:.95 !important;
}
.rw-score-rail-title #rwScoreRailSub{
  margin-top:9px !important;
  max-width:100% !important;
  font-size:10px !important;
  line-height:1.25 !important;
  letter-spacing:.04em !important;
  white-space:normal !important;
  overflow:hidden !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
}
.filters{
  display:grid !important;
  grid-template-columns:max-content max-content max-content max-content max-content minmax(260px,1fr) !important;
  align-items:center !important;
  gap:12px !important;
}
.filters .rw-stat-leaders-btn,
.filters .rw-ps-trigger.rw-filter-action.rw-stat-leaders-btn{
  margin:0 !important;
  height:42px !important;
  padding:0 14px !important;
  border-radius:9px !important;
  background:linear-gradient(180deg,rgba(29,127,255,.16),rgba(29,127,255,.08)) !important;
  border:1px solid rgba(136,170,214,.30) !important;
  color:#d9e9ff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important;
  gap:9px !important;
}
.filters .rw-stat-leaders-btn:hover{
  background:linear-gradient(180deg,rgba(29,127,255,.24),rgba(29,127,255,.12)) !important;
  border-color:rgba(88,168,255,.48) !important;
}
.rw-stat-icon{
  width:18px !important;
  height:18px !important;
  padding:2px !important;
  border-radius:6px !important;
  color:#88c4ff !important;
  background:rgba(255,255,255,.045) !important;
  box-shadow:inset 0 0 0 1px rgba(136,170,214,.14) !important;
  flex:0 0 auto !important;
}
.rw-unified-search-wrap{min-width:260px !important;}
.search{width:100% !important;}
.rw-footer-bottom{
  grid-template-columns:minmax(0,1.2fr) minmax(0,1.05fr) max-content !important;
  align-items:center !important;
}
.rw-footer-privacy{
  white-space:nowrap !important;
  text-align:right !important;
  min-width:max-content !important;
}
.rw-footer-privacy a{
  display:inline !important;
  color:#88aad6 !important;
  text-decoration:underline !important;
  font-size:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  font-weight:900 !important;
}
@media(max-width:1480px){
  .header-inner{grid-template-columns:minmax(430px,auto) minmax(0,1fr) 190px !important;gap:16px !important;}
  .brand{font-size:26px !important;}
  .brand-tagline{max-width:275px !important;font-size:9px !important;margin-left:8px !important;padding-left:10px !important;}
  .nav{gap:14px !important;}
  .nav a{font-size:10px !important;}
}
@media(max-width:1180px){
  .header-inner{grid-template-columns:1fr auto !important;}
  .brand-tagline{display:none !important;}
  .filters{display:flex !important;}
  .filters .rw-stat-leaders-btn{order:5 !important;}
  .rw-unified-search-wrap{order:6 !important;flex:1 1 260px !important;}
  .rw-score-rail-inner{grid-template-columns:1fr !important;}
  .rw-score-rail-title{min-height:0 !important;}
}
@media(max-width:900px){
  .rw-footer-bottom{grid-template-columns:1fr !important;align-items:start !important;}
  .rw-footer-privacy{text-align:left !important;white-space:normal !important;min-width:0 !important;}
}


/* ===== RINKWIRE FINAL LOWER/HEADER POLISH 2026-05-04 =====
   Surgical visual fixes only. No data, server, or ticker behavior changes. */
.footer{display:none !important;}
.header-inner{
  grid-template-columns:minmax(520px,auto) minmax(0,1fr) 210px !important;
  gap:18px !important;
}
.brand{
  min-width:0 !important;
  gap:11px !important;
}
.brand-sep{
  margin-left:10px !important;
  margin-right:8px !important;
  height:28px !important;
  background:rgba(136,170,214,.34) !important;
}
.brand-tagline{
  display:inline-flex !important;
  align-items:center !important;
  max-width:430px !important;
  margin-left:0 !important;
  padding-left:0 !important;
  border-left:0 !important;
  color:#c9d8ea !important;
  font-size:13px !important;
  line-height:1.18 !important;
  font-weight:850 !important;
  letter-spacing:.025em !important;
  text-transform:none !important;
  font-style:normal !important;
  white-space:normal !important;
}
.nav{justify-content:flex-start !important;gap:18px !important;}
.filters{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:10px !important;
}
.filters .seg{flex:0 0 auto !important;}
.filters .rw-stat-leaders-btn,
.filters .rw-ps-trigger.rw-filter-action.rw-stat-leaders-btn{
  order:5 !important;
  flex:0 0 auto !important;
  height:42px !important;
  margin-left:2px !important;
  margin-right:0 !important;
  padding:0 14px !important;
  border-radius:10px !important;
  background:linear-gradient(180deg,rgba(29,127,255,.18),rgba(29,127,255,.075)) !important;
  border:1px solid rgba(136,170,214,.34) !important;
  color:#e7f1ff !important;
  gap:9px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 18px rgba(0,0,0,.18) !important;
}
.rw-stat-icon{
  width:20px !important;
  height:20px !important;
  padding:3px !important;
  border-radius:7px !important;
  color:#9fd0ff !important;
  background:rgba(29,127,255,.14) !important;
  box-shadow:inset 0 0 0 1px rgba(136,170,214,.18) !important;
}
.rw-unified-search-wrap{
  order:6 !important;
  margin-left:auto !important;
  width:min(360px,28vw) !important;
  min-width:260px !important;
  flex:0 1 360px !important;
}.rw-score-rail-inner{
  grid-template-columns:270px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:center !important;
}
.rw-score-rail-title{
  min-height:112px !important;
  padding:16px 18px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  border:1px solid rgba(7,19,35,.12) !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.30)) !important;
  box-shadow:0 10px 24px rgba(7,19,35,.08) !important;
  overflow:hidden !important;
}
.rw-rail-eyebrow{
  display:inline-flex !important;
  width:max-content !important;
  margin:0 0 9px !important;
  padding:4px 8px !important;
  border-radius:999px !important;
  background:rgba(29,127,255,.10) !important;
  border:1px solid rgba(29,127,255,.18) !important;
  color:rgba(7,19,35,.68) !important;
  font-size:8.5px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.rw-score-rail-title strong{
  font-size:18px !important;
  line-height:.96 !important;
  letter-spacing:.075em !important;
  color:#071323 !important;
}
.rw-score-rail-title #rwScoreRailSub{
  margin-top:10px !important;
  max-width:100% !important;
  font-size:11px !important;
  line-height:1.3 !important;
  color:rgba(7,19,35,.62) !important;
  font-weight:900 !important;
  letter-spacing:.035em !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
.rw-score-ticker-shell{min-width:0 !important;}
.rw-score-ticker-btn{flex:0 0 auto !important;}
.rw-footer-bottom{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px 22px !important;
}
.rw-footer-bottom > span:not(.rw-footer-privacy){
  flex:1 1 360px !important;
  min-width:280px !important;
}
.rw-footer-privacy{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex:0 0 auto !important;
  min-width:max-content !important;
  white-space:nowrap !important;
  text-align:right !important;
}
.rw-footer-privacy b{
  color:#8ea4c0 !important;
  font-size:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-transform:uppercase !important;
  font-weight:900 !important;
}
.rw-footer-privacy a{
  display:inline-flex !important;
  color:#d7e8ff !important;
  text-decoration:none !important;
  font-size:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-transform:uppercase !important;
  font-weight:950 !important;
  padding:0 !important;
}
.rw-footer-privacy a:hover{color:#58a8ff !important;}
@media(max-width:1540px){
  .header-inner{grid-template-columns:minmax(460px,auto) minmax(0,1fr) 190px !important;gap:14px !important;}
  .brand{font-size:25px !important;}
  .brand-tagline{max-width:310px !important;font-size:11px !important;}
  .nav{gap:13px !important;}
  .nav a{font-size:10px !important;}
}
@media(max-width:1180px){
  .header-inner{grid-template-columns:1fr auto !important;}
  .brand-tagline{display:none !important;}
  .filters{flex-wrap:wrap !important;}
  .rw-unified-search-wrap{margin-left:0 !important;flex:1 1 260px !important;width:auto !important;}
  .rw-score-rail-inner{grid-template-columns:1fr !important;gap:10px !important;}
  .rw-score-rail-title{min-height:0 !important;}
}
@media(max-width:900px){
  .rw-footer-bottom{display:grid !important;grid-template-columns:1fr !important;align-items:start !important;}
  .rw-footer-bottom > span:not(.rw-footer-privacy){min-width:0 !important;}
  .rw-footer-privacy{justify-content:flex-start !important;white-space:normal !important;min-width:0 !important;}
}


/* === RINKWIRE FINAL LAYOUT POLISH 2026-05-04 === */

/* Header: quiet footer-style descriptor next to RINKWIRE */
.header-inner{
  grid-template-columns:minmax(540px,720px) minmax(420px,1fr) 190px !important;
  gap:18px !important;
}
.brand{
  min-width:0 !important;
  gap:10px !important;
}
.brand .rw{
  flex:0 0 auto !important;
}
.brand-sep{
  flex:0 0 1px !important;
  height:18px !important;
  margin:0 4px !important;
  background:rgba(136,170,214,.32) !important;
}
.brand-word{
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
.brand-tagline{
  display:inline-flex !important;
  align-items:center !important;
  margin-left:8px !important;
  padding-left:12px !important;
  border-left:1px solid rgba(136,170,214,.18) !important;
  color:#7f94af !important;
  font-size:11px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
  letter-spacing:.045em !important;
  text-transform:none !important;
  font-style:normal !important;
  max-width:430px !important;
  white-space:normal !important;
  opacity:.88 !important;
  transform:translateY(1px) !important;
}

/* Keep nav readable after the brand line gets wider */
.nav{
  gap:18px !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
}
.nav a{
  font-size:11px !important;
  white-space:nowrap !important;
}

/* Top Matchups: make the left label feel like a deliberate dashboard tile */
.rw-score-rail{
  background:linear-gradient(180deg,#f2f6fb 0%,#e8eef5 100%) !important;
  border-bottom:1px solid rgba(7,19,35,.14) !important;
}
.rw-score-rail-inner{
  grid-template-columns:205px minmax(0,1fr) !important;
  gap:18px !important;
  padding:13px 0 !important;
}
.rw-score-rail-title{
  min-height:104px !important;
  padding:13px 14px !important;
  border-radius:10px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.42)) !important;
  border:1px solid rgba(7,19,35,.10) !important;
  box-shadow:0 8px 18px rgba(7,19,35,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
.rw-rail-eyebrow,
.rw-score-rail-title span:first-child{
  margin:0 0 7px 0 !important;
  color:rgba(7,19,35,.48) !important;
  font-size:9.5px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
}
.rw-score-rail-title strong{
  color:#071323 !important;
  font-size:15px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.04em !important;
}
.rw-score-rail-title #rwScoreRailSub{
  margin-top:8px !important;
  color:rgba(7,19,35,.52) !important;
  font-size:10px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
  letter-spacing:.045em !important;
  text-transform:none !important;
  white-space:normal !important;
}
.rw-score-ticker-shell{
  grid-template-columns:32px minmax(0,1fr) 32px !important;
  gap:9px !important;
}
.rw-score-ticker-btn{
  width:32px !important;
  height:104px !important;
  border-radius:10px !important;
  background:linear-gradient(180deg,#1d7fff,#0f5fc8) !important;
  box-shadow:0 8px 18px rgba(7,19,35,.18), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.rw-score-ticker{
  padding:0 1px 1px !important;
}
.rw-ticker-card{
  height:120px !important;
  border-radius:10px !important;
  box-shadow:0 8px 18px rgba(7,19,35,.10) !important;
}

/* Filter row final balance: chips left, Stat Leaders after tier, search pushed right */
.filters{
  gap:10px !important;
  align-items:center !important;
}
.filters .rw-stat-leaders-btn{
  order:5 !important;
  margin-left:2px !important;
}
.rw-unified-search-wrap{
  order:20 !important;
  margin-left:auto !important;
}
.search{
  width:300px !important;
}

/* Footer: make parent/data removal read as a clean straight-line action */
.rw-footer-bottom{
  display:grid !important;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) max-content !important;
  align-items:center !important;
  gap:18px !important;
}
.rw-footer-privacy{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  white-space:nowrap !important;
  padding:7px 10px !important;
  border:1px solid rgba(136,170,214,.16) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.025) !important;
  color:#859ab6 !important;
}
.rw-footer-privacy b{
  color:#a9bad0 !important;
  font-weight:900 !important;
}
.rw-footer-privacy a{
  color:#9fc8ff !important;
  text-decoration:none !important;
  font-weight:900 !important;
}

/* Responsive safety */
@media(max-width:1320px){
  .header-inner{
    grid-template-columns:minmax(420px,1fr) auto !important;
  }
  .brand-tagline{
    max-width:330px !important;
    font-size:10px !important;
  }
  .nav{
    display:none !important;
  }
}
@media(max-width:900px){
  .rw-score-rail-inner{
    grid-template-columns:1fr !important;
  }
  .rw-score-rail-title{
    min-height:auto !important;
  }
  .rw-footer-bottom{
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  .rw-footer-privacy{
    justify-content:flex-start !important;
    width:max-content !important;
    max-width:100% !important;
  }
  .rw-unified-search-wrap{
    margin-left:0 !important;
    width:100% !important;
  }
  .search{
    width:100% !important;
  }
}
@media(max-width:620px){
  .brand-tagline{
    display:none !important;
  }
}

/* ============================================================
 * EP-style Player Profile supplement (unified data)
 * ============================================================ */
.rw-pp-buckets{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
  margin:10px 0 18px;
}
.rw-pp-bucket{
  background:rgba(8,22,42,.72);
  border:1px solid rgba(70,110,170,.22);
  border-radius:10px;
  padding:11px 14px;
}
.rw-pp-bucket-rs{ border-color:rgba(80,180,140,.30); }
.rw-pp-bucket-po{ border-color:rgba(255,184,77,.32); }
.rw-pp-bucket-tour{ border-color:rgba(180,140,255,.30); }
.rw-pp-bucket-tot{
  border-color:rgba(70,144,255,.45);
  background:linear-gradient(180deg, rgba(20,55,110,.55), rgba(12,30,60,.65));
}
.rw-pp-bucket-label{
  font-size:10.5px;
  letter-spacing:.7px;
  text-transform:uppercase;
  color:#7d96bf;
  font-weight:800;
  margin-bottom:5px;
}
.rw-pp-bucket-tot .rw-pp-bucket-label{ color:#a0c4ff; }
.rw-pp-bucket-row{
  font-size:14px;
  color:#e8effc;
  letter-spacing:.2px;
}
.rw-pp-bucket-row b{ color:#fff; font-weight:900; font-size:15.5px; }
.rw-pp-bucket-sub{ font-size:11px; color:#8aa2c7; margin-top:2px; }

.rw-pp-mini{
  font-size:11px;
  font-weight:500;
  color:#7d92b5;
  letter-spacing:.3px;
  margin-left:6px;
}

.rw-pp-sources{
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid rgba(70,110,170,.12);
  font-size:11px;
  color:#7d92b5;
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}
.rw-pp-source-pill{
  display:inline-block;
  padding:2px 8px;
  background:rgba(70,144,255,.12);
  border:1px solid rgba(70,144,255,.25);
  border-radius:999px;
  color:#a3c0e1;
  font-weight:700;
  font-size:10.5px;
  letter-spacing:.3px;
}


/* =========================================================
   RINKWIRE TEAM PAGE ROSTER POLISH — SURGICAL ONLY
   Scope: roster table on team pages. No header, ticker, data, nav, or server changes.
   ========================================================= */
.rw-roster-box{
  grid-column:1/-1;
}
.rw-roster-box h3{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}
.rw-roster-box h3 .rw-roster-meta{
  margin-left:0 !important;
  color:#88aad6 !important;
  font-size:10px !important;
  font-weight:850 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  opacity:.82;
}
.rw-roster-table-wrap{
  margin-top:12px !important;
  border-radius:12px !important;
  border:1px solid rgba(136,170,214,.18) !important;
  background:linear-gradient(180deg,rgba(3,16,30,.72),rgba(2,8,18,.96)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035) !important;
  overflow-x:auto !important;
}
.rw-roster-table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  font-size:13px !important;
}
.rw-roster-table thead th{
  padding:11px 12px !important;
  background:rgba(2,8,18,.84) !important;
  border-bottom:1px solid rgba(136,170,214,.18) !important;
  color:#7f95b2 !important;
  font-size:10px !important;
  font-weight:950 !important;
  letter-spacing:.09em !important;
}
.rw-roster-table tbody tr{
  background:transparent !important;
  transition:background .14s ease, transform .14s ease;
}
.rw-roster-table tbody tr:nth-child(even){
  background:rgba(255,255,255,.012) !important;
}
.rw-roster-table tbody tr:hover{
  background:rgba(29,127,255,.075) !important;
}
.rw-roster-table tbody td{
  padding:12px !important;
  border-bottom:1px solid rgba(136,170,214,.10) !important;
  vertical-align:middle !important;
}
.rw-roster-rank{
  width:36px !important;
  color:#5f748d !important;
  font-size:11px !important;
  font-weight:850 !important;
  text-align:center !important;
}
.rw-roster-jersey{
  width:58px !important;
  color:#dbe7f7 !important;
  font-size:12px !important;
  font-weight:950 !important;
  font-variant-numeric:tabular-nums !important;
}
.rw-roster-name{
  min-width:280px !important;
  cursor:pointer;
}
.rw-roster-name b{
  display:inline-block !important;
  color:#f2f7ff !important;
  font-size:13px !important;
  font-weight:950 !important;
  letter-spacing:-.01em !important;
}
.rw-roster-pos{
  display:inline-flex !important;
  align-items:center !important;
  height:17px !important;
  padding:0 6px !important;
  margin-left:7px !important;
  border-radius:4px !important;
  border:1px solid rgba(136,170,214,.18) !important;
  background:rgba(136,170,214,.07) !important;
  color:#88aad6 !important;
  font-size:9px !important;
  font-weight:950 !important;
  letter-spacing:.08em !important;
}
.rw-roster-split{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:4px !important;
  margin-top:7px !important;
  color:#88aad6 !important;
  font-size:10px !important;
  font-weight:750 !important;
  letter-spacing:.01em !important;
}
.rw-roster-split-row{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  white-space:nowrap !important;
}
.rw-roster-tag{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:17px !important;
  min-width:25px !important;
  padding:0 6px !important;
  margin:0 !important;
  border-radius:4px !important;
  font-size:9px !important;
  font-weight:950 !important;
  letter-spacing:.07em !important;
  line-height:1 !important;
}
.rw-roster-stat{
  color:#dce8f8 !important;
  font-size:13px !important;
  font-weight:850 !important;
  font-variant-numeric:tabular-nums !important;
}
.rw-roster-points b{
  color:#fff !important;
  font-size:14px !important;
  font-weight:950 !important;
}
.rw-roster-more{
  padding:10px 12px !important;
  border-radius:0 0 12px 12px !important;
  background:rgba(8,26,48,.36) !important;
  color:#88aad6 !important;
  font-size:12px !important;
  font-weight:850 !important;
}
@media(max-width:760px){
  .rw-roster-table-wrap{
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
  }
  .rw-roster-table,
  .rw-roster-table thead,
  .rw-roster-table tbody,
  .rw-roster-table tr,
  .rw-roster-table td{
    display:block !important;
    width:100% !important;
  }
  .rw-roster-table thead{display:none !important;}
  .rw-roster-table tbody tr{
    position:relative !important;
    margin:0 0 10px !important;
    padding:12px !important;
    border:1px solid rgba(136,170,214,.16) !important;
    border-radius:12px !important;
    background:linear-gradient(180deg,rgba(3,16,30,.78),rgba(2,8,18,.96)) !important;
  }
  .rw-roster-table tbody td{
    border:0 !important;
    padding:3px 0 !important;
  }
  .rw-roster-rank{
    position:absolute !important;
    top:12px !important;
    right:12px !important;
    width:auto !important;
    text-align:right !important;
  }
  .rw-roster-jersey{
    width:auto !important;
    margin-bottom:2px !important;
  }
  .rw-roster-name{
    min-width:0 !important;
    padding-right:34px !important;
  }
  .rw-roster-stat{
    display:inline-flex !important;
    width:auto !important;
    margin-right:14px !important;
    text-align:left !important;
  }
}



/* ===== RINKWIRE TEAMS STANDALONE PAGE ===== */
body.rw-teams-standalone .rw-teams-main{padding:18px 0 44px}
body.rw-teams-standalone .rw-teams-shell-panel{margin-top:16px}
body.rw-teams-standalone .rw-teams-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
body.rw-teams-standalone .rw-teams-title h1{margin:0;font-size:34px;line-height:1;letter-spacing:-.05em;text-transform:uppercase;font-weight:950}
body.rw-teams-standalone .rw-teams-title p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55;max-width:760px}
body.rw-teams-standalone .rw-teams-back{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 11px;border:1px solid rgba(120,150,190,.24);border-radius:8px;background:rgba(255,255,255,.025);color:#dce8f8;text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:950;white-space:nowrap}
body.rw-teams-standalone .rw-teams-filter-note{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-top:10px}
body.rw-teams-standalone .rw-teams-directory-panel .panel-body{padding:0}
body.rw-teams-standalone .team-directory-center{position:static;inset:auto;z-index:auto;display:block;background:transparent;backdrop-filter:none;padding:0}
body.rw-teams-standalone .team-directory-center[aria-hidden="true"]{display:block}
body.rw-teams-standalone .team-directory-center.open{display:block}
body.rw-teams-standalone .team-directory-center .td-card{width:100%;max-height:none;overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
body.rw-teams-standalone .team-directory-center .td-head{display:none}
body.rw-teams-standalone .team-directory-center .td-body{padding:16px}
body.rw-teams-standalone .team-directory-center .td-toolbar{position:sticky;top:62px;z-index:5;background:linear-gradient(180deg,#03101e,#020812 85%);padding:0 0 14px;margin-bottom:12px;border-bottom:1px solid rgba(120,150,190,.18)}
body.rw-teams-standalone .team-directory-center .td-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
body.rw-teams-standalone .team-directory-center .td-team{min-height:72px}
body.rw-teams-standalone .rw-teams-hidden-host{display:none!important}
@media(max-width:1180px){
  body.rw-teams-standalone .team-directory-center .td-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  body.rw-teams-standalone .rw-teams-title{display:block}
  body.rw-teams-standalone .rw-teams-back{margin-top:12px}
  body.rw-teams-standalone .team-directory-center .td-grid{grid-template-columns:1fr}
  body.rw-teams-standalone .team-directory-center .td-toolbar{top:0}
}

/* ============================================================
   Team Profile — focused enhancements (5 quick wins)
   ----------------------------------------------------------------
   - Home Rink line under the team subtitle in the hero
   - Next Game card slotted between hero and the box grid
   - W/L/T color-coded result chips in Recent Results
   - Division Rank stat row in Team Snapshot (no new selector — just data)
   ============================================================ */

/* Home rink — small label/value pair under the hero subtitle. */
.tp-home-rink{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px}
.tp-home-rink-label{color:#7d92ad;font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:9px}
.tp-home-rink-name{color:#dbe7f7;font-weight:850;letter-spacing:.01em}

/* Next Game card — full-width band between hero and the grid. */
.tp-next{
  position:relative;
  margin:14px 0 0;
  padding:14px 16px;
  border:1px solid rgba(136,170,214,.30);
  border-radius:7px;
  background:linear-gradient(180deg,rgba(8,24,46,.92),rgba(3,12,25,.96));
  box-shadow:0 12px 28px rgba(0,0,0,.42);
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
}
.tp-next::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(80,160,255,.34),transparent)}
.tp-next-eyebrow{
  position:absolute;top:-8px;left:14px;
  background:#0a1a30;color:#9ef7c1;
  padding:2px 9px;border-radius:999px;
  font-size:9px;font-weight:1000;letter-spacing:.10em;text-transform:uppercase;
  border:1px solid rgba(62,230,166,.34);
}
.tp-next-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;flex:1 1 auto;min-width:0}
.tp-next-side{display:flex;align-items:center;gap:11px;min-width:0}
.tp-next-vs{font-size:11px;font-weight:1000;color:#7d92ad;letter-spacing:.06em;text-transform:uppercase}
.tp-next-opp{font-size:16px;font-weight:1000;color:#fff;letter-spacing:-.01em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tp-next-meta{display:flex;align-items:center;gap:14px;color:#a7b8ce;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap}
.tp-next-date{color:#dbe7f7;font-size:12px}
.tp-next-rink{color:#a7b8ce}
.tp-next-status{display:inline-flex;align-items:center}

/* W/L/T result chips on the Recent Results list. */
.tp-score.tp-result-w{color:#9ef7c1!important;background:rgba(25,216,96,.12);border:1px solid rgba(25,216,96,.32);border-radius:6px;padding:3px 8px;display:inline-block}
.tp-score.tp-result-l{color:#ffa3ac!important;background:rgba(255,90,107,.10);border:1px solid rgba(255,90,107,.30);border-radius:6px;padding:3px 8px;display:inline-block}
.tp-score.tp-result-t{color:#cbd8ea!important;background:rgba(180,200,222,.08);border:1px solid rgba(180,200,222,.22);border-radius:6px;padding:3px 8px;display:inline-block}

@media(max-width:760px){
  .tp-next{flex-direction:column;align-items:flex-start}
  .tp-next-row{flex-direction:column;align-items:flex-start;gap:10px}
  .tp-next-meta{gap:8px}
  .tp-home-rink{margin-top:6px}
}

/* Top Scorers leaderboard — shown by default on /players.html when no
   search query is active. Sits at the top of the player results list. */
.rw-ps-leaders-head{
  padding:14px 18px 10px;
  font-size:11px;font-weight:1000;letter-spacing:.10em;text-transform:uppercase;
  color:#9ef7c1;
  border-bottom:1px solid rgba(130,154,185,.16);
  background:linear-gradient(180deg,rgba(25,216,96,.06),transparent);
}
.rw-ps-rank{
  display:inline-block;min-width:26px;
  margin-right:9px;
  color:#7d92ad;font-size:11px;font-weight:1000;letter-spacing:-.02em;
  text-align:right;
}

/* === RW LOGO PADDING TIGHTENING — 2026-05-10p =====================
   User directive: make the logo IMAGES inside icon boxes larger by
   shrinking the inner white padding to a thin bezel. Box dimensions,
   border-radius, and white background are preserved. Only padding +
   image scale change. Targets every known logo container selector. */
.team-logo-sm img,
.rw-tdv2-logo-box img,
.rw-ticker-logo img,
.rw-footer-logo img,
.logo img,
.logo-large img,
.logo-small img,
.logo-square img,
.logo-round img,
.logo-tall img,
.logo-wide img,
.logo--circle img,
.logo--standard img,
.logo--tall img,
.logo--wide img,
.big-logo img,
.tp-next-side .team-logo-sm img,
.rw-sched-logo img,
.bracket-team img,
.upset-card img {
  padding: 1px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}
/* The .big-logo wrapper on team-profile pages also needs the tighter
   padding so the larger logo sits flush. */
.big-logo {
  padding: 0 !important;
}
.big-logo > img {
  padding: 2px !important;
}
/* === END RW LOGO PADDING TIGHTENING ============================== */

/* === RW LOGO CENTERING — 2026-05-10q =================================
   User directive: centered logos inside icon boxes (both axes), so the
   image graphic always sits in the visual middle of the white bezel.
   Uses display:grid place-items:center on the box, and aligns the img
   content via object-position:center. Box dimensions and the 1px white
   padding from the previous block are preserved. */
.team-logo-sm,
.rw-tdv2-logo-box,
.rw-ticker-logo,
.rw-footer-logo,
.logo,
.logo-large,
.logo-small,
.logo-square,
.logo-round,
.logo-tall,
.logo-wide,
.logo--circle,
.logo--standard,
.logo--tall,
.logo--wide,
.big-logo,
.rw-sched-logo,
.tp-next-side .team-logo-sm,
.bracket-team .team-logo-sm,
.upset-card .team-logo-sm {
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
}
.team-logo-sm img,
.rw-tdv2-logo-box img,
.rw-ticker-logo img,
.rw-footer-logo img,
.logo img,
.logo-large img,
.logo-small img,
.logo-square img,
.logo-round img,
.logo-tall img,
.logo-wide img,
.logo--circle img,
.logo--standard img,
.logo--tall img,
.logo--wide img,
.big-logo img,
.rw-sched-logo img,
.tp-next-side .team-logo-sm img,
.bracket-team img,
.upset-card img {
  margin: 0 auto !important;
  object-position: center center !important;
}
/* Initials-fallback span — center the text glyph too. */
.team-logo-sm .logo-fallback,
.rw-tdv2-logo-box .logo-fallback,
.rw-ticker-logo .logo-fallback,
.logo .logo-fallback,
.big-logo .logo-fallback {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  text-align: center !important;
}
/* === END RW LOGO CENTERING =========================================== */

/* === RW LOGO PRESENTATION SIZE — 2026-05-10r ============================
   User directive: cohesive logo presentation across pages. The rankings
   page's hero (.rw-rk-top-logo) wrapped a tiny 30px team-logo-sm — the
   visual hierarchy felt off vs the big team-name + RWPI score next to it.
   Bump the hero logo box to 64px so the logo reads at hero scale, while
   row logos in the Power Board stay at 30px (matching standings rows). */
.rw-rk-top-logo .team-logo-sm {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  border-radius: 14px !important;
}
.rw-rk-top-logo .team-logo-sm img {
  padding: 2px !important;
}
/* === END RW LOGO PRESENTATION SIZE =================================== */

/* === RW TEAM ROW CLICKABILITY — 2026-05-10s ==========================
   User directive: every California team logo + name on every page must
   be clickable and route to that team's profile page. The standings,
   rankings, and scores engines now wrap the logo+name in <a href>'s
   pointing to team.html?team=X&league=Y&age=Z&tier=W. This block adds
   the visual affordance — pointer cursor on the row + a subtle hover. */
#fullStandingsBody tr[data-team-href],
#rwRkBody tr[data-team-href] {
  cursor: pointer;
}
#fullStandingsBody tr[data-team-href]:hover,
#rwRkBody tr[data-team-href]:hover {
  background: rgba(255,255,255,.04);
}
.rw-sc-team-link:hover,
a.rw-sc-tlogo:hover .team-logo-sm {
  opacity: 0.92;
}
.rw-sc-team a.rw-sc-team-link,
.rw-sc-team a.rw-sc-tlogo {
  cursor: pointer;
}
/* === END RW TEAM ROW CLICKABILITY =================================== */

/* === RW RANKINGS TICKER CLEARANCE — 2026-05-10t =====================
   User reported: top few teams on rankings being cut off by the ticker.
   The rankings page itself doesn't include a ticker shell, but on
   narrower windows or when an injected sticky element overlaps, the
   Power Board can sit too close to the top edge. Add scroll-margin-top
   so anchor jumps land below any sticky bar, and bump the rankings
   hero with breathing room so the top-team featured card and the
   Power Board both clear the header by a comfortable margin. */
.rw-standings-page,
.rw-rk-page,
body[data-rw-page="rankings-lite"] main {
  scroll-margin-top: 80px !important;
}
.rw-rk-top {
  margin-top: 16px !important;
  padding-top: 8px !important;
  scroll-margin-top: 80px !important;
}
.rw-rk-grid {
  margin-top: 12px !important;
  scroll-margin-top: 80px !important;
}
#rwRkBody tr:first-child {
  scroll-margin-top: 90px !important;
}
/* === END RW RANKINGS TICKER CLEARANCE =============================== */

/* === RW MOBILE NAV — 2026-05-10u =====================================
   User directive: collapse the desktop nav into a hamburger menu on
   tablets and phones (≤820px). Above 820px the nav stays inline as
   before. The hamburger button is injected by js/rw-mobile-nav.js into
   every page's header — this CSS controls the visibility, panel slide,
   and tap targets. Touch targets are ≥44px to meet Apple/Google guides.
*/

/* Hide the hamburger button on desktop. */
.rw-mobile-nav-btn {
  display: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 10px;
  margin: 0 0 0 auto;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  z-index: 1010;
}
.rw-mobile-nav-btn .rw-mobile-nav-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: #e7eef7;
  border-radius: 2px;
  transition: transform 200ms ease, opacity 150ms ease;
  transform-origin: center;
}
.rw-mobile-nav-btn.is-open .rw-mobile-nav-bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.rw-mobile-nav-btn.is-open .rw-mobile-nav-bar:nth-child(2) {
  opacity: 0;
}
.rw-mobile-nav-btn.is-open .rw-mobile-nav-bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Slide-down panel — hidden on desktop, shown on mobile when open. */
.rw-mobile-nav-panel {
  /* On desktop the panel is just a transparent inline wrapper around the
     existing .nav so links render as before. The actual mobile-only
     overlay treatment kicks in at the breakpoint below. */
  display: contents;
}

@media (max-width: 820px) {
  /* Show the hamburger button. */
  .rw-mobile-nav-btn {
    display: flex;
  }
  /* Hide the standard inline nav (it lives inside the panel and the
     panel is hidden until opened). */
  .rw-mobile-nav-panel {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #0a1a30;
    border-top: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 12px 24px rgba(0,0,0,.45);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: transform 220ms ease, opacity 180ms ease;
    z-index: 1005;
    max-height: calc(100vh - 60px);
    overflow-y: auto;
  }
  .rw-mobile-nav-panel.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .rw-mobile-nav-panel .nav {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 4px 0;
    width: 100%;
  }
  .rw-mobile-nav-panel .nav a {
    display: block;
    padding: 14px 22px;
    color: #e7eef7;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.05);
    min-height: 44px;
    box-sizing: border-box;
  }
  .rw-mobile-nav-panel .nav a:last-child {
    border-bottom: 0;
  }
  .rw-mobile-nav-panel .nav a:hover,
  .rw-mobile-nav-panel .nav a:focus,
  .rw-mobile-nav-panel .nav a.active {
    background: rgba(43,113,255,.12);
    color: #fff;
  }
  /* The header needs to be the positioning context for the panel. */
  .header {
    position: relative;
  }
  /* Tighten brand + status block so the hamburger has room. */
  .header-inner {
    flex-wrap: nowrap;
    align-items: center;
  }
  /* On the smallest screens the brand-tagline takes too much room — hide
     it. The brand name + RW mark are still there. */
  .brand-tagline {
    display: none !important;
  }
  /* Body scroll lock when the panel is open keeps the background still. */
  body.rw-mobile-nav-locked {
    overflow: hidden;
  }
}

/* Phone-specific tightening (≤480px). */
@media (max-width: 480px) {
  .header-inner .status .status-time,
  .header-inner .status .status-context {
    font-size: 11px;
  }
  .rw-mobile-nav-panel .nav a {
    padding: 13px 18px;
    font-size: 14px;
  }
}
/* === END RW MOBILE NAV ============================================== */

/* === RW MOBILE NAV PANEL FIX + TEAMS LOGO MATCH — 2026-05-10w ========
   Mobile nav panel was rendering display:contents because the desktop
   default rule and the @media block had equal specificity. Force the
   panel to behave like an overlay below ≤820px with !important so the
   slide-down is reliable. */
@media (max-width: 820px) {
  .rw-mobile-nav-panel {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
  }
  .rw-mobile-nav-panel:not(.is-open) {
    transform: translateY(-12px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .rw-mobile-nav-panel.is-open {
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}
/* Reverse to default on desktop. */
@media (min-width: 821px) {
  .rw-mobile-nav-panel {
    display: contents !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* === TEAMS DIRECTORY LOGO SIZE MATCH (index/scores style) ============
   User: team directory cards' logos must match the index page logos
   in size + be centered. The index uses 60-72px square logo boxes for
   matchup cards. The teams page .rw-tdv2-logo-box was 60px but the
   inner image was sometimes drifting due to flex defaults. Lock both. */
.rw-tdv2-logo-box {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  border-radius: 14px !important;
  background: #fff !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  padding: 0 !important;
}
.rw-tdv2-logo-box .team-logo-sm,
.rw-tdv2-logo-box > span,
.rw-tdv2-logo-box > div {
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.rw-tdv2-logo-box img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 4px !important;
  box-sizing: border-box !important;
  margin: 0 auto !important;
  display: block !important;
}
/* Also size match the trending/sidebar mini logos so the whole page
   reads as a single visual scale. */
.rw-tdv2-mini-logo .team-logo-sm,
.rw-tdv2-mini-logo {
  width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
  display: grid !important;
  place-items: center !important;
}
/* === END =========================================================== */

/* === RW MOBILE NAV PANEL — FORCE DISPLAY 2026-05-10x =================
   Existing rinkwire.css has legacy media queries that hide .nav at
   small widths. Force the panel's inner .nav to render with high
   specificity + !important so the slide-down list actually shows. */
@media (max-width: 820px) {
  .rw-mobile-nav-panel,
  .rw-mobile-nav-panel.is-open {
    width: 100% !important;
    background: #0a1a30 !important;
    z-index: 1005 !important;
  }
  .rw-mobile-nav-panel nav.nav,
  .rw-mobile-nav-panel .nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 6px 0 !important;
    width: 100% !important;
    align-items: stretch !important;
  }
  .rw-mobile-nav-panel nav.nav a,
  .rw-mobile-nav-panel .nav a {
    display: block !important;
    width: 100% !important;
    padding: 14px 22px !important;
    color: #e7eef7 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255,255,255,.06) !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
  }
  .rw-mobile-nav-panel nav.nav a:last-child,
  .rw-mobile-nav-panel .nav a:last-child {
    border-bottom: 0 !important;
  }
  .rw-mobile-nav-panel nav.nav a.active,
  .rw-mobile-nav-panel .nav a.active,
  .rw-mobile-nav-panel nav.nav a:hover,
  .rw-mobile-nav-panel .nav a:hover {
    background: rgba(43,113,255,.14) !important;
    color: #fff !important;
  }
  /* Hide the disabled/dimmed Scores tweak when it ever fires — Scores
     is now an active page on every page. */
  .rw-mobile-nav-panel .nav a.disabled {
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}
/* === END =========================================================== */

/* === RW MOBILE CHIPS — BOTTOM SHEET 2026-05-10y =====================
   Filters collapse into a slim active-context bar on ≤820px. Tapping
   the Filters button slides up a bottom sheet with the chip groups.
   Chip clicks inside the sheet auto-close + re-render via the engine's
   existing handlers. */

/* Active-context bar is HIDDEN on desktop. */
.rw-mc-active-bar { display: none; }

/* Sheet + backdrop are always in the DOM but invisible on desktop. */
.rw-mc-backdrop {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 1080;
  opacity: 0;
  transition: opacity 200ms ease;
}
.rw-mc-backdrop.is-open { opacity: 1; }
.rw-mc-sheet {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: #0a1a30;
  border-top: 1px solid rgba(255,255,255,.12);
  border-radius: 18px 18px 0 0;
  z-index: 1090;
  max-height: 80vh;
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform 240ms ease;
  padding: 8px 16px 24px;
  box-sizing: border-box;
  box-shadow: 0 -12px 32px rgba(0,0,0,.45);
}
.rw-mc-sheet.is-open { transform: translateY(0); }

@media (max-width: 820px) {
  /* Reveal the active-context bar. */
  .rw-mc-active-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 12px 16px;
    padding: 10px 14px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    color: #cfd8e6;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    min-height: 44px;
    box-sizing: border-box;
  }
  .rw-mc-active-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #f3f6fb;
    letter-spacing: 0.02em;
  }
  .rw-mc-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #2b71ff;
    color: #fff;
    border: 0;
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    min-height: 36px;
    text-transform: uppercase;
  }
  .rw-mc-filter-btn:hover { background: #3b7fff; }
  .rw-mc-filter-ic { font-size: 14px; line-height: 1; }

  /* Hide the inline filters block on mobile — moved into the sheet
     when opened, hidden in its original position when closed. */
  section.filters,
  .filters {
    display: none !important;
  }
  /* When .filters is moved inside the sheet body, the same rule above
     would still hide it. Override with higher specificity. */
  .rw-mc-sheet-body .filters,
  .rw-mc-sheet-body section.filters {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 8px 0 !important;
  }
  /* Each .seg row inside the sheet renders horizontally with snap. */
  .rw-mc-sheet-body .seg {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 0 !important;
  }
  .rw-mc-sheet-body .seg button {
    min-height: 40px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
  }
  .rw-mc-sheet-body .rw-unified-search-wrap {
    width: 100% !important;
  }
  .rw-mc-sheet-body input.search,
  .rw-mc-sheet-body .search {
    width: 100% !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
  }

  /* Show the sheet shells. */
  .rw-mc-backdrop { display: block; }
  .rw-mc-sheet { display: block; }
  body.rw-mc-locked { overflow: hidden; }
}

/* Sheet head — title row with Done button */
.rw-mc-sheet-grip {
  width: 40px;
  height: 4px;
  background: rgba(255,255,255,.18);
  border-radius: 2px;
  margin: 4px auto 12px;
}
.rw-mc-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 4px 12px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  margin-bottom: 12px;
}
.rw-mc-sheet-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #f3f6fb;
  letter-spacing: 0.02em;
}
.rw-mc-sheet-done {
  background: transparent;
  border: 1px solid rgba(255,255,255,.18);
  color: #f3f6fb;
  border-radius: 10px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  min-height: 36px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.rw-mc-sheet-done:hover { background: rgba(255,255,255,.06); }
.rw-mc-sheet-body { padding-bottom: 16px; }
/* === END =========================================================== */

/* === RW MOBILE CHIPS BACKDROP FIX 2026-05-10z2 ======================
   Backdrop was capturing pointer events even when invisible (opacity 0)
   because it stays in the DOM at display:block. Disable pointer-events
   when not open so the FILTERS button + page beneath it stay clickable. */
.rw-mc-backdrop { pointer-events: none; }
.rw-mc-backdrop.is-open { pointer-events: auto; }
.rw-mc-sheet:not(.is-open) { pointer-events: none; }
.rw-mc-sheet.is-open { pointer-events: auto; }
/* === END =========================================================== */

/* === RW MOBILE CONTEXT BAR TIGHTEN (≤480px) — 2026-05-10ab ==========
   On iPhone SE-class screens (~340-375px) the active context text +
   Filters button were wrapping. Tighten so the bar stays one row:
   shrink dot separators, allow text to ellipsis, never let the Filters
   button shrink below its label width. */
@media (max-width: 480px) {
  .rw-mc-active-bar {
    margin: 8px 12px;
    padding: 8px 12px;
    gap: 8px;
    font-size: 12px;
  }
  .rw-mc-active-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0;
  }
  .rw-mc-filter-btn {
    flex-shrink: 0;
    padding: 8px 12px;
    font-size: 12px;
    min-height: 32px;
  }
  .rw-mc-filter-ic {
    display: none;
  }
}
/* === END =========================================================== */

/* === RW GAME CENTER MODAL POLISH — 2026-05-10ac =====================
   User feedback: clicking a ticker card feels like a page reload even
   though it's an in-place overlay opening. Make it read as a modal:
   add a soft fade+scale entrance, a backdrop blur on whatever's behind
   it, and a visible close affordance (X button + Escape works). Also
   keep the full underlying page peeking around the edges so the user
   knows they haven't left home. */
#gameCenter {
  /* Ensure the engine's display:grid/block toggle still controls
     visibility — we only animate the appearance. */
  background: rgba(10,26,48,.86) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1200 !important;
}
#gameCenter:not(.open) {
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
}
#gameCenter.open {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 220ms ease;
  /* Center the inner modal panel and let the overlay absorb scrim
     clicks (handled by the engine's existing close logic). */
  display: grid;
  justify-items: center;
  /* Vertically center the panel in the viewport. "safe" falls back to
     top alignment if the card is taller than the space so the top
     (incl. the close button) is never clipped. */
  align-content: safe center;
  /* Top padding clears the sticky site header so the card never renders
     underneath it. */
  padding: 96px 24px 40px;
  overflow-y: auto;
}
#gameCenter > * {
  max-width: 980px;
  width: 100%;
  background: #0a1a30;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 28px 64px rgba(0,0,0,.55);
  animation: rw-gc-rise 240ms cubic-bezier(.22,.62,.32,1.04);
  position: relative;
}
@keyframes rw-gc-rise {
  from { transform: translateY(16px) scale(0.98); opacity: 0; }
  to   { transform: translateY(0) scale(1); opacity: 1; }
}
/* Inject a visible close button into the top-right of the gameCenter
   panel via CSS pseudo-elements would be flaky — use JS-injected real
   button. We just style it here. */
.rw-gc-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: rgba(255,255,255,.08);
  color: #f3f6fb;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
  transition: background 150ms ease;
}
.rw-gc-close:hover { background: rgba(255,255,255,.16); }

/* On mobile, fill the screen but keep a thin peek of underlying page
   at the very top so the modal nature is preserved. */
@media (max-width: 820px) {
  #gameCenter.open {
    padding: 12px 8px;
  }
  #gameCenter > * {
    border-radius: 14px;
    max-width: none;
    min-height: 0;
  }
}

/* Same treatment for the standings center, team center, team
   directory overlays so the whole site reads as cohesive modals. */
#standingsCenter,
#teamCenter,
#teamDirectory {
  background: rgba(10,26,48,.86) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1200 !important;
}
#standingsCenter:not(.open),
#teamCenter:not(.open),
#teamDirectory:not(.open) {
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
}
#standingsCenter.open,
#teamCenter.open,
#teamDirectory.open {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 220ms ease;
}
#standingsCenter.open > *,
#teamCenter.open > *,
#teamDirectory.open > * {
  animation: rw-gc-rise 240ms cubic-bezier(.22,.62,.32,1.04);
}
/* === END =========================================================== */

/* === RW MOBILE NAV PANEL POINTER-EVENTS LOCKDOWN — 2026-05-10ad =====
   The hamburger nav panel was capturing taps on the page below when
   closed (opacity:0 but still positioned absolute over the ticker).
   The first ticker-card click was actually landing on the invisible
   "Teams" anchor inside the closed panel, navigating to /teams.html.
   Lock down pointer events on EVERY descendant of the closed panel
   and reverse it explicitly when open. */
@media (max-width: 820px) {
  .rw-mobile-nav-panel:not(.is-open),
  .rw-mobile-nav-panel:not(.is-open) * {
    pointer-events: none !important;
  }
  .rw-mobile-nav-panel.is-open,
  .rw-mobile-nav-panel.is-open * {
    pointer-events: auto !important;
  }
}
/* === END =========================================================== */

/* === RW POLISH BATCH — 2026-05-10ae ==================================
   Reset Filters button styling, table horizontal-scroll fixes for the
   team profile page, and header status-bar truncation on phones. */

/* Reset button next to Done in the bottom sheet head */
.rw-mc-sheet-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}
.rw-mc-sheet-reset {
  background: transparent;
  border: 1px solid rgba(255,255,255,.12);
  color: #cfd8e6;
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  min-height: 36px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: background 150ms ease, color 150ms ease;
}
.rw-mc-sheet-reset:hover {
  background: rgba(255,255,255,.04);
  color: #f3f6fb;
}

/* Team profile page: roster + schedule + recent results tables now
   horizontal-scroll on phones so columns aren't clipped. */
.tp-grid table,
.rw-sched-table,
table.tp-table,
.tp-roster-table {
  width: 100%;
  border-collapse: collapse;
}
.tp-grid .rw-sched-table-wrap,
.tp-grid .tp-table-wrap,
.tp-grid .tp-scroll-wrap,
.tp-roster-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 820px) {
  /* Wrap any direct table inside a tp-box with a scrollable container —
     handles tables that don't have an explicit wrapper. */
  .tp-box > table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
  .tp-box > table thead, .tp-box > table tbody, .tp-box > table tr {
    display: table;
    width: 100%;
    table-layout: auto;
  }
  /* Schedule rows specifically — let date + matchup + result columns
     breathe on a phone. */
  .rw-sched-table {
    min-width: 480px;
  }
  /* Roster table — common columns include #/name/pos/gp/g/a/pts/pim,
     give them a comfortable min-width so nothing collides. */
  .tp-roster-table {
    min-width: 560px;
  }
}

/* Header status bar — phone tightening so the strip fits one line */
@media (max-width: 480px) {
  .header-inner .status {
    gap: 6px;
    flex-shrink: 1;
    min-width: 0;
    overflow: hidden;
    max-width: 50%;
  }
  .header-inner .status-time {
    /* Hide the time on the smallest screens so the green dot + active
       context (e.g. "SCAHA 12U A") still fits next to the brand. */
    display: none !important;
  }
  .header-inner .status-context {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    letter-spacing: 0.04em;
  }
  .header-inner .status .dot {
    flex-shrink: 0;
  }
  /* Brand also needs to shrink on narrow phones — tighten brand-word
     spacing and hide the "RW" mark/sep where space is tight. */
  .header-inner .brand-sep {
    display: none;
  }
}
/* Mid-size screens (481-640px): keep everything but make it compact. */
@media (min-width: 481px) and (max-width: 640px) {
  .header-inner .status {
    gap: 8px;
    overflow: hidden;
  }
  .header-inner .status-time,
  .header-inner .status-context {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
  }
}
/* === END =========================================================== */

/* === RW MOBILE NAV — HAMBURGER VISIBILITY FIX 2026-05-13 =============
   PROBLEM: The hamburger menu was not appearing on phones or tablets.
   ROOT CAUSE: Two source-order/breakpoint issues stacked.
     1) Phones (≤820px): the earlier @media(max-width:1320px) rule
        forces .header-inner { grid-template-columns: minmax(420px,1fr)
        auto !important; }. The 420px minimum on column 1 overflows
        a 375–414px viewport, pushing the hamburger button off-screen
        to the right (button.left ≈ 448 in a 375px viewport).
        html/body's overflow-x:hidden then clipped it out of view.
     2) Tablets (821–1320px): .nav { display:none !important } hides
        the desktop nav at this width, but .rw-mobile-nav-btn only
        switches to display:flex inside @media (max-width: 820px) —
        leaving a dead zone where iPad-landscape-class viewports
        (~1024px) had no nav and no hamburger at all.
   FIX: place this block AFTER the 1320-px rule in source order so it
   wins the cascade.
     • At ≤820px: relax the header grid to 1fr/auto so the hamburger
       sits inside the viewport without changing column count or row
       order (status stays on row 2, brand stays on row 1 col 1).
     • At 821–1320px: re-collapse the same grid and show the existing
       hamburger button + panel overlay, reusing the panel CSS pattern
       already defined for ≤820px.
   NO desktop changes (anything >1320px untouched). NO color, type,
   spacing, header, footer, filter, ticker, or game-center logic
   touched. */

@media (max-width: 820px) {
  .header-inner {
    grid-template-columns: 1fr auto !important;
  }
}

@media (min-width: 821px) and (max-width: 1320px) {
  .header-inner {
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
  }
  .rw-mobile-nav-btn {
    display: flex !important;
  }
  .rw-mobile-nav-panel {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    background: #0a1a30 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: 0 12px 24px rgba(0,0,0,.45) !important;
    z-index: 1005 !important;
    max-height: calc(100vh - 60px) !important;
    overflow-y: auto !important;
  }
  .rw-mobile-nav-panel:not(.is-open) {
    transform: translateY(-12px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .rw-mobile-nav-panel:not(.is-open) * {
    pointer-events: none !important;
  }
  .rw-mobile-nav-panel.is-open {
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .rw-mobile-nav-panel.is-open * {
    pointer-events: auto !important;
  }
  .rw-mobile-nav-panel .nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 6px 0 !important;
    width: 100% !important;
    align-items: stretch !important;
    overflow: visible !important;
  }
  .rw-mobile-nav-panel .nav a {
    display: block !important;
    width: 100% !important;
    padding: 14px 22px !important;
    color: #e7eef7 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255,255,255,.06) !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
  }
  .rw-mobile-nav-panel .nav a:last-child {
    border-bottom: 0 !important;
  }
  .rw-mobile-nav-panel .nav a.active,
  .rw-mobile-nav-panel .nav a:hover,
  .rw-mobile-nav-panel .nav a:focus {
    background: rgba(43,113,255,.14) !important;
    color: #fff !important;
  }
  .rw-mobile-nav-panel .nav a.disabled,
  .rw-mobile-nav-panel .nav a[aria-disabled="true"] {
    opacity: .35 !important;
    pointer-events: none !important;
    cursor: default !important;
  }
}
/* === END RW MOBILE NAV — HAMBURGER VISIBILITY FIX 2026-05-13 ======= */

/* ====================================================================
   RW MOBILE RESPONSIVENESS PASS — 2026-05-13 (surgical append)
   --------------------------------------------------------------------
   PROBLEM: Pages "display all weird" on phones. The site already had
            mobile work (hamburger nav, filter bottom sheet, table
            wrappers on team profile, score-grid collapses, gc-grid
            collapses), but several sections still leak horizontally
            on iPhone Pro Max (~430px wide), tables in panels overflow
            without a scroller, the beta-app strip has no mobile CSS,
            and several pages (store, about, tryouts, camps, playoffs)
            never got phone-specific rules.
   ROOT CAUSE: New sections were added without mobile rules; tables
            inside .panel-body lacked scroll wrappers; some flex/grid
            children needed min-width:0; oversized type and padding
            in cards and modal headers caused cramping.
   FIX BOUNDARY:
     CHANGES: Append a single mobile block at end of file. All rules
              are scoped to @media (max-width:760px) and
              @media (max-width:480px). NO desktop rules touched.
              NO color/font/structural changes outside breakpoints.
     DOES NOT CHANGE: Desktop appearance (>760px), any data, any
              filter/nav/ticker/game-center logic, any page DOM,
              any color, any logo path, any league/age/tier behavior.
   ==================================================================== */

/* ---------- A. FOUNDATION GUARDS — KILL HORIZONTAL SCROLL --------- */
@media (max-width: 760px) {
  /* Belt + suspenders against horizontal page scroll on every page. */
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    position: relative;
  }
  /* The main shell can't exceed the viewport. */
  .shell, main.shell, header.header, footer.rw-footer {
    max-width: 100vw !important;
    overflow-x: clip;
  }
  /* Anything sitting inside the page shell should respect the
     viewport. Box-sizing makes our padding math safe. */
  body, main, section, article, header, footer, nav, aside, div {
    max-width: 100%;
    box-sizing: border-box;
  }
  /* Images, embeds, iframes: never exceed their parent. */
  img, svg, video, iframe, embed, object {
    max-width: 100%;
    height: auto;
  }
  /* Flex/grid children need min-width:0 to actually shrink instead
     of pushing the parent wider. */
  .panel, .panel-body, .panel-head,
  .grid-top > *, .grid-bottom > *,
  .shell > *, main.shell > *,
  .rw-footer-grid > *, .rw-footer-brand > * {
    min-width: 0;
  }
  /* Long unbreakable strings (team names, URLs, emails) wrap. */
  .panel, .panel-body, .gc-body, .tp-body, .td-body,
  .rw-pp-body, .rw-pp-stats,
  .rw-rink-meta, .pp-team-name, .leader-name,
  .rw-footer-inner, .rw-footer-grid {
    overflow-wrap: anywhere;
    word-wrap: break-word;
  }
}

/* ---------- A2. HEADER OVERLAP / WRAP PREVENTION ------------------
   The header already collapses into a hamburger ≤1320px. But the
   row contents (brand + status + hamburger) could overlap on small
   phones when status text was long, or when the brand tagline tried
   to render. Lock the row order, hide the tagline, and let the
   status bar truncate cleanly. -------------------------------- */
@media (max-width: 760px) {
  .header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .header-inner {
    height: auto !important;
    min-height: 56px !important;
    padding: 6px 12px !important;
    gap: 8px !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
  }
  /* Status bar (time + dot + context) — make it never push width. */
  .header-inner .status {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: hidden !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-shrink: 1 !important;
  }
  .header-inner .status-context,
  .header-inner .status-time {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    min-width: 0 !important;
  }
  /* Brand inside the header — must shrink, must not wrap. */
  .header-inner .brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
    flex-shrink: 1 !important;
    max-width: 100% !important;
  }
  .header-inner .brand-word {
    font-size: 16px !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .header-inner .brand-tagline {
    display: none !important;
  }
  /* Hamburger sits flush right — already done in the v6 fix, just
     guarantee the button stays inside the viewport. */
  .rw-mobile-nav-btn {
    flex-shrink: 0 !important;
    margin-left: 8px !important;
  }
}
@media (max-width: 430px) {
  /* iPhone Pro Max anchor: keep the brand word + a short status. */
  .header-inner .brand-word {
    font-size: 15px !important;
  }
  .header-inner .status .status-time {
    display: none !important;
  }
  .header-inner .status-context {
    font-size: 11px !important;
    letter-spacing: 0.02em !important;
    max-width: 130px !important;
  }
}

/* ---------- B. SHELL + MAIN PADDING (≤480px) ---------------------- */
@media (max-width: 480px) {
  .shell {
    width: calc(100% - 16px) !important;
  }
  main.shell {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ---------- C. BETA APP STRIP (currently unstyled — give it
              a phone layout) ----------------------------------------- */
@media (max-width: 760px) {
  .rw-beta-app-strip {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 12px !important;
    margin: 12px 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }
  .rw-beta-app-left,
  .rw-beta-app-right {
    width: 100% !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
  }
  .rw-beta-app-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .rw-beta-app-copy strong {
    font-size: 15px;
    line-height: 1.2;
  }
  .rw-beta-app-copy span {
    font-size: 12px;
    line-height: 1.35;
    color: #cfd8e6;
  }
  .rw-beta-app-pill,
  .rw-beta-app-eyebrow {
    font-size: 10px;
    letter-spacing: 0.08em;
  }
  .rw-beta-app-preview-copy {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
  }
  .rw-beta-app-button {
    font-size: 13px;
    padding: 10px 14px;
  }
  .rw-beta-lock-chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  .rw-beta-lock-chips span {
    font-size: 11px;
    padding: 4px 10px;
  }
}
@media (max-width: 480px) {
  /* On the smallest phones, lock chips eat space without value — hide
     the bottom lock chip row; the eyebrow + button still communicate. */
  .rw-beta-lock-chips {
    display: none !important;
  }
}

/* ---------- D. TICKER / SCORE RAIL phone polish -------------------- */
@media (max-width: 760px) {
  .rw-score-rail-inner {
    padding: 10px 0 !important;
  }
  .rw-rail-eyebrow {
    font-size: 10px !important;
    letter-spacing: 0.08em;
  }
  .rw-score-rail-title strong {
    font-size: 15px !important;
  }
  .rw-score-rail-title #rwScoreRailSub {
    font-size: 12px !important;
  }
  .rw-score-ticker-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    font-size: 20px;
  }
  .rw-score-ticker {
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 4px 0 !important;
  }
  /* Each ticker card breathes a little more on mobile. */
  .rw-score-ticker > a,
  .rw-score-ticker > div[role="link"],
  .rw-score-ticker > article {
    padding: 8px 10px !important;
    min-width: 150px !important;
  }
}

/* ---------- E. TABLES — STANDINGS / RANKINGS / SCORES / SCHEDULES
   The team profile page already had its tables wrapped. Other pages
   (standings, rankings, leaderboards, scores, the home-page panels,
   game center stat tables) render <table> inside containers with no
   horizontal scroller, so columns clipped or pushed the page wider.
   Make every page-level table scrollable on phones. --------------- */
@media (max-width: 760px) {
  /* All tables on the standings/rankings/scores page shells become
     horizontally scrollable inside their own container. */
  .rw-standings-page table,
  main.shell table,
  .panel .panel-body table,
  .panel-body > table,
  .rw-rk-grid table,
  .tp-box > table,
  .gc-body table,
  .rw-pp-stats table,
  table.standings-table,
  table.rw-sched-table,
  table.tp-table,
  table.tp-roster-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    white-space: nowrap;
  }
  /* When the table itself becomes display:block, its inner thead /
     tbody / tr need to resume table layout so the cell columns
     still align cleanly. */
  .rw-standings-page table > thead,
  .rw-standings-page table > tbody,
  .rw-standings-page table > tr,
  main.shell table > thead,
  main.shell table > tbody,
  main.shell table > tr,
  .panel .panel-body table > thead,
  .panel .panel-body table > tbody,
  .panel .panel-body table > tr,
  .gc-body table > thead,
  .gc-body table > tbody,
  .gc-body table > tr {
    display: table !important;
    width: 100% !important;
    min-width: 100%;
    table-layout: auto !important;
  }
  /* Compact cell padding so 4-column tables (Team / GP / Record / PTS)
     actually fit on a 430px viewport. */
  main.shell table th,
  main.shell table td,
  .panel .panel-body table th,
  .panel .panel-body table td,
  .panel-body table th,
  .panel-body table td,
  .rw-standings-page table th,
  .rw-standings-page table td {
    padding: 6px 6px !important;
    font-size: 12px !important;
  }
  /* Team name cell in standings/rankings is what most needs to wrap. */
  .rw-standings-page table td:first-child,
  .panel-body table td:first-child {
    white-space: normal !important;
  }
  /* Standings hero (.st-hero) often contains a context strip; make
     it stack and clip overflow cleanly. */
  .st-hero {
    margin-top: 14px !important;
    padding: 12px !important;
    overflow: hidden;
  }
  /* Hide scrollbar visual chrome on phones — keep scrolling. */
  .rw-standings-page table::-webkit-scrollbar,
  main.shell table::-webkit-scrollbar,
  .panel-body table::-webkit-scrollbar {
    height: 6px;
  }
  .rw-standings-page table::-webkit-scrollbar-thumb,
  main.shell table::-webkit-scrollbar-thumb,
  .panel-body table::-webkit-scrollbar-thumb {
    background: rgba(120,150,190,.42);
    border-radius: 3px;
  }
}

/* ---------- F. FILTER PILLS that sit OUTSIDE the chip sheet -------
   Some pages render .seg pill rows outside .filters (e.g. playoffs
   "Past Brackets" tabs, store category tabs). Allow them to scroll
   horizontally on phones instead of overflowing. -------------------- */
@media (max-width: 760px) {
  .seg {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .seg::-webkit-scrollbar { display: none; }
  .seg button {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* ---------- G. GAME CARDS / LISTS phone polish --------------------- */
@media (max-width: 480px) {
  .game,
  .game-list .game {
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
    padding: 8px 0 !important;
  }
  .game-team {
    grid-template-columns: 26px 1fr !important;
    gap: 6px !important;
    font-size: 13px !important;
  }
  .team-row {
    grid-template-columns: 26px 1fr auto !important;
    gap: 6px !important;
    font-size: 13px !important;
  }
  /* Featured matchup card: collapse big score numbers. */
  .feature-match {
    gap: 12px !important;
    padding-top: 14px !important;
  }
  .gc-scoreline {
    font-size: 44px !important;
  }
}

/* ---------- H. GAME CENTER / TEAM CENTER overlays phone tightening
   The overlay shells already collapse via existing rules at 820px.
   These rules tighten the inside content (head, tabs, stats grids)
   for very narrow phones. ------------------------------------------- */
@media (max-width: 480px) {
  .gc-head h2,
  .tp-head h2,
  .td-head h2,
  .analytics-drawer-head h2 {
    font-size: 15px;
  }
  .gc-close,
  .tp-close,
  .td-close,
  .analytics-close,
  .rw-gc-close,
  .rw-pp-close {
    padding: 8px 12px;
    font-size: 12px;
    min-height: 36px;
  }
  .gc-body,
  .tp-body,
  .td-body {
    padding: 12px !important;
  }
  .gc-grid,
  .tp-grid {
    gap: 10px !important;
  }
  /* Team Directory toolbar — search + context — stack vertically. */
  .td-toolbar {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .td-search {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 44px !important;
  }
  .td-context {
    font-size: 12px;
  }
  /* Team Directory grid: one column on the smallest phones. */
  .td-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

/* ---------- I. PLAYER PROFILE overlay phone polish ----------------- */
@media (max-width: 480px) {
  .rw-pp-card {
    padding: 0 !important;
    border-radius: 14px !important;
  }
  .rw-pp-hero {
    padding: 14px !important;
  }
  .rw-pp-stats {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    padding: 12px !important;
  }
  .rw-pp-body {
    padding: 12px !important;
  }
  .rw-pp-footer {
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    padding: 10px 12px;
  }
}

/* ---------- J. ANALYTICS DRAWER phone --------------------------- */
@media (max-width: 480px) {
  .analytics-drawer {
    width: 100% !important;
    max-width: 100% !important;
  }
  .rw-legend-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

/* ---------- K. FOOTER phone --------------------------------------- */
@media (max-width: 480px) {
  .rw-footer-inner {
    padding: 16px 14px !important;
    gap: 16px !important;
  }
  .rw-footer-brand {
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .rw-footer-brand strong {
    font-size: 14px;
  }
  .rw-footer-brand span {
    font-size: 11px;
    line-height: 1.35;
  }
  .rw-footer-grid h4 {
    font-size: 11px;
    margin-bottom: 6px;
  }
  .rw-footer-grid a {
    font-size: 12px;
    padding: 4px 0;
    display: block;
  }
}

/* ---------- L. RINKS PAGE phone (large file, page-specific) ------- */
@media (max-width: 760px) {
  /* Rink cards may use a 2-up grid by default — collapse to 1. */
  .rw-rink-card {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .rw-rink-top {
    flex-wrap: wrap;
    gap: 6px;
  }
  .rw-rink-title {
    font-size: 14px;
    line-height: 1.2;
  }
  .rw-rink-meta {
    font-size: 12px;
  }
}

/* ---------- M. STORE / TRYOUTS / CAMPS phone polish ---------------
   These pages share patterns with the home page (panels + lists),
   but also have their own card grids that need to stack. -------- */
@media (max-width: 760px) {
  /* Generic card grids used across store, tryouts, camps, rinks. */
  .rw-card-grid,
  .rw-tryout-grid,
  .rw-camp-grid,
  .rw-store-grid,
  .rw-rink-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  /* Store product cards: keep image + title aligned, allow CTA to
     drop to its own row on tight screens. */
  .rw-store-card,
  .rw-tryout-card,
  .rw-camp-card {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ---------- N. PLAYOFFS page phone ---------------------------------
   The playoffs page has its own combined-showcase + pp-row layout
   defined inline. The 3-column .pp-row (when / teams / scores) is
   readable on phones because the column spec is 120px / 1fr / 80px
   — that's 220px of fixed + 1fr = stays under 430px. But the
   combined-showcase stats grid (3 cols, 280px wide) and the inline
   medal grid can squeeze. Tighten only what's needed. ------------- */
@media (max-width: 480px) {
  .combined-showcase {
    padding: 12px !important;
  }
  .combined-showcase .rw-showcase-stats {
    max-width: 100% !important;
    gap: 10px !important;
  }
  .combined-showcase .rw-showcase-stats b {
    font-size: 16px;
  }
  .combined-showcase .rw-showcase-name {
    font-size: 20px !important;
    line-height: 1.05;
  }
  .combined-showcase .rw-medal {
    grid-template-columns: auto minmax(0,1fr) 32px !important;
    gap: 8px !important;
    padding: 9px 10px !important;
  }
  .combined-showcase .rw-medal .rw-medal-name {
    font-size: 12px;
  }
  .combined-showcase .rw-medal .rw-medal-pts {
    font-size: 13px;
  }
  /* Playoff schedule rows */
  .pp-row {
    grid-template-columns: 92px minmax(0,1fr) 64px !important;
    gap: 10px !important;
    padding: 12px 4px !important;
  }
  .pp-when strong { font-size: 12px; }
  .pp-when span { font-size: 9px; }
  .pp-team-name { font-size: 12px !important; }
  .pp-team-row .tiny,
  .pp-team-row .tiny.team-logo-sm {
    flex: 0 0 22px !important;
    width: 22px !important;
    height: 22px !important;
  }
  .pp-score { font-size: 15px !important; }
  .pp-score.winner { font-size: 16px !important; }
}

/* ---------- O. RANKINGS / STANDINGS / LEADERBOARDS phone ----------
   The team-row + power-board tables use logo + name + RWPI numbers.
   On a 430px viewport the desktop column widths cut off team names.
   Allow names to wrap one extra line; tighten right-aligned numeric
   columns; keep the team logo locked at 30px so row height stays
   consistent. ----------------------------------------------------- */
@media (max-width: 480px) {
  .rw-rk-top {
    padding: 12px !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  .rw-rk-top-logo .team-logo-sm {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
  }
  .rw-rk-top-name {
    font-size: 16px !important;
    line-height: 1.15;
  }
  .rw-rk-top-score {
    font-size: 28px !important;
  }
  /* Power Board / standings rows: smaller logo + tighter type. */
  #rwRkBody td,
  #fullStandingsBody td,
  #standingsBody td,
  #rwpiBody td {
    padding: 6px 4px !important;
    font-size: 12px !important;
    line-height: 1.2;
  }
  #rwRkBody td:first-child,
  #fullStandingsBody td:first-child,
  #standingsBody td:first-child {
    white-space: normal;
  }
  /* Leaderboard cards stack. */
  .leader-row {
    grid-template-columns: 30px 1fr auto !important;
    gap: 8px !important;
    padding: 8px 6px !important;
  }
  .leader-name { font-size: 13px; }
  .leader-team { font-size: 10px; }
}

/* ---------- P. TEAM PROFILE PAGE phone ---------------------------
   Already has table-scroll wrappers from existing CSS. Add gap and
   padding tightening so the page header + tabs + score cards read
   cleanly on phones. ---------------------------------------------- */
@media (max-width: 480px) {
  .tp-head { padding: 10px 12px !important; }
  .tp-hero { padding: 12px !important; }
  .tp-hero-name { font-size: 18px !important; line-height: 1.1; }
  .tp-hero-meta { font-size: 11px !important; }
  .tp-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap !important;
    white-space: nowrap;
  }
  .tp-tabs::-webkit-scrollbar { display: none; }
  .tp-tabs button,
  .tp-tabs a {
    flex: 0 0 auto;
    padding: 8px 12px;
    font-size: 12px;
  }
  .tp-next-side .team-logo-sm,
  .tp-prev-side .team-logo-sm {
    width: 36px !important;
    height: 36px !important;
  }
}

/* ---------- Q. SEARCH RESULTS overlay (unified search) ------------ */
@media (max-width: 480px) {
  .rw-unified-search-wrap {
    width: 100% !important;
  }
  .rw-unified-results {
    left: 8px !important;
    right: 8px !important;
    max-width: calc(100vw - 16px) !important;
    font-size: 13px;
  }
  .rw-search-kbd {
    display: none;
  }
}

/* ---------- R. TAP TARGETS (≤480px) ------------------------------ */
@media (max-width: 480px) {
  /* Any anchor/button inside a panel or nav should be at least 36px
     tall for thumb-friendliness. The hamburger panel rules already
     enforce 44px for nav links. */
  .panel-head a,
  .panel-head button,
  .rw-offseason-tabs a,
  .rw-store-card a.cta,
  .rw-camp-card a.cta,
  .rw-tryout-card a.cta {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
  }
}

/* ---------- S. PAGE-LEVEL HEADINGS (h1/h2/h3) phone --------------- */
@media (max-width: 480px) {
  /* Pages that show a page-level title (about, how-it-works, privacy,
     terms, store header) often default to desktop hero sizes. Scale
     down for phone readability without affecting desktop. */
  main.shell > h1,
  main.shell > section > h1,
  main.shell > section > .hero h1,
  .hero-title {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }
  main.shell > h2,
  main.shell > section > h2 {
    font-size: 16px !important;
    line-height: 1.2 !important;
  }
}

/* ---------- T. ABOUT / HOW-IT-WORKS / PRIVACY / TERMS prose ------- */
@media (max-width: 480px) {
  .rw-prose,
  .rw-about,
  .rw-how-it-works,
  .rw-privacy,
  .rw-terms,
  main.shell p,
  main.shell li {
    font-size: 14px;
    line-height: 1.5;
  }
}

/* ---------- U. TEXT READABILITY + CARD BREATHING ROOM -------------
   Many cards on phones were rendering desktop-tight type at 11–12px
   inside thin padding. iPhone Pro Max has 430px to work with — bump
   key text + give cards a touch more vertical air without changing
   the desktop look at all. ---------------------------------------- */
@media (max-width: 480px) {
  /* Panel headings + secondary labels should be readable, not tiny. */
  .panel-head h2 {
    font-size: 13px !important;
    letter-spacing: 0.04em !important;
  }
  .panel-head .period {
    font-size: 11px !important;
  }
  /* Panel body inner padding: enough air to read, no horizontal leak. */
  .panel-body {
    padding: 12px !important;
  }
  .panel-head {
    padding: 12px 14px !important;
  }
  /* Game list rows and team rows: bump label type +1. */
  .game-team,
  .team-row {
    font-size: 13.5px !important;
    line-height: 1.2;
  }
  /* Score cards (game center / matchup) get slightly larger numbers. */
  .gc-scoreline {
    font-size: 48px !important;
  }
  /* Rink card title + meta — readable hierarchy. */
  .rw-rink-title {
    font-size: 14px !important;
    line-height: 1.25 !important;
  }
  .rw-rink-meta {
    font-size: 12.5px !important;
    line-height: 1.35 !important;
    color: #b8c6d8 !important;
  }
  .rw-rink-card {
    padding: 12px !important;
    margin-bottom: 8px;
  }
  /* Beta strip copy — readable, breathing. */
  .rw-beta-app-copy strong {
    font-size: 16px !important;
    line-height: 1.2;
  }
  .rw-beta-app-copy span {
    font-size: 13px !important;
    line-height: 1.4;
  }
  /* Footer copy — was getting reduced too aggressively. */
  .rw-footer-brand strong {
    font-size: 15px !important;
  }
  .rw-footer-brand span {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  .rw-footer-grid h4 {
    font-size: 12px !important;
  }
  .rw-footer-grid a {
    font-size: 13px !important;
    padding: 6px 0 !important;
  }
  /* Section titles on home page (Live / Today, Featured Matchup, etc.) */
  .rw-offseason-section-title {
    font-size: 12px !important;
    margin-bottom: 6px !important;
  }
  /* Anchor links inside panel-head ("View All", "View Schedule"). */
  .panel-head a {
    font-size: 12px !important;
  }
  /* Small text helpers everywhere should never go below 11px. */
  .rwpi-built,
  .rwpi-footer,
  .pp-when span,
  .pp-rink-sub {
    font-size: 11px !important;
  }
}

/* iPhone Pro Max sweet-spot anchor (390–430px). The 480px block is
   the floor; this lets the Pro Max width breathe a tad more. */
@media (min-width: 401px) and (max-width: 480px) {
  .panel-body { padding: 14px !important; }
  .game-team,
  .team-row { font-size: 14px !important; }
  .rw-rink-title { font-size: 15px !important; }
}

/* === END RW MOBILE RESPONSIVENESS PASS — 2026-05-13 =============== */

/* ====================================================================
   === RW MOBILE FIXES 2026-05-13 ====================================
   Surgical floor pass over the prior 2026-05-13 mobile responsiveness
   block.  Audit (_mobile-audit/REPORT.md) flagged:
     - Tap targets under 44x44 on 26/26 pages
     - Text under 14px (body) / 12px (labels) on 24/26 pages
     - teams.html horizontal-scroll suspicion (defensive overflow clip)
   Scope: ONLY @media (max-width: 820px).  Desktop (>820px) is UNTOUCHED.
   Approach: hit the WCAG 44px tap-target floor and the 14/12 text floor
   without changing layout, typography style, colors, or card structure.
   ==================================================================== */
@media (max-width: 820px) {

  /* ---------- A. DEFENSIVE OVERFLOW CLIP --------------------------- */
  /* Belt-and-suspenders for teams.html (and any other page that could
     transiently overflow during data hydration). The existing 760px
     block already clips html/body — this re-asserts it across the
     820px tablet/phone window too. */
  html, body {
    overflow-x: hidden !important;
  }

  /* ---------- B. TAP TARGET FLOOR (44x44) -------------------------- */
  /* Header brand link — make the touch surface 44px tall without
     resizing the visible text. */
  .header .brand,
  .header-inner .brand {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  /* Score-ticker chevrons (‹ ›). Already tall enough; widen to 44px. */
  .rw-score-ticker-btn {
    min-width: 44px !important;
    width: 44px !important;
  }

  /* Filter pill, chips, tabs, and small action buttons — hit 44px tall
     via min-height + flex centering. */
  .rw-mc-filter-btn,
  .rw-sc-chip,
  .rw-lb-tab,
  .chip,
  .rw-tdv2-view-all,
  .rw-team-route-back,
  .analytics-close,
  .store-btn,
  .rw-404-btn,
  .rw-beta-app-button,
  .rw-stat-leaders-btn,
  .btn,
  .btn-blue,
  .help-trigger {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  /* Panel header CTA links ("View Schedule", "View All", "Open Rinks",
     etc.) and the offseason tabs sit inside .panel-head — bump from
     the existing 36px floor to 44px on phones. */
  .panel-head a,
  .panel-head button,
  .rw-offseason-tabs a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
  }

  /* Footer nav links (.rw-footer-grid > div > a) — sized at 37px now,
     bump to 44px via padding so column rhythm stays even. */
  .rw-footer-grid a,
  .rw-footer-bottom a,
  .rw-footer-privacy a,
  .rw-pp-footer a {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
  }

  /* Teams directory breadcrumbs (HOME › TEAMS › DIRECTORY) — pad the
     link to 44 without enlarging the breadcrumb-row visually. */
  .rw-tdv2-crumbs a {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 8px !important;
    box-sizing: border-box !important;
  }

  /* 404 page "Or jump to" quick-nav row — small links at 30px tall. */
  .rw-404-quick-row a {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 8px !important;
    box-sizing: border-box !important;
  }

  /* Mobile filter sheet action buttons (Reset / Done) — current
     min-height is 36px; bump to 44. */
  .rw-mc-sheet-reset,
  .rw-mc-sheet-done {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  /* Standings / rankings team-link rows — pad to 44 instead of
     forcing min-height so the table row spacing stays clean. */
  .st-team-link,
  .rk-team-link,
  .rw-tdv2-team-link,
  .rw-sc-team-link,
  .rw-sc-tname,
  .rw-sc-tlogo {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    box-sizing: border-box !important;
  }

  /* ---------- C. TEXT FLOOR (14px body / 12px label) --------------- */
  /* Body floor. Any element that's currently set below 14px and is
     genuinely a body sample is bumped. We use a targeted body+p+li
     floor rather than a global selector so labels stay at 12. */
  body, p, li, dd, dt {
    font-size: 14px;
  }

  /* Label floor (≥ 12px). The audit's "small text" samples that are
     true labels (eyebrows, status pills, statbox subtitles, ticker
     meta) are listed here so they never drop below 12px on mobile. */
  .rw-rail-eyebrow,
  .rw-score-rail-title .rw-rail-eyebrow,
  .rw-score-rail-title span:first-child,
  .rw-ticker-status,
  .rw-ticker-time,
  .rw-ticker-bottom,
  .rw-ticker-score .score-when,
  .score-meta,
  .score-meta span,
  .score-card .score-meta,
  .score-card .score-meta span,
  .score-card .score-meta span:first-child,
  .score-card .score-meta span:last-child,
  .rw-sb-meta,
  .rw-sb-meta span,
  .rw-sb-clock,
  .rw-sb-abbr,
  .tag,
  .tag.region,
  .tag.confirmed,
  .city,
  .rw-policy-meta,
  .period,
  .store-kicker,
  .rw-footer-brand span,
  .rw-footer-brand div span,
  .rw-footer-brand div strong + span,
  .st-metric span,
  .rw-sc-kpi span,
  .rw-rk-kpi span,
  .summary-card span,
  .st-eyebrow,
  .rw-sc-eyebrow,
  .rw-rk-eyebrow,
  .rw-lb-eyebrow,
  .rw-tdv2-eyebrow,
  .rw-tryouts-eyebrow,
  .rw-camps-eyebrow,
  .rw-league-eyebrow,
  .kicker,
  .eyebrow,
  .rwpi-built,
  .rwpi-footer,
  .rwpi-meta,
  .pp-when span,
  .pp-rink-sub,
  .header-inner .status,
  .header-inner .status-time,
  .header-inner .status-context,
  .rw-ticker-logo .logo-fallback {
    font-size: 12px !important;
  }
}
/* === END RW MOBILE FIXES 2026-05-13 =============================== */

/* === RW PLAYOFFS MOBILE 2026-05-13 ================================
   PROBLEM: After the prior global mobile pass, playoffs.html still
            shows playoff-only issues on iPhone 14 (393×852):
              1) Sidebar nav tiles (.side-link) render at 183×36 — under
                 the 44px tap-target minimum (10 instances).
              2) Sub-14px body text on playoff-specific selectors:
                 .side-link (12px), .side-card h3 (13px), .side-card p
                 (11px), .pp-team-name (12px, set by 480px sub-block),
                 .combined-showcase .rw-medal .rw-medal-name (12px).
              3) Sub-12px label text on playoff-specific selectors:
                 .hero-title p (11px), .clock (10px), .arx-section-meta
                 (10px), .view (10px), .rw-showcase-side-title (9px),
                 .rw-showcase-meta (10px), .rw-medal-sub (9px),
                 .pp-when span (10px on mobile), .pp-result-meta (9px).
   ROOT CAUSE: Selectors are page-scoped to playoffs.html and were
               either untouched or actively tightened by the prior
               480px playoffs sub-block; need page-scoped overrides.
   FIX BOUNDARY:
     CHANGES: Page-scoped (body.rw-playoffs-archive) rules at
              ≤820px. Touches ONLY the playoff-specific selectors
              listed above. CSS-only — no HTML touched.
     DOES NOT CHANGE: Desktop (>820px). Any data array in
              playoffs.html. Any other page. Header, footer, ticker,
              filter sheet, mobile nav. Layout/spacing/colors outside
              the listed selectors. No structural restructuring.
   ================================================================== */
@media (max-width: 820px) {
  /* 1) Sidebar nav tiles — tap-target 44px + body 14px */
  body.rw-playoffs-archive .side-link {
    min-height: 44px !important;
    height: auto !important;
    font-size: 14px !important;
    padding: 8px 11px !important;
  }
  /* 2) Sidebar Follow-Team card — body text ≥14px */
  body.rw-playoffs-archive .side-card h3 {
    font-size: 14px !important;
  }
  body.rw-playoffs-archive .side-card p {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }
  /* 3) Hero / panel labels — bump to ≥12px */
  body.rw-playoffs-archive .hero-title p,
  body.rw-playoffs-archive .clock,
  body.rw-playoffs-archive .arx-section-meta,
  body.rw-playoffs-archive .view {
    font-size: 12px !important;
  }
  /* 4) Combined-showcase / medal panel labels + body */
  body.rw-playoffs-archive .combined-showcase .rw-showcase-side-title,
  body.rw-playoffs-archive .combined-showcase .rw-showcase-meta,
  body.rw-playoffs-archive .combined-showcase .rw-medal .rw-medal-sub {
    font-size: 12px !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-medal .rw-medal-name {
    font-size: 14px !important;
  }
  /* 5) Playoff game rows (pp-row) — body 14px, labels 12px */
  body.rw-playoffs-archive .pp-team-name {
    font-size: 14px !important;
  }
  body.rw-playoffs-archive .pp-when strong {
    font-size: 14px !important;
  }
  body.rw-playoffs-archive .pp-when span {
    font-size: 12px !important;
  }
  body.rw-playoffs-archive .pp-result-meta {
    font-size: 12px !important;
  }
}
/* === END RW PLAYOFFS MOBILE 2026-05-13 ============================ */


/* === RW MOBILE FIXES PHASE 2 - 2026-05-14 ============================
   Layout fixes only. No new spacing scale, typography, or color tokens.
   Scope: @media (max-width: 820px) for items 1-6.
           Item 7 is global (all widths, all pages).
   Issues addressed:
     1. Homepage featured matchup: logos stay side-by-side (no vertical stack)
     2. Homepage Standings: horizontal scroll -> stacked cards
     3. Homepage RW Power Index: horizontal scroll -> stacked cards
     4. Playoff hub: hero score-row + combined-showcase mobile layout
     5. Playoff hub: hide "Road to the Championship" panel on mobile
     6. Playoff hub: hide left side-nav button list on mobile (keep Follow card)
     7. Team logo tiles: pure white background everywhere (ALL WIDTHS)
   =================================================================== */

/* --- 7. Team logo tile pure white (ALL WIDTHS, ALL PAGES) ---------- */
.logo.has-logo,
.big-logo.has-logo,
.feature-team .logo.has-logo,
.feature-team .big-logo.has-logo {
  background: #ffffff !important;
}
.logo img,
.big-logo img {
  background: #ffffff !important;
}

@media (max-width: 820px) {

  /* --- 1. Homepage featured matchup: force horizontal layout ------ */
  .feature-match {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
  }
  .feature-match > .feature-team {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    text-align: center !important;
  }
  .feature-match > .feature-team .big-logo,
  .feature-match > .feature-team .logo {
    width: 64px !important;
    height: 64px !important;
    flex-shrink: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .feature-match > .feature-team .feature-name {
    font-size: 13px !important;
    line-height: 1.15 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }

  /* --- 2 + 3. Standings + RW Power Index: REVERTED per phase-3 request.
     Tighter cell padding + smaller font live in PHASE 3 block below.    */

  /* --- 4. Playoff hub hero: force 3-col matchup at mobile ---------- */
  body.rw-playoffs-archive .hero .score-row,
  .dashboard .hero .score-row {
    grid-template-columns: 1fr auto 1fr !important;
    gap: 10px !important;
    height: auto !important;
    align-items: center !important;
    margin-top: 14px !important;
  }
  body.rw-playoffs-archive .hero .team,
  .dashboard .hero .team {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    min-width: 0 !important;
  }
  body.rw-playoffs-archive .hero .team.right,
  .dashboard .hero .team.right {
    text-align: center !important;
    justify-content: center !important;
  }
  body.rw-playoffs-archive .hero .team .name,
  .dashboard .hero .team .name {
    font-size: 14px !important;
    line-height: 1.15 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    white-space: normal !important;
    max-width: 100% !important;
    text-align: center !important;
  }
  body.rw-playoffs-archive .hero .team img,
  .dashboard .hero .team img {
    width: 56px !important;
    height: 56px !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
    padding: 6px !important;
    background: #ffffff !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
  }

  /* --- 4b. Combined-showcase: Team Stats (CA Wave) ABOVE Podium ---- */
  body.rw-playoffs-archive .combined-showcase .rw-showcase,
  .combined-showcase .rw-showcase {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 16px !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-showcase-center,
  .combined-showcase .rw-showcase-center {
    order: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-showcase-side,
  .combined-showcase .rw-showcase-side {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-showcase-stats,
  .combined-showcase .rw-showcase-stats {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-showcase-stats b,
  .combined-showcase .rw-showcase-stats b {
    white-space: nowrap !important;
    font-size: 18px !important;
  }
  body.rw-playoffs-archive .combined-showcase .rw-showcase-stats span,
  body.rw-playoffs-archive .combined-showcase .rw-showcase-name,
  body.rw-playoffs-archive .combined-showcase .rw-showcase-meta,
  .combined-showcase .rw-showcase-stats span,
  .combined-showcase .rw-showcase-name,
  .combined-showcase .rw-showcase-meta {
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }

  /* --- 5. Hide "Road to the Championship" panel on mobile ---------- */
  body.rw-playoffs-archive .panel.road,
  body.rw-playoffs-archive .right-stack .road,
  .dashboard .panel.road,
  .dashboard .right-stack .road {
    display: none !important;
  }

  /* --- 6. Hide playoff hub side-nav buttons (keep Follow card) ----- */
  body.rw-playoffs-archive .sidebar .side-nav,
  .dashboard .sidebar .side-nav {
    display: none !important;
  }
}
/* === END RW MOBILE FIXES PHASE 2 - 2026-05-14 ====================== */


/* === RW MOBILE FIXES PHASE 3 - 2026-05-14 ============================
   Follow-on tweaks after phase-2 review.
   Scope: @media (max-width: 820px) except footer toggle (cross-width).
   Issues addressed:
     1. Homepage shell: small horizontal padding so panels aren't flush
     2. Standings: tighten cell padding + smaller font (table preserved)
     3. Live Today: more gap between team logo and team name
     4. Hide "Premium app preview" strip on mobile
     5. RW Power Index: force table layout + shrink font (no scroll)
     7. Footer: hamburger toggle (JS in js/rinkwire.js installs button)
     9. Playoff hub hero: breathing room so contents aren't squished
   =================================================================== */

@media (max-width: 820px) {

  /* --- 1. Homepage shell horizontal padding --- */
  main.shell {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  main.shell > .panel,
  main.shell > section.filters {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* --- 2. Standings: tighten cells, smaller font (no layout change) --- */
  #standingsBody td,
  #standingsBody th,
  .panel .panel-body table#standingsBody td,
  .panel .panel-body table#standingsBody th,
  .panel .panel-body table:has(#standingsBody) td,
  .panel .panel-body table:has(#standingsBody) th {
    padding: 4px 6px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
  }
  #standingsBody td:first-child,
  .panel .panel-body table:has(#standingsBody) td:first-child {
    padding-left: 4px !important;
    gap: 6px !important;
  }
  #standingsBody .logo,
  .panel .panel-body table:has(#standingsBody) .logo {
    width: 20px !important;
    height: 20px !important;
    margin-right: 4px !important;
  }

  /* --- 3. Live Today: more space between team logo + name --- */
  #liveList .team-row,
  .score-card .team-row {
    column-gap: 12px !important;
    gap: 12px !important;
  }
  #liveList .team-row .logo,
  .score-card .team-row .logo {
    margin-right: 4px !important;
  }

  /* --- 4. Hide Premium app preview strip --- */
  .rw-beta-app-strip,
  section.rw-beta-app-strip {
    display: none !important;
  }

  /* --- 5. RW Power Index: revert to table + shrink to fit (no scroll) --- */
  .panel .panel-body table:has(#rwpiBody) {
    display: table !important;
    overflow: visible !important;
    width: 100% !important;
    table-layout: fixed !important;
    -webkit-overflow-scrolling: auto !important;
  }
  .panel .panel-body table:has(#rwpiBody) thead {
    display: table-header-group !important;
  }
  .panel .panel-body table:has(#rwpiBody) tbody {
    display: table-row-group !important;
  }
  .panel .panel-body table:has(#rwpiBody) tr {
    display: table-row !important;
  }
  .panel .panel-body table:has(#rwpiBody) th,
  .panel .panel-body table:has(#rwpiBody) td,
  #rwpiBody th,
  #rwpiBody td {
    display: table-cell !important;
    font-size: 11px !important;
    padding: 3px 4px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.25 !important;
  }
  #rwpiBody .logo,
  .panel .panel-body table:has(#rwpiBody) .logo {
    width: 18px !important;
    height: 18px !important;
  }

  /* --- 7. Footer hamburger styles (button injected by js/rinkwire.js) --- */
  footer.rw-footer .rw-footer-toggle {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    padding: 12px 14px;
    margin: 0 0 10px 0;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 10px;
    color: inherit;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    font-family: inherit;
  }
  footer.rw-footer .rw-footer-toggle .rw-footer-toggle-icon {
    font-size: 18px;
    line-height: 1;
  }
  footer.rw-footer .rw-footer-grid,
  footer.rw-footer .rw-footer-bottom {
    display: none !important;
  }
  footer.rw-footer[data-expanded="true"] .rw-footer-grid {
    display: grid !important;
  }
  footer.rw-footer[data-expanded="true"] .rw-footer-bottom {
    display: block !important;
  }

  /* --- 9. Playoff hub hero: breathing room (un-squish contents) --- */
  body.rw-playoffs-archive .hero,
  .dashboard .hero {
    padding: 20px 14px !important;
  }
  body.rw-playoffs-archive .hero .hero-title,
  .dashboard .hero .hero-title {
    margin-bottom: 14px !important;
  }
  body.rw-playoffs-archive .hero .score-row,
  .dashboard .hero .score-row {
    gap: 14px !important;
    margin-top: 18px !important;
    padding: 6px 0 !important;
  }
  body.rw-playoffs-archive .hero .team,
  .dashboard .hero .team {
    gap: 10px !important;
    padding: 6px 0 !important;
  }
  body.rw-playoffs-archive .hero .pp-when,
  body.rw-playoffs-archive .hero .clock,
  .dashboard .hero .pp-when,
  .dashboard .hero .clock {
    margin-top: 4px !important;
  }
}

/* Hamburger only visible on mobile (button itself is in DOM cross-width) */
@media (min-width: 821px) {
  footer.rw-footer .rw-footer-toggle {
    display: none !important;
  }
}
/* === END RW MOBILE FIXES PHASE 3 - 2026-05-14 ====================== */

/* === RW PLAYOFFS HUB — HIDE FOLLOW TEAM ON MOBILE 2026-05-13 ========
   Scope: playoffs.html sidebar "Follow your team" card. The only
   .side-card element in the codebase lives in playoffs.html (line 154);
   .sidebar is also unique to playoffs.html. Mobile-only hide via the
   .sidebar .side-card pair so desktop (>820px) renders unchanged.
   CSS-only. No HTML, no JS, no data touched. */
@media (max-width: 820px) {
  .sidebar .side-card {
    display: none !important;
  }
}
/* === END RW PLAYOFFS HUB — HIDE FOLLOW TEAM ON MOBILE 2026-05-13 === */


/* === RW MC LOGO TILE — MOBILE 2026-05-13 ==========================
   Scope: playoffs.html main matchup card — the .team > .mark > img
   structure inside .hero .score-row. On mobile the .team .mark div
   renders as a darker outer tile (linear-gradient bg + box-shadows
   from playoffs.html embedded CSS line 12 .team .mark rule)
   wrapping a lighter (white) inner tile (the img, styled with
   background:#ffffff; padding:6px in the existing mobile block at
   line ~6159-6170 of this file).

   This block, mobile-only (≤820px):
     1) Removes the darker outer tile (transparent bg + no shadows
        + no ::before overlay).
     2) Grows the lighter inner tile by exactly 1.5× (56→84 px).
     3) Grows the inner padding by 1.5× (6→9 px) so the logo keeps
        the same proportion of the tile (78.6% before, 78.6% after).

   CSS-only. No HTML, no JS, no data touched. Desktop (>820px) is
   UNTOUCHED — .team .mark continues to use its existing 104×104 +
   gradient + shadows. */
@media (max-width: 820px) {
  body.rw-playoffs-archive .hero .team .mark,
  .dashboard .hero .team .mark {
    background: transparent !important;
    box-shadow: none !important;
  }
  body.rw-playoffs-archive .hero .team .mark::before,
  .dashboard .hero .team .mark::before {
    display: none !important;
  }
  body.rw-playoffs-archive .hero .team img,
  .dashboard .hero .team img {
    width: 84px !important;
    height: 84px !important;
    padding: 9px !important;
  }
}
/* === END RW MC LOGO TILE — MOBILE 2026-05-13 ===================== */

/* === RW LANDSCAPE TIP BANNER — MOBILE 2026-05-13 ==================
   Single-line dismissable "best viewed in landscape" banner. Element
   is injected at runtime by js/rw-landscape-tip.js as the first
   child of <body> on every page. CSS owns visibility: shown only on
   mobile (≤820px) AND portrait (auto-hidden in landscape). Dismissal
   persists for the browser session via sessionStorage (no cookies).

   Sits in normal flow above the (mobile non-sticky) header, so it
   does NOT cover the header, hamburger, ticker, filter sheet,
   Game Center, mobile nav panel, or Follow Team hide. Height capped
   at 40px; tap target on × is 44×44. */
@media (max-width: 820px) {
  .rw-landscape-tip {
    position: relative;
    z-index: 25;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 36px;
    max-height: 40px;
    padding: 6px 44px 6px 12px;
    margin: 0;
    background: #000;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    color: #ffffff;
    font-family: Inter, Arial, sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
    box-sizing: border-box;
  }
  .rw-landscape-tip-text {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #ffffff;
  }
  .rw-landscape-tip-close {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .rw-landscape-tip-close:hover,
  .rw-landscape-tip-close:focus {
    color: #ffffff;
    opacity: .85;
    outline: none;
  }
  .rw-landscape-tip[hidden] {
    display: none !important;
  }
}
/* Hide banner in landscape on mobile, and always on desktop. */
@media (orientation: landscape) {
  .rw-landscape-tip {
    display: none !important;
  }
}
@media (min-width: 821px) {
  .rw-landscape-tip {
    display: none !important;
  }
}
/* === END RW LANDSCAPE TIP BANNER — MOBILE 2026-05-13 ============= */


/* === RW PLAYOFFS PODIUM — MOBILE VISIBILITY FIX 2026-05-14 ==========
   Scope: playoffs.html .combined-showcase .rw-showcase on mobile.
   The inline <style> in playoffs.html sets .rw-showcase to a fixed
   330px height for the desktop two-column layout (champion left,
   podium right). Phase-2 mobile rules switch to a single flex column
   (champion stacked above podium) but never release that 330px
   constraint — and the parent .combined-showcase has overflow:hidden,
   so the stacked Tournament Podium gets clipped off the bottom and
   disappears below the fold. Fix: on mobile only, let .rw-showcase
   auto-size to its content, and let .combined-showcase show overflow,
   so the medals (Runner-up, 3rd, 4th) render below the champion stats.
   CSS-only. No HTML, no JS, no data touched. Desktop (>820px) is
   UNTOUCHED — the two-column 330px showcase remains intact. */
@media (max-width: 820px) {
  body.rw-playoffs-archive .combined-showcase .rw-showcase,
  .combined-showcase .rw-showcase {
    height: auto !important;
    min-height: 0 !important;
  }
  body.rw-playoffs-archive .combined-showcase,
  .combined-showcase {
    overflow: visible !important;
  }
}
/* === END RW PLAYOFFS PODIUM — MOBILE VISIBILITY FIX 2026-05-14 ===== */


/* === RW LANDSCAPE TIP — STICKY ON SCROLL 2026-05-14 ================
   Pin the tip banner to the top of the viewport during scroll so it
   stays visible until the user dismisses it via the × button (which
   removes the element from the DOM in js/rw-landscape-tip.js).

   Mobile/portrait only — the parent block (RW LANDSCAPE TIP BANNER —
   MOBILE 2026-05-13, above) already hides the banner in landscape
   and on desktop via display:none rules, so this override inherits
   the same visibility scope. No new media queries needed for that.

   Z-index 10000: the site header (<header class="header">) is
   position:relative + z-index:9999 (forced by rinkwire.css ~line 595
   plus inline <style> on every page), which creates a stacking
   context that would otherwise paint over a lower-z sticky banner
   during the brief scroll window where the header is still in
   viewport. Bumping the banner above 9999 keeps it on top
   throughout the scroll. The header itself is NOT touched.

   On dismissal, js removes the banner node from the DOM, so the
   sticky positioning disappears with it — no residual layout. The
   underlying header is position:relative (not sticky), so nothing
   competes for the top:0 slot once the banner is gone.

   CSS-only. No HTML, no JS, no data touched. Desktop (>820px) and
   mobile landscape are UNTOUCHED — banner remains display:none in
   both. */
@media (max-width: 820px) {
  .rw-landscape-tip {
    position: sticky !important;
    top: 0 !important;
    z-index: 10000 !important;
  }
}
/* === END RW LANDSCAPE TIP — STICKY ON SCROLL 2026-05-14 =========== */


/* === RW LANDSCAPE TIP — FIX SCROLL PIN 2026-05-14 ==================
   Override the prior sticky attempt: html, body have overflow-x:hidden
   on mobile, which promotes both elements to scroll containers and
   breaks position:sticky's scroll-context chain (sticky requires a
   single, clean ancestor scroll context). After scrolling 400px,
   verification showed the banner's getBoundingClientRect().top was
   -400 — i.e. it scrolled off-screen.

   Switch to position:fixed: fixed is viewport-anchored and does NOT
   depend on the scroll-context chain, so it pins reliably regardless
   of how html/body are scroll-configured.

   Fixed removes the banner from normal flow, so its 36px height no
   longer pushes the page content down. Restore that space by adding
   padding-top:36px to <body> while the banner is active. js/rw-
   landscape-tip.js toggles a body class:
     - on inject  → body.classList.add('rw-tip-active')
     - on dismiss → body.classList.remove('rw-tip-active')
   So: banner visible → body padded; banner dismissed → padding gone,
   content uses full viewport. In landscape/desktop the banner is
   never injected (existing display:none rules above), so the class
   is never added and there's no spacer.

   Mobile/portrait only — inherits visibility scope from the parent
   blocks above. Desktop (>820px) and mobile landscape are UNTOUCHED. */
@media (max-width: 820px) {
  .rw-landscape-tip {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 10000 !important;
  }
  /* When banner is active, push the rest of the page down so it doesn't sit underneath. */
  body.rw-tip-active {
    padding-top: 36px !important;
  }
}
/* === END RW LANDSCAPE TIP — FIX SCROLL PIN 2026-05-14 ============= */

.rw-tryout-hero-strip{margin:14px 0 0}.rw-tryout-hero-link{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:18px;min-height:106px;padding:16px 22px;border:1px solid rgba(136,170,214,.24);border-radius:14px;background-image:linear-gradient(90deg,rgba(0,0,0,.90) 0%,rgba(0,0,0,.82) 23%,rgba(2,8,19,.60) 52%,rgba(2,8,19,.34) 100%),url("../images/tryouts-strip-bg.webp");background-size:cover;background-position:center;background-repeat:no-repeat;color:#f2f7ff;text-decoration:none;overflow:hidden;box-shadow:0 18px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.05)}.rw-tryout-hero-link:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 38%,rgba(255,255,255,.015));pointer-events:none}.rw-tryout-live-pill,.rw-tryout-hero-copy,.rw-tryout-hero-levels,.rw-tryout-hero-cta{position:relative;z-index:1}.rw-tryout-live-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border:1px solid rgba(255,68,82,.88);border-radius:999px;background:linear-gradient(180deg,rgba(145,0,13,.95),rgba(92,0,10,.92));color:#fff;font-size:11px;font-weight:950;letter-spacing:.06em;line-height:1;text-transform:uppercase;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.05) inset,0 0 20px rgba(255,48,64,.18)}.rw-tryout-live-pill i{width:9px;height:9px;border-radius:50%;background:#ff2434;box-shadow:0 0 0 4px rgba(255,36,52,.15),0 0 14px rgba(255,36,52,.72)}.rw-tryout-hero-copy{min-width:0;display:grid;gap:7px}.rw-tryout-hero-copy strong{display:block;color:#fff;font-size:23px;line-height:1.05;font-weight:950;letter-spacing:-.045em}.rw-tryout-hero-copy span{display:block;color:#b7c3d4;font-size:12px;line-height:1.42;font-weight:700;max-width:620px}.rw-tryout-hero-levels{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.rw-tryout-hero-levels span{display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:50px;padding:0 14px;border:1px solid rgba(124,183,255,.50);border-radius:10px;background:rgba(2,8,19,.60);color:#eef6ff;font-size:12px;font-weight:950;letter-spacing:.045em;line-height:1;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.rw-tryout-hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:44px;padding:0 20px;border:1px solid rgba(29,127,255,.82);border-radius:10px;background:linear-gradient(180deg,rgba(22,119,255,.14),rgba(22,119,255,.06));color:#f2f7ff;font-size:12px;font-weight:950;letter-spacing:.045em;line-height:1;text-transform:uppercase;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 0 22px rgba(22,119,255,.12)}.rw-tryout-hero-cta:after{content:"›";color:#7fb6ff;font-size:18px;line-height:1;transform:translateY(-1px)}@media(max-width:1180px){.rw-tryout-hero-link{grid-template-columns:1fr auto;gap:12px}.rw-tryout-live-pill{grid-column:1/2}.rw-tryout-hero-copy{grid-column:1/-1}.rw-tryout-hero-levels{grid-column:1/2;flex-wrap:wrap}.rw-tryout-hero-cta{grid-column:2/3;grid-row:1/4;align-self:center}}@media(max-width:760px){.rw-tryout-hero-link{grid-template-columns:1fr;gap:12px;min-height:0;padding:14px}.rw-tryout-live-pill{width:max-content}.rw-tryout-hero-copy strong{font-size:19px}.rw-tryout-hero-copy span{font-size:12px;max-width:none}.rw-tryout-hero-levels{flex-wrap:wrap;gap:8px}.rw-tryout-hero-levels span{height:36px;min-width:46px}.rw-tryout-hero-cta{width:100%;height:42px}}

/* RinkWire Tryouts Banner — final, background image separate / content HTML */
.rw-tryout-hero-strip{margin:14px 0 0;position:relative;z-index:1}.rw-tryout-hero-link{position:relative;display:grid;grid-template-columns:minmax(250px,19%) minmax(420px,1fr) auto auto;align-items:center;gap:28px;width:100%;aspect-ratio:2048/239;min-height:142px;max-height:210px;padding:0 34px 0 0;border:1px solid rgba(136,170,214,.26);border-radius:14px;background-image:url("../images/tryouts-banner-bg.webp");background-size:100% 100%;background-position:center;background-repeat:no-repeat;color:#f2f7ff;text-decoration:none;overflow:hidden;box-shadow:0 18px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.05)}.rw-tryout-hero-link::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.05) 32%,rgba(0,0,0,.00) 58%,rgba(0,0,0,.02)),linear-gradient(180deg,rgba(255,255,255,.025),transparent 34%,rgba(0,0,0,.08))}.rw-tryout-hero-left,.rw-tryout-live-pill,.rw-tryout-hero-copy,.rw-tryout-hero-levels,.rw-tryout-hero-cta{position:relative;z-index:1}.rw-tryout-hero-left{height:63%;display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(136,170,214,.34)}.rw-tryout-live-pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:45px;padding:0 23px;border:1px solid rgba(255,34,48,.86);border-radius:999px;background:rgba(76,0,10,.54);color:#fff;font-size:14px;font-weight:850;letter-spacing:.01em;line-height:1;text-transform:uppercase;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.035) inset,0 0 22px rgba(255,30,46,.15)}.rw-tryout-live-pill i{display:block;width:10px;height:10px;border-radius:50%;background:#ff2031;box-shadow:0 0 0 5px rgba(255,32,49,.14),0 0 15px rgba(255,32,49,.72)}.rw-tryout-hero-copy{display:grid;gap:10px;min-width:0;transform:translateX(-2px)}.rw-tryout-hero-copy strong{display:block;color:#fff;font-size:clamp(22px,1.72vw,33px);line-height:1.02;font-weight:950;letter-spacing:-.055em;text-shadow:0 2px 18px rgba(0,0,0,.55)}.rw-tryout-hero-copy span{display:block;color:#c2cada;font-size:clamp(12px,.78vw,15px);line-height:1.38;font-weight:650;max-width:720px;text-shadow:0 2px 16px rgba(0,0,0,.72)}.rw-tryout-hero-levels{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}.rw-tryout-hero-levels span{display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:72px;padding:0 18px;border:1px solid rgba(116,185,255,.64);border-radius:9px;background:rgba(0,5,13,.50);color:#f4f8ff;font-size:15px;font-weight:820;letter-spacing:.04em;line-height:1;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 18px rgba(0,0,0,.18)}.rw-tryout-hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 27px;border:1px solid rgba(29,127,255,.80);border-radius:9px;background:rgba(0,10,22,.48);color:#fff;font-size:15px;font-weight:820;letter-spacing:.01em;line-height:1;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 0 22px rgba(22,119,255,.12)}.rw-tryout-hero-cta::after{content:"›";color:#dbe9ff;font-size:24px;font-weight:650;line-height:0;transform:translateY(-1px)}@media(max-width:1180px){.rw-tryout-hero-link{grid-template-columns:1fr auto;gap:14px;aspect-ratio:auto;min-height:0;max-height:none;padding:16px;background-size:cover;background-position:center}.rw-tryout-hero-left{grid-column:1/2;height:auto;justify-content:flex-start;border-right:0}.rw-tryout-hero-copy{grid-column:1/-1;transform:none}.rw-tryout-hero-levels{grid-column:1/2;grid-row:3;flex-wrap:wrap}.rw-tryout-hero-cta{grid-column:2/3;grid-row:1/4;align-self:center}}@media(max-width:760px){.rw-tryout-hero-link{grid-template-columns:1fr;gap:12px;padding:15px;border-radius:12px;background-position:left center}.rw-tryout-hero-left,.rw-tryout-hero-copy,.rw-tryout-hero-levels,.rw-tryout-hero-cta{grid-column:1/-1;grid-row:auto}.rw-tryout-live-pill{height:38px;padding:0 17px;font-size:11px}.rw-tryout-hero-copy strong{font-size:21px}.rw-tryout-hero-cta{width:100%;height:42px}}



/* RinkWire Tryouts Banner — thinner final pass */
.rw-tryout-hero-strip{margin:12px 0 0!important;}
.rw-tryout-hero-link{
  aspect-ratio:2048/185!important;
  min-height:118px!important;
  max-height:158px!important;
  grid-template-columns:minmax(220px,18.5%) minmax(390px,1fr) auto auto!important;
  gap:24px!important;
  padding:0 28px 0 0!important;
  border-radius:12px!important;
  background-size:100% 100%!important;
}
.rw-tryout-hero-left{height:60%!important;}
.rw-tryout-live-pill{
  height:38px!important;
  padding:0 19px!important;
  gap:9px!important;
  font-size:12px!important;
  border-radius:999px!important;
}
.rw-tryout-live-pill i{
  width:9px!important;
  height:9px!important;
  box-shadow:0 0 0 4px rgba(255,32,49,.14),0 0 13px rgba(255,32,49,.72)!important;
}
.rw-tryout-hero-copy{gap:7px!important;}
.rw-tryout-hero-copy strong{
  font-size:clamp(20px,1.45vw,28px)!important;
  line-height:1.02!important;
}
.rw-tryout-hero-copy span{
  font-size:clamp(11px,.68vw,13px)!important;
  line-height:1.34!important;
  max-width:660px!important;
}
.rw-tryout-hero-levels{gap:10px!important;}
.rw-tryout-hero-levels span{
  height:38px!important;
  min-width:62px!important;
  padding:0 15px!important;
  font-size:13px!important;
  border-radius:8px!important;
}
.rw-tryout-hero-cta{
  height:42px!important;
  padding:0 22px!important;
  font-size:13px!important;
  border-radius:8px!important;
}
.rw-tryout-hero-cta::after{font-size:21px!important;}
@media(max-width:1180px){
  .rw-tryout-hero-link{
    aspect-ratio:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:15px!important;
    gap:12px!important;
    background-size:cover!important;
  }
  .rw-tryout-live-pill{height:36px!important;font-size:11px!important;padding:0 16px!important;}
  .rw-tryout-hero-levels span{height:34px!important;min-width:48px!important;font-size:12px!important;}
  .rw-tryout-hero-cta{height:38px!important;font-size:12px!important;}
}
@media(max-width:760px){
  .rw-tryout-hero-link{padding:14px!important;border-radius:12px!important;}
  .rw-tryout-hero-copy strong{font-size:20px!important;}
  .rw-tryout-hero-copy span{font-size:12px!important;}
  .rw-tryout-hero-cta{width:100%!important;height:40px!important;}
  .rw-tryout-hero-levels{display:none!important;}
  .rw-tryout-live-pill{
    height:19px!important;
    padding:0 10px!important;
    gap:5px!important;
    font-size:9.5px!important;
    letter-spacing:.04em!important;
    border-radius:999px!important;
  }
  .rw-tryout-live-pill i{
    width:5px!important;
    height:5px!important;
    box-shadow:0 0 0 2px rgba(255,32,49,.14),0 0 8px rgba(255,32,49,.72)!important;
  }
}

/* FORCE BLACK BG SITEWIDE 2026-05-16 */
body:before{background:none!important}

/* HIDE RINKWIRE HUB ON INDEX 2026-05-16 */
#rinkwire-rink-system{display:none!important}


/* ====================================================================
   RW FOOTER REDESIGN 2026-05-18
   Scope: footer.rw-footer only. No header, ticker, data, nav, cards, JS,
   standings, or game-center rules changed.
   ==================================================================== */
footer.rw-footer {
  margin-top: 32px !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  border-top: 1px solid rgba(136,170,214,.24) !important;
  background:
    radial-gradient(circle at 16% 0%, rgba(29,127,255,.22), transparent 34%),
    linear-gradient(180deg, rgba(3,12,25,.96), #020812 72%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045) !important;
}
footer.rw-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(88,168,255,.72), transparent);
  opacity: .65;
  pointer-events: none;
}
footer.rw-footer .rw-footer-inner {
  padding: 28px 0 32px !important;
}
footer.rw-footer .rw-footer-topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}
footer.rw-footer .rw-footer-brand {
  min-width: 0;
  display: inline-flex !important;
  align-items: center !important;
  gap: 13px !important;
  margin: 0 !important;
  color: inherit !important;
  text-decoration: none !important;
}
footer.rw-footer .rw-footer-logo {
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(136,170,214,.28) !important;
  background: linear-gradient(180deg, rgba(9,24,45,.98), rgba(3,10,20,.98)) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.42), 0 0 26px rgba(29,127,255,.10) !important;
  color: #fff !important;
  font-size: 21px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.09em !important;
  display: grid !important;
  grid-template-columns: auto auto !important;
  place-content: center !important;
  gap: 0 !important;
}
footer.rw-footer .rw-footer-logo b,
footer.rw-footer .rw-footer-brand strong b {
  color: var(--blue) !important;
}
footer.rw-footer .rw-footer-brand strong {
  display: block !important;
  margin: 0 !important;
  color: #f2f7ff !important;
  font-size: 15px !important;
  font-weight: 950 !important;
  line-height: 1.05 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}
footer.rw-footer .rw-footer-brand strong span {
  display: inline !important;
  margin: 0 7px !important;
  color: rgba(255,255,255,.42) !important;
}
footer.rw-footer .rw-footer-brand em {
  display: block !important;
  margin-top: 6px !important;
  color: #dbe7f7 !important;
  font-style: normal !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .015em !important;
}
footer.rw-footer .rw-footer-brand small {
  display: block !important;
  max-width: 620px !important;
  margin-top: 5px !important;
  color: #7d92ad !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
footer.rw-footer .rw-footer-cta {
  display: grid;
  gap: 5px;
  justify-items: end;
  padding: 11px 13px;
  border: 1px solid rgba(88,168,255,.25);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(29,127,255,.10), rgba(255,255,255,.018));
}
footer.rw-footer .rw-footer-cta span {
  color: #7d92ad;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .10em;
  line-height: 1;
  text-transform: uppercase;
}
footer.rw-footer .rw-footer-cta a {
  color: #dbe7f7 !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  text-decoration: none !important;
}
footer.rw-footer .rw-footer-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
}
footer.rw-footer .rw-footer-grid > nav,
footer.rw-footer .rw-footer-grid > div {
  min-width: 0;
  padding: 14px 14px 13px !important;
  border: 1px solid rgba(120,150,190,.17) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.018) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
}
footer.rw-footer h4 {
  margin: 0 0 10px !important;
  color: #dbe7f7 !important;
  font-size: 10px !important;
  font-weight: 950 !important;
  letter-spacing: .13em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
footer.rw-footer .rw-footer-grid a,
footer.rw-footer .rw-footer-grid span {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  padding: 2px 0 !important;
  color: #7d92ad !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.75 !important;
  letter-spacing: .035em !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
footer.rw-footer .rw-footer-grid a:hover,
footer.rw-footer .rw-footer-grid a:focus {
  color: #f2f7ff !important;
}
footer.rw-footer .rw-footer-bottom {
  display: grid !important;
  grid-template-columns: 1.05fr 1.55fr 1.35fr auto !important;
  align-items: start !important;
  gap: 14px !important;
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  color: #657b96 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
}
footer.rw-footer .rw-footer-bottom span {
  min-width: 0;
}
footer.rw-footer .rw-footer-privacy {
  white-space: nowrap;
}
footer.rw-footer .rw-footer-privacy b {
  display: inline !important;
  margin-right: 8px !important;
  color: #9fb2ca !important;
}
footer.rw-footer .rw-footer-privacy a {
  display: inline !important;
  color: #9fcaff !important;
  font-size: inherit !important;
  font-weight: 900 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  text-decoration: none !important;
}
@media (max-width: 1020px) {
  footer.rw-footer .rw-footer-topline {
    grid-template-columns: 1fr;
    align-items: start;
  }
  footer.rw-footer .rw-footer-cta {
    justify-items: start;
    width: 100%;
  }
  footer.rw-footer .rw-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  footer.rw-footer .rw-footer-bottom {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 760px) {
  footer.rw-footer .rw-footer-inner {
    padding: 22px 0 28px !important;
  }
  footer.rw-footer .rw-footer-brand {
    align-items: flex-start !important;
  }
  footer.rw-footer .rw-footer-logo {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
  }
  footer.rw-footer .rw-footer-brand strong {
    font-size: 14px !important;
  }
  footer.rw-footer .rw-footer-brand em,
  footer.rw-footer .rw-footer-brand small,
  footer.rw-footer .rw-footer-cta a {
    font-size: 12px !important;
  }
  footer.rw-footer .rw-footer-grid {
    grid-template-columns: 1fr !important;
  }
  footer.rw-footer .rw-footer-bottom {
    grid-template-columns: 1fr !important;
  }
  footer.rw-footer .rw-footer-privacy {
    white-space: normal;
  }
}
/* === END RW FOOTER REDESIGN 2026-05-18 ============================ */

/* === RW FOOTER EMAIL SIGNUP UPDATE 2026-05-18 ===================== */
footer.rw-footer .rw-footer-action-stack {
  display: grid !important;
  gap: 10px !important;
  justify-items: stretch !important;
  width: min(390px, 100%) !important;
}
footer.rw-footer .rw-footer-signup {
  display: grid !important;
  gap: 8px !important;
  padding: 12px 13px !important;
  border: 1px solid rgba(136,170,214,.22) !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.012)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
}
footer.rw-footer .rw-footer-signup label {
  color: #dbe7f7 !important;
  font-size: 10px !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
footer.rw-footer .rw-footer-signup-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
}
footer.rw-footer .rw-footer-signup input {
  min-width: 0 !important;
  height: 38px !important;
  border: 1px solid rgba(120,150,190,.24) !important;
  border-radius: 9px !important;
  background: rgba(2,8,19,.72) !important;
  color: #f2f7ff !important;
  padding: 0 11px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  outline: none !important;
}
footer.rw-footer .rw-footer-signup input::placeholder {
  color: rgba(125,146,173,.72) !important;
}
footer.rw-footer .rw-footer-signup input:focus {
  border-color: rgba(88,168,255,.72) !important;
  box-shadow: 0 0 0 3px rgba(29,127,255,.12) !important;
}
footer.rw-footer .rw-footer-signup button {
  height: 38px !important;
  border: 1px solid rgba(88,168,255,.58) !important;
  border-radius: 9px !important;
  background: linear-gradient(180deg, rgba(29,127,255,.92), rgba(14,91,205,.92)) !important;
  color: #fff !important;
  padding: 0 13px !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}
footer.rw-footer .rw-footer-signup button:hover,
footer.rw-footer .rw-footer-signup button:focus {
  filter: brightness(1.08) !important;
}
footer.rw-footer .rw-footer-signup small {
  color: #7d92ad !important;
  font-size: 10px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  letter-spacing: .015em !important;
  text-transform: none !important;
}
@media (max-width: 1020px) {
  footer.rw-footer .rw-footer-action-stack {
    width: 100% !important;
    justify-items: stretch !important;
  }
}
@media (max-width: 520px) {
  footer.rw-footer .rw-footer-signup-row {
    grid-template-columns: 1fr !important;
  }
  footer.rw-footer .rw-footer-signup button {
    width: 100% !important;
  }
}
/* === END RW FOOTER EMAIL SIGNUP UPDATE 2026-05-18 ================ */


/* === RW FOOTER HEADER-MATCH UPDATE 2026-05-18 =====================
   Footer-only update. Mirrors the locked header brand rhythm while keeping
   the footer non-sticky, compact, and signup-ready. */
footer.rw-footer.rw-footer-header-match {
  margin-top: 34px !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  border-top: 1px solid rgba(120,150,190,.28) !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(29,127,255,.18), transparent 34%),
    linear-gradient(180deg, #050e1d 0%, #020813 74%, #01050c 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    0 -14px 36px rgba(0,0,0,.42) !important;
}
footer.rw-footer.rw-footer-header-match:before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(88,168,255,.62), transparent) !important;
  opacity: .75 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-inner {
  padding: 0 0 26px !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-headerbar {
  min-height: 62px !important;
  display: grid !important;
  grid-template-columns: minmax(300px, auto) minmax(0, 1fr) minmax(190px, auto) !important;
  gap: 22px !important;
  align-items: center !important;
  border-bottom: 1px solid rgba(120,150,190,.20) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-header-brand {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 11px !important;
  color: inherit !important;
  text-decoration: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-rw {
  display: inline-flex !important;
  align-items: center !important;
  color: #f2f7ff !important;
  font-size: 30px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  font-style: italic !important;
  letter-spacing: -.07em !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-rw .w,
footer.rw-footer.rw-footer-header-match .rw-footer-word b {
  color: var(--blue) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-sep {
  width: 1px !important;
  height: 28px !important;
  margin: 0 2px 0 4px !important;
  background: rgba(136,170,214,.34) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-word {
  color: #f2f7ff !important;
  font-size: 30px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  font-style: italic !important;
  letter-spacing: -.05em !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mini-nav {
  height: 62px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 26px !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mini-nav a {
  height: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  color: #dbe7f7 !important;
  border-bottom: 2px solid transparent !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  letter-spacing: .045em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mini-nav a:hover {
  color: #ffffff !important;
  border-bottom-color: var(--blue) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-status {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 9px !important;
  color: #dbe7f7 !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .045em !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: var(--green) !important;
  box-shadow: 0 0 0 4px rgba(62,230,166,.10), 0 0 18px rgba(62,230,166,.25) !important;
  flex: 0 0 auto !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup-band {
  display: grid !important;
  grid-template-columns: minmax(250px, .95fr) minmax(360px, 1.1fr) minmax(220px, auto) !important;
  gap: 14px !important;
  align-items: center !important;
  margin: 16px 0 18px !important;
  padding: 13px 14px !important;
  border: 1px solid rgba(136,170,214,.20) !important;
  border-radius: 12px !important;
  background: linear-gradient(90deg, rgba(29,127,255,.095), rgba(255,255,255,.018)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup-copy span,
footer.rw-footer.rw-footer-header-match .rw-footer-contact span {
  display: block !important;
  color: #7d92ad !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .12em !important;
  line-height: 1.2 !important;
  margin: 0 0 5px !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup-copy strong {
  display: block !important;
  color: #f2f7ff !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup input {
  width: 100% !important;
  min-height: 38px !important;
  border: 1px solid rgba(136,170,214,.24) !important;
  border-radius: 8px !important;
  background: rgba(2,8,19,.78) !important;
  color: #f2f7ff !important;
  padding: 0 12px !important;
  outline: none !important;
  font: inherit !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup input::placeholder {
  color: #6e829e !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup input:focus {
  border-color: rgba(88,168,255,.68) !important;
  box-shadow: 0 0 0 3px rgba(29,127,255,.14) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup button {
  min-height: 38px !important;
  border: 1px solid rgba(88,168,255,.48) !important;
  border-radius: 8px !important;
  background: rgba(29,127,255,.18) !important;
  color: #dbe7f7 !important;
  padding: 0 14px !important;
  font: inherit !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-signup button:hover {
  background: rgba(29,127,255,.28) !important;
  border-color: rgba(88,168,255,.72) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-contact {
  text-align: right !important;
  min-width: 0 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-contact a {
  display: block !important;
  color: #dbe7f7 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
  padding: 0 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-grid nav {
  min-width: 0 !important;
  padding: 13px 14px !important;
  border: 1px solid rgba(120,150,190,.16) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.016) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.024) !important;
}
footer.rw-footer.rw-footer-header-match h4 {
  margin: 0 0 8px !important;
  color: #dbe7f7 !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-grid a {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  color: #7d92ad !important;
  text-decoration: none !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  line-height: 1.9 !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-grid a:hover {
  color: #f2f7ff !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-bottom {
  display: grid !important;
  grid-template-columns: .75fr 1.25fr 1.1fr auto !important;
  align-items: start !important;
  gap: 14px !important;
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  color: #657b96 !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-privacy {
  text-align: right !important;
  min-width: max-content !important;
  white-space: nowrap !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-privacy b {
  color: #9fb2ca !important;
  margin-right: 6px !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-privacy a {
  display: inline !important;
  color: #9fcaff !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 950 !important;
  letter-spacing: inherit !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
@media (max-width: 1240px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-headerbar {
    grid-template-columns: 1fr auto !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-mini-nav {
    grid-column: 1 / -1 !important;
    justify-content: flex-start !important;
    height: auto !important;
    padding-bottom: 13px !important;
    overflow-x: auto !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-signup-band {
    grid-template-columns: 1fr 1fr !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-contact {
    grid-column: 1 / -1 !important;
    text-align: left !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-bottom {
    grid-template-columns: 1fr 1fr !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-privacy {
    text-align: left !important;
    min-width: 0 !important;
    white-space: normal !important;
  }
}
@media (max-width: 820px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-inner {
    padding-bottom: 26px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-headerbar {
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 14px 0 !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-rw,
  footer.rw-footer.rw-footer-header-match .rw-footer-word {
    font-size: 26px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-status {
    justify-content: flex-start !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-mini-nav {
    gap: 18px !important;
    padding-bottom: 0 !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-signup-band {
    grid-template-columns: 1fr !important;
    margin-top: 14px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-bottom {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 560px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-header-brand {
    gap: 9px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-rw,
  footer.rw-footer.rw-footer-header-match .rw-footer-word {
    font-size: 23px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-sep {
    height: 24px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-signup-row {
    grid-template-columns: 1fr !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-signup button {
    width: 100% !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid {
    grid-template-columns: 1fr !important;
  }
}
/* === END RW FOOTER HEADER-MATCH UPDATE 2026-05-18 ================= */


/* === RW FOOTER MAILERLITE LIVE EMBED UPDATE 2026-05-18 ============
   Footer-only. Replaces fake mailto signup with live MailerLite embed.
   Keeps the RinkWire footer shell and controls likely MailerLite classes.
   If MailerLite injects an iframe, this keeps the frame inside the footer
   without touching any site-wide form styles. */
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #f2f7ff !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-embedded,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedContainer,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedWrapper,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedBody,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-formContent,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite form {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedSubmit,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-fieldRow,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-field-group {
  margin: 0 !important;
  padding: 0 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite form,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-formContent {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite h4,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedPermissions,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedContent,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-interestGroupsRow,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-checkboxRow,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedSubmitLoad {
  display: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="email"],
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input.form-control {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 38px !important;
  height: 38px !important;
  border: 1px solid rgba(136,170,214,.24) !important;
  border-radius: 8px !important;
  background: rgba(2,8,19,.78) !important;
  color: #f2f7ff !important;
  padding: 0 12px !important;
  outline: none !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 38px !important;
  box-shadow: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input::placeholder {
  color: #6e829e !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="email"]:focus,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input.form-control:focus {
  border-color: rgba(88,168,255,.68) !important;
  box-shadow: 0 0 0 3px rgba(29,127,255,.14) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite button,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="submit"],
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .primary {
  min-height: 38px !important;
  height: 38px !important;
  border: 1px solid rgba(88,168,255,.48) !important;
  border-radius: 8px !important;
  background: rgba(29,127,255,.18) !important;
  color: #dbe7f7 !important;
  padding: 0 14px !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite button:hover,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite button:focus,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="submit"]:hover,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="submit"]:focus {
  background: rgba(29,127,255,.28) !important;
  border-color: rgba(88,168,255,.72) !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite iframe {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 48px !important;
  border: 0 !important;
  background: transparent !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite noscript a {
  display: inline-flex !important;
  min-height: 38px !important;
  align-items: center !important;
  color: #dbe7f7 !important;
  text-decoration: none !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}
@media (max-width: 520px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite form,
  footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-formContent {
    grid-template-columns: 1fr !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite button,
  footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="submit"],
  footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .primary {
    width: 100% !important;
  }
}
/* === END RW FOOTER MAILERLITE LIVE EMBED UPDATE 2026-05-18 ======== */

/* === RinkWire email-capture pop-up — quiet utility aesthetic ===
   Site-wide modal triggered by js/rw-email-popup.js. Reuses the
   existing MailerLite Universal embed (form 6PWyfA). Dark card,
   outlined accent, small caps eyebrow — same tone as the footer
   signup band, not a premium-fancy hero. Mobile collapses to a
   bottom sheet so it never blocks the address bar. */
.rw-email-popup-locked{overflow:hidden}
.rw-email-popup{
  position:fixed; inset:0; z-index:2147483646;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .22s ease;
}
.rw-email-popup.open{opacity:1; pointer-events:auto}
.rw-email-popup-backdrop{
  position:absolute; inset:0;
  background:rgba(2,8,19,.78);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.rw-email-popup-card{
  position:relative; z-index:1;
  width:min(440px, calc(100vw - 32px));
  padding:26px 22px 20px;
  border:1px solid rgba(136,170,214,.22);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(11,24,42,.98), rgba(4,12,24,.98));
  box-shadow:0 24px 60px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.04);
  color:#dde6f4; text-align:left;
  transform:translateY(8px); transition:transform .22s ease;
}
.rw-email-popup.open .rw-email-popup-card{transform:translateY(0)}
.rw-email-popup-close{
  position:absolute; top:8px; right:10px;
  width:32px; height:32px; padding:0;
  background:transparent; border:0;
  color:#88aad6; font-size:22px; line-height:1; cursor:pointer;
  border-radius:6px;
  transition:color .15s ease, background .15s ease;
}
.rw-email-popup-close:hover{color:#f2f7ff; background:rgba(255,255,255,.06)}
.rw-email-popup-eyebrow{
  display:block; margin-bottom:8px;
  color:#88aad6; font-size:10px; font-weight:850;
  text-transform:uppercase; letter-spacing:.14em;
}
.rw-email-popup-title{
  display:block; margin:0 0 6px;
  color:#f2f7ff; font-size:15px; font-weight:800; line-height:1.4;
  letter-spacing:-.005em;
}
.rw-email-popup-sub{
  display:block; margin:0 0 14px;
  color:#8aa0bf; font-size:12px; line-height:1.45; font-weight:500;
}
.rw-email-popup-form{margin-top:6px}
.rw-email-popup-form .ml-embedded{margin:0}
@media (max-width:560px){
  .rw-email-popup{align-items:flex-end}
  .rw-email-popup-card{
    width:100%;
    border-radius:16px 16px 0 0;
    padding:22px 18px 18px;
  }
}
.rw-email-popup-loading{
  display:block; margin:6px 0 0;
  color:#7d92ad; font-size:11px; font-weight:600; line-height:1.45;
  text-transform:uppercase; letter-spacing:.06em;
}
.rw-email-popup-loading a{
  color:#9fc8ff; text-decoration:none; font-weight:850;
  border-bottom:1px solid rgba(159,200,255,.35);
}
.rw-email-popup-loading a:hover{color:#58a8ff; border-bottom-color:#58a8ff}

/* === RinkWire Stat Leaders — season split segment (Regular / Playoffs /
   Combined). Injected by RWLeaderboard.ensureSeasonSegment(). Quiet
   utility tone — flat row, outlined blue active state, matches the
   existing .rw-lb-tabs row above it. */
.rw-lb-season-seg{
  display:flex; flex-wrap:wrap; gap:6px;
  padding:6px 18px 0;
  margin:0;
}
.rw-lb-season-tab{
  appearance:none; -webkit-appearance:none;
  background:transparent;
  border:1px solid rgba(136,170,214,.22);
  border-radius:999px;
  padding:6px 13px;
  color:#9fb2c8;
  font-size:11px; font-weight:850;
  text-transform:uppercase; letter-spacing:.06em; line-height:1;
  cursor:pointer;
  transition:color .15s ease, background .15s ease, border-color .15s ease;
}
.rw-lb-season-tab:hover{color:#dbe7f7; border-color:rgba(136,170,214,.45)}
.rw-lb-season-tab.active{
  color:#cfe3ff;
  background:rgba(22,119,255,.10);
  border-color:rgba(88,168,255,.55);
}
@media (max-width:560px){
  .rw-lb-season-seg{padding:6px 12px 0}
  .rw-lb-season-tab{padding:5px 10px; font-size:10px}
}

/* === RinkWire email pop-up — MailerLite form skin ===
   Overrides the cloned MailerLite embed's default white-on-light look so the
   email field + Join Updates button match the dark RinkWire card around them.
   All selectors are scoped under .rw-email-popup so the same MailerLite form
   in the footer stays untouched. Targets the MailerLite class names used by
   the Universal embed (v1 — .ml-form-embedBody / .ml-form-embedSubmit etc.). */
.rw-email-popup .ml-form-embedBody,
.rw-email-popup .ml-form-embedWrapper,
.rw-email-popup .ml-form-embedContainer,
.rw-email-popup .ml-form-align-center,
.rw-email-popup .ml-form-embedContent,
.rw-email-popup .ml-form-formContent,
.rw-email-popup .ml-block-form,
.rw-email-popup .ml-block-success{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  width:100% !important;
  max-width:none !important;
  color:#dde6f4 !important;
  font-family:inherit !important;
}
.rw-email-popup form{margin:0 !important; padding:0 !important}
.rw-email-popup .ml-form-fieldRow,
.rw-email-popup .ml-form-horizontalRow,
.rw-email-popup .ml-input-horizontal{
  margin:0 0 10px !important;
  padding:0 !important;
}
.rw-email-popup input[type="email"],
.rw-email-popup input[type="text"],
.rw-email-popup .ml-form-formContent input{
  appearance:none !important; -webkit-appearance:none !important;
  width:100% !important;
  height:44px !important;
  padding:0 14px !important;
  background:rgba(8,20,34,.78) !important;
  border:1px solid rgba(136,170,214,.32) !important;
  border-radius:8px !important;
  color:#f2f7ff !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:.005em !important;
  line-height:1.2 !important;
  font-family:inherit !important;
  outline:none !important;
  box-shadow:none !important;
  transition:border-color .15s ease, background .15s ease;
}
.rw-email-popup input[type="email"]::placeholder,
.rw-email-popup input[type="text"]::placeholder{
  color:#7d92ad !important;
  opacity:1 !important;
  font-weight:500 !important;
}
.rw-email-popup input[type="email"]:focus,
.rw-email-popup input[type="text"]:focus,
.rw-email-popup .ml-form-formContent input:focus{
  border-color:rgba(88,168,255,.85) !important;
  background:rgba(8,20,34,.95) !important;
}
.rw-email-popup .ml-form-embedSubmit,
.rw-email-popup .ml-form-embedSubmitContent{
  margin:6px 0 0 !important;
  padding:0 !important;
  position:relative !important;
}
.rw-email-popup .ml-form-embedSubmit button,
.rw-email-popup button[type="submit"]{
  appearance:none !important; -webkit-appearance:none !important;
  width:100% !important;
  height:44px !important;
  padding:0 16px !important;
  background:#1d7fff !important;
  border:1px solid #1d7fff !important;
  border-radius:8px !important;
  color:#fff !important;
  font-size:13px !important;
  font-weight:900 !important;
  letter-spacing:.05em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  font-family:inherit !important;
  cursor:pointer !important;
  box-shadow:0 6px 18px rgba(29,127,255,.28) !important;
  transition:background .15s ease, border-color .15s ease, transform .12s ease;
}
.rw-email-popup .ml-form-embedSubmit button:hover,
.rw-email-popup button[type="submit"]:hover{
  background:#3c93ff !important;
  border-color:#3c93ff !important;
}
.rw-email-popup .ml-form-embedSubmit button:active,
.rw-email-popup button[type="submit"]:active{ transform:translateY(1px) }
.rw-email-popup .ml-form-embedSubmit button.loading{
  background:rgba(29,127,255,.45) !important;
  border-color:rgba(29,127,255,.45) !important;
  cursor:wait !important;
}
.rw-email-popup .ml-form-embedSubmitLoad,
.rw-email-popup .ml-form-embedSubmitLoad div{
  filter:invert(1) brightness(2) !important;
}
.rw-email-popup .ml-form-embedSubmitLoad{ z-index:2 !important }
.rw-email-popup .ml-form-checkboxRow,
.rw-email-popup .ml-form-recaptcha,
.rw-email-popup .ml-form-interestGroupsRow{
  color:#88aad6 !important;
  font-size:11px !important;
  font-weight:500 !important;
}
.rw-email-popup .ml-form-checkboxRow label,
.rw-email-popup .ml-form-checkboxRow a{ color:#9fc8ff !important }
.rw-email-popup .ml-form-embedPermissions,
.rw-email-popup .ml-form-embedPermissions p{
  color:#7d92ad !important;
  font-size:11px !important;
  line-height:1.4 !important;
  margin:8px 0 0 !important;
  font-family:inherit !important;
}
.rw-email-popup .ml-form-embedPermissions a{
  color:#9fc8ff !important;
  border-bottom:1px solid rgba(159,200,255,.35) !important;
}
.rw-email-popup .ml-error-message,
.rw-email-popup .ml-form-fieldRow.ml-error input,
.rw-email-popup .ml-block-form .ml-form-fieldRow.ml-error input{
  color:#ff9090 !important;
  border-color:rgba(255,118,118,.55) !important;
}
.rw-email-popup .ml-error-message{
  font-size:11px !important;
  font-weight:700 !important;
  margin:4px 0 0 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
.rw-email-popup .ml-form-successBody,
.rw-email-popup .ml-form-embedSuccessBody,
.rw-email-popup .ml-form-successContent,
.rw-email-popup .ml-form-embedSuccessContent{
  text-align:left !important;
  color:#dde6f4 !important;
  font-size:13px !important;
  line-height:1.55 !important;
  background:transparent !important;
}
.rw-email-popup .ml-form-successBody h4,
.rw-email-popup .ml-form-embedSuccessBody h4{
  color:#9fffcf !important;
  font-size:14px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  margin:0 0 6px !important;
}
.rw-email-popup .ml-form-successBody p,
.rw-email-popup .ml-form-embedSuccessBody p{ margin:0 !important }
.rw-email-popup .ml-mobileForm-padding{ padding:0 !important }
/* Hide MailerLite branding footer inside the popup card — the modal already
   shows the source ("RinkWire Updates" eyebrow) so the brand badge is noise. */
.rw-email-popup .ml-form-embedHeader + .ml-form-embedBranding,
.rw-email-popup .ml-form-embedBranding,
.rw-email-popup .ml-form-poweredBy{ display:none !important }

/* === RinkWire email pop-up — success state ===
   Replaces the form area after a successful subscribe. Renders our own
   confirmation block so we don't depend on MailerLite's success markup
   surviving the duplicate-text strip + dark-theme override. Tone: same
   eyebrow as the form, green checkmark, short confirmation line, auto-
   dismiss after 5s (handled in rw-email-popup.js). */
.rw-email-popup-success{
  display:flex; flex-direction:column; align-items:flex-start;
  gap:8px;
  padding:2px 0 0;
  text-align:left;
}
.rw-email-popup-success-eyebrow{
  display:block;
  color:#88aad6;
  font-size:10px; font-weight:850;
  text-transform:uppercase; letter-spacing:.14em; line-height:1;
}
.rw-email-popup-success-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:54px; height:54px;
  margin:6px 0 4px;
  border-radius:50%;
  background:rgba(45,200,135,.12);
  border:1px solid rgba(45,200,135,.42);
  color:#9fffcf;
}
.rw-email-popup-success-title{
  display:block;
  color:#f2f7ff;
  font-size:18px; font-weight:900; line-height:1.2;
  letter-spacing:-.005em;
  margin:0;
}
.rw-email-popup-success-sub{
  display:block;
  color:#9fb2c8;
  font-size:13px; font-weight:500; line-height:1.5;
  margin:0;
}

/* === RinkWire footer email signup — post-submit text color ===
   After the user submits the footer MailerLite form, MailerLite swaps in
   its success block. The footer band has a dark blue background, and
   MailerLite's default success body text is dark — illegible. Force
   white-on-dark for every text node inside the footer success state so
   the "Thanks for subscribing" confirmation is readable. */
.rw-footer-mailerlite .ml-form-successBody,
.rw-footer-mailerlite .ml-form-embedSuccessBody,
.rw-footer-mailerlite .ml-form-successContent,
.rw-footer-mailerlite .ml-form-embedSuccessContent,
.rw-footer-mailerlite .ml-form-successBody *,
.rw-footer-mailerlite .ml-form-embedSuccessBody *,
.rw-footer-mailerlite .ml-form-successContent *,
.rw-footer-mailerlite .ml-form-embedSuccessContent *,
.rw-footer-signup .ml-form-successBody,
.rw-footer-signup .ml-form-embedSuccessBody,
.rw-footer-signup .ml-form-successBody *,
.rw-footer-signup .ml-form-embedSuccessBody *{
  color:#ffffff !important;
  background:transparent !important;
}
.rw-footer-mailerlite .ml-form-successBody h4,
.rw-footer-mailerlite .ml-form-embedSuccessBody h4,
.rw-footer-signup .ml-form-successBody h4,
.rw-footer-signup .ml-form-embedSuccessBody h4{
  color:#ffffff !important;
  font-weight:900 !important;
}
.rw-footer-mailerlite .ml-form-successBody a,
.rw-footer-mailerlite .ml-form-embedSuccessBody a,
.rw-footer-signup .ml-form-successBody a,
.rw-footer-signup .ml-form-embedSuccessBody a{
  color:#9fc8ff !important;
  border-bottom:1px solid rgba(159,200,255,.35) !important;
}

/* === RinkWire cookie consent — site-wide bottom strip ===
   Fired by js/rw-cookie-consent.js on first visit, dismissed for 365
   days once the visitor clicks "Got it". Quiet utility tone — thin
   bar pinned to the bottom of the viewport, dark card, outlined blue
   accept pill. Doesn't dim the page or block scrolling. Sits below
   the email pop-up's z-index so the popup can still open over it. */
.rw-cookie-consent{
  position:fixed; left:0; right:0; bottom:0;
  z-index:2147483640;
  padding:10px 14px 12px;
  background:linear-gradient(180deg, rgba(11,24,42,.96), rgba(4,12,24,.98));
  border-top:1px solid rgba(136,170,214,.22);
  box-shadow:0 -8px 32px rgba(0,0,0,.42);
  color:#dde6f4;
  transform:translateY(100%);
  transition:transform .26s ease;
}
.rw-cookie-consent.open{transform:translateY(0)}
.rw-cookie-consent.rw-cookie-consent-leaving{transform:translateY(100%)}
.rw-cookie-consent-inner{
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:18px;
}
.rw-cookie-consent-copy{
  flex:1 1 auto; min-width:0;
  display:flex; flex-direction:column; gap:2px;
}
.rw-cookie-consent-copy strong{
  display:block;
  color:#88aad6;
  font-size:10px; font-weight:850;
  text-transform:uppercase; letter-spacing:.14em; line-height:1;
}
.rw-cookie-consent-copy span{
  display:block;
  color:#c4d0e3;
  font-size:13px; font-weight:500; line-height:1.45;
}
.rw-cookie-consent-copy span b{ color:#f2f7ff; font-weight:800 }
.rw-cookie-consent-copy a{
  color:#9fc8ff;
  text-decoration:none;
  border-bottom:1px solid rgba(159,200,255,.35);
}
.rw-cookie-consent-copy a:hover{ color:#58a8ff; border-bottom-color:#58a8ff }
.rw-cookie-consent-accept{
  appearance:none; -webkit-appearance:none;
  flex:0 0 auto;
  padding:10px 18px;
  background:#1d7fff;
  border:1px solid #1d7fff;
  border-radius:8px;
  color:#fff;
  font-size:12px; font-weight:900;
  text-transform:uppercase; letter-spacing:.06em; line-height:1;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(29,127,255,.25);
  transition:background .15s ease, border-color .15s ease;
}
.rw-cookie-consent-accept:hover{ background:#3c93ff; border-color:#3c93ff }
@media (max-width:640px){
  .rw-cookie-consent{padding:10px 12px 12px}
  .rw-cookie-consent-inner{flex-direction:column; align-items:stretch; gap:10px}
  .rw-cookie-consent-accept{align-self:flex-end; padding:9px 16px}
}

/* === RinkWire display typeface (Bebas Neue) =================================
   Surgical typography uplift — scoreboard / editorial feel.
   Loaded via @import at top of this file.
   Targets: wordmark (header + footer), H1/H2, scoreboard numerals
   (ticker, game cards, Game Center, team profile schedule, 404 board)
   and the LIVE/FINAL status pill on the ticker.
   Body copy, table cells, chips, buttons, and form inputs are NOT touched.
   ============================================================================ */
.brand-word, .brand-word b,
.rw-footer-word, .rw-footer-word b,
.rw-brand-word, .rw-brand-word b,
h1, h2,
.rw-ticker-score, .rw-ticker-status,
.game-score, .gc-score, .gc-scoreline,
.tp-score, .td-score, .upset-score,
.feature-score, .rwpi-score, .match-intel-score,
.rw-sb-num, .rw-sb-abbr {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}
.brand-word, .rw-footer-word, .rw-brand-word { letter-spacing: 0.03em; }
.brand-word b, .rw-footer-word b, .rw-brand-word b { font-weight: 400; }
.rw-ticker-score, .game-score, .gc-score, .gc-scoreline,
.tp-score, .td-score, .rw-sb-num { letter-spacing: 0.01em; }
.rw-ticker-status { letter-spacing: 0.06em; }


/* === Move A: Standings table polish (2026-05-18) ============================
   Scope: the standings panel on standings.html (.rw-standings-page).
   Effect: tabular-nums on numeric columns, subtle row alternation, slight
   highlight for the playoff zone (top 4 rows by default), tighter hairline
   separators. Does NOT touch any other table on the site.
   ============================================================================ */
.rw-standings-page table { font-variant-numeric: tabular-nums; }
.rw-standings-page table td.right,
.rw-standings-page table th.right {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
.rw-standings-page table tbody tr {
  background: transparent;
  transition: background .12s ease;
}
.rw-standings-page table tbody tr:nth-child(even) {
  background: rgba(255,255,255,.018);
}
.rw-standings-page table tbody tr:hover {
  background: rgba(20,115,245,.05);
}
.rw-standings-page table tbody tr:nth-child(-n+4) td:first-child {
  box-shadow: inset 2px 0 0 rgba(20,115,245,.55);
}
.rw-standings-page table tbody tr:nth-child(4) {
  border-bottom: 1px solid rgba(20,115,245,.22);
}
.rw-standings-page table th {
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
  font-weight: 700;
  color: #9fb3cf;
}
.rw-standings-page table td {
  border-color: rgba(255,255,255,.06) !important;
}


/* === Move E: Editorial mode (2026-05-18) =====================================
   Opt-in class .rw-editorial-mode applied to <main> on About + How It Works.
   Strips card chrome from .panel / .grid-* layouts and restyles them as
   long-form editorial prose with narrow measure and breathing room.
   Hides the .scorebar score-grid on About so the title reads as editorial H1.
   Does NOT affect any other page — opt-in by class only.
   ============================================================================= */
.rw-editorial-mode { max-width: 760px; margin: 0 auto; padding: 0 24px; }
.rw-editorial-mode .grid-top,
.rw-editorial-mode .grid-bottom,
.rw-editorial-mode .grid { display: block; margin: 0; }
.rw-editorial-mode .panel,
.rw-editorial-mode .panel.featured {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 0 44px !important;
  overflow: visible !important;
}
.rw-editorial-mode .panel:before,
.rw-editorial-mode .panel:after,
.rw-editorial-mode .panel.featured:before,
.rw-editorial-mode .panel.featured:after { display: none !important; }
.rw-editorial-mode .panel-head {
  border-bottom: 0;
  padding: 0 0 6px;
  background: none !important;
  height: auto;
  display: block;
  margin-bottom: 8px;
}
.rw-editorial-mode .panel-head h2 {
  font-size: 24px;
  letter-spacing: -0.01em;
  text-transform: none;
  font-weight: 700;
  color: #f2f7ff;
  margin: 0;
}
.rw-editorial-mode .panel-head .period { display: none; }
.rw-editorial-mode .panel-head a {
  font-size: 13px;
  color: #58a8ff;
  text-decoration: none;
  display: inline-block;
  margin-top: 4px;
}
.rw-editorial-mode .panel-body {
  padding: 0;
  font-size: 16.5px;
  line-height: 1.66;
  color: #c8d6e7;
}
.rw-editorial-mode .panel-body p { margin: 0 0 18px; }
.rw-editorial-mode .panel-body b,
.rw-editorial-mode .panel-body strong { color: #f2f7ff; font-weight: 700; }
.rw-editorial-mode .panel-body ul,
.rw-editorial-mode .panel-body ol { padding-left: 20px; margin: 0 0 18px; }
.rw-editorial-mode .panel-body li { margin: 0 0 8px; }
.rw-editorial-mode .panel-body a { color: #58a8ff; text-decoration: none; border-bottom: 1px solid rgba(88,168,255,.35); }
.rw-editorial-mode .panel-body a:hover { border-bottom-color: #58a8ff; }

/* About's scorebar — restyle as editorial H1 instead of fake scoreboard. */
.rw-editorial-mode .scorebar {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 32px 0 8px !important;
}
.rw-editorial-mode .scorebar .scorebar-inner {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.rw-editorial-mode .scorebar .score-grid { display: none !important; }
.rw-editorial-mode .scorebar .live-title {
  font-size: 38px;
  line-height: 1.08;
  font-weight: 800;
  color: #f2f7ff;
  letter-spacing: -0.015em;
  text-transform: none;
  display: block;
}
.rw-editorial-mode .scorebar .live-title span {
  display: block;
  margin-top: 10px;
  font-size: 16px;
  font-weight: 400;
  color: #c8d6e7;
  letter-spacing: 0;
  text-transform: none;
}
/* HIW hero — make the H1 feel editorial. */
.rw-editorial-mode .hero {
  background: none !important;
  border: 0 !important;
  padding: 32px 0 12px !important;
  margin: 0 !important;
}
.rw-editorial-mode .hero h1 {
  font-size: 38px;
  line-height: 1.08;
  font-weight: 800;
  color: #f2f7ff;
  letter-spacing: -0.015em;
  text-transform: none;
  margin: 0;
}
.rw-editorial-mode .hero .eyebrow,
.rw-editorial-mode .hero p {
  font-size: 16px;
  color: #c8d6e7;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.55;
}
/* HIW has an .aside / .stack — let it stack inline with the prose. */
.rw-editorial-mode .stack { display: block; margin-top: 24px; }


/* === Move F: Team page header card (2026-05-18) ============================
   Sits between topbar and #teamCenter on /team.html only.
   Populated from URL params (?team=...&league=...&age=...&tier=...) via the
   inline script at the bottom of team.html — uses window.rwTeamDisplay,
   window.rwTeamLogoPath, window.rwTeamLeagueVerifiedRecord when available.
   Hides the JS-rendered title inside #tpBody to avoid the duplicate H1.
   ========================================================================== */
.rw-team-header-card {
  border-top: 1px solid rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.05);
  background: linear-gradient(180deg, rgba(255,255,255,.014), rgba(255,255,255,.003));
  padding: 22px 0;
  margin-bottom: 14px;
}
.rw-team-header-inner {
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: 0;
}
.rw-team-header-logo {
  width: 80px; height: 80px;
  border-radius: 18px;
  background: #fff;
  display: grid;
  place-items: center;
  flex: 0 0 80px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06);
}
.rw-team-header-logo img {
  width: 100%; height: 100%; object-fit: contain; padding: 9px;
  display: block;
}
.rw-team-header-logo .logo-fallback {
  font-family: 'Bebas Neue', Inter, sans-serif;
  font-size: 26px;
  letter-spacing: .03em;
  color: #0a1320;
  font-weight: 400;
}
.rw-team-header-main { min-width: 0; flex: 1; overflow: hidden; }
.rw-team-header-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #58a8ff;
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rw-team-header-name {
  margin: 0;
  font-size: 30px;
  line-height: 1.05;
  font-weight: 400;
  letter-spacing: .015em;
  color: #f2f7ff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rw-team-header-meta {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: #9fb3cf;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.rw-team-header-meta .rw-team-header-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(159,179,207,.5);
  flex: 0 0 4px;
}
/* Hide the JS-rendered duplicate title inside #tpBody when the static header
   card is present on the page. Scoped via :has so it only applies here. */
body:has(.rw-team-header-card) #tpBody .tp-title h1 { display: none; }
@media (max-width: 640px) {
  .rw-team-header-inner { gap: 14px; }
  .rw-team-header-logo { width: 56px; height: 56px; flex-basis: 56px; border-radius: 12px; }
  .rw-team-header-name { font-size: 22px; }
}


/* === Tracking fix: Bebas needs more letter-spacing at display sizes (2026-05-18)
   Original rule set letter-spacing: 0.02em sitewide. At H1/H2 + big wordmark
   sizes the condensed letters touch visually. These overrides bump tracking
   to a premium-feel value WITHOUT changing score numerals (they stay tight).
   ============================================================================ */
h1 {
  letter-spacing: 0.045em !important;
  line-height: 1.05;
  word-spacing: 0.04em;
}
h2 {
  letter-spacing: 0.04em !important;
  line-height: 1.12;
  word-spacing: 0.03em;
}
.brand-word,
.rw-footer-word,
.rw-brand-word {
  letter-spacing: 0.06em !important;
  word-spacing: 0.02em;
}
.brand-word b,
.rw-footer-word b,
.rw-brand-word b {
  letter-spacing: 0.06em !important;
}
.rw-team-header-name {
  letter-spacing: 0.04em !important;
  line-height: 1.08;
}
/* Eyebrows are Inter (not Bebas) but the all-caps small text often
   benefits from a tiny bump too — adds readability without changing weight. */
.rw-rail-eyebrow,
.rw-team-header-eyebrow,
.eyebrow {
  letter-spacing: 0.10em;
}


/* === Footer wordmark fix (2026-05-18) ========================================
   The older footer rule (lines ~7141-7170) sets the brand lockup with
   negative letter-spacing, italic, and font-weight 950. Those values were
   tuned for Inter. Now that Bebas Neue is the font-family (from the
   typography move), italic + 950 weight + negative tracking = smooshed
   garbage. Override the visual properties only, keep the size/color/layout.
   Selector chain matches the original specificity (0,3,1) and uses !important
   to ensure it wins the cascade.
   ============================================================================ */
footer.rw-footer.rw-footer-header-match .rw-footer-word,
footer.rw-footer.rw-footer-header-match .rw-footer-word b {
  letter-spacing: 0.045em !important;
  font-style: normal !important;
  font-weight: 400 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-rw {
  letter-spacing: 0.02em !important;
  font-style: normal !important;
  font-weight: 400 !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-rw .w {
  /* Inner W glyph in the lockup — same overrides for consistency */
  letter-spacing: 0.02em !important;
  font-style: normal !important;
  font-weight: 400 !important;
}


/* === Footer must match header (2026-05-18) ==================================
   Issue 1: Footer has a blue radial glow that makes the background lighter
            than the header's pure dark linear gradient.
   Issue 2: Footer wordmark is upright but header wordmark is italic — they
            should match visually.
   Fix: Override footer background to match header gradient exactly + restore
   italic on the footer wordmark so the two lockups read as the same brand.
   Selector specificity (0,3,1) matches the existing footer rules; the
   !important flags ensure these win the cascade (they come later in the file).
   ============================================================================ */

/* Footer background — exact match for header's dark gradient.
   Header rule (dominant): background: linear-gradient(180deg,#020815,#01040a) */
footer.rw-footer.rw-footer-header-match {
  background: linear-gradient(180deg, #020815, #01040a) !important;
}

/* Soften the bright blue top-line gradient that gives the footer a "lighter"
   feel. Replace with a subtle white hairline that matches the header's
   bottom border treatment. */
footer.rw-footer.rw-footer-header-match::before,
footer.rw-footer.rw-footer-header-match:before {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent) !important;
}

/* Wordmark — restore italic style to match header. Keep weight at 400 (Bebas
   only has 400; faux-bold via 950 produces a smoosh). Keep positive
   letter-spacing for readability. */
footer.rw-footer.rw-footer-header-match .rw-footer-word,
footer.rw-footer.rw-footer-header-match .rw-footer-word b,
footer.rw-footer.rw-footer-header-match .rw-footer-rw,
footer.rw-footer.rw-footer-header-match .rw-footer-rw .w {
  font-style: italic !important;
  font-weight: 950 !important;
  letter-spacing: 0.045em !important;
}
/* RW monogram is a 2-char lockup — slightly tighter than RINKWIRE wordmark */
footer.rw-footer.rw-footer-header-match .rw-footer-rw,
footer.rw-footer.rw-footer-header-match .rw-footer-rw .w {
  letter-spacing: 0.015em !important;
}


/* === Score ticker card polish (2026-05-18) ==================================
   Refines the .rw-ticker-card visual treatment that ships on 17 data pages.
   Touches: border, shadow, hover, score numerals, team name weight,
   LIVE pulse glow, bottom meta separator. All additive overrides — does NOT
   change card dimensions, font-family, or any other component.
   ============================================================================ */
.rw-ticker-card {
  border-color: rgba(7,19,35,.08) !important;
  box-shadow:
    0 1px 0 rgba(7,19,35,.04),
    0 8px 18px rgba(7,19,35,.12),
    0 2px 4px rgba(7,19,35,.06) !important;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
.rw-ticker-card:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(20,115,245,.32) !important;
  box-shadow:
    0 1px 0 rgba(7,19,35,.06),
    0 14px 28px rgba(7,19,35,.18),
    0 3px 8px rgba(7,19,35,.10),
    0 0 0 1px rgba(20,115,245,.12) inset !important;
}

/* LIVE state — pulse glow on the dot + soft text glow on the LIVE label */
.rw-ticker-card.is-live .rw-ticker-status {
  text-shadow: 0 0 14px rgba(255,90,107,.34);
}
.rw-ticker-card.is-live .rw-ticker-status:before {
  box-shadow:
    0 0 0 3px rgba(255,90,107,.12),
    0 0 10px rgba(255,90,107,.55) !important;
}
/* FINAL state — slight green dot ring (no animation) */
.rw-ticker-card.is-final .rw-ticker-status:before {
  box-shadow: 0 0 0 3px rgba(62,230,166,.10) !important;
}
/* SCHEDULED — quiet dot */
.rw-ticker-card.is-scheduled .rw-ticker-status:before {
  box-shadow: none !important;
  opacity: .55;
}

/* Score numerals — tabular nums, slightly larger, Bebas already inherited */
.rw-ticker-score {
  font-variant-numeric: tabular-nums;
  font-size: 18px !important;
  letter-spacing: 0.01em;
  font-weight: 950;
}

/* Team name — readable, less aggressive tracking */
.rw-ticker-name {
  letter-spacing: -0.005em;
  font-weight: 800;
}

/* Bottom meta line — softer hairline separator + better tracking */
.rw-ticker-bottom {
  border-top-color: rgba(7,19,35,.06) !important;
  letter-spacing: 0.1em;
}

/* Time text on top-right — slightly more confident weight */
.rw-ticker-time {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Card is clickable — give a focus ring for keyboard users */
.rw-ticker-card:focus-visible {
  outline: 2px solid rgba(20,115,245,.65);
  outline-offset: 2px;
}


/* === Panel-head polish (2026-05-18) =========================================
   Refines the universal .panel-head treatment that appears on every data
   panel sitewide. Specificity uses .panel .panel-head (0,2,1) to win the
   cascade over existing 0,1,1 rules. No !important — editorial mode
   overrides remain dominant on About + HIW where they're more specific.
   ============================================================================ */

/* H2 title — Bebas at this size benefits from more tracking */
.panel .panel-head h2 {
  letter-spacing: 0.07em;
  font-variant-numeric: tabular-nums;
}

/* "Period" subtitle chip on the right — give it a quiet pill background
   for hierarchy. Currently just text with no visual containment. */
.panel .panel-head .period {
  padding: 3px 8px;
  border-radius: 4px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(120,150,190,.14);
  color: #9fb3cf;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.4;
  white-space: nowrap;
}

/* "View All" / "Open X" right-side link — arrow indicator + subtle hover.
   Uses margin-left on the arrow (not flex gap) so we don't disturb
   display values set elsewhere. */
.panel .panel-head a {
  transition: color .15s ease;
}
.panel .panel-head a::after {
  content: " ›";
  margin-left: 2px;
  font-weight: 700;
  display: inline-block;
  transition: transform .18s ease;
}
.panel .panel-head a:hover {
  color: #7fb6ff;
}
.panel .panel-head a:hover::after {
  transform: translateX(2px);
}

/* Editorial mode — kill the forward arrow on links inside .panel-head, since
   About has a "Back to Home" link there and the › is the wrong direction. */
.rw-editorial-mode .panel-head a::after {
  content: none;
}
.rw-editorial-mode .panel-head .period {
  display: none; /* already hidden by editorial-mode, reasserting after my new rule */
}


/* === Filter chip polish (2026-05-18) ========================================
   Refines the .seg / .seg button / .seg button.active treatment used on
   every data page (home, scores, standings, rankings, teams, playoffs, the
   8 league hubs). Higher specificity (.filters .seg) wins over base 0,1,0
   rules without !important. Editorial mode untouched (it has no filters).
   ============================================================================ */
.filters .seg {
  border-color: rgba(255,255,255,.08);
  background: rgba(255,255,255,.018);
  padding: 3px;
}
.filters .seg button {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  transition: background .12s ease, color .12s ease;
  color: #b8c9e0;
  padding: 9px 13px;
}
.filters .seg button:hover:not(.active):not(.disabled) {
  background: rgba(255,255,255,.04);
  color: #f2f7ff;
}
.filters .seg button.active {
  background: var(--blue);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 1px 0 rgba(0,0,0,.18);
  font-weight: 900;
}
/* Filter row breathing room */
.filters {
  gap: 10px;
}

/* === Featured Matchup score smoosh fix (2026-05-18) =========================
   The .feature-score rule sets letter-spacing: -.1em at 88px. With Bebas
   Neue inheriting from the body/h2 family rule, that produces a smooshed
   broadcast-style score where digits visibly overlap. Fix: positive
   tracking + tabular-nums. Also polish surrounding chrome: .feature-name
   gets Bebas treatment to match (currently faux-bold Inter), and the
   middle separator span gets clean spacing.
   ============================================================================ */
.featured .feature-score {
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}
.featured .feature-score span {
  margin: 0 14px;
  letter-spacing: 0;
  font-weight: 400;
}
.featured .feature-name {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.04em;
}


/* === Game Center modal polish (2026-05-18) ==================================
   Fires every time a user clicks a game card. Was functional but unrefined.
   Specificity uses .game-center .gc-* (0,2,0) to win the cascade over the
   existing 0,1,0 rules without !important.
   ============================================================================ */

/* Backdrop — deeper navy tint + stronger blur for premium glass effect */
.game-center {
  background: rgba(4,12,24,.82);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
}

/* Card — subtle blue inner glow ring, refined border, dual shadow */
.game-center .gc-card {
  border-color: rgba(255,255,255,.08);
  box-shadow:
    0 1px 0 rgba(255,255,255,.04) inset,
    0 0 0 1px rgba(20,115,245,.10),
    0 30px 80px rgba(0,0,0,.7);
  background:
    radial-gradient(circle at 50% 0%, rgba(20,115,245,.10), transparent 38%),
    linear-gradient(180deg, #08182f 0%, #04111f 60%, #020812 100%);
  /* Subtle scale-in when modal opens — fast and quiet */
  animation: gcCardIn .22s cubic-bezier(.18,.78,.32,1) both;
}
@keyframes gcCardIn {
  from { opacity: 0; transform: scale(.985) translateY(8px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Head bar — accent gradient line on top edge, refined h2 tracking */
.game-center .gc-head {
  position: relative;
  border-bottom-color: rgba(255,255,255,.06);
  padding: 0 20px;
}
.game-center .gc-head::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(88,168,255,.55), transparent);
}
.game-center .gc-head h2 {
  letter-spacing: 0.08em;
  font-size: 13px;
  color: #f2f7ff;
}

/* Close button — pill-style, subtle hover */
.game-center .gc-close {
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #c8d6e7;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.game-center .gc-close:hover {
  background: rgba(255,255,255,.05);
  border-color: rgba(20,115,245,.4);
  color: #f2f7ff;
}

/* Scoreline — fix the -0.1em letter-spacing smoosh + tabular nums */
.game-center .gc-scoreline {
  letter-spacing: 0.015em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: #f2f7ff;
}

/* Team name — promote to Bebas family + readable tracking */
.game-center .gc-team-name {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #f2f7ff;
}

/* Body inner padding — slightly more breathing room */
.game-center .gc-body {
  padding: 22px 20px;
}


/* === Loading skeleton polish (2026-05-18) ===================================
   Refines the .rw-skel shimmer that appears on every page during the first
   ~1s of load. Selector .rw-skel .rw-skel-row (0,2,0) beats the inline
   page <style> rules (0,1,0) regardless of cascade order.

   Changes:
   - Slower (1.8s vs 1.4s), eased timing — more elegant sweep
   - Wider, multi-stop shimmer band — feels layered, not a hard bar
   - Slightly softer base (.03) and brighter peak (.12)
   - Tabular-nums for skeleton cells inside tables
   ============================================================================ */

.rw-skel {
  gap: 10px;
  padding: 16px;
}

.rw-skel .rw-skel-row {
  height: 13px;
  border-radius: 5px;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.025) 0%,
      rgba(255,255,255,.04) 30%,
      rgba(255,255,255,.12) 50%,
      rgba(255,255,255,.04) 70%,
      rgba(255,255,255,.025) 100%
    );
  background-size: 220% 100%;
  animation: rwSkelShimmer 1.8s cubic-bezier(.4, .0, .2, 1) infinite;
}

.rw-skel .rw-skel-row.short { width: 52%; }
.rw-skel .rw-skel-row.med { width: 76%; }
.rw-skel .rw-skel-row.tall { height: 36px; border-radius: 6px; }

.rw-skel-table tr td .rw-skel-cell,
.rw-skel .rw-skel-cell {
  height: 11px;
  border-radius: 4px;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.025) 0%,
      rgba(255,255,255,.04) 30%,
      rgba(255,255,255,.12) 50%,
      rgba(255,255,255,.04) 70%,
      rgba(255,255,255,.025) 100%
    );
  background-size: 220% 100%;
  animation: rwSkelShimmer 1.8s cubic-bezier(.4, .0, .2, 1) infinite;
}

@keyframes rwSkelShimmer {
  0%   { background-position: 220% 0; }
  100% { background-position: -220% 0; }
}

/* Stagger the row animations slightly so the shimmer feels organic instead
   of every row sweeping in lockstep. Uses nth-child to offset start time. */
.rw-skel .rw-skel-row:nth-child(2) { animation-delay: 0.12s; }
.rw-skel .rw-skel-row:nth-child(3) { animation-delay: 0.24s; }
.rw-skel .rw-skel-row:nth-child(4) { animation-delay: 0.36s; }
.rw-skel .rw-skel-row:nth-child(5) { animation-delay: 0.48s; }
.rw-skel .rw-skel-row:nth-child(6) { animation-delay: 0.60s; }
.rw-skel .rw-skel-row:nth-child(7) { animation-delay: 0.72s; }
.rw-skel .rw-skel-row:nth-child(8) { animation-delay: 0.84s; }

/* Reduced motion — respect the user's preference. */
@media (prefers-reduced-motion: reduce) {
  .rw-skel .rw-skel-row,
  .rw-skel .rw-skel-cell,
  .rw-skel-table tr td .rw-skel-cell {
    animation: none !important;
    background: rgba(255,255,255,.05);
  }
}


/* === Search input + unified results polish (2026-05-18) =====================
   Refines the .search input + .rw-unified-results dropdown that appears on
   every data page filter row. Specificity .rw-unified-search-wrap .X (0,2,0)
   beats 0,1,0 base rules without !important.
   ============================================================================ */

/* Input — softer base, focus ring in brand blue */
.rw-unified-search-wrap .search {
  background: rgba(255,255,255,.02);
  border-color: rgba(255,255,255,.10);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.rw-unified-search-wrap .search::placeholder {
  color: #6b7d99;
}
.rw-unified-search-wrap .search:focus,
.rw-unified-search-wrap .search:focus-visible {
  outline: none;
  border-color: rgba(20,115,245,.55);
  background: rgba(20,115,245,.04);
  box-shadow: 0 0 0 3px rgba(20,115,245,.14);
}

/* Keyboard "/" hint pill — refine, fade on focus */
.rw-unified-search-wrap .rw-search-kbd {
  font-size: 10px;
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.10);
  color: #8aa0bf;
  transition: opacity .15s ease;
}
.rw-unified-search-wrap .search:focus ~ .rw-search-kbd,
.rw-unified-search-wrap .search:not(:placeholder-shown) ~ .rw-search-kbd {
  opacity: 0;
}

/* Dropdown — glass effect + premium depth */
.rw-unified-search-wrap .rw-unified-results {
  background: rgba(8,18,30,.92);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
  border-color: rgba(255,255,255,.10);
  box-shadow:
    0 1px 0 rgba(255,255,255,.04) inset,
    0 12px 32px rgba(0,0,0,.6),
    0 4px 8px rgba(0,0,0,.3);
  border-radius: 12px;
  top: calc(100% + 8px);
}

/* Section heads — brand blue accent + better hierarchy */
.rw-unified-search-wrap .rw-unified-results .rw-uni-section {
  border-bottom-color: rgba(255,255,255,.05);
}
.rw-unified-search-wrap .rw-unified-results .rw-uni-section-head {
  color: #58a8ff;
  letter-spacing: 0.12em;
  font-weight: 700;
  padding: 10px 16px 6px;
}

/* Result rows — sharper hover + leading-edge accent stripe */
.rw-unified-search-wrap .rw-unified-results .rw-uni-row {
  position: relative;
  padding: 10px 16px;
}
.rw-unified-search-wrap .rw-unified-results .rw-uni-row:hover {
  background: rgba(20,115,245,.10);
}
.rw-unified-search-wrap .rw-unified-results .rw-uni-row::before {
  content: "";
  position: absolute;
  left: 0; top: 8px; bottom: 8px;
  width: 2px;
  background: transparent;
  border-radius: 0 2px 2px 0;
  transition: background .12s ease;
}
.rw-unified-search-wrap .rw-unified-results .rw-uni-row:hover::before {
  background: var(--blue);
}

/* Match highlight — cleaner blue tint, brighter foreground */
.rw-unified-search-wrap .rw-unified-results .rw-uni-row-name mark {
  background: rgba(20,115,245,.22);
  color: #f2f7ff;
  font-weight: 900;
  padding: 1px 3px;
  border-radius: 3px;
}


/* === Move #1: Date strip polish on scores page (2026-05-18) ================
   Infrastructure (rinkwire-scores-lite.js + #rwScDateChips) already populates
   chips with Season / Today / Yesterday / Tomorrow / Recent Finals / Upcoming
   and filters games in real time. This is pure visual polish on the chip
   row so it reads as a premium date strip instead of generic filters.
   Specificity .rw-sc-toolbar .rw-sc-chip (0,2,0) beats inline (0,1,0).
   ============================================================================ */
.rw-sc-toolbar {
  padding: 0 4px 14px;
  gap: 12px;
}
.rw-sc-toolbar .rw-sc-chips {
  gap: 4px;
  padding: 2px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
}
.rw-sc-toolbar .rw-sc-chips:not(:last-child) {
  margin-right: 4px;
  padding-right: 2px;
  border-right: 1px solid rgba(255,255,255,.06);
}
.rw-sc-toolbar .rw-sc-chip {
  height: 30px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #b8c9e0;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.rw-sc-toolbar .rw-sc-chip:hover:not(.active) {
  background: rgba(255,255,255,.04);
  color: #f2f7ff;
}
.rw-sc-toolbar .rw-sc-chip.active {
  background: var(--blue);
  border-color: rgba(74,168,255,.6);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 1px 0 rgba(0,0,0,.18);
}
.rw-sc-toolbar .rw-sc-chip:focus-visible {
  outline: 2px solid rgba(20,115,245,.65);
  outline-offset: 2px;
}
/* Search input inside the toolbar — keep the polished focus state, match
   the filter polish from earlier moves. */
.rw-sc-toolbar .rw-sc-search {
  height: 30px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 12px;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.rw-sc-toolbar .rw-sc-search:focus,
.rw-sc-toolbar .rw-sc-search:focus-visible {
  outline: none;
  border-color: rgba(20,115,245,.55);
  background: rgba(20,115,245,.04);
  box-shadow: 0 0 0 3px rgba(20,115,245,.14);
}

/* === Move #2: Sticky filter chip row on scroll (2026-05-18) =================
   Pin the .filters row near the top of the viewport when the user scrolls
   data pages. Mirrors SofaScore / The Athletic. The header is already
   sticky (z-index 20 in .header). Filters sit just below at z-index 15 so
   they don't cover the header but DO cover content below.

   Scoped to pages where this makes sense (data pages with filters). Other
   pages don't have .filters, so this rule is a no-op there.
   ============================================================================ */
.filters {
  position: sticky;
  top: 56px; /* sits just below the 56px header; tune if header height changes */
  z-index: 15;
  background: linear-gradient(180deg, #0b121d 0%, rgba(11,18,29,.96) 88%, rgba(11,18,29,.78) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 12px 0 13px;
  margin-top: -1px; /* avoid double border with header */
}
/* Subtle scrolled-state shadow — only visible when actually pinned and
   content has scrolled underneath. Browsers that don't support :stuck
   selector won't get the shadow, but the sticky still works. */
.filters::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -8px;
  height: 8px;
  background: linear-gradient(180deg, rgba(0,0,0,.18), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s ease;
}
/* When user has scrolled past the top, show the shadow. Uses scroll-driven
   detection via the parent main being scrolled. Fallback: always-on subtle
   shadow that doesn't hurt at the top either. */
.filters:hover::after,
.filters:focus-within::after {
  opacity: 1;
}

/* Score-rail also already sticky behavior — make sure filters z-index is
   below the header but above the score rail's normal content. */
.rw-score-rail {
  z-index: 14;
}

/* Mobile — filters can wrap, so cap the sticky height to prevent it
   eating the viewport. */
@media (max-width: 640px) {
  .filters {
    top: 52px;
    padding: 8px 0 9px;
    max-height: 50vh;
    overflow-y: auto;
  }
}


/* === Move #3: Standings sticky column header (2026-05-18) ===================
   Pins the standings table thead just below the sticky filter row so the
   GP/W/L/T/PTS/GF/GA/DIFF column labels stay visible when scrolling through
   a long division. NHL.com / EliteProspects pattern.
   Specificity .rw-standings-page .st-table thead (0,3,1) wins cleanly.
   ============================================================================ */

/* Stick the thead at top: header (56) + sticky filter row (~60) */
.rw-standings-page .st-table thead {
  position: sticky;
  top: 116px;
  z-index: 5;
}

/* Each th cell needs an opaque background — without it, table cells below
   would show through when scrolled. Match the page background gradient. */
.rw-standings-page .st-table thead th {
  background: #0b121d;
  position: relative;
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.06);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9fb3cf;
  padding: 10px 8px;
}

/* When the thead is pinned, a soft drop-shadow gives it lift over the
   scrolling tbody. Visible at all times — subtle so the un-pinned case
   doesn't look weird either. */
.rw-standings-page .st-table thead::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -8px;
  height: 8px;
  background: linear-gradient(180deg, rgba(0,0,0,.22), transparent);
  pointer-events: none;
}
/* The above ::after on a thead is unusual but works in modern browsers.
   Fallback: th-level box-shadow provides the same effect. */
.rw-standings-page .st-table thead th:first-child {
  border-top-left-radius: 6px;
}
.rw-standings-page .st-table thead th:last-child {
  border-top-right-radius: 6px;
}

/* Smaller offset on mobile — the filter row is more compact and the header
   is 52px there. */
@media (max-width: 640px) {
  .rw-standings-page .st-table thead {
    top: 100px;
  }
  .rw-standings-page .st-table thead th {
    font-size: 10.5px;
    padding: 8px 5px;
  }
}

/* Keep the table panel itself from clipping the sticky thead. Some panel
   styles set overflow: hidden which would break position: sticky. */
.rw-standings-page #standings.panel,
.rw-standings-page #standings .panel-body,
.rw-standings-page .st-table-wrap {
  overflow: visible;
}


/* === ROLLBACK: revert sticky filter + sticky standings thead (2026-05-18) ===
   User reported the sticky filter row created a detached visual band — the
   filter chips and tryout banner looked like floating components instead of
   inline page flow. Reverting position:sticky on .filters and the standings
   thead. Chip styling, thead typography, and date-strip polish ALL REMAIN
   in effect — only the sticky behavior is reverted.
   ============================================================================ */
.filters {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 15px 0 !important;
  margin-top: 0 !important;
}
.filters::after {
  display: none !important;
}
.rw-score-rail {
  z-index: auto !important;
}
.rw-standings-page .st-table thead {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
}
.rw-standings-page .st-table thead::after {
  display: none !important;
}


/* === Empty-state design pass (2026-05-19) ===================================
   Unifies every empty-state variant on the site into one premium treatment.
   Off-season / archive mode means empty states appear frequently — they
   deserve the same care as data states.
   Variants targeted: .empty, .td-empty, .rw-tdv2-empty, .rw-offseason-empty,
   and .rw-sc-empty (which already has its own title/copy structure).
   !important matches the existing rules' !important pattern.
   ============================================================================ */

.empty,
.td-empty,
.rw-tdv2-empty,
.rw-offseason-empty {
  padding: 28px 24px !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 12px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.014), rgba(255,255,255,.003)) !important;
  color: #8aa0bf !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.005em !important;
  text-align: center !important;
  position: relative;
  overflow: hidden;
}

/* Top accent stripe — small subtle brand-blue band centered on top edge.
   Gives visual weight and consistency across every empty card. */
.empty::before,
.td-empty::before,
.rw-tdv2-empty::before,
.rw-offseason-empty::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 36px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(88,168,255,.45), transparent);
  border-radius: 0 0 4px 4px;
}

/* Tighter compact variant for sidebar / small panels where 28px is too big */
.rw-offseason-empty {
  padding: 18px 16px !important;
  font-size: 12px !important;
}

/* Loading state (when text starts with "Loading…") — soft pulse animation.
   Detected via :has — fallback for older browsers is just normal text. */
.empty:has-text("Loading"),
.empty[data-state="loading"] {
  animation: rwEmptyPulse 1.6s ease-in-out infinite;
}
@keyframes rwEmptyPulse {
  0%, 100% { opacity: 0.78; }
  50% { opacity: 1; }
}

/* === .rw-sc-empty (scores page) — already has title+copy, refine separately */
.rw-sc-empty {
  padding: 36px 24px !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 14px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.014), rgba(255,255,255,.003)) !important;
  position: relative;
  overflow: hidden;
}
.rw-sc-empty::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(88,168,255,.5), transparent);
  border-radius: 0 0 4px 4px;
}
.rw-sc-empty-title {
  font-family: 'Bebas Neue', Inter, sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 0.06em !important;
  font-weight: 400 !important;
  color: #f2f7ff !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
}
.rw-sc-empty-copy {
  color: #8aa0bf !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  margin-top: 6px !important;
}

/* Empty cells inside table rows — when an entire division has no teams */
table .empty {
  margin: 6px 0;
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  .empty:has-text("Loading"),
  .empty[data-state="loading"] {
    animation: none !important;
  }
}


/* === Batch — final 6 moves (2026-05-19) =====================================
   #5 Featured Matchup logo polish
   #4 Standings team-cell polish
   #7 Game card unification (consistent hover/border/score)
   #8 Mobile defensive pass
   #10 Logo system audit (size + fallback consistency)
   ============================================================================ */

/* ===== #5: Featured Matchup logo polish ===== */
.featured .big-logo {
  width: 92px !important;
  height: 92px !important;
  border-radius: 50% !important;
  background: #fff !important;
  margin: 0 auto 14px !important;
  box-shadow:
    0 16px 32px rgba(0,0,0,.55),
    0 0 0 1px rgba(255,255,255,.06),
    0 0 0 5px rgba(255,255,255,.04),
    inset 0 0 0 1px rgba(0,0,0,.04) !important;
  transition: transform .18s ease, box-shadow .18s ease;
}
.featured .big-logo:hover {
  transform: translateY(-2px);
  box-shadow:
    0 20px 40px rgba(0,0,0,.6),
    0 0 0 1px rgba(20,115,245,.30),
    0 0 0 5px rgba(20,115,245,.08),
    inset 0 0 0 1px rgba(0,0,0,.04);
}
.featured .big-logo img {
  width: 70% !important;
  height: 70% !important;
  object-fit: contain !important;
}
.featured .big-logo .logo-fallback {
  font-family: 'Bebas Neue', Inter, sans-serif !important;
  font-size: 30px !important;
  letter-spacing: 0.04em !important;
  font-weight: 400 !important;
  color: #0a1320 !important;
}

/* ===== #4: Standings team-cell polish ===== */
.rw-standings-page .team-cell,
.rw-standings-page .st-team {
  gap: 11px !important;
}
.rw-standings-page .st-team-name,
.rw-standings-page .team-cell span {
  font-weight: 800 !important;
  letter-spacing: -0.005em !important;
  color: #f2f7ff !important;
  font-size: 13.5px !important;
}
.rw-standings-page tbody tr {
  cursor: pointer;
}
.rw-standings-page tbody tr .team-logo-sm,
.rw-standings-page tbody tr .st-team img {
  transition: transform .15s ease;
}
.rw-standings-page tbody tr:hover .team-logo-sm,
.rw-standings-page tbody tr:hover .st-team img {
  transform: scale(1.06);
}

/* ===== #7: Game card unification ===== */
/* Shared cursor + transition for ALL game-card variants */
.schedule-game,
.tp-game,
.rw-sc-game,
.game {
  cursor: pointer;
  transition: background .15s ease, transform .15s ease, border-color .15s ease;
}
.schedule-game:hover,
.tp-game:hover,
.game:hover {
  background: rgba(20,115,245,.04);
}
.rw-sc-game:hover {
  border-color: rgba(20,115,245,.32) !important;
  transform: translateY(-1px);
}
/* Tabular-nums on every game-card score variant */
.game-score,
.tp-score,
.rw-sc-score,
.td-score,
.gc-score,
.match-intel-score,
.upset-score,
.rwpi-score,
.feature-score {
  font-variant-numeric: tabular-nums !important;
}
/* Schedule rows on team page — subtle leading accent on hover */
.tp-game {
  position: relative;
  padding-left: 10px !important;
}
.tp-game::before {
  content: "";
  position: absolute;
  left: 0; top: 9px; bottom: 9px;
  width: 2px;
  background: transparent;
  border-radius: 0 2px 2px 0;
  transition: background .12s ease;
}
.tp-game:hover::before {
  background: var(--blue);
}

/* ===== #8: Mobile defensive pass (@media 640px) ===== */
@media (max-width: 640px) {
  /* Header nav — already wraps. Make sure it's compact. */
  .nav { gap: 8px !important; }
  .nav a { font-size: 11px !important; padding: 6px 0 !important; }
  .brand-word { font-size: 20px !important; }
  .rw { font-size: 22px !important; }

  /* Score rail — slimmer cards on phone */
  .rw-ticker-card { flex-basis: 240px !important; height: 110px !important; }
  .rw-ticker-score { font-size: 16px !important; }

  /* Featured Matchup — stack vertically, smaller logos */
  .feature-match { grid-template-columns: 1fr !important; gap: 12px !important; }
  .featured .big-logo { width: 64px !important; height: 64px !important; margin-bottom: 8px !important; }
  .feature-name { font-size: 16px !important; }
  .feature-score { font-size: 56px !important; }

  /* Standings — horizontal scroll if table is too wide */
  .rw-standings-page .st-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .rw-standings-page .st-table { min-width: 540px; }

  /* Filters — cap height so they never eat the viewport */
  .filters { gap: 6px !important; padding: 10px 0 !important; }
  .seg button { padding: 8px 10px !important; font-size: 11px !important; }

  /* Footer grid — stack on mobile */
  .rw-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 14px !important; }

  /* Panels — tighter padding */
  .panel-body { padding: 12px 14px !important; }
}
@media (max-width: 420px) {
  /* Very small phones */
  .rw-footer-grid { grid-template-columns: 1fr !important; }
  .feature-score { font-size: 44px !important; }
}

/* ===== #10: Logo system audit (size + fallback consistency) ===== */
/* Reconcile the team-logo-sm conflict (30px vs 64px) — use 30px as the
   canonical small size, 64px only when explicitly opted in via .big variant */
.team-logo-sm {
  width: 30px;
  height: 30px;
  min-width: 30px;
  border-radius: 9px;
  background: #fff;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255,255,255,.14);
}
.team-logo-sm img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 2px;
  box-sizing: border-box;
  display: block;
}
.team-logo-sm .logo-fallback {
  font-family: 'Bebas Neue', Inter, sans-serif;
  font-size: 10px;
  letter-spacing: 0.02em;
  font-weight: 400;
  color: #0a1320;
}
/* Big variant (team profile hero) keeps its own larger sizing */
.team-logo-sm.big-logo {
  width: 80px;
  height: 80px;
  min-width: 80px;
  border-radius: 18px;
}
.team-logo-sm.big-logo .logo-fallback {
  font-size: 26px;
}


/* === Featured Matchup logo refinement (2026-05-19) ==========================
   User feedback: the pure white circles looked stuck-on against the dark
   arena background. Logo too small (70%), shadow harsh, outer bloom ring
   read as a halo. Fix: off-white gradient bg, logo fills 82%, integrated
   shadow stack without the wide bloom.
   ============================================================================ */
.featured .big-logo {
  background: linear-gradient(180deg, #f8fafc 0%, #e8edf3 100%) !important;
  box-shadow:
    0 18px 36px rgba(0,0,0,.6),
    0 4px 10px rgba(0,0,0,.35),
    0 0 0 1px rgba(255,255,255,.10),
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -2px 0 rgba(0,0,0,.05) !important;
}
.featured .big-logo:hover {
  transform: translateY(-2px);
  box-shadow:
    0 22px 44px rgba(0,0,0,.62),
    0 6px 14px rgba(20,115,245,.18),
    0 0 0 1px rgba(20,115,245,.34),
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -2px 0 rgba(0,0,0,.05) !important;
}
.featured .big-logo img {
  width: 82% !important;
  height: 82% !important;
  object-fit: contain !important;
}


/* === Featured Matchup logos — bigger (2026-05-19) ===========================
   User feedback: logos still felt small inside the circle because source
   images have built-in whitespace. Fix: enlarge the circle from 92px to
   112px AND bump img fill from 82% to 92%. Mobile sizes adjusted to match.
   ============================================================================ */
.featured .big-logo {
  width: 104px !important;
  height: 104px !important;
  margin: 0 auto 16px !important;
}
.featured .big-logo img {
  width: 88% !important;
  height: 88% !important;
  padding: 0 !important;
}
.featured .big-logo .logo-fallback {
  font-size: 32px !important;
}

/* Mobile — keep proportional bump */
@media (max-width: 640px) {
  .featured .big-logo {
    width: 72px !important;
    height: 72px !important;
    margin-bottom: 10px !important;
  }
  .featured .big-logo img {
    width: 92% !important;
    height: 92% !important;
  }
  .featured .big-logo .logo-fallback {
    font-size: 24px !important;
  }
}


/* === Featured Matchup logo — per-team scale infrastructure (2026-05-19) =====
   Source logo PNGs have inconsistent built-in whitespace (e.g., Sharks
   logo has more empty canvas around the glyph than Bears does). A single
   global fill % renders differently per logo.

   Approach:
     1. Universal modest zoom (scale 1.08) — crops ~4% off each edge of
        the bounding box. Safe for centered hockey logos.
     2. CSS variable --logo-scale lets specific logos override. To fine-tune
        a logo with lots of whitespace, add inline style="--logo-scale:1.18"
        or set the variable via JS on the .big-logo wrapper.
     3. Quick opt-in classes for common cases — .logo-loose / .logo-tight
        let you bump scale without inline styles.

   Example future usage (JS or HTML):
     <div class="big-logo logo-loose">     -- zoom 1.18 (whitespace-heavy)
     <div class="big-logo logo-tight">     -- zoom 1.00 (tight crop)
     <div class="big-logo" style="--logo-scale:1.22"> -- custom value
   ============================================================================ */
.featured .big-logo img {
  transform: scale(var(--logo-scale, 1.08));
  transform-origin: center center;
  transition: transform .18s ease;
}
.featured .big-logo.logo-loose { --logo-scale: 1.18; }
.featured .big-logo.logo-tight { --logo-scale: 1.00; }
.featured .big-logo:hover img {
  transform: scale(calc(var(--logo-scale, 1.08) * 1.05));
}


/* === Sticky header polish (2026-05-19) ======================================
   The original header has position:sticky but later rules at L596/L4205
   accidentally overrode with position:relative. Re-asserting sticky with
   higher specificity (body .header is 0,1,1 vs .header at 0,1,0) and
   adding premium polish: backdrop blur + saturation, subtle blue accent line
   at the bottom edge, refined shadow.
   ============================================================================ */
body .header {
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
}

/* Glass effect — semi-transparent gradient + blur so content beneath shows
   through subtly when scrolled. Saturate boosts the navy tint. */
body .header {
  background:
    linear-gradient(180deg, rgba(2,8,21,.92), rgba(1,4,10,.94)) !important;
  backdrop-filter: blur(14px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.2) !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.04) inset,
    0 10px 28px rgba(0,0,0,.55),
    0 1px 0 rgba(20,115,245,.08) !important;
}

/* Subtle blue accent line at the bottom edge — fades in from left/right
   like the footer treatment we polished earlier. Cohesive identity. */
body .header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(20,115,245,.32), transparent);
  pointer-events: none;
}

/* Mobile — keep the sticky behavior but slightly less blur for perf */
@media (max-width: 640px) {
  body .header {
    backdrop-filter: blur(10px) saturate(1.1) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.1) !important;
  }
}


/* === #1: Team page tp-box / tp-hero polish (2026-05-19) =====================
   The team profile page's main content boxes (Team Snapshot, Recent
   Results, Upcoming/Live) had minimal styling. Polish to match the
   premium card treatment used elsewhere on the site.
   ============================================================================ */

/* tp-box — refined card chrome */
.tp-box {
  border: 1px solid rgba(255,255,255,.06) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.005)) !important;
  border-radius: 12px !important;
  padding: 16px 18px !important;
  position: relative;
  overflow: hidden;
}

/* Top accent stripe on first box — subtle brand-blue cue */
.tp-grid .tp-box:first-child::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 28px;
  background: linear-gradient(180deg, rgba(20,115,245,.6), transparent);
  border-radius: 0 2px 2px 0;
}

/* Box section headings — Bebas Neue editorial treatment */
.tp-box h3 {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  color: #f2f7ff !important;
  margin: 0 0 14px !important;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}

/* Stat rows inside the team snapshot */
.tp-box .stat-row {
  border-bottom-color: rgba(255,255,255,.05) !important;
  padding: 9px 0 !important;
  font-size: 13px !important;
}
.tp-box .stat-row:last-child {
  border-bottom: 0 !important;
}
.tp-box .stat-row span {
  color: #9fb3cf !important;
  font-weight: 500 !important;
}
.tp-box .stat-row strong {
  color: #f2f7ff !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
}

/* tp-hero — the team header overlay with logo + name + record */
.tp-hero {
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 14px !important;
  background:
    radial-gradient(circle at 0 0, rgba(20,115,245,.12), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.005)) !important;
  padding: 18px 20px !important;
}
.tp-hero h1 {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  letter-spacing: 0.02em !important;
  font-weight: 400 !important;
}
.tp-record .tp-stat {
  text-align: center;
}
.tp-record .tp-stat b {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  color: #f2f7ff !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.tp-record .tp-stat span {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9fb3cf !important;
}

/* === #2: Rinks page card polish (2026-05-19) ================================
   .rink-card had almost zero CSS — rendering basically raw. Ship complete
   card chrome: border, background, hover, typography, action buttons.
   ============================================================================ */
.rink-card {
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.005));
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 0 0 10px;
  transition: border-color .15s ease, transform .15s ease, background .15s ease;
}
.rink-card:hover {
  border-color: rgba(20,115,245,.32);
  background: linear-gradient(180deg, rgba(20,115,245,.05), rgba(255,255,255,.005));
  transform: translateY(-1px);
}

.rink-card .rink-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.rink-card .rink-name {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 400;
  color: #f2f7ff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rink-card .pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: #c8d6e7;
}
.rink-card .pill.norcal {
  border-color: rgba(62,230,166,.30);
  background: rgba(62,230,166,.08);
  color: #3ee6a6;
}
.rink-card .pill.central {
  border-color: rgba(255,138,0,.30);
  background: rgba(255,138,0,.08);
  color: #ff8a00;
}
/* SoCal — default pill, no modifier class on the markup */

.rink-card .rink-meta {
  font-size: 12.5px;
  color: #9fb3cf;
  line-height: 1.45;
  font-weight: 500;
}

.rink-card .rink-actions {
  display: flex;
  gap: 8px;
  margin-top: 6px;
}
.rink-card .rink-actions .btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 7px;
  background: rgba(255,255,255,.03);
  color: #c8d6e7;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.rink-card .rink-actions .btn:hover {
  background: rgba(20,115,245,.10);
  border-color: rgba(20,115,245,.32);
  color: #f2f7ff;
}

/* Rinks page panel-head pill (count badge) — refine */
.panel-head .pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  min-width: 28px;
  justify-content: center;
  padding: 0 8px;
  border-radius: 11px;
  border: 1px solid rgba(20,115,245,.30);
  background: rgba(20,115,245,.10);
  color: #7fb6ff;
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

@media (max-width: 640px) {
  .rink-card { padding: 12px 14px; }
  .rink-card .rink-name { font-size: 16px; }
  .rink-card .rink-actions .btn { height: 32px; padding: 0 14px; font-size: 12px; }
}


/* === #3: Tryouts + Camps card unification (2026-05-19) =====================
   tryouts.html uses .card, camps.html uses .camp-card — same intent,
   different class names. Unifying via shared CSS scoped to #grid parent
   that both pages use.
   ============================================================================ */

/* Shared card chrome — applies to both .card and .camp-card under #grid */
#grid .card,
#grid .camp-card,
#grid .tryoutCard {
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.005));
  border-radius: 12px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .15s ease, transform .15s ease, background .15s ease;
}
#grid .card:hover,
#grid .camp-card:hover,
#grid .tryoutCard:hover {
  border-color: rgba(20,115,245,.32);
  background: linear-gradient(180deg, rgba(20,115,245,.05), rgba(255,255,255,.005));
  transform: translateY(-1px);
}

/* Card title row */
#grid .camp-head,
#grid .card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
#grid .camp-title,
#grid .card-title {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 400;
  color: #f2f7ff;
  line-height: 1.15;
  margin: 0;
}

/* Summary KPI cards (camps top strip) */
.summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 14px;
}
.summary-card {
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.018);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.summary-card b {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-size: 26px;
  font-weight: 400;
  color: #f2f7ff;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}
.summary-card span {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #9fb3cf;
}

@media (max-width: 640px) {
  .summary { grid-template-columns: 1fr 1fr; }
  #grid .card, #grid .camp-card { padding: 14px 16px; }
}

/* Toolbar select inputs on camps.html — unify with chip styling */
.toolbar .select,
.toolbar .search {
  height: 32px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
  border-radius: 8px;
  color: #c8d6e7;
  font-size: 12px;
  font-weight: 600;
  padding: 0 10px;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.toolbar .search:focus,
.toolbar .select:focus,
.toolbar .search:focus-visible {
  outline: none;
  border-color: rgba(20,115,245,.55);
  background: rgba(20,115,245,.04);
  box-shadow: 0 0 0 3px rgba(20,115,245,.14);
}

/* "Get Listed" / "Suggest an edit" CTA buttons */
.getListed,
.suggestEdit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  background: rgba(20,115,245,.10);
  border: 1px solid rgba(20,115,245,.30);
  color: #cfe3ff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
}
.getListed:hover,
.suggestEdit:hover {
  background: rgba(20,115,245,.18);
  border-color: rgba(20,115,245,.55);
}


/* === Team profile — clickable Home Rink badge (2026-05-19) ==================
   Promotes the small home-rink label in the team hero header into a
   premium clickable badge that links to /rinks.html.
   ============================================================================ */
a.tp-home-rink {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  margin-top: 12px !important;
  padding: 8px 14px 8px 10px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.02);
  border-radius: 8px;
  text-decoration: none;
  font-size: 12px !important;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
  max-width: 100%;
  min-width: 0;
}
a.tp-home-rink:hover {
  border-color: rgba(20,115,245,.42);
  background: rgba(20,115,245,.06);
  transform: translateY(-1px);
}

/* Icon — small map-pin glyph via inline SVG mask */
.tp-home-rink-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: #58a8ff;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 22s7-7.5 7-13a7 7 0 1 0-14 0c0 5.5 7 13 7 13Z'/><circle cx='12' cy='9' r='2.6' fill='white'/></svg>") center/contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 22s7-7.5 7-13a7 7 0 1 0-14 0c0 5.5 7 13 7 13Z'/><circle cx='12' cy='9' r='2.6' fill='white'/></svg>") center/contain no-repeat;
}

/* Label — small uppercase muted */
.tp-home-rink-label {
  color: #58a8ff !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  font-size: 9.5px !important;
  white-space: nowrap;
}

/* Rink name — Bebas, premium scoreboard feel */
.tp-home-rink-name {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  color: #f2f7ff !important;
  font-weight: 400 !important;
  letter-spacing: 0.03em !important;
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

/* Arrow — slides right on hover, premium link cue */
.tp-home-rink-arrow {
  color: #7fb6ff;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  margin-left: 2px;
  flex: 0 0 auto;
  transition: transform .18s ease;
  opacity: 0.7;
}
a.tp-home-rink:hover .tp-home-rink-arrow {
  transform: translateX(2px);
  opacity: 1;
}

@media (max-width: 640px) {
  a.tp-home-rink {
    width: 100%;
    box-sizing: border-box;
  }
}


/* === #5: Date display consistency (2026-05-19) ==============================
   Date strings render in different elements (.rw-sched-date, .rw-sc-date,
   .tp-date, .tp-next-date, .rw-ticker-time, .feature-team .period, etc.).
   The format itself is already "Mon DD" everywhere — the inconsistency is
   visual: different sizes, weights, colors, no tabular-nums. Unifying.
   ============================================================================ */
.rw-sched-date,
.rw-sc-date,
.tp-date,
.tp-next-date,
.rw-ticker-time,
.feature-team + .period,
.feature-team .period {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: #9fb3cf;
  text-transform: uppercase;
  font-size: 11px;
}
.tp-date {
  font-size: 11.5px;
  color: #c8d6e7;
}
.tp-next-date {
  font-size: 13px;
  color: #f2f7ff;
  font-weight: 800;
}

/* === #6: Match Intel / Game Importance polish (2026-05-19) ==================
   Refines the Featured Matchup's Quality / Matchup / Rank metric strip.
   The bar fill gets a smoother gradient + animated width transition.
   Row chrome gets refined typography and tabular-nums on the numbers.
   ============================================================================ */
.featured .best-game-metrics {
  gap: 8px;
  max-width: 340px;
  margin: 14px auto 0;
}
.featured .best-game-metric {
  grid-template-columns: 78px 1fr 70px !important;
  gap: 12px !important;
  padding: 9px 12px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.022), rgba(255,255,255,.006)) !important;
  border-radius: 9px !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  color: #9fb3cf;
}
.featured .best-game-metric strong {
  color: #f2f7ff !important;
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  font-variant-numeric: tabular-nums !important;
  text-align: right;
}
.featured .quality-bar {
  height: 6px;
  border-radius: 99px;
  background: rgba(255,255,255,.08);
  overflow: hidden;
  box-shadow: inset 0 1px 1px rgba(0,0,0,.25);
}
.featured .quality-bar i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: linear-gradient(90deg, #1473f5 0%, #4aa8ff 45%, #3ee6a6 100%);
  box-shadow: 0 0 14px rgba(20,115,245,.45), 0 0 3px rgba(62,230,166,.30) inset;
  transition: width .6s cubic-bezier(.18,.78,.32,1);
}
.featured .best-game-kicker {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.14em;
  padding: 5px 11px;
  border: 1px solid rgba(255,90,107,.35);
  background: rgba(255,90,107,.12);
  color: #ffd5dc;
}
.featured .best-game-line {
  font-family: Inter, Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.5;
  color: #dbe7f7;
  max-width: 340px;
}


/* === #7: Form Index W/L/T dot streak (2026-05-19) ===========================
   .form-dot replaces the letter string in the team profile's Form Index row.
   W = green, L = red, T = neutral, no result = grey ring.
   ============================================================================ */
.form-streak,
.tp-box .stat-row strong:has(.form-dot) {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
}
.form-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.18);
  background: rgba(255,255,255,.10);
  vertical-align: middle;
  cursor: help;
}
.form-dot.form-w {
  background: var(--green);
  box-shadow: 0 0 6px rgba(62,230,166,.30);
}
.form-dot.form-l {
  background: var(--red);
  box-shadow: 0 0 6px rgba(255,90,107,.28);
}
.form-dot.form-t {
  background: #ffcc4a;
}
.form-empty-text {
  color: #7d92ad;
  font-weight: 500;
  font-size: 12px;
  font-style: italic;
}

/* === #8: Sortable standings column visual cue (2026-05-19) ==================
   Add cursor + sort-arrow indicator to standings column headers. Even if
   sort isn't wired yet, the visual affordance signals premium data product.
   The arrow goes neutral by default and brightens on hover.
   ============================================================================ */
.rw-standings-page .st-table thead th.right {
  cursor: pointer;
  user-select: none;
  position: relative;
  padding-right: 18px !important;
  transition: color .12s ease, background .12s ease;
}
.rw-standings-page .st-table thead th.right::after {
  content: "▾";
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 8px;
  color: rgba(159,179,207,.40);
  transition: color .12s ease, transform .12s ease;
}
.rw-standings-page .st-table thead th.right:hover {
  color: #f2f7ff;
  background: rgba(255,255,255,.025);
}
.rw-standings-page .st-table thead th.right:hover::after {
  color: #58a8ff;
  transform: translateY(-50%) translateY(1px);
}
/* Active sort indicator (when JS adds .sort-asc / .sort-desc class) */
.rw-standings-page .st-table thead th.right.sort-asc::after { content: "▴"; color: var(--blue); }
.rw-standings-page .st-table thead th.right.sort-desc::after { content: "▾"; color: var(--blue); }

/* === #10: Scroll-to-top button (2026-05-19) =================================
   Sitewide floating button bottom-right. Appears after scrolling past 400px.
   Smooth-scrolls to top on click. Markup + script injected into each HTML
   file just before </body>.
   ============================================================================ */
.rw-scroll-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 50;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(20,115,245,.45);
  background: rgba(20,115,245,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #cfe3ff;
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: 0 12px 28px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04) inset;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, background .15s ease, border-color .15s ease;
  padding: 0;
}
.rw-scroll-top.rw-st-on {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.rw-scroll-top:hover {
  background: rgba(20,115,245,.30);
  border-color: rgba(20,115,245,.65);
  color: #fff;
  transform: translateY(-2px);
}
.rw-scroll-top:focus-visible {
  outline: 2px solid rgba(20,115,245,.7);
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .rw-scroll-top { width: 40px; height: 40px; bottom: 16px; right: 16px; }
}


/* === Team page duplicate header fix (2026-05-19) ============================
   The static .rw-team-header-card I added previously duplicates the
   JS-rendered .tp-hero (which is richer — has record, RWPI, Goal Impact,
   playoff status). Hide the static one, restore the JS-rendered H1 that
   was being hidden by the earlier :has() rule.
   ============================================================================ */
.rw-team-route-page .rw-team-header-card,
body .rw-team-header-card {
  display: none !important;
}
/* Restore the JS-rendered title (was hidden when the static card was visible) */
#tpBody .tp-title h1 { display: revert !important; }

/* === #1 Standings sort — DOM-only handler (2026-05-19) ======================
   Visual state for sorted columns (already had .sort-asc/.sort-desc CSS).
   Inline script appended below handles the actual reordering via event
   delegation — doesn't touch the engine.
   ============================================================================ */
.rw-standings-page .st-table thead th.right.sort-asc,
.rw-standings-page .st-table thead th.right.sort-desc {
  color: #f2f7ff;
  background: rgba(20,115,245,.08);
}


/* === Fix div-as-heading elements missed by the h1/h2 Bebas rule (2026-05-19)
   .st-title (standings hero) is a <div>, not a heading, so my sitewide Bebas
   rule didn't catch it. Plus it had letter-spacing:-.055em (smoosh pattern).
   Add it explicitly. Same for .live-title (used elsewhere).
   ============================================================================ */
.st-title,
.live-title {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.05 !important;
  font-variant-numeric: tabular-nums;
}
.st-eyebrow {
  letter-spacing: 0.10em;
  font-weight: 700;
  font-size: 11px;
  color: #58a8ff;
  text-transform: uppercase;
}
.st-copy {
  color: #9fb3cf;
  font-weight: 500;
  line-height: 1.55;
  font-size: 13.5px;
}
.st-metric b {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  font-variant-numeric: tabular-nums;
}


/* === Promote h3-h6 + missed heading classes to Bebas (2026-05-19) ===========
   Earlier the Bebas rule only covered h1+h2. "HOLDING PROFILE" h4 on team
   profile (RinkWire Read box) + other h3/h4 elements fell back to Inter
   Black. Extending Bebas to all heading levels + specific div-as-heading
   classes I missed.
   ============================================================================ */
h3, h4, h5, h6,
.tp-status-banner h4,
.tp-schedule-head h3,
.feature-name,
.tp-next-eyebrow,
.rw-rk-side h3,
.rwpi-trend-title,
.rwpi-mover-label,
.biggest-mover-label,
.biggest-mover-team,
.bracket-name,
.caha-eyebrow,
.caha-title b {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.045em !important;
}

/* h3 specifically — slight letter-spacing tune (Bebas at 14-16px) */
h3 { letter-spacing: 0.06em !important; }
h4 { letter-spacing: 0.06em !important; }

/* Team profile "RinkWire Read" status banner — h4 was getting Inter Black */
.tp-status-banner h4 {
  font-size: 16px !important;
  margin: 0 0 4px !important;
  text-transform: uppercase;
  color: #f2f7ff !important;
}

/* === Footer signup band — tighten layout, kill dead column (2026-05-19) =====
   Previous 3-column grid (250px / 360px / 220px) stretched the email form
   too wide. The 3rd column ("Send verified updates") is dead — no actual
   email or action wired (commented as 'pending new address'). Drop it and
   go to 2 columns with a capped form width.
   ============================================================================ */
footer.rw-footer.rw-footer-header-match .rw-footer-signup-band {
  grid-template-columns: 1fr minmax(280px, 380px) !important;
  gap: 18px !important;
  align-items: center !important;
}
/* Hide the dead "Send verified updates" stub */
footer.rw-footer.rw-footer-header-match .rw-footer-contact {
  display: none !important;
}

/* Form inside — flex row, email input flexes, button stays compact */
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .ml-form-embedWrapper,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite form {
  display: flex !important;
  gap: 8px !important;
  align-items: stretch !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="email"],
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input.form-control {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 38px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
}
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite button,
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite input[type="submit"],
footer.rw-footer.rw-footer-header-match .rw-footer-mailerlite .primary {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  padding: 0 16px !important;
  height: 38px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
}

/* Mobile — stack copy + form vertically, full width */
@media (max-width: 720px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-signup-band {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}


/* === Rankings page RWPI formula block polish (2026-05-19) ===================
   The "How RW Power Index works" + "Inputs" block at the bottom of
   rankings.html had a basic 2-col grid with a bullet list. Polishing into
   a premium methodology callout — Bebas headings, brand-blue eyebrow on
   each input, 2x2 input grid instead of bullets.
   Specificity .rw-rk-formula wins over the inline rankings.html rule.
   ============================================================================ */
.rw-rk-formula {
  margin-top: 22px !important;
  padding: 22px 24px !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 14px !important;
  background:
    linear-gradient(180deg, rgba(20,115,245,.04), rgba(255,255,255,.005)) !important;
  display: grid !important;
  grid-template-columns: 1fr 1.05fr !important;
  gap: 28px !important;
  color: #c8d6e7 !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  position: relative;
  overflow: hidden;
}
/* Subtle blue accent line at top */
.rw-rk-formula::before {
  content: "";
  position: absolute;
  top: 0; left: 22px;
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(20,115,245,.55), transparent);
  border-radius: 0 0 4px 4px;
}

/* Headings — Bebas (overrides the inline 950-weight rule) */
.rw-rk-formula h3 {
  font-family: 'Bebas Neue', Inter, Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  color: #f2f7ff !important;
  text-transform: uppercase;
  margin: 0 0 10px !important;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}

/* Left column copy */
.rw-rk-formula > div:first-child p {
  margin: 0 !important;
  font-size: 14px;
  line-height: 1.6;
  color: #c8d6e7;
}

/* Right column: convert bullet list to 2x2 grid of mini input cards */
.rw-rk-formula ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.rw-rk-formula li {
  margin: 0 !important;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.018);
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.4;
  color: #9fb3cf;
}
.rw-rk-formula li b {
  display: block;
  font-family: 'Bebas Neue', Inter, Arial, sans-serif;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.05em;
  color: #58a8ff;
  text-transform: uppercase;
  margin-bottom: 4px;
}

/* Mobile — stack the two columns + collapse the input grid to 1 col */
@media (max-width: 760px) {
  .rw-rk-formula {
    grid-template-columns: 1fr !important;
    padding: 18px 20px !important;
    gap: 20px !important;
  }
  .rw-rk-formula ul {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .rw-rk-formula ul {
    grid-template-columns: 1fr;
  }
}


/* === RWPI formula block — compact treatment when above the data ============
   Block was moved to position right after the hero so users see the
   methodology context BEFORE the table. Tighten spacing slightly so it
   doesn't push the table too far down the page.
   ============================================================================ */
.rw-rk-formula {
  margin-top: 14px !important;
  margin-bottom: 4px !important;
  padding: 18px 22px !important;
}
.rw-rk-formula h3 {
  font-size: 16px !important;
  margin-bottom: 8px !important;
  padding-bottom: 6px;
}
.rw-rk-formula > div:first-child p {
  font-size: 13.5px;
  line-height: 1.55;
}
.rw-rk-formula li {
  padding: 8px 10px;
  font-size: 11.5px;
}
.rw-rk-formula li b {
  font-size: 13px;
}


/* === Scroll-to-top — relocated into footer (2026-05-19) =====================
   Moved from fixed bottom-right to a centered "Back to top" pill inside the
   footer (positioned right above the legal text). The inline script appends
   the button into the footer at runtime. CSS below overrides the old fixed
   position when the .rw-st-in-footer modifier class is present.
   ============================================================================ */
.rw-scroll-top.rw-st-in-footer {
  position: static !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  width: auto !important;
  height: 38px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(20,115,245,.45) !important;
  background: rgba(20,115,245,.10) !important;
  color: #cfe3ff !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
  backdrop-filter: none !important;
  margin: 18px auto !important;
  box-shadow: none !important;
}
.rw-scroll-top.rw-st-in-footer:hover {
  background: rgba(20,115,245,.20) !important;
  border-color: rgba(20,115,245,.65) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}
/* Wrap the button in its own row so it centers within the footer */
.rw-footer .shell.rw-footer-inner > .rw-scroll-top.rw-st-in-footer {
  display: flex !important;
  width: max-content !important;
}


/* === How It Works page — premium redesign (2026-05-19) ======================
   Replaces the generic editorial-mode treatment with a dedicated HIW layout.
   Numbered metric cards, premium callouts, scoreboard-style example block.
   ============================================================================ */
.rw-hiw-page {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Hero — bigger, more confident */
.rw-hiw-page .hero {
  padding: 36px 0 12px;
  border: 0;
  background: none;
  margin: 0;
}
.rw-hiw-page .hero .kicker,
.rw-hiw-page .hero .eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #58a8ff;
  margin-bottom: 12px;
  display: block;
}
.rw-hiw-page .hero h1 {
  font-family: 'Bebas Neue', Inter, sans-serif;
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.0;
  color: #f2f7ff;
  margin: 0 0 14px;
  text-transform: uppercase;
}
.rw-hiw-page .hero .lede {
  font-size: 17px;
  line-height: 1.55;
  color: #c8d6e7;
  font-weight: 500;
  max-width: 720px;
  margin: 0;
}

/* Example panel — featured scoreboard-style demo card */
.rw-hiw-page > .hero + .panel,
.rw-hiw-page .panel:first-of-type {
  margin-top: 28px !important;
  border: 1px solid rgba(20,115,245,.22) !important;
  border-radius: 14px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(20,115,245,.10), transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.005)) !important;
  padding: 0 !important;
  overflow: hidden;
}
.rw-hiw-page .panel-head {
  height: auto !important;
  padding: 14px 22px !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  background: rgba(255,255,255,.018) !important;
  margin: 0 !important;
}
.rw-hiw-page .panel-head h2 {
  font-family: 'Bebas Neue', Inter, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  margin: 0 !important;
  color: #f2f7ff !important;
  text-transform: uppercase;
}
.rw-hiw-page .panel-body {
  padding: 22px !important;
}

/* Example metric — bigger demo card */
.rw-hiw-page .panel:first-of-type .metric {
  text-align: left;
  padding: 0;
}
.rw-hiw-page .panel:first-of-type .metric h3 {
  font-family: 'Bebas Neue', Inter, sans-serif !important;
  font-size: 30px !important;
  letter-spacing: 0.03em !important;
  font-weight: 400 !important;
  color: #f2f7ff !important;
  margin: 0 0 14px !important;
}
.rw-hiw-page .panel:first-of-type .metric p {
  font-size: 14px;
  color: #c8d6e7;
  margin: 4px 0;
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.rw-hiw-page .panel:first-of-type .metric p:last-of-type {
  border-bottom: 0;
}
.rw-hiw-page .panel:first-of-type .metric p b {
  color: #58a8ff;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-right: 12px;
}
.rw-hiw-page .formula {
  margin-top: 16px;
  padding: 12px 14px;
  border-left: 3px solid rgba(20,115,245,.5);
  background: rgba(20,115,245,.05);
  border-radius: 0 8px 8px 0;
  color: #c8d6e7;
  font-size: 13px;
  line-height: 1.55;
  font-style: italic;
}

/* Core Metrics grid — 2x3 (or 3x2) numbered cards */
.rw-hiw-page > .grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr !important;
  gap: 22px !important;
  margin-top: 28px !important;
}
.rw-hiw-page .grid > .panel,
.rw-hiw-page .grid > .stack > .panel {
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.005)) !important;
  padding: 0 !important;
  overflow: hidden;
  margin: 0 !important;
}

/* Numbered metrics inside Core Metrics */
.rw-hiw-page .grid > article.panel .panel-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 22px !important;
}
.rw-hiw-page .grid > article.panel .metric {
  padding: 16px 16px 18px;
  border: 1px solid rgba(255,255,255,.05);
  background: rgba(255,255,255,.012);
  border-radius: 10px;
  position: relative;
  counter-increment: hiw-metric;
}
.rw-hiw-page .grid > article.panel .panel-body {
  counter-reset: hiw-metric;
}
.rw-hiw-page .grid > article.panel .metric::before {
  content: counter(hiw-metric, decimal-leading-zero);
  position: absolute;
  top: 14px;
  right: 16px;
  font-family: 'Bebas Neue', Inter, sans-serif;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: rgba(20,115,245,.35);
  font-weight: 400;
}
.rw-hiw-page .grid > article.panel .metric h3 {
  font-family: 'Bebas Neue', Inter, sans-serif !important;
  font-size: 17px !important;
  letter-spacing: 0.05em !important;
  font-weight: 400 !important;
  color: #f2f7ff !important;
  margin: 0 0 8px !important;
  padding-right: 36px;
}
.rw-hiw-page .grid > article.panel .metric p {
  font-size: 13px;
  line-height: 1.55;
  color: #c8d6e7;
  margin: 0 0 10px;
}
.rw-hiw-page .grid > article.panel .metric .formula {
  margin-top: 10px;
  font-size: 12px;
  padding: 8px 10px;
}

/* Aside: Ranking Rules + Why This Matters — vertical stack */
.rw-hiw-page aside.stack {
  display: flex !important;
  flex-direction: column;
  gap: 14px;
}
.rw-hiw-page aside.stack .panel-body {
  padding: 22px !important;
}
.rw-hiw-page .callout {
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.014);
  border-radius: 10px;
  display: grid;
  gap: 4px;
}
.rw-hiw-page .callout b {
  font-family: 'Bebas Neue', Inter, sans-serif;
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #58a8ff;
  font-weight: 400;
  text-transform: uppercase;
}
.rw-hiw-page .callout span {
  font-size: 13px;
  color: #c8d6e7;
  line-height: 1.5;
}
.rw-hiw-page .badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 12px 0 0;
}
.rw-hiw-page .badge {
  font-family: Inter, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border: 1px solid rgba(20,115,245,.30);
  background: rgba(20,115,245,.08);
  color: #7fb6ff;
  border-radius: 5px;
}

/* Tier Movement chips */
.rw-hiw-page .rise { color: #3ee6a6; font-weight: 700; }
.rw-hiw-page .hold { color: #9fb3cf; font-weight: 700; }
.rw-hiw-page .fall { color: #ff5a6b; font-weight: 700; }

/* Mobile */
@media (max-width: 760px) {
  .rw-hiw-page { padding: 0 16px; }
  .rw-hiw-page .hero h1 { font-size: 36px; }
  .rw-hiw-page .hero .lede { font-size: 15px; }
  .rw-hiw-page > .grid { grid-template-columns: 1fr !important; }
  .rw-hiw-page .grid > article.panel .panel-body { grid-template-columns: 1fr; }
  .rw-hiw-page .panel:first-of-type .metric h3 { font-size: 24px !important; }
}


/* === Scroll-to-top — dual button (2026-05-19) ===============================
   .rw-st-floating: original floating bottom-right circle, visible after 400px scroll
   .rw-st-in-footer: centered "Back to top" pill inside the footer (always present
   in footer markup, only visible when user scrolls to footer naturally).
   ============================================================================ */

/* Floating bottom-right button — original behavior */
.rw-scroll-top.rw-st-floating {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  left: auto !important;
  top: auto !important;
  z-index: 50 !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  border: 1px solid rgba(20,115,245,.45) !important;
  background: rgba(20,115,245,.18) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #cfe3ff !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  cursor: pointer;
  display: grid !important;
  place-items: center;
  box-shadow: 0 12px 28px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04) inset;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, background .15s ease, border-color .15s ease;
  margin: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.rw-scroll-top.rw-st-floating.rw-st-on {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}
.rw-scroll-top.rw-st-floating:hover {
  background: rgba(20,115,245,.30) !important;
  border-color: rgba(20,115,245,.65) !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}
@media (max-width: 640px) {
  .rw-scroll-top.rw-st-floating { width: 40px !important; height: 40px !important; bottom: 16px !important; right: 16px !important; }
}

/* In-footer pill — already styled by .rw-st-in-footer block above; no changes here */


/* === Mobile footer accordion (2026-05-19) ===================================
   On mobile (<720px), each footer-grid nav column collapses to a tappable
   heading. Tap the h4 to expand/collapse the links inside. Desktop layout
   unchanged.
   ============================================================================ */
@media (max-width: 720px) {
  footer.rw-footer.rw-footer-header-match .rw-footer-grid {
    display: block !important;
    margin-top: 14px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav {
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.06) !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav:last-child {
    border-bottom: 1px solid rgba(255,255,255,.06) !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav h4 {
    position: relative;
    margin: 0 !important;
    padding: 14px 32px 14px 4px !important;
    cursor: pointer;
    user-select: none;
    font-family: 'Bebas Neue', Inter, sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0.08em !important;
    color: #f2f7ff !important;
    text-transform: uppercase;
    -webkit-tap-highlight-color: transparent;
  }
  /* Chevron indicator */
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav h4::after {
    content: "+";
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    font-family: Inter, sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    color: rgba(159,179,207,.65);
    transition: transform .2s ease, color .2s ease;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav.rw-fnav-open h4::after {
    content: "−";
    color: #58a8ff;
  }
  /* Collapsed state — hide all <a> tags inside */
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav > a {
    display: none !important;
  }
  /* Open state — show with slight padding */
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav.rw-fnav-open > a {
    display: block !important;
    padding: 8px 4px !important;
    font-size: 14px !important;
    color: #c8d6e7 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255,255,255,.03);
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav.rw-fnav-open > a:last-child {
    border-bottom: 0 !important;
    padding-bottom: 14px !important;
  }
  footer.rw-footer.rw-footer-header-match .rw-footer-grid > nav.rw-fnav-open > a:hover {
    color: #f2f7ff !important;
  }
}


/* === "View Tryout Hub" CTA — shrink on mobile (2026-05-19) ==================
   Desktop CTA is 44px tall × 20px padding. On mobile it dominates the
   strip. Shrink to a compact pill that doesn't take half the width.
   ============================================================================ */
@media (max-width: 720px) {
  .rw-tryout-hero-cta {
    height: 34px !important;
    padding: 0 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.06em !important;
    border-radius: 8px !important;
    gap: 4px !important;
  }
  .rw-tryout-hero-cta::after {
    font-size: 14px !important;
    margin-left: 1px;
  }
  /* Also tighten the parent link for mobile so CTA fits comfortably */
  .rw-tryout-hero-link {
    padding: 12px 14px !important;
    min-height: auto !important;
    gap: 10px !important;
  }
  .rw-tryout-hero-copy strong {
    font-size: 13px !important;
  }
}
@media (max-width: 420px) {
  /* Very small phones — hide the text, just keep the ›  arrow */
  .rw-tryout-hero-cta {
    width: 38px !important;
    height: 32px !important;
    padding: 0 !important;
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100% !important;
    position: relative;
  }
  .rw-tryout-hero-cta::after {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    text-indent: 0;
    margin: 0;
    font-size: 17px !important;
  }
}


/* === Ticker FINAL contrast fix (2026-05-19) =================================
   .rw-ticker-card has a white background. .rw-ticker-card.is-final
   .rw-ticker-status was using var(--green) (#3ee6a6 mint) on white —
   contrast ratio ~2:1, fails WCAG and reads as faint.
   Switch to a darker, more saturated green for white-card contexts only.
   The ticker card background is white; other places using --green on dark
   navy bg are unchanged.
   ============================================================================ */
.rw-ticker-card.is-final .rw-ticker-status {
  color: #0a8c5f !important;
}
.rw-ticker-card.is-final .rw-ticker-status::before {
  background: #0a8c5f !important;
  box-shadow: 0 0 0 3px rgba(10,140,95,.14) !important;
}
/* Also the SCHEDULED state — currently muted very pale on white. Bump up. */
.rw-ticker-card.is-scheduled .rw-ticker-status {
  color: rgba(7,19,35,.72) !important;
}


/* === Remove the in-footer "Back to top" pill (2026-05-19) ==================
   User asked to keep only the floating bottom-right button. The in-footer
   pill is still created by the inline script on each page (kept the script
   intact for easy rollback); CSS hides it.
   ============================================================================ */
.rw-scroll-top.rw-st-in-footer,
.rw-footer .shell.rw-footer-inner > .rw-scroll-top.rw-st-in-footer {
  display: none !important;
}


/* === Accessibility pass (2026-05-19) ========================================
   Adds focus-visible rings on interactive elements, fixes placeholder
   contrast, adds reduced-motion fallbacks for animations, adds
   keyboard hints for elements with role=button.
   ============================================================================ */

/* Global focus-visible — clear blue ring on any keyboard-focused interactive
   element. Uses :focus-visible so mouse users don't see rings on click. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex="0"]:focus-visible {
  outline: 2px solid rgba(20,115,245,.65) !important;
  outline-offset: 2px !important;
  border-radius: 4px;
}

/* Score ticker cards — make them keyboard-accessible.
   They're <article> in markup but behave as click targets to open Game Center. */
.rw-ticker-card {
  outline: none;
}
.rw-ticker-card:focus-visible {
  outline: 2px solid rgba(20,115,245,.75) !important;
  outline-offset: 2px !important;
}

/* Standings sortable th — focus ring for keyboard sort access */
.rw-standings-page .st-table thead th.right:focus-visible {
  outline: 2px solid rgba(20,115,245,.65) !important;
  outline-offset: -2px !important;
}

/* Placeholder contrast — bump from #6b7d99 (4.49) to #8aa0bf (7.03 ratio) */
input::placeholder,
textarea::placeholder {
  color: #8aa0bf !important;
  opacity: 1 !important;
}

/* Skip link — for keyboard users to jump past the header nav */
.rw-skip-link {
  position: absolute;
  top: -100px;
  left: 8px;
  z-index: 100;
  padding: 10px 16px;
  background: #1473f5;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 6px;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: top .15s ease;
}
.rw-skip-link:focus,
.rw-skip-link:focus-visible {
  top: 8px;
  outline: 2px solid rgba(255,255,255,.5);
  outline-offset: 2px;
}

/* Reduced-motion — respect the user's system preference.
   Disables non-essential animations (lifts, fades, scroll-smooth). */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  /* Re-enable critical animations that aren't decorative */
  .rw-skel .rw-skel-row,
  .rw-skel .rw-skel-cell {
    animation: none !important;
    background: rgba(255,255,255,.05) !important;
  }
}

/* Mobile footer accordion h4 — make sure it's keyboard-accessible.
   Already a click target, just needs proper button semantics. */
@media (max-width: 720px) {
  footer.rw-footer .rw-footer-grid > nav h4 {
    outline: none;
  }
  footer.rw-footer .rw-footer-grid > nav h4:focus-visible {
    outline: 2px solid rgba(20,115,245,.65) !important;
    outline-offset: -2px !important;
    background: rgba(20,115,245,.05);
  }
}


/* === Standings mobile horizontal scroll fade (2026-05-19) ==================
   On phones the standings table scrolls horizontally (10+ columns). Add a
   right-edge gradient that fades the bg to indicate more content off-screen.
   Premium pattern — same cue iOS / SofaScore use on horizontally scrollable
   tables.
   ============================================================================ */
@media (max-width: 640px) {
  .rw-standings-page .st-table-wrap {
    position: relative;
  }
  .rw-standings-page .st-table-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 32px;
    background: linear-gradient(90deg, transparent, #0b121d 90%);
    pointer-events: none;
    z-index: 4;
    opacity: 1;
    transition: opacity .15s ease;
  }
  /* When user has scrolled all the way right, hide the fade.
     Uses CSS-only detection — scrollbar at end of content. */
  .rw-standings-page .st-table-wrap:has(.st-table:hover)::after {
    /* Keep fade visible during hover for clarity; no other state change */
  }
}
