:root {
  --color-nrwl-blue: #48c4e5;
  --color-nrwl-light-blue: #96d8e9;
  --color-nrwl-gray: #333333;
  --color-nrwl-navy: #143055;
  --color-nrwl-twilight: #086c9f;
  --color-nrwl-black: #231f20;
  --color-nrwl-red: rgb(248, 84, 119);

  --color-primary: var(--color-nrwl-navy);
  --font-family: 'Montserrat', 'Helvetica Neue', sans-serif;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  line-height: 1.6;
  font-size: 14px;
  font-family: var(--font-family);
}

button {
  padding: 0.5em 1em;
  border-radius: 4px;
  border: 1px solid transparent;
  font-size: 1em;
  line-height: 1;
  text-align: center;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
  text-decoration: none;
  -webkit-transform: scale(1);
  transform: scale(1);
  display: inline-block;
  cursor: pointer;

  background-color: var(--color-primary);
  color: #fff;
}

button:hover {
  opacity: 0.8;
}

button.icon {
  width: 1.5em;
  height: 1.5em;
  padding: 0;
  text-align: center;
  line-height: 50%;
}

button.icon svg {
  width: 1.25em;
  height: 1.25em;
}

.form-line {
  display: flex;
  align-items: center;
  justify-content: center;
}

.form-line label {
  flex: 1;
}

.flex {
  display: flex;
}

.flex button {
  flex: 1;
}

.flex button:not(:last-child) {
  margin-right: 1.5em;
}

label {
  display: inline-block;
  margin: 0.5em 0;
}

h4,
h5 {
  margin-top: 0;
  margin-bottom: 0.5em;
}

.form-group {
  margin-bottom: 1em;
}

.sidebar-section {
  margin-bottom: 1em;
}

.sidebar {
  min-width: 200px;
  max-width: calc(50% - 10px);
  z-index: 1;
  position: relative;
  height: 100%;
  min-width: 260px;
  box-shadow: 2px 0 2px rgba(51, 51, 51, 0.1);
}

.sidebar-content {
  box-sizing: border-box;
  height: 100%;
  overflow-y: auto;
  padding: 1.5em;
  width: 100%;
}

#main-content {
  flex: 1;
  overflow: hidden;
}

#apps,
#libs,
#e2e {
  padding: 0;
  list-style: none;
}

#libs,
#apps,
#e2e input {
  padding-right: 8px;
}

#app,
body,
html {
  height: 100%;
  margin: 0;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

#app {
  display: flex;
}

.clusters rect {
  fill: var(--color-nrwl-twilight);
  opacity: 0.5;
  stroke: var(--color-nrwl-black);
  stroke-width: 1.5px;
}

.clusters text {
  font-weight: 300;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serf;
  font-size: 48px;
}

text {
  font-weight: 300;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serf;
  font-size: 14px;
}

#svg-canvas {
  cursor: grab;
}

#svg-canvas:active {
  cursor: grabbing;
}

.node {
  cursor: pointer;
}

.node rect,
.node ellipse {
  stroke: var(--color-nrwl-black);
  stroke-width: 1.5px;
  fill: #fff;
}

g.affected rect,
g.affected ellipse {
  stroke: var(--color-nrwl-red);
}

.edgePath.affected path {
  stroke: var(--color-nrwl-red);
}

.edgePath.affected marker path {
  fill: var(--color-nrwl-red);
}

.edgePath path {
  stroke: var(--color-nrwl-gray);
  stroke-width: 1.5px;
}

.edgePath.lazy path {
  stroke-dasharray: 5, 5;
}

.sidebar-content .form-line {
  display: flex;
}

.sidebar-content .form-line label {
  flex: 1;
}

.sidebar-content h5 {
  color: var(--color-nrwl-twilight);
}

.tippy-tooltip {
  background-color: var(--color-nrwl-twilight);
}

.tippy-content {
  padding: 1.5em;
}

.tag {
  padding: 0.4rem;
  font-size: 0.75em;
  display: inline-block;
  border: 1px solid var(--color-nrwl-light-blue);
  text-transform: uppercase;
  color: var(--color-grey);
  padding: 0.5rem;
  line-height: 1;
  letter-spacing: 0.5px;
  margin-right: 0.4em;
}

.hide {
  display: none;
}

#no-projects-chosen {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

#textFilterInput {
  flex: 1;
  margin-right: 1.5em;
}

#textFilterButton {
  flex: none;
}
