@import "tailwindcss";

@layer base {
  html {
    font-variant-ligatures: none;
  }
}

@theme {
  --color-olp-red: #e81e25;
  --font-sans: "Host Grotesk", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-headline: "Rubik", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

  --color-gray-50: oklch(98.5% 0.001 106.423);
  --color-gray-100: oklch(97% 0.001 106.424);
  --color-gray-200: oklch(92.3% 0.003 48.717);
  --color-gray-300: oklch(86.9% 0.005 56.366);
  --color-gray-400: oklch(70.9% 0.01 56.259);
  --color-gray-500: oklch(55.3% 0.013 58.071);
  --color-gray-600: oklch(44.4% 0.011 73.639);
  --color-gray-700: oklch(37.4% 0.01 67.558);
  --color-gray-800: oklch(26.8% 0.007 34.298);
  --color-gray-900: oklch(21.6% 0.006 56.043);
  --color-gray-950: oklch(14.7% 0.004 49.25);
}

.field_with_errors {
  display: contents;
}

.field_with_errors label {
  @apply text-red-800;
}

.field_with_errors input, .field_with_errors select {
  @apply outline-2 outline-red-800;
}

@keyframes scale-in {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  60% {
    transform: scale(1.15);
    opacity: 1;
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

/* Turbo Frame transitions using view-transition API */
@supports (view-transition-name: auto) {
  turbo-frame#membership_form {
    view-transition-name: membership-form-transition;
  }
}

/* Fallback animation for browsers without view transitions */
@keyframes fade-in-up {
  from {
    opacity: 0;
    /* transform: translateY(10px); */
  }
  to {
    opacity: 1;
    /* transform: translateY(0); */
  }
}

turbo-frame#membership_form > * {
  animation: fade-in-up 0.4s ease-out;
}

/* Pagy Pagination Styles */
.pagy {
  --spacing: 0.25rem;
  --padding: 0.625rem;
  --rounding: 0.5rem;
  --border-width: 1px;
  --font-size: 0.875rem;
  --font-weight: 500;
  --line-height: 1.5;

  --text: hsl(0 0% 20%);
  --text-hover: #e81e25;
  --text-current: hsl(0 0% 100%);
  --background: hsl(0 0% 100%);
  --background-hover: hsl(0 0% 97%);
  --background-current: #e81e25;
  --background-input: hsl(0 0% 98%);
  --border-color: hsl(0 0% 87%);
  --opacity: 1;

  @apply flex items-center space-x-[var(--spacing)] font-[var(--font-weight)] text-[length:var(--font-size)] text-[var(--text)] leading-[var(--line-height)];

  a:not([role="separator"]) {
    /* all but gaps */
    @apply block rounded-[var(--rounding)] px-[var(--padding)] py-[calc(var(--padding)/2)] bg-[var(--background)] border-solid border-[var(--border-color)] border-[length:var(--border-width)] opacity-[var(--opacity)] transition-all duration-150;
  }

  a[href]:hover {
    /* all links on hover */
    @apply bg-[var(--background-hover)] text-[var(--text-hover)] border-[var(--background-current)] shadow-sm;
  }

  a:not([href]) {
    /* all but links */
    @apply cursor-default;
  }

  a[role="link"]:not([aria-current]) {
    /* disabled links */
    @apply opacity-[calc(var(--opacity)*.4)] cursor-not-allowed bg-gray-50;
  }

  a[aria-current] {
    /* current page */
    @apply bg-[var(--background-current)] text-[var(--text-current)] border-[var(--background-current)] shadow-sm;
  }

  a[role="separator"] {
    /* gaps */
    @apply opacity-50 cursor-default border-transparent;
  }

  label {
    @apply inline-block whitespace-nowrap rounded-[var(--rounding)] px-[var(--padding)] py-[calc(var(--padding)/2)] bg-[var(--background)] border-solid border-[length:var(--border-width)] border-[var(--border-color)];

    input {
      @apply text-[var(--text)] text-[length:var(--font-size)] leading-[var(--line-height)] rounded-[calc(var(--rounding)/2)] font-[var(--font-weight)] bg-[var(--background-input)] border-[length:var(--border-width)] border-[var(--border-color)] px-2 py-1 ml-1 focus:outline-none focus:ring-2 focus:ring-[var(--background-current)] focus:border-transparent;
    }
  }
}
