@tailwind base;

html {
  line-height: 1.15;
}

@tailwind components;

:not(input) {
  user-select: none;
}

:root {
  --violet-gradient: linear-gradient(
    -180deg,
    rgb(144 89 255 / 80%) 0%,
    rgb(144 89 255 / 40%) 100%
  );
}

a {
  color: inherit;
  text-decoration: none;
}

a:focus {
  outline: 1px dotted grey;
}

body {
  background-image: url('../assets/bg.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow-x: hidden;
}

.btn {
  @apply bg-primary;
  @apply text-white;
  @apply cursor-pointer;
  @apply py-4;
  @apply px-6;
  @apply font-semibold;
}

.btn:hover {
  @apply bg-primary_accent;
}

.btn:focus {
  @apply bg-primary_accent;
}

.checkbox {
  @apply leading-normal;
  @apply select-none;
}

.checkbox > input[type='checkbox'] {
  @apply absolute;
  @apply opacity-0;
}

.checkbox > label {
  @apply cursor-pointer;
}

.checkbox > label::before {
  /* @apply bg-grey-10; */
  @apply border-default;
  @apply rounded-sm;

  content: '';
  height: 1.5rem;
  width: 1.5rem;
  margin-right: 0.5rem;
  float: left;
}

.checkbox > label:hover::before {
  @apply border-primary;
}

.checkbox > input:focus + label::before {
  @apply border-primary;
}

.checkbox > input:checked + label::before {
  @apply bg-primary;
  @apply border-primary;

  background-image: url('../assets/lock.svg');
  background-position: center;
  background-size: 1.25rem;
  background-repeat: no-repeat;
}

.checkbox > input:disabled + label {
  cursor: auto;
}

.checkbox > input:disabled + label::before {
  @apply bg-primary;
  @apply border-primary;

  background-image: url('../assets/lock.svg');
  background-position: center;
  background-size: 1.25rem;
  background-repeat: no-repeat;
  cursor: auto;
}

details {
  overflow: hidden;
}

details > summary::marker {
  display: none;
}

details > summary > svg {
  transition: all 0.25s cubic-bezier(0.07, 0.95, 0, 1);
}

details[open] {
  overflow-y: auto;
}

details[open] > summary > svg {
  transform: rotate(90deg);
}

footer li a:hover {
  text-decoration: underline;
}

.feedback-link {
  background-color: #000;
  background-image: url('../assets/feedback.svg');
  background-position: 0.125rem 0.25rem;
  background-repeat: no-repeat;
  background-size: 1.125rem;
  color: #fff;
  display: block;
  font-size: 0.75rem;
  line-height: 0.75rem;
  padding: 0.375rem 0.375rem 0.375rem 1.25rem;
  text-indent: 0.125rem;
  white-space: nowrap;
}

.link-primary {
  @apply text-primary;
}

.link-primary:hover {
  @apply text-primary_accent;
}

.link-primary:focus {
  @apply text-primary_accent;
}

.main-header img {
  height: 32px;
  width: auto;
}

.main {
  display: flex;
  position: relative;
  max-width: 64rem;
  width: 100%;
}

.main > section {
  @apply bg-white;
}

#password-msg::after {
  content: '\200b';
}

progress {
  @apply bg-grey-30;
  @apply rounded-sm;
  @apply w-full;
  @apply h-1;
}

progress::-webkit-progress-bar {
  @apply bg-grey-30;
  @apply rounded-sm;
  @apply w-full;
  @apply h-1;
}

progress::-webkit-progress-value {
  /* stylelint-disable */
  background-image: -webkit-linear-gradient(
      -45deg,
      transparent 20%,
      rgb(255 255 255 / 40%) 20%,
      rgb(255 255 255 / 40%) 40%,
      transparent 40%,
      transparent 60%,
      rgb(255 255 255 / 40%) 60%,
      rgb(255 255 255 / 40%) 80%,
      transparent 80%
    ),
    -webkit-linear-gradient(left, var(--color-primary), var(--color-primary));
  /* stylelint-enable */
  border-radius: 2px;
  background-size: 21px 20px, 100% 100%, 100% 100%;
}

progress::-moz-progress-bar {
  /* stylelint-disable */
  background-image: -moz-linear-gradient(
      135deg,
      transparent 20%,
      rgb(255 255 255 / 40%) 20%,
      rgb(255 255 255 / 40%) 40%,
      transparent 40%,
      transparent 60%,
      rgb(255 255 255 / 40%) 60%,
      rgb(255 255 255 / 40%) 80%,
      transparent 80%
    ),
    -moz-linear-gradient(left, var(--color-primary), var(--color-primary));
  /* stylelint-enable */
  border-radius: 2px;
  background-size: 21px 20px, 100% 100%, 100% 100%;
  animation: animate-stripes 1s linear infinite;
}

@keyframes animate-stripes {
  100% {
    background-position: -21px 0;
  }
}

select {
  background-image: url('../assets/select-arrow.svg');
  background-position: calc(100% - 0.75rem);
  background-repeat: no-repeat;
}

@screen md {
  .main-header img {
    height: 48px;
    width: auto;
  }

  .main {
    @apply flex-1;
    @apply self-center;
    @apply items-center;
    @apply m-auto;
    @apply py-8;

    max-height: 42rem;
    width: calc(100% - 3rem);
  }
}

@screen dark {
  body {
    @apply text-grey-10;

    background-image: unset;
  }

  .btn {
    @apply bg-primary;
    @apply text-white;
  }

  .btn:hover {
    @apply bg-primary_accent;
  }

  .btn:focus {
    @apply bg-primary_accent;
  }

  .link-primary {
    @apply text-primary;
  }

  .link-primary:hover {
    @apply text-primary_accent;
  }

  .link-primary:focus {
    @apply text-primary_accent;
  }

  .main > section {
    @apply bg-grey-90;
  }

  @screen md {
    .main > section {
      @apply border-default;
      @apply border-grey-80;
    }
  }
}

@tailwind utilities;

@responsive {
  .shadow-light {
    box-shadow: 0 0 8px 0 rgb(12 12 13 / 10%);
  }

  .shadow-big {
    box-shadow: 0 12px 18px 2px rgb(34 0 51 / 4%),
      0 6px 22px 4px rgb(7 48 114 / 12%), 0 6px 10px -4px rgb(14 13 26 / 12%);
  }
}

@variants focus {
  .outline {
    outline: 1px dotted grey;
  }
}

.word-break-all {
  word-break: break-all;
  line-break: anywhere;
}

.signin {
  backface-visibility: hidden;
  border-radius: 6px;
  transition-property: transform, background-color;
  transition-duration: 250ms;
  transition-timing-function: cubic-bezier(0.07, 0.95, 0, 1);
}

.signin:hover,
.signin:focus {
  transform: scale(1.0625);
}

.signin:hover:active {
  transform: scale(0.9375);
}

/* begin signin button color experiment */

.white-primary {
  @apply border-primary;
  @apply border-2;
  @apply text-primary;
}

.white-primary:hover,
.white-primary:focus {
  @apply bg-primary;
  @apply text-white;
}

.primary {
  @apply bg-primary;
  @apply text-white;
}

.white-violet {
  @apply border-violet;
  @apply border-2;
  @apply text-violet;
}

.white-violet:hover,
.white-violet:focus {
  @apply bg-violet;
  @apply text-white;

  background-image: var(--violet-gradient);
}

.violet {
  @apply bg-violet;
  @apply text-white;
}

.violet:hover,
.violet:focus {
  background-image: var(--violet-gradient);
}

/* end signin button color experiment */
