:root {
  --header-background: #113244;
  --header-color: #fff;
  --background: #f4f4f4;
  --background-secondary: rgba(208, 208, 208, 1);
  --background-tertiary: rgba(188, 188, 188, 1);
  --normal: #333;
  --normal-secondary: #999;

  /*--primary: #aaa;*/
  --primary: #57b;
  --primary-inverse: #fff;
  --node-label: #fff;
  --node-socket: #444;
  --link-hover: #f00;
  --selector-background: rgba(0, 0, 200, 0.1);
  --selector-color: var(--primary);
}

.vertical_sep {
  width: 1px;
  border-right: var(--primary);
}

.primary {
  color: var(--primary);
}

button {
  color: inherit;
}

input {
  padding: 20px;
  outline: none;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.app-header {
  display: flex;
  align-items: center;
  color: var(--header-color);
  background: var(--header-background);
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
  overflow: visible;
  z-index: 10;
}

.app-info {
  color: var(--normal);
}

.app-watermark {
  color: black;
  opacity: 0.02;
}

.app-flow-container {
  background: var(--background);
}

/* Flow Funcs PANEL */
.flow-funcs__control {
  border-bottom: solid 1px var(--primary);
}

.flow-funcs__container {
  background: var(--background-secondary) !important;
}

.flow-funcs__group {
  background: var(--background-tertiary);
}

.flow-funcs__src {
  background: #777;
  color: var(--node-label);
}

.flow-funcs__container .flow-funcs__header {
  color: var(--normal);
}

.hx-toggle-arrow {
  color: var(--normal-secondary);
}

.hx-toggle-arrow.active {
  color: var(--primary);
}

.flow-funcs__inner {
  display: flex;
  flex: 1;
  flex-flow: column;
  justify-content: center;
}

.flow-funcs__inner .hx-collapsible {
  border: none !important;
}

.flow-funcs__container .item {
  color: var(--normal) !important;
  border: none !important;
}

.flow-funcs__control .item {
  color: var(--normal) !important;
}

.flow-container__control button {
  color: var(--normal) !important;
}

.flow-container__info {
  color: var(--normal);
}

/*
 * FLOW manager
 */
.flow-selector {
  /* TODO: theme */
  stroke: var(--selector-color);
  fill: var(--selector-background);
}

/*
 * LINKS
 */
.flow-link__visible {
  stroke: var(--normal);
}

.flow-view:not(.activity)
.flow-link:not(.flow-link--pointer):hover
.flow-link__visible {
  stroke: var(--link-hover);

  /*filter: url(#highlight-border);*/
}

.flow-link__head {
  fill: var(--normal) !important;
}

/*
 * NODES
 */
.flow-node {
  /*filter: url(#highlight-border);*/
}

.flow-node__selection {
  transition: all 1s;
}

.flow-node--selected .flow-node__selection {
  stroke: var(--primary);
}

.flow-node--dragging .flow-node__body,
.flow-view:not(.activity) .flow-node:hover .flow-node__body {
  stroke-width: 1.5;
  stroke: var(--normal);
}

.flow-node__socket {
  fill: var(--node-socket);
  stroke: var(--node-socket);
}

.flow-linking.flow-node__socket--match,
.flow-node__socket.flow-node__socket--match {
  stroke: #2f2 !important;
  fill: #2f2 !important;
}

.flow-node__label {
  /*font-family: FiraMono, monospace;*/
  font-family: RobotoMono, monospace;
  letter-spacing: -0.05em;
  font-size: 14px;
  fill: var(--node-label);
}

.flow-node__socket-detail {
  font-size: 12px;
  font-weight: 100;
  transition: all 0.3s;
}

.flow-node__socket-detail {
  fill: var(--normal);
  filter: url(#solid-white);
}

/*
 * CHAT
 */
.flow-chat {
  background: var(--background-secondary);
  color: var(--normal);
}

.flow-chat__users {
  border-left: solid 1px rgba(150, 150, 150, 0.2);
}

.flow-chat__toggle {
  border: none;
  background: var(--background-secondary);
  border-top: solid 1px rgba(208, 208, 208, 0.4);
  border-left: solid 1px rgba(208, 208, 208, 0.4);
  border-bottom: solid 1px rgba(208, 208, 208, 0.4);
}

.flow-chat__messages .message {
  border-bottom: solid 1px rgba(150, 150, 150, 0.1);
}

.flow-chat__messages .handle .name {
  font-weight: bold;
}

.flow-chat__messages .message .text {
  color: #777;
}

.flow-chat__messages .handle .time {
  color: #999;
}

.flow-chat input.handle {
  background: #777;
  color: #fff;
}

.flow-chat input.message {
  background: var(--background) !important;
  color: var(--normal);
}

.flow-modal .flow-view {
  background: var(--background);
}

.flow-modal .hx-modal__container {
  background: var(--background-secondary);
  color: var(--normal);
}

.flow-modal .hx-modal__body input {
  background: var(--background) !important;
  color: var(--normal) !important;
}
