/* -*- coding: utf-8 -*-
 Copyright 2022 Google LLC

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     https://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

 SPDX-License-Identifier: Apache-2.0
*/

img.align-center {
	display: block;
}

span.lib-process {
	color: green;
}

span.lib-src {
	color: purple;
}

span.lib-type {
	color: orange;
}

span.lib-name {
	color: blue;
}

span.drc-rule {
	font-family: monospace;
	white-space: pre;
	display: inline-block;
}

span.drc-tag {
	font-family: monospace;
	white-space: pre;
	display: inline-block;
}

span.drc-flag {
	font-family: monospace;
	white-space: pre;
	display: inline-block;
}

span.layer {
	font-family: monospace;
	white-space: pre;
	display: inline-block;
}

.page-content table thead th {
	position: sticky !important;
	top: 0;
	z-index: 2;
	background-color: #fff;
	box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.4);
}


