🎉 Improved backend structure & logs organization 🎉

This commit is contained in:
2025-06-01 03:25:55 +02:00
parent 8969cf6df6
commit 09462724e0
63 changed files with 2014 additions and 491 deletions

View File

@ -2,163 +2,344 @@
/* Base Glass Effects */
.glass-base {
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.2);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
backdrop-filter: blur(24px) saturate(200%) brightness(115%);
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(115%);
border: 1px solid rgba(255, 255, 255, 0.25);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.12),
0 8px 16px rgba(0, 0, 0, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.glass-strong {
backdrop-filter: blur(24px) saturate(200%) brightness(120%);
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%);
box-shadow: 0 35px 60px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1);
backdrop-filter: blur(28px) saturate(220%) brightness(125%);
-webkit-backdrop-filter: blur(28px) saturate(220%) brightness(125%);
box-shadow:
0 35px 70px rgba(0, 0, 0, 0.15),
0 12px 24px rgba(0, 0, 0, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.glass-subtle {
backdrop-filter: blur(16px) saturate(150%) brightness(105%);
-webkit-backdrop-filter: blur(16px) saturate(150%) brightness(105%);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05);
backdrop-filter: blur(20px) saturate(180%) brightness(110%);
-webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%);
box-shadow:
0 15px 35px rgba(0, 0, 0, 0.08),
0 4px 8px rgba(0, 0, 0, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
/* Light Mode Glass */
.glass-light {
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(255, 255, 255, 0.3);
background: rgba(255, 255, 255, 0.85);
border: 1px solid rgba(255, 255, 255, 0.4);
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.1),
0 8px 16px rgba(0, 115, 206, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
.glass-light-strong {
background: rgba(255, 255, 255, 0.6);
border: 1px solid rgba(255, 255, 255, 0.4);
background: rgba(255, 255, 255, 0.75);
border: 1px solid rgba(255, 255, 255, 0.5);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.12),
0 10px 20px rgba(0, 115, 206, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
/* Light Mode Glass Premium */
.glass-light-premium {
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.9) 0%,
rgba(248, 250, 252, 0.8) 50%,
rgba(255, 255, 255, 0.85) 100%);
border: 1px solid rgba(226, 232, 240, 0.6);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.08),
0 10px 20px rgba(0, 115, 206, 0.06),
inset 0 2px 0 rgba(255, 255, 255, 0.8),
inset 0 0 20px rgba(255, 255, 255, 0.3);
}
.glass-light-card {
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(250, 251, 252, 0.9) 100%);
border: 1px solid rgba(226, 232, 240, 0.4);
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.06),
0 8px 16px rgba(0, 115, 206, 0.04),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
/* Dark Mode Glass */
.glass-dark {
background: rgba(0, 0, 0, 0.7);
background: rgba(15, 23, 42, 0.8);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.4),
0 8px 16px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.glass-dark-strong {
background: rgba(0, 0, 0, 0.8);
background: rgba(30, 41, 59, 0.85);
border: 1px solid rgba(255, 255, 255, 0.15);
box-shadow: 0 35px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
box-shadow:
0 35px 70px rgba(0, 0, 0, 0.5),
0 12px 24px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
/* Interactive Glass Elements */
.glass-interactive {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
position: relative;
overflow: hidden;
}
.glass-interactive::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.6s ease;
z-index: 1;
}
.glass-interactive:hover {
transform: translateY(-2px);
backdrop-filter: blur(28px) saturate(220%) brightness(125%);
-webkit-backdrop-filter: blur(28px) saturate(220%) brightness(125%);
box-shadow: 0 40px 80px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.15);
transform: translateY(-3px) scale(1.01);
backdrop-filter: blur(32px) saturate(240%) brightness(130%);
-webkit-backdrop-filter: blur(32px) saturate(240%) brightness(130%);
box-shadow:
0 40px 80px rgba(0, 0, 0, 0.15),
0 16px 32px rgba(0, 115, 206, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.glass-interactive:hover::before {
left: 100%;
}
.glass-interactive:active {
transform: translateY(-1px) scale(0.99);
transition: transform 0.1s ease;
}
/* Glass Navigation */
.glass-nav {
background: rgba(255, 255, 255, 0.5);
backdrop-filter: blur(24px) saturate(200%) brightness(120%);
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%);
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1);
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.9) 0%,
rgba(248, 250, 252, 0.85) 50%,
rgba(255, 255, 255, 0.9) 100%);
backdrop-filter: blur(24px) saturate(200%) brightness(115%);
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(115%);
border: 1px solid rgba(226, 232, 240, 0.5);
border-bottom: 1px solid rgba(203, 213, 225, 0.6);
box-shadow:
0 8px 32px rgba(0, 0, 0, 0.08),
0 4px 12px rgba(0, 115, 206, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.dark .glass-nav {
background: rgba(0, 0, 0, 0.5);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
background: rgba(15, 23, 42, 0.85);
border-color: rgba(51, 65, 85, 0.6);
border-bottom-color: rgba(71, 85, 105, 0.7);
box-shadow:
0 8px 32px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
/* Glass Cards */
.glass-card-enhanced {
background: rgba(255, 255, 255, 0.7);
.glass-card {
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(250, 251, 252, 0.9) 100%);
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.2);
border: 1px solid rgba(229, 231, 235, 0.6);
border-radius: 16px;
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
transition: all 0.3s ease;
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.08),
0 8px 16px rgba(0, 115, 206, 0.04),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
padding: 1.5rem;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.dark .glass-card-enhanced {
background: rgba(0, 0, 0, 0.7);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05);
.glass-card::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%);
}
.glass-card-enhanced:hover {
transform: translateY(-4px);
box-shadow: 0 35px 70px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.15);
.glass-card:hover {
transform: translateY(-2px);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.12),
0 12px 24px rgba(0, 115, 206, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.95);
}
.dark .glass-card-enhanced:hover {
box-shadow: 0 35px 70px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1);
.dark .glass-card {
background: rgba(30, 41, 59, 0.85);
border-color: rgba(100, 116, 139, 0.4);
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.dark .glass-card:hover {
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.4),
inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
/* Glass Buttons */
.glass-btn {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(16px) saturate(150%) brightness(110%);
-webkit-backdrop-filter: blur(16px) saturate(150%) brightness(110%);
border: 1px solid rgba(255, 255, 255, 0.3);
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.9) 0%,
rgba(248, 250, 252, 0.8) 100%);
backdrop-filter: blur(16px) saturate(180%);
-webkit-backdrop-filter: blur(16px) saturate(180%);
border: 1px solid rgba(226, 232, 240, 0.6);
border-radius: 12px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
padding: 0.75rem 1.5rem;
color: #0f172a;
font-weight: 600;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 2px 4px rgba(0, 115, 206, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
transition: all 0.2s ease;
}
.dark .glass-btn {
background: rgba(0, 0, 0, 0.8);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.glass-btn:hover {
transform: translateY(-1px);
backdrop-filter: blur(20px) saturate(170%) brightness(115%);
-webkit-backdrop-filter: blur(20px) saturate(170%) brightness(115%);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.15);
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(248, 250, 252, 0.85) 100%);
box-shadow:
0 8px 20px rgba(0, 0, 0, 0.12),
0 4px 8px rgba(0, 115, 206, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.glass-btn:active {
transform: translateY(0);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.glass-btn-primary {
background: linear-gradient(135deg,
rgba(0, 115, 206, 0.9) 0%,
rgba(0, 90, 159, 0.85) 100%);
color: white;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
box-shadow:
0 4px 12px rgba(0, 115, 206, 0.3),
0 2px 4px rgba(0, 115, 206, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.glass-btn-primary:hover {
background: linear-gradient(135deg,
rgba(0, 115, 206, 0.95) 0%,
rgba(0, 90, 159, 0.9) 100%);
box-shadow:
0 8px 20px rgba(0, 115, 206, 0.4),
0 4px 8px rgba(0, 115, 206, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.dark .glass-btn {
background: rgba(30, 41, 59, 0.8);
color: #e2e8f0;
border-color: rgba(100, 116, 139, 0.6);
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
/* Glass Modals */
.glass-modal {
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(32px) saturate(200%) brightness(115%);
-webkit-backdrop-filter: blur(32px) saturate(200%) brightness(115%);
border: 1px solid rgba(255, 255, 255, 0.3);
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: 20px;
box-shadow: 0 50px 100px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.2);
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),
inset 0 0 40px rgba(255, 255, 255, 0.2);
}
.dark .glass-modal {
background: rgba(0, 0, 0, 0.85);
border: 1px solid rgba(255, 255, 255, 0.15);
box-shadow: 0 50px 100px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
background: rgba(15, 23, 42, 0.95);
border-color: rgba(51, 65, 85, 0.7);
box-shadow:
0 50px 100px rgba(0, 0, 0, 0.5),
inset 0 2px 0 rgba(255, 255, 255, 0.1);
}
/* Glass Form Elements */
.glass-input {
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(16px) saturate(150%);
-webkit-backdrop-filter: blur(16px) saturate(150%);
border: 1px solid rgba(255, 255, 255, 0.3);
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgba(226, 232, 240, 0.6);
border-radius: 8px;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05);
padding: 0.75rem 1rem;
color: #0f172a;
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.06),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
transition: all 0.2s ease;
}
.dark .glass-input {
background: rgba(0, 0, 0, 0.6);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);
.glass-input:focus {
outline: none;
border-color: rgba(0, 115, 206, 0.6);
box-shadow:
0 4px 12px rgba(0, 115, 206, 0.15),
0 0 0 3px rgba(0, 115, 206, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.glass-input:focus {
backdrop-filter: blur(20px) saturate(180%);
-webkit-backdrop-filter: blur(20px) saturate(180%);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(59, 130, 246, 0.5);
.dark .glass-input {
background: rgba(30, 41, 59, 0.8);
border-color: rgba(100, 116, 139, 0.6);
color: #e2e8f0;
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
/* Glass Dropdown */
@ -204,11 +385,13 @@
/* Responsive glass effects */
@media (max-width: 768px) {
.glass-base,
.glass-strong,
.glass-card-enhanced {
backdrop-filter: blur(16px) saturate(150%);
-webkit-backdrop-filter: blur(16px) saturate(150%);
.glass-card {
padding: 1rem;
border-radius: 12px;
}
.glass-modal {
border-radius: 16px;
}
}
@ -216,7 +399,7 @@
@media (prefers-contrast: high) {
.glass-base,
.glass-strong,
.glass-card-enhanced {
.glass-card {
border-width: 2px;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
@ -226,12 +409,77 @@
/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
.glass-interactive,
.glass-card-enhanced,
.glass-btn {
transition: none;
.glass-btn,
.glass-card {
transition: none !important;
}
.glass-float {
animation: none;
.glass-interactive::before {
display: none;
}
}
/* Glass Loading States */
.glass-loading {
position: relative;
overflow: hidden;
}
.glass-loading::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.3),
transparent);
animation: glass-shimmer 2s infinite;
}
.dark .glass-loading::after {
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.1),
transparent);
}
@keyframes glass-shimmer {
0% { left: -100%; }
100% { left: 100%; }
}
/* Premium Glow Effects for Light Mode */
.glass-glow {
position: relative;
}
.glass-glow::after {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: linear-gradient(45deg,
rgba(0, 115, 206, 0.1),
rgba(0, 90, 159, 0.05),
rgba(0, 115, 206, 0.1));
border-radius: inherit;
z-index: -1;
opacity: 0;
transition: opacity 0.3s ease;
}
.glass-glow:hover::after {
opacity: 1;
}
.dark .glass-glow::after {
background: linear-gradient(45deg,
rgba(59, 130, 246, 0.2),
rgba(29, 78, 216, 0.1),
rgba(59, 130, 246, 0.2));
}