/* mixins & extensions */

@keyframes in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes in-down {
  0% {
    opacity: 0;
    transform: translate3D(0, -5px, 0);
  }

  100% {
    opacity: 1;
    transform: translate3D(0, 0, 0);
  }
}

@keyframes in-up {
  0% {
    opacity: 0;
    transform: translate3D(0, 5px, 0);
  }

  100% {
    opacity: 1;
    transform: translate3D(0, 0, 0);
  }
}

@keyframes in-scale {
  0% {
    opacity: 0;
    transform: scale3D(0.95, 0.95, 1);
  }

  100% {
    opacity: 1;
    transform: scale3D(1, 1, 1);
  }
}

/**
* Currently only used in Checkbox.
*/

:root {
  --calcite-popper-transition: 150ms ease-in-out;
}

:host([hidden]) {
  display: none;
}

:host {
  color: var(--calcite-ui-text-1);
  display: inline-block;
  font-weight: var(--calcite-font-weight-medium);
  -webkit-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.time-picker {
  box-shadow: 0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);
  align-items: center;
  display: flex;
  border-radius: var(--calcite-border-radius);
}

span {
  align-items: center;
  background-color: var(--calcite-ui-foreground-1);
  display: inline-flex;
  justify-content: center;
}

span.button {
  cursor: pointer;
}

span.button:hover, span.button:focus {
  background-color: var(--calcite-ui-foreground-2);
}

span.button:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

span.button:active {
  background-color: var(--calcite-ui-foreground-3);
}

span.button.top-left {
  border-top-left-radius: var(--calcite-border-radius);
}

span.button.bottom-left {
  border-bottom-left-radius: var(--calcite-border-radius);
}

span.button.top-right {
  border-top-right-radius: var(--calcite-border-radius);
}

span.button.bottom-right {
  border-bottom-right-radius: var(--calcite-border-radius);
}

span.button calcite-icon {
  color: var(--calcite-ui-text-3);
}

span.input {
  font-weight: var(--calcite-font-weight-medium);
  position: relative;
}

span.input:hover {
  box-shadow: inset 0 0 0 2px var(--calcite-ui-foreground-2);
}

span.input:focus, span.input:hover:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  box-shadow: inset 0 0 0 2px var(--calcite-ui-brand);
}

:host([scale=s]) {
  font-size: var(--calcite-font-size--1);
}

:host([scale=s]) span {
  height: 24px;
  width: 40px;
}

:host([scale=s]) .delimiter {
  height: 72px;
}

:host([scale=s][hour-display-format="12"]) .time-picker {
  width: 124.2px;
}

:host([scale=s][hour-display-format="12"]:not([step="60"])) .time-picker {
  width: 168px;
}

:host([scale=s][hour-display-format="24"]) .time-picker {
  width: 84.2px;
}

:host([scale=s][hour-display-format="24"]:not([step="60"])) .time-picker {
  width: 128.4px;
}

:host([scale=m]) {
  font-size: var(--calcite-font-size-0);
}

:host([scale=m]) span {
  height: 32px;
  width: 44px;
}

:host([scale=m]) .delimiter {
  height: 96px;
}

:host([scale=m][hour-display-format="12"]) .time-picker {
  width: 136.8px;
}

:host([scale=m][hour-display-format="12"]:not([step="60"])) .time-picker {
  width: 186px;
}

:host([scale=m][hour-display-format="24"]) .time-picker {
  width: 92.8px;
}

:host([scale=m][hour-display-format="24"]:not([step="60"])) .time-picker {
  width: 141.6px;
}

:host([scale=l]) {
  font-size: var(--calcite-font-size-1);
}

:host([scale=l]) span {
  height: 48px;
  width: 64px;
}

:host([scale=l]) .delimiter {
  height: 144px;
}

:host([scale=l][hour-display-format="12"]) .time-picker {
  width: 198px;
}

:host([scale=l][hour-display-format="12"]:not([step="60"])) .time-picker {
  width: 268px;
}

:host([scale=l][hour-display-format="24"]) .time-picker {
  width: 134px;
}

:host([scale=l][hour-display-format="24"]:not([step="60"])) .time-picker {
  width: 204px;
}