/**
 * prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */

code[class*="language-"],
pre[class*="language-"] {
	color: black;
	background: none;
	text-shadow: 0 1px white;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	text-shadow: none;
	background: #b3d4fc;
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	text-shadow: none;
	background: #b3d4fc;
}

@media print {
	code[class*="language-"],
	pre[class*="language-"] {
		text-shadow: none;
	}
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #f5f2f0;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: slategray;
}

.token.punctuation {
	color: #999;
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
	color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
	color: #9a6e3a;
	/* This background color was intended by the author of this theme. */
	background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: #07a;
}

.token.function,
.token.class-name {
	color: #DD4A68;
}

.token.regex,
.token.important,
.token.variable {
	color: #e90;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

pre[class*="language-"].line-numbers {
	position: relative;
	padding-left: 3.8em;
	counter-reset: linenumber;
}

pre[class*="language-"].line-numbers > code {
	position: relative;
	white-space: inherit;
}

.line-numbers .line-numbers-rows {
	position: absolute;
	pointer-events: none;
	top: 0;
	font-size: 100%;
	left: -3.8em;
	width: 3em; /* works for line-numbers below 1000 lines */
	letter-spacing: -1px;
	border-right: 1px solid #999;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

}

	.line-numbers-rows > span {
		display: block;
		counter-increment: linenumber;
	}

		.line-numbers-rows > span:before {
			content: counter(linenumber);
			color: #999;
			display: block;
			padding-right: 0.8em;
			text-align: right;
		}

/*
# Copyright (c) 2024 RapidStream Design Automation, Inc. and contributors.
# All rights reserved. The contributor(s) of this file has/have agreed to the
# RapidStream Contributor License Agreement.
*/

.btn {
	/* https://github.com/emilk/egui/blob/cf965aaa/crates/egui/src/style.rs#L1453 */
	--btn-txt: #3C3C3C;
	/* rgb(60, 60, 60) */
	--btn-bg: #E6E6E6;
	/* rgb(230, 230, 230) */
	--btn-bg-hover: #DCDCDC;
	/* rgb(220, 220, 220) */
	--btn-bg-active: #A5A5A5;
	/* rgb(165, 165, 165) */
	--btn-bg-select: #90D1FF;
	/* rgb(144, 209, 255) */

	position: relative;
	box-sizing: border-box;
	padding: 2px;
	border: none;
	border-radius: 3px;
	color: var(--btn-txt);
	background-color: var(--btn-bg);
	font-size: smaller;
	/* for non-<button> .btn element like <label> */
	cursor: pointer;
}

.btn:hover,
.btn:focus {
	background-color: var(--btn-bg-hover);
}

.btn:active {
	background-color: var(--btn-bg-active);
}

.btn:has(:checked) {
	background-color: var(--btn-bg-select);
}

.btn:disabled {
	color: gray;
	background-color: transparent;
}

/* button text tooltip
	set top / right / bottom / left to position the text tooltip;
	Center .btn-text in the parent element, instead of translate(-50%) */
.btn>.btn-text {
	position: absolute;
	z-index: 10;
	padding: .5rem .4rem;
	border: 1px solid;
	border-radius: 4px;
	background-color: white;
	line-height: 1;
}

/* triangle of the tooltip
	set top / right / bottom / left to position triangle of the tooltip;
	set transform: rotate(xxxdeg) to rotate the triangle. */
.btn>.btn-text::before {
	content: "";
	position: absolute;
	box-sizing: border-box;
	display: block;
	width: 8px;
	height: 8px;
	border: 1px solid;
	border-color: currentColor transparent transparent currentColor;
	background: linear-gradient(-45deg, transparent 33%, white 33%);
}

/* hide when not hover or focus */
.btn:not(:hover):not(:focus)>.btn-text {
	display: none;
}

/* opacity when not hover, only focus */
.btn:focus:not(:hover)>.btn-text {
	opacity: .75;
}

/* btn in header */
body>header .btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
}

body>header .btn>.btn-text {
	top: 2rem;
}

body>header .btn>.btn-text::before {
	top: -4px;
	left: calc(50% - 4px);
	transform: rotate(45deg);
}

/* btn in .sidebar-tabs */
.sidebar-tabs .btn {
	display: flex;
	align-items: center;
}

.sidebar-tabs .btn>.btn-text {
	right: 2rem;
	white-space: nowrap;
}

.sidebar-tabs .btn>.btn-text::before {
	top: calc(50% - 4px);
	right: -4px;
	transform: rotate(135deg);
}

/*
# Copyright (c) 2024 RapidStream Design Automation, Inc. and contributors.
# All rights reserved. The contributor(s) of this file has/have agreed to the
# RapidStream Contributor License Agreement.
*/

/* Only show contents for selected sidebar */
.sidebar-contents section {
	display: none;
}
.sidebar-tabs:has(.btn-explorer > input:checked)+.sidebar-contents>.explorer,
.sidebar-tabs:has(.btn-cflags > input:checked)+.sidebar-contents>.cflags,
.sidebar-tabs:has(.btn-details > input:checked)+.sidebar-contents>.details,
.sidebar-tabs:has(.btn-connections > input:checked)+.sidebar-contents>.connections {
	display: block;
}

.sidebar-tabs:has(.btn-options > input:checked)+.sidebar-contents>.options {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sidebar-tabs>hr {
	margin: .25rem 0;
	opacity: .5;
}
.sidebar-tabs>.btn-options {
	margin-top: auto;
}

.sidebar-contents {
	position: relative;
}

.sidebar-contents .summary,
.sidebar-contents details>summary,
.sidebar-contents details>div {
	contain: content;
	box-sizing: border-box;
	border-bottom: 1px solid var(--border);
}

/* aside contents - summary */
.sidebar-contents .summary,
.sidebar-contents details>summary {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: .5rem;
	line-height: 1;
}

.sidebar-contents .summary {
	flex-direction: column;
}

.sidebar-contents details>summary {
	list-style: none;
}

.sidebar-contents details>summary>.lucide-chevron-down {
	transition: transform .1s linear;
}

.sidebar-contents details[open]>summary>.lucide-chevron-down {
	transform: rotate(180deg);
}

.sidebar-contents details>div {
	padding: .5rem;
}
.sidebar-content-instance>dl>dt:first-child,
.sidebar-content-neighbors>p:first-child,
.sidebar-content-connections>p:first-child {
	margin-top: 0;
}

.sidebar-contents details>div>p:only-child,
.sidebar-content-explorer>p:only-child {
	text-align: center;
}


/* sidebar contents - ol ul dl */
.sidebar-contents p {
	margin-top: .5rem;
	margin-bottom: .5rem;
}

.sidebar-contents ol,
.sidebar-contents ul {
	margin: 0;
	padding-inline-start: 1em;
	font-size: .85rem;
}

.sidebar-contents ul {
	list-style-type: "• ";
}

.sidebar-contents dl {
	margin: 0;
}

.sidebar-contents dl>dt {
	margin: .25rem 0;
	color: var(--fg2);
	font-weight: bold;
	font-size: .85rem;
}

.sidebar-contents dl>dd {
	max-height: 24rem;
	overflow: auto;
	scrollbar-width: thin;
	margin: .1rem 0;
	font-family: monospace;
}

/* sidebar contents - table */
.sidebar-contents table {
	position: relative;
	margin: 0;
	border-collapse: collapse;
	overflow-wrap: anywhere;
	font-size: .9rem;
}

.sidebar-contents th,
.sidebar-contents td {
	min-width: 8ch;
	padding: .1em .5ch;
	border: 1px solid;
	border-color: currentColor #CCC;
}

.sidebar-contents th:first-child,
.sidebar-contents td:first-child {
	border-left-color: currentColor;
}

.sidebar-contents th:last-child,
.sidebar-contents td:last-child {
	border-right-color: currentColor;
}

.sidebar-contents th {
	position: sticky;
	top: 0;
}

/* th/td border are not sticky, but ::before is, add border in ::before */
.sidebar-contents th::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: -1;
	border-top: 1px solid;
	border-bottom: 1px solid;
	background-color: white;
}

/* Upper task's ports table: center everything other than Type */
.sidebar-contents table.upperTask-ports td:not(:nth-child(3)) {
	text-align: center;
}

/* Explorer & Cflags */
.sidebar-content-explorer>ul,
.sidebar-content-cflags>ul {
	padding: .5rem;
	list-style-image: none;
	word-break: break-all;
}

.sidebar-content-explorer>ul>li:hover {
	background-color: #EEE;
}

.sidebar-content-cflags>ul>li {
	margin: .25rem 0;
	line-height: 1.2;
}
.sidebar-content-cflags>ul>li.isystem {
	opacity: .75;
	font-size: .8rem;
}

/* Task */
.sidebar-content-task button {
	font: inherit;
}
.sidebar-content-task>h3 {
	margin: 0;
	font-size: 1rem;
}
.sidebar-content-task>dl.compact {
	display: grid;
	grid-template-columns: auto auto;
	width: 16rem;
	margin: .5rem 0;
	font-size: .85rem;
}
.sidebar-content-task>dl.compact>.dt {
	margin: .1rem 0;
}

/* Options */
.sidebar-content-options {
	flex-grow: 1;
	max-width: 24em;
	padding: 1rem;
	overflow: auto;
	border-bottom: 1px solid #CCC;
}

.sidebar-content-options fieldset>legend {
	padding-inline: .5ch;
}

.sidebar-content-options .hint {
	margin-top: .25rem;
	margin-bottom: -.25rem;
}

/* Hint */
.sidebar-contents .hint {
	font-size: .75rem;
	color: gray;
}

/* Hint about only one combo */
.sidebar-content-options:not(.only-one-combo) .hint.only-one-combo {
	display: none;
}

.sidebar-content-options.only-one-combo fieldset.only-one-combo:not(:hover) {
	opacity: .75;
	filter: grayscale(.5);
}

/*
# Copyright (c) 2024 RapidStream Design Automation, Inc. and contributors.
# All rights reserved. The contributor(s) of this file has/have agreed to the
# RapidStream Contributor License Agreement.
*/

/* basic layout & reset */
html,
body,
.graph-container {
	height: 100%;
}

body {
	margin: 0;
	display: grid;
	grid-template: auto 1fr / minmax(min(42em, 100%), auto) auto 1fr;
}

body>header,
body>header .flex {
	display: flex;
	align-items: center;
	gap: .5rem;
}

body>aside {
	display: contents;
}

body>header {
	grid-column: 1 / -1;
	border-bottom: 1px solid #BEBEBE;
}

.sidebar-tabs {
	border-left: 1px solid #BEBEBE;
	border-right: 1px solid #BEBEBE;
}

:root {
	font-family: system-ui, sans-serif;
	line-height: 1.368;
}

.lucide {
	width: 1.2rem;
	height: 1.2rem;
}


/* Ref: light theme of egui
https://github.com/emilk/egui/blob/cf965aaa/crates/egui/src/style.rs#L1339 */
:root {
	--fg1: #3C3C3C;
	/* rgb(60, 60, 60) */
	--fg2: #505050;
	/* rgb(80, 80, 80) */
	--bg1: #FCFCFC;
	/* rgb(252, 252, 252) ≈ from_additive_luminance(5) */
	--bg2: #F8F8F8;
	/* rgb(248, 248, 248) */
	--border: #BEBEBE;
	/* rgb(190, 190, 190) */
	--select: #90D1FF;
	/* rgb(144, 209, 255) */
	--warn: #FF6400;
	/* rgb(255, 100, 0) */
	--error: #FF0000;
	/* rgb(255, 0, 0) */

	color: var(--fg1);
	background-color: var(--bg1);
}

:link {
	color: #009BFF;
	/* rgb(0, 155, 255) */
}

::selection {
	background-color: #90D1FF;
}

body>header,
.sidebar-tabs,
.sidebar-contents details>summary {
	color: var(--fg2);
	background-color: var(--bg2);
}

/* header */
body>header {
	box-sizing: border-box;
	min-height: 2rem;
	padding: .1rem 1.5rem;
}

/* Don't wrap btn tooltip like "Toggle Sidebar" on wide screen */
@media (min-width: 75rem) {

	/* 75rem * 16px = 1200px = xl in Bootstrap */
	body>header {
		padding: .1rem 2.75rem;
	}

	body>header .btn>.btn-text {
		white-space: pre;
	}
}

body>header .tools {
	margin-left: auto;
}

body>header .tools hr {
	height: 1rem;
	margin: 0;
	opacity: .5;
}

body>header .grouping {
	padding: 2px;
	border-radius: 4px;
	transition: box-shadow .2s ease-out;
	will-change: box-shadow;
}
body>header .grouping:hover {
	box-shadow: 0 0 2px 1px var(--border);
}


/* main */
body>main {
	width: 75vw;
	min-width: 40vw;
	max-width: 85vw;
	overflow: hidden;
	resize: horizontal;
}

body>main>.graph-container>.tooltip {
	overflow-wrap: anywhere;
	font-size: .8rem;
}

/* aside */
.sidebar-contents {
	overflow: auto;
}

.sidebar-tabs {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: .5rem .25rem;
}

.sidebar-contents {
	flex: 1;
	font-size: .9rem;
}

/* C++ Code dialog */
dialog {
	/* 100% - 2rem margin - 2rem padding - 2px border */
	max-height: calc(100% - 4rem - 2px);
	border-width: 1px;
	margin: 1rem auto;
}

dialog>header {
	display: flex;
	gap: .5rem;
}

dialog>header>h2 {
	margin-block: 0;
	margin-inline-end: auto;
}

/* C++ code block in the dialog */
dialog>pre,
dialog>pre[class*="language-"] {
	width: calc(100% - 4rem);
	/* 36rem + 2rem gap */
	min-width: 38rem;
	max-width: 80rem;
	max-height: calc(100vh - 12rem);
	margin-left: -3px;
	overflow: auto;
	font-size: .9rem;
}

code[class*="language-"],
pre[class*="language-"] {
	white-space: pre-wrap;
}


/*# sourceMappingURL=main.css.map*/