@import "tailwindcss"; @import "tw-animate-css"; @custom-variant dark (&:is(.dark *)); @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --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); } :root { --radius: 0.625rem; --background: oklch(0.98 0.02 320); --foreground: oklch(0.145 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.65 0.28 315); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.94 0.08 315); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.94 0.05 315); --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.90 0.12 315); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.90 0.08 315); --input: oklch(0.96 0.05 315); --ring: oklch(0.65 0.28 315); --chart-1: oklch(0.70 0.25 315); --chart-2: oklch(0.65 0.22 290); --chart-3: oklch(0.60 0.20 340); --chart-4: oklch(0.75 0.18 305); --chart-5: oklch(0.68 0.24 325); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.65 0.28 315); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.90 0.12 315); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.90 0.08 315); --sidebar-ring: oklch(0.65 0.28 315); } .dark { --background: oklch(0.08 0.08 315); --foreground: oklch(0.985 0 0); --card: oklch(0.12 0.08 315); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.12 0.08 315); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.75 0.32 315); --primary-foreground: oklch(0.08 0.08 315); --secondary: oklch(0.18 0.12 315); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.18 0.10 315); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.20 0.15 315); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(0.22 0.12 315); --input: oklch(0.15 0.10 315); --ring: oklch(0.75 0.32 315); --chart-1: oklch(0.75 0.32 315); --chart-2: oklch(0.70 0.28 290); --chart-3: oklch(0.65 0.25 340); --chart-4: oklch(0.80 0.20 305); --chart-5: oklch(0.72 0.30 325); --sidebar: oklch(0.12 0.08 315); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.75 0.32 315); --sidebar-primary-foreground: oklch(0.08 0.08 315); --sidebar-accent: oklch(0.20 0.15 315); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(0.22 0.12 315); --sidebar-ring: oklch(0.75 0.32 315); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } } @layer utilities { .gradient-purple { background: linear-gradient(135deg, oklch(0.75 0.32 315) 0%, oklch(0.68 0.28 280) 30%, oklch(0.65 0.30 250) 70%, oklch(0.60 0.25 330) 100%); } .gradient-purple-light { background: linear-gradient(135deg, oklch(0.95 0.12 315) 0%, oklch(0.96 0.10 280) 50%, oklch(0.98 0.08 250) 100%); } .bg-gradient-smooth { background: linear-gradient(135deg, oklch(0.22 0.20 315) 0%, oklch(0.20 0.18 280) 30%, oklch(0.18 0.16 250) 60%, oklch(0.15 0.12 330) 100%); } .text-gradient-bright { background: linear-gradient(135deg, oklch(0.85 0.35 315) 0%, oklch(0.80 0.32 280) 40%, oklch(0.75 0.30 250) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-shadow: 0 0 20px oklch(0.75 0.32 315 / 0.4); } .text-gradient { background: linear-gradient(135deg, oklch(0.75 0.32 315) 0%, oklch(0.70 0.30 280) 50%, oklch(0.68 0.28 250) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Glass Morphism Effects */ .glass-card { background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 8px 32px rgba(168, 85, 247, 0.18), 0 4px 16px rgba(147, 51, 234, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.3); transition: all 0.3s ease; } .glass-card:hover { background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 12px 40px rgba(168, 85, 247, 0.25), 0 6px 20px rgba(147, 51, 234, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.4); } .glass-input { background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.15); transition: all 0.3s ease; outline: none; } .glass-input:focus, .glass-input:focus-visible { background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(168, 85, 247, 0.6); box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.2), 0 4px 20px rgba(147, 51, 234, 0.3), 0 0 20px rgba(168, 85, 247, 0.15); outline: none; } .glass-button { background: linear-gradient(135deg, rgba(168, 85, 247, 0.9) 0%, rgba(120, 119, 248, 0.9) 40%, rgba(59, 130, 246, 0.85) 100%); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 8px 32px rgba(168, 85, 247, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2); transition: all 0.3s ease; position: relative; overflow: hidden; } .glass-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent); transition: left 0.5s ease; } .glass-button:hover::before { left: 100%; } .glass-button:hover { background: linear-gradient(135deg, rgba(168, 85, 247, 1) 0%, rgba(120, 119, 248, 1) 40%, rgba(59, 130, 246, 0.95) 100%); box-shadow: 0 12px 40px rgba(168, 85, 247, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.3); transform: translateY(-2px); } .glass-button:active { transform: translateY(0); box-shadow: 0 4px 16px rgba(168, 85, 247, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2); } .glass-secondary { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.15); transition: all 0.3s ease; } .glass-secondary:hover { background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 8px 24px rgba(139, 69, 199, 0.15); } .glass-sidebar { background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 8px 32px rgba(168, 85, 247, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.2); } /* Обеспечиваем курсор pointer для всех кликабельных элементов */ button, [role="button"], [data-state] { cursor: pointer; } /* Специальные стили для вкладок */ [data-slot="tabs-list"] { background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); } [data-slot="tabs-trigger"] { cursor: pointer !important; transition: all 0.3s ease; } [data-slot="tabs-trigger"]:hover { background: rgba(255, 255, 255, 0.1); } [data-slot="tabs-trigger"][data-state="active"] { background: rgba(255, 255, 255, 0.2) !important; color: white !important; border: 1px solid rgba(255, 255, 255, 0.3); } /* Animated Background */ .bg-animated { background: linear-gradient(135deg, oklch(0.22 0.20 315) 0%, oklch(0.18 0.16 300) 40%, oklch(0.15 0.12 330) 100%); position: relative; overflow: hidden; } .bg-animated::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(168, 85, 247, 0.35) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(120, 119, 248, 0.35) 0%, transparent 50%), radial-gradient(circle at 40% 80%, rgba(59, 130, 246, 0.25) 0%, transparent 50%), radial-gradient(circle at 60% 30%, rgba(192, 132, 252, 0.20) 0%, transparent 50%); animation: float 20s ease-in-out infinite; } @keyframes float { 0%, 100% { opacity: 1; transform: translateY(0px) rotate(0deg); } 33% { opacity: 0.8; transform: translateY(-20px) rotate(2deg); } 66% { opacity: 0.9; transform: translateY(10px) rotate(-1deg); } } /* Floating Particles Effect */ .particles { position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; z-index: 1; } .particle { position: absolute; background: rgba(255, 255, 255, 0.3); border-radius: 50%; animation: particleFloat 15s linear infinite; } .particle:nth-child(1) { width: 3px; height: 3px; left: 10%; animation-delay: 0s; } .particle:nth-child(2) { width: 2px; height: 2px; left: 20%; animation-delay: 2s; } .particle:nth-child(3) { width: 4px; height: 4px; left: 30%; animation-delay: 4s; } .particle:nth-child(4) { width: 2px; height: 2px; left: 40%; animation-delay: 6s; } .particle:nth-child(5) { width: 3px; height: 3px; left: 50%; animation-delay: 8s; } .particle:nth-child(6) { width: 2px; height: 2px; left: 60%; animation-delay: 10s; } .particle:nth-child(7) { width: 4px; height: 4px; left: 70%; animation-delay: 12s; } .particle:nth-child(8) { width: 2px; height: 2px; left: 80%; animation-delay: 14s; } .particle:nth-child(9) { width: 3px; height: 3px; left: 90%; animation-delay: 16s; } @keyframes particleFloat { 0% { transform: translateY(100vh) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(-100px) rotate(360deg); opacity: 0; } } /* Enhanced Glow Effects */ .glow-purple { box-shadow: 0 0 20px rgba(168, 85, 247, 0.5), 0 0 40px rgba(120, 119, 248, 0.35), 0 0 60px rgba(59, 130, 246, 0.2), 0 0 80px rgba(192, 132, 252, 0.15); } .glow-text { text-shadow: 0 0 10px rgba(168, 85, 247, 0.6), 0 0 20px rgba(120, 119, 248, 0.45), 0 0 30px rgba(59, 130, 246, 0.3), 0 0 40px rgba(192, 132, 252, 0.25); } } /* Убираем стрелки у input[type="number"] */ input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type="number"] { -moz-appearance: textfield; }