@charset 'UTF-8';

@font-face {
	font-family: 'futura_bk_btbook';
	src: url('../font/futuran-webfont.woff2') format('woff2'),
		url('../font/futuran-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;
}

/* ------------------------------------------------------------------
TAKEN FROM LEHLE'S WEBSITE: 'lehle.less' 
------------------------------------------------------------------ */

:root {
	--lehlePrimary: #000000;
	--lehleSecondary: #000000;
	--lehleBackground: #ffffff;
	--lehleBorder: #dadae5;
	/* Status messages : */
	--lehleSuccess: #007e4e;
	--lehleInformation: #005b99;
	--lehleNotice: #974200;
	--lehleError: #c20017;
	/* Typography : */
	--lehleText: #000000;
	--lehleHeadline: #3f4c58;
	--lehleLink: #5f7285;
	--lehleLinkSecondary: #b4b4c8;
	--lehlePlaceholder: #8798a9;

	--lehleBlack: #000000;
	--lehleGray: #bbbbbb;
	--lehleWhite: #ffffff;
	--lehleSecBtnBg: #aaaaaa;
	--lehleSecBtnBgHover: #3f4c58;
	--lehleSecBtnFg: #ffffff;
	--lehleSecBtnFgHover: #ffffff;
	--lehleLinkColor: #5f7285;
	/*--lehleBg: #e9e9f0;*/
	--lehleBg: #ffffff;
	--lehleDeactivated: rgb(180, 180, 200);
	--lehleFont: 'futura_bk_btbook';
	--lehleYellow: #fdd701;
    /*  bootstrap : */
    --bs-btn-disabled-color: #aaaaaa;
    --themeMenu: #aaaaaa;
}

:root[data-theme='dark'] {
	--lehlePrimary: #ffffff;
	--lehleSecondary: #ffffff;
	--lehleBackground: #000000;
	--lehleBorder: #444444;
	/* Status messages : */
	--lehleSuccess: #007e4e;
	--lehleInformation: #005b99;
	--lehleNotice: #974200;
	--lehleError: #c20017;
	/* Typography : */
	--lehleText: #000000;
	--lehleHeadline: #3f4c58;
	--lehleLink: #5f7285;
	--lehleLinkSecondary: #b4b4c8;
	--lehlePlaceholder: #8798a9;

	--lehleBlack: #fff; /* Inverted from black */
	--lehleGray: #444; /* Darker gray to match the theme */
	--lehleWhite: #111; /* Inverted from white */
	--lehleSecBtnBg: #555; /* Darker background for secondary buttons */
	--lehleSecBtnBgHover: #3f4c58; /* This one is already dark enough, no change needed */
	--lehleSecBtnFg: #fff; /* Keeping the foreground white */
	--lehleSecBtnFgHover: #fff; /* No change needed */
	--lehleLinkColor: #9fb2c5; /* Lightened link color for better visibility on dark background */
	--lehleBg: #222; /* Dark background */
	--lehleDeactivated: rgb(100, 100, 120); /* Darker shade for deactivated elements */
	--lehleFont: 'futura_bk_btbook'; /* No change needed for the font */
	--lehleYellow: #fdd701; /* Keeping the yellow as it contrasts well */
    /*  bootstrap : */
    --bs-btn-disabled-color: #aaa;
    --themeMenu: #777;
}
:root[data-theme='dark'] .dropdown button {
    color: var(--lehleBlack) !important;
}

.dropdown-menu {
	--bs-dropdown-padding-y: 0;
}

/* ------------------------------------------------------------------
GLOBAL STYLES
------------------------------------------------------------------ */

:root {
	--lehleGreen: #0cff00;
}

* {
	box-sizing: border-box;
}

html,
body {
	padding: 0;
	margin: 0;
	/*background-color: var(--lehleWhite);*/
	background-color: var(--lehleBg);
	font-size: 14px;
	font-weight: 400;
	font-family: var(--lehleFont);
	color: var(--lehleBlack);
}

body {
	/*padding-top: 2.5rem;*/
/* moved in #container */
}

#main-container {
    padding-top: 2.5rem;
    padding-bottom: 4rem;	/* make room for the debug panel */
}

.dropdown-toggle::after {
	margin-left: 0.4rem;
}

.show {
	display: block!important;
}

/* ------------------------------------------------------------------
BOOTSTRAP OVERRIDES
------------------------------------------------------------------ */


/* ------------------------------------------------------------------
HEADER
------------------------------------------------------------------ */

header {
	padding-bottom: 1.5rem;
}

header>div {
	line-height: 1.8rem;
	padding-bottom: 1.5rem;
}

/* LEHLE logo */
#lehleLogo {
	position: relative;
}

#lehleLogo img {
	cursor: pointer;
	max-width: 200px;
	width: 80%;
	height: auto;
	margin: 0;
}

/* product selection */
#selectedProduct button {
	border: none;
	padding-top: 0.2rem;
	padding-left: 0;
	padding-right: 0;
}

#selectedProduct button:hover {
	text-decoration: underline;
}

#selectedProduct .dropdown-menu {
	margin-top: -0.2rem !important;
	border-radius: 0;
	border: 1px solid var(--lehleBlack);
}

#selectedProduct .dropdown-menu li {
	position: relative;
	cursor: pointer;
	line-height: 2;
	padding-left: 1rem;
	padding-right: 1rem;
}

#selectedProduct .dropdown-menu li:hover::before {
	content: '';
	position: absolute;
	display: block;
	/*top: 0.7em;*/
	top: 0.9em;
	left: 0;
	width: 0;
	height: 0;
	border-left: 0.35em solid var(--lehleBlack);
	border-top: 0.35em solid transparent;
	border-right: 0;
	border-bottom: 0.35em solid transparent;
}

/* product status */
#productStatus span {
	position: relative;
	padding-left: 1.1rem;
}

#productStatus span::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0.15rem;
	width: 12px;
	height: 12px;
	border-radius: 6px;
	border: 1px solid rgba(100, 100, 100, 1);
}

#productStatus span.greenCircle::before {
	background-color: var(--lehleGreen);
}

#productStatus span.grayCircle::before {
	background-color: var(--lehleGray);
}

#productStatus span.yellowCircle::before {
	background-color: var(--lehleYellow);
}

/* ------------------------------------------------------------------
TOP PROGRESS BAR (connection progress)
------------------------------------------------------------------ */

#top-progress-bar {
    height:4px;
    background-color: red;
    position: fixed;
    top: 0;
    left: 0;
    width: 0;
}

/* ------------------------------------------------------------------
NAVIGATION
------------------------------------------------------------------ */

main {
	position: relative;
}

/* callNav button */
#callNav {
	position: absolute;
	display: none;
	right: 0%;
	top: 0px;
	height: 60px;
	width: 60px;
	background-color: transparent;
	cursor: pointer;
}

#callNav .callStroke,
#callNav .callStroke::before,
#callNav .callStroke::after {
	content: '';
	position: absolute;
	height: 2px;
	width: 34px;
	background-color: var(--lehleBlack);
	transition: all .3s ease;
	-webkit-transition: all .3s ease;
}

#callNav .callStroke::before {
	top: -10px;
	left: 0px;
	transition: all .3s ease;
	-webkit-transition: all .3s ease;
}

#callNav .callStroke {
	top: 30px;
	left: 13px;
}

#callNav .callStroke::after {
	top: 10px;
	left: 0px;
	transition: all .3s ease;
	-webkit-transition: all .3s ease;
}

#callNav.callNavA .callStroke::before {
	left: -20px;
	top: 0px;
	transform: rotate(-135deg);
}

#callNav.callNavA .callStroke {
	width: 0px;
	left: 33px;
}

#callNav.callNavA .callStroke::after {
	top: 0px;
	left: -20px;
	transform: rotate(135deg);
}

/* navigation */
nav {
	text-transform: uppercase;
}

nav span {
	cursor: pointer;
	line-height: 2;
	display: block;
}

nav span:hover {
	text-decoration: underline;
}

.navChildren {
	height: 0px;
	overflow: hidden;
}

.navChildren.childrenA {
	height: auto;
}

.navParent>span {
	font-size: 1.2rem;
}

.navChildren>span,
.navChildren>a span {
	font-size: 1rem;
	padding-left: 1.5rem;
}

.navChildren>a,
.navChildren>a span {
	color: var(--lehleBlack);
	text-decoration: none;
}

.navChildren>span:hover,
.navChildren>a span:hover {
	text-decoration: underline !important;
}

/* ------------------------------------------------------------------
NAVIGATION V2
------------------------------------------------------------------ */

.hidden {
	display: none;
}

.nav2-item {
	/*color: black;*/
	/*font-size: 1.0rem;*/
    user-select: none;
}

.nav2-item a {
	color: black;
	text-decoration: none!important;
}

.nav2-top {
	/*color: blue;*/
	/*font-size: 1.2rem;*/
}

.nav2-middle {
	padding-left: 1.5rem;
	/*font-size: 1.2rem;*/
}

.nav2-entry {
	/*font-size: 1.2rem;*/
}

.nav-level-0 {
    font-size: 1.2rem;
}

.nav-level-1 {
    /*padding-left: 1.5rem;*/
    font-size: 1.0rem;
}

.nav-level-2 {
    font-size: 1.0rem;
}

/*
.nav2-entry:hover {
	text-decoration: underline;
}
*/

.nav2-leaf {
	padding-left: 1.5rem;
}

nav.disabled,
nav.disabled a,
nav.disabled a:hover,
nav.disabled .nav2-item {
	color: #aaa;
	text-decoration: none;
	cursor: default;
}

/* CONTACT remains always enabled */

/*
.nav2-force-enabled {
    color: black!important;
    cursor: pointer!important;
}
*/
/*
.nav2-force-enabled a:hover {
    text-decoration: underline!important;
}
*/

nav .nav2-item-5.nav2-force-enabled,
nav .nav2-item-18.nav2-force-enabled *,
nav .nav2-item-19.nav2-force-enabled * {
    color: black!important;
    cursor: pointer!important;
}
nav .nav2-item-5.nav2-force-enabled a:hover,
nav .nav2-item-18.nav2-force-enabled a:hover,
nav .nav2-item-19.nav2-force-enabled a:hover {
    text-decoration: underline!important;
}

/*
nav .nav2-item-5,
nav .nav2-item-18 *,
nav .nav2-item-19 * {
    color: black!important;
    cursor: pointer!important;
}
nav .nav2-item-5 a:hover,
nav .nav2-item-18 a:hover,
nav .nav2-item-19 a:hover {
    text-decoration: underline!important;
}
*/

/* ------------------------------------------------------------------
MAIN CONTENT
------------------------------------------------------------------ */

#mainContent > div {
	width: 100%;
}

#mainContent > div.topic {
	display: none;
}

#mainContent > div.show {
	display: block;
}

#mainContent > div h2 {
	line-height: 2;
	font-size: 1.2rem;
	text-align: left;
	text-transform: uppercase;
	margin-bottom: 2rem;
}

/* default content block */
#defaultContent {
	display: block;
	/*text-align: center;*/
}

#defaultContent img {
	width: 60%;
	/*margin-top: 6rem;*/
}

/* other main content blocks */
/* '#mainContent > div > div' is the selector to style elements within #mainContent) */
#mainContent > div > div {
	position: relative;
	/*margin-bottom: 4rem;*/
}

#mainContent > div > div p {
	margin-bottom: 1rem;
}

#mainContent > div > div span {
	margin-left: 0.5rem;
}

#mainContent > div > div button,
#mainContent>div button {
	background-color: var(--lehleBlack);
	border: 1px solid var(--lehleBlack);
	color: var(--lehleWhite);
	padding: 0.2rem 0.8rem;
	transition: all 0.3s;
}

#mainContent > div > div button:hover {
	background-color: var(--lehleWhite);
	color: var(--lehleBlack);
}


#mainContent > div > div button:disabled,
#mainContent>div button:disabled {
	background-color: var(--lehleGray);
	border: 1px solid var(--lehleGray);
	color: var(--lehleWhite);
	padding: 0.2rem 0.8rem;
	transition: all 0.3s;
}

/*
#mainContent > div > div button.borderless:disabled,
#mainContent>div button.borderless:disabled {
	color: var(--lehleWhite);
	transition: all 0.3s;
}
*/

#mainContent > div > div button:disabled:hover {
	background-color: var(--lehleGray);
	color: var(--lehleWhite);
}

#mainContent > div > div .mainContentDropdown {
	margin: 0;
	padding: 0;
	position: relative;
}

#mainContent > div > div .dropdown-toggle,
#mainContent > div > div button.dropdown-toggle {
	color: var(--lehleBlack);
	border: none;
	margin-bottom: 0;
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
	background-color: transparent;
}

#mainContent > div > div button.dropdown-toggle:disabled {
    color: #aaaaaa; /* TODO: define color for disabled dropdowns */
    opacity: 1;
}

#mainContent > div > div .dropdown-toggle:hover {
	color: var(--lehleBlack);
	background-color: transparent;
	border: none;
	text-decoration: underline;
}

#mainContent > div > div .dropdown-menu {
	min-width: 0;
	margin-top: -0.2rem !important;
	border-radius: 0;
	border: 1px solid var(--lehleBlack);
}

#mainContent > div > div .dropdown-menu li {
	position: relative;
	cursor: pointer;
	line-height: 2;
	padding-left: 1rem;
	padding-right: 1rem;
}

#mainContent > div > div .dropdown-menu li:hover::before {
	content: '';
	position: absolute;
	display: block;
	top: 0.7em;
	left: 0;
	width: 0;
	height: 0;
	border-left: 0.35em solid var(--lehleBlack);
	border-top: 0.35em solid transparent;
	border-right: 0;
	border-bottom: 0.35em solid transparent;
}

/* following styles are not required when using basic solution for 'input[type="file"]' */
#mainContent > div > div .inputFile {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

#mainContent > div > div .inputFileLabel {
	background-color: var(--lehleBlack);
	border: 1px solid var(--lehleBlack);
	color: var(--lehleWhite);
	padding: 0.2rem 0.8rem;
	transition: all 0.3s;
	/*margin-left: 2rem;*/
	cursor: pointer;
}

#mainContent > div > div .inputFileLabel:hover {
	background-color: var(--lehleWhite);
	color: var(--lehleBlack);
}


#mainContent > div > div .inputFileLabel.disabled {
	background-color: var(--lehleGray);
    border: 1px solid var(--lehleGray);
	color: var(--lehleWhite);
}


#productsList > div {
	margin-bottom: 1rem;
}

#productsList p {
	/* product description */
}

/* ------------------------------------------------------------------
FEATURE MIDI MONITOR
------------------------------------------------------------------ */

/* TODO: remove .midi_monitor classes */

/*
.mon-table,
.midi_monitor table {
	width: 100%;
	border-collapse: collapse;
	font-family: monospace;
}

.mon-table th, .mon-table td,
.midi_monitor th, .midi_monitor td {
	padding: 4px 8px;
	border: 1px solid #ccc;
	text-align: left;
}

.mon-table .mon-time,
.midi_monitor .mon-time {
	width: 150px;
}

.mon-table .mon-source,
.midi_monitor .mon-source {
	width: 100px;
}
*/

/*
.mon-table .mon-dec, .mon-table .mon-hex,
.midi_monitor .mon-dec, .midi_monitor .mon-hex {
	width: 150px;
}
*/

/*
.mon-table tr:nth-child(even),
.midi_monitor tr:nth-child(even) {
	background-color: #f5f5f5;
}

.mon-table.mon-small {
	font-size: 0.85rem;
}

.mon-table .mon-narrow {
    width: 150px;
}

.mon-table .mon-xxs {
    width: 100px;
}
*/

/* ------------------------------------------------------------------
FEATURE DEV ALL
------------------------------------------------------------------ */

/*
.dev_all table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
}

.dev_all th,
.dev_all td {
	padding: 8px;
	text-align: left;
	border: 1px solid #ddd;
}

.dev_all th {
	background-color: #f2f2f2;
	font-weight: bold;
}

.dev_all tr:nth-child(even) {
	background-color: #f9f9f9;
}

.dev_all tr:hover {
	background-color: #f5f5f5;
}
*/

/* ------------------------------------------------------------------

------------------------------------------------------------------ */

.lehle-border {
	border: 1px solid var(--lehleBlack);
}

.lehle-border:disabled,
.lehle-border.disabled {
	border: 1px solid var(--lehleGray);
}

.lehle-no-border {
	border: 1px solid var(--lehleWhite);
}

.lehle-no-border:disabled,
.lehle-no-border.disabled {
	border: 1px solid var(--lehleWhite);
	background-color: var(--lehleWhite);
}

.lehle-bottom-border {
	border: 1px solid var(--lehleWhite);
	border-bottom: 1px solid var(--lehleGray);
	background-color: var(--lehleWhite);
}

.lehle-bottom-border:disabled,
.lehle-bottom-border.disabled {
	border: 1px solid var(--lehleWhite);
	border-bottom: 1px solid var(--lehleGray);
	background-color: var(--lehleWhite);
}

.radius-0 {
	border-radius: 0;
}

.no-outline {
	outline: none;
}

select {
    padding: 0.2rem 0.8rem;
    border-radius: 0;
}

select:disabled {
    color: #aaaaaa; /* TODO: define color for select lists */
}

/*
input,
input:focus,
input:active,
input:hover,
input:visited,
input:link,
input:disabled,
input:checked,
input:not([type="checkbox"]):not([type="radio"]) {
	border: 1px solid var(--lehleBlack);
	border-radius: 0;
	outline: none;
	!*outline-color: transparent; !* for high contrast modes *!*!
}
*/

input:not([type="checkbox"]):not([type="radio"]):focus {
	/* Smooth outline with box-shadow: */
	/*box-shadow: 0 0 3pt 2pt cornflowerblue;*/
	/* Hard "outline" with box-shadow: */
	/*box-shadow: 0 0 0 2pt red;*/
}

/*
input {
	border-radius: 0;
}
*/

/* ------------------------------------------------------------------
UTILITIES
------------------------------------------------------------------ */

.mt05 {
	margin-top: 0.5rem;
}

.mb05 {
	margin-bottom: 0.5rem;
}

.ml-2 {
	margin-left: 0.5rem;
}

.ml-4 {
	margin-left: 1rem;
}

.mr-2 {
	margin-right: 0.5rem;
}

.large {
    font-size: large;
}

.default-case {
    text-transform: none!important;
}

.absolute {
	position: absolute;
}

.relative {
	position: relative;
}

.italic {
	font-style: italic;
}

.align-left {
	text-align: left;
}

.pointer {
    cursor: pointer;
}

/* ------------------------------------------------------------------

------------------------------------------------------------------ */

.warning {
	/*border: 2px solid red;*/
	/*padding: 10px;*/
	color: red;
}

.dimmed {
    opacity: 0.5;
}

/* ------------------------------------------------------------------
FIRMWARE UPDATE
------------------------------------------------------------------ */

.step-number {
    font-size: large;
    margin: 0 !important;
    padding: 0 !important;
}

#fwUpdateProgressInfo1 > div,
#fwUpdateProgressInfo2 > div,
#fwResetProgressInfo1 > div,
#fwResetProgressInfo2 > div {
	margin-bottom: 0.5rem;
}

/* ------------------------------------------------------------------
PROGRESS BAR
------------------------------------------------------------------ */

.v-progress-bar {
    position: relative;
    display: flex;
    height: 24px;
    border: 1px solid var(--lehleBlack);
    /*border-radius: 8px;*/
    /*font-size: 50px;*/
    /*font-family: Courier, monospace;*/
    overflow: hidden;
}

.v-progress-bar .back {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    background: var(--lehleBlack);
    color: var(--lehleWhite);
}

.v-progress-bar .front {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: var(--lehleWhite);
    color: var(--lehleBlack);
    /*clip-path: inset(0 0 0 50%);*/
    /*-webkit-clip-path: inset(0 0 0 50%);*/
    /*transition: clip-path 1s linear;*/
}


/*
#spinning-indicator {
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  display: none; !* Initially hidden *!
  animation: rotate-bar 1s linear infinite;
  transform-origin: center;
  display: inline-block;
}

@keyframes rotate-bar {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(90deg); }
  50% { transform: rotate(180deg); }
  75% { transform: rotate(270deg); }
  100% { transform: rotate(360deg); }
}
*/


/* ------------------------------------------------------------------
TESTS
------------------------------------------------------------------ */

.default-button {
	border-radius: 3px!important;
	font-family: monospace!important;
	font-size: 0.85rem!important;
	background-color: #f0f0f0!important;
	border: 1px solid #333!important;
	color: black!important;
	text-decoration: none!important;
	text-align: left!important;
	/*padding: 2px 0 2px 0.5rem!important;*/
	padding: 2px 4px!important;
}
.default-button:hover {
	background-color: #ddd!important;
}

#btTestReadAll,
.btTestV2 {
	margin: 0;
	padding-bottom: 0!important;
}

button.btTestV2.disabled {
    color: #aaa!important;
    border-color: #aaa!important;
}

.testButtonsV1,
.testButtonsV2 {
	/*display: flex;*/
    display: grid;
    grid-template-columns: auto auto auto;
	/*flex-direction: column;*/
	/*max-width: 67%;*/
    grid-gap: 5px;
    justify-content: start;
    align-items: start;
    justify-items: start;

	margin-bottom: 1rem;
}

.testButtonsV2 > div > span {
	margin-right: 0.5rem;
}

.result_data {
	flex-grow: 2;
	margin-left: 2rem;
	font-family: monospace;
    font-size: smaller;
}


/* ------------------------------------------------------------------
FEATURES
------------------------------------------------------------------ */

/*
.feat-range-selector {
    position: relative;
    width: 604px;
    height: 24px;   !* 20 + border *!
    background-color: lightgray;
    border: 2px solid black;
    margin: 50px;
}
*/

/*
.feat-marker {
    position: absolute;
    width: 6px;
    height: 28px;
    background-color: rgba(0, 0, 0, 0.50);
    top: -4px;
    border-radius: 3px;
}
*/

/*
.feat-marker-pedal {
	position: absolute;
	width: 6px;
	height: 20px;
	!*background-color: black;*!
	background-color: rgba(0, 0, 255, 0.70);
	top: 0px;
	border-radius: 3px;
	!* DEBUG : *!
	!*opacity: 0.5;*!
}
*/

/*
.feat-movable-marker-old {
	position: absolute;
	width: 16px; !* Bigger than normal markers *!
	margin-left: -8px; !* Shift left by half width to center *!
	height: 40px;
	background-color: rgba(255, 0, 0, 0.50);
	top: -10px; !* Centers the marker *!
	cursor: grab;
	!*opacity: 50%;*!
	border-radius: 4px;
}
*/

/*
.feat-movable-marker-old-line {
	position: relative;
	width: 2px; !* Bigger than normal markers *!
	!*margin-left: -8px; !* Shift left by half width to center *!*!
	height: 40px;
	background-color: #555;
	top: 0; !* Centers the marker *!
	left: 7px;
	!*cursor: grab;*!
	!*opacity: 50%;*!
}
*/


/*
.feat-movable-marker-line {
	position: relative;
	width: 2px;
	height: 40px;
	background-color: #555;
	top: 0; !* Centers the marker *!
}
*/

/*
.feat-marker-old-label {
	position: relative;
	left: -21px;
	top: -50px;
	color: black;
	text-align: center;
	width: 50px;
	padding: 2px 0;
}
*/

/*
.feat-movable-marker-label {
    position: relative;
    left: -17px;    !* -50/2 + 16/2 (#movable-marker width) *!
    bottom: -5px;
    font-size: 14px;
    font-family: Arial, sans-serif;
    color: black;
    text-align: center;
    width: 50px; !* Ensures proper centering *!
    background-color: #ddd;
    padding: 2px 0;
}
*/

.feat-range-selector {
	position: relative;
	width: 600px;   /* sync with the constant RANGE_SEL_TOTAL_WIDTH */
	height: 24px;   /* 20 + border */
	border: 1px solid black;    /* sync with the constant RANGE_SEL_BORDER_WIDTH */
    cursor: pointer;
}

.feat-marker {
	position: absolute;
	width: 2px;
	height: 18px;
	background-color: #999999;
	top: 2px;
}

.feat-marker-highlight {
    position: absolute;
    width: 2px;
    height: 18px;
    background-color: blue;
    top: 2px;
}

.feat-movable-marker {
	position: absolute;
	width: 4px;
	height: 40px;
	background-color: rgba(0, 0, 0, 0.60);
	top: -1px!important;    /* prevent some displacement by the draggable code (hack) */
	cursor: grab;
}

.feat-movable-marker-light {
	position: absolute;
	width: 6px;
	height: 40px;
	background-color: rgba(0, 0, 0, 0.20);
	top: -1px!important;    /* prevent some displacement by the draggable code (hack) */
	cursor: grab;
}

.feat-marker-label {
	position: relative;
	top: -50px;
	color: black;
	width: 50px;
	padding: 2px 0;
}

.feat-movable-marker-label {
	position: relative;
	left: -23px;
	bottom: -35px;
	text-align: center;
	width: 50px;
	background-color: #000;
	color: #fff;
	padding: 2px 0 4px 0;
	cursor: grab;
}

.feat-position-display {
	margin-top: 10px;
}

.feat-calibration-indicator {
	position: relative;
	width: 600px;   /* sync with the constant RANGE_SEL_TOTAL_WIDTH */
	height: 24px;   /* 20 + border */
	border: 1px solid black;
}

.feat-calibration-indicator.cal-disabled {
	background-color: #f8f8f8;
	border-color: #ccc;
}

.feat-pedal-indicator,
.feat-calibration-pedal-indicator {      /* similar to .marker-pedal */
	position: absolute;
	width: 8px;     /* sync with CAL_PEDAL_INDICATOR_WIDTH */
	height: 22px;
	background-color: rgb(100 100 80 / 70%);
	top: 0;
	border: 1px solid #000;
	border-radius: 4px;
	z-index: 100;
}

/*
.feat-cal-disabled .calibration-pedal-indicator {
	display:none;
}
*/

/*
.feat-calibration-target {
	position: absolute;
	width: 8px;
	height: 22px;
	top: 0;
	background-color: #cccccc;
	border: 1px solid #999;
	border-radius: 4px;
}
*/

/*
.feat-cal-disabled {
	color: #aaa;
}
*/


/* ------------------------------------------------------------------
ICONS
------------------------------------------------------------------ */

.icon-20 {
	width: 20px;
	height: 20px;
	fill: #00ff00;
	/*margin: 10px;*/
}

.icon-light-grey {
	fill: #e0e0e0;
}

.icon-black {
	fill: #000000;
}

/* ------------------------------------------------------------------
MODAL POPUP
------------------------------------------------------------------ */

.modal-popup {
	width:100%;
	height:100%;
	display:none;
	position:fixed;
	top:0;
	left:0;
	background:rgba(0,0,0,0.75);
}

/* Inner */
.modal-popup-inner {
	max-width:700px;
	width:90%;
	padding:40px;
	position:absolute;
	top:50%;
	left:50%;
	-webkit-transform:translate(-50%, -50%);
	transform:translate(-50%, -50%);
	box-shadow:0px 2px 6px rgba(0,0,0,1);
	background:#fff;
}

.modal-popup-close {
	text-align: right;
}

/* ------------------------------------------------------------------
STATUS PANEL
------------------------------------------------------------------ */

#status-panel {
	position: fixed;
	bottom: 48px;
	left: 0;
	padding: 5px 10px;
	overflow-y: auto;
	z-index: 999;
	color: #555;
}

/* ------------------------------------------------------------------
ERROR PANEL
------------------------------------------------------------------ */

#error-panel {
	position: fixed;
	bottom: 0;
	left: 0px;
	right: 0px;
	padding: 10px 20px;
	overflow-y: auto;
	z-index: 1000;
	background-color: #ffa990;
	color: #000;
}

#error-panel p {
	margin: 0.5rem;
}

#error-panel p:last-child {
	margin: 0
}

/* ------------------------------------------------------------------
DEBUG PANEL
------------------------------------------------------------------ */

body {
    position: relative;
}

#debug-panel {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 10px;
    /*display: none;*/
    max-height: 400px;
    /*overflow-y: auto;*/
    z-index: 999; /* Ensure it's above other content but below the footer */
    background-color:#eee;
    color: #000;
    border-top:1px solid #555;
}

:root[data-theme='dark'] #debug-panel {
    /*background-color: #555;*/
}

#debug-panel .code {
    font-family: monospace;
    font-size: 0.85rem;
}

#dbg-state {
    max-height: 300px;
    overflow-y: scroll;
}

#dbg-midi {
    /*max-height: calc(400px - 140px);*/
    /*position: relative;*/
    height: 300px;
    overflow-y: scroll;
}

/* ------------------------------------------------------------------
UTILITIES
------------------------------------------------------------------ */

.flex {
	display: flex;
}

.flex-grow-1 {
    flex-grow: 1;
}

.gap-4 {
	gap: 1rem;
}

.space-between {
	justify-content: space-between;
}

.whitespace-pre {
    white-space: pre;
}

.red {
    color: red;
}

.green {
    color: green;
}

.blue {
    color: blue;
}

.lehle-gray {
    color: var(--lehleGray);
}

.gray {
    color: #555555;
}

.bg-send,
.bg-green {
	background-color: #9eff9e;
}

.bg-yellow {
	background-color: yellow;
}

.bg-gray {
	background-color: #ddd;
}

.bg-disconnected {
	background-color: #ffc873;
}

.bold {
	font-weight: bold;
}

.m0 {
    margin: 0!important;
}

.border-b {
	border-bottom: 1px solid #aaa;
}
.font-mono {
	font-family: monospace;
}

/* ------------------------------------------------------------------
SUPPORT INFO
------------------------------------------------------------------ */

/*.support-info {*/
/*    margin-top: 20px;*/
/*}*/

.support-info h3 {
    margin-top: 1rem;
}

.support-info h2 {
    margin-top: 1rem!important;
    margin-bottom: 0!important;
}

#si-context pre,
#si-midi-devices pre,
#si-lehle-devices pre {
    line-height: 1.75;
}

.support-info > div > div {
    margin-top: 0.25rem;
    font-family: var(--bs-font-monospace), monospace;
    font-size: .875em;
    white-space: nowrap;
}
/*
.support-info #support-info-text > div,
.support-info .midi-port,
.support-info #devices-info > div {
    margin-top: 10px;
    font-family: var(--bs-font-monospace), monospace;
    font-size: .875em;
    white-space: nowrap;
}
*/

.support-info #si-app-log {
    /*font-family: var(--bs-font-monospace), monospace;*/
    /*font-size: .875em;*/
    /*white-space: nowrap;*/
    /*margin-top: 10px;*/
}

/* ------------------------------------------------------------------
THEME
------------------------------------------------------------------ */

div#themeSelector {
    position: fixed;
    right: 0;
    /*top: 0;*/
    display: flex;
    padding: 4px 10px;
    color: var(--themeMenu);
    font-size: small;
}
div#themeSelector > div:hover {
    cursor: pointer;
}
#selectThemeLight {
    margin-left: 8px;
}

#build_info {
    margin-right: 16px;
    cursor: default;
    /*font-size: x-small;*/
}

/* ------------------------------------------------------------------
MEDIA QUERIES
------------------------------------------------------------------ */

/* MD screens */
@media (max-width: 767.98px) {

	/* header: logo */
	#lehleLogo img {
		max-width: 150px;
	}

	/* header: callNav button */
	#callNav {
		display: block;
	}

	/* main: navigation */
	main nav {
		z-index: 10;
		position: absolute;
		display: none;
		background-color: var(--lehleWhite);
		width: 100%;
	}

	/* main: default main content */
	#defaultContent img {
		width: 80%;
	}

}

