@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
  font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;

  color-scheme: light dark;
  color: rgba(255, 255, 255, 0.87);
  background-color: #242424;

  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  font-weight: 500;
  color: hsl(var(--primary));
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
}

h1 {
  font-size: 3.2em;
  line-height: 1.1;
}

button {
  border-radius: 8px;
  border: 1px solid transparent;
  /* padding: 0.6em 1.2em; */
  font-size: 1em;
  font-weight: 500;
  font-family: inherit;
  background-color: transparent;
  cursor: pointer;
  transition: border-color 0.25s;
}

button:hover {
  border-color: #646cff;
}

button:focus,
button:focus-visible {
  outline: 4px auto -webkit-focus-ring-color;
}

@media (prefers-color-scheme: light) {
  :root {
    color: #213547;
    background-color: #ffffff;
  }
}

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 240 10% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 240 10% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 240 10% 3.9%;
    --primary: 252 87% 68%;
    --primary-foreground: 0 0% 98%;
    --secondary: 240 4.8% 95.9%;
    --secondary-foreground: 240 5.9% 10%;
    --muted: 240 4.8% 95.9%;
    --muted-foreground: 240 3.8% 46.1%;
    --accent: 240 4.8% 95.9%;
    --accent-foreground: 240 5.9% 10%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 5.9% 90%;
    --input: 240 5.9% 90%;
    --ring: 252 87% 68%;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
    --radius: 0.5rem;
  }

  .dark {
    --background: 240 10% 3.9%;
    --foreground: 0 0% 98%;
    --card: 240 10% 3.9%;
    --card-foreground: 0 0% 98%;
    --popover: 240 10% 3.9%;
    --popover-foreground: 0 0% 98%;
    --primary: 252 87% 68%;
    --primary-foreground: 240 5.9% 10%;
    --secondary: 240 3.7% 15.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 240 3.7% 15.9%;
    --muted-foreground: 240 5% 64.9%;
    --accent: 240 3.7% 15.9%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 3.7% 15.9%;
    --input: 240 3.7% 15.9%;
    --ring: 252 87% 68%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 280 65% 60%;
    --chart-5: 340 75% 55%;
  }

  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground;
  }

  input {
    @apply bg-background text-foreground;
  }

  textarea {
    @apply bg-background text-foreground border border-input rounded-md px-3 py-2 text-sm;
  }

  select {
    @apply bg-background text-foreground border border-input rounded-md px-3 py-2 text-sm;
  }


  input[type="checkbox"] {
    accent-color: hsl(var(--primary));
    background-color: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: 0.25rem;
  }

  input[type="checkbox"]:not(:checked) {
    background-color: hsl(var(--background));
    border-color: hsl(var(--border));
  }

  input[type="checkbox"]:checked {
    background-color: hsl(var(--primary));
    border-color: hsl(var(--primary));
  }

  /* Radio button styles for better visibility */
  input[type="radio"] {
    accent-color: hsl(var(--primary));
    background-color: hsl(var(--background));
    border: 2px solid hsl(var(--border));
    border-radius: 50%;
    width: 1rem;
    height: 1rem;
    position: relative;
    cursor: pointer;
  }

  input[type="radio"]:not(:checked) {
    background-color: hsl(var(--background));
    border-color: hsl(var(--border));
  }

  input[type="radio"]:checked {
    background-color: hsl(var(--primary));
    border-color: hsl(var(--primary));
    background-image: radial-gradient(circle, hsl(var(--primary-foreground)) 25%, transparent 25%);
  }

  input[type="radio"]:hover {
    border-color: hsl(var(--primary));
  }

  input[type="radio"]:focus {
    outline: 2px solid hsl(var(--ring));
    outline-offset: 2px;
  }

  /* Info box styles for light and dark mode */
  .bg-info-bg {
    @apply bg-blue-50 dark:bg-blue-950/30;
  }

  .border-info-border {
    @apply border-blue-200 dark:border-blue-800;
  }

  .text-info-foreground {
    @apply text-blue-700 dark:text-blue-300;
  }

  .bg-info-code {
    @apply bg-blue-100 dark:bg-blue-900/50;
  }

  /* Scrollbar styles for light and dark mode */
  ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  ::-webkit-scrollbar-track {
    @apply bg-background;
  }

  ::-webkit-scrollbar-thumb {
    @apply bg-muted-foreground/30 rounded-md;
  }

  ::-webkit-scrollbar-thumb:hover {
    @apply bg-muted-foreground/50;
  }

  /* Firefox scrollbar */
  * {
    scrollbar-width: thin;
    scrollbar-color: hsl(var(--muted-foreground) / 0.3) hsl(var(--background));
  }
}

/* Animation for successful installation checkmark */
@keyframes success-tick-kf {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }

  30% {
    opacity: 1;
    transform: scale(1.1);
  }

  80% {
    opacity: 1;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}

.animate-success-tick {
  animation: success-tick-kf 2s ease-out forwards;
}