:root {
  --theme: #07e;
  --theme-dark: #06c;
  --theme-darker: #05b;
}
body {
  margin: 0;
  font-family: sans-serif;
}

#app {
  width: 650px;
  max-width: 98vw;
  display: flex;
  flex-flow: column nowrap;
  margin: auto;
}

.page-heading {
  text-align: center;
}

.hidden {
  display: none !important;
}

.route-table {
  max-width: 98vw;
}

.route-bar {
  padding: .5em 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.route-bar:hover {
  background: #aaddff;
}

.route-bar.active:hover {
  background: inherit;
}


.route-summary {
  display: flex;
  justify-content: space-around;
}

.route-summary > .info {
  flex: 2 0 60%;
  font-family: mono;
  text-align: left;
  margin-left: 8%;
}
.route-summary > .info:first-child {
  flex: 1 0 20%;
  text-align: right;
  margin-left: 0;
}

.expand-btn {
  flex: 1 0 10%;
  border: none;
  background: none;
  text-align: right;
  margin-right: 10px;
  cursor: pointer;
}

.route-panel {
  margin-top: 0.5em;
  border-top: 1px solid rgba(0,0,0,0.1);
}

.close-btn {
  text-align: center;
}

.request-console {
  display: flex;
  flex-flow: column nowrap;
}

.request-console > .input-group {
  box-sizing: border-box;
  max-width: calc(100% - 2em);
  margin: 1em;
  display: flex;
  flex-flow: column wrap;
}

.input-group > textarea {
  max-width: 100%:
  height: 100%;
  z-index: 100;
  resize: vertical;
}

input, textarea {
  padding: 5px;
  font-family: mono;
  border-radius: 2px;
  border: 1px solid lightgray;
}

.btn {
  margin: 0 1em;
  box-shadow: inset 0px 1px 1px var(--theme), 
              inset 0px 2px 1px rgba(255,255,255,0.9);
  border-radius: 2px;
  padding: .5em;
  border: none;
  background: var(--theme);
  font-weight: 700;
  color: white;
  text-shadow: 0px 1px 1px black;
}

.btn:focus,
.btn:hover {
  background: var(--theme-dark);
  text-shadow: none;
  box-shadow: none;
}

.btn:active {
  box-shadow: inset 0 0 5px rgba(0,0,0,0.7); 
  background: var(--theme-darker);
}
