/* Keep hit targets stable; preserve layout transforms on centered controls. */
.nav-menu[data-ui-menu] .nav-menu-panel{
  display:block;visibility:hidden;opacity:0;pointer-events:none;
  transform:translateY(-7px) scale(.98);transform-origin:top right;
  transition:opacity .18s ease,transform .22s cubic-bezier(.2,.75,.25,1),visibility 0s linear .22s;
}
.nav-menu[data-ui-menu][data-open="true"] .nav-menu-panel{
  visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0) scale(1);
  transition-delay:0s;
}
.nav-menu[data-ui-menu] .nav-menu-panel a{
  opacity:0;transform:translateY(-4px);
  transition:opacity .16s ease,transform .2s ease,background-color .16s ease;
}
.nav-menu[data-ui-menu][data-open="true"] .nav-menu-panel a{opacity:1;transform:translateY(0);transition-delay:35ms}
.nav-menu[data-ui-menu][data-open="true"] .nav-menu-panel a:nth-child(n+3){transition-delay:60ms}
.nav-menu[data-ui-menu][data-open="true"] .nav-menu-panel a:nth-child(n+6){transition-delay:85ms}
button,.btn{
  transition:scale .16s cubic-bezier(.2,.75,.25,1),background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,filter .16s ease;
}
@media(hover:hover) and (pointer:fine){
  button:not(:disabled):not(.loading):hover,.btn:hover{scale:1.025}
}
button:not(:disabled):not(.loading):active,.btn:active{scale:.975}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
body.ui-modal-open{overflow:hidden}
.player-info-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.player-info-heading h2{margin:0}
.player-info-heading button{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;padding:0;font-size:24px;line-height:1}
.player-info-card{overscroll-behavior:contain}
.card,.tournament-item,.icon-tile,.mini-feature-card,.group-card,.home-status-card{
  transition-property:background-color,border-color,box-shadow,color,opacity;
  transition-duration:.16s;
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .brand,.icon-tile-img,.banner-btn{transition:none!important}
  button,.btn,.nav-menu[data-ui-menu] .nav-menu-panel,.nav-menu[data-ui-menu] .nav-menu-panel a{transition:none!important}
  button:hover,button:active,.btn:hover,.btn:active{scale:1!important}
}

/* Separate team names, origin labels and scores into stable columns. */
#main-bracket .bracket-match .p{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;padding:7px 0}
#main-bracket .bracket-match .p+.p{border-top:1px solid var(--border)}
#main-bracket .bracket-match .p .name{grid-column:1;grid-row:1;min-width:0;overflow-wrap:anywhere;line-height:1.35}
#main-bracket .bracket-team-person{display:block}
#main-bracket .bracket-match .p .source-tag{grid-column:1;grid-row:2;text-align:left;font-size:10px;opacity:.85}
#main-bracket .bracket-match .p .set-scores{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:20px;font-weight:900;letter-spacing:0;margin:0;color:#dc2626;min-width:1.2em;text-align:center}
#main-bracket .bracket-court-row{padding-top:5px}
#tournament-podium>div>div{grid-template-columns:8em minmax(0,1fr)!important;column-gap:18px!important}
#tournament-podium>div>div>span{line-height:1.5;overflow-wrap:anywhere}
#tournament-podium>div>div>strong{letter-spacing:.02em}
#clear-bye-1,#clear-bye-2{font-size:11px;padding:7px 9px;white-space:nowrap}
.main-integrity-panel button{font-size:12px;padding:9px 13px}
.main-integrity-panel p{font-size:13px;line-height:1.5}
