| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| |
| *, *::before, *::after { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| margin: 0; |
| padding: 0; |
| font-family: 'Inter', system-ui, sans-serif; |
| background-color: #09090b; |
| color: #a1a1aa; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| overflow: hidden; |
| } |
|
|
| #root { |
| width: 100vw; |
| height: 100vh; |
| overflow: hidden; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: #18181b; |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: #3f3f46; |
| border-radius: 3px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: #52525b; |
| } |
|
|
| |
| .react-flow__background { |
| background-color: #09090b !important; |
| } |
|
|
| .react-flow__controls { |
| background: #27272a !important; |
| border: 1px solid #3f3f46 !important; |
| border-radius: 8px !important; |
| overflow: hidden; |
| } |
|
|
| .react-flow__controls-button { |
| background: #27272a !important; |
| border-bottom: 1px solid #3f3f46 !important; |
| fill: #a1a1aa !important; |
| } |
|
|
| .react-flow__controls-button:hover { |
| background: #3f3f46 !important; |
| } |
|
|
| .react-flow__edge-path { |
| stroke: #3f3f46 !important; |
| stroke-width: 2 !important; |
| } |
|
|
| .react-flow__edge.animated .react-flow__edge-path { |
| stroke: #10b981 !important; |
| stroke-dasharray: 5 !important; |
| animation: dashdraw 0.5s linear infinite !important; |
| } |
|
|
| @keyframes dashdraw { |
| from { |
| stroke-dashoffset: 10; |
| } |
| } |
|
|
| |
| .panel-card { |
| background-color: #18181b; |
| border: 1px solid #27272a; |
| border-radius: 0.5rem; |
| } |
|
|
| .terminal-embed { |
| background-color: #0d0d0d; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.75rem; |
| padding: 1rem; |
| border-radius: 0.375rem; |
| overflow-y: auto; |
| overflow-x: hidden; |
| } |
|
|
| |
| @keyframes status-pulse { |
| 0%, 100% { transform: scale(1); opacity: 1; } |
| 50% { transform: scale(1.5); opacity: 0.5; } |
| } |
|
|
| .status-dot-live { |
| animation: status-pulse 2s ease-in-out infinite; |
| } |
|
|
| |
| @keyframes flash-red { |
| 0%, 100% { border-color: #27272a; } |
| 50% { border-color: #ef4444; box-shadow: 0 0 12px rgba(239, 68, 68, 0.3); } |
| } |
|
|
| .gauge-warning { |
| animation: flash-red 1s ease-in-out 3; |
| } |
|
|
| |
| .recharts-tooltip-wrapper .recharts-default-tooltip { |
| background-color: #18181b !important; |
| border: 1px solid #27272a !important; |
| border-radius: 6px !important; |
| color: #e4e4e7 !important; |
| } |
|
|
| .recharts-tooltip-wrapper .recharts-tooltip-label { |
| color: #a1a1aa !important; |
| } |
|
|
| .recharts-tooltip-wrapper .recharts-tooltip-item { |
| color: #e4e4e7 !important; |
| } |
|
|
| |
| .recharts-bar-rectangle:hover { |
| filter: brightness(1.2); |
| } |
|
|
| |
| .react-flow__edge-path { |
| stroke-width: 2px !important; |
| } |
|
|
| .react-flow__edge.animated .react-flow__edge-path { |
| stroke: #10b981 !important; |
| stroke-dasharray: 5 !important; |
| stroke-width: 2px !important; |
| } |
|
|