Perfect. Let’s finish this so your dashboard actually looks like it was designed by a human instead of a CLI zombie. We’ll make DeviceList.jsx + DeviceCard.jsx fully functional with:
49f26b8 verified | @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| } | |
| /* Custom scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #292524; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #78716c; | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #6366f1; | |
| } | |
| /* Status indicators */ | |
| .status-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.25rem; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 9999px; | |
| font-size: 0.75rem; | |
| line-height: 1rem; | |
| } | |
| .status-healthy { | |
| background-color: rgba(16, 185, 129, 0.1); | |
| color: #10b981; | |
| } | |
| .status-warning { | |
| background-color: rgba(245, 158, 11, 0.1); | |
| color: #f59e0b; | |
| } | |
| .status-critical { | |
| background-color: rgba(239, 68, 68, 0.1); | |
| color: #ef4444; | |
| } | |
| /* Device table styles */ | |
| #device-table-body tr { | |
| transition: background-color 0.2s ease; | |
| } | |
| #device-table-body tr:hover { | |
| background-color: rgba(68, 64, 60, 0.5); | |
| } | |
| /* Sync status panel */ | |
| #sync-status { | |
| max-height: 150px; | |
| overflow-y: auto; | |
| padding: 0.5rem; | |
| background-color: rgba(28, 25, 23, 0.5); | |
| border-radius: 0.25rem; | |
| } | |
| #sync-status div { | |
| padding: 0.25rem 0; | |
| border-bottom: 1px solid rgba(68, 64, 60, 0.3); | |
| } | |
| #sync-status div:last-child { | |
| border-bottom: none; | |
| } | |