/* Some primary semantic tags */

body {
  font-family: "LatoWebMedium";
  font-size: 0.9em;
  padding-top: 64px;
  margin: 0;
  background-color: #f4fff4;
}

header {
  font-size: 1.6em;
  font-family: "LatoWebBold";
  color: #29b474;
  background: white;
  border-bottom: 2px solid #29b474;
  height: 48px;
  width: 100%;
  position: fixed;
  top: 0;
  line-height: 2em;
}

header>#logo,
header>#env-label {
  float: left;
}
header>#env-label {
  margin-left: 0.25em;
}

header>#logo img {
  width: 32px;
  height: auto;
  vertical-align: middle;
  margin: auto 0px auto 10px;
}
header>#logo span {
  vertical-align: middle;
}
header>#logo a {
  color: #29b474;
  text-decoration: none;

}
header>#env-label span {
  vertical-align: baseline;
  font-size: 0.4em;
  font-weight: 100;
  line-height: 0.6em;
  color: #ccc;
}
header>#env-label span.production {
  color: red;
}

nav {
  float: right;
  margin-right: 1em;
  width: auto;
}

header>nav select {
  vertical-align: middle;
  border: 1px solid #29b474;
  border-radius: 0.2rem;
  padding: 3px;
  background-color: white;
  cursor: pointer;
  margin-right: 3px;
  width: 100px;
}
header>nav select#view-node {
  width: auto;
  max-width: 200px;
}

h3 {
  text-transform: capitalize;
  color: gray;
}
h4 {
  font-family: mono;
  margin: 1em 0 0 0;
  background-color: #90d7ac;
  line-height: 2em;
  padding-left: 1em;
  color: white;
  font-weight: normal;
}

footer {
  font-size: 0.7em;
  color: gray;
  border-top: 2px solid #29b474;
  margin: 3em 0;
  padding-top: 0.5em;
  text-align: center;
}

/* Define the dropdown and then override per-use */

.dropdown {
  position: relative;
  display: inline-block;
  top: -2px;
}
.dropdown button {
  background-color: white;
  color: #29b474;
  border: none;
  padding: 0;
  border-radius: 10px;
}
.dropdown button span {
  font-size: 26px;
}
.dropdown .dropdown-options {
  display: none;
  position: absolute;
  background-color: #efe;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 2;
  right: 0;
  font-size: 14px;
  line-height: 1;
}
.dropdown .dropdown-options span {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  border-bottom: #ddd 1px solid;
}
.dropdown .dropdown-options a,
.dropdown .dropdown-options div.dropdown-option {
  color: #29b474;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  cursor: pointer;
  font-size: 12px;
  padding: 6px 16px;
  background-color: white;
}

/* Change color of dropdown links on hover */
.dropdown-options a:hover,
.dropdown .dropdown-options div.dropdown-option:hover {
  background-color: #ddd;
}

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-options {
  display: block;
}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover button {
  background-color: #ddd;
}

nav span.material-icons-outlined {
  vertical-align: middle;
  margin: 3px;
}
nav span.material-icons-outlined:hover {
  cursor: pointer;
}
nav span#view-refresh {
  color: #ccc;
}
nav span#view-refresh.enabled {
  color: #29b474;
}

nav span#control-reload:hover {
  color: lavender;
}
nav span#control-pause:hover {
  color: purple;
}
nav span#control-kill:hover {
  color: darkred;
}

/* Flash message box, from Flask */

@keyframes fadeInOut {
  0% {
    opacity: 0;
  }
  16% {
    opacity: 1;
  }
  84% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.flash {
  background-color: pink;
  text-align: center;
  font-weight: bold;
  padding: 1em;
  z-index: 1;
  position: fixed;
  width: 100%;
  top: 50px;
  opacity: 0;
  -webkit-animation: fadeInOut 10s;
  animation: fadeInOut 10s;
}

/* Login form views */

form#login-form {
  max-width: 300px;
  margin: 60px auto;
  border: #90d7ac 1px solid;
  padding: 20px;
}
form#login-form input {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 10px;
  margin-top: 5px;
  border: #29b474 1px solid;
  line-height: 1.5em;
  font-size: 1.2em;
  padding: 5px;
}
form#login-form label {
  color: #29b474;
}
form#login-form input[type=submit] {
  margin-top: 15px;
  background-color: #29b474;
  color: white;
  font-size: 1.2em;
  font-weight: bold;
  line-height: 2em;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}
form#login-form input[type=submit]:hover {
  box-shadow: 0px 5px 10px 0px #ccc;
}

/* General table styling */

table {
  font-family: mono;
  font-size: 0.8em;
  width: 100%;
  border: 1px solid #90d7ac;
  padding: 1em;
}
thead {
  text-align: left;
  height: 2em;
}
th {
  width: auto;
  color: gray;
  background: #e1ece5;
  padding: 0 5px;
}
tbody {
  line-height: 2em;
}
tbody tr:hover {
  background-color: lightyellow;
}
td {
  border: white solid 1px;
  padding-right: 6px;
}
td.editable,
td.selector {
  cursor: pointer;
}
td.editable[disabled] {
  cursor: not-allowed;
}
td.editable > input {
  width: 100%;
  border: 0px solid white;
  font-family: mono;
  font-size: 1em;
  line-height: 2em;
  background-color: inherit;
}
td.editable > div {
  width: 100%;
  margin: 0;
  background-color: inherit;
  line-height: 2em;
  overflow: hidden;
  text-overflow: ellipsis;
}
td.editable:hover,
td.selector:hover {
  background: #e1ece5;
  border: aqua solid 1px;
}
td.edited,
td.edited:hover,
input.edited {
  background-color: lightpink !important;
}
td.changed {
  background-color: lightyellow;
}

/* Empty panel may have a border */

div.panel.bordered {
  border: 2px solid #29b474;
  background-color: white;
}
div.panel.bordered.empty {
  padding: 1em;
  text-align: center;
}

/* Wurk type sections, like scheduled or supervised */

section {
  margin-bottom: 2em;
}

section > div {
  margin: auto 2em;
  background-color: white;
}

section.report > div.panel > div {
  margin: 0;
}
section.report table {
  border: 2px solid #29b474;
}
section.report > div.panel-header span.header {
  color: white;
  font-size: 1.2em;
  line-height: 1.8em;
}
section.report > div.panel-header span#report-slug {
  color: #bdf0c9;
}
section.report > div.panel-header > nav {
  vertical-align: middle;
}
section.report > div.panel-header > nav > div {
  background: #29b474;
  margin: 3px 0 auto 1em;
}
section.report nav > div#daterange {
  line-height: 1.8em;
  float: left;
}
section.report nav > div#daterange input {
  border: 0;
  width: 8em;
  background-color: #bdf0c9;
}
section.report nav > div#daterange input:hover {
  background-color: white;
}
section.report > div.panel-header > nav > span.material-icons-outlined {
  color: #bdf0c9;
  font-size: 1.2em;
  line-height: 1.5em;
  margin-left: 0.5em;
}
section.report > div.panel-header > nav > span.material-icons-outlined:hover {
  color: white;
}
section.report table td span.material-icons-outlined {
  font-size: 1em;
  color: gray;
}
section.report table td span.material-icons-outlined:hover {
  color: #29b474;
  cursor: pointer;
}
section.report table span.status.ERROR {
  color: red;
}
section.report table span.status.COMPLETED {
  color: green;
}
section.report table span.status.info {
  cursor: pointer;
}

section.hive > div.panel-header,
section.report > div.panel-header {
  background-color: #29b474;
  margin-top: 1em;
}
section.hive > div.panel-header span {
  color: white;
  font-size: 1.2em;
  line-height: 1.8em;
}
section.hive > div.panel-header > span,
section.report > div.panel-header > span {
  font-family: mono;
  font-weight: bolder;
  margin-left: 1em;
}
section.hive > div.panel-header > nav > span.material-icons-outlined {
  color: #4bd696;
}

section.hive > div.panel {
  background: lightyellow;
  padding: 1em 0 0 0;
  border: 2px solid #29b474;
}
section.hive > div.panel p {
  text-align: center;
  font-weight: bold;
  margin: 1em auto 2em auto;
}
section.hive div.panel div {
  background: white;
  margin: 0 2em 2em 2em;
}

span.hive-cron-action-kill {
  float: right;
  font-size: 1.3em;
  line-height: 1.5em;
  margin-right: 0.5em;
  color: #29b474;
  cursor: pointer;
}
span.hive-cron-action-kill:hover {
  color: darkred;
}

section.hive table td.hive-bee-action ul,
section.bees table td.cron-bee-action ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
section.hive table td.hive-bee-action ul li,
section.bees table td.cron-bee-action ul li {
  float: right;
  text-align: left;
  margin-right: 2px;
}
section.hive table td.hive-bee-action span,
section.bees table td.cron-bee-action span {
  font-size: 1.4em;
  cursor: pointer;
  vertical-align: middle;
}

section.hive table td.hive-bee-action span.hive-bee-action-kill,
section.bees table td.cron-bee-action span.material-icons-outlined {
  color: gray;
}
section.hive table td.hive-bee-action span.hive-bee-action-kill:hover,
section.bees table td.cron-bee-action span.bee-action-delete:hover {
  color: darkred;
}
section.bees table td.cron-bee-action span.bee-action-ondemand:hover {
  color: #29b474;
}
.hive-bee-action, .cron-bee-action {
  text-align: left;
}

section.bees table td {
  min-width: 1%;
}
section.bees table select {
  width: auto;
  max-width: 150px;
  border: none;
  background-color: white;
  font-family: mono;
  font-size: 1em;
  text-overflow: ellipsis;
  cursor: pointer;
}
section.bees table th.bee-description {
  max-width: 35%;
  min-width: 20%;
}
section.bees table th.bee-name,
section.bees table th.bee-args {
  max-width: 25%;
  min-width: 10%;
}
section.bees table td.bee-name,
section.bees table td.bee-description,
section.bees table td.bee-args {
  max-width: 80px;
  min-width: 10%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Action toggle */

.toggle {
  text-align: center;
}
td.toggle span.material-icons-outlined {
  color: gray;
  font-size: 2em;
  vertical-align: middle;
  cursor: pointer;
}
td.toggle.enabled span.material-icons-outlined {
  color: #29b474;
}
td.toggle[disabled] {
  color: red;
}

/* Modals */

.modal {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

.modal-content {
  background-color: #fefefe;
  margin: 5% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 500px; /* Could be more or less, depending on screen size */
}

.modal-header {
  line-height: 28px;
  font-weight: bold;
  margin-bottom: 5px;
  border-bottom: 1px solid #888;
}
.modal-footer {
  height: 2em;
  line-height: 2em;
  margin-top: 0.5em;
}
.float-right {
  float: right;
}
.modal-footer button {
  background-color: #29b474;
  border: 0px;
  color: white;
  padding: 5px;
  margin-left: 10px;
  border-radius: 3px;
  cursor: pointer;
  font-weight: bolder;
}
.modal-footer button[disabled] {
  background-color: lightgray;
  cursor: wait;
}
.modal-footer button.cancel {
  background-color: darkgray;
  font-weight: normal;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

/* infoJson modal status */

#info-modal .modal-content {
  width: 50%;
  max-width: 800px;
}

/* JSONEditor modal dialog */
#jsoneditor-modal .modal-content {
  width: 500px;
  height: auto;
}
.jsoneditor-menu {
  background-color: #29b474;
  border-bottom: 1px solid #29b474;
}
.jsoneditor {
  border: thin solid #29b474;
}

/* Add a Bee, Command, Cron modal forms */

form.modal-form {
  margin-top: 20px;
}
form.modal-form div.form-row {
  height: 3em;
  line-height: 3em;
}
form.modal-form label {
  width: 20%;
  text-align: left;
  display: block;
  font-size: 0.9em;
  float: left;
}
form.modal-form input[type=text] {
  height: 1.6em;
  width: 75%;
  font-family: mono;
  font-size: 0.9em;
  border: 1px solid #29b474;
  border-radius: 3px;
}
form.modal-form input[type=text].invalid {
  border: 1px solid red;
}
form.modal-form select {
  height: 2em;
  width: 76%;
  font-family: mono;
  font-size: 0.9em;
  margin: 0px;
  border: 1px solid #29b474;
  border-radius: 3px;
  background-color: white;
}
form.modal-form select.invalid {
  border: 1px solid red;
}
form.modal-form input[type=checkbox] {
  width: 1.4em;
}
form input[disabled],
form select[disabled] {
  cursor: not-allowed;
  border: 1px solid #aaa !important;
}

/* Reports using gridjs with no theme, so we add the theming here */
.gridjs-footer {
  background-color: #29b474;
  color: white;
  padding: 5px 20px;
  display: grid;
}
.gridjs-footer button {
  border: 0px;
  background-color: #bdf0c9;
  margin-left: 5px;
  cursor: pointer;
}
.gridjs-footer button.gridjs-currentPage {
  background-color: white;
}
.gridjs-footer button[disabled] {
  color: #29b474;
  cursor: default;
}

.gridjs-td.gridjs-message {
  text-align: center;
  font-weight: bold;
}
.gridjs-td.gridjs-message.gridjs-error {
  background-color: lightyellow;
}

.gridjs-summary {
  float: left;
}
.gridjs-pages {
  float: right;
}

button.gridjs-sort {
  float: right;
  height: 14px;
  width: 8px;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position-x: center;
  cursor: pointer;
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  background-size: contain;
}
button.gridjs-sort-neutral {
  opacity: 0.3;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI0MDEuOTk4cHgiIGhlaWdodD0iNDAxLjk5OHB4IiB2aWV3Qm94PSIwIDAgNDAxLjk5OCA0MDEuOTk4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDEuOTk4IDQwMS45OTg7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik03My4wOTIsMTY0LjQ1MmgyNTUuODEzYzQuOTQ5LDAsOS4yMzMtMS44MDcsMTIuODQ4LTUuNDI0YzMuNjEzLTMuNjE2LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0NwoJCQljMC00Ljk0OS0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2LDUuNDI0QzIxMC4yMzIsMS44MTIsMjA1Ljk1MSwwLDIwMC45OTksMHMtOS4yMzMsMS44MTItMTIuODUsNS40MjRMNjAuMjQyLDEzMy4zMzEKCQkJYy0zLjYxNywzLjYxNy01LjQyNCw3LjkwMS01LjQyNCwxMi44NWMwLDQuOTQ4LDEuODA3LDkuMjMxLDUuNDI0LDEyLjg0N0M2My44NjMsMTYyLjY0NSw2OC4xNDQsMTY0LjQ1Miw3My4wOTIsMTY0LjQ1MnoiLz4KCQk8cGF0aCBkPSJNMzI4LjkwNSwyMzcuNTQ5SDczLjA5MmMtNC45NTIsMC05LjIzMywxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MTctNS40MjQsNy44OTgtNS40MjQsMTIuODQ3CgkJCWMwLDQuOTQ5LDEuODA3LDkuMjMzLDUuNDI0LDEyLjg0OEwxODguMTQ5LDM5Ni41N2MzLjYyMSwzLjYxNyw3LjkwMiw1LjQyOCwxMi44NSw1LjQyOHM5LjIzMy0xLjgxMSwxMi44NDctNS40MjhsMTI3LjkwNy0xMjcuOTA2CgkJCWMzLjYxMy0zLjYxNCw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDhjMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDdDMzM4LjEzOSwyMzkuMzUzLDMzMy44NTQsMjM3LjU0OSwzMjguOTA1LDIzNy41NDl6Ii8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");
  background-position-y: center;
}
button.gridjs-sort-asc {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MXB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjE7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDE5Ny4yODdMMTU5LjAyOCw2OS4zODFjLTMuNjEzLTMuNjE3LTcuODk1LTUuNDI0LTEyLjg0Ny01LjQyNHMtOS4yMzMsMS44MDctMTIuODUsNS40MjRMNS40MjQsMTk3LjI4NwoJCUMxLjgwNywyMDAuOTA0LDAsMjA1LjE4NiwwLDIxMC4xMzRzMS44MDcsOS4yMzMsNS40MjQsMTIuODQ3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI1LDEyLjg1LDUuNDI1aDI1NS44MTMKCQljNC45NDksMCw5LjIzMy0xLjgwOCwxMi44NDgtNS40MjVjMy42MTMtMy42MTMsNS40MjctNy44OTgsNS40MjctMTIuODQ3UzI5MC41NDgsMjAwLjkwNCwyODYuOTM1LDE5Ny4yODd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");
  background-position-y: 35%;
  background-size: 10px;
}
button.gridjs-sort-desc {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MnB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjI7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNAoJCUMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4CgkJczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");
  background-position-y: 65%;
  background-size: 10px;
}
button.gridjs-sort:focus {
  outline: none;
}

th.gridjs-th .gridjs-th-content {
  text-overflow: ellipsis;
  overflow: hidden;
  width: 100%;
  float: left;
}
th.gridjs-th-sort {
  cursor: pointer;
}
th.gridjs-th-sort .gridjs-th-content {
  width: calc(100% - 15px);
}
th.gridjs-th-sort:hover {
  background-color: #e5e7eb;
}
th.gridjs-th-sort:focus {
  background-color: #e5e7eb;
}

/* Datepicker display (within section.report daterange) */
div#daterange > div.datepicker .datepicker-cell {
  font-size: 0.9em;
  font-family: mono;
}
