:root { --bg-primary: #1e1e1e; --bg-secondary: #2d2d2d; --bg-card: #252525; --text-primary: #ffffff; --text-secondary: #b0b0b0; --accent-info: #00ccff; --accent-warning: #ffcc00; --accent-danger: #ff3366; --accent-success: #00ff88; } body { background-color: var(--bg-primary); color: var(--text-primary); font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } .card { background-color: var(--bg-card); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; } .card:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(0, 255, 136, 0.2); } .metric-card { min-height: 200px; } .metric-value { font-size: 2.5rem; font-weight: 700; line-height: 1; margin: 0.5rem 0; } .metric-unit { font-size: 0.9rem; color: var(--text-secondary); text-transform: uppercase; } .alert-critical { border-left: 4px solid var(--accent-danger); background-color: rgba(255, 51, 102, 0.1); } .alert-warning { border-left: 4px solid var(--accent-warning); background-color: rgba(255, 204, 0, 0.1); } .status-online { color: var(--accent-success); } .status-offline { color: var(--accent-danger); } .progress { background-color: rgba(255, 255, 255, 0.1); } .table { color: var(--text-primary); } .table td { border-color: rgba(255, 255, 255, 0.1); } .navbar { background-color: var(--bg-secondary) !important; } .card-header { background-color: rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba(255, 255, 255, 0.1); font-weight: 600; } canvas { max-height: 300px; } /* Responsive */ @media (max-width: 768px) { .metric-value { font-size: 2rem; } .metric-card { min-height: 150px; } }