@charset 'utf-8';

.#{$pretty--class-name} * {
  box-sizing: border-box;
}

//Throw error on invalid input types.
.#{$pretty--class-name} input:not([type='checkbox']):not([type='radio']) {
  display: none;

  @if $pretty--debug {
    + *:after {
      content: $pretty--err-message;
      border: 1px solid #dedede;
      border-left: 3px solid #d9534f;
      padding: 9px;
      font-size: 1em;
      font-weight: 600;
      color: #d9534f;
      position: absolute;
      z-index: 3;
      background: #fbfbfb;
      top: 0;
      left: 0;
    }
  }
}

.#{$pretty--class-name} {
  position: relative;
  display: inline-block;
  margin-right: 1em;
  white-space: nowrap;
  line-height: 1;

  input {
    position: absolute;
    left: 0;
    top: 0;
    min-width: 1em;
    width: 100%;
    height: 100%;
    z-index: $pretty--z-index-front;
    opacity: 0;
    margin: 0;
    padding: 0;
    cursor: pointer;
  }

  .state {
    label {
      position: initial;
      display: inline-block;
      font-weight: normal;
      margin: 0;
      text-indent: $pretty--label-text-offset;
      min-width: $pretty--box-size;

      &:before,
      &:after {
        content: '';
        width: $pretty--box-size;
        height: $pretty--box-size;
        display: block;
        box-sizing: border-box;
        border-radius: 0;
        border: 1px solid transparent;
        z-index: $pretty--z-index-back;
        position: absolute;
        left: 0;
        top: $pretty-top-offset;
        background-color: transparent;
      }

      &:before {
        border-color: $pretty--color-default;
      }
    }

    &.p-is-hover,
    &.p-is-indeterminate {
      display: none;
    }
  }
}