/** * 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 - Raspberry Pi Optimiert */ .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); /* Entfernt: box-shadow, transition, hover-transform */ } .dark .professional-hero { background: var(--dark-bg-secondary); border: 1px solid var(--dark-border); /* Entfernt: box-shadow */ } /* Vereinfachte Container - Raspberry Pi Optimiert */ .professional-container { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; /* Entfernt: box-shadow, transition, hover-transform */ } .dark .professional-container { background: var(--dark-surface); border: 1px solid var(--dark-border); /* Entfernt: box-shadow, hover-effects */ } /* Vereinfachte Glassmorphism-Effekte - Raspberry Pi Optimiert */ .mb-glass { background: rgba(255, 255, 255, 0.98); border: 1px solid rgba(229, 231, 235, 0.4); /* Entfernt: backdrop-filter, box-shadow, transition, hover-transform */ } .dark .mb-glass { background: rgba(15, 23, 42, 0.95); border: 1px solid rgba(255, 255, 255, 0.1); /* Entfernt: box-shadow, hover-effects */ } /* Vereinfachte Buttons - Raspberry Pi Optimiert */ .btn-professional { background: var(--mb-primary); 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; /* Entfernt: gradient, transition, box-shadow, hover-transform */ } .btn-professional:hover { background: var(--mb-primary-dark); /* Nur Background-Color Change */ } /* Secondary Button - Raspberry Pi Optimiert */ .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; /* Entfernt: transition, box-shadow, hover-transform */ } .dark .btn-secondary-professional { background: var(--dark-surface); color: var(--dark-text-primary); border-color: var(--dark-border-strong); /* Entfernt: box-shadow */ } .btn-secondary-professional:hover { background: var(--light-surface-hover); border-color: var(--mb-primary); /* Nur Background und Border-Color Change */ } .dark .btn-secondary-professional:hover { background: var(--dark-surface-hover); } /* Vereinfachte Input Fields - Raspberry Pi Optimiert */ .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; /* Entfernt: transition, box-shadow, focus-transform */ } .dark .input-professional { background: var(--dark-surface); border-color: var(--dark-border); color: var(--dark-text-primary); /* Entfernt: box-shadow */ } .input-professional:focus { border-color: var(--mb-primary); /* Nur Border-Color Change */ } .input-professional::placeholder { color: var(--light-text-muted); } .dark .input-professional::placeholder { color: var(--dark-text-muted); } /* Vereinfachte Cards - Raspberry Pi Optimiert */ .card-professional { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 1.5rem; /* Entfernt: box-shadow, transition, hover-transform */ } .dark .card-professional { background: var(--dark-surface); border-color: var(--dark-border); /* Entfernt: box-shadow, hover-effects */ } /* Vereinfachte Statistics Cards - Raspberry Pi Optimiert */ .stat-card { background: var(--light-surface); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 1.5rem; text-align: center; /* Entfernt: transition, box-shadow, hover-transform */ } .dark .stat-card { background: var(--dark-surface); border-color: var(--dark-border); /* Entfernt: box-shadow, hover-effects */ } .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 - Raspberry Pi Optimiert */ .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; border: 1px solid transparent; /* Entfernt: transition, hover-scale */ } /* 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 - Raspberry Pi Optimiert */ .nav-professional { background: var(--light-bg-secondary); border: 1px solid var(--light-border); border-radius: 0.75rem; padding: 0.5rem; /* Entfernt: box-shadow */ } .dark .nav-professional { background: var(--dark-bg-secondary); border-color: var(--dark-border); /* Entfernt: box-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; position: relative; background: transparent; /* Entfernt: transition, hover-transform, box-shadow */ } .dark .nav-item-professional { color: var(--dark-text-secondary); } .nav-item-professional:hover { background: var(--light-surface-hover); color: var(--light-text-primary); /* Nur Background und Color Change */ } .dark .nav-item-professional:hover { background: var(--dark-surface-hover); color: var(--dark-text-primary); } .nav-item-professional.active { background: rgba(0, 115, 206, 0.1); color: var(--mb-primary); font-weight: 600; border: 1px solid var(--light-border-strong); /* Entfernt: gradient, box-shadow */ } .dark .nav-item-professional.active { background: rgba(59, 130, 246, 0.2); } /* Professional Tables - Raspberry Pi Optimiert */ .table-professional { width: 100%; border-collapse: collapse; background: var(--light-bg-secondary); border-radius: 0.75rem; overflow: hidden; border: 1px solid var(--light-border); /* Entfernt: box-shadow */ } .dark .table-professional { background: var(--dark-bg-secondary); /* Entfernt: box-shadow */ } .table-professional th { background: var(--light-bg-tertiary); color: var(--light-text-primary); font-weight: 600; text-align: left; padding: 1rem 1.5rem; border-bottom: 1px solid var(--light-border); /* Entfernt: gradient, ::after pseudo-element */ } .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); /* Entfernt: transition */ } .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); /* Entfernt: transform, box-shadow */ } .dark .table-professional tbody tr:hover { background: var(--dark-surface-hover); } /* Professional Alerts - Raspberry Pi Optimiert */ .alert-professional { border-radius: 1rem; padding: 1.5rem; border: 1px solid transparent; display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; position: relative; /* Entfernt: box-shadow, overflow */ } .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 - OPTIMIERT */ .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: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease; /* Entfernt: cubic-bezier und 'all' transitions für bessere Performance */ } /* 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 - RASPBERRY PI OPTIMIERT */ .animate-fade-in { animation: fadeInProfessional 0.3s ease-out; /* Reduzierte Dauer von 0.6s auf 0.3s */ } .animate-slide-up { animation: fadeInProfessional 0.3s ease-out; /* Ersetzt slideUpProfessional durch einfaches fade-in */ } .animate-scale-in { animation: fadeInProfessional 0.3s ease-out; /* Ersetzt scaleInProfessional durch einfaches fade-in */ } @keyframes fadeInProfessional { from { opacity: 0; } to { opacity: 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: background-color 0.2s ease, border-color 0.2s ease; /* Entfernt: 'all 0.3s ease' für bessere Performance */ 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); /* Entfernt: transform: translateY(-1px) für bessere Performance */ } .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: background-color 0.2s ease, border-color 0.2s ease; /* Entfernt: 'all 0.3s ease' für bessere Performance */ 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; /* Entfernt: transform: translateY(-1px) scale(1.05) für bessere Performance */ } .dark .btn-danger-professional-mini:hover { background: rgba(239, 68, 68, 0.3); border-color: #ef4444; } /* Success Button - RASPBERRY PI OPTIMIERT */ .btn-success-professional { background: #10b981; 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: background-color 0.2s ease; /* Entfernt: gradient, box-shadow, overflow, position, before-pseudo für Performance */ display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .btn-success-professional:hover { background: #059669; /* Entfernt: gradient, transform, box-shadow für bessere Performance */ } .btn-success-professional:active { background: #047857; /* Entfernt: transform für bessere Performance */ } /* Danger Button - RASPBERRY PI OPTIMIERT */ .btn-danger-professional { background: #ef4444; 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: background-color 0.2s ease; /* Entfernt: gradient, box-shadow, overflow, position, before-pseudo für Performance */ display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .btn-danger-professional:hover { background: #dc2626; /* Entfernt: gradient, transform, box-shadow für bessere Performance */ } .btn-danger-professional:active { background: #b91c1c; /* Entfernt: transform für bessere Performance */ } /* 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: color 0.2s ease, background-color 0.2s ease; /* Entfernt: 'all 0.3s ease' für bessere Performance */ 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; /* Entfernt: box-shadow für bessere Performance */ } /* Status Dots - RASPBERRY PI OPTIMIERT */ .status-dot { width: 0.75rem; height: 0.75rem; border-radius: 50%; display: inline-block; position: relative; } .status-dot.status-online { background: #10b981; /* Entfernt: box-shadow für bessere Performance */ } .status-dot.status-offline { background: #ef4444; /* Entfernt: box-shadow für bessere Performance */ } /* Professional Accent Colors */ .bg-professional-accent { background-color: var(--mb-accent); } /* Animate Spin Slow - RASPBERRY PI OPTIMIERT */ .animate-spin-slow { animation: spin 4s linear infinite; /* Verlangsamte Animation von 3s auf 4s für weniger CPU-Last */ } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* GLASSMORPHISM KOMPLETT ENTFERNT FÜR RASPBERRY PI PERFORMANCE */ .glass-professional { background: rgba(255, 255, 255, 0.98); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 1rem; /* ENTFERNT: backdrop-filter, -webkit-backdrop-filter, box-shadow für Performance */ } .dark .glass-professional { background: rgba(30, 41, 59, 0.95); border-color: rgba(255, 255, 255, 0.1); /* ENTFERNT: box-shadow für Performance */ } /* Enhanced Hover States - RASPBERRY PI OPTIMIERT */ .hover-lift { transition: background-color 0.2s ease; /* Entfernt: cubic-bezier transition für bessere Performance */ } .hover-lift:hover { background-color: var(--light-surface-hover); /* Entfernt: transform, box-shadow für bessere Performance */ } .dark .hover-lift:hover { background-color: var(--dark-surface-hover); /* Entfernt: box-shadow für bessere Performance */ } /* 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); }