@import "tailwindcss"; @import "tw-animate-css"; @custom-variant dark (&:is(.dark *)); @theme inline { --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --radius-2xl: calc(var(--radius) + 8px); --radius-3xl: calc(var(--radius) + 12px); --radius-4xl: calc(var(--radius) + 16px); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-success: var(--success); --color-success-foreground: var(--success-foreground); --color-warning: var(--warning); --color-warning-foreground: var(--warning-foreground); --color-info: var(--info); --color-info-foreground: var(--info-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); --font-sans: var(--font-sans); --font-mono: var(--font-mono); } :root { --radius: 0.25rem; --font-sans: "Arial Narrow", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif; --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; --background: oklch(0.965 0.012 95); --foreground: oklch(0.18 0.018 75); --card: oklch(0.99 0.006 95); --card-foreground: oklch(0.18 0.018 75); --popover: oklch(0.995 0.004 95); --popover-foreground: oklch(0.18 0.018 75); --primary: oklch(0.75 0.205 125); --primary-foreground: oklch(0.15 0.025 125); --secondary: oklch(0.91 0.022 95); --secondary-foreground: oklch(0.24 0.018 75); --muted: oklch(0.925 0.012 95); --muted-foreground: oklch(0.48 0.018 75); --accent: oklch(0.88 0.04 112); --accent-foreground: oklch(0.2 0.028 110); --destructive: oklch(0.57 0.205 28); --destructive-foreground: oklch(0.99 0.005 28); --success: oklch(0.59 0.155 132); --success-foreground: oklch(0.28 0.09 132); --warning: oklch(0.72 0.15 76); --warning-foreground: oklch(0.34 0.09 66); --info: oklch(0.52 0.12 230); --info-foreground: oklch(0.3 0.07 230); --border: oklch(0.79 0.018 90); --input: oklch(0.76 0.02 90); --ring: oklch(0.68 0.19 125); --chart-1: oklch(0.75 0.205 125); --chart-2: oklch(0.66 0.16 205); --chart-3: oklch(0.58 0.18 50); --chart-4: oklch(0.72 0.17 80); --chart-5: oklch(0.55 0.16 300); --sidebar: oklch(0.17 0.02 75); --sidebar-foreground: oklch(0.91 0.015 95); --sidebar-primary: oklch(0.75 0.205 125); --sidebar-primary-foreground: oklch(0.15 0.025 125); --sidebar-accent: oklch(0.25 0.025 90); --sidebar-accent-foreground: oklch(0.96 0.01 95); --sidebar-border: oklch(0.31 0.025 80); --sidebar-ring: oklch(0.75 0.205 125); color-scheme: light; } .dark { --background: oklch(0.175 0.012 152); --foreground: oklch(0.93 0.014 105); --card: oklch(0.215 0.012 152); --card-foreground: oklch(0.93 0.014 105); --popover: oklch(0.2 0.012 152); --popover-foreground: oklch(0.93 0.014 105); --primary: oklch(0.79 0.165 128); --primary-foreground: oklch(0.18 0.04 128); --secondary: oklch(0.255 0.014 152); --secondary-foreground: oklch(0.9 0.012 110); --muted: oklch(0.24 0.012 152); --muted-foreground: oklch(0.7 0.02 130); --accent: oklch(0.27 0.03 140); --accent-foreground: oklch(0.93 0.03 120); --destructive: oklch(0.72 0.16 25); --destructive-foreground: oklch(0.98 0.01 25); --success: oklch(0.76 0.13 148); --success-foreground: oklch(0.2 0.05 148); --warning: oklch(0.82 0.12 88); --warning-foreground: oklch(0.24 0.06 80); --info: oklch(0.76 0.1 220); --info-foreground: oklch(0.86 0.04 220); --border: oklch(0.3 0.016 150); --input: oklch(0.28 0.016 150); --ring: oklch(0.79 0.165 128); --chart-1: oklch(0.79 0.165 128); --chart-2: oklch(0.72 0.12 210); --chart-3: oklch(0.8 0.12 88); --chart-4: oklch(0.7 0.12 55); --chart-5: oklch(0.68 0.1 300); --sidebar: oklch(0.135 0.014 155); --sidebar-foreground: oklch(0.9 0.012 110); --sidebar-primary: oklch(0.79 0.165 128); --sidebar-primary-foreground: oklch(0.18 0.04 128); --sidebar-accent: oklch(0.21 0.02 150); --sidebar-accent-foreground: oklch(0.95 0.01 110); --sidebar-border: oklch(0.24 0.016 150); --sidebar-ring: oklch(0.79 0.165 128); color-scheme: dark; } @layer base { * { @apply border-border outline-ring/50; } html { @apply bg-background; } body { @apply bg-background text-foreground antialiased; min-width: 320px; background-image: linear-gradient(to right, color-mix(in oklch, var(--border) 22%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--border) 22%, transparent) 1px, transparent 1px); background-size: 32px 32px; } .dark body { background-image: linear-gradient(to right, color-mix(in oklch, var(--border) 12%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--border) 12%, transparent) 1px, transparent 1px); } h1, h2, h3 { letter-spacing: -0.025em; } ::selection { background: var(--primary); color: var(--primary-foreground); } } @layer components { .page-shell { @apply mx-auto w-full max-w-[1600px] space-y-6; } .page-heading { @apply flex flex-col gap-4 border-b-2 border-foreground pb-5 sm:flex-row sm:items-end sm:justify-between; } .page-eyebrow { @apply mb-2 block font-mono text-[10px] font-bold uppercase tracking-[0.22em] text-muted-foreground; } .page-title { @apply text-3xl font-black leading-none tracking-[-0.04em] sm:text-4xl; } .page-description { @apply mt-2 max-w-2xl text-sm leading-6 text-muted-foreground; } .auth-grid { background-image: linear-gradient(to right, color-mix(in oklch, var(--sidebar-foreground) 9%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--sidebar-foreground) 9%, transparent) 1px, transparent 1px); background-size: 36px 36px; } .auth-scanlines { background: repeating-linear-gradient( to bottom, transparent 0, transparent 2px, color-mix(in oklch, white 6%, transparent) 3px ); mix-blend-mode: overlay; } .server-form [data-slot="tabs-content"] { @apply border border-border bg-background/65 p-4 sm:p-6; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } @media (max-width: 767px) { .server-form .grid-cols-2, .server-form .grid-cols-3, .server-form .grid-cols-4 { grid-template-columns: minmax(0, 1fr); } } @keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height); } } @keyframes accordion-up { from { height: var(--radix-accordion-content-height); } to { height: 0; } } @layer utilities { .animate-accordion-down { animation: accordion-down 0.2s ease-out; } .animate-accordion-up { animation: accordion-up 0.2s ease-out; } }