nav .brand-logo {
  margin-left: 48px;
  font-size: 20px;
}

main .container {
  margin-top: -12vh;
  flex-shrink: 0;
}

.ribbon {
  width: 100%;
  height: 17vh;
  background-color: #3F51B5;
  flex-shrink: 0;
}

.ribbon-fab:not(.tap-target-origin) {
  position: absolute;
  right: 24px;
  top: calc(17vh + 34px);
}

i.very-large {
  font-size: 8rem;
  padding-top: 2px;
  color: #424242;
}

.card .card-content {
  padding-left: 18px;
  padding-bottom: 10px;
}

.card-action a, .card-dropdown-action a {
  cursor: pointer;
}

.inlinecode {
  box-sizing: border-box;
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(27,31,35,0.05);
  border-radius: 3px;
  font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
}

.log {
  height: 100%;
  max-height: calc(100% - 56px);
  background-color: #1c1c1c;
  margin-top: 0;
  margin-bottom: 0;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 12px;
  padding: 16px;
  overflow: auto;
  line-height: 1.45;
  border-radius: 3px;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  color: #DDD;
}

.log-bold { font-weight: bold; }
.log-italic { font-style: italic; }
.log-underline { text-decoration: underline; }
.log-strikethrough { text-decoration: line-through; }
.log-underline.log-strikethrough { text-decoration: underline line-through; }
.log-secret {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.log-secret-redacted {
  opacity: 0;
  width: 1px;
  font-size: 1px;
}
.log-fg-black { color: rgb(128,128,128); }
.log-fg-red { color: rgb(255,0,0); }
.log-fg-green { color: rgb(0,255,0); }
.log-fg-yellow { color: rgb(255,255,0); }
.log-fg-blue { color: rgb(0,0,255); }
.log-fg-magenta { color: rgb(255,0,255); }
.log-fg-cyan { color: rgb(0,255,255); }
.log-fg-white { color: rgb(187,187,187); }
.log-bg-black { background-color: rgb(0,0,0); }
.log-bg-red { background-color: rgb(255,0,0); }
.log-bg-green { background-color: rgb(0,255,0); }
.log-bg-yellow { background-color: rgb(255,255,0); }
.log-bg-blue { background-color: rgb(0,0,255); }
.log-bg-magenta { background-color: rgb(255,0,255); }
.log-bg-cyan { background-color: rgb(0,255,255); }
.log-bg-white { background-color: rgb(255,255,255); }

.modal {
  width: 95%;
  max-height: 90%;
  height: 85% !important;
}

.page-footer {
  padding-top: 0;
}

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

main {
  flex: 1 0 auto;
}

ul.browser-default {
  padding-left: 30px;
  margin-top: 10px;
  margin-bottom: 15px;
}

ul.browser-default li {
  list-style-type: initial;
}

ul.stepper:not(.horizontal) .step.active::before, ul.stepper:not(.horizontal) .step.done::before, ul.stepper.horizontal .step.active .step-title::before, ul.stepper.horizontal .step.done .step-title::before {
  background-color: #3f51b5 !important;
}

.select-port-container {
  margin-top: 8px;
  margin-right: 10px;
  width: 350px;
}

#dropdown-nav-trigger {
  margin-right: 24px;
}

.select-port-container .select-dropdown {
  color: #fff;
}

.select-port-container .caret {
  fill: #fff;
}

.dropdown-trigger {
  cursor: pointer;
}

.select-action {
  width: auto !important;
  height: auto !important;
  white-space: nowrap;
}

.tap-target-wrapper {
  position: fixed !important;
}

/* https://github.com/tnhu/status-indicator/blob/master/styles.css */
.status-indicator .status-indicator-icon {
  display: inline-block;
  border-radius: 50%;
  width: 10px;
  height: 10px;
}

.status-indicator.unknown .status-indicator-icon {
  background-color: rgb(216, 226, 233);
}

.status-indicator.unknown .status-indicator-text::after {
  content: "Unknown status";
}

.status-indicator.offline .status-indicator-icon {
  background-color: rgb(255, 77, 77);
}

.status-indicator.offline .status-indicator-text::after {
  content: "Offline";
}

.status-indicator.not-responding .status-indicator-icon {
  background-color: rgb(255, 170, 0);
}

.status-indicator.not-responding .status-indicator-text::after {
  content: "Not Responding";
}

@keyframes status-indicator-pulse-online {
  0%   {
    box-shadow: 0 0 0 0 rgba(75, 210, 143, .5);
  }
  25%  {
    box-shadow: 0 0 0 10px rgba(75, 210, 143, 0);
  }
  30% {
    box-shadow: 0 0 0 0 rgba(75, 210, 143, 0);
  }
}

.status-indicator.online .status-indicator-icon {
  background-color: rgb(75, 210, 143);
  animation-duration: 5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-delay: 0s;
  animation-fill-mode: none;
  animation-name: status-indicator-pulse-online;
}

.status-indicator.online .status-indicator-text::after {
  content: "Online";
}

#editor {
  margin-top: 0;
  margin-bottom: 0;
  border-radius: 3px;
  height: calc(100% - 56px);
}

.update-available i {
  vertical-align: bottom;
  font-size: 20px !important;
  color: #3F51B5 !important;
  margin-right: -4.5px;
  margin-left: -5.5px;
}

.flash-using-esphomeflasher {
  vertical-align: middle;
  color: #666 !important;
}

.error {
  background: #e53935;
  color: #fff;
  padding: 10px 15px;
  margin-top: 15px;
}

.card-comment {
  margin-bottom: 8px;
  font-size: 14px;
  color: #444;
  font-style: italic;
}
