403 lines
12 KiB
CSS
403 lines
12 KiB
CSS
@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;
|
||
}
|