🎉 Refactor backend: Remove unnecessary files & update documentation 📚, 🔧 Clean up node_modules & static assets 🗑️, 📝 Update README.md & related docs 📚, 🚀 Deploy new frontend images 📦.

This commit is contained in:
2025-05-31 22:51:37 +02:00
parent df8fb197c0
commit fae594014d
34 changed files with 681 additions and 2628 deletions

View File

@ -1,33 +1,103 @@
/**
* MYP Platform Komponenten-Bibliothek
* Erweiterte UI-Komponenten basierend auf Tailwind CSS
* RESPONSIVE DESIGN OPTIMIERT FÜR ALLE BILDSCHIRMGROSSEN
*/
@layer components {
/* Professionelle Mercedes-Benz Karten und Container */
/* ===== RESPONSIVE FOUNDATION STYLES ===== */
/* Base responsive container */
.responsive-container {
@apply w-full max-w-none mx-auto px-3 sm:px-4 md:px-6 lg:px-8 xl:px-12;
}
/* Responsive grid system */
.responsive-grid {
@apply grid gap-3 sm:gap-4 md:gap-6 lg:gap-8;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}
.responsive-grid-2 {
@apply grid gap-3 sm:gap-4 md:gap-6 grid-cols-1 sm:grid-cols-2;
}
.responsive-grid-3 {
@apply grid gap-3 sm:gap-4 md:gap-6 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3;
}
.responsive-grid-4 {
@apply grid gap-3 sm:gap-4 md:gap-6 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4;
}
/* ===== PROFESSIONELLE MERCEDES-BENZ KARTEN - RESPONSIVE ===== */
.card {
@apply bg-white dark:bg-slate-900 rounded-xl shadow-lg border border-slate-200 dark:border-slate-700 p-6 m-4 transition-all duration-300;
@apply bg-white dark:bg-slate-900 rounded-lg sm:rounded-xl shadow-mobile sm:shadow-tablet lg:shadow-desktop border border-slate-200 dark:border-slate-700 p-3 sm:p-4 md:p-6 m-2 sm:m-3 md:m-4 transition-all duration-300;
}
.card-hover {
@apply hover:shadow-xl hover:shadow-slate-300/50 dark:hover:shadow-slate-900/50 hover:bg-slate-50 dark:hover:bg-slate-800 transform hover:-translate-y-1 transition-all duration-300;
}
.container-panel {
@apply bg-slate-50 dark:bg-slate-800 rounded-xl p-6 m-4 border border-slate-200 dark:border-slate-700 shadow-sm;
/* Responsive dashboard card */
.dashboard-card {
@apply bg-white dark:bg-slate-900 rounded-lg sm:rounded-xl md:rounded-2xl shadow-mobile sm:shadow-tablet lg:shadow-desktop border border-slate-200 dark:border-slate-700 p-3 sm:p-4 md:p-6 lg:p-8 transition-all duration-300;
}
/* Professionelle Formulare */
.container-panel {
@apply bg-slate-50 dark:bg-slate-800 rounded-lg sm:rounded-xl p-3 sm:p-4 md:p-6 m-2 sm:m-3 md:m-4 border border-slate-200 dark:border-slate-700 shadow-sm;
}
/* ===== RESPONSIVE NAVIGATION ===== */
/* Professional Navigation Bar */
.navbar {
@apply bg-white/90 dark:bg-slate-900/90 backdrop-blur-md border-b border-slate-200 dark:border-slate-700 sticky top-0 z-50 transition-all duration-300;
}
/* Desktop navigation menu */
.navbar-menu-new {
@apply flex items-center space-x-1 lg:space-x-2 xl:space-x-3;
}
/* Navigation items responsive */
.nav-item {
@apply flex items-center gap-2 lg:gap-3 px-3 lg:px-4 py-2 lg:py-3 rounded-lg text-sm lg:text-base font-medium text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800 hover:text-slate-900 dark:hover:text-white transition-all duration-300 relative;
}
.nav-item.active {
@apply bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-semibold shadow-sm;
}
/* Mobile menu */
.mobile-menu-new {
@apply bg-white dark:bg-slate-900 border-b border-slate-200 dark:border-slate-700 backdrop-blur-md;
}
.mobile-nav-item {
@apply flex items-center gap-3 px-4 py-3 text-base font-medium text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800 hover:text-slate-900 dark:hover:text-white transition-all duration-300 rounded-lg mx-2;
}
.mobile-nav-item.active {
@apply bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-semibold;
}
/* Brand section responsive */
.navbar-brand {
@apply flex items-center no-underline transition-all duration-300 hover:opacity-80;
}
/* ===== RESPONSIVE FORMS ===== */
.form-input {
@apply w-full rounded-xl border-2 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-800 px-4 py-3 text-slate-900 dark:text-white placeholder-slate-500 dark:placeholder-slate-400 focus:border-blue-500 dark:focus:border-blue-400 focus:ring-4 focus:ring-blue-500/20 dark:focus:ring-blue-400/20 transition-all duration-300;
@apply w-full rounded-lg sm:rounded-xl border-2 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-800 px-3 sm:px-4 py-2 sm:py-3 text-sm sm:text-base text-slate-900 dark:text-white placeholder-slate-500 dark:placeholder-slate-400 focus:border-blue-500 dark:focus:border-blue-400 focus:ring-4 focus:ring-blue-500/20 dark:focus:ring-blue-400/20 transition-all duration-300 touch-target;
}
.form-label {
@apply block text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2 transition-colors duration-300;
@apply block text-xs sm:text-sm font-semibold text-slate-700 dark:text-slate-300 mb-1 sm:mb-2 transition-colors duration-300;
}
.form-group {
@apply mb-6;
@apply mb-4 sm:mb-6;
}
.form-help {
@ -37,14 +107,14 @@
.form-error {
@apply mt-1 text-xs text-red-600 dark:text-red-400 font-medium transition-colors duration-300;
}
/* Professionelle Buttons */
/* ===== RESPONSIVE BUTTONS ===== */
.btn-icon {
@apply inline-flex items-center justify-center rounded-xl p-3 transition-all duration-300 shadow-md hover:shadow-lg;
@apply inline-flex items-center justify-center rounded-lg sm:rounded-xl p-2 sm:p-3 transition-all duration-300 shadow-mobile sm:shadow-tablet hover:shadow-lg touch-target;
}
.btn-text {
@apply inline-flex items-center justify-center gap-2 rounded-xl px-6 py-3 text-sm font-semibold transition-all duration-300 shadow-md hover:shadow-lg;
@apply inline-flex items-center justify-center gap-2 rounded-lg sm:rounded-xl px-4 sm:px-6 py-2 sm:py-3 text-xs sm:text-sm font-semibold transition-all duration-300 shadow-mobile sm:shadow-tablet hover:shadow-lg touch-target;
}
.btn-rounded {
@ -52,16 +122,16 @@
}
.btn-sm {
@apply px-4 py-2 text-xs;
@apply px-3 sm:px-4 py-1.5 sm:py-2 text-xs;
}
.btn-lg {
@apply px-8 py-4 text-base;
@apply px-6 sm:px-8 py-3 sm:py-4 text-sm sm:text-base;
}
/* Professionelle Badges und Tags */
/* ===== RESPONSIVE BADGES ===== */
.badge {
@apply inline-flex items-center rounded-full px-3 py-1.5 text-xs font-semibold transition-all duration-300 shadow-sm;
@apply inline-flex items-center rounded-full px-2 sm:px-3 py-1 sm:py-1.5 text-xs font-semibold transition-all duration-300 shadow-sm;
}
.badge-blue {
@ -83,10 +153,10 @@
.badge-purple {
@apply bg-purple-100 text-purple-800 border border-purple-200 dark:bg-purple-900/30 dark:text-purple-300 dark:border-purple-700;
}
/* Erweiterte Status Anzeigen */
/* ===== RESPONSIVE STATUS INDICATORS ===== */
.status-dot {
@apply relative flex h-3 w-3 rounded-full shadow-sm;
@apply relative flex h-2 w-2 sm:h-3 sm:w-3 rounded-full shadow-sm;
}
.status-dot::after {
@ -112,14 +182,14 @@
.status-warning::after {
@apply bg-yellow-500 dark:bg-yellow-400;
}
/* Professionelle Tabellen */
/* ===== RESPONSIVE TABLES ===== */
.table-container {
@apply w-full overflow-x-auto rounded-xl border border-slate-200 dark:border-slate-700 shadow-lg bg-white dark:bg-slate-900;
@apply w-full overflow-x-auto rounded-lg sm:rounded-xl border border-slate-200 dark:border-slate-700 shadow-mobile sm:shadow-tablet lg:shadow-desktop bg-white dark:bg-slate-900;
}
.table-styled {
@apply w-full whitespace-nowrap text-left text-sm text-slate-700 dark:text-slate-300;
@apply w-full whitespace-nowrap text-left text-xs sm:text-sm text-slate-700 dark:text-slate-300;
}
.table-styled thead {
@ -127,7 +197,7 @@
}
.table-styled th {
@apply px-6 py-4 font-semibold text-slate-900 dark:text-white transition-colors duration-300;
@apply px-3 sm:px-6 py-2 sm:py-4 font-semibold text-slate-900 dark:text-white transition-colors duration-300 text-xs sm:text-sm;
}
.table-styled tbody tr {
@ -139,12 +209,12 @@
}
.table-styled td {
@apply px-6 py-4 transition-colors duration-300;
@apply px-3 sm:px-6 py-2 sm:py-4 transition-colors duration-300 text-xs sm:text-sm;
}
/* Professionelle Alert und Toast */
/* ===== RESPONSIVE ALERTS ===== */
.alert {
@apply rounded-xl border-2 p-6 mb-4 transition-all duration-300 shadow-lg;
@apply rounded-lg sm:rounded-xl border-2 p-3 sm:p-4 md:p-6 mb-3 sm:mb-4 transition-all duration-300 shadow-mobile sm:shadow-tablet;
}
.alert-info {
@ -162,10 +232,10 @@
.alert-error {
@apply bg-red-50 dark:bg-red-900/20 border-red-300 dark:border-red-600 text-red-900 dark:text-red-200;
}
/* Professionelle Navigation */
/* ===== RESPONSIVE NAVIGATION TABS ===== */
.nav-tab {
@apply inline-flex items-center gap-2 px-6 py-3 border-b-2 text-sm font-semibold transition-all duration-300;
@apply inline-flex items-center gap-1 sm:gap-2 px-3 sm:px-6 py-2 sm:py-3 border-b-2 text-xs sm:text-sm font-semibold transition-all duration-300;
}
.nav-tab-active {
@ -176,18 +246,9 @@
@apply border-transparent text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200 hover:border-slate-300 dark:hover:border-slate-600 hover:bg-slate-50 dark:hover:bg-slate-800 rounded-t-lg;
}
/* Professionelle Navigation Links */
.nav-link {
@apply flex items-center gap-3 px-4 py-3 rounded-xl text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800 hover:text-slate-900 dark:hover:text-white transition-all duration-300 font-medium;
}
.nav-link.active {
@apply bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-semibold shadow-sm;
}
/* Erweiterte Printer Status */
/* ===== RESPONSIVE PRINTER STATUS ===== */
.printer-status {
@apply inline-flex items-center gap-2 px-4 py-2 rounded-full text-xs font-semibold shadow-sm border;
@apply inline-flex items-center gap-1 sm:gap-2 px-2 sm:px-4 py-1 sm:py-2 rounded-full text-xs font-semibold shadow-sm border;
}
.printer-ready {
@ -209,10 +270,10 @@
.printer-maintenance {
@apply bg-purple-100 dark:bg-purple-900/30 text-purple-800 dark:text-purple-300 border-purple-200 dark:border-purple-700;
}
/* Erweiterte Job Status */
/* ===== RESPONSIVE JOB STATUS ===== */
.job-status {
@apply inline-flex items-center gap-2 px-4 py-2 rounded-full text-xs font-semibold shadow-sm border;
@apply inline-flex items-center gap-1 sm:gap-2 px-2 sm:px-4 py-1 sm:py-2 rounded-full text-xs font-semibold shadow-sm border;
}
.job-queued {
@ -239,9 +300,9 @@
@apply bg-purple-100 dark:bg-purple-900/30 text-purple-800 dark:text-purple-300 border-purple-200 dark:border-purple-700;
}
/* Professionelle Buttons für beide Modi */
/* ===== RESPONSIVE BUTTONS - ENHANCED ===== */
.btn {
@apply px-6 py-3 rounded-xl transition-all duration-300 focus:outline-none focus:ring-4 shadow-lg hover:shadow-xl font-semibold;
@apply px-4 sm:px-6 py-2 sm:py-3 rounded-lg sm:rounded-xl transition-all duration-300 focus:outline-none focus:ring-4 shadow-mobile sm:shadow-tablet hover:shadow-lg font-semibold text-sm sm:text-base touch-target;
}
.btn-primary {
@ -260,312 +321,192 @@
@apply btn bg-green-600 hover:bg-green-700 text-white focus:ring-green-500/50 shadow-green-500/25;
}
/* Professionelle Mercedes-Benz Design-Komponenten */
/* ===== RESPONSIVE DARK MODE TOGGLE ===== */
.dark-mode-toggle-premium {
@apply relative inline-flex items-center justify-center w-10 h-10 sm:w-11 sm:h-11 rounded-full transition-all duration-300 focus:outline-none focus:ring-4 focus:ring-blue-500/50 touch-target;
}
/* Glassmorphism - Verbessert für beide Modi */
/* ===== RESPONSIVE MERCEDES-BENZ DESIGN COMPONENTS ===== */
/* Glassmorphism - Responsive */
.mercedes-glass {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(20px);
backdrop-filter: blur(15px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
@apply rounded-lg sm:rounded-xl;
}
.dark .mercedes-glass {
background: rgba(15, 23, 42, 0.9);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
/* Professionelle Gradients - Strikt getrennt */
/* Responsive Gradients */
.professional-gradient {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 25%, #cbd5e1 50%, #94a3b8 75%, #64748b 100%);
@apply rounded-lg sm:rounded-xl;
}
.dark .professional-gradient {
background: linear-gradient(135deg, #0f172a 0%, #1e293b 25%, #334155 50%, #475569 75%, #64748b 100%);
}
/* Mercedes-Pattern - Verbessert */
/* Responsive Mercedes Pattern */
.mercedes-pattern {
background-image:
radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 2px, transparent 2px),
radial-gradient(circle at 75% 75%, rgba(255,255,255,0.1) 2px, transparent 2px);
background-size: 60px 60px;
radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 1px, transparent 1px),
radial-gradient(circle at 75% 75%, rgba(255,255,255,0.1) 1px, transparent 1px);
background-size: 40px 40px;
}
@media (min-width: 640px) {
.mercedes-pattern {
background-size: 60px 60px;
background-image:
radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 2px, transparent 2px),
radial-gradient(circle at 75% 75%, rgba(255,255,255,0.1) 2px, transparent 2px);
}
}
.dark .mercedes-pattern {
background-image:
radial-gradient(circle at 25% 25%, rgba(255,255,255,0.05) 2px, transparent 2px),
radial-gradient(circle at 75% 75%, rgba(255,255,255,0.05) 2px, transparent 2px);
background-size: 60px 60px;
radial-gradient(circle at 25% 25%, rgba(255,255,255,0.05) 1px, transparent 1px),
radial-gradient(circle at 75% 75%, rgba(255,255,255,0.05) 1px, transparent 1px);
}
/* Professionelle Schatten - Kontextabhängig */
/* Responsive Professional Shadows */
.professional-shadow {
box-shadow:
0 25px 50px -12px rgba(0, 0, 0, 0.15),
0 8px 16px rgba(0, 0, 0, 0.1),
0 10px 25px -5px rgba(0, 0, 0, 0.1),
0 4px 8px rgba(0, 0, 0, 0.05),
0 0 0 1px rgba(255, 255, 255, 0.05);
}
@media (min-width: 768px) {
.professional-shadow {
box-shadow:
0 25px 50px -12px rgba(0, 0, 0, 0.15),
0 8px 16px rgba(0, 0, 0, 0.1),
0 0 0 1px rgba(255, 255, 255, 0.05);
}
}
.dark .professional-shadow {
box-shadow:
0 25px 50px -12px rgba(0, 0, 0, 0.5),
0 8px 16px rgba(0, 0, 0, 0.3),
0 10px 25px -5px rgba(0, 0, 0, 0.3),
0 4px 8px rgba(0, 0, 0, 0.2),
0 0 0 1px rgba(255, 255, 255, 0.1);
}
/* Professionelle Button Styles - Erweitert */
.professional-button {
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
@media (min-width: 768px) {
.dark .professional-shadow {
box-shadow:
0 25px 50px -12px rgba(0, 0, 0, 0.5),
0 8px 16px rgba(0, 0, 0, 0.3),
0 0 0 1px rgba(255, 255, 255, 0.1);
}
}
.dark .professional-button {
background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
box-shadow: 0 4px 15px rgba(59, 130, 246, 0.2);
}
.professional-button::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;
}
.professional-button:hover::before {
left: 100%;
}
.professional-button:hover {
background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
transform: translateY(-2px);
box-shadow: 0 15px 35px rgba(59, 130, 246, 0.4);
}
.dark .professional-button:hover {
background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
box-shadow: 0 15px 35px rgba(59, 130, 246, 0.3);
}
/* Professionelle Input Fields - Erweitert */
.input-field {
transition: all 0.3s ease;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border: 2px solid rgba(203, 213, 225, 0.8);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.dark .input-field {
background: rgba(51, 65, 85, 0.95);
border: 2px solid rgba(71, 85, 105, 0.8);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.input-field:focus {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.15);
border-color: #3b82f6;
background: rgba(255, 255, 255, 1);
}
.dark .input-field:focus {
background: rgba(51, 65, 85, 1);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.2);
}
/* Professionelle Cards - Erweitert */
.professional-card {
border-radius: 1.5rem;
overflow: hidden;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(20px);
border: 1px solid rgba(203, 213, 225, 0.5);
transition: all 0.3s ease;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.dark .professional-card {
background: rgba(15, 23, 42, 0.98);
border: 1px solid rgba(71, 85, 105, 0.5);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}
.professional-card:hover {
transform: translateY(-4px);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
}
.dark .professional-card:hover {
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
}
/* Professionelle Navigation Verbesserungen */
.nav-item {
position: relative;
transition: all 0.3s ease;
border-radius: 0.75rem;
}
.nav-item::after {
content: '';
position: absolute;
bottom: -2px;
left: 50%;
width: 0;
height: 2px;
background: linear-gradient(90deg, #3b82f6, #1d4ed8);
transition: all 0.3s ease;
transform: translateX(-50%);
}
.nav-item:hover::after,
.nav-item.active::after {
width: 100%;
}
/* Verbesserte Header-Stile */
.hero-header {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
border: 1px solid rgba(203, 213, 225, 0.5);
}
.dark .hero-header {
background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
border: 1px solid rgba(71, 85, 105, 0.5);
}
/* Verbesserte Container */
.main-container {
background: rgba(248, 250, 252, 0.8);
backdrop-filter: blur(10px);
}
.dark .main-container {
background: rgba(15, 23, 42, 0.8);
}
/* Professionelle Status Badges - Erweitert */
.status-badge {
display: inline-flex;
align-items: center;
padding: 0.5rem 0.75rem;
font-size: 0.75rem;
font-weight: 700;
border-radius: 9999px;
transition: all 0.2s ease;
border: 1px solid transparent;
text-transform: uppercase;
letter-spacing: 0.025em;
}
.status-badge:hover {
transform: scale(1.05);
}
/* Smooth Transitions für alle Elemente */
* {
transition:
background-color 0.3s ease,
border-color 0.3s ease,
color 0.3s ease,
box-shadow 0.3s ease,
transform 0.3s ease;
}
/* Interactive Hover Effects */
.interactive-hover {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.interactive-hover:hover {
transform: translateY(-2px);
}
/* Light Mode spezifische Hover-Effekte */
.interactive-hover:hover {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.dark .interactive-hover:hover {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}
/* Professional Loading States */
/* ===== RESPONSIVE LOADING AND SHIMMER ===== */
.loading-shimmer {
background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: shimmer 2s infinite;
animation: shimmer 1.5s infinite;
@apply rounded-lg sm:rounded-xl;
}
.dark .loading-shimmer {
background: linear-gradient(90deg, #334155 25%, #475569 50%, #334155 75%);
background: linear-gradient(90deg, #374151 25%, #4b5563 50%, #374151 75%);
background-size: 200% 100%;
}
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
/* Focus Indicators für Accessibility */
/* ===== RESPONSIVE FOCUS RINGS ===== */
.focus-ring:focus {
outline: 3px solid #3b82f6;
outline-offset: 2px;
@apply outline-none ring-4 ring-blue-500/50 dark:ring-blue-400/50;
}
.dark .focus-ring:focus {
outline: 3px solid #60a5fa;
@apply ring-blue-400/50;
}
/* Professionelle Typography */
/* ===== RESPONSIVE TITLES ===== */
.professional-title {
@apply text-lg sm:text-xl md:text-2xl lg:text-3xl xl:text-4xl font-bold text-slate-900 dark:text-white tracking-tight;
background: linear-gradient(135deg, #1e293b 0%, #475569 100%);
background-clip: text;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
font-weight: 700;
letter-spacing: -0.025em;
}
.dark .professional-title {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
background-clip: text;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
/* Responsives Design für kleine Bildschirme */
/* ===== RESPONSIVE UTILITIES ===== */
/* Touch-friendly interactive elements */
.touch-friendly {
@apply min-h-[44px] min-w-[44px] touch-target;
}
/* Responsive text sizes */
.text-responsive {
font-size: clamp(0.875rem, 2.5vw, 1.125rem);
line-height: 1.5;
}
.text-responsive-lg {
font-size: clamp(1.125rem, 3vw, 1.5rem);
line-height: 1.4;
}
.text-responsive-xl {
font-size: clamp(1.5rem, 4vw, 2.25rem);
line-height: 1.3;
}
/* ===== MOBILE-SPECIFIC OPTIMIZATIONS ===== */
@media (max-width: 768px) {
.professional-shadow {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.professional-card {
border-radius: 1rem;
@apply rounded-lg;
}
.mercedes-glass {
backdrop-filter: blur(15px);
backdrop-filter: blur(10px);
}
/* Optimize spacing for mobile */
.card {
@apply m-1 p-3;
}
.dashboard-card {
@apply p-4;
}
}
/* Animationen für bessere UX */
/* ===== ANIMATION CLASSES - RESPONSIVE ===== */
.fade-in {
animation: fadeIn 0.5s ease-in-out;
}
.slide-up {
animation: slideUp 0.5s ease-in-out;
animation: slideUp 0.5s ease-out;
}
@keyframes fadeIn {
@ -579,26 +520,86 @@
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(30px);
opacity: 0;
}
to {
opacity: 1;
transform: translateY(0);
opacity: 1;
}
}
/* Root Variablen für konsistente Farben */
/* ===== CSS CUSTOM PROPERTIES - RESPONSIVE ===== */
:root {
--mercedes-primary: #3b82f6;
--mercedes-secondary: #64748b;
--mercedes-accent: #1d4ed8;
--shadow-light: rgba(0, 0, 0, 0.1);
--shadow-dark: rgba(0, 0, 0, 0.3);
--border-radius-mobile: 0.5rem;
--border-radius-tablet: 0.75rem;
--border-radius-desktop: 1rem;
--shadow-mobile: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
--shadow-tablet: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
--shadow-desktop: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.dark {
--shadow-light: rgba(0, 0, 0, 0.2);
--shadow-dark: rgba(0, 0, 0, 0.5);
--shadow-mobile: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
--shadow-tablet: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
--shadow-desktop: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
}
/* ===== RESPONSIVE SCROLLBAR IMPROVEMENTS ===== */
/* Webkit-Browser - Responsive scrollbars */
::-webkit-scrollbar {
width: 4px;
height: 4px;
}
@media (min-width: 768px) {
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 3px;
transition: all 0.3s ease;
}
/* Nur bei Hover über scrollbaren Container sichtbar */
*:hover::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.05);
}
*:hover::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.1);
}
/* Dark Mode - noch dezenter */
.dark *:hover::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.03);
}
.dark *:hover::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.08);
}
/* ===== PRINT STYLES ===== */
@media print {
.card, .dashboard-card {
@apply shadow-none border border-gray-300;
}
.btn, .nav-item {
@apply shadow-none;
}
.dark-mode-toggle-premium {
@apply hidden;
}
}
}