/*!
 * 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.
 */

select:focus:not([disabled]),
input:focus:not([disabled]) {
  border-color: var(--color-brand-primary);
  -webkit-box-shadow: var(--focus-box-shadow);
  box-shadow: var(--focus-box-shadow);
  outline: transparent;
  z-index: 2;
}

input::placeholder {
  color: var(--color-text-subtle);
}

.go-Form {
  align-items: start;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.go-Label {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.go-Label--inline {
  align-items: center;
  flex-direction: row;
}
.go-Label legend {
  margin-bottom: 0.5rem;
}
.go-Label--inline legend {
  float: left;
  margin-bottom: 0;
}
.go-Input,
.go-Select {
  background: var(--color-input);
  border: var(--border);
  border-radius: var(--border-radius);
  color: var(--color-input-text);
}
.go-Input {
  padding: 0.40625rem 0.5rem;
}
.go-Select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url('/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg') right no-repeat;
  background-color: var(--color-background);
  background-position: right center;
  border-radius: var(--border-radius);
  margin: 0;
  padding: 0.34375rem 1.25rem 0.34375rem 0.5rem;
}

.go-InputGroup {
  display: flex;
}
.go-InputGroup .go-Input {
  flex: 1;
}
.go-InputGroup > :not(:first-child, :last-child) {
  border-radius: 0;
  margin-left: -0.0625rem;
}
.go-InputGroup > :first-child {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.go-InputGroup > :last-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  margin-left: -0.0625rem;
}
.go-InputGroup > *:hover,
.go-InputGroup > *:focus {
  z-index: 1;
}

.go-ShortcutKey {
  display: flex;
  position: relative;
}
.go-ShortcutKey .go-Input {
  flex-grow: 1;
}
.go-ShortcutKey::after {
  align-self: center;
  background-color: var(--color-background-accented);
  border-radius: 0.5rem;
  color: var(--gray-6);
  content: attr(data-shortcut);
  content: attr(data-shortcut) / attr(data-shortcut-alt);
  display: none;
  font-size: 0.75rem;
  padding: 0.0625rem 0;
  position: absolute;
  right: 0.75rem;
  text-align: center;
  width: 1.5rem;
  z-index: 1;
}
@media only screen and (min-width: 52rem) {
  .go-ShortcutKey::after {
    display: initial;
  }
}
