.glossary {
  color: inherit;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-decoration-color: #888;
  text-underline-offset: 3px;
  cursor: help;
  position: relative;
  border: none;
  padding: 0;
  font: inherit;
  background: none;
}
.glossary::after {
  content: '\00B0';
  font-size: 0.7em;
  vertical-align: super;
  color: #888;
  margin-left: 1px;
}

/* popup-definition */
.glossary .def {
  display: none;
  position: absolute;
  z-index: 1;
  width: 300px;
  bottom: 100%;
  left: 50%;
  margin-left: -150px;
  background-color: #1a1a2e;
  color: #eee;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 0.88em;
  line-height: 1.5;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}
/* show on hover AND click */
.glossary:hover .def,
.glossary:active .def,
.glossary:focus .def {
  display: inline-block;
}
/* triangle arrow */
.glossary:hover .def::after,
.glossary:active .def::after,
.glossary:focus .def::after {
  content: ' ';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #1a1a2e transparent transparent transparent;
}

/* glossary table styles */
.glossary_table td {
  vertical-align: top;
}

.glossary_table td:first-child {
  padding-right: 1em;
}

.glossary_table tr {
  border-bottom: 1px solid #ddd;
}

.glossary_table tr:nth-child(even) {
  background-color: #99999933;
}
