/*
#
# HASviolet INDEX CSS
#
#   REVISION: 20210312-1400
#
*/


/*
 -
 - Index Module CSS   20201224-2300 
 - 
*/

/* ------- grid container ------- */

.grid-container {
  display: grid;
  width: 948px;
  grid-template-areas:
  'tuner-container rx-container'
  'radio-controls-container rx-container'
  'cmd-controls-container rx-container'
  'msg-controls-container tx-container';
  grid-gap: 16px;
  background-color: black;
  border-radius: 12px;
  padding: 16px;
}

.tuner-container {
  grid-area: tuner-container;
  width: 256px;
  grid-gap: 16px;
  background-color: black;
  border-radius: 12px;
  padding: 8px;
}

.radio-controls-container {
  grid-area: radio-controls-container;
  width: 256px;
  grid-gap: 8px;
  background-color: black;
  border-radius: 12px;
  padding: 8px;
}

.cmd-controls-container {
  grid-area: cmd-controls-container;
  width: 256px;
  grid-gap: 8px;
  background-color: black;
  border-radius: 12px;
  padding: 8px;
}

.msg-controls-container {
  grid-area: msg-controls-container;
  width: 256px;
  grid-gap: 8px;
  background-color: black;
  border-radius: 12px;
  padding: 8px;
}

.rx-container {
  grid-area: rx-container;
  width: 692px;
  grid-template-columns: auto;
  grid-gap: 16px;
  background-color: black;
  border-radius: 12px;
  padding: 16px;
}

.tx-container {
  grid-area: tx-container;
  width: 692px;
  grid-template-columns: auto;
  grid-gap: 16px;
  background-color: black;
  border-radius: 12px;
  padding: 16px;
}


/*
 -
 - Tuner Container CSS   20210213-2100 
 -
*/

.tuner-main {
	display: block;
	/* width: 480px; */ /* only needed in Chrome extension */
	padding: 16px 10px 18px;
	font: bold 15px/28px Arial, Helvetica, sans-serif;
	border-radius: 12px;
	box-shadow:
		inset  0px -38px 5px rgba(  0,   0,   0, 0.8),
		inset  0px   6px 4px rgba(255, 255, 255, 0.25),
		inset  0px   2px 1px rgba(255, 255, 255, 0.25),
		inset  3px   0px 3px rgba(255, 255, 255, 0.25),
		inset -4px   0px 4px rgba(  0,   0,   0, 0.75);
	background: #141414; /* Old browsers */
	background: -moz-linear-gradient(top,  #141414 45%, #282828 80%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(45%,#141414), color-stop(80%,#282828)); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top,  #141414 45%,#282828 80%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top,  #141414 45%,#282828 80%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top,  #141414 45%,#282828 80%); /* IE10+ */
	background: linear-gradient(to bottom,  #141414 45%,#282828 80%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#141414', endColorstr='#282828',GradientType=0 ); /* IE6-9 */
}

/* --------- display --------- */

.tuner-display {
	position: relative;
	height: 60px;
	margin: 0 5px 6px 5px;
	padding: 0 8px;
	border-radius: 5px
	box-shadow:
		inset 0 30px 1px rgba(255, 255, 255, 0.25),
		inset 0 -1px 2px rgba(255, 255, 255, 0.5),
		inset 0  2px 3px rgba(  0,   0,   0, 0.40);
	font-size: 32px;
	line-height: 48px;
	text-align: right;
	white-space: nowrap;
	color: #333;
	cursor: default;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.01); /* for nicer/smoother rendering */
	background: #edefe0; /* Old browsers */
	background: -moz-linear-gradient(top,  #edefe0 45%, #babea2 80%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(45%,#edefe0), color-stop(80%,#babea2)); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top,  #edefe0 45%,#babea2 80%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top,  #edefe0 45%,#babea2 80%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top,  #edefe0 45%,#babea2 80%); /* IE10+ */
	background: linear-gradient(to bottom,  #edefe0 45%,#babea2 80%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#edefe0', endColorstr='#babea2',GradientType=0 ); /* IE6-9 */
}

.subdisplay-spreadfactor {
	position: absolute ;
	bottom: 2px;
	font-size: 14px;
	line-height: 14px;
	left: 8px;
}

.subdisplay-codingrate4 {
	position: absolute;
	bottom: 2px;
	font-size: 14px;
	line-height: 14px;
	left: 56px;
}

.subdisplay-bandwidth {
	position: absolute;
	bottom: 2px;
	font-size: 14px;
	line-height: 14px;
	left: 100px;
}

.subdisplay-channelname {
	position: absolute;
	bottom: 2px;
	font-size: 14px;
	line-height: 14px;
	right: 8px;
}

/* -------- keypad -------- */

.tuner-dash {
	position: relative;
	float: left;
	width: 240px;
}

.tuner-main textarea {
	position: absolute;
	width: 1px;
	height: 1px;
	left: 4px;
	top: 4px;
	border: 0;
	background-color: transparent;
}

.tuner-dash > div {
	margin: 5px 4px;
	position: relative;
	width: 70px;
	height: 42px;
	background-color: #4c5356;
	border: 1px solid black;
	box-shadow: 0 1px rgba(255, 255, 255, 0.1);
	border-radius: 6px;
	overflow: hidden;
	float: left;
	cursor: default;
}
.tuner-dash > div > div {
	position: absolute;
	top: -0px;
	right: 0px;
	height: 28px;
	left: 0px;
	width: 100%;
	border: 1px solid #000;
	border-radius: 6px;
	color: #eee;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
	text-align: center;
	background: #656e72;
	
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
	border-bottom-left-radius: 26px 6px;
	border-bottom-right-radius: 26px 6px;
	box-shadow:
		inset 0 -15px 1px rgba(  0,   0,   0, 0.25),
		inset 0   1px 1px rgba(255, 255, 255, 0.4),
		inset 0   6px 6px rgba(255, 255, 255, 0.25);
	border: none;
}
.tuner-dash > div > div:hover {
	text-shadow:
		0px  0px  8px  rgb(255, 230, 186),
		0px  0px 22px  rgb(255, 255, 255),
		0px -1px  0px rgba(  0,   0,   0, 0.5);
}
.tuner-blank {
	border-color: transparent;
	background: none;
	background-image: none;
	box-shadow: none;
	clear: right;
}

.tuner-dash .btnBLACK > div {
	background-color: #000;
	box-shadow:
		inset 0 -13px 1px rgba(50,   50,  50, 0.5),
		inset 0   1px 1px rgba(255, 255, 255, 0.25),
		inset 0   8px 6px rgba(255, 255, 255, 0.2);
}
.tuner-dash .btnBLACK {
	background-color: #181818;
}
.tuner-dash > div:active,
.tuner-dash .tuner-press {
	box-shadow:
		inset 0 -9px 6px rgba(255, 255, 255, 0.35),
			  0  1px     rgba(255, 255, 255, 0.15);
}
.tuner-dash > div:active > div,
.tuner-dash .tuner-press > div {
	background: none;
	box-shadow:
		inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
.tuner-dash .tuner-active {
	box-shadow:
		 1px  1px     rgb(220, 220, 240),
		-1px -1px     rgb(220, 220, 240),
		 1px -1px     rgb(220, 220, 240),
		-1px  1px     rgb(220, 220, 240),
		 2px  2px 2px rgb(220, 220, 240),
		-2px -2px 2px rgb(220, 220, 240),
		 2px -2px 2px rgb(220, 220, 240),
		-2px  2px 2px rgb(220, 220, 240);
	border-color: #333;
}


/*
 -
 - Buttons CSS   20201224-2300 
 - -- Used by radio-controls-container, cmd-controls-container, and msg-controls-container
 -
*/

.keypad-btn-exec {
  height: 68px;
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: #ea6811;
}

.keypad-btn-blank {
  border-color: transparent;
  background: none;
  background-image: none;
  box-shadow: none;
  clear: right;
}
.keypad-btn-brown > div {
  background-color: #635045;
}

.keypad-btn-black {
  background-color: #000;
  box-shadow: inset 0 -13px 1px rgba(50, 50, 50, 0.5),
    inset 0 1px 1px rgba(255, 255, 255, 0.25),
    inset 0 8px 6px rgba(255, 255, 255, 0.2);
}

.keypad-btn-black {
  background-color: #181818;
}

.keypad-btn-orange {
  width 110px;
  background-color: #ff7113;
  box-shadow: inset 0 -13px 1px rgba(148, 77, 18, 0.2),
    inset 0 7px 6px rgba(255, 255, 255, 0.3),
    inset 0 6px 6px rgba(255, 255, 255, 0.1);
}


/*
 -
 - Controls CSS   20201224-2300 
 - -- Used by radio-controls-container, cmd-controls-container, and msg-controls-container
 - 
*/

.controls-container {
  display: block;
  width: 240px; /* only needed in Chrome extension */
  height: 80px;
  padding: 16px 10px 18px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414; /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%);                                                   /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(45%, #141414), color-stop(80%, #282828));   /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,#141414 45%,#282828 80%);                                                  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,#141414 45%,#282828 80%);                                                       /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%);                                                    /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%);                                                  /* W3C */
}

.controls-container:after {
  content: "";
  display: block;
  clear: both;
}

.radio-controls-container {
  display: block;
  width: 240px; /* only needed in Chrome extension */
  height: 40px;
  padding: 10px 10px 10px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414; /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%);                                                   /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(45%, #141414), color-stop(80%, #282828));   /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,#141414 45%,#282828 80%);                                                  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,#141414 45%,#282828 80%);                                                       /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%);                                                    /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%);                                                  /* W3C */
}

.radio-controls-container:after {
  content: "";
  display: block;
  clear: both;
}

.cmd-controls-container {
  display: block;
  width: 240px; /* only needed in Chrome extension */
  height: 80px;
  padding: 10px 10px 10px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414; /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%);                                                   /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(45%, #141414), color-stop(80%, #282828));   /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,#141414 45%,#282828 80%);                                                  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,#141414 45%,#282828 80%);                                                       /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%);                                                    /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%);                                                  /* W3C */
}
.cmd-controls-container:after {
  content: "";
  display: block;
  clear: both;
}

.msg-controls-container {
  display: block;
  width: 240px; /* only needed in Chrome extension */
  height: 80px;
  padding: 10px 10px 10px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414; /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%);                                                   /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(45%, #141414), color-stop(80%, #282828));   /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,#141414 45%,#282828 80%);                                                  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,#141414 45%,#282828 80%);                                                       /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%);                                                    /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%);                                                  /* W3C */
}

.msg-controls-container:after {
  content: "";
  display: block;
  clear: both;
}

/* -------- controls panel -------- */

.controls-keypad {
  position: relative;
  float: left;
  width: 240px;
}

.controls-keypad > div {
  margin: 5px 4px;
  position: relative;
  width: 50px;
  height: 28px;
  background-color: #4c5356;
  border: 1px solid black;
  box-shadow: 0 1px rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  overflow: hidden;
  float: left;
  cursor: default;
}

.controls-keypad > div > div {
  position: absolute;
  top: 0px;
  right: 0px;
  height: 28px;
  left: 0px;
  width: 100%;
  border: 1px solid #000;
  border-radius: 6px;
  color: #eee;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
  text-align: center;
  background: #656e72;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  border-bottom-left-radius: 26px 6px;
  border-bottom-right-radius: 26px 6px;
  box-shadow: inset 0 -15px 1px rgba(0, 0, 0, 0.25),
    inset 0 1px 1px rgba(255, 255, 255, 0.4),
    inset 0 6px 6px rgba(255, 255, 255, 0.25);
  border: none;
}

.controls-keypad > div > div:hover {
  text-shadow: 0px 0px 8px rgb(255, 230, 186), 0px 0px 22px rgb(255, 255, 255),
    0px -1px 0px rgba(0, 0, 0, 0.5);
}

.controls-keypad .keypad-btn-exec {
  height: 68px;
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: #ea6811;
}

.keypad-btn-blank {
  border-color: transparent;
  background: none;
  background-image: none;
  box-shadow: none;
  clear: right;
}

.controls-keypad .keypad-btn-brown > div {
  background-color: #635045;
}

.controls-keypad .keypad-btn-black > div {
  background-color: #000;
  box-shadow: inset 0 -13px 1px rgba(50, 50, 50, 0.5),
    inset 0 1px 1px rgba(255, 255, 255, 0.25),
    inset 0 8px 6px rgba(255, 255, 255, 0.2);
}

.controls-keypad .keypad-btn-black {
  background-color: #181818;
}

.controls-keypad > div:active,
.controls-keypad {
  box-shadow: inset 0 -9px 6px rgba(255, 255, 255, 0.35),
    0 1px rgba(255, 255, 255, 0.15);
}

.controls-keypad > div:active > div,
.controls-keypad {
  background: none;
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.3);
}

.controls-keypad {
  box-shadow: 1px 1px rgb(220, 220, 240), -1px -1px rgb(220, 220, 240),
    1px -1px rgb(220, 220, 240), -1px 1px rgb(220, 220, 240),
    2px 2px 2px rgb(220, 220, 240), -2px -2px 2px rgb(220, 220, 240),
    2px -2px 2px rgb(220, 220, 240), -2px 2px 2px rgb(220, 220, 240);
  border-color: #333;
}


/*
 -
 - RX Container CSS   20201224-2300 
 - 
*/

.rx-container {
  display: block;
  width: 664px; /* only needed in Chrome extension */
  height: 484px;
  padding: 16px 10px 18px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414; /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%); /* FF3.6+ */
  background: -webkit-gradient(
    linear,
    left top,
    left bottom,
    color-stop(45%, #141414),
    color-stop(80%, #282828)
  ); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(
    top,
    #141414 45%,
    #282828 80%
  ); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(
    top,
    #141414 45%,
    #282828 80%
  ); /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%); /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#141414', endColorstr='#282828',GradientType=0 ); /* IE6-9 */
}

.rx-container:after {
  content: "";
  display: block;
  clear: both;
}

/* -------- term window -------- */

.rx-window {
  background-color: black;
  background-image: radial-gradient(rgba(0, 150, 0, 0.75), black 120%);
  height: 480px;
  width: 660px;
 overflow-y: scroll;
  padding: 2px;
  color: white;
  font: 14px Inconsolata, monospace;
  text-shadow: 0 0 5px #c8c8c8;
  &::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 600px;
    height: 320px;
    background: repeating-linear-gradient(
      0deg,
      rgba(black, 0.15),
      rgba(black, 0.15) 1px,
      transparent 1px,
      transparent 2px
    );
    pointer-events: none;
  }
}

.rx-window-pre {
  margin: 0;
}


/*
 -
 - TX Container CSS   20201224-2300 
 -
*/

.tx-container {
  display: block;
  width: 664px;
  height: 84px;
  padding: 16px 10px 18px;
  font: bold 15px/28px Arial, Helvetica, sans-serif;
  border-radius: 12px;
  box-shadow: inset 0px -38px 5px rgba(0, 0, 0, 0.8),
    inset 0px 6px 4px rgba(255, 255, 255, 0.25),
    inset 0px 2px 1px rgba(255, 255, 255, 0.25),
    inset 3px 0px 3px rgba(255, 255, 255, 0.25),
    inset -4px 0px 4px rgba(0, 0, 0, 0.75);
  background: #141414;                                               /* Old browsers */
  background: -moz-linear-gradient(top, #141414 45%, #282828 80%); /* FF3.6+ */
  background: -webkit-gradient(
    linear,
    left top,
    left bottom,
    color-stop(45%, #141414),
    color-stop(80%, #282828)
  ); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(
    top,
    #141414 45%,
    #282828 80%
  ); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(
    top,
    #141414 45%,
    #282828 80%
  ); /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #141414 45%, #282828 80%);                                                  /* IE10+ */
  background: linear-gradient(to bottom, #141414 45%, #282828 80%);                                                /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#141414', endColorstr='#282828',GradientType=0 ); /* IE6-9 */
}

.rx-container:after {
  content: "";
  display: block;
  clear: both;
}

/* -------- term window -------- */

.tx-window {
  background-color: black;
  background-image: radial-gradient(rgba(0, 150, 0, 0.75), black 120%);
  height: 80px;
  width: 660px;
 overflow-y: scroll;
  padding: 2px;
  color: white;
  font: 14px Inconsolata, monospace;
  text-shadow: 0 0 5px #c8c8c8;
  &::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 600px;
    height: 320px;
    background: repeating-linear-gradient(
      0deg,
      rgba(black, 0.15),
      rgba(black, 0.15) 1px,
      transparent 1px,
      transparent 2px
    );
    pointer-events: none;
  }
}

.tx-window-pre {
  margin: 0;
}
