Files
Aissa 5d60d33db1 Platform bundle: marketing publish, IT ops, packaging, agents mesh.
Volledige Foodlinkk Command Center uitbreiding met social automatisering,
reclamefolder filters, Proxmox monitoring en documentatie.
2026-06-09 00:41:27 +00:00

123 lines
3.5 KiB
CSS

/* Herman dashboard — Telegram-tab style motion */
@keyframes tg-ripple {
0% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.5); }
70% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 14px rgba(56, 189, 248, 0); }
100% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 0 0 rgba(56, 189, 248, 0); }
}
@keyframes tg-orbit {
0% { transform: rotate(0deg) translateX(4px) rotate(0deg); }
100% { transform: rotate(360deg) translateX(4px) rotate(-360deg); }
}
@keyframes tg-gradient-flow {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
@keyframes tg-breathe {
0%, 100% { opacity: 0.85; filter: brightness(1); }
50% { opacity: 1; filter: brightness(1.15); }
}
@keyframes spin-dots {
0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
40% { transform: scale(1); opacity: 1; }
}
.herman-hero {
position: relative;
overflow: hidden;
}
.herman-hero::before {
content: "";
position: absolute;
top: -50%; left: -50%;
width: 200%; height: 200%;
background: radial-gradient(circle at 30% 40%, rgba(56,189,248,0.12) 0%, transparent 45%),
radial-gradient(circle at 70% 60%, rgba(192,132,252,0.1) 0%, transparent 40%);
animation: tg-gradient-flow 8s ease infinite;
background-size: 200% 200%;
pointer-events: none;
}
.herman-briefing.pulse-panel {
animation: tg-ripple 3s ease-in-out infinite;
}
.briefing-card, .briefing-chart-panel, .briefing-stat {
animation: tg-breathe 4s ease-in-out infinite;
}
.briefing-card:nth-child(2) { animation-delay: 0.5s; }
.briefing-card:nth-child(3) { animation-delay: 1s; }
.hub-kpi-row .kpi-card {
animation: tg-ripple 3.5s ease-in-out infinite;
}
.hub-kpi-row .kpi-card:nth-child(2) { animation-delay: 0.4s; }
.hub-kpi-row .kpi-card:nth-child(3) { animation-delay: 0.8s; }
.hub-kpi-row .kpi-card:nth-child(4) { animation-delay: 1.2s; }
.hub-kpi-row .kpi-card:nth-child(5) { animation-delay: 1.6s; }
.live-badge::before { animation: tg-orbit 2s linear infinite, pulse-dot 1.2s ease-in-out infinite; }
.briefing-loading-overlay {
position: absolute;
inset: 0;
background: rgba(10, 14, 20, 0.75);
backdrop-filter: blur(4px);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 1rem;
z-index: 20;
border-radius: 12px;
}
.briefing-loading-overlay .loading-dots {
display: flex;
gap: 0.5rem;
}
.briefing-loading-overlay .loading-dots span {
width: 12px; height: 12px;
border-radius: 50%;
background: var(--pulse-blue, #38bdf8);
animation: spin-dots 1.2s ease-in-out infinite;
}
.briefing-loading-overlay .loading-dots span:nth-child(2) { animation-delay: 0.15s; }
.briefing-loading-overlay .loading-dots span:nth-child(3) { animation-delay: 0.3s; }
.briefing-loading-overlay p { color: var(--text-primary); font-size: 1rem; margin: 0; }
.herman-briefing { position: relative; }
.retail-highlight {
animation: fade-up 0.4s ease;
text-decoration: none;
color: inherit;
transition: transform 0.2s, background 0.2s;
padding: 0.4rem 0.25rem;
border-radius: 8px;
}
.retail-highlight:hover {
background: rgba(56,189,248,0.1);
transform: translateX(4px);
}
.feed-card { animation: tg-breathe 5s ease-in-out infinite; }
.count-up { display: inline-block; transition: color 0.3s; }
.section-fill:not(:empty) {
min-height: 2rem;
}
.briefing-card h3, .horizon-card h3 {
text-shadow: 0 0 20px rgba(56,189,248,0.25);
}
.topnav-herman.active, .topnav a.active {
animation: pulse-ring 2.5s infinite;
}