html {
  box-sizing: border-box;
}

body {
  margin: 0;
}

*,
*:before,
*:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: transparent;
}

:host {
  font-family: var(--c-font-family);
}

::-ms-reveal {
  display: none;
}

:host {
  /**
   * @prop --c-otp-input-border-color: OTP input border color
   * @prop --c-otp-input-border-color-active: Active OTP input border color
   * @prop --c-otp-input-height: OTP input height
   * @prop --c-otp-input-width: OTP input width
   * @prop --c-otp-input-font-size: OTP input font size
   * @prop --c-otp-input-text-color: OTP input text color
   */
  --_c-otp-input-border-color: var(--c-otp-input-border-color, var(--c-tertiary-500));
  --_c-otp-input-border-color-active: var(--c-otp-input-border-color-active, var(--c-primary-600));
  --_c-otp-input-height: var(--c-otp-input-height, 56px);
  --_c-otp-input-width: var(--c-otp-input-width, 42px);
  --_c-otp-input-font-size: var(--c-otp-input-font-size, 24px);
  --_c-otp-input-text-color: var(--c-otp-input-text-color, var(--c-text-body));
  --_c-otp-input-border-width: 1px;
  display: block;
}

:host(.error) {
  --_c-otp-input-border-color: var(--c-error-600);
  --_c-otp-input-border-color-active: var(--c-error-600);
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.c-otp-input {
  backface-visibility: hidden;
  display: inline-grid;
  gap: 8px;
  grid-auto-columns: minmax(auto, var(--_c-otp-input-width));
  grid-auto-flow: column;
  margin-bottom: 8px;
  transform: translate3d(0, 0, 0);
}
.c-otp-input--hide-details {
  margin-bottom: 0;
}
.c-otp-input input {
  border-radius: 4px;
  border: none;
  box-shadow: inset 0 0 0 var(--_c-otp-input-border-width) var(--_c-otp-input-border-color);
  color: var(--_c-otp-input-text-color);
  font-size: var(--_c-otp-input-font-size);
  height: var(--_c-otp-input-height);
  max-width: var(--_c-otp-input-width);
  min-width: 24px;
  text-align: center;
  width: 100%;
}
.c-otp-input input:focus {
  --_c-otp-input-border-width: 2px;
  --_c-otp-input-border-color: var(--_c-otp-input-border-color-active);
  outline: none;
}
.c-otp-input c-message {
  grid-column: 1/span var(--_c-otp-input-count);
  grid-row: 2;
}