@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);

  --text-step--2: var(--step--2);
  --text-step--1: var(--step--1);
  --text-step-0: var(--step-0);
  --text-step-1: var(--step-1);
  --text-step-2: var(--step-2);
  --text-step-3: var(--step-3);
  --text-step-4: var(--step-4);
  --text-step-5: var(--step-5);
}

:root {
  --step--2: clamp(0.5002rem, 0.449rem + 0.2273vw, 0.6252rem);
  --step--1: clamp(0.7072rem, 0.6349rem + 0.3215vw, 0.884rem);
  --step-0: clamp(1rem, 0.8977rem + 0.4545vw, 1.25rem);
  --step-1: clamp(1.414rem, 1.2694rem + 0.6427vw, 1.7675rem);
  --step-2: clamp(1.9994rem, 1.7949rem + 0.9088vw, 2.4992rem);
  --step-3: clamp(2.8271rem, 2.538rem + 1.2851vw, 3.5339rem);
  --step-4: clamp(3.9976rem, 3.5887rem + 1.8171vw, 4.997rem);
  --step-5: clamp(5.6526rem, 5.0745rem + 2.5694vw, 7.0657rem);

  --radius: 0.5rem;
  --background: oklch(0.12 0.015 40);
  --foreground: oklch(0.98 0.01 60);
  --card: oklch(0.16 0.03 40 / 0.6);
  --card-foreground: oklch(0.98 0.01 60);
  --popover: oklch(0.14 0.02 40 / 0.85);
  --popover-foreground: oklch(0.98 0.01 60);
  --primary: oklch(0.82 0.18 85);
  --primary-foreground: oklch(0.12 0.015 40);
  --secondary: oklch(0.65 0.2 55);
  --secondary-foreground: oklch(0.98 0.01 60);
  --muted: oklch(0.22 0.02 40 / 0.6);
  --muted-foreground: oklch(0.7 0.08 40);
  --accent: oklch(0.75 0.15 70 / 0.15);
  --accent-foreground: oklch(0.98 0.01 60);
  --destructive: oklch(0.55 0.18 25);
  --border: oklch(1 0 0 / 12%);
  --input: oklch(1 0 0 / 8%);
  --ring: oklch(0.82 0.18 85 / 40%);
  --chart-1: oklch(0.82 0.18 85);
  --chart-2: oklch(0.65 0.2 55);
  --chart-3: oklch(0.75 0.15 70);
  --chart-4: oklch(0.55 0.18 25);
  --chart-5: oklch(0.9 0.1 95);
  --sidebar: oklch(0.14 0.02 40 / 0.7);
  --sidebar-foreground: oklch(0.98 0.01 60);
  --sidebar-primary: oklch(0.82 0.18 85);
  --sidebar-primary-foreground: oklch(0.12 0.015 40);
  --sidebar-accent: oklch(1 0 0 / 8%);
  --sidebar-accent-foreground: oklch(0.98 0.01 60);
  --sidebar-border: oklch(1 0 0 / 12%);
  --sidebar-ring: oklch(0.82 0.18 85 / 40%);
}

@layer base {
  * {
    border-color: var(--border);
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
  }

  /* Global Scrollbar Styling */
  html,
  body {
    scrollbar-width: thin;
    scrollbar-color: var(--muted) transparent;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  html::-webkit-scrollbar-track,
  body::-webkit-scrollbar-track {
    background: transparent;
  }

  html::-webkit-scrollbar-thumb,
  body::-webkit-scrollbar-thumb {
    background: var(--muted);
    border-radius: 9999px;
  }

  html::-webkit-scrollbar-thumb:hover,
  body::-webkit-scrollbar-thumb:hover {
    background: var(--primary);
  }
}

@layer utilities {
  .bg-aurora-page {
    background: radial-gradient(circle at 50% -20%, oklch(0.25 0.1 50) 0%, var(--background) 70%);
    background-attachment: fixed;
  }

  .bg-aurora {
    background-image: linear-gradient(135deg, oklch(0.82 0.18 85) 0%, oklch(0.65 0.2 55) 100%);
  }

  .glass-card {
    background: var(--card);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border);
  }

  .sun-flare {
    box-shadow: 0 0 40px oklch(0.82 0.18 85 / 0.12);
  }

  /* Custom Scrollbar Utility Class */
  .custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: var(--muted) transparent;
  }

  .custom-scrollbar::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  .custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
  }

  .custom-scrollbar::-webkit-scrollbar-thumb {
    background: var(--muted);
    border-radius: 9999px;
  }

  .custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: var(--primary);
  }

  /* Entrance Animations */
  .animate-in {
    animation-duration: 0.6s;
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
    animation-fill-mode: forwards;
  }

  .fade-in {
    opacity: 0;
    animation-name: fade-in;
  }

  .slide-up {
    opacity: 0;
    transform: translateY(20px);
    animation-name: slide-up;
  }

  .zoom-in {
    opacity: 0;
    transform: scale(0.95);
    animation-name: zoom-in;
  }

  @keyframes fade-in {
    to {
      opacity: 1;
    }
  }

  @keyframes slide-up {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes zoom-in {
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  /* Interaction Utilities */
  .hover-lift {
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease;
  }

  .hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px -5px oklch(0 0 0 / 0.3), 0 0 20px oklch(0.82 0.18 85 / 0.1);
  }

  .hover-glow {
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
  }

  .hover-glow:hover {
    border-color: oklch(0.82 0.18 85 / 0.4);
    box-shadow: 0 0 20px oklch(0.82 0.18 85 / 0.15);
  }

  .hover-scale {
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  .hover-scale:hover {
    transform: scale(1.02);
  }

  .active-press {
    transition: transform 0.1s ease;
  }

  .active-press:active {
    transform: scale(0.97);
  }

  /* Staggered Delay Utilities */
  .delay-100 {
    animation-delay: 100ms;
  }

  .delay-200 {
    animation-delay: 200ms;
  }

  .delay-300 {
    animation-delay: 300ms;
  }

  .delay-400 {
    animation-delay: 400ms;
  }

  .delay-500 {
    animation-delay: 500ms;
  }

  /* Sidebar collapsed state - center icons */
  [data-state="collapsed"] [data-sidebar="header"],
  [data-state="collapsed"] [data-sidebar="footer"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  [data-state="collapsed"] [data-sidebar="content"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  [data-state="collapsed"] [data-sidebar="group"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    align-items: center !important;
  }

  [data-state="collapsed"] [data-sidebar="menu"] {
    align-items: center !important;
    width: 100% !important;
  }

  [data-state="collapsed"] [data-sidebar="menu-item"] {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
  }

  [data-state="collapsed"] [data-sidebar="menu-button"] {
    justify-content: center !important;
    gap: 0 !important;
  }
}