@tailwind base; @tailwind components; @tailwind utilities; /* Custom Styles für Light und Dark Mode - Premium Upgrade mit verbessertem Light Mode */ @layer base { :root { /* Light Mode Farben - Mercedes-Benz Professional - VERBESSERT für optimale Lesbarkeit */ --color-bg-primary: #ffffff; --color-bg-secondary: #fafbfc; --color-bg-tertiary: #f3f5f7; --color-bg-accent: #fbfcfd; --color-text-primary: #111827; /* Verstärkter Kontrast für bessere Lesbarkeit */ --color-text-secondary: #374151; /* Erhöhter Kontrast */ --color-text-muted: #6b7280; /* Optimierter Muted-Text */ --color-text-accent: #0073ce; --color-border-primary: #e5e7eb; /* Subtilere aber sichtbarere Borders */ --color-border-secondary: #d1d5db; --color-accent: #0073ce; /* Mercedes-Benz Professional Blau */ --color-accent-hover: #005a9f; --color-accent-light: #eff6ff; --color-accent-text: #ffffff; --color-shadow: rgba(0, 0, 0, 0.06); /* Sanftere Schatten */ --color-shadow-strong: rgba(0, 0, 0, 0.1); --color-shadow-accent: rgba(0, 115, 206, 0.12); --card-radius: 1rem; /* Abgerundete Ecken für Karten */ /* Light Mode Gradients - VERBESSERT für sanftere Optik */ --gradient-primary: linear-gradient(135deg, #ffffff 0%, #fafbfc 30%, #f8fafc 70%, #f3f5f7 100%); --gradient-card: linear-gradient(135deg, #ffffff 0%, #fcfcfd 50%, #fafbfc 100%); --gradient-hero: linear-gradient(135deg, #fafbfc 0%, #f3f5f7 40%, #eef2f5 80%, #f8fafc 100%); --gradient-accent: linear-gradient(135deg, #0073ce 0%, #005a9f 100%); --gradient-surface: linear-gradient(135deg, #ffffff 0%, #fbfcfd 50%, #f8fafc 100%); /* Neue optimierte Light Mode Glassmorphism-Variablen */ --glass-bg: rgba(255, 255, 255, 0.92); --glass-border: rgba(255, 255, 255, 0.3); --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.04); --glass-blur: blur(20px); } .dark { /* Dark Mode Farben - Noch dunkler und eleganter - UNVERÄNDERT */ --color-bg-primary: #000000; /* Tiefes Schwarz */ --color-bg-secondary: #0a0a0a; /* Sehr dunkles Grau */ --color-bg-tertiary: #1a1a1a; --color-text-primary: #ffffff; --color-text-secondary: #e2e8f0; --color-text-muted: #94a3b8; --color-border-primary: #1a1a1a; /* Dunkler Rahmen */ --color-border-secondary: #2a2a2a; --color-accent: #ffffff; /* Reines Weiß */ --color-accent-hover: #f0f0f0; --color-accent-light: #1e3a8a; --color-accent-text: #000000; --color-shadow: rgba(0, 0, 0, 0.8); /* Sehr dunkler Schatten */ --color-shadow-strong: rgba(0, 0, 0, 0.9); --mb-black: #000000; /* Mercedes-Benz Schwarz */ } body { @apply bg-white dark:bg-black text-slate-900 dark:text-white transition-colors duration-300; position: relative; min-height: 100vh; background: var(--gradient-primary); font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11'; line-height: 1.65; /* Verbesserte Zeilenhöhe für bessere Lesbarkeit */ font-size: 15px; /* Optimierte Schriftgröße */ } .dark body { background: linear-gradient(135deg, #000000 0%, #0a0a0a 50%, #000000 100%); } /* Enhanced Body Background with Subtle Patterns - VERBESSERT */ body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 25% 25%, rgba(0, 115, 206, 0.015) 0%, transparent 50%), radial-gradient(circle at 75% 75%, rgba(0, 115, 206, 0.01) 0%, transparent 50%), radial-gradient(circle at 50% 10%, rgba(0, 115, 206, 0.008) 0%, transparent 50%); pointer-events: none; z-index: -1; } .dark body::before { background: radial-gradient(circle at 20% 50%, rgba(59, 130, 246, 0.03) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(59, 130, 246, 0.02) 0%, transparent 50%); } /* Navbar Styles - Premium Glassmorphism - VERBESSERT */ nav { @apply backdrop-blur-xl border-b transition-all duration-300; background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(250, 251, 252, 0.92) 30%, rgba(248, 250, 252, 0.9) 70%, rgba(255, 255, 255, 0.95) 100%); border-bottom: 1px solid rgba(229, 231, 235, 0.7); backdrop-filter: blur(28px) saturate(200%) brightness(110%); -webkit-backdrop-filter: blur(28px) saturate(200%) brightness(110%); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 115, 206, 0.02), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .dark nav { background: rgba(0, 0, 0, 0.85); border-bottom-color: rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05); } /* Premium Card Styles - VERBESSERT für Light Mode */ .card-enhanced { background: var(--gradient-card); border: 1px solid var(--color-border-primary); border-radius: var(--card-radius); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03), 0 1px 4px rgba(0, 115, 206, 0.02), inset 0 1px 0 rgba(255, 255, 255, 0.8); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .card-enhanced::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--gradient-accent); opacity: 0; transition: opacity 0.3s ease; } .card-enhanced:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .card-enhanced:hover::before { opacity: 1; } .dark .card-enhanced { background: rgba(10, 10, 10, 0.8); border-color: var(--color-border-primary); box-shadow: 0 4px 20px var(--color-shadow); } /* Premium Button Styles - VERBESSERT */ .btn-enhanced { background: var(--gradient-accent); color: var(--color-accent-text); border: none; border-radius: 0.5rem; padding: 0.75rem 1.75rem; font-weight: 600; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; box-shadow: 0 2px 8px rgba(0, 115, 206, 0.2), 0 1px 4px rgba(0, 115, 206, 0.1); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .btn-enhanced::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .btn-enhanced:hover { transform: translateY(-1px); box-shadow: 0 4px 15px rgba(0, 115, 206, 0.3), 0 2px 8px rgba(0, 115, 206, 0.2); } .btn-enhanced:hover::before { left: 100%; } .btn-enhanced:active { transform: translateY(0); } .btn-secondary { background: var(--gradient-surface); color: var(--color-text-primary); border: 1px solid var(--color-border-primary); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.03), inset 0 1px 0 rgba(255, 255, 255, 0.8); } .btn-secondary:hover { background: var(--color-bg-secondary); border-color: var(--color-accent); color: var(--color-accent); box-shadow: 0 4px 12px rgba(0, 115, 206, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9); } /* Enhanced Form Elements - VERBESSERT für bessere Lesbarkeit */ .input-enhanced { background: rgba(255, 255, 255, 0.95); border: 1px solid var(--color-border-primary); border-radius: 0.5rem; padding: 0.75rem 1rem; color: var(--color-text-primary); font-size: 0.9rem; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.02), inset 0 1px 0 rgba(255, 255, 255, 0.9); transition: all 0.2s ease; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .input-enhanced:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 4px 12px rgba(0, 115, 206, 0.1), 0 0 0 3px rgba(0, 115, 206, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.95); background: rgba(255, 255, 255, 0.98); } .input-enhanced::placeholder { color: var(--color-text-muted); opacity: 0.8; } .dark .input-enhanced { background: rgba(10, 10, 10, 0.8); border-color: var(--color-border-primary); color: var(--color-text-primary); box-shadow: 0 2px 8px var(--color-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.05); } .dark .input-enhanced:focus { border-color: #60a5fa; box-shadow: 0 4px 15px rgba(96, 165, 250, 0.2), 0 0 0 3px rgba(96, 165, 250, 0.1); } /* Premium Alert Styles */ .alert-enhanced { border-radius: 1rem; padding: 1.25rem; border: 1px solid transparent; position: relative; overflow: hidden; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .alert-enhanced::before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 4px; } .alert-info-enhanced { background: linear-gradient(135deg, rgba(239, 246, 255, 0.95) 0%, rgba(219, 234, 254, 0.9) 100%); border-color: rgba(59, 130, 246, 0.2); color: #1e40af; } .alert-info-enhanced::before { background: var(--gradient-accent); } .alert-success-enhanced { background: linear-gradient(135deg, rgba(236, 253, 245, 0.95) 0%, rgba(167, 243, 208, 0.9) 100%); border-color: rgba(16, 185, 129, 0.2); color: #065f46; } .alert-success-enhanced::before { background: linear-gradient(180deg, #10b981 0%, #059669 100%); } .alert-warning-enhanced { background: linear-gradient(135deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 243, 199, 0.9) 100%); border-color: rgba(251, 191, 36, 0.2); color: #92400e; } .alert-warning-enhanced::before { background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%); } .alert-error-enhanced { background: linear-gradient(135deg, rgba(254, 242, 242, 0.95) 0%, rgba(252, 165, 165, 0.9) 100%); border-color: rgba(239, 68, 68, 0.2); color: #991b1b; } .alert-error-enhanced::before { background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%); } /* Light Mode Flash Messages - Premium */ .flash-message-light { background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%); backdrop-filter: blur(32px) saturate(200%) brightness(120%); -webkit-backdrop-filter: blur(32px) saturate(200%) brightness(120%); border: 1px solid rgba(226, 232, 240, 0.6); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1), 0 12px 24px rgba(0, 115, 206, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8); color: var(--color-text-primary); } .flash-message-light.success { border-left: 4px solid #10b981; background: linear-gradient(135deg, rgba(236, 253, 245, 0.95) 0%, rgba(209, 250, 229, 0.9) 100%); } .flash-message-light.error { border-left: 4px solid #ef4444; background: linear-gradient(135deg, rgba(254, 242, 242, 0.95) 0%, rgba(252, 165, 165, 0.9) 100%); } .flash-message-light.warning { border-left: 4px solid #fbbf24; background: linear-gradient(135deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 243, 199, 0.9) 100%); } .flash-message-light.info { border-left: 4px solid #3b82f6; background: linear-gradient(135deg, rgba(239, 246, 255, 0.95) 0%, rgba(219, 234, 254, 0.9) 100%); } /* Premium Table Styles */ .table-enhanced { background: var(--gradient-card); border: 1px solid var(--color-border-primary); border-radius: var(--card-radius); overflow: hidden; box-shadow: 0 4px 20px var(--color-shadow), 0 2px 8px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6); } .table-enhanced th { background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%); color: var(--color-text-primary); font-weight: 600; padding: 1rem 1.5rem; border-bottom: 1px solid var(--color-border-primary); position: relative; } .table-enhanced th::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, var(--color-border-secondary) 50%, transparent 100%); } .table-enhanced td { padding: 1rem 1.5rem; border-bottom: 1px solid var(--color-border-primary); color: var(--color-text-secondary); transition: all 0.2s ease; } .table-enhanced tbody tr:hover { background: var(--color-bg-secondary); transform: scale(1.002); } .dark .table-enhanced { background: rgba(10, 10, 10, 0.8); border-color: var(--color-border-primary); } .dark .table-enhanced th { background: rgba(26, 26, 26, 0.8); color: var(--color-text-primary); } .dark .table-enhanced tbody tr:hover { background: rgba(26, 26, 26, 0.6); } /* Premium Modal Styles */ .modal-enhanced { background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 50%, rgba(255, 255, 255, 0.98) 100%); backdrop-filter: blur(32px) saturate(220%) brightness(120%); -webkit-backdrop-filter: blur(32px) saturate(220%) brightness(120%); border: 1px solid rgba(226, 232, 240, 0.7); border-radius: 1.5rem; box-shadow: 0 50px 100px rgba(0, 0, 0, 0.15), 0 20px 40px rgba(0, 115, 206, 0.08), inset 0 2px 0 rgba(255, 255, 255, 0.9); position: relative; overflow: hidden; } .modal-enhanced::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(226, 232, 240, 0.8) 50%, transparent 100%); } .dark .modal-enhanced { background: rgba(0, 0, 0, 0.95); border-color: rgba(42, 42, 42, 0.7); box-shadow: 0 50px 100px rgba(0, 0, 0, 0.5), inset 0 2px 0 rgba(255, 255, 255, 0.05); } /* Enhanced Status Badges */ .status-badge-enhanced { display: inline-flex; align-items: center; padding: 0.5rem 1rem; font-size: 0.75rem; font-weight: 700; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.05em; border: 1px solid transparent; transition: all 0.2s ease; position: relative; overflow: hidden; } .status-badge-enhanced::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); transition: left 0.5s ease; } .status-badge-enhanced:hover::before { left: 100%; } .status-online-enhanced { background: linear-gradient(135deg, #ecfdf5 0%, #a7f3d0 100%); color: #065f46; border-color: rgba(16, 185, 129, 0.3); } .status-offline-enhanced { background: linear-gradient(135deg, #fef2f2 0%, #fca5a5 100%); color: #991b1b; border-color: rgba(239, 68, 68, 0.3); } .status-printing-enhanced { background: linear-gradient(135deg, #eff6ff 0%, #bfdbfe 100%); color: #1e40af; border-color: rgba(59, 130, 246, 0.3); } /* Dark Mode Toggle - Premium Design */ .dark-mode-toggle-new { position: relative; display: flex; cursor: pointer; align-items: center; justify-content: center; border-radius: 9999px; padding: 0.625rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); background: linear-gradient(135deg, rgba(248, 250, 252, 0.9) 0%, rgba(241, 245, 249, 0.8) 100%); border: 1px solid rgba(226, 232, 240, 0.7); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.8); color: var(--color-text-secondary); z-index: 100; } .dark-mode-toggle-new:hover { transform: translateY(-2px) scale(1.05); background: linear-gradient(135deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.85) 100%); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 115, 206, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .dark-mode-toggle-new:active { transform: translateY(-1px) scale(0.98); transition: transform 0.1s; } .dark .dark-mode-toggle-new { background: rgba(10, 10, 10, 0.8); border: 1px solid rgba(42, 42, 42, 0.6); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05); color: var(--color-text-secondary); } .dark .dark-mode-toggle-new:hover { background: rgba(10, 10, 10, 0.9); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08); } /* Icon-Animation für Dark Mode Toggle */ .dark-mode-toggle-new .sun-icon, .dark-mode-toggle-new .moon-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .dark-mode-toggle-new .sun-icon:not(.hidden) { animation: icon-appear 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; } .dark-mode-toggle-new .moon-icon:not(.hidden) { animation: icon-appear 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; } @keyframes icon-appear { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.5) rotate(-20deg); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); } } .dark .sun-icon { display: none; } .dark .moon-icon { display: block; } .sun-icon { display: block; } .moon-icon { display: none; } /* User Menu Button - Premium Design */ .user-menu-button-new { display: flex; align-items: center; gap: 0.5rem; border-radius: 0.75rem; padding: 0.5rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); background: linear-gradient(135deg, rgba(248, 250, 252, 0.8) 0%, rgba(241, 245, 249, 0.7) 100%); border: 1px solid rgba(226, 232, 240, 0.6); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.7); } .user-menu-button-new:hover { transform: translateY(-1px); background: linear-gradient(135deg, rgba(248, 250, 252, 0.9) 0%, rgba(241, 245, 249, 0.8) 100%); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.8); } .dark .user-menu-button-new { background: rgba(10, 10, 10, 0.7); border-color: rgba(42, 42, 42, 0.6); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.03); } .dark .user-menu-button-new:hover { background: rgba(10, 10, 10, 0.8); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05); } /* Enhanced Hover Effects */ .hover-lift-enhanced { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .hover-lift-enhanced:hover { transform: translateY(-3px) scale(1.01); box-shadow: 0 12px 30px var(--color-shadow-strong), 0 6px 15px var(--color-shadow-accent); } .dark .hover-lift-enhanced:hover { box-shadow: 0 12px 30px var(--color-shadow); } /* Smooth Scrollbar for Light Mode */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--color-bg-secondary); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--color-border-secondary) 0%, var(--color-border-primary) 100%); border-radius: 4px; transition: background 0.2s ease; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--color-accent) 0%, var(--color-accent-hover) 100%); } .dark ::-webkit-scrollbar-track { background: var(--color-bg-secondary); } .dark ::-webkit-scrollbar-thumb { background: var(--color-border-primary); } .dark ::-webkit-scrollbar-thumb:hover { background: #60a5fa; } /* Loading States */ .loading-enhanced { position: relative; overflow: hidden; } .loading-enhanced::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0, 115, 206, 0.1), transparent); animation: loading-shimmer 2s infinite; } @keyframes loading-shimmer { 0% { left: -100%; } 100% { left: 100%; } } /* Focus States for Accessibility */ .focus-enhanced:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(0, 115, 206, 0.15), 0 4px 12px var(--color-shadow-accent); } .dark .focus-enhanced:focus { outline-color: #60a5fa; box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.15), 0 4px 12px rgba(96, 165, 250, 0.2); } /* Responsive Design Enhancements */ @media (max-width: 768px) { .card-enhanced { padding: 1rem; border-radius: 0.75rem; } .btn-enhanced { padding: 0.75rem 1.5rem; font-size: 0.8rem; } .modal-enhanced { border-radius: 1rem; margin: 1rem; } .dark-mode-toggle-new { padding: 0.5rem; } } /* Reduced Motion Support */ @media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } } /* High Contrast Mode Support */ @media (prefers-contrast: high) { :root { --color-shadow: rgba(0, 0, 0, 0.2); --color-shadow-strong: rgba(0, 0, 0, 0.3); --color-border-primary: #000000; } .dark { --color-border-primary: #ffffff; } } } /* Admin Panel spezifische Styles */ @layer components { /* Dark Mode Styles für Admin Panel */ .dark .bg-dark-card { @apply bg-dark-surface transition-colors; } /* Alternative direkte Definition ohne Zirkularität */ .bg-dark-surface { background-color: #1e293b; } /* Übergangseffekt für alle Komponenten */ .transition-all-colors { @apply transition-colors duration-300; } /* Admin Panel Container */ .admin-container { @apply max-w-7xl mx-auto p-4 md:p-8; } /* Admin Stats Cards */ .admin-stats { @apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-8; } .stat-card { @apply bg-white/60 dark:bg-black/70 rounded-xl border border-gray-200/60 dark:border-slate-700/30 p-5 relative overflow-hidden shadow-2xl hover:shadow-2xl transition-all duration-300 hover:-translate-y-1 backdrop-blur-xl; backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1); } .stat-icon { @apply absolute top-4 right-4 opacity-15 text-4xl; } .stat-title { @apply text-sm text-slate-500 dark:text-slate-400 mb-2 font-medium uppercase; } .stat-value { @apply text-2xl font-bold text-slate-900 dark:text-white mb-1; } .stat-desc { @apply text-sm text-slate-500 dark:text-slate-400; } /* Navigation Tabs */ .nav-tabs { @apply flex border-b border-gray-200 dark:border-slate-700/30 mb-4 overflow-x-auto; } .nav-tab { @apply py-4 px-6 text-slate-600 dark:text-slate-300 border-b-2 border-transparent cursor-pointer transition-all duration-200 whitespace-nowrap hover:text-slate-900 dark:hover:text-white hover:bg-slate-50 dark:hover:bg-slate-800/50; } .nav-tab.active { @apply text-slate-900 dark:text-white border-b-2 border-black dark:border-white font-medium; } /* Tab Content */ .tab-content { @apply mt-8; } .tab-pane { @apply hidden; } .tab-pane.active { @apply block; } /* Formulare für Admin Panel */ .form-group { @apply mb-4; } .form-label { @apply block mb-2 text-sm font-medium text-slate-700 dark:text-slate-300; } .form-input, .form-select, .form-textarea { @apply w-full px-3 py-2 bg-white/60 dark:bg-slate-800/60 border border-gray-300/60 dark:border-slate-600/60 rounded-lg text-slate-900 dark:text-white placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-slate-500 focus:border-transparent transition-all duration-200 backdrop-blur-lg; backdrop-filter: blur(16px) saturate(150%); -webkit-backdrop-filter: blur(16px) saturate(150%); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Tabellen im Admin Panel */ .admin-table { @apply min-w-full divide-y divide-gray-200 dark:divide-slate-700; } .admin-table thead { @apply bg-slate-50 dark:bg-slate-800; } .admin-table th { @apply px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider; } .admin-table tbody { @apply bg-white dark:bg-dark-surface divide-y divide-gray-200 dark:divide-slate-700; } .admin-table tr { @apply hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors; } .admin-table td { @apply px-6 py-4 whitespace-nowrap text-sm text-slate-900 dark:text-white; } /* Status Badges */ .badge { @apply px-2 inline-flex text-xs leading-5 font-semibold rounded-full; } .badge-success { @apply bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200; } .badge-error { @apply bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200; } .badge-warning { @apply bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200; } .badge-info { @apply bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200; } /* Drucker-Karten */ .printer-card { @apply bg-white/60 dark:bg-black/70 rounded-xl border border-gray-200/60 dark:border-slate-700/30 p-6 shadow-2xl hover:shadow-2xl transition-all duration-300 hover:-translate-y-1 backdrop-blur-xl; backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1); } .printer-header { @apply flex justify-between items-center mb-4; } .printer-name { @apply text-xl font-bold text-slate-900 dark:text-white; } .printer-actions { @apply flex space-x-2; } .printer-info { @apply grid grid-cols-2 gap-4 mb-4; } .printer-status { @apply flex items-center mt-4; } /* Status Indikatoren */ .status-indicator { @apply w-3 h-3 rounded-full mr-2; } .status-running { @apply bg-green-500; animation: pulse 2s infinite; } .status-stopped { @apply bg-red-500; } /* Pulse Animation */ @keyframes pulse { 0% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 1; transform: scale(1); } } /* Log-Einträge */ .log-entry { @apply p-3 border-l-4 mb-2 rounded-r-lg bg-white dark:bg-slate-800 hover:bg-slate-50 dark:hover:bg-slate-700 transition-colors; } .log-debug { @apply border-gray-400 dark:border-gray-500; } .log-info { @apply border-blue-400 dark:border-blue-500; } .log-warning { @apply border-yellow-400 dark:border-yellow-500; } .log-error { @apply border-red-400 dark:border-red-500; } .log-critical { @apply border-purple-400 dark:border-purple-500; } /* Scheduler Status */ .scheduler-status { @apply flex items-center p-4 bg-white dark:bg-slate-800 rounded-lg border border-gray-200 dark:border-slate-700 shadow-md; } /* Fortschrittsbalken */ .progress-bar { @apply w-full h-2 bg-gray-200 dark:bg-slate-700 rounded-full overflow-hidden; } .progress-bar-fill { @apply h-full transition-all duration-300; } .progress-bar-fill-blue { @apply bg-blue-500 dark:bg-blue-600; } .progress-bar-fill-green { @apply bg-green-500 dark:bg-green-600; } .progress-bar-fill-purple { @apply bg-purple-500 dark:bg-purple-600; } /* Benachrichtigungen */ .notification { @apply fixed top-4 right-4 max-w-md p-4 rounded-lg shadow-lg transform translate-x-full opacity-0 transition-all duration-300 z-50 bg-white dark:bg-slate-800 border-l-4; } .notification.show { @apply translate-x-0 opacity-100; } .notification-success { @apply border-green-500; } .notification-error { @apply border-red-500; } .notification-warning { @apply border-yellow-500; } .notification-info { @apply border-blue-500; } /* Alerts */ .alert { @apply p-4 rounded-lg border mb-4; } .alert-success { @apply bg-green-50 border-green-500 text-green-800 dark:bg-green-900/30 dark:text-green-200; } .alert-error { @apply bg-red-50 border-red-500 text-red-800 dark:bg-red-900/30 dark:text-red-200; } .alert-warning { @apply bg-yellow-50 border-yellow-500 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-200; } .alert-info { @apply bg-blue-50 border-blue-500 text-blue-800 dark:bg-blue-900/30 dark:text-blue-200; } } /* Glassmorphism Flash Messages */ .flash-message { @apply fixed top-4 right-4 px-6 py-4 rounded-2xl text-sm font-medium shadow-2xl transform transition-all duration-500 z-50 border; /* Verstärkter Glassmorphism-Effekt */ background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(40px) saturate(200%) brightness(130%) contrast(110%); -webkit-backdrop-filter: blur(40px) saturate(200%) brightness(130%) contrast(110%); border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 32px 64px rgba(0, 0, 0, 0.25), 0 12px 24px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1); animation: flash-slide-in 0.5s cubic-bezier(0.4, 0, 0.2, 1); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .dark .flash-message { background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(115%); -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(115%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 32px 64px rgba(0, 0, 0, 0.6), 0 12px 24px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); } .flash-message:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 40px 80px rgba(0, 0, 0, 0.3), 0 16px 32px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.15); } .dark .flash-message:hover { box-shadow: 0 40px 80px rgba(0, 0, 0, 0.7), 0 16px 32px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1); } .flash-message.info { @apply text-blue-100; background: linear-gradient(135deg, rgba(59, 130, 246, 0.2) 0%, rgba(147, 197, 253, 0.15) 50%, rgba(59, 130, 246, 0.1) 100%); border: 1px solid rgba(59, 130, 246, 0.3); } .flash-message.success { @apply text-green-100; background: linear-gradient(135deg, rgba(34, 197, 94, 0.2) 0%, rgba(134, 239, 172, 0.15) 50%, rgba(34, 197, 94, 0.1) 100%); border: 1px solid rgba(34, 197, 94, 0.3); } .flash-message.warning { @apply text-yellow-100; background: linear-gradient(135deg, rgba(245, 158, 11, 0.2) 0%, rgba(252, 211, 77, 0.15) 50%, rgba(245, 158, 11, 0.1) 100%); border: 1px solid rgba(245, 158, 11, 0.3); } .flash-message.error { @apply text-red-100; background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(252, 165, 165, 0.15) 50%, rgba(239, 68, 68, 0.1) 100%); border: 1px solid rgba(239, 68, 68, 0.3); } /* Flash Message Animation */ @keyframes flash-slide-in { 0% { opacity: 0; transform: translateX(100%) translateY(-20px) scale(0.9); backdrop-filter: blur(0px); } 50% { opacity: 0.8; transform: translateX(20px) translateY(-10px) scale(1.05); backdrop-filter: blur(20px); } 100% { opacity: 1; transform: translateX(0) translateY(0) scale(1); backdrop-filter: blur(40px); } } @keyframes flash-slide-out { 0% { opacity: 1; transform: translateX(0) translateY(0) scale(1); } 100% { opacity: 0; transform: translateX(100%) translateY(-20px) scale(0.9); } } .flash-message.hiding { animation: flash-slide-out 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards; } /* Do Not Disturb System Styles */ .dnd-toggle { @apply relative inline-flex items-center h-6 rounded-full w-11 transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500; background: rgba(156, 163, 175, 0.3); backdrop-filter: blur(10px); border: 1px solid rgba(156, 163, 175, 0.2); } .dnd-toggle.active { background: rgba(239, 68, 68, 0.3); border: 1px solid rgba(239, 68, 68, 0.4); } .dnd-toggle-slider { @apply inline-block h-4 w-4 rounded-full shadow-lg transform transition-transform duration-300; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.1); margin: 0.125rem; } .dnd-toggle.active .dnd-toggle-slider { transform: translateX(1.25rem); background: rgba(255, 255, 255, 1); box-shadow: 0 6px 12px rgba(239, 68, 68, 0.3), 0 3px 6px rgba(239, 68, 68, 0.2); } .dnd-indicator { @apply fixed top-4 left-4 z-50 flex items-center px-3 py-2 rounded-lg text-sm font-medium transition-all duration-300; background: rgba(239, 68, 68, 0.1); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border: 1px solid rgba(239, 68, 68, 0.3); color: rgb(239, 68, 68); transform: translateY(-100%); opacity: 0; } .dnd-indicator.active { transform: translateY(0); opacity: 1; } .dnd-modal { @apply fixed inset-0 z-50 flex items-center justify-center p-4; background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .dnd-modal-content { @apply w-full max-w-md rounded-2xl p-6 shadow-2xl transform transition-all; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(40px) saturate(200%) brightness(120%); -webkit-backdrop-filter: blur(40px) saturate(200%) brightness(120%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 8px 16px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.4); } .dark .dnd-modal-content { background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(40px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.6), 0 8px 16px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2); } /* DND Flash Message Override */ .flash-message.dnd-suppressed { animation: flash-fade-in 0.3s ease-out; opacity: 0.3; transform: scale(0.95); pointer-events: none; } @keyframes flash-fade-in { 0% { opacity: 0; transform: scale(0.9); } 100% { opacity: 0.3; transform: scale(0.95); } } /* Notification Counter */ .dnd-counter { @apply absolute -top-2 -right-2 bg-red-500 text-white text-xs rounded-full h-5 w-5 flex items-center justify-center font-bold; background: rgba(239, 68, 68, 0.9); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); animation: dnd-counter-bounce 0.5s ease-out; } @keyframes dnd-counter-bounce { 0% { transform: scale(0); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes slide-down { 0% { opacity: 0; transform: translateY(-20px); } 100% { opacity: 1; transform: translateY(0); } } /* Mercedes Background Pattern */ .mercedes-background::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' width='80' height='80' opacity='0.03' fill='currentColor'%3E%3Cpath d='M58.6,4.5C53,1.6,46.7,0,40,0c-6.7,0-13,1.6-18.6,4.5v0C8.7,11.2,0,24.6,0,40c0,15.4,8.7,28.8,21.5,35.5C27,78.3,33.3,80,40,80c6.7,0,12.9-1.7,18.5-4.6C71.3,68.8,80,55.4,80,40C80,24.6,71.3,11.2,58.6,4.5z M4,40c0-13.1,7-24.5,17.5-30.9v0C26.6,6,32.5,4.2,39,4l-4.5,32.7L21.5,46.8v0L8.3,57.1C5.6,52,4,46.2,4,40z M58.6,70.8C53.1,74.1,46.8,76,40,76c-6.8,0-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9v0L40,46.6l18.6,7.5v0l12,4.9C67.6,63.9,63.4,67.9,58.6,70.8z M58.6,46.8L58.6,46.8l-12.9-10L41.1,4c6.3,0.2,12.3,2,17.4,5.1v0C69,15.4,76,26.9,76,40c0,6.2-1.5,12-4.3,17.1L58.6,46.8z'/%3E%3C/svg%3E"); background-position: center; background-repeat: repeat; background-size: 120px 120px; pointer-events: none; opacity: 0.03; transition: opacity 0.3s ease; } .dark .mercedes-background::before { opacity: 0.015; /* Sehr subtil für eleganten Dark Mode */ filter: invert(1) brightness(0.3); background-size: 150px 150px; /* Größere Sterne für bessere Sichtbarkeit */ } /* Monochrome Button Styles */ @layer components { /* Buttons mit verstärktem Glassmorphism */ .btn-primary { @apply text-white dark:text-slate-900 px-4 py-2 rounded-lg transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 shadow-2xl hover:-translate-y-0.5; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(20px) saturate(150%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(150%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 8px 16px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1); } .btn-primary:hover { background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(25px) saturate(180%) brightness(120%); -webkit-backdrop-filter: blur(25px) saturate(180%) brightness(120%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 10px 20px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3); } .dark .btn-primary { background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(0, 0, 0, 0.1); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 0 1px rgba(0, 0, 0, 0.05); } .dark .btn-primary:hover { background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(0, 0, 0, 0.15); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .btn-secondary { @apply text-slate-900 dark:text-white px-4 py-2 rounded-lg transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-slate-500 focus:ring-offset-2 shadow-2xl hover:-translate-y-0.5; background: rgba(255, 255, 255, 0.3); backdrop-filter: blur(20px) saturate(150%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(150%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15), 0 8px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.2); } .btn-secondary:hover { background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(25px) saturate(180%) brightness(120%); -webkit-backdrop-filter: blur(25px) saturate(180%) brightness(120%); border: 1px solid rgba(255, 255, 255, 0.6); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2), 0 10px 20px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.7); } .dark .btn-secondary { background: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 8px 16px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1); } .dark .btn-secondary:hover { background: rgba(0, 0, 0, 0.6); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 10px 20px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3); } .btn-outline { @apply border-2 border-black/70 hover:bg-black/70 dark:border-white/70 dark:hover:bg-white/70 text-black hover:text-white dark:text-white dark:hover:text-slate-900 px-4 py-2 rounded-lg transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 backdrop-blur-lg; backdrop-filter: blur(16px) saturate(150%); -webkit-backdrop-filter: blur(16px) saturate(150%); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Glassmorphism Card mit abgerundeten Ecken - Verstärkt */ .glass-card { @apply rounded-xl p-6 shadow-2xl transition-all duration-300; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(30px) saturate(200%) brightness(120%) contrast(110%); -webkit-backdrop-filter: blur(30px) saturate(200%) brightness(120%) contrast(110%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 8px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1); border-radius: var(--card-radius); } .dark .glass-card { background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(30px) saturate(180%) brightness(110%) contrast(120%); -webkit-backdrop-filter: blur(30px) saturate(180%) brightness(110%) contrast(120%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Dashboard Cards mit verstärktem Glassmorphism */ .dashboard-card { @apply rounded-xl p-6 shadow-2xl transition-all duration-300 hover:-translate-y-1; background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(35px) saturate(200%) brightness(125%) contrast(115%); -webkit-backdrop-filter: blur(35px) saturate(200%) brightness(125%) contrast(115%); border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 8px 16px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.1); border-radius: var(--card-radius); } .dark .dashboard-card { background: rgba(0, 0, 0, 0.35); backdrop-filter: blur(35px) saturate(180%) brightness(115%) contrast(125%); -webkit-backdrop-filter: blur(35px) saturate(180%) brightness(115%) contrast(125%); border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5), 0 8px 16px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Navigation Styles */ .nav-link { @apply flex items-center px-4 py-2 rounded-lg text-sm font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-slate-500 focus:ring-offset-2 text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-700/50 hover:shadow-md; } .nav-link.active { @apply text-slate-900 dark:text-white bg-slate-100 dark:bg-black shadow-sm; } /* Verbesserte Navbar Styles - Verstärktes Glassmorphism */ .navbar { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 1rem; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 10px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } .navbar-button { padding: 0.25rem 0.5rem; font-size: 0.875rem; border-radius: 5px; transition: background-color 0.3s ease; } .navbar-button:hover { background-color: rgba(255, 255, 255, 0.2); } @media (max-width: 768px) { .navbar { flex-direction: column; padding: 0.25rem; } .navbar-button { margin: 0.25rem 0; } } .dark .navbar { background: rgba(0, 0, 0, 0.25); backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(120%); -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(120%); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6), 0 2px 8px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .navbar-brand { @apply flex items-center space-x-2 transition-transform duration-300 hover:scale-105; } .navbar-menu { @apply flex items-center justify-center space-x-1 md:space-x-3 lg:space-x-6 p-3 mx-4 rounded-2xl border; background: rgba(255, 255, 255, 0.25); backdrop-filter: blur(20px) saturate(150%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(150%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1); } .dark .navbar-menu { background: rgba(0, 0, 0, 0.4); backdrop-filter: blur(20px) saturate(150%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(150%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); } .navbar-button { @apply p-2 rounded-full transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2; } /* User Menu Styles */ .user-menu-button { @apply flex items-center space-x-2 rounded-lg p-1 transition-all duration-300 hover:bg-gray-100/80 dark:hover:bg-slate-700/60 focus:outline-none focus:ring-2 focus:ring-slate-500 focus:ring-offset-2; } .user-avatar { @apply w-10 h-10 bg-black dark:bg-white text-white dark:text-slate-900 rounded-full flex items-center justify-center font-bold text-sm shadow-md transition-all duration-300 hover:shadow-lg; } /* Avatar im Dropdown */ .avatar-large { @apply w-14 h-14 bg-black dark:bg-white text-white dark:text-slate-900 rounded-full flex items-center justify-center font-bold text-lg shadow-md; } .user-dropdown-item { @apply flex items-center px-4 py-3 text-sm text-slate-700 dark:text-slate-300 hover:bg-gray-100/80 dark:hover:bg-slate-700/60 hover:text-slate-900 dark:hover:text-white transition-all duration-300 focus:outline-none focus:bg-gray-100/80 dark:focus:bg-slate-700/60; } .user-dropdown-separator { @apply border-t border-gray-200/80 dark:border-slate-700/30 my-1; } .menu-item { @apply flex items-center space-x-2 px-4 py-2.5 text-slate-700 dark:text-slate-300 rounded-xl transition-all duration-300; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); } .menu-item:hover { @apply text-slate-900 dark:text-white; background: rgba(255, 255, 255, 0.3); backdrop-filter: blur(15px) saturate(150%); -webkit-backdrop-filter: blur(15px) saturate(150%); border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); transform: translateY(-1px); } .dark .menu-item { background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } .dark .menu-item:hover { background: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); } .menu-item.active { @apply text-slate-900 dark:text-white font-medium; background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.6); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.5); } .dark .menu-item.active { background: rgba(0, 0, 0, 0.6); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2); } /* Dropdown Styles - Verstärktes Glassmorphism */ .user-dropdown { @apply absolute right-0 mt-2 w-64 rounded-xl shadow-2xl z-50 overflow-hidden; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(40px) saturate(200%) brightness(130%) contrast(110%); -webkit-backdrop-filter: blur(40px) saturate(200%) brightness(130%) contrast(110%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 8px 16px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1); animation: fadeIn 0.2s ease-out forwards; } .dark .user-dropdown { background: rgba(0, 0, 0, 0.4); backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(120%); -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(120%) contrast(120%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.6), 0 8px 16px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); } .dropdown-header { @apply flex items-center p-4 border-b border-gray-200/80 dark:border-slate-700/30; } .dropdown-item { @apply flex items-center gap-3 px-4 py-3 text-sm text-slate-700 dark:text-slate-300 hover:bg-gray-100/80 dark:hover:bg-slate-700/60 hover:text-slate-900 dark:hover:text-white transition-all duration-300; } .dropdown-divider { @apply border-t border-gray-200/80 dark:border-slate-700/30; } /* Mercedes-Benz Logo Animation */ @keyframes mercedes-rotate { 0% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 50% { transform: rotate(180deg); } 75% { transform: rotate(270deg); } 100% { transform: rotate(360deg); } } .navbar-brand:hover svg { animation: mercedes-rotate 5s infinite linear; transform-origin: center; } } /* Navbar Sticky Fix - Außerhalb von @layer für höhere Priorität */ .navbar { position: -webkit-sticky !important; position: sticky !important; top: 0 !important; z-index: 50 !important; width: 100% !important; left: 0 !important; right: 0 !important; /* Verstärktes Glassmorphism Design */ --navbar-blur: 40px; --navbar-opacity: 0.15; background: rgba(255, 255, 255, var(--navbar-opacity, 0.15)) !important; backdrop-filter: blur(var(--navbar-blur, 40px)) saturate(200%) brightness(110%) contrast(105%) !important; -webkit-backdrop-filter: blur(var(--navbar-blur, 40px)) saturate(200%) brightness(110%) contrast(105%) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.15) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; } .dark .navbar { --navbar-dark-opacity: 0.25; background: rgba(0, 0, 0, var(--navbar-dark-opacity, 0.25)) !important; backdrop-filter: blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%) !important; -webkit-backdrop-filter: blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.08) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important; } /* Navbar Scroll-Effekt */ .navbar.scrolled { --navbar-blur: 50px; --navbar-opacity: 0.25; background: rgba(255, 255, 255, var(--navbar-opacity, 0.25)) !important; backdrop-filter: blur(var(--navbar-blur, 50px)) saturate(220%) brightness(115%) contrast(110%) !important; -webkit-backdrop-filter: blur(var(--navbar-blur, 50px)) saturate(220%) brightness(115%) contrast(110%) !important; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.2) !important; } .dark .navbar.scrolled { --navbar-dark-opacity: 0.35; background: rgba(0, 0, 0, var(--navbar-dark-opacity, 0.35)) !important; backdrop-filter: blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%) !important; -webkit-backdrop-filter: blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%) !important; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1) !important; } /* Neue Navbar-Komponenten mit verbessertem Glassmorphism */ .navbar-menu-new { @apply flex items-center justify-center space-x-0.5 md:space-x-1; max-width: 100%; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; /* Glassmorphism für das Menü */ background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(25px) saturate(170%) brightness(108%); -webkit-backdrop-filter: blur(25px) saturate(170%) brightness(108%); border-radius: 16px; padding: 8px; margin: 0 16px; border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .dark .navbar-menu-new { background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(30px) saturate(150%) brightness(115%); -webkit-backdrop-filter: blur(30px) saturate(150%) brightness(115%); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.03); } .navbar-menu-new::-webkit-scrollbar { display: none; } /* Glassmorphism Hover-Animation für Navbar-Menu */ .navbar-menu-new:hover { backdrop-filter: blur(35px) saturate(190%) brightness(112%); -webkit-backdrop-filter: blur(35px) saturate(190%) brightness(112%); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1); transform: translateY(-1px); } .dark .navbar-menu-new:hover { backdrop-filter: blur(40px) saturate(170%) brightness(120%); -webkit-backdrop-filter: blur(40px) saturate(170%) brightness(120%); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.05); } .nav-item { @apply flex items-center space-x-1.5 px-3 py-2.5 rounded-xl text-sm font-medium transition-all duration-300; color: rgba(15, 23, 42, 0.85); /* Gläserner Nav-Item */ background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(15px) saturate(140%); -webkit-backdrop-filter: blur(15px) saturate(140%); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.15); position: relative; overflow: hidden; animation: nav-item-entrance 0.6s ease-out; } /* Glassmorphism Hover-Effekt */ .nav-item::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; } .nav-item:hover::before { left: 100%; } /* Zusätzlicher Glitter-Effekt */ .nav-item::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(255, 255, 255, 0.1) 30deg, transparent 60deg); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; animation: rotate 3s linear infinite; } .nav-item:hover::after { opacity: 1; } .dark .nav-item { color: rgba(255, 255, 255, 0.85); background: rgba(0, 0, 0, 0.15); backdrop-filter: blur(20px) saturate(130%); -webkit-backdrop-filter: blur(20px) saturate(130%); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.08); } .nav-item:hover { color: rgba(15, 23, 42, 1); background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(25px) saturate(160%) brightness(110%); -webkit-backdrop-filter: blur(25px) saturate(160%) brightness(110%); border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1); transform: translateY(-2px) scale(1.02); } .dark .nav-item:hover { color: rgba(255, 255, 255, 1); background: rgba(0, 0, 0, 0.25); backdrop-filter: blur(30px) saturate(150%) brightness(120%); -webkit-backdrop-filter: blur(30px) saturate(150%) brightness(120%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.05); } .nav-item.active { color: rgba(15, 23, 42, 1); background: rgba(255, 255, 255, 0.35); backdrop-filter: blur(35px) saturate(180%) brightness(115%); -webkit-backdrop-filter: blur(35px) saturate(180%) brightness(115%); border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 1px rgba(59, 130, 246, 0.3); transform: translateY(-1px); animation: nav-item-active-glow 2s ease-in-out infinite alternate; } .dark .nav-item.active { color: rgba(255, 255, 255, 1); background: rgba(0, 0, 0, 0.4); backdrop-filter: blur(40px) saturate(160%) brightness(125%); -webkit-backdrop-filter: blur(40px) saturate(160%) brightness(125%); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(59, 130, 246, 0.2); } /* Animationen für Glassmorphism-Effekte */ @keyframes nav-item-entrance { 0% { opacity: 0; transform: translateY(10px) scale(0.95); backdrop-filter: blur(5px); } 100% { opacity: 1; transform: translateY(0) scale(1); backdrop-filter: blur(15px) saturate(140%); } } @keyframes nav-item-active-glow { 0% { box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 1px rgba(59, 130, 246, 0.3); } 100% { box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 0 0 2px rgba(59, 130, 246, 0.5); } } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Glassmorphism-Partikel-Effekt */ .navbar::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 1px, transparent 1px), radial-gradient(circle at 80% 50%, rgba(255, 255, 255, 0.1) 1px, transparent 1px), radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.05) 1px, transparent 1px), radial-gradient(circle at 60% 80%, rgba(255, 255, 255, 0.05) 1px, transparent 1px); opacity: 0; animation: glassmorphism-particles 8s ease-in-out infinite; pointer-events: none; } .dark .navbar::before { background: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.05) 1px, transparent 1px), radial-gradient(circle at 80% 50%, rgba(255, 255, 255, 0.05) 1px, transparent 1px), radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.03) 1px, transparent 1px), radial-gradient(circle at 60% 80%, rgba(255, 255, 255, 0.03) 1px, transparent 1px); } @keyframes glassmorphism-particles { 0%, 100% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } } /* Dark Mode Toggle - Kompakteres Design */ .dark-mode-toggle-new { @apply relative p-2 rounded-full flex items-center justify-center transition-all duration-300 cursor-pointer; background: rgba(241, 245, 249, 0.8); border: 1px solid rgba(255, 255, 255, 0.7); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.04); color: #334155; z-index: 100; } .dark-mode-toggle-new:hover { @apply transform -translate-y-0.5; background: rgba(241, 245, 249, 0.9); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.06); } .dark-mode-toggle-new:active { @apply transform scale-95; transition: transform 0.1s; } .dark .dark-mode-toggle-new { background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1); color: #e2e8f0; } .dark .dark-mode-toggle-new:hover { background: rgba(30, 41, 59, 0.9); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.15); } /* Icon-Animation */ .dark-mode-toggle-new .sun-icon, .dark-mode-toggle-new .moon-icon { @apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 transition-all duration-300; } .dark-mode-toggle-new .sun-icon:not(.hidden) { animation: spin-in 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; } .dark-mode-toggle-new .moon-icon:not(.hidden) { animation: spin-in 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; } @keyframes spin-in { 0% { opacity: 0; transform: translateY(10px) scale(0.7) rotate(20deg); } 100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); } } .dark .sun-icon { display: none; } .dark .moon-icon { display: block; } .sun-icon { display: block; } .moon-icon { display: none; } /* User Menu Button - Kompakteres Design */ .user-menu-button-new { @apply flex items-center space-x-1.5 rounded-lg p-1 transition-all duration-300; background: rgba(241, 245, 249, 0.6); border: 1px solid rgba(255, 255, 255, 0.6); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02); } .user-menu-button-new:hover { @apply transform -translate-y-0.5; background: rgba(241, 245, 249, 0.8); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 0, 0, 0.04); } .dark .user-menu-button-new { background: rgba(30, 41, 59, 0.6); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.1); } .dark .user-menu-button-new:hover { background: rgba(30, 41, 59, 0.8); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1); } /* User Avatar - Kompakteres Design */ .user-avatar-new { @apply h-7 w-7 rounded-full flex items-center justify-center text-white font-semibold text-xs shadow-md transition-all duration-300; background: linear-gradient(135deg, #000000, #333333); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1); } .dark .user-avatar-new { background: linear-gradient(135deg, #f8fafc, #e2e8f0); color: #0f172a; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2); } /* Login Button - Kompakteres Design */ .login-button-new { @apply flex items-center px-3 py-1.5 rounded-lg text-xs font-medium shadow-sm transition-all duration-300; background: #000000; color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.08); } .login-button-new:hover { @apply transform -translate-y-0.5; background: #333333; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15), 0 3px 4px rgba(0, 0, 0, 0.1); } .dark .login-button-new { background: #ffffff; color: #000000; border: 1px solid rgba(0, 0, 0, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.15); } .dark .login-button-new:hover { background: #f1f5f9; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25), 0 3px 4px rgba(0, 0, 0, 0.2); } /* Mobile Menu - Kompakteres Design */ .mobile-menu-new { @apply w-full overflow-hidden transition-all duration-300 z-40; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(241, 245, 249, 0.8); max-height: 0; opacity: 0; } .mobile-menu-new.open { max-height: 400px; opacity: 1; border-bottom: 1px solid rgba(241, 245, 249, 0.8); } .dark .mobile-menu-new { background: rgba(15, 23, 42, 0.8); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba(30, 41, 59, 0.8); } .mobile-nav-item { @apply flex items-center space-x-2.5 px-3 py-2.5 rounded-lg text-sm text-slate-800 dark:text-slate-200 transition-all duration-300; } .mobile-nav-item:hover { background: rgba(241, 245, 249, 0.8); } .dark .mobile-nav-item:hover { background: rgba(30, 41, 59, 0.6); } .mobile-nav-item.active { background: rgba(241, 245, 249, 0.9); color: #000000; font-weight: 500; } .dark .mobile-nav-item.active { background: rgba(30, 41, 59, 0.8); color: #ffffff; } /* Dashboard Stat Cards mit schwarzem Hintergrund im Dark Mode */ .mb-stat-card { background: linear-gradient(135deg, rgba(240, 249, 255, 0.6) 0%, rgba(230, 242, 255, 0.6) 100%); color: #0f172a; position: relative; overflow: hidden; border: none; border-radius: var(--card-radius); backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1); padding: 1.5rem; margin: 1rem; transition: transform 0.3s ease, box-shadow 0.3s ease; } .dark .mb-stat-card { background: linear-gradient(135deg, rgba(0, 0, 0, 0.7) 0%, rgba(10, 10, 10, 0.7) 100%); color: var(--text-primary, #f8fafc); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Stats und Jobs Page Card Styles */ .stats-card, .job-card { @apply bg-white/60 dark:bg-black/80 backdrop-blur-2xl border border-gray-200/70 dark:border-slate-700/20 rounded-xl shadow-2xl transition-all duration-300; backdrop-filter: blur(24px) saturate(200%) brightness(120%); -webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1); border-radius: var(--card-radius); } /* Footer Styling - Verstärktes Glassmorphism */ footer { @apply transition-all duration-300; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(30px) saturate(180%) brightness(120%); -webkit-backdrop-filter: blur(30px) saturate(180%) brightness(120%); border-top: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.1), 0 -2px 8px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); } .dark footer { background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(30px) saturate(160%) brightness(110%); -webkit-backdrop-filter: blur(30px) saturate(160%) brightness(110%); border-top: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.3), 0 -2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.03); } /* Dropdown Pfeil Animation */ .dropdown-arrow { @apply transition-transform duration-300; } /* Mercedes-Benz Hintergrund mit Star-Pattern */ .mercedes-star-bg { position: relative; } .mercedes-star-bg::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' width='80' height='80' opacity='0.05' fill='currentColor'%3E%3Cpath d='M58.6,4.5C53,1.6,46.7,0,40,0c-6.7,0-13,1.6-18.6,4.5v0C8.7,11.2,0,24.6,0,40c0,15.4,8.7,28.8,21.5,35.5C27,78.3,33.3,80,40,80c6.7,0,12.9-1.7,18.5-4.6C71.3,68.8,80,55.4,80,40C80,24.6,71.3,11.2,58.6,4.5z M4,40c0-13.1,7-24.5,17.5-30.9v0C26.6,6,32.5,4.2,39,4l-4.5,32.7L21.5,46.8v0L8.3,57.1C5.6,52,4,46.2,4,40z M58.6,70.8C53.1,74.1,46.8,76,40,76c-6.8,0-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9v0L40,46.6l18.6,7.5v0l12,4.9C67.6,63.9,63.4,67.9,58.6,70.8z M58.6,46.8L58.6,46.8l-12.9-10L41.1,4c6.3,0.2,12.3,2,17.4,5.1v0C69,15.4,76,26.9,76,40c0,6.2-1.5,12-4.3,17.1L58.6,46.8z'/%3E%3C/svg%3E"); background-position: center; background-repeat: repeat; background-size: 40px 40px; z-index: -1; opacity: 0.05; } .dark .mercedes-star-bg::after { opacity: 0.02; filter: invert(1) brightness(0.4); } /* Zusätzliche Glassmorphism-Verbesserungen */ .glass-effect { backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3); } .dark .glass-effect { background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15); } /* Verbesserte Hover-Effekte für alle interaktiven Elemente */ .glass-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .glass-hover:hover { transform: translateY(-2px); backdrop-filter: blur(25px) saturate(200%) brightness(120%); -webkit-backdrop-filter: blur(25px) saturate(200%) brightness(120%); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15), 0 8px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4); } .dark .glass-hover:hover { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); } /* Neue verbesserte Drucker-Karten für die Drucker-Ansicht */ .printer-card-new { @apply bg-gradient-to-br from-white/90 to-white/70 dark:from-slate-800/90 dark:to-slate-900/70 backdrop-blur-2xl rounded-xl border border-gray-200/70 dark:border-slate-700/30 p-5 shadow-2xl transition-all duration-300 hover:-translate-y-1 relative overflow-hidden; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08), 0 10px 20px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(255, 255, 255, 0.1); border-radius: var(--card-radius, 1rem); } .dark .printer-card-new { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 10px 20px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Online Drucker-Karten mit stärkerem visuellen Unterschied */ .printer-card-new.online { @apply bg-gradient-to-br from-green-50/90 to-emerald-50/80 dark:from-green-900/30 dark:to-emerald-900/20 border-green-200 dark:border-green-700/50; box-shadow: 0 20px 40px rgba(0, 122, 85, 0.08), 0 10px 20px rgba(0, 122, 85, 0.06), 0 0 0 1px rgba(209, 250, 229, 0.4); } .dark .printer-card-new.online { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(16, 185, 129, 0.2); } /* Status-Badge mit verbesserten Styles */ .status-badge-new { @apply px-2.5 py-1 rounded-full text-xs font-medium inline-flex items-center space-x-1 shadow-sm; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); } .dark .status-badge-new { background: rgba(30, 41, 59, 0.7); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); } .status-badge-new.online { @apply bg-green-100/90 text-green-800 dark:bg-green-900/60 dark:text-green-300; } .status-badge-new.offline { @apply bg-red-100/90 text-red-800 dark:bg-red-900/60 dark:text-red-300; } /* Verbesserte Filterleiste */ .filter-bar-new { @apply bg-white/80 dark:bg-slate-800/80 backdrop-blur-xl rounded-lg p-1.5 border border-gray-200/60 dark:border-slate-700/30 shadow-xl; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05), 0 5px 10px rgba(0, 0, 0, 0.03), 0 0 0 1px rgba(255, 255, 255, 0.2); } .dark .filter-bar-new { box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.05); } .filter-btn-new { @apply px-3.5 py-2 text-sm rounded-md transition-all duration-300 font-medium; } .filter-btn-new.active { @apply bg-black text-white dark:bg-white dark:text-slate-900 shadow-md; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); } .dark .filter-btn-new.active { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); } /* Verbesserte Aktionsschaltflächen */ .action-btn-new { @apply flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium text-sm transition-all duration-300 shadow-md hover:-translate-y-0.5; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .action-btn-new.primary { @apply bg-indigo-600 hover:bg-indigo-700 text-white dark:bg-indigo-600 dark:hover:bg-indigo-500; box-shadow: 0 5px 15px rgba(79, 70, 229, 0.2); } .dark .action-btn-new.primary { box-shadow: 0 5px 15px rgba(79, 70, 229, 0.3); } .action-btn-new.success { @apply bg-green-600 hover:bg-green-700 text-white dark:bg-green-600 dark:hover:bg-green-500; box-shadow: 0 5px 15px rgba(16, 185, 129, 0.2); } .dark .action-btn-new.success { box-shadow: 0 5px 15px rgba(16, 185, 129, 0.3); } .action-btn-new.danger { @apply bg-red-600 hover:bg-red-700 text-white dark:bg-red-600 dark:hover:bg-red-500; box-shadow: 0 5px 15px rgba(239, 68, 68, 0.2); } .dark .action-btn-new.danger { box-shadow: 0 5px 15px rgba(239, 68, 68, 0.3); } /* Informationszeilen in Drucker-Karten */ .printer-info-row { @apply flex items-center gap-2 text-xs sm:text-sm text-slate-700 dark:text-slate-300 mb-1.5; } .printer-info-icon { @apply w-3.5 h-3.5 sm:w-4 sm:h-4 text-slate-500 dark:text-slate-400 flex-shrink-0; } /* Online-Indikator mit Pulseffekt */ .online-indicator { @apply absolute top-2.5 right-2.5 w-3 h-3 bg-green-500 rounded-full shadow-lg; box-shadow: 0 0 0 rgba(16, 185, 129, 0.6); animation: pulse-ring 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite; } @keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6); } 70% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } } /* Header mit verbesserten Status-Anzeigen */ .status-overview-new { @apply flex flex-wrap gap-3 text-xs sm:text-sm p-3 bg-white/60 dark:bg-slate-800/60 backdrop-blur-xl rounded-lg border border-gray-200/60 dark:border-slate-700/30 shadow-lg; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04), 0 5px 10px rgba(0, 0, 0, 0.02), 0 0 0 1px rgba(255, 255, 255, 0.1); } .dark .status-overview-new { box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 5px 10px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.03); } .status-dot { @apply w-2.5 h-2.5 rounded-full; } .status-dot.online { @apply bg-green-500; animation: pulse-dot 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite; } .status-dot.offline { @apply bg-red-500; } @keyframes pulse-dot { 0% { transform: scale(0.95); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 1; } } /* Verbesserte Modals mit Glassmorphism */ .modal-new { @apply fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/40 backdrop-blur-sm; } .modal-content-new { @apply bg-white/90 dark:bg-slate-800/90 backdrop-blur-2xl rounded-2xl p-6 w-full max-w-md shadow-2xl border border-gray-200/60 dark:border-slate-700/30 transform transition-all duration-300; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 15px 30px rgba(0, 0, 0, 0.1), 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.3); } /* User Dropdown Items */ .user-dropdown-item { @apply flex items-center px-4 py-3 text-sm text-slate-700 dark:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-800 transition-all duration-200 cursor-pointer; } .user-dropdown-item:first-child { @apply rounded-t-xl; } .user-dropdown-item:last-child { @apply rounded-b-xl; } .user-dropdown-item:hover { background: rgba(248, 250, 252, 0.8); transform: translateX(2px); } .dark .user-dropdown-item:hover { background: rgba(30, 41, 59, 0.8); } /* User Dropdown Icons */ .user-dropdown-icon { @apply w-4 h-4 mr-3 text-slate-500 dark:text-slate-400 transition-colors duration-200; } .user-dropdown-item:hover .user-dropdown-icon { @apply text-slate-700 dark:text-slate-200; } /* Divider in User Dropdown */ .user-dropdown-divider { @apply border-t border-slate-200 dark:border-slate-700 my-1; } /* User Info Section in Dropdown */ .user-info-section { @apply px-4 py-3 border-b border-slate-200 dark:border-slate-700; background: rgba(248, 250, 252, 0.5); } .dark .user-info-section { background: rgba(30, 41, 59, 0.5); } .user-info-name { @apply text-sm font-semibold text-slate-900 dark:text-white; } .user-info-role { @apply text-xs text-slate-500 dark:text-slate-400 mt-1; }