@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap";
@import "https://esm.sh/tailwindcss?deps=react@18.3.1,react-dom@18.3.1,scheduler@0.23.2,react-router-dom@6.26.1,react-router@6.26.1,@tanstack/react-router@1.56.1,zustand@4.5.4,jotai@2.9.3,valtio@1.13.2,@reduxjs/toolkit@2.3.0,react-redux@9.1.2,immer@10.1.1,framer-motion@11.5.4,gsap@3.12.5,lenis@1.1.13,three@0.168.0,@react-three/fiber@8.17.7,@react-three/drei@9.109.2,@react-spring/web@9.7.4,motion@11.11.17,@radix-ui/react-dialog@1.1.1,@radix-ui/react-dropdown-menu@2.1.1,@radix-ui/react-select@2.1.1,@radix-ui/react-tooltip@1.1.2,@radix-ui/react-popover@1.1.1,@radix-ui/react-tabs@1.1.0,@radix-ui/react-accordion@1.2.0,@radix-ui/react-checkbox@1.1.1,@radix-ui/react-switch@1.1.0,@radix-ui/react-slider@1.2.0,@radix-ui/react-avatar@1.1.0,@radix-ui/react-label@2.1.0,@radix-ui/react-separator@1.1.0,@radix-ui/react-scroll-area@1.1.0,class-variance-authority@0.7.0,clsx@2.1.1,tailwind-merge@2.5.2,lucide-react@0.441.0,react-icons@5.3.0,@supabase/supabase-js@2.45.4,@supabase/auth-helpers-react@0.5.0,@tanstack/react-query@5.56.2,@tanstack/react-table@8.20.5,axios@1.7.7,swr@2.2.5,zod@3.23.8,react-hook-form@7.53.0,@hookform/resolvers@3.9.0,lodash-es@4.17.21,date-fns@3.6.0,dayjs@1.11.13,uuid@10.0.0,nanoid@5.0.7,react-helmet-async@2.0.5,react-hot-toast@2.4.1,sonner@1.5.0,react-intersection-observer@9.13.1,react-use@17.5.1,usehooks-ts@3.1.0,recharts@2.12.7,chart.js@4.4.4,react-chartjs-2@5.2.0,d3@7.9.0,@radix-ui/react-toast@1.2.1,@radix-ui/react-alert-dialog@1.1.1,@radix-ui/react-aspect-ratio@1.1.0,@radix-ui/react-progress@1.1.0,@radix-ui/react-radio-group@1.2.0,@radix-ui/react-collapsible@1.1.0,@radix-ui/react-hover-card@1.1.1,@radix-ui/react-context-menu@2.2.1,@radix-ui/react-menubar@1.1.1,@radix-ui/react-navigation-menu@1.2.0,@radix-ui/react-toggle@1.1.0,@radix-ui/react-toggle-group@1.1.0,cmdk@1.0.0,vaul@0.9.4,react-day-picker@8.10.1,input-otp@1.2.4,embla-carousel-react@8.3.0,embla-carousel-autoplay@8.3.0,next-themes@0.3.0,react-resizable-panels@2.1.3,@floating-ui/react@0.26.24,react-markdown@9.0.1,remark-gfm@4.0.0,i18next@23.15.1,react-i18next@15.0.2,@formkit/auto-animate@0.8.2,react-countup@6.5.3,react-fast-marquee@1.6.5,react-dropzone@14.2.9,qrcode.react@4.0.1,@tanstack/react-virtual@3.10.8,@upbo/ui@1.2.0&external=react,react-dom,react-dom/client,react/jsx-runtime,react/jsx-dev-runtime,scheduler,react-router-dom,react-router,@tanstack/react-router,zustand,jotai,valtio,@reduxjs/toolkit,react-redux,immer,framer-motion,gsap,gsap/ScrollTrigger,gsap/ScrollSmoother,lenis,three,@react-three/fiber,@react-three/drei,@react-spring/web,motion,@radix-ui/react-dialog,@radix-ui/react-dropdown-menu,@radix-ui/react-select,@radix-ui/react-tooltip,@radix-ui/react-popover,@radix-ui/react-tabs,@radix-ui/react-accordion,@radix-ui/react-checkbox,@radix-ui/react-switch,@radix-ui/react-slider,@radix-ui/react-avatar,@radix-ui/react-label,@radix-ui/react-separator,@radix-ui/react-scroll-area,class-variance-authority,clsx,tailwind-merge,lucide-react,react-icons,@supabase/supabase-js,@supabase/auth-helpers-react,@tanstack/react-query,@tanstack/react-table,axios,swr,zod,react-hook-form,@hookform/resolvers,lodash-es,date-fns,dayjs,uuid,nanoid,react-helmet-async,react-hot-toast,sonner,react-intersection-observer,react-use,usehooks-ts,recharts,chart.js,react-chartjs-2,d3,@radix-ui/react-toast,@radix-ui/react-alert-dialog,@radix-ui/react-aspect-ratio,@radix-ui/react-progress,@radix-ui/react-radio-group,@radix-ui/react-collapsible,@radix-ui/react-hover-card,@radix-ui/react-context-menu,@radix-ui/react-menubar,@radix-ui/react-navigation-menu,@radix-ui/react-toggle,@radix-ui/react-toggle-group,cmdk,vaul,react-day-picker,input-otp,embla-carousel-react,embla-carousel-autoplay,next-themes,react-resizable-panels,@floating-ui/react,react-markdown,remark-gfm,i18next,react-i18next,@formkit/auto-animate/react,react-countup,react-fast-marquee,react-dropzone,qrcode.react,@tanstack/react-virtual,@upbo/ui&target=es2022";

/* vfs:src/styles/globals.css */
@config "../../tailwind.config.ts";
:root,
[data-theme=midnight] {
  --color-bg: #0a0b0f;
  --color-surface: #10121a;
  --color-surface-2: #16192a;
  --color-text: #f0f2ff;
  --color-text-muted: #8b91b8;
  --color-text-faint: #3d4268;
  --color-primary: #7c6af7;
  --color-primary-hover: #9082ff;
  --color-accent: #00d1ff;
  --color-border: rgba(120, 130, 200, 0.12);
  --color-border-strong: rgba(120, 130, 200, 0.25);
  --color-success: #22c55e;
  --color-warning: #f59e0b;
  --color-error: #ef4444;
  --color-info: #3b82f6;
  --radius: 14px;
  --glow-color:
    124,
    106,
    247;
  --accent-glow:
    0,
    209,
    255;
  --glass-bg: rgba(16, 18, 26, 0.7);
  --glass-border: rgba(120, 130, 200, 0.15);
}
[data-theme=ocean] {
  --color-bg: #050e1a;
  --color-surface: #091524;
  --color-surface-2: #102030;
  --color-text: #e0f0ff;
  --color-text-muted: #7aa8cc;
  --color-text-faint: #2a4a66;
  --color-primary: #0ea5e9;
  --color-primary-hover: #38bdf8;
  --color-accent: #06ffc8;
  --color-border: rgba(14, 165, 233, 0.15);
  --color-border-strong: rgba(14, 165, 233, 0.3);
  --glow-color:
    14,
    165,
    233;
  --accent-glow:
    6,
    255,
    200;
  --glass-bg: rgba(9, 21, 36, 0.7);
  --glass-border: rgba(14, 165, 233, 0.18);
}
[data-theme=forest] {
  --color-bg: #050f08;
  --color-surface: #091a0d;
  --color-surface-2: #0f2614;
  --color-text: #e0ffe8;
  --color-text-muted: #6dbb85;
  --color-text-faint: #234033;
  --color-primary: #22c55e;
  --color-primary-hover: #4ade80;
  --color-accent: #86efac;
  --color-border: rgba(34, 197, 94, 0.15);
  --color-border-strong: rgba(34, 197, 94, 0.3);
  --glow-color:
    34,
    197,
    94;
  --accent-glow:
    134,
    239,
    172;
  --glass-bg: rgba(9, 26, 13, 0.7);
  --glass-border: rgba(34, 197, 94, 0.18);
}
[data-theme=sunset] {
  --color-bg: #0f0807;
  --color-surface: #1a0e0a;
  --color-surface-2: #251510;
  --color-text: #fff0e8;
  --color-text-muted: #cc8c70;
  --color-text-faint: #4a2519;
  --color-primary: #f97316;
  --color-primary-hover: #fb923c;
  --color-accent: #fbbf24;
  --color-border: rgba(249, 115, 22, 0.15);
  --color-border-strong: rgba(249, 115, 22, 0.3);
  --glow-color:
    249,
    115,
    22;
  --accent-glow:
    251,
    191,
    36;
  --glass-bg: rgba(26, 14, 10, 0.7);
  --glass-border: rgba(249, 115, 22, 0.18);
}
[data-theme=neon] {
  --color-bg: #04000a;
  --color-surface: #0a0516;
  --color-surface-2: #120a24;
  --color-text: #f5e6ff;
  --color-text-muted: #a876db;
  --color-text-faint: #3a1a5e;
  --color-primary: #d946ef;
  --color-primary-hover: #e879f9;
  --color-accent: #06ffc8;
  --color-border: rgba(217, 70, 239, 0.15);
  --color-border-strong: rgba(217, 70, 239, 0.3);
  --glow-color:
    217,
    70,
    239;
  --accent-glow:
    6,
    255,
    200;
  --glass-bg: rgba(10, 5, 22, 0.7);
  --glass-border: rgba(217, 70, 239, 0.2);
}
[data-theme=rose] {
  --color-bg: #0f0508;
  --color-surface: #1a0810;
  --color-surface-2: #250d18;
  --color-text: #ffe8ef;
  --color-text-muted: #cc7090;
  --color-text-faint: #4a1a28;
  --color-primary: #f43f5e;
  --color-primary-hover: #fb7185;
  --color-accent: #fda4af;
  --color-border: rgba(244, 63, 94, 0.15);
  --color-border-strong: rgba(244, 63, 94, 0.3);
  --glow-color:
    244,
    63,
    94;
  --accent-glow:
    253,
    164,
    175;
  --glass-bg: rgba(26, 8, 16, 0.7);
  --glass-border: rgba(244, 63, 94, 0.18);
}
[data-theme=earth] {
  --color-bg: #faf8f5;
  --color-surface: #ffffff;
  --color-surface-2: #f4f0ea;
  --color-text: #1c1814;
  --color-text-muted: #6b5c4a;
  --color-text-faint: #bfb0a0;
  --color-primary: #92400e;
  --color-primary-hover: #78350f;
  --color-accent: #d97706;
  --color-border: rgba(146, 64, 14, 0.12);
  --color-border-strong: rgba(146, 64, 14, 0.25);
  --color-success: #15803d;
  --color-warning: #b45309;
  --color-error: #dc2626;
  --color-info: #1d4ed8;
  --glow-color:
    146,
    64,
    14;
  --accent-glow:
    217,
    119,
    6;
  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(146, 64, 14, 0.1);
}
@layer base {
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border-color: var(--color-border);
  }
  html {
    font-family:
      Inter,
      system-ui,
      sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
  }
  body {
    background-color: var(--color-bg);
    color: var(--color-text);
    min-height: 100vh;
    line-height: 1.6;
  }
}
@layer components {
  .glass {
    background: var(--glass-bg);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--glass-border);
  }
  .glass-card {
    background: var(--glass-bg);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--glass-border);
    @apply rounded-squircle shadow-glass;
  }
  .gradient-text {
    background:
      linear-gradient(
        135deg,
        var(--color-primary) 0%,
        var(--color-accent) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }
  .glow {
    box-shadow: 0 0 20px rgba(var(--glow-color), 0.4), 0 0 60px rgba(var(--glow-color), 0.1);
  }
  .mesh-bg {
    background-image:
      radial-gradient(
        ellipse at 20% 50%,
        rgba(var(--glow-color), 0.15) 0%,
        transparent 50%),
      radial-gradient(
        ellipse at 80% 20%,
        rgba(var(--accent-glow), 0.1) 0%,
        transparent 50%);
  }
  .noise::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0;
    opacity: 0.4;
  }
  .focus-ring {
    @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-bg;
  }
  .skeleton {
    background:
      linear-gradient(
        90deg,
        var(--color-surface) 25%,
        var(--color-surface-2) 50%,
        var(--color-surface) 75%);
    background-size: 200% 100%;
    animation: shimmer 1.8s linear infinite;
  }
  .scrollbar-thin {
    scrollbar-width: thin;
    scrollbar-color: var(--color-border-strong) transparent;
  }
  .scrollbar-thin::-webkit-scrollbar {
    width: 5px;
    height: 5px;
  }
  .scrollbar-thin::-webkit-scrollbar-track {
    background: transparent;
  }
  .scrollbar-thin::-webkit-scrollbar-thumb {
    background: var(--color-border-strong);
    border-radius: 999px;
  }
}
::selection {
  background: rgba(var(--glow-color), 0.25);
}
#root {
  animation: fadeIn 0.2s ease-out;
}
