@layer utilities {
.transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
.animate-pulse {
    animation: var(--animate-pulse);
  }
.animate-spin {
    animation: var(--animate-spin);
  }
.scroll-mt-8 {
    scroll-margin-top: calc(var(--spacing) * 8);
  }
.list-inside {
    list-style-position: inside;
  }
.list-disc {
    list-style-type: disc;
  }
.fill-danger-500 {
    fill: var(--color-danger-500);
  }
.tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }
.uppercase {
    text-transform: uppercase;
  }
.italic {
    font-style: italic;
  }
.underline-offset-4 {
    text-underline-offset: 4px;
  }
.opacity-60 {
    opacity: 60%;
  }
.opacity-70 {
    opacity: 70%;
  }
.outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
.transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}

@layer components {
.badge {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--spacing) * 1);
    border-radius: calc(infinity * 1px);
    padding-inline: calc(var(--spacing) * 2.5);
    padding-block: calc(var(--spacing) * 0.5);
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
    &[data-variant="default"] {
      border-style: var(--tw-border-style);
      border-width: 1px;
      border-color: var(--color-neutral-300);
      background-color: var(--color-neutral-100);
      color: var(--color-neutral-800);
    }
    &[data-variant="success"] {
      border-style: var(--tw-border-style);
      border-width: 1px;
      border-color: var(--color-success-300);
      background-color: var(--color-success-100);
      color: var(--color-success-800);
    }
    &[data-variant="warning"] {
      border-style: var(--tw-border-style);
      border-width: 1px;
      border-color: var(--color-warning-300);
      background-color: var(--color-warning-100);
      color: var(--color-warning-800);
    }
    &[data-variant="info"] {
      border-style: var(--tw-border-style);
      border-width: 1px;
      border-color: var(--color-info-300);
      background-color: var(--color-info-100);
      color: var(--color-info-800);
    }
  }
.form-input {
    width: 100%;
    border-radius: var(--radius-md);
    border-style: var(--tw-border-style);
    border-width: 1px;
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 3);
    padding-block: calc(var(--spacing) * 2);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    --tw-duration: 200ms;
    transition-duration: 200ms;
    &::placeholder {
      color: var(--color-neutral-400);
    }
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    &:focus {
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    }
    &:focus {
      --tw-outline-style: none;
      outline-style: none;
    }
    font-family: inherit;
    &[data-state="default"] {
      border-color: var(--color-neutral-300);
      &:focus {
        border-color: var(--color-primary-500);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.605 0.100 248) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-primary-500) 20%, transparent);
        }
      }
    }
    &[data-state="error"] {
      border-color: var(--color-danger-500);
      &:focus {
        border-color: var(--color-danger-600);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.63 0.22 25) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-danger-500) 20%, transparent);
        }
      }
    }
    &[data-state="success"] {
      border-color: var(--color-success-500);
      &:focus {
        border-color: var(--color-success-600);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.64 0.17 165) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-success-500) 20%, transparent);
        }
      }
    }
    &:disabled {
      cursor: not-allowed;
      border-color: var(--color-neutral-200);
      background-color: var(--color-neutral-100);
      color: var(--color-neutral-500);
    }
  }
.form-textarea {
    width: 100%;
    border-radius: var(--radius-md);
    border-style: var(--tw-border-style);
    border-width: 1px;
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 3);
    padding-block: calc(var(--spacing) * 2);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    --tw-duration: 200ms;
    transition-duration: 200ms;
    &::placeholder {
      color: var(--color-neutral-400);
    }
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    &:focus {
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    }
    &:focus {
      --tw-outline-style: none;
      outline-style: none;
    }
    min-height: calc(var(--spacing) * 20);
    resize: vertical;
    font-family: inherit;
    &[data-state="default"] {
      border-color: var(--color-neutral-300);
      &:focus {
        border-color: var(--color-primary-500);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.605 0.100 248) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-primary-500) 20%, transparent);
        }
      }
    }
    &[data-state="error"] {
      border-color: var(--color-danger-500);
      &:focus {
        border-color: var(--color-danger-600);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.63 0.22 25) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-danger-500) 20%, transparent);
        }
      }
    }
    &[data-state="success"] {
      border-color: var(--color-success-500);
      &:focus {
        border-color: var(--color-success-600);
      }
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(0.64 0.17 165) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-success-500) 20%, transparent);
        }
      }
    }
    &:disabled {
      cursor: not-allowed;
      border-color: var(--color-neutral-200);
      background-color: var(--color-neutral-100);
      color: var(--color-neutral-500);
    }
  }
}

@keyframes fadeInOut {
  0% {
    opacity: 0;
    transform: translateY(0.25rem);
  }
  10% {
    opacity: 1;
    transform: translateY(0);
  }
  90% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-0.25rem);
  }
}

@keyframes dots {
  0%, 20% {
    content: ".";
  }
  40% {
    content: "..";
  }
  60% {
    content: "...";
  }
  80%, 100% {
    content: "";
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes customPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}