/* A small (i) that explains the thing beside it. Opens on hover and on
   focus-within, so it is reachable without a pointer; no JS, because there is
   nothing to interact with inside it. */
.info-pop {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}

.info-pop__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: var(--border-width) solid var(--border-default);
  border-radius: 50%;
  background: var(--surface-card);
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  color: var(--text-tertiary);
  cursor: help;
  transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}

.info-pop:focus-within .info-pop__toggle,
.info-pop--open .info-pop__toggle {
  color: var(--text-primary);
  border-color: var(--border-strong);
}

@media (hover: hover) {
  .info-pop:hover .info-pop__toggle {
    color: var(--text-primary);
    border-color: var(--border-strong);
  }
}

.info-pop__panel {
  position: absolute;
  top: calc(100% + var(--space-sm));
  right: 0;
  z-index: 20;
  width: max-content;
  max-width: min(320px, calc(100vw - 2 * var(--space-md)));
  padding: var(--space-smd);
  border: var(--border-width) solid var(--border-default);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  box-shadow: var(--shadow-lg);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--weight-regular);
  letter-spacing: normal;
  text-transform: none;
  text-align: left;
  color: var(--text-secondary);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur) var(--ease-out), visibility var(--dur) var(--ease-out);
}

/* Tapped open, or reached by keyboard. */
.info-pop:focus-within .info-pop__panel,
.info-pop--open .info-pop__panel {
  opacity: 1;
  visibility: visible;
}

/* Pointing at it is enough, where there is a pointer. */
@media (hover: hover) {
  .info-pop:hover .info-pop__panel {
    opacity: 1;
    visibility: visible;
  }
}

.info-pop__panel p {
  margin: 0 0 var(--space-sm);
}

.info-pop__panel p:last-child {
  margin-bottom: 0;
}

/* Wide enough for a champion pool. The default panel is sized for a sentence,
   and a frequency list in it would wrap every name. */
.info-pop--wide .info-pop__panel {
  width: 20rem;
  max-width: calc(100vw - var(--space-xl));
}

.info-pop__title {
  display: block;
  margin-bottom: var(--space-sm);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

/* Inside a popover the bar track needs to read against the panel, not the page. */
.info-pop__panel .champ-freq__item {
  grid-template-columns: 7.5rem minmax(0, 1fr) 2.5rem;
}
