/**
 * @file
 * Contextual links styles.
 */

.contextual {
  z-index: 100;
  box-sizing: border-box;

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  .trigger {
    overflow: clip;
    text-indent: -999px;
    border: 1px solid var(--admin-color-border);
    border-radius: 50%;
    background: var(--admin-color-bg-raised);
    box-shadow: 0 2px 4px rgb(0, 0, 0, 0.15);

    &,
    &.visually-hidden.focusable {
      width: 32px;
      height: 32px;
    }

    &::before {
      position: absolute;
      display: block;
      width: 0.75rem;
      height: 0.75rem;
      margin: auto;
      content: "";
      background: var(--admin-color-primary);
      inset: 0;
      mask-image: url("../../migration/media/icons/media-library/media-edit.svg");
      mask-size: var(--admin-space-s);
      mask-position: 100% 100%;

      @media (forced-colors: active) {
        background: buttonText;
      }
    }

    &:hover {
      box-shadow:
        0 0 0 1px var(--admin-color-focus-border),
        0 0 0 4px var(--admin-color-focus);
    }
  }

  &.open .trigger {
    border-block-end: 0 none;
    border-radius: 50%;
  }
}

.contextual-region .contextual .contextual-links {
  min-width: 120px;
  margin: 0;
  padding: 0.5em;
  border: 1px solid transparent;
  border-radius: var(--admin-radius-l);
  background: var(--admin-color-bg-raised);
  box-shadow: var(--admin-shadow-2);
  inset-block-start: var(--admin-space-2xs);

  li {
    background: transparent;

    a {
      margin: 0;
      padding: var(--admin-space-xs) var(--admin-space-m);
      white-space: nowrap;
      color: var(--admin-color-primary);
      border-radius: var(--admin-radius-s);
      background: transparent;
      font-family: var(--admin-font-family);
      line-height: 1;

      &:hover,
      &:active {
        color: var(--admin-color-text-on-primary);
        background: var(--admin-color-primary);

        @media (forced-colors: active) {
          text-decoration: underline;
        }
      }

      .no-touchevents & {
        &:hover,
        &:active {
          color: var(--admin-color-text-on-primary);
          background: var(--admin-color-primary);
        }
      }
    }
  }

  .ajax-progress-throbber {
    border-radius: 50%;
    background: var(--admin-color-primary);
    inset-block-start: 0.125rem;

    &::before {
      position: absolute;
      display: block;
      width: 1.125rem;
      height: 1.125rem;
      content: "";
      animation: gin-throbber 0.75s linear infinite;
      border: 2px solid var(--admin-color-primary);
      border-inline-end: 2px dotted transparent;
      border-radius: 50%;
      inset-block-start: var(--admin-space-xs);
      inset-inline-start: var(--admin-space-xs);
    }
  }
}

@keyframes gin-throbber {
  0% {
    transform: rotateZ(0);
  }

  100% {
    transform: rotateZ(360deg);
  }
}
