.rdio-button,
.rdio-button-mini {
  --def: rgb(45, 45, 45);
  --green: rgb(0, 230, 118);
  --red: rgb(255, 23, 68);
  --yellow: rgb(255, 234, 0);

  background: var(--def);
  border-style: solid;
  border-width: 1px;
  border-bottom-color: rgba(0, 0, 0, 0.87);
  border-left-color: rgba(255, 255, 255, 0.7);
  border-right-color: rgba(0, 0, 0, 0.87);
  border-top-color: rgba(255, 255, 255, 0.7);
  color: rgb(255, 255, 255);
  font-family: inherit;
  font-weight: 500;
  height: 40px;
  line-height: 18px;
  margin: 2px;
  overflow: hidden;
  padding: 2px 8px;
  position: relative;
  text-overflow: clip;
  text-shadow: 0 0 4px rgb(0, 0, 0);
  white-space: normal;

  &:active,
  &:focus {
    outline: 0;
  }

  &:active {
    top: 2px;
    transform: scale(0.98);
    transform-origin: bottom center;
  }

  &.off::after,
  &.on::after,
  &.partial::after {
    content: "";
    display: block;
    height: 6px;
    position: absolute;
    right: 4px;
    top: 4px;
    width: 6px;

    animation: blink 1s linear infinite both;
  }

  &.off::after {
    background: var(--red);
    box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--red);
  }

  &.off.blink::after {
    animation: blink-off 500ms linear infinite;
  }

  @keyframes blink-off {
    0%, 50% {
      background: var(--def);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 0px 0px var(--def);
    }

    50%, 100% {
      background: var(--red);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--red);
    }
  }

  &.on::after {
    background: var(--green);
    box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--green);
  }

  &.on.blink::after {
    animation: blink-on 500ms linear infinite;
  }

  @keyframes blink-on {
    0%, 50% {
      background: var(--def);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 0px 0px var(--def);
    }

    50%, 100% {
      background: var(--def);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--green);
    }
  }

  &.partial::after {
    background: var(--yellow);
    box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--yellow);
  }

  &.partial.blink::after {
    animation: blink-partial 500ms linear infinite;
  }

  @keyframes blink-partial {
    0%, 50% {
      background: var(--def);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 0px 0px var(--def);
    }

    50%, 100% {
      background: var(--yellow);
      box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7) inset, 0 0 3px 1px var(--yellow);
    }
  }
}

.rdio-button {
  color: rgb(250, 250, 250);
  font-size: 12px;
  min-width: 80px;
  text-transform: uppercase;
}
