/**
 * selectize.default.css (v0.12.6) - Default Theme
 * Copyright (c) 2013–2015 Brian Reavis & contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 * @author Brian Reavis <brian@thirdroute.com>
 */
.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
  visibility: visible !important;
  background: #f2f2f2 !important;
  background: rgba(0, 0, 0, 0.06) !important;
  border: 0 none !important;
  box-shadow: inset 0 0 12px 4px #fff;
}
.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
  content: '!';
  visibility: hidden;
}
.selectize-control.plugin-drag_drop .ui-sortable-helper {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.selectize-dropdown-header {
  position: relative;
  padding: 5px 8px;
  border-bottom: 1px solid #d0d0d0;
  background: #f8f8f8;
  border-radius: 3px 3px 0 0;
}
.selectize-dropdown-header-close {
  position: absolute;
  right: 8px;
  top: 50%;
  color: #303030;
  opacity: 0.4;
  margin-top: -12px;
  line-height: 20px;
  font-size: 20px !important;
}
.selectize-dropdown-header-close:hover {
  color: #000000;
}
.selectize-dropdown.plugin-optgroup_columns .optgroup {
  border-right: 1px solid #f2f2f2;
  border-top: 0 none;
  float: left;
  box-sizing: border-box;
}
.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
  border-right: 0 none;
}
.selectize-dropdown.plugin-optgroup_columns .optgroup:before {
  display: none;
}
.selectize-dropdown.plugin-optgroup_columns .optgroup-header {
  border-top: 0 none;
}
.selectize-control.plugin-remove_button [data-value] {
  position: relative;
  padding-right: 24px !important;
}
.selectize-control.plugin-remove_button [data-value] .remove {
  z-index: 1;
  /* fixes ie bug (see #392) */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 17px;
  text-align: center;
  font-weight: bold;
  font-size: 12px;
  color: inherit;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  padding: 2px 0 0 0;
  border-left: 1px solid #0073bb;
  border-radius: 0 2px 2px 0;
  box-sizing: border-box;
}
.selectize-control.plugin-remove_button [data-value] .remove:hover {
  background: rgba(0, 0, 0, 0.05);
}
.selectize-control.plugin-remove_button [data-value].active .remove {
  border-left-color: #00578d;
}
.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
  background: none;
}
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
  border-left-color: #aaaaaa;
}
.selectize-control.plugin-remove_button .remove-single {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 23px;
}
.selectize-control {
  position: relative;
}
.selectize-dropdown,
.selectize-input,
.selectize-input input {
  color: #303030;
  font-family: inherit;
  font-size: 13px;
  line-height: 18px;
  -webkit-font-smoothing: inherit;
}
.selectize-input,
.selectize-control.single .selectize-input.input-active {
  background: #fff;
  cursor: text;
  display: inline-block;
}
.selectize-input {
  border: 1px solid #d0d0d0;
  padding: 8px 8px;
  display: inline-block;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
  border-radius: 3px;
}
.selectize-control.multi .selectize-input.has-items {
  padding: 5px 8px 2px;
}
.selectize-input.full {
  background-color: #fff;
}
.selectize-input.disabled,
.selectize-input.disabled * {
  cursor: default !important;
}
.selectize-input.focus {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}
.selectize-input.dropdown-active {
  border-radius: 3px 3px 0 0;
}
.selectize-input > * {
  vertical-align: baseline;
  display: -moz-inline-stack;
  display: inline-block;
  zoom: 1;
  *display: inline;
}
.selectize-control.multi .selectize-input > div {
  cursor: pointer;
  margin: 0 3px 3px 0;
  padding: 2px 6px;
  background: #1da7ee;
  color: #fff;
  border: 1px solid #0073bb;
}
.selectize-control.multi .selectize-input > div.active {
  background: #92c836;
  color: #fff;
  border: 1px solid #00578d;
}
.selectize-control.multi .selectize-input.disabled > div,
.selectize-control.multi .selectize-input.disabled > div.active {
  color: #ffffff;
  background: #d2d2d2;
  border: 1px solid #aaaaaa;
}
.selectize-input > input {
  display: inline-block !important;
  padding: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  max-width: 100% !important;
  margin: 0 1px !important;
  text-indent: 0 !important;
  border: 0 none !important;
  background: none !important;
  line-height: inherit !important;
  -webkit-user-select: auto !important;
  box-shadow: none !important;
}
.selectize-input > input::-ms-clear {
  display: none;
}
.selectize-input > input:focus {
  outline: none !important;
}
.selectize-input::after {
  content: ' ';
  display: block;
  clear: left;
}
.selectize-input.dropdown-active::before {
  content: ' ';
  display: block;
  position: absolute;
  background: #f0f0f0;
  height: 1px;
  bottom: 0;
  left: 0;
  right: 0;
}
.selectize-dropdown {
  position: absolute;
  z-index: 10;
  border: 1px solid #d0d0d0;
  background: #fff;
  margin: -1px 0 0 0;
  border-top: 0 none;
  box-sizing: border-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 3px 3px;
}
.selectize-dropdown [data-selectable] {
  cursor: pointer;
  overflow: hidden;
}
.selectize-dropdown [data-selectable] .highlight {
  background: rgba(125, 168, 208, 0.2);
  border-radius: 1px;
}
.selectize-dropdown .option,
.selectize-dropdown .optgroup-header {
  padding: 5px 8px;
}
.selectize-dropdown .option,
.selectize-dropdown [data-disabled],
.selectize-dropdown [data-disabled] [data-selectable].option {
  cursor: inherit;
  opacity: 0.5;
}
.selectize-dropdown [data-selectable].option {
  opacity: 1;
}
.selectize-dropdown .optgroup:first-child .optgroup-header {
  border-top: 0 none;
}
.selectize-dropdown .optgroup-header {
  color: #303030;
  background: #fff;
  cursor: default;
}
.selectize-dropdown .active {
  background-color: #f5fafd;
  color: #495c68;
}
.selectize-dropdown .active.create {
  color: #495c68;
}
.selectize-dropdown .create {
  color: rgba(48, 48, 48, 0.5);
}
.selectize-dropdown-content {
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 200px;
  -webkit-overflow-scrolling: touch;
}
.selectize-control.single .selectize-input,
.selectize-control.single .selectize-input input {
  cursor: pointer;
}
.selectize-control.single .selectize-input.input-active,
.selectize-control.single .selectize-input.input-active input {
  cursor: text;
}
.selectize-control.single .selectize-input:after {
  content: ' ';
  display: block;
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: #808080 transparent transparent transparent;
}
.selectize-control.single .selectize-input.dropdown-active:after {
  margin-top: -4px;
  border-width: 0 5px 5px 5px;
  border-color: transparent transparent #808080 transparent;
}
.selectize-control.rtl.single .selectize-input:after {
  left: 15px;
  right: auto;
}
.selectize-control.rtl .selectize-input > input {
  margin: 0 4px 0 -2px !important;
}
.selectize-control .selectize-input.disabled {
  opacity: 0.5;
  background-color: #fafafa;
}
.selectize-control.multi .selectize-input.has-items {
  padding-left: 5px;
  padding-right: 5px;
}
.selectize-control.multi .selectize-input.disabled [data-value] {
  color: #999;
  text-shadow: none;
  background: none;
  box-shadow: none;
}
.selectize-control.multi .selectize-input.disabled [data-value],
.selectize-control.multi .selectize-input.disabled [data-value] .remove {
  border-color: #e6e6e6;
}
.selectize-control.multi .selectize-input.disabled [data-value] .remove {
  background: none;
}
.selectize-control.multi .selectize-input [data-value] {
  text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
  border-radius: 3px;
  background-color: #1b9dec;
  background-image: linear-gradient(to bottom, #1da7ee, #178ee9);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1da7ee', endColorstr='#ff178ee9', GradientType=0);
  box-shadow: 0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);
}
.selectize-control.multi .selectize-input [data-value].active {
  background-color: #0085d4;
  background-image: linear-gradient(to bottom, #008fd8, #0075cf);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff008fd8', endColorstr='#ff0075cf', GradientType=0);
}
.selectize-control.single .selectize-input {
  box-shadow: 0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8);
  background-color: #f9f9f9;
  background-image: linear-gradient(to bottom, #fefefe, #f2f2f2);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefefe', endColorstr='#fff2f2f2', GradientType=0);
}
.selectize-control.single .selectize-input,
.selectize-dropdown.single {
  border-color: #b8b8b8;
}
.selectize-dropdown .optgroup-header {
  padding-top: 7px;
  font-weight: bold;
  font-size: 0.85em;
}
.selectize-dropdown .optgroup {
  border-top: 1px solid #f0f0f0;
}
.selectize-dropdown .optgroup:first-child {
  border-top: 0 none;
}
@font-face {
  font-family: Rubik;
  src: url(/build/assets/Rubik-VariableFont_wght-RY9GKpFR.ttf);
}
@font-face {
  font-family: Rubik;
  src: url(/build/assets/Rubik-Italic-VariableFont_wght-BoUnVSsq.ttf);
  font-style: italic;
}
:root {
  --border-col: #ccc;
  --accent-col: rgb(77, 120, 136);
  --light-accent-col: rgb(120, 221, 241);
  --border-radius: 0.25rem;
  --box-shadow: 0 0 3px rgba(0,0,0,0.5);
  --nav-height: 6vh;
  --nav-bg-col: rgb(198, 255, 236);
}
html {
  height: 100%;
}
body {
  font-family: Rubik, sans-serif;
  margin: 0;
  min-height: 100%;
}
h1, h2 {
  margin: 0;
}
h3 {
  margin-bottom: 0;
}
a {
  color: var(--accent-col);
}
nav {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  padding: 0.5rem;
  gap: 0.75rem;
  background-color: var(--nav-bg-col);
}
#site-title {
  font-weight: bold;
}
.nav-left {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.nav-right {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  position: relative;
}
.nav-subheader {
  font-size: 90%;
  font-weight: bold;
  color: #333;
  text-transform: uppercase;
}
#navbar-toggle {
  display: none;
}
main {
  padding: 1rem;
}
/* Utility */
.large {
  font-size: 140%;
}
.medium {
  font-size: 120%;
}
.sticky-bar {
  background-color: #eee;
  position: sticky;
  top: 0;
  padding: 0.25rem;
}
.hide {
  display: none !important;
}
.fade {
  opacity: 0.7;
}
.alert {
  background-color: cornsilk;
}
.flex-form {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.row-center {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.menu-widget {
  margin-top: 0.5rem;
}
.menu-widget button {
  align-self: stretch;
}
.menu-widget .selectize-control {
  display: flex;
  align-items: stretch;
  flex-grow: 1;
}
/* Map */
#screen-wrapper {
  position: relative;
  display: flex;
  width: 100vw;
  flex-grow: 1;
}
#map {
  width: 70%;
  flex-basis: 100%;
  flex-grow: 1;
  background-image: url("/build/assets/weavedark-vZ_hYjvV.jpg");
  background-size: 300px;
  cursor: grab;
}
#map.moving .node-wrapper {
  cursor: move;
}
#node-content-wrapper {
  background-color: #eee;
  padding: 0.5rem;
  border-radius: var(--border-radius);
}
#reply-wrapper {
  text-align: right;
  margin-top: 0.5rem;
}
#node-tag-list {
  margin-top: 0.5rem;
}
#node-tag-selectize {
  display: inline-block;
}
#node-tags, #cluster-tags, #tag-clusters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}
.maptag {
  display: inline-block;
  background-color: #3aa;
  color: white;
  padding: 0.25rem;
  cursor: pointer;
  border-radius: var(--border-radius);
}
.maptag:hover {
  background-color: #8df;
  color: #333;
}
.node-wrapper {
  min-width: 200px;
  padding: 10px;
  font-size: 12pt;
  box-shadow: var(--box-shadow);
  border-radius: 5px;
  cursor: default;
}
.node-wrapper.disconnected {
  opacity: 0.3;
}
.node-wrapper.dark {
  color: white;
}
.node-image-gallery {
  text-align: center;
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
  justify-content: center;
  align-items: center;
  background-color: #eee;
  overflow-x: auto;
}
.node-image {
  max-width: 100%;
  max-height: 150px;
}
.node-buttons {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.25rem;
}
.node-button {
  padding: 0.25rem;
}
.node-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.25rem;
}
.confirm {
  position: absolute;
  background-color: white;
  border: 1px solid var(--border-col);
  padding: 10px;
  left: -10px;
  bottom: 100%;
}
.panel {
  box-sizing: border-box;
  width: 30%;
  background-color: white;
  padding: 1rem;
  overflow: auto;
  height: 100vh;
  border-left: 3px solid grey;
}
.maptag-list {
  display: inline-block;
}
.node-link-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.5rem 0;
}
.node-link {
  box-sizing: border-box;
  border-radius: var(--border-radius);
  border: 2px solid var(--border-col);
  width: 30%;
  flex-basis: 30%;
  padding: 0.5rem;
  font-size: 80%;
}
.node-link:hover {
  border-color: #faa;
}
#tag-title, #cluster-title {
  color: #3aa;
}
.close-wrapper {
  text-align: right;
}
.clickable {
  cursor: pointer;
  color: var(--accent-col);
}
.node-wrapper .clickable {
  background-color: #eee;
  border: 1px solid;
  border-radius: var(--border-radius);
  display: inline-flex;
  gap: 2px;
  line-height: 1em;
  align-items: center;
}
.floating-form {
  position: absolute;
  z-index: 100;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.5rem;
  box-shadow: var(--box-shadow);
  background-color: white;
}
.floating-form:not(.hide) {
  display: flex;
}
.floating-form h4 {
  margin: 0;
}
.selectize-input {
  min-width: 150px;
}
.selectize-control.single .selectize-input {
  background-image: none;
}
.image-delete {
  margin-left: 0.2rem;
}
#overlay {
  box-sizing: border-box;
  position: fixed;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 5rem;
  background-color: rgba(0, 0, 0, 0.88);
  z-index: 5;
  color: white;
  overflow: auto;
}
#overlay a {
  color: var(--light-accent-col);
}
#overlay .highlight {
  color: var(--light-accent-col);
}
#overlay-content {
  line-height: 2em;
  font-size: 14pt;
  font-weight: 300;
}
#overlay-content b {
  font-weight: 700;
}
#close-overlay {
  position: fixed;
  top: 2rem;
  right: 2rem;
  font-size: 20pt;
  cursor: pointer;
}
#panel-popup {
  position: absolute;
  top: 120%;
  left: 0;
  justify-content: center;
  background-color: #e0ffef;
  padding: 0.5rem;
  z-index: 5;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  gap: 0.5rem;
  box-shadow: var(--box-shadow);
  border-radius: var(--border-radius);
}
#panel-popup-close {
  margin-left: auto;
}
@media only screen and (max-width: 768px) {
  #screen-wrapper {
    flex-direction: column;
    height: 100vh;
  }
  #map {
    width: 100%;
    height: calc(60% - var(--nav-height));
    flex-grow: 1;
  }
  .panel {
    flex-grow: 1;
    width: 100%;
    height: 40%;
  }
  .nav-left {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 3;
    padding: 0.25rem;
    background-color: var(--nav-bg-col);
    display: none;
  }
  .nav-left.open {
    display: flex;
  }
  #navbar-toggle {
    display: block;
  }
  #navbar-toggle.open {
    transform: rotate(90deg);
  }
  #panel-popup {
    top: 100%;
    border-radius: 0;
  }
}