🎉 Fix for JOBS_UNDEFINED and LOG_EXPORT issues, updated documentation 📚 in backend/docs.
This commit is contained in:
@@ -1055,48 +1055,792 @@
|
||||
|
||||
/* 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;
|
||||
@apply fixed top-4 right-4 max-w-md p-4 rounded-2xl shadow-2xl transform translate-x-full opacity-0 transition-all duration-500 z-50;
|
||||
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: notification-slide-in 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
|
||||
.dark .notification {
|
||||
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);
|
||||
}
|
||||
|
||||
.notification.show {
|
||||
@apply translate-x-0 opacity-100;
|
||||
}
|
||||
|
||||
|
||||
.notification: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 .notification: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);
|
||||
}
|
||||
|
||||
.notification-success {
|
||||
@apply border-green-500;
|
||||
@apply text-green-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(34, 197, 94, 0.25) 0%,
|
||||
rgba(134, 239, 172, 0.18) 50%,
|
||||
rgba(34, 197, 94, 0.12) 100%);
|
||||
border: 1px solid rgba(34, 197, 94, 0.4);
|
||||
box-shadow:
|
||||
0 32px 64px rgba(34, 197, 94, 0.2),
|
||||
0 12px 24px rgba(34, 197, 94, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4),
|
||||
0 0 0 1px rgba(34, 197, 94, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.notification-error {
|
||||
@apply border-red-500;
|
||||
@apply text-red-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(239, 68, 68, 0.25) 0%,
|
||||
rgba(252, 165, 165, 0.18) 50%,
|
||||
rgba(239, 68, 68, 0.12) 100%);
|
||||
border: 1px solid rgba(239, 68, 68, 0.4);
|
||||
box-shadow:
|
||||
0 32px 64px rgba(239, 68, 68, 0.2),
|
||||
0 12px 24px rgba(239, 68, 68, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4),
|
||||
0 0 0 1px rgba(239, 68, 68, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.notification-warning {
|
||||
@apply border-yellow-500;
|
||||
@apply text-yellow-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(245, 158, 11, 0.25) 0%,
|
||||
rgba(252, 211, 77, 0.18) 50%,
|
||||
rgba(245, 158, 11, 0.12) 100%);
|
||||
border: 1px solid rgba(245, 158, 11, 0.4);
|
||||
box-shadow:
|
||||
0 32px 64px rgba(245, 158, 11, 0.2),
|
||||
0 12px 24px rgba(245, 158, 11, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4),
|
||||
0 0 0 1px rgba(245, 158, 11, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.notification-info {
|
||||
@apply border-blue-500;
|
||||
@apply text-blue-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(59, 130, 246, 0.25) 0%,
|
||||
rgba(147, 197, 253, 0.18) 50%,
|
||||
rgba(59, 130, 246, 0.12) 100%);
|
||||
border: 1px solid rgba(59, 130, 246, 0.4);
|
||||
box-shadow:
|
||||
0 32px 64px rgba(59, 130, 246, 0.2),
|
||||
0 12px 24px rgba(59, 130, 246, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4),
|
||||
0 0 0 1px rgba(59, 130, 246, 0.3);
|
||||
}
|
||||
|
||||
/* Alerts */
|
||||
|
||||
/* Toast-Benachrichtigungen - Einheitlich */
|
||||
.toast-notification {
|
||||
@apply fixed z-50 p-4 rounded-2xl shadow-2xl transform transition-all duration-500 text-sm font-medium;
|
||||
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);
|
||||
}
|
||||
|
||||
.dark .toast-notification {
|
||||
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);
|
||||
}
|
||||
|
||||
/* Alert-Benachrichtigungen - Verbessert */
|
||||
.alert {
|
||||
@apply p-4 rounded-lg border mb-4;
|
||||
@apply p-6 rounded-2xl border mb-6 shadow-2xl;
|
||||
background: rgba(255, 255, 255, 0.12);
|
||||
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.25);
|
||||
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);
|
||||
animation: alert-fade-in 0.5s ease-out;
|
||||
}
|
||||
|
||||
|
||||
.dark .alert {
|
||||
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);
|
||||
}
|
||||
|
||||
.alert-success {
|
||||
@apply bg-green-50 border-green-500 text-green-800 dark:bg-green-900/30 dark:text-green-200;
|
||||
@apply text-green-900 dark:text-green-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(34, 197, 94, 0.15) 0%,
|
||||
rgba(134, 239, 172, 0.1) 50%,
|
||||
rgba(34, 197, 94, 0.08) 100%);
|
||||
border: 1px solid rgba(34, 197, 94, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.alert-error {
|
||||
@apply bg-red-50 border-red-500 text-red-800 dark:bg-red-900/30 dark:text-red-200;
|
||||
@apply text-red-900 dark:text-red-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(239, 68, 68, 0.15) 0%,
|
||||
rgba(252, 165, 165, 0.1) 50%,
|
||||
rgba(239, 68, 68, 0.08) 100%);
|
||||
border: 1px solid rgba(239, 68, 68, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.alert-warning {
|
||||
@apply bg-yellow-50 border-yellow-500 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-200;
|
||||
@apply text-yellow-900 dark:text-yellow-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(245, 158, 11, 0.15) 0%,
|
||||
rgba(252, 211, 77, 0.1) 50%,
|
||||
rgba(245, 158, 11, 0.08) 100%);
|
||||
border: 1px solid rgba(245, 158, 11, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.alert-info {
|
||||
@apply bg-blue-50 border-blue-500 text-blue-800 dark:bg-blue-900/30 dark:text-blue-200;
|
||||
@apply text-blue-900 dark:text-blue-100;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(59, 130, 246, 0.15) 0%,
|
||||
rgba(147, 197, 253, 0.1) 50%,
|
||||
rgba(59, 130, 246, 0.08) 100%);
|
||||
border: 1px solid rgba(59, 130, 246, 0.3);
|
||||
}
|
||||
|
||||
/* Browser-Notification-Container */
|
||||
.browser-notification {
|
||||
@apply fixed top-4 left-4 max-w-sm p-4 rounded-2xl shadow-2xl z-50;
|
||||
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: notification-slide-left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.dark .browser-notification {
|
||||
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);
|
||||
}
|
||||
|
||||
/* Notification-Animationen */
|
||||
@keyframes notification-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 notification-slide-out {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: translateX(0) translateY(0) scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translateX(100%) translateY(-20px) scale(0.9);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes notification-slide-left {
|
||||
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 alert-fade-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-20px) scale(0.95);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.notification.hiding {
|
||||
animation: notification-slide-out 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
||||
}
|
||||
|
||||
/* Notification-Icons mit Glassmorphism */
|
||||
.notification-icon {
|
||||
@apply flex items-center justify-center w-8 h-8 rounded-full mr-3 flex-shrink-0;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||
box-shadow:
|
||||
0 8px 16px rgba(0, 0, 0, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
.notification-content {
|
||||
@apply flex-1;
|
||||
}
|
||||
|
||||
.notification-title {
|
||||
@apply font-semibold text-sm mb-1;
|
||||
}
|
||||
|
||||
.notification-message {
|
||||
@apply text-sm opacity-90;
|
||||
}
|
||||
|
||||
.notification-close {
|
||||
@apply ml-3 p-1 rounded-lg opacity-70 hover:opacity-100 transition-opacity;
|
||||
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);
|
||||
}
|
||||
|
||||
.notification-close:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* Multiple Notifications Container */
|
||||
.notifications-container {
|
||||
@apply fixed top-4 right-4 z-50 space-y-3 max-w-md;
|
||||
}
|
||||
|
||||
.notifications-container-left {
|
||||
@apply fixed top-4 left-4 z-50 space-y-3 max-w-sm;
|
||||
}
|
||||
|
||||
/* Flash-Message-Verbesserungen - Vereinheitlicht */
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user