.gray-clickable {
  background-color: #ddd;
  transition:background-color .15s ease-in-out
}
.gray-clickable:hover {
  background-color: #ccc;
  cursor: pointer;
}
.gray-clickable:hover:active {
  background-color: #bbb;
}

pre.wrap {
  white-space: pre-wrap;
  /* Equivalents for older browsers: */
  white-space: -moz-pre-wrap;
  white-space: -pre-wrap;
  white-space: -o-pre-wrap;
  word-wrap: break-word;
}

.message-bar {
  position: absolute;
  bottom: 0;
  width: 100%;
  box-sizing: content-box;
}
.message-bar-button {
  cursor: pointer;
  font-size: 2em;
  position: absolute;
  right: 0.4em; /* matches message bar padding */
}

.query-input {
  flex-grow: 4;
  display: flex;
}
.query-input-input {
  flex-grow: 1;
  padding: .2em;
  margin: .4em 0 .4em .4em;
  font-size: 1.2em;
  border: none;
  float: left;
  color: black;
  border-radius: .2em 0 0 .2em;
}
.query-input-button {
  float: left;
  padding: .2em .6em;
  margin: .4em .4em .4em 0;
  font-size: 1.2em;
  border: none;
  border-radius: 0 .2em .2em 0;
}

.nav-bar {
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
  background-color: #1F4C7C;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.18), 0 4px 8px rgba(0, 0, 0, 0.28);
  position: relative;
  z-index: 5;
}
.nav-bar-logo {
  display: block;
  flex-shrink: 0;
  float: left;
  padding: .9em;
  max-height: 1.8em;
  box-sizing: content-box;
}

.nav-bar-button {
  float: left;
  display: flex;
  color: white;
  align-items: center;
  padding: .6em .5em;
  text-decoration: none;
  font-size: 1.4em;
  margin-left: .5em;
  margin-right: 0em;
  transition:color .15s ease-in-out,background-color .15s ease-in-out
}
.nav-bar-button.clickable:hover {
  background-color: rgba(255,255,255,0.5);
  color: #111;
  cursor: pointer;
}
.nav-bar-button.clickable:hover:active {
  background-color: rgba(255,255,255,0.3);
}
.nav-bar-button.disabled {
  color: #AAAFC8;
}
.nav-bar-button.right-icon {
  float: right;
  margin-right: .5em;
  margin-left: 0em;
}

/* Cypher results table */
table.cypher-results {
  border: 1px solid black;
  border-collapse: collapse;
  font-family: monospace;
}
table.cypher-results td, table.cypher-results th {
  padding: 0.5em;
  border: 1px solid black;
  border-collapse: collapse;
}

/* Cypher function listing */
.cypher-functions table {
  font-family: Ionicons, Consolas, monaco, monospace;
  border-collapse: collapse;
  width: 100%;
}
.cypher-functions td, .cypher-functions th {
  border: 1px solid rgba(59,65,81,.3);
  text-align: left;
  padding: 8px !important;
}
.cypher-functions tr:nth-child(even) {
  background-color: #eee;
}

/* Context menu */
.context-menu {
  z-index: 6;
  position: absolute;
  background-color: #ddd;
  border: 1px solid #424242;
  border-radius: .2em;
  margin: 0;
  list-style: none;
}
.context-menu ul {
  padding: 0;
  margin: 0;
}
.context-menu ul li {
  list-style: none;
  padding: 0.5em 0.75em;
}

/* Loader */
.loader {
  width: 2.4em;
  height: 2.4em;
  position: absolute;
  right: 0;
  margin: .6em;
  z-index: 100;
  justify-content: center;
  display: flex;
  flex-direction: column;
}
.loader-spinner {
  width: 2.4em;
  height: 2.4em;
  border: none;
  border-top: .3em solid #c1c1c1;
  border-radius: 50%;
  animation: spin 0.5s linear infinite;
  position: absolute;
  overflow: hidden;
}
.loader-counter {
  width: 2.4em;
  height: 2.4em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #c1c1c1;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Cancellable loader */
.loader-cancellable.loader:hover {
  cursor: pointer;
}
.loader-cancellable.loader:hover > .loader-counter {
  visibility: hidden;
}
.loader-cancellable.loader:hover > .loader-spinner {
  border-top: none;
}
.loader-cancellable.loader:hover:before, .loader-cancellable.loader:hover:after {
  background-color: #c1c1c1;
  position: absolute;
  content: '';
  height: 0.3em;
  width: 100%;
}
.loader-cancellable.loader:hover:before {
  transform: rotate(45deg);
}
.loader-cancellable.loader:hover:after {
  transform: rotate(-45deg);
}

/* Overlay */
.overlay {
  background-color: rgba(0, 0, 0, 0.54);
  z-index: 9;
  position: fixed;
  top: 0;
  left: 0;
}
.open-overlay {
  width: 100%;
  height: 100%;
  transition: width 0s, height 0s, opacity 0.25s;
  opacity: 1;
}
.closed-overlay {
  width: 0;
  height: 0;
  transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;
  opacity: 0
}

/* Side bar */
.side-bar {
  height: 100%;
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  background-color: #eee;
  overflow-x: hidden;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  transition: width 0.25s ease 0s;
  white-space: nowrap;
}
.side-bar table {
  width: 100%;
  border-collapse: collapse;
}

/* Side bar items */
.side-bar-item {
  cursor: pointer;
  color: rgba(0, 0, 0, 0.87);
  transition:background-color .15s ease-in-out
}
.side-bar-item:hover {
  background-color: #ccc;
  background-color: rgba(0,0,0,0.1);
}
.side-bar-item:hover:active {
  background-color: #bbb;
  background-color: rgba(0,0,0,0.2);
}
.side-bar-item.selected {
  color: #444;
  background-color: rgba(0,0,0,0.2);
}

/* Prevent the `vis-network` tooltip from filling the whole page */
div.vis-tooltip {
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 30%;
}

@keyframes activequery {
  0% { background-color: #e0fae0; }
  7% { background-color: lightgreen; }
  30% { background-color: #a1eda1; }
  100% { background-color: #e0fae0; }
}

