@import 'tailwindcss'; @import 'tw-animate-css'; @config '../../../tailwind.config.mjs'; @custom-variant dark (&:is([data-theme='dark'] *)); @custom-variant sm (@media (width >= theme(--breakpoint-sm))); @custom-variant md (@media (width >= theme(--breakpoint-md))); @custom-variant lg (@media (width >= theme(--breakpoint-lg))); @custom-variant xl (@media (width >= theme(--breakpoint-xl))); @custom-variant 2xl (@media (width >= theme(--breakpoint-2xl))); @layer base { h1, h2, h3, h4, h5, h6 { font-weight: unset; font-size: unset; } } @plugin "@tailwindcss/typography"; @source inline("lg:col-span-4"); @source inline("lg:col-span-6"); @source inline("lg:col-span-8"); @source inline("lg:col-span-12"); @source inline("border-border"); @source inline("bg-card"); @source inline("border-error"); @source inline("bg-error/30"); @source inline("border-success"); @source inline("bg-success/30"); @source inline("border-warning"); @source inline("bg-warning/30"); @theme { --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 86rem; --font-mono: var(--font-geist-mono); --font-sans: var(--font-geist-sans); } @layer utilities { .container { width: 100%; margin-inline: auto; padding-inline: 1rem; } @variant sm { .container { max-width: var(--breakpoint-sm); } } @variant md { .container { max-width: var(--breakpoint-md); padding-inline: 2rem; } } @variant lg { .container { max-width: var(--breakpoint-lg); } } @variant xl { .container { max-width: var(--breakpoint-xl); } } @variant 2xl { .container { max-width: var(--breakpoint-2xl); } } } :root { --background: oklch(100% 0 0deg); --foreground: oklch(14.5% 0 0deg); --card: oklch(96.5% 0.005 265deg); --card-foreground: oklch(14.5% 0 0deg); --popover: oklch(100% 0 0deg); --popover-foreground: oklch(14.5% 0 0deg); --primary: oklch(20.5% 0 0deg); --primary-foreground: oklch(98.5% 0 0deg); --secondary: oklch(97% 0 0deg); --secondary-foreground: oklch(20.5% 0 0deg); --muted: oklch(97% 0 0deg); --muted-foreground: oklch(55.6% 0 0deg); --accent: oklch(97% 0 0deg); --accent-foreground: oklch(20.5% 0 0deg); --destructive: oklch(57.7% 0.245 27.325deg); --destructive-foreground: oklch(57.7% 0.245 27.325deg); --border: oklch(92.2% 0 0deg); --input: oklch(92.2% 0 0deg); --ring: oklch(70.8% 0 0deg); --chart-1: oklch(64.6% 0.222 41.116deg); --chart-2: oklch(60% 0.118 184.704deg); --chart-3: oklch(39.8% 0.07 227.392deg); --chart-4: oklch(82.8% 0.189 84.429deg); --chart-5: oklch(76.9% 0.188 70.08deg); --radius: 0.625rem; --sidebar: oklch(98.5% 0 0deg); --sidebar-foreground: oklch(14.5% 0 0deg); --sidebar-primary: oklch(20.5% 0 0deg); --sidebar-primary-foreground: oklch(98.5% 0 0deg); --sidebar-accent: oklch(97% 0 0deg); --sidebar-accent-foreground: oklch(20.5% 0 0deg); --sidebar-border: oklch(92.2% 0 0deg); --sidebar-ring: oklch(70.8% 0 0deg); --success: oklch(78% 0.08 200deg); --warning: oklch(89% 0.1 75deg); --error: oklch(75% 0.15 25deg); } [data-theme='dark'] { --background: oklch(14.5% 0 0deg); --foreground: oklch(98.5% 0 0deg); --card: oklch(17% 0 0deg); --card-foreground: oklch(98.5% 0 0deg); --popover: oklch(14.5% 0 0deg); --popover-foreground: oklch(98.5% 0 0deg); --primary: oklch(98.5% 0 0deg); --primary-foreground: oklch(20.5% 0 0deg); --secondary: oklch(26.9% 0 0deg); --secondary-foreground: oklch(98.5% 0 0deg); --muted: oklch(26.9% 0 0deg); --muted-foreground: oklch(70.8% 0 0deg); --accent: oklch(26.9% 0 0deg); --accent-foreground: oklch(98.5% 0 0deg); --destructive: oklch(39.6% 0.141 25.723deg); --destructive-foreground: oklch(63.7% 0.237 25.331deg); --border: oklch(26.9% 0 0deg); --input: oklch(26.9% 0 0deg); --ring: oklch(43.9% 0 0deg); --chart-1: oklch(48.8% 0.243 264.376deg); --chart-2: oklch(69.6% 0.17 162.48deg); --chart-3: oklch(76.9% 0.188 70.08deg); --chart-4: oklch(62.7% 0.265 303.9deg); --chart-5: oklch(64.5% 0.246 16.439deg); --sidebar: oklch(20.5% 0 0deg); --sidebar-foreground: oklch(98.5% 0 0deg); --sidebar-primary: oklch(48.8% 0.243 264.376deg); --sidebar-primary-foreground: oklch(98.5% 0 0deg); --sidebar-accent: oklch(26.9% 0 0deg); --sidebar-accent-foreground: oklch(98.5% 0 0deg); --sidebar-border: oklch(26.9% 0 0deg); --sidebar-ring: oklch(43.9% 0 0deg); --success: oklch(28% 0.1 200deg); --warning: oklch(35% 0.08 70deg); --error: oklch(45% 0.1 25deg); } @theme inline { --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-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); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --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); --color-success: var(--success); --color-warning: var(--warning); --color-error: var(--error); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground min-h-[100vh] flex flex-col; font-variant-ligatures: none; } } html { opacity: 0; } html[data-theme='dark'], html[data-theme='light'] { opacity: initial; } /* ============================================ FIBER DIREKT ADDITIONS Append this entire block to the END of: src/app/(frontend)/globals.css ============================================ */ /* FS Joey Font Faces — place .otf files in public/fonts/ */ @font-face { font-family: 'FS Joey'; src: url('/fonts/fs-joey-regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'FS Joey Medium'; src: url('/fonts/fs-joey-medium.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'FS Joey Bold'; src: url('/fonts/fs-joey-bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; } @font-face { font-family: 'FS Joey Heavy'; src: url('/fonts/fs-joey-heavy.otf') format('opentype'); font-weight: 900; font-style: normal; font-display: swap; } /* Fiber Direkt design tokens */ @theme { --color-fd-navy: #0e2338; --color-fd-navy-light: #0f2339; --color-fd-yellow: #fecc02; --color-fd-gray: #f3f3f3; --color-fd-gray-light: #f7f7f7; --font-joey: 'FS Joey', system-ui, -apple-system, BlinkMacSystemFont, sans-serif; --font-joey-medium: 'FS Joey Medium', 'FS Joey', system-ui, sans-serif; --font-joey-bold: 'FS Joey Bold', 'FS Joey', system-ui, sans-serif; --font-joey-heavy: 'FS Joey Heavy', 'FS Joey', system-ui, sans-serif; }