/** * Mercedes-Benz MYP Platform - Optimierte Professional Theme * Vereinfachte Light/Dark Mode Implementierung für bessere Performance */ /* Globale CSS-Variablen für konsistente Theming */ :root { /* Mercedes-Benz Markenfarben */ --mb-primary: #0073ce; --mb-primary-dark: #005a9f; --mb-secondary: #64748b; --mb-accent: #0ea5e9; --mb-black: #000000; --mb-silver: #c0c0c0; /* Light Mode Farbpalette */ --light-bg-primary: #ffffff; --light-bg-secondary: #fafbfc; --light-bg-tertiary: #f3f5f7; --light-surface: #ffffff; --light-surface-hover: #fafbfc; --light-text-primary: #111827; --light-text-secondary: #374151; --light-text-muted: #6b7280; --light-text-accent: #0073ce; --light-border: #e5e7eb; --light-border-strong: #d1d5db; --light-shadow: rgba(0, 0, 0, 0.04); --light-shadow-strong: rgba(0, 0, 0, 0.08); /* Dark Mode Farbpalette */ --dark-bg-primary: #0f172a; --dark-bg-secondary: #1e293b; --dark-bg-tertiary: #334155; --dark-surface: #1e293b; --dark-surface-hover: #334155; --dark-text-primary: #f8fafc; --dark-text-secondary: #e2e8f0; --dark-text-muted: #94a3b8; --dark-border: #334155; --dark-border-strong: #475569; --dark-shadow: rgba(0, 0, 0, 0.3); --dark-shadow-strong: rgba(0, 0, 0, 0.5); } /* Vereinfachte Hero-Header */ .professional-hero { position: relative; overflow: hidden; border-radius: 1rem; margin: 1.5rem; margin-bottom: 2rem; background: var(--light-bg-secondary); border: 1px solid var(--light-border); box-shadow: 0 4px 12px var(--light-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; } .professional-hero:hover { transform: translateY(-1px); box-shadow: 0 8px 20px var(--light-shadow-strong); } .dark .professional-hero { background: var(--dark-bg-secondary); border: 1px solid var(--dark-border); box-shadow: 0 8px 20px var(--dark-shadow); } /* Vereinfachte Container */ .professional-container { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; box-shadow: 0 2px 8px var(--light-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; } .dark .professional-container { background: var(--dark-surface); border: 1px solid var(--dark-border); box-shadow: 0 4px 12px var(--dark-shadow); } .professional-container:hover { transform: translateY(-1px); box-shadow: 0 4px 16px var(--light-shadow-strong); } .dark .professional-container:hover { box-shadow: 0 8px 20px var(--dark-shadow-strong); } /* Vereinfachte Glassmorphism-Effekte */ .mb-glass { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(8px); border: 1px solid rgba(229, 231, 235, 0.4); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); transition: transform 0.2s ease, background 0.2s ease; } .dark .mb-glass { background: rgba(15, 23, 42, 0.85); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); } .mb-glass:hover { background: rgba(255, 255, 255, 0.95); transform: translateY(-1px); } .dark .mb-glass:hover { background: rgba(15, 23, 42, 0.9); } /* Vereinfachte Buttons */ .btn-professional { background: linear-gradient(135deg, var(--mb-primary) 0%, var(--mb-primary-dark) 100%); color: white; border: none; border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-weight: 600; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.025em; transition: transform 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 2px 8px rgba(0, 115, 206, 0.2); } .btn-professional:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 115, 206, 0.3); } .btn-professional:active { transform: translateY(0); } /* Secondary Button */ .btn-secondary-professional { background: var(--light-surface); color: var(--light-text-primary); border: 1px solid var(--light-border-strong); border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-weight: 600; font-size: 0.875rem; transition: all 0.2s ease; box-shadow: 0 1px 4px var(--light-shadow); } .dark .btn-secondary-professional { background: var(--dark-surface); color: var(--dark-text-primary); border-color: var(--dark-border-strong); box-shadow: 0 2px 8px var(--dark-shadow); } .btn-secondary-professional:hover { background: var(--light-surface-hover); border-color: var(--mb-primary); transform: translateY(-1px); } .dark .btn-secondary-professional:hover { background: var(--dark-surface-hover); } /* Vereinfachte Input Fields */ .input-professional { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.5rem; padding: 0.75rem 1rem; color: var(--light-text-primary); font-size: 0.875rem; transition: border-color 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 1px 4px var(--light-shadow); } .dark .input-professional { background: var(--dark-surface); border-color: var(--dark-border); color: var(--dark-text-primary); box-shadow: 0 2px 4px var(--dark-shadow); } .input-professional:focus { border-color: var(--mb-primary); box-shadow: 0 0 0 3px rgba(0, 115, 206, 0.1); transform: translateY(-1px); } .input-professional::placeholder { color: var(--light-text-muted); } .dark .input-professional::placeholder { color: var(--dark-text-muted); } /* Vereinfachte Cards */ .card-professional { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 1.5rem; box-shadow: 0 2px 8px var(--light-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; } .card-professional:hover { transform: translateY(-2px); box-shadow: 0 4px 16px var(--light-shadow-strong); } .dark .card-professional { background: var(--dark-surface); border-color: var(--dark-border); box-shadow: 0 4px 12px var(--dark-shadow); } /* Vereinfachte Statistics Cards */ .stat-card { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 1.5rem; text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 2px 8px var(--light-shadow); } .dark .stat-card { background: var(--dark-surface); border-color: var(--dark-border); box-shadow: 0 4px 12px var(--dark-shadow); } .stat-card:hover { transform: translateY(-1px); box-shadow: 0 4px 16px var(--light-shadow-strong); } .dark .stat-card:hover { box-shadow: 0 8px 20px var(--dark-shadow-strong); } .stat-number { font-size: 2.25rem; font-weight: 700; color: var(--light-text-primary); line-height: 1; margin-bottom: 0.5rem; } .dark .stat-number { color: var(--dark-text-primary); } .stat-label { font-size: 0.875rem; font-weight: 500; color: var(--light-text-muted); text-transform: uppercase; letter-spacing: 0.05em; } .dark .stat-label { color: var(--dark-text-muted); } /* Vereinfachte Status Badges */ .status-professional { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; transition: transform 0.2s ease; border: 1px solid transparent; } .status-professional:hover { transform: scale(1.02); } /* Status Indicators */ .status-online { background: #ecfdf5; color: #065f46; border: 1px solid rgba(16, 185, 129, 0.2); } .dark .status-online { background: rgba(16, 185, 129, 0.15); color: #10b981; border-color: rgba(16, 185, 129, 0.3); } .status-offline { background: #fef2f2; color: #991b1b; border: 1px solid rgba(239, 68, 68, 0.2); } .dark .status-offline { background: rgba(239, 68, 68, 0.15); color: #ef4444; border-color: rgba(239, 68, 68, 0.3); } .status-printing { background: #eff6ff; color: #1d4ed8; border: 1px solid rgba(59, 130, 246, 0.2); } .dark .status-printing { background: rgba(59, 130, 246, 0.15); color: #3b82f6; border-color: rgba(59, 130, 246, 0.3); } /* Vereinfachte Typography */ .title-professional { color: var(--light-text-primary); font-weight: 700; letter-spacing: -0.025em; line-height: 1.1; } .dark .title-professional { color: var(--dark-text-primary); } .subtitle-professional { color: var(--light-text-muted); font-size: 1.125rem; line-height: 1.6; font-weight: 400; opacity: 0.9; } .dark .subtitle-professional { color: var(--dark-text-muted); } /* Professional Navigation */ .nav-professional { background: var(--light-bg-secondary); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 0.5rem; box-shadow: 0 2px 8px var(--light-shadow); } .dark .nav-professional { background: var(--dark-bg-secondary); border-color: var(--dark-border); box-shadow: 0 4px 12px var(--dark-shadow); } .nav-item-professional { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; border-radius: 0.5rem; color: var(--light-text-secondary); text-decoration: none; font-weight: 500; transition: all 0.2s ease; position: relative; background: transparent; } .dark .nav-item-professional { color: var(--dark-text-secondary); } .nav-item-professional:hover { background: var(--light-surface-hover); color: var(--light-text-primary); transform: translateX(4px); box-shadow: 0 2px 8px var(--light-shadow); } .dark .nav-item-professional:hover { background: var(--dark-surface-hover); color: var(--dark-text-primary); } .nav-item-professional.active { background: linear-gradient(135deg, rgba(0, 115, 206, 0.1) 0%, rgba(0, 115, 206, 0.05) 100%); color: var(--mb-primary); font-weight: 600; border: 1px solid var(--light-border-strong); box-shadow: 0 2px 8px var(--light-shadow); } .dark .nav-item-professional.active { background: rgba(59, 130, 246, 0.2); } /* Professional Tables */ .table-professional { width: 100%; border-collapse: collapse; background: var(--light-bg-secondary); border-radius: 0.75rem; overflow: hidden; box-shadow: 0 2px 8px var(--light-shadow); border: 1px solid var(--light-border); } .dark .table-professional { background: var(--dark-bg-secondary); box-shadow: 0 4px 12px var(--dark-shadow); } .table-professional th { background: linear-gradient(135deg, var(--light-bg-tertiary) 0%, var(--light-bg-secondary) 100%); color: var(--light-text-primary); font-weight: 600; text-align: left; padding: 1rem 1.5rem; border-bottom: 1px solid var(--light-border); position: relative; } .table-professional th::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, var(--light-border-strong) 50%, transparent 100%); } .dark .table-professional th { background: var(--dark-bg-tertiary); color: var(--dark-text-primary); border-bottom-color: var(--dark-border); } .table-professional td { padding: 1rem 1.5rem; border-bottom: 1px solid var(--light-border); color: var(--light-text-secondary); transition: all 0.2s ease; } .dark .table-professional td { border-bottom-color: var(--dark-border); color: var(--dark-text-secondary); } .table-professional tbody tr:hover { background: var(--light-surface-hover); transform: scale(1.005); box-shadow: 0 2px 8px var(--light-shadow); } .dark .table-professional tbody tr:hover { background: var(--dark-surface-hover); } /* Professional Alerts */ .alert-professional { border-radius: 1rem; padding: 1.5rem; border: 1px solid transparent; display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; box-shadow: 0 4px 15px var(--light-shadow); position: relative; overflow: hidden; } .alert-professional::before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 4px; } .alert-info { background: linear-gradient(135deg, rgba(59, 130, 246, 0.08) 0%, rgba(59, 130, 246, 0.03) 100%); border-color: rgba(59, 130, 246, 0.2); color: #1e40af; } .alert-info::before { background: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%); } .dark .alert-info { background: rgba(59, 130, 246, 0.2); color: #60a5fa; } .alert-success { background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(16, 185, 129, 0.03) 100%); border-color: rgba(16, 185, 129, 0.2); color: #065f46; } .alert-success::before { background: linear-gradient(180deg, #10b981 0%, #059669 100%); } .dark .alert-success { background: rgba(16, 185, 129, 0.2); color: #10b981; } .alert-warning { background: linear-gradient(135deg, rgba(251, 191, 36, 0.08) 0%, rgba(251, 191, 36, 0.03) 100%); border-color: rgba(251, 191, 36, 0.2); color: #92400e; } .alert-warning::before { background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%); } .dark .alert-warning { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } .alert-error { background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.03) 100%); border-color: rgba(239, 68, 68, 0.2); color: #991b1b; } .alert-error::before { background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%); } .dark .alert-error { background: rgba(239, 68, 68, 0.2); color: #ef4444; } /* Background Gradients für verschiedene Seiten */ .bg-professional { background: var(--light-bg-secondary); min-height: 100vh; position: relative; } .bg-professional::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(0, 115, 206, 0.03) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(0, 115, 206, 0.02) 0%, transparent 50%), radial-gradient(circle at 40% 80%, rgba(0, 115, 206, 0.01) 0%, transparent 50%); pointer-events: none; z-index: -1; } .dark .bg-professional { background: linear-gradient(135deg, var(--dark-bg-primary) 0%, var(--dark-bg-secondary) 50%, var(--dark-bg-tertiary) 100%); } /* Utilities */ .text-professional-primary { color: var(--light-text-primary); font-weight: 600; } .dark .text-professional-primary { color: var(--dark-text-primary); } .text-professional-secondary { color: var(--light-text-secondary); font-weight: 500; } .dark .text-professional-secondary { color: var(--dark-text-secondary); } .text-professional-muted { color: var(--light-text-muted); font-weight: 400; } .dark .text-professional-muted { color: var(--dark-text-muted); } .text-professional-accent { color: var(--light-text-accent); font-weight: 600; } .dark .text-professional-accent { color: #60a5fa; } /* Censored Text for Privacy Protection */ .censored-text { font-family: monospace; background: linear-gradient(45deg, var(--light-text-secondary), var(--light-text-muted)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 500; position: relative; } .censored-text::after { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: currentColor; opacity: 0.3; } /* Smooth transitions für alle professionellen Komponenten */ .professional-hero, .professional-container, .mb-glass, .btn-professional, .btn-secondary-professional, .input-professional, .card-professional, .stat-card, .status-professional, .nav-professional, .nav-item-professional, .table-professional, .alert-professional { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Responsive Design */ @media (max-width: 768px) { .professional-hero { margin: 1rem; border-radius: 1.5rem; } .card-professional { padding: 1rem; } .nav-professional { padding: 0.25rem; } .nav-item-professional { padding: 0.5rem 0.75rem; } .stat-number { font-size: 2rem; } .btn-professional, .btn-secondary-professional { padding: 0.625rem 1.5rem; font-size: 0.8rem; } } /* Animation-Klassen */ .animate-fade-in { animation: fadeInProfessional 0.6s ease-out; } .animate-slide-up { animation: slideUpProfessional 0.6s ease-out; } .animate-scale-in { animation: scaleInProfessional 0.4s ease-out; } @keyframes fadeInProfessional { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUpProfessional { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes scaleInProfessional { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } /* Professional Mini Button Styles */ .btn-professional-mini { background: rgba(59, 130, 246, 0.1); color: var(--mb-primary); border: 1px solid rgba(59, 130, 246, 0.2); border-radius: 0.75rem; padding: 0.5rem 1rem; font-weight: 500; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.025em; transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .dark .btn-professional-mini { background: rgba(59, 130, 246, 0.2); border-color: rgba(59, 130, 246, 0.3); } .btn-professional-mini:hover { background: rgba(59, 130, 246, 0.2); border-color: var(--mb-primary); transform: translateY(-1px); } .dark .btn-professional-mini:hover { background: rgba(59, 130, 246, 0.3); } /* Danger Mini Button */ .btn-danger-professional-mini { background: rgba(239, 68, 68, 0.1); color: #dc2626; border: 1px solid rgba(239, 68, 68, 0.2); border-radius: 0.5rem; padding: 0.5rem; font-weight: 500; font-size: 0.75rem; transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .dark .btn-danger-professional-mini { background: rgba(239, 68, 68, 0.2); color: #ef4444; border-color: rgba(239, 68, 68, 0.3); } .btn-danger-professional-mini:hover { background: rgba(239, 68, 68, 0.2); border-color: #dc2626; transform: translateY(-1px) scale(1.05); } .dark .btn-danger-professional-mini:hover { background: rgba(239, 68, 68, 0.3); border-color: #ef4444; } /* Success Button */ .btn-success-professional { background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; border: none; border-radius: 1rem; padding: 0.75rem 2rem; font-weight: 600; font-size: 0.875rem; letter-spacing: 0.025em; text-transform: uppercase; transition: all 0.3s ease; position: relative; overflow: hidden; box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .btn-success-professional::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; } .btn-success-professional:hover::before { left: 100%; } .btn-success-professional:hover { background: linear-gradient(135deg, #059669 0%, #047857 100%); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(16, 185, 129, 0.4); } .btn-success-professional:active { transform: translateY(0); } /* Danger Button */ .btn-danger-professional { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); color: white; border: none; border-radius: 1rem; padding: 0.75rem 2rem; font-weight: 600; font-size: 0.875rem; letter-spacing: 0.025em; text-transform: uppercase; transition: all 0.3s ease; position: relative; overflow: hidden; box-shadow: 0 4px 15px rgba(239, 68, 68, 0.3); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .btn-danger-professional::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; } .btn-danger-professional:hover::before { left: 100%; } .btn-danger-professional:hover { background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(239, 68, 68, 0.4); } .btn-danger-professional:active { transform: translateY(0); } /* Filter Button Mercedes */ .filter-btn-mercedes { background: transparent; color: var(--light-text-muted); border: none; border-radius: 0.75rem; padding: 0.5rem 1rem; font-weight: 500; font-size: 0.875rem; transition: all 0.3s ease; cursor: pointer; position: relative; } .dark .filter-btn-mercedes { color: var(--dark-text-muted); } .filter-btn-mercedes:hover { color: var(--light-text-primary); background: rgba(255, 255, 255, 0.1); } .dark .filter-btn-mercedes:hover { color: var(--dark-text-primary); background: rgba(255, 255, 255, 0.05); } .filter-btn-mercedes.active { background: var(--mb-primary); color: white; box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3); } /* Status Dots */ .status-dot { width: 0.75rem; height: 0.75rem; border-radius: 50%; display: inline-block; position: relative; } .status-dot.status-online { background: #10b981; box-shadow: 0 0 10px rgba(16, 185, 129, 0.5); } .status-dot.status-offline { background: #ef4444; box-shadow: 0 0 10px rgba(239, 68, 68, 0.5); } .status-dot.status-online::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; border-radius: 50%; background: inherit; animation: pulse-professional 2s infinite; } /* Professional Shadow */ .professional-shadow { box-shadow: 0 8px 32px rgba(59, 130, 246, 0.2); } .dark .professional-shadow { box-shadow: 0 8px 32px rgba(59, 130, 246, 0.4); } /* Professional Accent Colors */ .bg-professional-accent { background-color: var(--mb-accent); } /* Animate Spin Slow */ .animate-spin-slow { animation: spin 3s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes pulse-professional { 0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.5; transform: translate(-50%, -50%) scale(1.2); } } /* Neue Premium-Komponenten */ .glass-professional { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(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, 115, 206, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.6); border-radius: 1rem; } .dark .glass-professional { background: rgba(30, 41, 59, 0.8); border-color: rgba(255, 255, 255, 0.1); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* Enhanced Hover States für Light Mode */ .hover-lift { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .hover-lift:hover { transform: translateY(-2px); box-shadow: 0 10px 25px var(--light-shadow-strong), 0 4px 12px var(--light-shadow-accent); } .dark .hover-lift:hover { box-shadow: 0 10px 25px var(--dark-shadow-strong); } /* Accessibility Enhancements */ @media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } } /* Focus States */ .focus-professional:focus { outline: 2px solid var(--light-text-accent); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(0, 115, 206, 0.15); } .dark .focus-professional:focus { outline-color: #60a5fa; box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.15); }