Files
foodlinkk-command-center/cockpit/static/css/agents-mesh.css
T
2026-06-09 10:41:13 +00:00

123 lines
2.5 KiB
CSS

.mesh-wrap {
position: relative;
border-radius: 14px;
border: 1px solid rgba(148, 163, 184, 0.16);
background: radial-gradient(circle at 50% 40%, rgba(255, 215, 0, 0.08), rgba(0, 0, 0, 0.35));
overflow: hidden;
}
.mesh-svg {
width: 100%;
min-height: 520px;
display: block;
}
.mesh-edge {
stroke: rgba(0, 229, 255, 0.42);
stroke-width: 1.6;
fill: none;
stroke-linecap: round;
}
.mesh-pulse {
stroke: rgba(0, 229, 255, 0.9);
stroke-width: 3;
stroke-linecap: round;
stroke-dasharray: 3 140;
animation: mesh-pulse 2.4s linear infinite;
}
@keyframes mesh-pulse {
from { stroke-dashoffset: 0; }
to { stroke-dashoffset: -286; }
}
.mesh-node { cursor: pointer; }
.mesh-node text {
font-size: 12px;
fill: #e2e8f0;
font-weight: 600;
text-anchor: middle;
}
.mesh-node circle {
fill: #0f172a;
stroke: rgba(148, 163, 184, 0.65);
stroke-width: 2;
}
.mesh-node.healthy circle { stroke: #22c55e; }
.mesh-node.warn circle { stroke: #f59e0b; }
.mesh-node.idle circle { stroke: #38bdf8; }
.mesh-node.offline circle { stroke: #64748b; }
.mesh-herman circle.main {
fill: #111827;
stroke: #ffd700;
stroke-width: 4;
filter: drop-shadow(0 0 12px rgba(255, 215, 0, 0.6));
}
.mesh-exec circle.main {
fill: #0f172a;
stroke-width: 3;
}
.mesh-ceo circle.main { stroke: #ff9f43; filter: drop-shadow(0 0 10px rgba(255, 159, 67, 0.5)); }
.mesh-cto circle.main { stroke: #a855f7; filter: drop-shadow(0 0 10px rgba(168, 85, 247, 0.5)); }
.mesh-exec circle.ring {
fill: none;
stroke: rgba(255, 255, 255, 0.15);
stroke-width: 1.5;
stroke-dasharray: 4 4;
}
.mesh-agent .mesh-status { fill: #64748b; }
.mesh-herman circle.ring {
fill: none;
stroke: rgba(255, 215, 0, 0.35);
stroke-width: 2;
stroke-dasharray: 8 4;
animation: mesh-herman-ring 7s linear infinite;
transform-origin: center;
}
@keyframes mesh-herman-ring {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.mesh-legend {
display: flex;
gap: 0.8rem;
flex-wrap: wrap;
margin-top: 0.75rem;
color: #94a3b8;
font-size: 0.82rem;
}
.vtab-badge {
display: inline-flex;
min-width: 1.1rem;
height: 1.1rem;
padding: 0 0.35rem;
margin-left: 0.35rem;
border-radius: 999px;
background: #f59e0b;
color: #0a0e14;
font-size: 0.65rem;
font-weight: 700;
align-items: center;
justify-content: center;
}
.badge-warn {
background: rgba(245, 158, 11, 0.2);
color: #fbbf24;
padding: 0.15rem 0.5rem;
border-radius: 999px;
font-size: 0.72rem;
}