@import "tailwindcss" source("../..");

@theme {
  --color-primary-50: oklch(0.985 0 0);
  --color-primary-100: oklch(0.967 0.001 286.375);
  --color-primary-200: oklch(0.92 0.004 286.32);
  --color-primary-300: oklch(0.871 0.006 286.286);
  --color-primary-400: oklch(0.705 0.015 286.067);
  --color-primary-500: oklch(0.552 0.016 285.938);
  --color-primary-600: oklch(0.442 0.017 285.786);
  --color-primary-700: oklch(0.37 0.013 285.805);
  --color-primary-800: oklch(0.274 0.006 286.033);
  --color-primary-900: oklch(0.21 0.006 285.885);
  --color-primary-950: oklch(0.141 0.005 285.823);
  --font-display: "Nunito Sans", sans-serif;
}

@import "@fortawesome/fontawesome-free/css/fontawesome" source("../..");
@import "@fortawesome/fontawesome-free/css/regular" source("../..");
@import "@fortawesome/fontawesome-free/css/solid" source("../..");
@import "@fortawesome/fontawesome-free/css/brands" source("../..");

/* fix firefox scrollbars */
* {
  scrollbar-width: auto;
  scrollbar-color: rgba(161, 161, 170, var(--tw-bg-opacity)) white;
}

.fa-fade {
  animation: pulse 1s ease-in-out 0s infinite alternate;
}

@keyframes pulse {
  0% { scale: 0.95; opacity: 0.5; }
  100% { scale: 1.0; opacity: 1; }
}

/* disconnect toast */
.phx-connected > #disconnect {
  opacity: 0 !important;
  pointer-events: none;
}

.phx-error > #disconnect {
  opacity: 0.95 !important;
}

.invalid-feedback {
  color: #f36c69;
  display: block;
  margin: -1rem 0 2rem;
}

/* LiveView specific classes for your customization */
.phx-no-feedback.invalid-feedback,
.phx-no-feedback .invalid-feedback {
  display: none;
}

.phx-click-loading {
  opacity: 0.5;
  transition: opacity 1s ease-out;
}

.phx-loading{
  cursor: wait;
}

.phx-modal {
  opacity: 1!important;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.4);
}

.phx-modal-content {
  background-color: #fefefe;
  margin: 15vh auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

.phx-modal-close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.phx-modal-close:hover,
.phx-modal-close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.fade-in-scale {
  animation: 0.2s ease-in 0s normal forwards 1 fade-in-scale-keys;
}

.fade-out-scale {
  animation: 0.2s ease-out 0s normal forwards 1 fade-out-scale-keys;
}

.fade-in {
  animation: 0.2s ease-out 0s normal forwards 1 fade-in-keys;
}
.fade-out {
  animation: 0.2s ease-out 0s normal forwards 1 fade-out-keys;
}

@keyframes fade-in-scale-keys{
  0% { scale: 0.95; opacity: 0; }
  100% { scale: 1.0; opacity: 1; }
}

@keyframes fade-out-scale-keys{
  0% { scale: 1.0; opacity: 1; }
  100% { scale: 0.95; opacity: 0; }
}

@keyframes fade-in-keys{
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes fade-out-keys{
  0% { opacity: 1; }
  100% { opacity: 0; }
}

/* components */
.input {
  @apply px-4 py-2 rounded-lg border focus:outline-hidden;
  @apply shadow-sm focus:shadow-lg;
}

.input-primary {
  @apply bg-primary-900;
  @apply border-primary-900 hover:border-primary-800 active:border-primary-700;
  @apply text-primary-400 placeholder-primary-600;
}

.checkbox {
  @apply bg-primary-900;
  -ms-transform: scale(1.5);
  -moz-transform: scale(1.5);
  -webkit-transform: scale(1.5);
  -o-transform: scale(1.5);
  transform: scale(1.5);
  padding: 10px;
  margin: 1em auto;
}

.title {
  @apply tracking-wide leading-5;
}

.btn {
  @apply px-4 py-2 rounded-lg focus:outline-hidden;
  @apply shadow-sm active:shadow-lg;
  @apply border;
  @apply transition-all duration-300 ease-in-out;
}

.btn-primary {
  @apply bg-primary-900 active:bg-primary-800;
  @apply border-primary-900 hover:border-primary-800 active:border-primary-700;
  @apply text-primary-400;
}

.btn-secondary {
  @apply bg-primary-800 active:bg-primary-700;
  @apply border-primary-800 hover:border-primary-700 active:border-primary-600;
  @apply text-primary-400;
}

.btn-alert {
  @apply bg-rose-800 active:bg-rose-900;
  @apply border-rose-800 active:border-rose-900;
  @apply text-primary-300;
}

.hr {
  @apply mx-auto w-full max-w-3xl border border-primary-600;
}

.link {
  @apply hover:underline;
  @apply transition-colors duration-500 ease-in-out;
}

.alert {
  @apply bg-primary-900;
  @apply text-primary-400;
  padding: 15px;
  margin-bottom: 20px;
  border: 1px solid transparent;
  border-radius: 4px;
}

.alert-info {
  @apply text-primary-400;
}

.alert-warning {
  color: #8a6d3b;
}

.alert-danger {
  color: #a94442;
}

.alert p {
  @apply mb-0;
}

.alert:empty {
  @apply hidden;
}
