.initiallyHidden,
.hidden {
	display: none;
}

header #logoimg.holiday {
	margin-top: -6px;
	margin-left: -6px;
}

header #logoimg.starwars {
	margin-top: -6px;
}

header img {
	margin-left: 1em;
	margin-top: 1em;
}

#status_message .alert {
	font-size: 12pt;
	margin-left: 1em;
	margin-right: 1em;
}
body {
	/* This bottom margin ensures we keep enough space on the bottom of each page for the log bar. */
	margin-bottom: 6rem;
	background-color: var(--rm-bg, #fff);
	color: var(--rm-fg, inherit);
}

a {
	color: #337ab7;
}

a:focus, a:hover {
	color: #23527c;
}

#fixed-footer {
	width: 100%;
	/* This height MUST be less than the body's margin-bottom. */
	height: 4rem;
	position: fixed;
	bottom: 0px;
	background-color: rgba(240,240,240,0.7);
	border-top: 1px;
	border-top-style: solid;
	border-top-color: rgba(0, 0, 0, 0.1);
	z-index: 1;
	display: flex;
	align-items: center;
}

#fixed-footer .button-bar {
	padding: 1em;
	z-index: 2;
	display: inline-flex;
	justify-content: space-between;
	width: 100%;
}

#fixed-footer .button-bar button {
	margin: .1em;
}

#fixed-footer div#buttons {
	align-self: flex-start;
}

#fixed-footer div#currentlyRunning {
    align-self: center;
    /* line-height: .5; */
    font-size: .60rem;
    opacity: .5;
  }

#fixed-footer .button-bar-right {
	align-self: flex-end;
}

#fixed-footer.button {
	margin: 1em;
}

#preview button {
	margin: .5em;
}

body .text {
	margin-left: 2em;
	margin-right: 2em;
}

body.valentines {
	background-color: hsla(320, 30%, 95%, 1);
	background-image: url("/img/background/cuddle_team_leader_50opacity.png");
	background-repeat: no-repeat;
	background-position: right bottom;
	background-attachment: fixed;
	background-size: 10%
}

body.stpatricks {
	background-color: hsla(90, 85%, 95%, .4); /* Be careful with green, as it can hide some elements */
	background-image: url("/img/background/sgt_green_clover_50opacity.png");
	background-repeat: no-repeat;
	background-position: 99% 100%; /* give the pic a bit of a right margin */
	background-attachment: fixed;
	background-size: 10%
}

#branchList {
	margin: 1.6em;
	overflow: auto;
}

#error {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	margin-bottom: 0;
	transition: bottom .5s ease-in;
}

#error._hidden {
	bottom: -50px;
	transition: bottom 1s ease-in;
}

#top-right {
	float: right;
	font-size: 8pt;
	color: lightgray;
	text-align: right;
}

/* Bootstrap 4 somehow lacks extra-small buttons! */
.btn.btn-xs {
	padding: .5rem .4rem;
	font-size: .8rem;
	line-height: .5;
	border-radius: .2rem;
}

.btn.btn-primary-alt {
	color: #fff;
	background-color: steelblue;
	border-color: #2e6da4;
}

.btn.btn-primary-alt:hover {
	background-color: #396a93;
	box-shadow: 0 0 0 0.2rem rgb(30,144,255,0.5); /* dodgerblue */
}

.btn.btn-primary-alt:focus {
	background-color: #325d81;
	box-shadow: inset 0 0 0 0.2rem rgba(43,80,110,0.5);
}

.btn.btn-secondary-alt,
.button-bar .btn.btn-outline-dark {
	color: black;
	background-color: white;
	border-color: dimgray;
}

.btn.btn-secondary-alt:hover,
.button-bar .btn.btn-outline-dark:hover {
	background-color: whitesmoke;
	box-shadow: 0 0 0 0.2rem rgb(220,220,220,0.5); /* Gainsboro */
}

.btn.btn-secondary-alt:focus,
.button-bar .btn.btn-outline-dark:focus {
	background-color: gainsboro;
	border-color: black;
	box-shadow: inset  0 0 0 0.2rem rgb(192,192,192,0.5); /* silver */
}

/* Override obnoxious default color for selecting item */
.dropdown-item.active, .dropdown-item:active {
	background-color: cadetblue;
}

/* CL Menu Button Styling */
.cl-menu-button {
	display: inline-block !important;
	vertical-align: baseline;
	position: relative;
}

.cl-menu-button .btn {
	font-family: monospace;
	padding: .15rem .35rem;
	font-size: .875rem;
	line-height: 1.5;
	white-space: nowrap;
}

.cl-menu-button .dropdown-menu {
	min-width: 12rem;
	font-size: .9rem;
	display: none;
	position: absolute;
	z-index: 1000;
}

.cl-menu-button .dropdown-menu.show {
	display: block;
}

.cl-menu-button .dropdown-item i {
	width: 1.25em;
	margin-right: .5em;
	text-align: center;
}

/* Soften CL button appearance in conflict blocks */
.info-block.conflict .cl-menu-button .btn {
	background-color: rgba(255, 255, 255, 0.5);
	border-color: rgba(169, 169, 169, 0.4);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.info-block.conflict .cl-menu-button .btn:hover {
	background-color: rgba(255, 255, 255, 0.7);
	border-color: rgba(169, 169, 169, 0.5);
}

/* Ensure h6 tags containing CL buttons stay inline, but content after wraps to new line */
.info-block h6 {
	display: inline-block;
	margin: 0;
	width: 100%;
}

/* Green gate CL button styling - maintain appearance of original last-good-cl */
.lastchangecell .cl-menu-button.gate-cl {
	display: block !important;
	text-align: right;
	vertical-align: unset;
}

.cl-menu-button .btn.last-good-cl {
	font-size: x-small;
	color: green;
	background-color: transparent;
	border: none;
	padding: 0;
	margin-right: 0.5em;
	font-family: inherit;
	line-height: normal;
	display: inline-block;
}

.cl-menu-button .btn.last-good-cl:hover {
	color: darkgreen;
	background-color: transparent;
	border: none;
	text-decoration: underline;
}

/* Yellow temporary-gate CL button, mirroring the green gate chip. Rendered next to
   it; this is the manual clamp / temp gate. */
.cl-menu-button .btn.temp-gate-cl {
	font-size: x-small;
	color: #b8860b; /* dark goldenrod -- readable "yellow" on a light background */
	background-color: transparent;
	border: none;
	padding: 0;
	margin-right: 0.5em;
	font-family: inherit;
	line-height: normal;
	display: inline-block;
}

.cl-menu-button .btn.temp-gate-cl:hover {
	color: #8a6500;
	background-color: transparent;
	border: none;
	text-decoration: underline;
}

#signed-in-user {
	display: inline-flex;
	align-items: center;
	padding: 3px;
	margin-bottom: 7px;
	background-color: #eee;
}

#signed-in-user span {
	vertical-align: middle;
}

#signed-in-user .user-name {
	font-weight: bold;
	font-size: 10pt;
	color: black;
	padding-left: 3px;
}

#signed-in-user .tags {
	padding-left: 5px;
	padding-right: 10px;
	color: DARKGRAY;
}

#signed-in-user i {
	color: lightgray;
	margin: .25em;
}

#signed-in-user button {
	border: solid 1px #eea236;
	color: white;
	background-color: #f0ad4e;
}

input[type="radio"] {
	margin-right: 1em;
}

.flow-graph {
	font-family: sans-serif;
	font-size: 10pt;
	text-align: center;
	float: left;
}

.branch-graph {
	padding: 10px;
	border: solid 1px lightgray;
}

.key-text {
	padding-left: 1em;
	font-size: 9pt;
	font-weight: normal;
}

.graph-key {
	font-size: 9pt;
	font-weight: bold;
	padding: 5px;
	margin: 10px;
	background-color: gainsboro;
	border-radius: 4px;

	/*box-shadow: 5px 5px 3px lightgray;*/
	position: relative;
}

.key-container {
	position: absolute;
	width: 180px;
	height: 80px;
}

/* Legend arrows.
   Each .X-arrow is an inline SVG used as a CSS mask. The actual color of the
   arrow comes from `background-color`, so dark mode only has to override the
   color (see darkmode.css) — no second copy of the shape. Four shapes cover
   all 7 arrow variants. All arrows point LEFT, matching the historical
   /img/arrows.png sprite. */
.arrow {
	width: 100px;
	height: 20px;
	margin: 3px;
	flex: 0 0 100px;
	background-color: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;

	--arrow-shape-solid: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20'><line x1='14' y1='10' x2='96' y2='10' stroke='black' stroke-width='2'/><polygon points='16,4 4,10 16,16' fill='black'/></svg>");
	--arrow-shape-dashed: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20'><line x1='14' y1='10' x2='96' y2='10' stroke='black' stroke-width='2' stroke-dasharray='6,3'/><polygon points='16,4 4,10 16,16' fill='black'/></svg>");
	--arrow-shape-dashed-open-diamond: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20'><line x1='22' y1='10' x2='96' y2='10' stroke='black' stroke-width='2' stroke-dasharray='6,3'/><polygon points='22,10 13,4 4,10 13,16' fill='none' stroke='black' stroke-width='2'/></svg>");
	--arrow-shape-solid-filled-diamond: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20'><line x1='22' y1='10' x2='96' y2='10' stroke='black' stroke-width='2'/><polygon points='22,10 13,4 4,10 13,16' fill='black'/></svg>");
}

.arrow-label {
	font-size: 8pt;
	padding-left: 10px;
	flex: 1 1 auto;
}

/* Use flex on each legend row so the arrow tip and the label text share a
   vertical centerline. The table tags are kept so existing markup still works,
   but we override their layout. */
.graph-key tr {
	display: flex;
	align-items: center;
	min-height: 26px;
}
.graph-key td.arrow {
	display: block;
}
.graph-key td.arrow-label {
	display: block;
}

.auto-merge-arrow {
	color: #000;
	-webkit-mask-image: var(--arrow-shape-solid);
	        mask-image: var(--arrow-shape-solid);
}

.gated-auto-merge-arrow {
	color: #ff8c00;
	-webkit-mask-image: var(--arrow-shape-solid);
	        mask-image: var(--arrow-shape-solid);
}

.red-arrow {
	color: #ff0000;
	-webkit-mask-image: var(--arrow-shape-dashed);
	        mask-image: var(--arrow-shape-dashed);
}

.on-request-arrow {
	color: #a9a9a9;
	-webkit-mask-image: var(--arrow-shape-dashed);
	        mask-image: var(--arrow-shape-dashed);
}

/* defaultFlow edges are emitted solid by flow.graph.js's EDGE_STYLES table
   (just a color, no style: dashed), so the legend swatch matches that. */
.default-flow-arrow {
	color: #0000ff;
	-webkit-mask-image: var(--arrow-shape-solid);
	        mask-image: var(--arrow-shape-solid);
}

.block-assets-arrow {
	color: #a9a9a9;
	-webkit-mask-image: var(--arrow-shape-dashed-open-diamond);
	        mask-image: var(--arrow-shape-dashed-open-diamond);
}

.roboshelf-arrow {
	color: #800080;
	-webkit-mask-image: var(--arrow-shape-solid-filled-diamond);
	        mask-image: var(--arrow-shape-solid-filled-diamond);
}

.dead-bot {
	color: red;
}

.robomerge-crash-buttons {
	width: 15em;
	margin: .5em;
}

.centered-text {
	margin: auto;
	max-width: 70%;
}

.loading-box {
	margin-right: auto;
	margin-left: auto;
	width: fit-content;
	padding-left: 2em;
	padding-right: 2em;
}

.card-single {
	margin-top: 1em;
	margin-bottom: 1em;
}

label.workspaceExactMatch {
	font-weight: 700;
}

label.workspaceInexactMatch {
	font-weight: 400;
}

.big-help {
	margin: 5px;
}

.warning {
	color: orange;
}

/* Bootstrap pairs .bg-warning (bright yellow #ffc107) with .text-white in
   places like the stomp.html card headers — a notorious low-contrast combo
   (≈1.5:1, well below WCAG AA). Force a dark foreground on any element
   that carries both classes; specificity-wise (.bg-warning.text-white is
   two classes) plus !important beats the .text-white utility's own
   !important so this actually wins. Same fix improves contrast in both
   light and dark mode. */
.bg-warning.text-white,
.bg-warning .text-white {
	color: #212529 !important;
}