@use '../../util/util';

#{util.$buttons},
#{util.$singleSelects} {
  background-color: #DDDDDD;
  color: #000000;
  border: 1px solid #000;
  border-radius: 3px;
  box-shadow: inset 1px 1px 0 #DDDDDD, inset 2px 2px 0 #fff, inset -1px -1px 1px #555;
  padding: 2px 10px;
  min-width: 58px;
  text-align: center;
  font-weight: bold;
  cursor: default;
  user-select: none;

  &:disabled, &.disabled {
    color: #777;
    border-color: #888;
    box-shadow: none;
  }

  &:not(:disabled, .disabled):active, &.active {
    background-color: #666666;
    color: #fff;
    box-shadow: inset 1px 1px 1px #333, inset -1px -1px 1px #999;
  }

  &:focus-visible {
    outline: 2px solid var(--primary-3);
    border-radius: 1px;
  }
}

@mixin primary-button {
  position: relative;

  &::before {
    content: " ";
    position: absolute;
    inset: -3px;
    border-radius: 4px;
    box-sizing: border-box;
    box-shadow: 0px 0px 0px 1px black, inset 1px 1px 0 #DDDDDD, inset -1px -1px 0 #737373, inset 0 0 0 2px #ADADAD;
  }
}

form:focus-within:not(:has(button:focus, input[type=button]:focus, input[type=submit]:focus, input[type=reset]:focus)) {
  #{util.$buttons} {
    &:default {
      @include primary-button;
    }
  }
}

#{util.$buttons} {
  &.primary {
    @include primary-button;
  }
}
