/*!
 * Copyright 2021 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

.depsdev-Icon {
  height: 1.125em;
  vertical-align: text-bottom;
  width: auto;
}

.go-Icon {
  filter: none;
  height: 1.125em;
  vertical-align: text-bottom;
  width: auto;
}

.go-Icon--accented {
  filter: brightness(0) invert(45%) sepia(94%) saturate(6735%) hue-rotate(176deg) brightness(94%)
    contrast(101%);
}

.go-Icon--inverted {
  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg)
    brightness(103%) contrast(107%);
  @media (forced-colors: active) and (prefers-color-scheme: light) {
    filter: brightness(500%) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg)
      brightness(103%) contrast(107%);
  }
}

[data-theme='dark'] .go-Icon:not(.go-Icon--accented) {
  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg)
    brightness(103%) contrast(107%);
}

[data-theme='dark'] .go-Icon--accented {
  filter: brightness(0) invert(69%) sepia(46%) saturate(466%) hue-rotate(153deg) brightness(90%)
    contrast(88%);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .go-Icon:not(.go-Icon--accented) {
    filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg)
      brightness(103%) contrast(107%);
  }

  :root:not([data-theme='light']) .go-Icon--accented {
    filter: brightness(0) invert(57%) sepia(63%) saturate(4864%) hue-rotate(160deg) brightness(100%)
      contrast(101%);
  }
}
