@charset "UTF-8";
/* ^ Prevent iPhone from changing sizes: */
* {
  -webkit-text-size-adjust: none;
}

/* Big sections: */
/* Overview table layout: */
/* Within root: */
/* Dropdown menus: */
/* ^The down arrow requires less of a margin. */ 
/* Control buttons: */ 
/* Small buttons within cells: */
/* Bigger buttons within zoomed cells: */
/* Insertion arrows: */
/* Miscellaneous */
/* Grid column gaps: */
/* Each variable appears in only one place in a Sass file; but we list them together
 * * so as to be able to see the relationships. */
/* New line at end of file: */
/* Relative colors: */
/* Multipurpose colors: */
/* Showing changes: */
/* Specific purposes: */
/* ^transparentize evidently just subtracts the second argument from the color's current alpha value. */
/* ^ gray */
/* For icons: */
/* Graying out: */
/* Older: */
/* General shorthand symbols to avoid our having to write things like "var(--color-main-topbar)" repeatedly
 * * in the Sass code: */
/* Specific color schemes: */
/* 38. Crisp Complementary Colors: */
html[data-color_scheme=light-green]:root {
  --color-main-topbar: #BBCF4A;
  --color-main-background: #f5f3cf;
  --color-main-topbar-for-models: #5a651b;
  --color-insertion-arrow-div: #BBCF4A;
  --color-cells-to-move: #d9e49b;
}

/* From the FlatUI palette: */
html[data-color_scheme=flatui-blue]:root {
  --color-main-topbar: #3498db;
  --color-main-background: #ecf0f1;
  --color-main-topbar-for-models: #124364;
  --color-insertion-arrow-div: #3498db;
  --color-cells-to-move: #8bc4ea;
}

/* Monochrome, used as first color scheme: */
html[data-color_scheme=mocassin]:root {
  --color-main-topbar: #ffc869;
  --color-main-background: #ffe4b5;
  --color-main-topbar-for-models: #cf8300;
  --color-insertion-arrow-div: #ffc869;
  --color-cells-to-move: #ffedcf;
}

/* Carmen 2020: */
html[data-color_scheme=carmen2020]:root {
  --color-main-topbar: #A41D24;
  --color-main-background: #FEEF81;
  --color-main-topbar-for-models: #220607;
  --color-insertion-arrow-div: #A41D24;
  --color-cells-to-move: #df4850;
}

/* Divertimento: */
html[data-color_scheme=divertimento]:root {
  --color-main-topbar: #CD1A24;
  --color-main-background: #E3FD81;
  --color-main-topbar-for-models: #45090c;
  --color-insertion-arrow-div: #CD1A24;
  --color-cells-to-move: #eb626a;
}

/* Happy Birthday: */
/* Der neue Code ist ausschließlich hier ab dieser Zeile: */
html[data-color_scheme=dark-theme]:root {
  --color-main-topbar: #3498db;
  --color-main-background: #ecf0f1;
  --color-main-topbar-for-models: #124364;
  --color-insertion-arrow-div: #3498db;
  --color-cells-to-move: #8bc4ea;
}

html[data-color_scheme=dark-theme]:root {
  /* rgb(72,68,65) */
  --color-main-topbar: rgb(42,40,38);
  --color-main-background: black;
  --color-main: #66bbff;
  --color-light: rgb(229,229,230);
  --color-light2: rgb(180,180,180);
  --color-main-topbar-for-models: #124364;
  --color-insertion-arrow-div: #3498db;
  --color-cells-to-move: #8bc4ea;
}
html[data-color_scheme=dark-theme] .root {
  background: var(--color-main-background);
  border: thin solid rgba(255, 255, 255, 0.3);
}
html[data-color_scheme=dark-theme] .cell-field-content {
  color: var(--color-light) !important;
}
html[data-color_scheme=dark-theme] .overview-table {
  background: var(--color-main-background);
}
html[data-color_scheme=dark-theme] .cell-content u {
  color: var(--color-main);
}
html[data-color_scheme=dark-theme] .dropdown-menu {
  border: thin solid rgba(255, 255, 255, 0.3);
  background: var(--color-main-topbar);
  color: #e5e5e6;
}
html[data-color_scheme=dark-theme] .topbar-control-button > .big-icon-wrapper {
  background: var(--color-main-topbar);
  border: thin solid rgba(255, 255, 255, 0.3);
  color: var(--color-light);
}
html[data-color_scheme=dark-theme] .header-root {
  background: var(--color-main-topbar);
  border: thin solid rgba(255, 255, 255, 0.3);
  color: var(--color-main);
}
html[data-color_scheme=dark-theme] .bracket {
  visibility: hidden;
}
html[data-color_scheme=dark-theme] .sidebar {
  background: var(--color-main-topbar);
  color: var(--color-light);
  border-right: thin solid rgba(255, 255, 255, 0.3);
}
html[data-color_scheme=dark-theme] .sidebar .first-level > .wrapper.action-item, html[data-color_scheme=dark-theme] .sidebar .second-level > .wrapper.action-item {
  background: var(--color-main-topbar);
  color: var(--color-light);
}
html[data-color_scheme=dark-theme] .sidebar .first-level > .wrapper, html[data-color_scheme=dark-theme] .sidebar .second-level > .wrapper {
  border: thin solid rgba(255, 255, 255, 0.3);
}
html[data-color_scheme=dark-theme] button, html[data-color_scheme=dark-theme] select, html[data-color_scheme=dark-theme] textarea {
  background: var(--color-main-topbar);
  border: thin solid rgba(255, 255, 255, 0.3);
  color: var(--color-light);
}
html[data-color_scheme=dark-theme] .sidebar .first-level .explorer ul li, html[data-color_scheme=dark-theme] .sidebar .second-level .explorer ul li {
  background: var(--color-main-topbar);
  color: var(--color-light);
}
html[data-color_scheme=dark-theme] h1, html[data-color_scheme=dark-theme] h2, html[data-color_scheme=dark-theme] h3, html[data-color_scheme=dark-theme] h4, html[data-color_scheme=dark-theme] a, html[data-color_scheme=dark-theme] .sidebar .first-level .explorer .folder, html[data-color_scheme=dark-theme] .sidebar .second-level .explorer .folder {
  color: var(--color-main);
}
html[data-color_scheme=dark-theme] .cell-field-content > .link-display-dom > .link-caption,
html[data-color_scheme=dark-theme] .cell-field-content > .link-display-dom > .web-link,
html[data-color_scheme=dark-theme] .cell-field-title {
  color: var(--color-light2);
}
html[data-color_scheme=dark-theme] .weblink-icon.icon-link-ext {
  color: var(--color-main);
}
html[data-color_scheme=dark-theme] .root.active-cell {
  background: var(--color-main-topbar);
}
html[data-color_scheme=dark-theme] #body-wrapper[data-minor_mode=active-cell-mode] .root:not(.active-cell) {
  background: var(--color-main-background);
}
html[data-color_scheme=dark-theme] .small-icon-bar {
  border: thin solid rgba(255, 255, 255, 0.3);
}
html[data-color_scheme=dark-theme] .cell-field-wrapper.editable-field:first-child > .cell-field-content, html[data-color_scheme=dark-theme] pre {
  color: var(--color-main) !important;
}
html[data-color_scheme=dark-theme] .root:not(.active-cell) > .cell-content > .cell-field-wrapper.sticky-field {
  border-bottom: thin solid rgba(255, 255, 255, 0.3);
}

/* Cells in general: */
/* Active cells: */
/* ^Principle: Shift the shadow far enough to the left so that it
 * * does not fall onto the bracket on the right. */
/* Sections: */
/* Menus: */
/* Buttons: */
/* Other: */
/* Topbar elements: */
/* ^You could make it not-allowed, but it might be distracting. */
/* To do: Try to make more specific: */
* {
  font-family: "Open Sans", Tahoma, sans-serif;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}

.image-window {
  -webkit-overflow-scrolling: auto;
  overflow-scrolling: auto;
}

html {
  line-height: 1.25;
  scroll-behavior: smooth;
}

body, html, #body-wrapper {
  height: 100%;
  width: 1px;
  min-width: 100%;
}

input[type=checkbox] {
  cursor: pointer;
  margin-right: 0.5em;
}

a, .inline-link {
  text-decoration: none;
  color: #002b7f;
  font-weight: 600;
  cursor: pointer;
}

::placeholder, ::-webkit-input-placeholder {
  /* ^Latter needed for Edge. */
  color: rgba(0, 0, 255, 0.5);
  font-style: italic;
}

h1, h2, h3, h4 {
  color: black;
}

h1 {
  font-weight: 600;
  margin-bottom: 0.5em;
  font-size: 1.5em;
}

h2 {
  font-weight: 400;
}

h3 {
  font-weight: 400;
}

h4 {
  font-weight: 600;
}

button, select, textarea {
  border: 1px solid #ddd;
  color: #002b7f;
  background: white;
  padding: 5px 10px;
}

.deleted {
  text-decoration: line-through;
}

fieldset {
  border: 0 none;
}
fieldset div {
  display: flex;
}
fieldset div input[type=checkbox] {
  margin-top: 3px;
}
fieldset div label {
  cursor: pointer;
  line-height: 1.1;
}

.target-cell-highlight {
  animation: highlight 2s;
}

@keyframes target-cell-highlight {
  0% {
    background: #ffff99;
  }
  100% {
    background: none;
  }
}
.underline {
  text-decoration: underline;
}

button, select {
  cursor: pointer;
}

.hide {
  display: none;
}

.original {
  color: gray;
}

.plain-text {
  padding: 1em 2em;
}
.plain-text h1, .plain-text h2, .plain-text h3 {
  font-size: 1.2em;
  font-weight: 600;
  margin-top: 1em;
  margin-bottom: 0.1em;
}
.plain-text ul {
  list-style: none;
}

.root:not(.hidden-cell) .cell-content:not(.empty) {
  min-height: 30px;
}

.hidden-select-box, .hidden-within-sidebar, .hidden-save-button, .hidden-sidebar-option {
  display: none !important;
  /* important sollte hier nicht stören, da die Klasse hidden-* die Anzeige endgültig bestimmen sollte */
}

.cell-with-invalid-value {
  border-color: red;
  border-style: solid;
}

.unselectable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

textarea:focus, input:focus {
  outline: none;
}

*:focus {
  outline: none;
}

@keyframes appear-from-above {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  }
}
@keyframes appear-from-below {
  0% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  }
}
@keyframes disappear-to-above {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateY(-100%);
    opacity: 0;
  }
}
@keyframes disappear-to-below {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    opacity: 0;
  }
}
/* Print
 * @media print
 * #main-ui-area 
 * .scrollable-wrapper
 *  position: static */
/* Different Versions of the UI Layout */
body[deployment=dev] .prod:not(.dev), body[deployment=dev] .node:not(.dev) {
  display: none !important;
}
body[deployment=prod] .dev:not(.prod), body[deployment=prod] .node:not(.prod) {
  display: none !important;
}
body[deployment=node] .dev:not(.node), body[deployment=node] .prod:not(.node) {
  display: none !important;
}

/* I've make all selectors child selectors in the hope of increasing 
 * efficiency; but I haven't checked whether the to-be-selected elements are
 * all actually children. */
.checkbox > span {
  display: none;
}

.heart > .checkmark, .styled-checkbox > .checkmark {
  position: relative;
  left: -20px;
  z-index: 0;
}
.heart > input, .styled-checkbox > input {
  opacity: 0;
  position: relative;
  z-index: 1;
  transform: scale(2);
}
.heart > input ~ .checkmark:after, .styled-checkbox > input ~ .checkmark:after {
  font-family: "fontello";
  content: "";
  color: orange;
}
.heart > input:checked ~ .checkmark:after, .styled-checkbox > input:checked ~ .checkmark:after {
  content: "";
}

.styled-checkbox > input ~ .checkmark:after {
  content: "";
  color: blue;
}
.styled-checkbox > input:checked ~ .checkmark:after {
  content: "";
}

.date-and-or-time-wrapper > input {
  width: 100%;
}

.rating-option {
  cursor: pointer;
  padding-left: 5px;
  padding-right: 5px;
  font-size: 0.9em;
  color: #888;
}

.rating-option.selected-rating-option {
  font-size: 1.3em;
  color: black;
}

.set-of-texts > li > span, .set-of-texts > li > .autocomplete-wrapper > span {
  min-width: 50px;
  display: inline-block;
  flex: 1;
}
.set-of-texts > li > span:empty:before, .set-of-texts > li > .autocomplete-wrapper > span:empty:before {
  content: "";
  font-style: italic;
  color: #666;
}
.set-of-texts > li .set-of-texts-input, .set-of-texts > li > .autocomplete-wrapper .set-of-texts-input {
  width: 100%;
}
.set-of-texts i {
  padding: 0;
  padding: 2px 5px;
  cursor: pointer;
}
.set-of-texts.edit-mode > li.hidden-sot-item {
  display: none;
}
.set-of-texts.edit-mode > li {
  display: flex;
}
.set-of-texts.edit-mode > li span {
  border-left: 1px solid #aaa;
  padding-left: 5px;
}
.set-of-texts.edit-mode > li:first-child .icon-up-big {
  visibility: hidden;
}
.set-of-texts.edit-mode > li:nth-last-child(3) .icon-down-big {
  visibility: hidden;
}
.set-of-texts.edit-mode > .autocomplete-wrapper {
  flex: 1;
}
.set-of-texts.edit-mode > .icon-plus {
  width: calc(100% - 3.2rem);
  margin-left: 3.2rem;
}
.set-of-texts.edit-mode > .icon-plus + .autocomplete-wrapper {
  visibility: hidden;
}
.set-of-texts.bulleted-list {
  display: flex;
  flex-direction: column;
  padding-left: 0;
}
.set-of-texts .add-new-label {
  order: 1;
}
.set-of-texts.comma-separated-values {
  flex-direction: row;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.set-of-texts.comma-separated-values > li:not(:last-child):after {
  content: ", ";
}
.set-of-texts.floating-tags {
  flex-direction: row;
  list-style: none;
  padding: 0;
  flex-wrap: wrap;
}
.set-of-texts.floating-tags > li {
  border: 1px solid #ddd;
  margin-right: 5px;
  margin-bottom: 5px;
  display: flex;
  /* flex: 1 1 auto */
}
.set-of-texts.floating-tags > li span {
  padding: 2px 5px;
}

.arrowed-list {
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
.arrowed-list > .arrowed-list-element {
  display: grid;
  grid-template-areas: "icons display-name";
  align-items: center;
}
.arrowed-list > .arrowed-list-element > span.icon-right-big {
  display: none;
}
.arrowed-list > .arrowed-list-element.arrowed-list-element-checked > span.icon-right-big {
  display: grid;
}
.arrowed-list > .arrowed-list-element > span.icon-check-empty, .arrowed-list > .arrowed-list-element > span.icon-right-big {
  grid-area: icons;
  justify-self: center;
}
.arrowed-list > .arrowed-list-element > span.icon-right-big {
  color: blue;
}
.arrowed-list > .arrowed-list-element div.arrowed-text {
  grid-area: display-name;
  justify-self: start;
}
.arrowed-list.arrowed-list-for-input > .arrowed-list-element {
  grid-template-columns: 73px 1fr;
  grid-column-gap: 5px;
}
.arrowed-list.arrowed-list-for-display > .arrowed-list-element {
  grid-template-columns: 23px 1fr;
  grid-column-gap: 2px;
}
.arrowed-list.arrowed-list-for-input > .arrowed-list-element > span.icon-check-empty, .arrowed-list.arrowed-list-for-input > .arrowed-list-element > span.icon-right-big {
  font-size: 175%;
}
.arrowed-list.arrowed-list-for-display > .arrowed-list-element > span.icon-right-big {
  font-size: 70%;
}
.arrowed-list.arrowed-list-for-display > .arrowed-list-element > span.icon-check-empty {
  display: none;
}

.cell-field-content.content-editable.input-element {
  width: 100%;
  cursor: text;
}
.cell-field-content.content-editable.input-element:empty:before {
  content: "Type here to enter text";
  color: rgba(0, 0, 255, 0.5);
  font-style: italic;
}

.cell-field-content.active-ck-editor {
  cursor: text;
}

.ck-placeholder[data-placeholder]:before {
  color: rgba(0, 0, 255, 0.5) !important;
  font-style: italic;
}

/* Not currently working; To do: Get it to work: */
.ck.ck-toolbar__items {
  cursor: pointer;
}

.cell-field-content h1 {
  font-weight: 600;
  font-size: 1.5em;
}
.cell-field-content h2 {
  font-weight: 600;
  font-size: 1.17em;
}
.cell-field-content h3 {
  font-weight: 600;
  font-size: 1em;
}
.cell-field-content ol > li, .cell-field-content ul > li {
  padding-left: 0px;
  margin-left: 34px;
}
.cell-field-content ul {
  list-style-type: square;
}
.cell-field-content ol {
  list-style-type: decimal;
  list-style-position: outside;
}
.cell-field-content h1, .cell-field-content h2, .cell-field-content h3, .cell-field-content p, .cell-field-content ol, .cell-field-content ul {
  margin-bottom: 0.5rem;
  /* Could be 7px, but it should be 8px for iPhone
  * * To do: Think about it. */
  margin-top: 0;
}

.active-ck-editor {
  margin-top: 25px;
  padding: 0 !important;
}
.active-ck-editor > :first-child {
  margin-top: 0 !important;
}

.thumbnail-box-with-icon {
  display: grid;
  grid-template-areas: "thumbnail-box";
  grid-template-rows: max-content;
  grid-template-columns: max-content;
  cursor: pointer;
}
#body-wrapper[data-minor_mode] .thumbnail-box-with-icon > .thumbnail-icon-element {
  display: none;
}
#body-wrapper[data-minor_mode] .root.active-cell .thumbnail-box-with-icon {
  cursor: pointer;
}
#body-wrapper[data-minor_mode] .root:not(.active-cell) .thumbnail-box-with-icon {
  cursor: default;
}
#body-wrapper[data-minor_mode=start-edit-mode] .root:not(.active-cell) .thumbnail-box-with-icon {
  cursor: crosshair;
  /* ^ Needed to exceed specificity of previous rule. */
}
#body-wrapper[data-minor_mode=start-edit-mode] .thumbnail-box-with-icon {
  cursor: crosshair;
}
.thumbnail-box-with-icon > .thumbnail-icon-element {
  grid-area: thumbnail-box;
  align-self: end;
  justify-self: center;
  background-color: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7);
  height: 20px;
  width: 17px;
}
.thumbnail-box-with-icon > .thumbnail {
  display: block;
  max-width: 100%;
  grid-area: thumbnail-box;
  align-self: end;
  justify-self: center;
}

.link-widgets-thumbnail {
  grid-area: thumbnail;
  height: 30px;
  width: auto;
}

.link-caption {
  cursor: pointer;
  font-weight: 600;
  padding-top: 3px;
}
#body-wrapper[data-minor_mode=start-edit-mode] .link-caption {
  cursor: crosshair;
}

.audio-bookmark {
  color: #002b7f;
  font-weight: 600;
}

.web-link {
  display: block;
  padding-top: 0.1rem;
  cursor: pointer;
}

.link-subtitle {
  color: #888;
  font-weight: normal;
  cursor: pointer;
  font-size: 80%;
}

.link-with-controls {
  display: flex;
}
.link-with-controls:first-child .icon-up-big, .link-with-controls:last-child .icon-down-big {
  visibility: hidden;
}
.link-with-controls > .control-buttons {
  display: flex;
  align-items: center;
  padding-right: 10px;
}
.link-with-controls > .control-buttons > i {
  cursor: pointer;
}

.cell-field-content > .link-display-dom > .link-caption {
  color: #666;
  font-weight: normal;
  font-size: 85%;
  line-height: 1.2;
}
.cell-field-content > .link-display-dom > .web-link {
  color: #666;
  font-weight: normal;
  font-size: 85%;
}
.cell-field-content > .link-display-dom:not(:first-child) {
  margin-top: 7px;
}

.link-collection > .link-with-controls {
  margin: 10px 0;
}

.link-widgets {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "thumbnail" "input-line" "caption-input-line";
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  row-gap: 3px;
  border-left: 5px solid #ddd;
  padding-left: 5px;
  margin: 5px 0;
  width: 100%;
}

.link-address-input-line {
  grid-area: input-line;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "subtitle subtitle" "input-field button";
  grid-template-columns: 1fr max-content;
  grid-column-gap: 10px;
  /* How are the items to be aligned within their cells? */
  justify-items: start;
  /* (Other specifications:) */
}
.link-address-input-line > .link-subtitle {
  grid-area: subtitle;
}
.link-address-input-line > .link-widgets-url-input {
  grid-area: input-field;
  width: 100%;
}
.link-address-input-line > .link-small-button {
  grid-area: button;
}

.link-file-input-line {
  grid-area: input-line;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "subtitle subtitle" "filename button";
  grid-template-columns: repeat(2, max-content);
  /* How are the items to be aligned within their cells? */
  justify-items: start;
  /* (Other specifications:) */
}
.link-file-input-line > .link-subtitle {
  grid-area: subtitle;
}
.link-file-input-line > .link-uploaded-filename {
  grid-area: filename;
  display: flex;
  align-items: center;
}
.link-file-input-line > .link-file-selector-with-label {
  grid-area: button;
}
.link-file-input-line > *:not(:last-child) {
  margin-right: 10px;
}

.link-caption-input-line {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: caption-input-line;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "caption-subtitle" "caption-input";
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
.link-caption-input-line .link-subtitle {
  grid-area: caption-subtitle;
}

.link-file-selector {
  width: 0.1px;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  z-index: -1;
}

.url {
  color: #137333;
  font-size: 0.85rem;
}
.url:empty:before {
  content: "Url";
  color: gray;
  font-weight: normal;
  font-style: italic;
}

.link-buttons > span {
  margin-bottom: 2px;
}
.link-buttons > span:not(:last-child) {
  margin-right: 10px;
}

.link-large-button, .link-small-button {
  cursor: pointer;
  border-radius: 20px;
  color: rgba(255, 255, 255, 0.99);
  font-weight: 600;
  background-color: var(--color-main-topbar-for-models);
  border-width: 1px;
  border-style: solid;
  border-color: #ccc;
  padding-left: 8px;
  padding-right: 10px;
  display: inline-block;
  white-space: nowrap;
  /* &:hover
  * background: $color-light */
}
.link-large-button > .large-or-small-button-icon, .link-small-button > .large-or-small-button-icon {
  padding-left: 3px;
  padding-right: 3px;
}
.link-large-button > .large-or-small-button-text, .link-small-button > .large-or-small-button-text {
  padding-left: 3px;
  padding-right: 3px;
}

.link-small-button {
  padding-top: 0px;
  padding-bottom: 2px;
}

.link-large-button {
  padding-top: 3px;
  padding-bottom: 3px;
}

.show-audio-player, .make-available-offline {
  font-size: 37px;
  cursor: pointer;
}

.show-video-player {
  font-size: 40px;
  cursor: pointer;
  color: slategray;
}

.embedded-video {
  position: relative;
}

.embedded-video-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
}

.weblink-icon {
  padding-right: 5px;
  font-size: 120%;
}
.weblink-icon.icon-file-pdf {
  color: darkred;
}
.weblink-icon.icon-file-word {
  color: blue;
}
.weblink-icon.icon-link-ext {
  color: blue;
}

.thumbnail-square {
  height: 150px;
  width: 150px;
  display: grid;
  align-items: end;
  justify-items: center;
}

[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
}
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom {
  display: flex;
  flex-direction: column;
  margin: 5px 0;
}
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .link-caption {
  padding: 3px;
  display: flex;
  justify-content: center;
  max-width: 150px;
  /* Other text properties: see .link-caption above. */
}
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .web-link {
  flex-direction: column;
  padding: 3px;
  display: flex;
  height: 100%;
  /* Other text properties: see .web-link above. */
}
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .icon-headphones.show-audio-player,
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .icon-videocam.show-video-player,
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .icon-file-pdf.weblink-icon,
[data-field_type=Url] > .cell-field-content[data-link_layout=Gallery] > .link-display-dom > .icon-link-ext.weblink-icon {
  height: 150px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 5em;
}

.inline-loading-animation {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}

/* Edit mode: */
.recipient-buttons {
  display: flex;
  flex-direction: column;
  width: fit-content;
}
.recipient-buttons > .add-recipient-button, .recipient-buttons > .show-all-recipients-button, .recipient-buttons .recipient-ok-button {
  cursor: pointer;
  border-radius: 20px;
  background-color: rgba(255, 255, 255, 0.99);
  border-width: 1px;
  border-style: solid;
  border-color: #ccc;
  padding-left: 8px;
  padding-right: 10px;
  margin-top: 5px;
  margin-right: 10px;
}
.recipient-buttons > .add-recipient-button:hover, .recipient-buttons > .show-all-recipients-button:hover, .recipient-buttons .recipient-ok-button:hover {
  background: rgba(203, 224, 239, 0.5);
}
.recipient-buttons > .add-recipient-button, .recipient-buttons .recipient-ok-button {
  color: black;
  font-weight: 600;
}
.recipient-buttons > .add-recipient-button > .icon-user-plus, .recipient-buttons .recipient-ok-button > .icon-user-plus {
  color: #00b167;
}
.recipient-buttons.recipient-added > .add-recipient-button {
  display: none;
}
.recipient-buttons:not(.recipient-added) > .recipient-ok-button {
  display: none;
}

.recipient-collection > .recipient-wrapper {
  display: flex;
}
.recipient-collection > .recipient-wrapper:first-child .icon-up-big, .recipient-collection > .recipient-wrapper:last-child .icon-down-big {
  visibility: hidden;
}
.recipient-collection > .recipient-wrapper > .control-buttons {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-items: center;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: auto;
  grid-template-columns: repeat(3, max-content);
  grid-column-gap: 3px;
  /* How are the items to be aligned within their cells? */
  justify-items: center;
  /* (Other specifications:) */
}
.recipient-collection > .recipient-wrapper > .control-buttons > i {
  cursor: pointer;
}
.recipient-collection > .recipient-wrapper > .recipient-content {
  border-left: 5px solid #ddd;
  padding-left: 5px;
  margin: 5px 0;
  width: 100%;
}
.recipient-collection > .recipient-wrapper > .recipient-content > .recipient-content-address, .recipient-collection > .recipient-wrapper > .recipient-content > .recipient-content-name {
  display: block;
  width: 100%;
}
.recipient-collection:not(.show-all-recipients) > .recipient-wrapper:not(.new-recipient-wrapper) {
  display: none;
}
.recipient-collection:not(.show-all-recipients) .icon-up-big, .recipient-collection:not(.show-all-recipients) .icon-down-big {
  visibility: hidden;
}

.operation-button {
  font-size: large;
  text-decoration: underline;
}

/* To do: Make into grid */
#chat-messages {
  height: calc(100% - $topbar-height);
  display: flex;
  flex-direction: column;
}
#chat-messages.show-messages #chat-options > li.messages {
  background: rgba(203, 224, 239, 0.5);
  color: black;
}
#chat-messages.show-messages #chat-log > li.message {
  display: grid;
}
#chat-messages.show-actions > #chat-options > li.actions {
  background: rgba(203, 224, 239, 0.5);
  color: black;
}
#chat-messages.show-actions > #chat-log .modification, #chat-messages.show-actions > #chat-log .deletion {
  display: grid;
}
#chat-messages > #chat-options {
  display: flex;
  list-style: none;
  border-bottom: 1px solid #ddd;
  cursor: pointer;
}
#chat-messages > #chat-options > li.actions, #chat-messages > #chat-options > li.messages {
  padding: 2px 5px;
  border: 1px solid #ddd;
  margin: 5px;
  color: #888;
}
#chat-messages > #chat-log {
  flex: 1 0 auto;
}
#chat-messages > #chat-log > li.chat-entry {
  display: none;
  grid-template-areas: "Avatar Username" "Avatar Datetime" "Avatar Message" "Avatar Deletion";
  grid-template-columns: 50px auto;
  padding: 0.3rem;
  border-bottom: 1px solid #ddd;
}
#chat-messages > #chat-log > li.chat-entry.marked-for-deletion {
  background: rgba(255, 0, 0, 0.3);
}
#chat-messages > #chat-log > li.chat-entry > span {
  font-size: 0.9rem;
}
#chat-messages > #chat-log > li.chat-entry > span.avatar {
  grid-area: Avatar;
  height: 40px;
  width: 40px;
  background-size: cover;
  border-radius: 50%;
  margin-right: 0.3rem;
}
#chat-messages > #chat-log > li.chat-entry > span.username {
  grid-area: Username;
  font-weight: 600;
}
#chat-messages > #chat-log > li.chat-entry > span.date-time {
  grid-area: Datetime;
  color: gray;
  font-size: 0.7rem;
}
#chat-messages > #chat-log > li.chat-entry > span.message {
  grid-area: Message;
}
#chat-messages > #chat-log > li.chat-entry > span.deletion-confirmation {
  grid-area: Deletion;
  background: white;
  padding: 0.5em;
  width: 18em;
}
#chat-messages > #chat-log > li.chat-entry > span.deletion-confirmation span {
  border: 1px solid #ddd;
  display: inline-block;
  padding: 2px 5px;
  margin-right: 10px;
  cursor: pointer;
}
#chat-messages > #chat-new-message {
  display: flex;
  position: -webkit-sticky;
  position: sticky;
  bottom: 0;
}
#chat-messages > #chat-new-message input, #chat-messages > #chat-new-message textarea {
  flex: 1;
  padding: 0.3rem;
  border: 1px solid #002b7f;
}
#chat-messages > #chat-new-message input[type=submit], #chat-messages > #chat-new-message textarea[type=submit] {
  flex: 0;
  color: #002b7f;
  background: white;
  border-left: 0 none;
}

/* Within #main-ui-area*/
.scrollable-area[data-value=explorer] {
  background: white;
}
.scrollable-area[data-value=explorer] > #explorer-headerbar {
  height: 3em;
  display: flex;
  border-bottom: 1px solid #ddd;
  background: white;
}
.scrollable-area[data-value=explorer] > #explorer-headerbar button {
  border: 0;
  padding: 0 1em;
}
.scrollable-area[data-value=explorer] > #explorer-headerbar button:hover {
  background: rgba(203, 224, 239, 0.5);
}
.scrollable-area[data-value=explorer] > #explorer-headerbar button.new-folder i, .scrollable-area[data-value=explorer] > #explorer-headerbar button.new-intervention i {
  position: relative;
}
.scrollable-area[data-value=explorer] > #explorer-headerbar button.new-folder i:after, .scrollable-area[data-value=explorer] > #explorer-headerbar button.new-intervention i:after {
  font-family: "fontello";
  content: "";
  position: absolute;
  font-style: normal;
  right: 12px;
  bottom: 5px;
  font-size: 0.7em;
}
.scrollable-area[data-value=explorer] > #explorer-headerbar button.new-folder i:before, .scrollable-area[data-value=explorer] > #explorer-headerbar button.new-intervention i:before {
  font-size: 1.5em;
  padding-right: 6px;
}
.scrollable-area[data-value=explorer] ul.current-position {
  background: white;
}
.scrollable-area[data-value=explorer] #explorer-breadcrumbs {
  display: flex;
}
.scrollable-area[data-value=explorer] #explorer-breadcrumbs > div {
  display: flex;
  position: relative;
  align-items: center;
  padding: 0 1em;
  cursor: pointer;
  color: #002b7f;
}
.scrollable-area[data-value=explorer] #explorer-breadcrumbs > div:not(:last-child) {
  margin-right: 14px;
}
.scrollable-area[data-value=explorer] #explorer-breadcrumbs > div:not(:last-child):after {
  content: "";
  font-family: fontello;
  position: absolute;
  right: -10px;
  top: 16px;
}
.scrollable-area[data-value=explorer] #explorer-breadcrumbs > div:hover {
  background: rgba(203, 224, 239, 0.5);
}
.scrollable-area[data-value=explorer] .current-position > li, .scrollable-area[data-value=explorer] .current-position li:first-child {
  display: block;
  border-bottom: 1px solid #ddd;
  padding: 0.5em;
  cursor: pointer;
}
.scrollable-area[data-value=explorer] .current-position > li:hover, .scrollable-area[data-value=explorer] .current-position li:first-child:hover {
  background: rgba(203, 224, 239, 0.5);
}
.scrollable-area[data-value=explorer] .current-position > li:before, .scrollable-area[data-value=explorer] .current-position li:first-child:before {
  font-family: "fontello";
  margin-left: 0.5em;
  margin-right: 0.5em;
}
.scrollable-area[data-value=explorer] .folder:before {
  content: "";
  font-family: "fontello";
  margin-left: 0.5em;
  margin-right: 0.5em;
  color: #FFDA3D;
  text-shadow: 1px 1px 0px black, -1px -1px 0px black, 1px -1px 0px black, -1px 1px 0px black;
}
.scrollable-area[data-value=explorer] .intervention:before {
  content: "";
  font-family: "fontello";
  margin-left: 0.5em;
  margin-right: 0.5em;
}
.scrollable-area[data-value=explorer] .model:before {
  content: "";
}
.scrollable-area[data-value=explorer] .file-edit-mode > span {
  display: flex;
}
.scrollable-area[data-value=explorer] .file-edit-mode > span.explanation:empty:before {
  font-family: "comment";
  content: "";
}
.scrollable-area[data-value=explorer] .file-edit-mode > span.explanation:empty:after {
  content: "Explanation";
  padding-left: 0.3rem;
  color: gray;
  font-style: italic;
}
.scrollable-area[data-value=explorer] .file-edit-mode > span > input {
  padding: 0.25em;
  flex: 1;
}
.scrollable-area[data-value=explorer] .three-dots {
  text-align: right;
}
.scrollable-area[data-value=explorer] .three-dots > i {
  padding: 10px;
  margin: -5px;
  border-radius: 50%;
  position: relative;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu {
  position: absolute;
  background: white;
  border: 1px solid #ddd;
  color: #002b7f;
  box-shadow: 2px 2px 4px #ddd;
  font-style: normal;
  white-space: nowrap;
  right: -10px;
  width: 200px;
  z-index: 1;
  text-align: left;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu > li {
  display: block;
  padding: 0.5em 2em 0.5em 1em;
  border-bottom: 1px solid #ddd;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu > li > i {
  color: #002b7f;
  position: relative;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu > li > i:hover {
  background: transparent;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu > li > i.icon-user-o:after {
  font-family: "fontello";
  content: "";
  position: absolute;
  font-style: normal;
  right: 5px;
  bottom: 5px;
  font-size: 0.9em;
}
.scrollable-area[data-value=explorer] .three-dots > i > .context-menu > li:hover {
  background: rgba(203, 224, 239, 0.5);
}
.scrollable-area[data-value=explorer][data-view=table] li.explorer-li, .scrollable-area[data-value=explorer][data-view=table] .current-position > li:first-child {
  display: none;
}
.scrollable-area[data-value=explorer][data-view=table] .current-position > li, .scrollable-area[data-value=explorer][data-view=table] .current-position > ul > li:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-width: 100vw;
}
.scrollable-area[data-value=explorer][data-view=table] span {
  flex: 1 1 100px;
  padding: 0 0.5em;
  color: #555;
}
.scrollable-area[data-value=explorer][data-view=table] span.display-name, .scrollable-area[data-value=explorer][data-view=table] span.explanation {
  flex: 1 0 320px;
  min-height: 22px;
}
.scrollable-area[data-value=explorer][data-view=table] span.display-name {
  color: #002b7f;
  padding: 0.2em 0.5em;
}
.scrollable-area[data-value=explorer][data-view=table] span.explanation {
  font-size: 0.8rem;
}
.scrollable-area[data-value=explorer][data-view=table] span.owner {
  font-size: 0.8rem;
  color: green;
  display: flex;
  align-items: center;
}
.scrollable-area[data-value=explorer][data-view=table] span.owner .user {
  min-width: 40px;
  margin: 0 5px 0 0;
}
.scrollable-area[data-value=explorer][data-view=table] span.created {
  font-size: 0.8rem;
}
.scrollable-area[data-value=explorer][data-view=table] span.last-modified {
  font-size: 0.8rem;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] .current-position {
  margin: 0.5em;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] .explorer-li, .scrollable-area[data-value=explorer][data-view=thumbnail] .current-position > li:first-child {
  display: none;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] .current-position > li, .scrollable-area[data-value=explorer][data-view=thumbnail] .current-position > ul > li:first-child {
  display: inline-flex;
  border: 1px solid #ddd;
  padding: 0.5em;
  margin: 0.5em;
  flex-direction: column;
  align-items: center;
  width: 250px;
  text-align: center;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] .current-position > li:before, .scrollable-area[data-value=explorer][data-view=thumbnail] .current-position > ul > li:first-child:before {
  font-size: 3em;
  margin: 0;
  margin-bottom: 0.1em;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] span {
  display: none;
}
.scrollable-area[data-value=explorer][data-view=thumbnail] span:first-child {
  display: block;
}

.loading {
  text-align: center;
  padding: 1em;
}
.loading img {
  width: 30px;
  height: 30px;
}

footer {
  display: none;
  /* Temporary, because of overlap */
  position: fixed;
  bottom: 10px;
  z-index: 111;
  text-align: right;
  right: 5px;
  padding: 6px 10px 0 0;
}

/* Within #topbar-major-mode-controls */
#global-search-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "ignore-filters-button next-button previous-button exit-button global-search-input-with-icons";
  grid-template-columns: repeat(6, max-content);
  grid-column-gap: 5px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (Other specifications:) */
}
#global-search-controls > #ignore-filters-button-global-search {
  display: none;
  /* ^ Will be overridden by element style when results are shown. */
}

#body-wrapper.showing-global-search-results.small-screen-mode #global-search-input-with-icons {
  display: none;
}

#global-search-input-with-icons {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: 1.5em;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "gap0 cancel-icon gap1 input-field gap2 search-icon gap3 arrow gap4";
  grid-template-columns: 5px max-content 5px max-content 5px max-content 5px max-content 5px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (Other specifications:) */
  border-style: none;
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.99);
}
#global-search-input-with-icons > i.icon-cancel {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: cancel-icon;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  font-size: 10px;
}
#global-search-input-with-icons > input {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: input-field;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  width: 125px;
  /* (Other specifications:) */
  border: 0 none;
  margin-left: -20px;
  padding: 3px 0 3px 20px;
  background: transparent;
}
#global-search-input-with-icons > i.icon-search {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: search-icon;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  font-size: 15px;
  /* (Other specifications:) */
  cursor: pointer;
}
#global-search-input-with-icons > i.arrow-icon {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: arrow;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  font-size: 15px;
  width: 15px;
  transition: width 0.2s ease, transform 0.2s ease;
  overflow: hidden;
  cursor: pointer;
}
#global-search-input-with-icons > i.arrow-icon[data-number_of_recent_searches="0"] {
  width: 0;
}
#global-search-input-with-icons > i.arrow-icon.opened {
  transform: rotate(-180deg) translateY(-1px);
}

/* (Other specifications:) */
.recent-searches {
  position: absolute;
  top: 45px;
  z-index: 11;
  width: 200px;
  background: white;
  padding: 5px 0;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.recent-searches .recent-search {
  padding: 1px 5px;
  cursor: pointer;
  font-size: 0.85em;
}
.recent-searches .recent-search:hover {
  background: var(--color-main-topbar);
  color: white;
}

/* Within #main-topbar */
#hlc-toggle-and-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: 60px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "hlc-toggle high-level-controls";
  grid-template-columns: max-content max-content;
  grid-template-rows: 100%;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  position: relative;
  /* Control the visibility of the two components from here, since the data attribute
  * * is attached to this element: */
}
@media all and (max-width: 664px) {
  #hlc-toggle-and-controls[data-hlc_show_toggle_or_controls=toggle] > #hlc-toggle {
    display: grid;
  }
  #hlc-toggle-and-controls[data-hlc_show_toggle_or_controls=toggle] > #high-level-controls {
    display: none;
  }
  #hlc-toggle-and-controls[data-hlc_show_toggle_or_controls=controls] > #hlc-toggle {
    display: none;
  }
  #hlc-toggle-and-controls[data-hlc_show_toggle_or_controls=controls] > #high-level-controls {
    display: grid;
  }
}
#hlc-toggle-and-controls > #hlc-toggle {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: stretch;
  height: auto;
  justify-self: center;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "hlc-toggle-button";
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  display: none;
}
#hlc-toggle-and-controls > #high-level-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  grid-area: high-level-controls;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-columns: max-content;
  grid-auto-columns: max-content;
  grid-template-rows: 60px;
  grid-column-gap: 10px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  justify-items: center;
  /* (Other specifications:) */
}
@media all and (max-width: 664px) {
  #hlc-toggle-and-controls > #high-level-controls {
    position: absolute;
    right: 0;
    padding-left: 5px;
    padding-right: 5px;
    z-index: 10;
    background-color: white;
    width: max-content;
    min-width: 175px;
    /* ^ Hack because it's sometimes a bit too narrow, for unknown reasons. */
    grid-template-rows: 60px;
    grid-auto-rows: 60px;
    grid-row-gap: 5px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
    justify-items: start;
  }
}
#hlc-toggle-and-controls > #high-level-controls > .hlc-cancel-option {
  display: none;
}
@media all and (max-width: 664px) {
  #hlc-toggle-and-controls > #high-level-controls > .hlc-cancel-option {
    display: block;
    justify-self: start;
    height: 20px;
  }
}
#hlc-toggle-and-controls > #high-level-controls > .hlc-widget {
  /* Where is this element positioned within its surrounding grid? */
  grid-row: 1;
  grid-column: auto;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: 100%;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-columns: 100%;
  grid-template-rows: 100%;
  /* How are the items to be aligned within their cells? */
  align-items: start;
  justify-items: center;
  /* (Other specifications:) */
}
#hlc-toggle-and-controls > #high-level-controls > .hlc-widget > .dropdown-menu-with-title {
  padding-top: 0px;
}
#hlc-toggle-and-controls > #high-level-controls > .hlc-widget.ignored-hlc-widget {
  opacity: 0.3;
}
@media all and (max-width: 664px) {
  #hlc-toggle-and-controls > #high-level-controls > .hlc-widget {
    grid-row: auto;
    grid-column: 1;
  }
  #hlc-toggle-and-controls > #high-level-controls > .hlc-widget .dropdown-menu-title {
    color: black;
  }
}

/* Not currently needed; may be inefficient for the whole UI (ul, li). */
body.login-overlay-active > div {
  filter: blur(5px);
  transition: all 300ms ease;
}
body.login-overlay-active > #login-overlay {
  display: flex;
  filter: blur(0);
  background: rgba(255, 255, 255, 0.5);
}
body.login-overlay-active > #login-overlay > .content {
  transform: scale(1);
  opacity: 1;
}

/* To do: Put in a better place: */
.password-hint {
  max-width: 300px;
}

#login-overlay {
  display: none;
  margin: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: fixed;
  overflow: hidden;
  z-index: 100;
  background: rgba(0, 0, 0, 0);
  transition: all 300ms ease;
}
#login-overlay > .content {
  padding: 2em;
  background: white;
  max-width: 600px;
  border: 2px solid #ddd;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all 300ms ease;
  transform: scale(1.2);
  opacity: 0;
}
#login-overlay > .content p {
  margin-bottom: 0.8em;
  border-bottom: 1px solid #ddd;
}
#login-overlay > .content > .close-overlay {
  position: absolute;
  top: 0;
  right: 0;
  color: #C1A;
  cursor: pointer;
}
#login-overlay > .content > .close-overlay:hover {
  background-color: rgba(203, 224, 239, 0.5);
}
#login-overlay > .content > .login-input-wrapper {
  display: flex;
  align-items: flex-end;
  color: #002b7f;
  position: relative;
  margin-top: 0.7rem;
}
#login-overlay > .content > .login-input-wrapper label {
  position: absolute;
  top: -0.2rem;
  text-transform: uppercase;
  color: gray;
  font-size: 0.7rem;
  left: 26px;
}
#login-overlay > .content > .login-input-wrapper i {
  position: absolute;
  padding: 0.15em 0.3em;
}
#login-overlay > .content > .login-input-wrapper i.icon-eye, #login-overlay > .content > .login-input-wrapper i.icon-eye-off {
  right: 0;
  cursor: pointer;
}
#login-overlay > .content > .login-input-wrapper input {
  width: 100%;
  max-width: 320px;
  border: 1px solid #ddd;
  background: white;
  padding: 0.3em 2.3em;
  margin-top: 0.3em;
}
#login-overlay > .content > .login-input-wrapper input:first-of-type {
  margin-top: 1em;
}
#login-overlay > .content > .login-input-wrapper input.label {
  margin: 0;
  max-width: 100%;
}
#login-overlay > .content input[type=submit] {
  background: rgba(203, 224, 239, 0.5);
  color: #002b7f;
  cursor: pointer;
  padding: 0.3em;
  border: 1px solid #ddd;
  margin-top: 1em;
}

.topbar {
  height: 60px;
}

#main-topbar {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: 60px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "topbar-left-section  topbar-nonminor-and-minor-mode-controls topbar-space-in-middle topbar-default-and-major-mode-controls topbar-right-section";
  grid-template-columns: repeat(2, max-content) 1fr repeat(2, max-content);
  /*^We introduce empty grid areas on the left and right to get the gap to appear there as well. To get any other margin, you'll have to use something like a border. */
  grid-template-rows: 100%;
  grid-column-gap: 7px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (Other specifications:) */
  background-color: var(--color-main-topbar);
}
#body-wrapper[data-structure_type=Model] #main-topbar {
  background-color: var(--color-main-topbar-for-models);
}
#main-topbar > .topbar-main-section {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: auto;
  /* Does the element always have display: grid? */
  display: grid;
  grid-column-gap: 5px;
  align-items: center;
}
#main-topbar > .topbar-main-section > .topbar-subsection {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-column-gap: 6px;
  grid-template-rows: 60px;
  grid-auto-flow: row;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
#main-topbar > #topbar-left-section {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: auto;
  justify-self: auto;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "menu-icon-subsection";
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
#main-topbar > #topbar-left-section > #menu-icon-subsection {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  padding: 10px;
}
#body-wrapper[data-left_sidebar_level="1"] #main-topbar > #topbar-left-section > #menu-icon-subsection, #body-wrapper[data-left_sidebar_level="2"] #main-topbar > #topbar-left-section > #menu-icon-subsection {
  display: none;
}
#main-topbar > #topbar-left-section > #menu-icon-subsection > i {
  cursor: pointer;
  font-size: 24px;
  height: 31px;
  /* ^From trial and error, not understood. */
  align-self: center;
  color: rgba(255, 255, 255, 0.99);
}
#main-topbar > #topbar-nonminor-mode-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  justify-self: start;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "controls";
  grid-template-columns: max-content;
  /* How are the items to be aligned within their cells? */
}
#main-topbar > #topbar-nonminor-mode-controls > #initiate-addition-or-editing-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  justify-self: start;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "enter-add-cells-mode-button enter-start-edit-mode-button";
  grid-template-columns: repeat(2, max-content);
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
#main-topbar > #topbar-minor-mode-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  justify-self: start;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "controls";
  grid-template-columns: max-content;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
#main-topbar > #topbar-minor-mode-controls > #start-edit-controls {
  grid-template-areas: "exit-button instruction ";
  grid-template-columns: repeat(2, max-content);
}
#main-topbar > #topbar-minor-mode-controls > #move-cell-controls {
  grid-template-areas: "exit-button instruction ";
  grid-template-columns: repeat(2, max-content);
}
#main-topbar > #topbar-minor-mode-controls > #copy-cell-controls {
  grid-template-areas: "exit-button instruction ";
  grid-template-columns: repeat(2, max-content);
}
#main-topbar > #topbar-minor-mode-controls > #active-cell-controls {
  grid-template-areas: "cancel-button finish-button scroll-button";
  grid-template-columns: repeat(3, max-content);
}
#main-topbar > #topbar-minor-mode-controls > #add-cells-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "exit-button instruction";
  grid-template-columns: repeat(2, max-content);
  /* How are the items to be aligned within their cells? */
}
#main-topbar > #topbar-minor-mode-controls > #select-addition-candidates-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "accept-selected-items select-all unselect-all exit-button";
  grid-template-columns: repeat(4, max-content);
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
}
#main-topbar > #topbar-minor-mode-controls > #select-addition-candidates-controls .unselect-all {
  color: #ffffd0;
}
#main-topbar > #topbar-minor-mode-controls > #select-addition-candidates-controls .select-all {
  color: #eefed6;
}
#main-topbar > #topbar-minor-mode-controls > #select-addition-candidates-controls .icon-stop:before {
  outline: 2px solid black;
  outline-offset: -3px;
}
#main-topbar > #topbar-default-mode-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: auto;
  justify-self: end;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "hlc-toggle-and-controls tipsheet-selector global-search-button";
  grid-template-columns: repeat(3, max-content);
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  /* > #hlc-toggle-and-controls - See separate Sass file */
}
#main-topbar > #topbar-default-mode-controls > #tipsheet-selector {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: center;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "widget";
  grid-template-columns: max-content;
  /* How are the items to be aligned within their cells? */
  align-items: start;
  justify-items: center;
}
#main-topbar > #topbar-default-mode-controls > #tipsheet-selector > .dropdown-menu-with-title {
  padding-top: 0px;
}
#main-topbar > #topbar-default-mode-controls > #global-search-button {
  padding-left: 5px;
}
#main-topbar > #topbar-major-mode-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: auto;
  justify-self: end;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "controls";
  grid-template-columns: max-content;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  /* > #global-search-controls: See separate sass file */
}
#main-topbar > #topbar-major-mode-controls > #configuration-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: auto;
  justify-self: auto;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "exit-button";
  grid-template-columns: max-content;
  /* How are the items to be aligned within their cells? */
}
#main-topbar > #topbar-right-section {
  display: grid;
  grid-template-areas: "subscribers";
  grid-template-columns: repeat(1, max-content);
  /* > #chat-toggle
  * //display: flex
  * > i
  * font-size: 1.35rem
  * box-shadow: none
  * border: 1px solid #ddd
  * border-radius: 50%
  * padding: .2em .3em */
  /* > #further-icons
  * position: relative
  * transition: all .3s ease
  * &.opened
  * margin-left: 0
  * >div
  * &.settings-toggle, &#chat-toggle, &.generate-labels
  *  right: 0
  *  opacity: 1
  * > div.settings-toggle, > div.chat-toggle, > div.generate-labels
  * &.settings-toggle
  * right: -150px
  * opacity: 0
  * &#chat-toggle
  * right: -100px
  * opacity: 0
  * &.generate-labels
  * right: -50px
  * opacity: 0
  * transition: all .3s ease
  * background: white
  * position: relative
  * right: 0
  * cursor: pointer
  * height: 40px
  * width: 40px
  * border-radius: 50%
  * margin: 5px
  * border: 1px solid $color-border
  * display: flex
  * align-items: center
  * justify-content: center
  * color: $color-dark
  * > i
  * box-shadow: none
  * font-size: 1.3rem */
}
#main-topbar > #topbar-right-section > #subscriber-avatars {
  display: flex;
}
@media all and (max-width: 664px) {
  #main-topbar > #topbar-right-section > #subscriber-avatars {
    display: none;
    /* ^ Hack for now to ensure that everything fits
    * onto a small screen, 2019-11-20. */
  }
}

/* The following can appear in various places within the topbar: */
.topbar-instructions {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: instruction;
  /* How is this element aligned within its grid cell? */
  align-self: center;
  /* How big is this element? */
  height: 40px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "icon text";
  grid-template-columns: repeat(2, max-content);
  /* How are the items to be aligned within their cells? */
  grid-column-gap: 3px;
  align-items: center;
  /* (Other specifications:) */
  background-color: rgba(255, 255, 255, 0.99);
  box-shadow: 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
}
.topbar-instructions > .topbar-instructions-icon {
  grid-area: icon;
  padding-left: 5px;
}
.topbar-instructions > .topbar-instructions-text {
  grid-area: text;
  max-width: 200px;
  padding-right: 7px;
  font-size: 14px;
}

/* Middle part of #body-wrapper, between sidebars. */
#main-ui-area {
  transform: translateX(-420px);
  flex: 1 0 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  transition: all 300ms ease;
}
#main-ui-area > .scrollable-wrapper {
  position: relative;
  height: calc(100% - 60px);
  width: 100%;
  overflow-y: scroll;
  overflow: auto;
  background-color: var(--color-main-background);
}
@media print {
  #main-ui-area > .scrollable-wrapper {
    position: static;
  }
}
#main-ui-area > .scrollable-wrapper > .scrollable-area {
  position: absolute;
  height: 100%;
  width: 100%;
  display: none;
}
@media print {
  #main-ui-area > .scrollable-wrapper > .scrollable-area {
    overflow: visible;
  }
}
#main-ui-area > .scrollable-wrapper > .scrollable-area.active-area {
  display: block;
}

#main-panel {
  /* Where is this element positioned within its surrounding grid? */
  /* How big is this element? */
  height: 100%;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  /* How are the items to be aligned within their cells? */
  align-items: flex-start;
  /* (Other specifications:) */
}

#show-changes-controls {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: auto;
  justify-self: auto;
  /* How big is this element? */
  /* Does the element always have display: grid? */
  /* What does the grid look like? */
  grid-template-areas: "ignore-filters-button next-button previous-button exit-button";
  grid-template-columns: repeat(4, max-content);
  grid-column-gap: 5px;
  /* How are the items to be aligned within their cells? */
  /* Other specifications: */
}

.settings-menu {
  position: absolute;
  border: 1px solid #ddd;
  padding: 1em;
  background: white;
  z-index: 1;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
  cursor: default;
  color: #333;
  white-space: normal;
  top: 20px;
}
.settings-menu > h4 {
  margin-bottom: 0.5em;
  cursor: pointer;
}
.settings-menu > h4 > i:hover {
  background: transparent;
}
.settings-menu > h4 > input[type=checkbox] {
  margin-left: 5px;
  top: 2px;
  position: relative;
}
.settings-menu > ul {
  list-style: none;
  font-weight: normal;
  margin-bottom: 1em;
  border-bottom: 1px solid #ddd;
  padding-bottom: 1em;
}
.settings-menu > ul:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0 none;
}
.settings-menu > ul > li {
  display: flex;
}
.settings-menu > ul > li > span > .autocomplete-wrapper {
  width: 100%;
  display: flex;
}
.settings-menu > ul > li > span:not(.content-editable) {
  width: 165px;
  display: inline-block;
  padding: 0 0.5em;
}
.settings-menu > ul > li > span.content-editable {
  flex: 1;
  padding: 2px 5px;
}
.settings-menu > ul > li > .label {
  display: flex;
}
.settings-menu > ul > li > .label input[type=checkbox] {
  margin-top: 5px;
}
.settings-menu > ul > li > .title {
  font-weight: 600;
  margin-bottom: 0.2em;
}
.settings-menu > ul > li > select {
  width: 100%;
  padding: 0.2em 0;
}
.settings-menu > ul > li > input:not([type=checkbox]), .settings-menu > ul > li > textarea {
  padding: 5px;
  border: 1px solid #ddd;
  width: 100%;
  height: 30px;
  min-height: 30px;
}
.settings-menu > ul.filter-visibility > li > span, .settings-menu > ul.sorting > li > span {
  width: 100%;
}
.settings-menu .sorting-type {
  font-family: "fontello", sans-serif;
  height: 28px;
}
.settings-menu .sorting-type > option {
  font-family: "fontello", sans-serif;
}
.settings-menu > .buttons {
  margin-top: 1em;
  display: flex;
  justify-content: space-evenly;
}
.settings-menu > .buttons > li {
  border: 1px solid #ddd;
  padding: 0 0.5em;
  cursor: pointer;
}
.settings-menu > .buttons > li:hover {
  background-color: rgba(203, 224, 239, 0.5);
}
.settings-menu > .buttons > li i:hover {
  background-color: transparent;
}
.settings-menu > .set-value-options > .set-value-option > .set-value-input {
  display: none;
}
.settings-menu > .set-value-options > .set-value-option > input[type=checkbox] {
  align-self: center;
}
.settings-menu > .set-value-options > .set-value-option > input[type=checkbox]:checked + .set-value-input {
  display: inline-block;
}
.settings-menu > .set-value-submit {
  display: flex;
}
.settings-menu > .set-value-submit > .scope > input[type=radio] {
  margin: 0 0.25rem 0 0.5rem;
}
.settings-menu > .set-value-submit > .submit-wrapper {
  align-items: center;
  display: flex;
  padding: 0.5rem;
}
.settings-menu > .set-value-submit > .submit-wrapper > input {
  padding: 0.25rem 0.5rem;
}
.settings-menu > .filter-input .icon-down-big, .settings-menu > .filter-input .icon-up-big {
  display: none;
}

.filter-options .content-editable, .set-value-options .content-editable {
  width: 100%;
  border: 1px solid #ddd;
  padding: 2px;
}

/* Rather quickly optimized through minimization of descendant selectors; not yet thoroughly
 * * tested, 2019-12-20 */
.sidebar {
  display: flex;
  background: white;
  flex: 0 0 420px;
  transform: translateX(-480px);
  transition: all 300ms ease;
  border-right: 1px solid #ddd;
  overflow: hidden;
  overflow-y: auto;
  overflow: -moz-scrollbars-none;
  -ms-overflow-style: none;
  z-index: 2;
  /* Apparently obsolete, 2019-12-20: 
  * .settings
  * padding: 5px	
  * ul
  * border-bottom: 1px solid $color-border
  * list-style: none
  * li
  *  margin-bottom: .1rem
  *  p
  *   display: inline-block
  *   margin-right: .3rem
  *  select
  *   border: 1px solid $color-border
  *   width: auto
  *   padding: 0 .2rem */
  /* Not possible as child selector?: */
}
.sidebar::-webkit-scrollbar {
  display: none;
}
.sidebar #close-left-sidebar-button, .sidebar #close-left-sidebar-second-level-button {
  /* How big is this element? */
  height: 60px;
  width: 100%;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  cursor: pointer;
}
.sidebar #close-left-sidebar-button > .icon-left-big, .sidebar #close-left-sidebar-second-level-button > .icon-left-big {
  grid-row: 1;
  grid-column: 1;
  justify-self: center;
  align-self: center;
  font-style: normal;
}
.sidebar div {
  width: 420px;
  max-width: 420px;
  transition: all 300ms ease;
  /* Not being used, inefficient, 2019-12-20: 
  * .control-buttons
  * > div
  * display: inline-block
  * color: $color-dark
  * border: 1px solid $color-light
  * padding: 2px
  * margin: 2px
  * width: auto
  * cursor: pointer */
}
.sidebar div .sidebar-topbar {
  display: flex;
  position: -webkit-sticky;
  position: sticky;
  align-items: center;
  justify-content: center;
  color: #002b7f;
  font-weight: 600;
  height: 60px;
  top: 0;
  background: white;
  z-index: 1;
  border-bottom: 1px solid #ddd;
}
.sidebar div button, .sidebar div select {
  border: 0 none;
  padding: 0;
  font-size: 1em;
  flex: 0 0 auto;
  width: 100%;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
}
.sidebar .first-level, .sidebar .second-level {
  /* Where is the following still relevant? */
}
.sidebar .first-level > .wrapper, .sidebar .second-level > .wrapper {
  padding: 0.5em 0;
  font-size: 0.9em;
  border-bottom: 1px solid #ddd;
  width: 480px;
  /* Is the following still relevant? 2019-12-20 */
}
.sidebar .first-level > .wrapper.action-item, .sidebar .second-level > .wrapper.action-item {
  background: #efefef;
}
.sidebar .first-level > .wrapper.action-item:not(.active-menu-item), .sidebar .second-level > .wrapper.action-item:not(.active-menu-item) {
  display: none;
}
.sidebar .first-level > .wrapper > i, .sidebar .first-level > .wrapper > button > i, .sidebar .second-level > .wrapper > i, .sidebar .second-level > .wrapper > button > i {
  padding: 0;
  position: absolute;
  left: 0.7em;
  top: calc(50% - 0.7em);
}
.sidebar .first-level > .wrapper > button, .sidebar .second-level > .wrapper > button {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  padding-left: 2.5em;
  position: relative;
  outline: 0;
}
.sidebar .first-level > .wrapper > button span, .sidebar .second-level > .wrapper > button span {
  flex: 0 1 auto;
  text-align: left;
}
.sidebar .first-level > .wrapper > button span > div, .sidebar .second-level > .wrapper > button span > div {
  display: inline;
  margin-right: 1rem;
}
.sidebar .first-level > .wrapper > .comment-dialog, .sidebar .second-level > .wrapper > .comment-dialog {
  padding-left: 2.5em;
  padding-right: 0.5em;
  display: flex;
}
.sidebar .first-level > .wrapper > .comment-dialog input, .sidebar .second-level > .wrapper > .comment-dialog input {
  flex: 1;
  padding: 0 0.3em;
}
.sidebar .first-level > .wrapper > .comment-dialog div, .sidebar .second-level > .wrapper > .comment-dialog div {
  flex: 0;
  padding: 0 0.3em;
  cursor: pointer;
  border: 1px solid #ddd;
  color: #002b7f;
}
.sidebar .first-level > .wrapper > span:last-child:not(.hide), .sidebar .second-level > .wrapper > span:last-child:not(.hide) {
  font-size: 0.9em;
  color: #555;
}
.sidebar .first-level > .select, .sidebar .second-level > .select {
  flex-wrap: wrap;
  padding-left: 2.5em;
  position: relative;
}
.sidebar .first-level > .select > span, .sidebar .second-level > .select > span {
  padding: 0 5px 0 0;
  flex: 1 0 100%;
}
.sidebar .first-level .explorer, .sidebar .second-level .explorer {
  font-size: 0.9em;
  border-bottom: 1px solid #ddd;
  padding: 0.5em;
  /* For i and ul, we can't use a child selector, because the icon can occur on various 
  * * levels of the explorer; hence inefficient. */
}
.sidebar .first-level .explorer .quicksearch-wrapper, .sidebar .second-level .explorer .quicksearch-wrapper {
  position: relative;
  height: 2rem;
}
.sidebar .first-level .explorer .quicksearch-wrapper .icon-search, .sidebar .second-level .explorer .quicksearch-wrapper .icon-search {
  position: absolute;
  z-index: 1;
  color: #002b7f;
  padding: 4px 6px;
}
.sidebar .first-level .explorer .quicksearch-wrapper .quicksearch, .sidebar .second-level .explorer .quicksearch-wrapper .quicksearch {
  position: absolute;
  width: calc(100% - 1rem);
  padding: 0.2rem 1.5rem;
}
.sidebar .first-level .explorer .quicksearch-wrapper .clear-quicksearch, .sidebar .second-level .explorer .quicksearch-wrapper .clear-quicksearch {
  width: 2rem;
  display: inline-block;
  color: #777;
  position: absolute;
  right: 1rem;
  padding: 4px;
  margin: 0;
  cursor: pointer;
}
.sidebar .first-level .explorer .quicksearch-wrapper .clear-quicksearch:hover, .sidebar .second-level .explorer .quicksearch-wrapper .clear-quicksearch:hover {
  color: #C1A;
  background-color: rgba(203, 224, 239, 0.5);
}
.sidebar .first-level .explorer i:hover, .sidebar .second-level .explorer i:hover {
  background: transparent;
}
.sidebar .first-level .explorer ul, .sidebar .second-level .explorer ul {
  list-style: none;
  margin-left: 1.5em;
}
.sidebar .first-level .explorer ul[data-id="0"], .sidebar .second-level .explorer ul[data-id="0"] {
  margin-left: 1.75rem;
}
.sidebar .first-level .explorer ul li, .sidebar .second-level .explorer ul li {
  cursor: pointer;
  max-height: 50px;
  transition: max-height 0.3s ease;
  background: white;
}
.sidebar .first-level .explorer ul li:hover, .sidebar .second-level .explorer ul li:hover {
  background: rgba(203, 224, 239, 0.5);
}
.sidebar .first-level .explorer .folder:before, .sidebar .first-level .explorer .intervention:before, .sidebar .first-level .explorer .model:before, .sidebar .second-level .explorer .folder:before, .sidebar .second-level .explorer .intervention:before, .sidebar .second-level .explorer .model:before {
  font-family: "fontello";
  margin-right: 0.5em;
}
.sidebar .first-level .explorer .folder, .sidebar .second-level .explorer .folder {
  color: #002b7f;
  margin-left: -1.5em;
}
.sidebar .first-level .explorer .folder.closed ~ *, .sidebar .second-level .explorer .folder.closed ~ * {
  display: none;
}
.sidebar .first-level .explorer .folder:before, .sidebar .second-level .explorer .folder:before {
  content: "";
}
.sidebar .first-level .explorer .folder.closed:before, .sidebar .second-level .explorer .folder.closed:before {
  content: "";
  margin-right: 0.75em;
}
.sidebar .first-level .explorer .intervention, .sidebar .second-level .explorer .intervention {
  margin-left: 1.5em;
}
.sidebar .first-level .explorer .intervention:before, .sidebar .second-level .explorer .intervention:before {
  content: "";
}
.sidebar .first-level .explorer .intervention.active:before, .sidebar .second-level .explorer .intervention.active:before {
  content: "";
  color: #002b7f;
}
.sidebar .first-level .explorer .model, .sidebar .second-level .explorer .model {
  margin-left: 1.5em;
}
.sidebar .first-level .explorer .model:before, .sidebar .second-level .explorer .model:before {
  content: "";
}
.sidebar .first-level .explorer .model.active:before, .sidebar .second-level .explorer .model.active:before {
  content: "";
  color: #002b7f;
}
.sidebar .first-level .permissions-box, .sidebar .second-level .permissions-box {
  padding: 1em;
  font-size: 0.9em;
}
.sidebar .first-level .permissions-box > ul, .sidebar .second-level .permissions-box > ul {
  list-style: none;
}
.sidebar .first-level .permissions-box > ul > li, .sidebar .second-level .permissions-box > ul > li {
  margin-bottom: 1em;
}
.sidebar .first-level .permissions-box > ul > li > span, .sidebar .second-level .permissions-box > ul > li > span {
  display: flex;
  width: 100%;
  padding: 0.1em 0;
}
.sidebar .first-level .permissions-box > ul > li > span label, .sidebar .second-level .permissions-box > ul > li > span label {
  cursor: pointer;
}
.sidebar .first-level .permissions-box > ul > li > span > select, .sidebar .second-level .permissions-box > ul > li > span > select {
  width: auto;
  margin-left: 0.5em;
  border: 1px solid #ddd;
  padding: 0 0.25em;
  flex: 1 0 150px;
}
.sidebar .first-level .permissions-box > ul > li > span > select[disabled=disabled], .sidebar .second-level .permissions-box > ul > li > span > select[disabled=disabled] {
  cursor: not-allowed;
}
.sidebar .first-level .permissions-box > ul > li > span input[type=text], .sidebar .second-level .permissions-box > ul > li > span input[type=text] {
  flex: 1 0 auto;
}
.sidebar .first-level .permissions-box > ul > li > span input[type=radio], .sidebar .second-level .permissions-box > ul > li > span input[type=radio] {
  margin-right: 0.5em;
  padding: 0 0.25em;
}
.sidebar .first-level .permissions-box > ul > li > span > i, .sidebar .second-level .permissions-box > ul > li > span > i {
  padding: 0 0 0 0.2em;
  margin-right: 0.5em;
  color: #002b7f;
}
.sidebar .first-level .permissions-box > ul > li > span > i:hover, .sidebar .second-level .permissions-box > ul > li > span > i:hover {
  background: none;
}
.sidebar .first-level .permissions-box > ul > li > span > button, .sidebar .second-level .permissions-box > ul > li > span > button {
  width: auto;
  border: 1px solid #ddd;
  padding: 0;
  margin-left: 0.5em;
}
.sidebar .first-level .permissions-box > ul > li > span > button.revoke, .sidebar .second-level .permissions-box > ul > li > span > button.revoke {
  border: 1px solid #C1A;
  color: #C1A;
}
.sidebar .first-level .permissions-box > ul > li > span > button.revoke > i, .sidebar .second-level .permissions-box > ul > li > span > button.revoke > i {
  color: #C1A;
}
.sidebar .first-level .permissions-box > ul > li > span > button > i, .sidebar .second-level .permissions-box > ul > li > span > button > i {
  margin-right: 0.2em;
}

#sidebar-explorer .folder i {
  margin-right: 8px;
}

.sidebar div .explorer .override-closed-folders .folder.closed ~ * {
  display: block;
}

#body-wrapper[data-left_sidebar_level="2"] .first-level, #body-wrapper[data-left_sidebar_level="2"] .second-level {
  transform: translateX(-420px);
}

#right-sidebar {
  display: none;
}

#body-wrapper {
  display: flex;
  height: calc(100% - 1px);
}
#body-wrapper[data-left_sidebar_level="1"] #left-sidebar, #body-wrapper[data-left_sidebar_level="1"] #main-ui-area, #body-wrapper[data-left_sidebar_level="2"] #left-sidebar, #body-wrapper[data-left_sidebar_level="2"] #main-ui-area {
  transform: translateX(0);
}

/* To do: Change to grid. */
.autocomplete-wrapper {
  position: relative;
}
.autocomplete-wrapper > .autocomplete {
  position: absolute;
  z-index: 1;
  top: 100%;
  left: 0;
  margin: 0em !important;
  min-width: 100%;
  list-style: none;
  border: 1px solid #ddd;
  box-shadow: 0 0 3px rgba(0, 43, 127, 0.5);
  background: white;
}
.autocomplete-wrapper > .autocomplete > li {
  padding: 0.2em 0.5em;
  cursor: pointer;
  white-space: normal;
  display: block;
}
.autocomplete-wrapper > .autocomplete > li:hover, .autocomplete-wrapper > .autocomplete > li.selected-autocomplete-option {
  background: rgba(203, 224, 239, 0.5);
}
.autocomplete-wrapper > .autocomplete > li > span {
  border: 0 none !important;
  /* important wäre vermeidbar, würde den Code aber unübersichtlich machen */
}
.autocomplete-wrapper > .autocomplete > li.autocomplete-highlight {
  font-weight: bold;
  width: auto;
  margin: 0;
  display: inline;
  padding: 0;
}

.bigger-icon-bar {
  /* Always within .root. */
  /* Where is this element positioned within its surrounding grid? */
  grid-area: icon-bar;
  /* How is this element aligned within itas grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  /* How are the items to be aligned within their cells? */
  align-items: start;
  justify-items: start;
  /* (Other specifications:) */
  background-color: var(--color-main-topbar);
  padding-left: 7px;
  padding-right: 7px;
  /* ^ To keep the icons from abutting the left and right edges. */
}

.bigger-button-with-text {
  /* On top level so that the style can be used outside of .bigger-icon-bar. */
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "button" "text";
  grid-template-rows: 25px 1fr;
  grid-row-gap: 3px;
  /* How are the items to be aligned within their cells? */
  align-items: start;
  justify-items: start;
  /* (Other specifications:) */
  padding-top: 5px;
  padding-bottom: 5px;
  cursor: pointer;
}
.bigger-button-with-text > .bigger-button {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  grid-area: button;
  width: 25px;
  height: 25px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: 25px;
  grid-template-columns: 25px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  justify-items: center;
  /* (Other specifications:) */
  border-style: none;
  border-radius: 50%;
  box-shadow: 1.5px 0px 1.5px 0px rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.99);
  cursor: pointer;
}
.bigger-button-with-text > .bigger-button.finish-edit {
  width: 50px;
}
.bigger-button-with-text > .bigger-button.finish-edit {
  justify-content: space-around;
}
.bigger-button-with-text > .bigger-button.finish-edit {
  border-radius: 10px;
  /* Empirically determined. Try to understand how it works and maybe
  * generalize.
  * anything > half the height has the same effect. */
}
.bigger-button-with-text > .bigger-button > i {
  font-style: normal;
  font-size: 20px;
}
.bigger-button-with-text > .bigger-button > i.icon-link-ext {
  font-size: 16px;
  padding-top: 2px;
}
.bigger-button-with-text > .bigger-button-text {
  grid-area: text;
  color: rgba(255, 255, 255, 0.99);
  font-weight: 600;
  font-size: 100%;
  line-height: 1;
}

/* Within .subtree: */
.bracket {
  display: block;
  background-color: rgba(255, 255, 255, 0.99);
  /* ^ This default is overriden in a number of places with @include color-root-and-bracket. */
}
.terminal-subtree > .bracket {
  display: none;
}
.bracket > .bracket-dark {
  display: block;
  height: 100%;
  width: 100%;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  background-color: var(--color-main-background);
  box-shadow: inset 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
}
.overview-table-header .bracket > .bracket-dark {
  background-color: var(--color-main-topbar);
}

/* Principles for shadows for active cell:
 * * - The root gets a thick shadow, which is shifted to the left so that 
 * * it doesn't interfere with the shadow on the right.
 * * - The shadow on the right - which can be in the bracket-dark or in the root
 * * itself - stays the same, since there seems to be no good way of thickening thi
 * * shadow. */
/* Within .topbar-subsection */
.topbar-control-button {
  display: grid;
  /* Where is this element positioned within its surrounding grid? */
  /* > In surrounding element: grid-auto-flow: row */
  /* How is this element aligned within its grid cell? */
  align-self: center;
  justify-self: center;
  /* What does the grid look like? */
  grid-template-areas: "big-icon-wrapper" "text-wrapper";
  grid-template-rows: 1fr 24px;
  grid-row-gap: 1px;
  grid-template-columns: 100%;
  /* How are the items to be aligned within their cells? */
  /* (-> Items aligned individually.) */
  /* How big is this element? */
  /* Other specifications: */
  cursor: pointer;
}
.topbar-control-button > .big-icon-wrapper {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: big-icon-wrapper;
  /* How is this element aligned within its grid cell? */
  align-self: end;
  justify-self: center;
  /* How big is this element? */
  width: 24px;
  height: 24px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: 24px;
  grid-template-columns: 24px;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  border-style: none;
  border-radius: 50%;
  box-shadow: 1.5px 0px 1.5px 0px rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.99);
}
.topbar-control-button > .big-icon-wrapper[data-button_state=grayed-out] {
  background-color: #fafafa;
  color: #d4d4d4;
  /* It actually applies only to > i :before, but that selector may be 
  * * inefficient. */
}
.topbar-control-button > .big-icon-wrapper[data-button_state=normal][data-button_grid_area=next-button], .topbar-control-button > .big-icon-wrapper[data-button_state=normal][data-button_grid_area=previous-button] {
  background-color: #ffff80;
}
.topbar-control-button > .big-icon-wrapper[data-button_grid_area=finish-button], .topbar-control-button > .big-icon-wrapper[data-button_grid_area=next-button] {
  width: 48px;
  border-radius: 20px;
  justify-content: space-around;
}
.topbar-control-button > .big-icon-wrapper > i {
  grid-row: 1;
  grid-column: 1;
  justify-self: center;
  align-self: center;
  font-size: 16px;
}
.topbar-control-button > .text-wrapper {
  grid-area: text-wrapper;
  max-width: 75px;
  text-align: center;
  font-size: 12px;
  line-height: 1;
  justify-self: center;
  align-self: start;
  color: rgba(255, 255, 255, 0.99);
  font-weight: 400;
}

#body-wrapper:not(.small-screen-mode) .subtree:not(.vertical-subtree) > .root {
  display: flex;
  flex-direction: column;
}
#body-wrapper:not(.small-screen-mode) .subtree:not(.vertical-subtree) > .root > .cell-content {
  flex-grow: 1;
}

.root:not(.active-cell) > .cell-content {
  border-top-right-radius: 10px;
  border-top-left-radius: 10px;
}
.root:not(.active-cell) > .cell-content > .cell-field-wrapper.sticky-field {
  position: sticky;
  position: -webkit-sticky;
  top: 25px;
  background-color: inherit;
  z-index: 1;
  padding-top: 3px;
  padding-bottom: 3px;
  padding-left: 2px;
  padding-right: 0;
  margin-left: -2px;
  margin-right: 0;
  margin-bottom: 6px;
  box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.2);
}

.cell-content {
  align-self: start;
  display: grid;
  padding: 2px 8px 4px 8px;
  transition: padding 0.2s ease;
  top: 20px;
  height: max-content;
  width: 100%;
  background-color: inherit;
}
.root[data-zoom_mode] > .cell-content {
  margin-left: 30px;
}
.cell-content em {
  color: blue;
  text-decoration: none;
}
.cell-content em:hover {
  text-decoration: underline;
}
.cell-content ul {
  display: flex;
  flex-direction: column;
  list-style-position: outside;
}
.cell-content b, .cell-content strong {
  font-weight: 600;
}
.cell-content u {
  font-family: monospace;
  color: blue;
  display: inline;
  white-space: pre-line;
  font-weight: normal;
  vertical-align: baseline;
  text-decoration: none;
}
.cell-content > .cell-field-wrapper {
  min-width: 20px;
  padding-bottom: 5px;
  /* ^ To ensure that there's enough space above the next field. */
}
.cell-content > .cell-field-wrapper > .cell-field-content {
  white-space: pre-wrap;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}
.cell-content > .cell-field-wrapper > .cell-field-content > input.input-element {
  width: 100%;
}
.cell-content > .editable-wrapper {
  position: relative;
  /* xx: .root[data-zoom_mode] > .cell-content > & > .clear-input
  * display: none */
}
.cell-content > .editable-wrapper > textarea {
  width: calc(100% + 10px);
  min-width: 100%;
  margin: 0 -5px;
  padding: 5px;
  border-left: 0 none;
  border-right: 0 none;
  font-size: 1em;
  text-indent: 20px;
}
.cell-content > .editable-wrapper > .clear-input {
  cursor: pointer;
  position: absolute;
  left: -16px;
  padding: 0;
  background: white;
  color: #aaa;
  border-radius: 1rem 0 0 1rem;
  font-size: 1rem;
  margin-top: -1px;
}
.cell-content > .editable-wrapper > .clear-input:hover {
  color: #C1A;
}
.cell-content > .editable-wrapper > .autocomplete-wrapper > .clear-input {
  top: -5px;
  left: -22px;
}

.cell-field-title {
  color: #888;
  font-weight: normal;
}

.root.active-cell > .cell-content > .cell-field-wrapper > .cell-field-title {
  cursor: pointer;
}

.root:not([data-zoom_mode]) > .cell-content > .cell-field-wrapper > .cell-field-title {
  text-transform: uppercase;
  font-size: 65%;
  margin-top: 0;
}

.root[data-zoom_mode] > .cell-content > .cell-field-wrapper > .cell-field-title {
  text-transform: none;
  font-size: 100%;
  margin-top: 20px;
}

/* To do: eliminate redundancy somehow: */
.root.active-cell:not([data-zoom_mode]) > .cell-content > .openable-for-editing > .cell-field-title:before, .root.active-cell:not([data-zoom_mode]) > .cell-content > .open-for-editing > .cell-field-title:before {
  content: "";
  font-family: "fontello";
  display: inline-block;
  margin-right: 0.3rem;
  font-size: 65%;
}

.root.active-cell[data-zoom_mode] > .cell-content > .openable-for-editing > .cell-field-title:before, .root.active-cell[data-zoom_mode] > .cell-content > .open-for-editing > .cell-field-title:before {
  content: "";
  font-family: "fontello";
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 80%;
}

.root.active-cell > .cell-content > .cell-field-wrapper > .cell-field-title > .title-when-cell-inactive {
  display: none;
}
.root.active-cell > .cell-content > .cell-field-wrapper > .cell-field-title > .title-when-cell-active {
  display: inline-block;
}

.root:not(.active-cell) > .cell-content > .cell-field-wrapper > .cell-field-title > .title-when-cell-inactive {
  display: inline-block;
}
.root:not(.active-cell) > .cell-content > .cell-field-wrapper > .cell-field-title > .title-when-cell-active {
  display: none;
}

> .displacing-tooltip-wrapper {
  display: inline;
}
> .displacing-tooltip-wrapper > i {
  cursor: pointer;
}
> .displacing-tooltip-wrapper > .displacing-tooltip-content {
  text-transform: none;
  border: 1px solid #ddd;
  padding: 2px;
}

/* Content-specific styles (probably to be eliminated): */
.cell-content .resonance-rectangle {
  fill: white;
  stroke-width: 1;
  stroke: black;
}
.cell-content [data-field_label=Priority] [data-selected_option_label=Highest]:after {
  content: "";
  font-family: "fontello";
  display: inline-block;
  margin-left: 0.3rem;
  font-size: 0.8rem;
  color: red;
}

pre {
  padding: 1em;
  background: rgba(199, 199, 199, 0.3);
  border: 1px solid #c4c4c4;
  border-radius: 2px;
  text-align: left;
  direction: ltr;
  tab-size: 4;
  white-space: pre-wrap;
  font-style: normal;
  min-width: 200px;
  margin: 5px;
  color: blue !important;
}
pre [data-language]:after {
  content: attr(data-language);
  position: absolute;
  top: -1px;
  right: 10px;
  background: #757575;
  font-size: 10px;
  line-height: 16px;
  padding: 2px 5px;
  color: #fff;
  white-space: nowrap;
}

code {
  font-family: monospace;
  font-size: 125%;
  color: blue;
}

/* To do: Convert to grid. */
.confirmation-request {
  position: absolute;
  right: 0;
  width: 220px;
  color: black;
  border: 1px solid #ddd;
  font-size: 0.8rem;
  top: 28px;
  background: white;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  padding: 5px;
}
.confirmation-request > .confirmation-option {
  cursor: pointer;
  float: left;
  border: 1px solid #ddd;
  margin-right: 5px;
  padding: 2px 5px;
  margin-top: 5px;
}

.dropdown-menu-with-title {
  /* Where is this element positioned within its surrounding grid? */
  /* (-> Position assigned programmatically / in the Sass for the surrounding element.) */
  /* How big is this element? */
  height: 60px;
  min-width: 90px;
  /* What does the grid look like? */
  /* Does the element always have display: grid? */
  display: grid;
  grid-template-areas: "dropdown-menu-title" "dropdown-menu-placeholder";
  grid-template-rows: 24px 30px;
  grid-row-gap: 6px;
  /* ^ The two rows + the gap = $topbar-height */
  /* How are the items to be aligned within their cells? */
  /* (-> Items aligned individually.) */
  align-content: center;
  padding-top: 0;
}

.dropdown-menu-title {
  /* Does the element always have display: grid? */
  display: flex;
  /* Where is this element positioned within its surrounding grid? */
  grid-area: dropdown-menu-title;
  /* How is this element aligned within its grid cell? */
  align-self: end;
  /* How big is this element? */
  height: 12px;
  /* (Other specifications:) */
  color: rgba(255, 255, 255, 0.99);
  font-size: 12px;
  cursor: pointer;
  align-items: center;
}

.dropdown-menu-placeholder {
  /* Does the element always have display: grid? */
  display: grid;
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  align-self: start;
  /* What does the grid look like? */
  grid-template-areas: "dropdown-menu";
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  /* How are the items to be aligned within their cells? */
  /* (-> Items aligned individually.) */
  /* How big is this element? */
  height: auto;
  /* (Other specifications:) */
  position: relative;
}

.dropdown-menu {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: dropdown-menu;
  /* How is this element aligned within its grid cell? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: auto;
  grid-auto-rows: auto;
  grid-template-columns: 100%;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (-> Items aligned individually.) */
  /* How big is this element? */
  width: max-content;
  /* (Other specifications:) */
  background: rgba(255, 255, 255, 0.99);
  box-shadow: 1.5px 0px 1.5px 0px rgba(0, 0, 0, 0.2);
}
.dropdown-menu > .dropdown-menu-option {
  /* Where is this element positioned within its surrounding grid? */
  grid-row: auto;
  grid-column: 1;
  /* How is this element aligned within its grid cell? */
  /* (-> Programmatically / in the Sass for the surrounding element.) */
  /* Does the element always have display: grid? */
  /* -> Display attribute set programmatically. */
  /* How big is this element? */
  /* (End of standard comments) */
  white-space: nowrap;
  cursor: pointer;
  margin: 0;
  padding: 3px 10px;
  height: 26px;
}
.dropdown-menu[data-dropdown_menu_state=closed] {
  position: static;
  box-shadow: none;
}
.dropdown-menu[data-dropdown_menu_state=closed] > .dropdown-menu-option {
  display: none;
}
.dropdown-menu[data-dropdown_menu_state=closed] > .dropdown-menu-option.selected-dropdown-menu-option {
  display: block;
  margin-left: 0px;
}
.dropdown-menu[data-dropdown_menu_state=closed] > .dropdown-menu-option.selected-dropdown-menu-option:before {
  content: "";
  font-family: "fontello";
  margin-right: 0.4em;
}
.dropdown-menu[data-dropdown_menu_state=opened] {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 90px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
  z-index: 20;
}
.dropdown-menu[data-dropdown_menu_state=opened] > .dropdown-menu-option {
  display: block;
}
.dropdown-menu[data-dropdown_menu_state=opened] > .dropdown-menu-option.selected-dropdown-menu-option {
  color: white;
  background-color: var(--color-main-topbar);
}

#main-topbar .dropdown-menu[data-dropdown_menu_state=opened] {
  position: static;
  margin: 0px 5px;
}

.header-subtrees {
  grid-area: subtrees;
  display: block;
}

.header-subtree {
  /* How big is this element? */
  height: 100%;
  /* Does the element always have display: grid? */
  display: flex;
  flex-direction: row;
}
.header-subtree > .bracket {
  display: block;
  background-color: rgba(255, 255, 255, 0.99);
  /* To do: Avoid redundancy with bracket.sass: */
}
.header-subtree > .bracket > .bracket-dark {
  display: block;
  height: 100%;
  width: 100%;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  box-shadow: inset 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
  background-color: var(--color-main-topbar);
}

.header-root {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: root;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  height: 20px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "display-name space-in-middle collapse-to-left collapse-to-right settings";
  grid-template-columns: max-content 1fr repeat(3, max-content);
  grid-column-gap: 7px;
  padding-left: 15px;
  padding-right: 10px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (Other specifications:) */
  /* cursor: pointer Not for now, since only admins can use header cells. */
  position: relative;
  text-overflow: ellipsis;
  background-color: rgba(255, 255, 255, 0.99);
  border-style: none;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  color: #002b7f;
  font-weight: 600;
  font-size: 0.9em;
}
.terminal-subtree > .header-root {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  box-shadow: 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
}
.header-root.filters-are-active:before {
  content: "";
  font-family: comment;
  color: #bbb;
  margin-right: 0.5rem;
}
.header-root.horizontal-collapse-on-left, .header-root.horizontal-collapse-on-right {
  text-overflow: initial;
  padding: 5px;
  white-space: nowrap;
  max-width: 32px;
  overflow: hidden;
  background: white !important;
  /* Lässt sich nicht vermeiden, da der generierte CSS-Code stärker wiegt */
  position: static;
}
.header-root.horizontal-collapse-on-left:before, .header-root.horizontal-collapse-on-right:before {
  content: "";
  font-family: "fontello";
  margin: 0 10px 0 2px;
}
.header-root.horizontal-collapse-on-right:before {
  content: "";
}
.header-root > .icon-to-start-alt, .header-root .icon-to-end-alt, .header-root .icon-sliders {
  display: none;
}
.header-root.active-header-cell {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  z-index: 40;
  min-width: 250px;
}
.header-root.active-header-cell > i {
  display: initial;
  cursor: pointer;
}
.header-root.no-collapse-to-left .icon-to-start-alt:before {
  color: #bbb;
}
.header-root.no-collapse-to-right .icon-to-end-alt:before, .header-root.no-collapse-to-right:before {
  color: #bbb;
}

.overview-table {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "overview-table-header" "overview-table-body";
  grid-template-columns: 100%;
  grid-template-rows: 25px max-content;
  /* How are the items to be aligned within their cells? */
  align-items: flex-start;
  /* (Other specifications:) */
  background-color: var(--color-main-background);
}
.overview-table > .overview-table-body {
  /* For most specifications, see .subtrees. */
  grid-area: overview-table-body;
  padding: 10px 6px 500px 4px;
}
.overview-table > .overview-table-body > .subtree > .root.active-cell {
  padding-left: 5px;
}
@media print {
  .overview-table > .overview-table-body {
    overflow: visible;
    height: auto;
    width: auto;
  }
}
.overview-table > .overview-table-header {
  /* For many specifications, see .subtrees. */
  /* Where is this element positioned within its surrounding grid? */
  grid-area: overview-table-header;
  /* How is this element aligned within its grid cell? */
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  /* How big is this element? */
  height: 25px;
  /* Does the element always have display: grid? */
  /* (Other specifications:) */
  background-color: var(--color-main-topbar);
  padding-left: 4px;
  padding-right: 6px;
  padding-bottom: 5px;
  z-index: 5;
  box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.3);
}
#body-wrapper[data-structure_type=Model] .overview-table > .overview-table-header {
  background-color: var(--color-main-topbar-for-models);
}
.overview-table > .overview-table-header .header-root + .bracket > .bracket-dark {
  background-color: var(--color-main-topbar);
}
#body-wrapper[data-structure_type=Model] .overview-table > .overview-table-header .header-root + .bracket > .bracket-dark {
  background-color: var(--color-main-topbar-for-models);
}

.icon-block, .icon-trash-empty, .icon-cancel, .icon-user-times, .cancel {
  color: #d53623;
}

.icon-ok, .icon-plus, .icon-sort {
  color: #00b167;
  cursor: pointer;
}

.icon-pencil {
  color: black;
}

.icon-check:before, .icon-check-empty:before {
  font-size: 2em;
}

.icon-search {
  padding-bottom: 2px;
  /* ^ Otherwise the handle of the magnifying glass touches the edge of the surrounding circle. */
}

.topbar-selector-icon {
  padding-right: 4px;
}

#ignore-filters-button-global-search > .big-icon-wrapper > .icon-filter, #ignore-filters-button-show-changes > .big-icon-wrapper > .icon-filter {
  color: #8d8f8f;
  position: relative;
}
#ignore-filters-button-global-search > .big-icon-wrapper > .icon-filter:after, #ignore-filters-button-show-changes > .big-icon-wrapper > .icon-filter:after {
  width: 100%;
  position: absolute;
  height: 2px;
  background: #d53623;
  content: " ";
  left: 1px;
  top: 11px;
  transform: rotate(-26deg);
}

.image-window {
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "icon-bar" "image-window-body";
  grid-template-rows: max-content 1fr;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  border-radius: 13.5px 13.5px 0px 0px;
  position: fixed;
  bottom: 0px;
  /* ^ Fixing it to the bottom ensures that it is always possible to view any other
  * * part of the tipsheet together with the image when size == medium
  * * Otherwise, it would be impossible for the content at the very top of the tipsheet.
  * * At the bottom of the tipsheet, we always have some blank space to allow extra
  * * scrolling. */
  z-index: 30;
  background: white;
}
.image-window > .image-window-bar {
  background-color: var(--color-main-topbar-for-models);
  grid-template-areas: "close-image-window show-image-in-different-size";
  grid-template-columns: repeat(2, 1fr);
  grid-column-gap: 20px;
  border-radius: 13.5px 13.5px 0px 0px;
}
.image-window > .image-window-body {
  grid-area: image-window-body;
}
.image-window > .image-window-body > img {
  cursor: pointer;
}

.insertion-arrows-overlay {
  display: grid;
  position: absolute;
  box-sizing: border-box;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.header-subtree > .header-root > .insertion-arrows-overlay {
  grid-template-areas: "b1 down b2";
  grid-template-columns: 1fr 30px 1fr;
}

.subtree:not(.vertical-subtree) > .root > .insertion-arrows-overlay {
  grid-template-areas: "b1 down b2 up right";
  grid-template-columns: 1fr 30px 10px 30px 1fr;
}

.vertical-subtree > .root > .insertion-arrows-overlay {
  grid-template-areas: "right up b2 down b3";
  grid-template-columns: 1fr 30px 10px 30px 1fr;
}

.insertion-arrow-div {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "prompt hand";
  grid-template-columns: max-content max-content;
  grid-column-gap: 5px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  justify-items: center;
  /* (Other specifications:) */
  z-index: 10;
  /* To do: put z-indices in a Sass variable file. */
  cursor: pointer;
  border-radius: 7px;
  /* ^ Empirically found to yield 29px for a vertical hand. */
  font-size: 100%;
  font-weight: bold;
  background-color: var(--color-insertion-arrow-div);
  /* Should the following apply to insertion-arrow itself? */
  padding: 2px 5px 0px 5px;
}
.insertion-arrow-div > .insertion-arrow-prompt {
  grid-area: prompt;
  font-size: 70%;
  color: rgba(255, 255, 255, 0.99);
}
.insertion-arrow-div > .insertion-arrow {
  grid-area: hand;
}
.insertion-arrow-div > .insertion-arrow:before {
  color: rgba(255, 255, 255, 0.99);
}
.insertion-arrow-div[data-arrow_direction=up] {
  justify-self: center;
  align-self: start;
}
.insertion-arrow-div[data-arrow_direction=down] {
  justify-self: center;
  align-self: end;
}

.subtree:not(.vertical-subtree) > .root > .insertion-arrows-overlay > .insertion-arrow-div[data-arrow_direction=right] {
  align-self: start;
  justify-self: end;
  position: sticky;
  position: -webkit-sticky;
  top: 40px;
}
.subtree:not(.vertical-subtree) > .root > .insertion-arrows-overlay > .insertion-arrow-div[data-arrow_direction=right] > .insertion-arrow:before {
  transform: translateY(1px) rotate(30deg);
}

.vertical-subtree > .root > .insertion-arrows-overlay > .insertion-arrow-div[data-arrow_direction=right] {
  align-self: end;
  justify-self: start;
}
.vertical-subtree > .root > .insertion-arrows-overlay > .insertion-arrow-div[data-arrow_direction=right] > .insertion-arrow:before {
  transform: translateY(1px) rotate(60deg);
}

#body-wrapper {
  /* For any active major mode, ensure that its subsection is visible and
  * * make any other changes dictated by the mode.
  * * This file appears to be obsolete, since we've been moving this
  * * type of content into the files for the individual modes. */
}
#body-wrapper[data-major_mode=configuration-mode] #topbar-major-mode-controls > #configuration-controls {
  display: grid;
}
#body-wrapper[data-major_mode=configuration-mode] .overview-table-body .root.configure-this, #body-wrapper[data-major_mode=configuration-mode] .overview-table-body .cell-field-wrapper.configure-this {
  position: relative;
  outline: 1px solid black;
  background: rgba(255, 255, 0, 0.3);
}

/* To do: Make into grid, use color variables. */
.notifications {
  list-style: none;
  position: fixed;
  bottom: 0.5em;
  display: flex;
  flex-direction: column;
  right: 0;
  z-index: 101;
}
.notifications > .notification {
  box-shadow: 0 0 3px rgba(0, 43, 127, 0.5);
  padding: 1em;
  margin-bottom: 0.5em;
  width: 300px;
  background-color: #2ecc71;
  color: white;
  font-size: 115%;
  font-weight: 600;
}
.notifications > .notification.error {
  background-color: #e74c3c;
}

/* Always within #body-wrapper / .overview-table-body / .subtree.*/
.root {
  grid-area: root;
  position: relative;
  background-color: rgba(255, 255, 255, 0.99);
  cursor: default;
  transition: box-shadow 0.3s ease, padding 0.3s ease, background-color 0.3ms ease;
  border-style: none;
  padding: 5px 5px 0;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}
#body-wrapper[data-minor_mode=start-edit-mode] .root {
  background-color: #ebfaeb;
  /* To do: Work out the exact boundaries. */
  cursor: crosshair;
}
#body-wrapper[data-minor_mode=start-edit-mode] .root + .bracket {
  background-color: #ebfaeb;
}
#body-wrapper[data-minor_mode=start-edit-mode] .root:hover {
  background-color: #d6f5d6;
}
#body-wrapper[data-minor_mode=active-cell-mode] .root:not(.active-cell) {
  background-color: rgba(255, 255, 255, 0.6);
}
#body-wrapper[data-minor_mode=active-cell-mode] .root:not(.active-cell) + .bracket {
  background-color: rgba(255, 255, 255, 0.6);
}
#body-wrapper[data-minor_mode=active-cell-mode] .root:not(.active-cell).marked-for-deletion {
  background-color: rgba(255, 200, 196, 0.9);
  /* We need this redundant exception, since otherwise the above selector
  * * overrides the general rule for marked-for-deletion: */
}
#body-wrapper[data-minor_mode=active-cell-mode] .root:not(.active-cell).marked-for-deletion + .bracket {
  background-color: rgba(255, 200, 196, 0.9);
}
.root.marked-for-deletion {
  background-color: rgba(255, 200, 196, 0.9);
}
.root.marked-for-deletion + .bracket {
  background-color: rgba(255, 200, 196, 0.9);
}
.root.marked-for-moving-or-copying {
  background-color: var(--color-cells-to-move);
}
.root.marked-for-moving-or-copying + .bracket {
  background-color: var(--color-cells-to-move);
}
.root.grouping-cell {
  background-color: rgba(255, 255, 255, 0.74);
}
.root.grouping-cell + .bracket {
  background-color: rgba(255, 255, 255, 0.74);
}
.root .cell-field-wrapper.irrelevant-field {
  display: none;
}
.terminal-subtree > .root, .vertical-subtree > .root {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  box-shadow: 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
}
.terminal-subtree > .root.active-cell, .vertical-subtree > .root.active-cell {
  box-shadow: -9px 0 20px rgba(0, 0, 0, 0.3), 2px 0px 2px 0px rgba(0, 0, 0, 0.2);
}
.root:not(.active-cell) > .icon-bar {
  display: none;
}
.root:not(.active-cell) .cell-field-wrapper.invisible-when-cell-inactive {
  display: none;
}
.root.active-cell {
  box-shadow: -9px 0 20px rgba(0, 0, 0, 0.3);
  /* ^ If there's a bracket, it also keeps its shadow. */
  z-index: 2;
  min-width: 250px;
  background-color: white;
}
.root.active-cell + .bracket {
  background-color: white;
}
.root.active-cell > .cell-content > .cell-field-wrapper.openable-for-editing {
  cursor: pointer;
}
.root.active-cell.marked-for-deletion {
  background-color: rgba(255, 200, 196, 0.9);
  /* See the comment above about marked-for-deletion. */
}
.root.active-cell.marked-for-deletion + .bracket {
  background-color: rgba(255, 200, 196, 0.9);
}
.root.active-cell > .cell-content {
  top: 60px;
}
.root.active-cell .editable:hover {
  outline: 1px dotted #ddd;
}
.root.locked {
  background-color: #ddd;
  position: relative;
  /* Also used for bracket in another file. */
}
.root.locked .lock-user-avatar {
  position: absolute;
  width: 40px;
  height: 40px;
  top: 0;
  right: 0;
  border-radius: 50%;
}
.root.hidden-cell {
  background-color: #eeeeee;
  position: static;
  min-width: 32px;
}
.root.hidden-cell .cell-content {
  display: none;
}
.root.highlight-active {
  background-color: green;
}

.small-icon-bar {
  /* Always within .root. */
  /* Where is this element positioned within its surrounding grid? */
  grid-area: icon-bar;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "cancel-edit finish-edit space-on-left zoom-toggle space-on-right add-cell-from-cell show-or-hide-legend" "legend legend legend legend legend legend legend";
  grid-template-rows: 27px;
  grid-template-columns: repeat(2, max-content) 1fr max-content 1fr repeat(2, max-content);
  grid-column-gap: 12px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  /* (Other specifications:) */
  background-color: var(--color-main-topbar);
  border-radius: 10px 10px 0 0;
  position: -webkit-sticky;
  position: sticky;
  z-index: 1;
  top: 25px;
  margin: -10px -5px 5px;
  padding: 4px 10px;
}
.small-icon-bar[data-legend_visibility=hidden] > .small-button.hide-legend {
  display: none;
}
.small-icon-bar[data-legend_visibility=hidden] > .small-button.show-legend {
  display: grid;
}
.small-icon-bar[data-legend_visibility=hidden] .legend {
  display: none;
}
.small-icon-bar[data-legend_visibility=shown] > .small-button.show-legend {
  display: none;
}
.small-icon-bar[data-legend_visibility=shown] > .small-button.hide-legend {
  display: grid;
}
.small-icon-bar[data-legend_visibility=shown] .legend {
  display: grid;
}
.small-icon-bar .small-button {
  /* Not a child selector, since the button can also appear in the legend. */
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  width: 22px;
  height: 22px;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-rows: 18.9px;
  grid-template-columns: 18.9px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  justify-items: center;
  align-content: center;
  justify-content: center;
  /* (Other specifications:) */
  border-style: none;
  border-radius: 50%;
  box-shadow: 1.5px 0px 1.5px 0px rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.99);
  cursor: pointer;
  /* To do: Maybe specify the padding as fraction of $small-icon-diameter,
  * to facilitate changing of the size: */
}
.small-icon-bar .small-button.finish-edit {
  width: 37.8px;
}
.small-icon-bar .small-button.finish-edit {
  justify-content: space-around;
}
.small-icon-bar .small-button.finish-edit {
  border-radius: 10px;
  /* Empirically determined. Try to understand how it works and maybe
  * generalize.
  * anything > half the height has the same effect. */
}
.small-icon-bar .small-button > i {
  font-style: normal;
  font-size: 15.12px;
}
.small-icon-bar .small-button > i.icon-up-open, .small-icon-bar .small-button > i.icon-info {
  color: blue;
}
.small-icon-bar .small-button > i.icon-ellipsis-vert {
  font-size: 18.9px;
  color: #8d8f8f;
  padding-top: 1px;
}
.small-icon-bar .small-button > i.icon-clone:before {
  font-size: 12.096px;
  padding-bottom: 2px;
  color: #00b167;
}
.small-icon-bar .small-button > i.icon-mail:before {
  font-size: 12.096px;
  padding-bottom: 4px;
  color: blue;
}
.small-icon-bar .small-button > i.icon-link:before {
  font-size: 12.096px;
  padding-bottom: 4px;
  color: #8d8f8f;
}
.small-icon-bar .small-button > i.icon-bell-off-empty:before {
  font-size: 12.096px;
  margin-left: -3px;
  padding-bottom: 4px;
  color: #d53623;
}
.small-icon-bar > .legend {
  /* Where is this element positioned within its surrounding grid? */
  grid-area: legend;
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  width: 100%;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "cancel-edit" "finish-edit" "zoom-toggle" "add-cell-from-cell" "blank1" "show-or-hide-legend" "blank2" "move-cell" "copy-cell" "delete-cell" "get-tipsheet-link" "send-email" "cancel-notification";
  grid-row-gap: 6px;
  /* How are the items to be aligned within their cells? */
  align-items: center;
  justify-items: start;
  /* (Other specifications:) */
  padding-top: 4px;
  padding-bottom: 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.99);
}
.small-icon-bar > .legend > .legend-line {
  /* Where is this element positioned within its surrounding grid? */
  /* How is this element aligned within its grid cell? */
  /* How big is this element? */
  width: 100%;
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "button legend-text" "_blank_ input-area";
  /* input-area is used only in about one case. */
  grid-template-columns: 30px 1fr;
  grid-column-gap: 8px;
  /* How are the items to be aligned within their cells? */ 
  align-items: center;
  /* (Other specifications:) */
  cursor: pointer;
  line-height: 91%;
}
.small-icon-bar > .legend > .legend-line:hover {
  background: rgba(203, 224, 239, 0.5);
}
.small-icon-bar > .legend > .legend-line > .small-button {
  justify-self: center;
}
.small-icon-bar > .legend > .legend-line > .legend-text {
  color: rgba(255, 255, 255, 0.99);
  justify-self: start;
  font-size: 85%;
}
.small-icon-bar > .legend > .legend-line > .small-icon-bar-input-area {
  grid-area: input-area;
  color: rgba(255, 255, 255, 0.99);
  font-size: 85%;
  font-style: italic;
}
.small-icon-bar > .legend > .legend-line > .small-icon-bar-input-area:hover {
  background-color: var(--color-main-topbar);
}
.small-icon-bar > .legend > .legend-line > .small-icon-bar-input-area > input {
  width: 100%;
  font-size: 75%;
}

.vertical-subtree > .subtrees[data-n_levels="1"] > .subtree:not(.fltrd) {
  margin-top: 5px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="1"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 5px;
}

.overview-table-body.subtrees[data-n_levels="1"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 5px;
}

.vertical-subtree > .subtrees[data-n_levels="2"] > .subtree:not(.fltrd) {
  margin-top: 10px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="2"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 10px;
}

.overview-table-body.subtrees[data-n_levels="2"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 10px;
}

.vertical-subtree > .subtrees[data-n_levels="3"] > .subtree:not(.fltrd) {
  margin-top: 15px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="3"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 15px;
}

.overview-table-body.subtrees[data-n_levels="3"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 15px;
}

.vertical-subtree > .subtrees[data-n_levels="4"] > .subtree:not(.fltrd) {
  margin-top: 20px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="4"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 20px;
}

.overview-table-body.subtrees[data-n_levels="4"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 20px;
}

.vertical-subtree > .subtrees[data-n_levels="5"] > .subtree:not(.fltrd) {
  margin-top: 25px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="5"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 25px;
}

.overview-table-body.subtrees[data-n_levels="5"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 25px;
}

.vertical-subtree > .subtrees[data-n_levels="6"] > .subtree:not(.fltrd) {
  margin-top: 30px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="6"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 30px;
}

.overview-table-body.subtrees[data-n_levels="6"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 30px;
}

.vertical-subtree > .subtrees[data-n_levels="7"] > .subtree:not(.fltrd) {
  margin-top: 35px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="7"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 35px;
}

.overview-table-body.subtrees[data-n_levels="7"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 35px;
}

.vertical-subtree > .subtrees[data-n_levels="8"] > .subtree:not(.fltrd) {
  margin-top: 40px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="8"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 40px;
}

.overview-table-body.subtrees[data-n_levels="8"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 40px;
}

.vertical-subtree > .subtrees[data-n_levels="9"] > .subtree:not(.fltrd) {
  margin-top: 45px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="9"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 45px;
}

.overview-table-body.subtrees[data-n_levels="9"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 45px;
}

.vertical-subtree > .subtrees[data-n_levels="10"] > .subtree:not(.fltrd) {
  margin-top: 50px;
}

/* Within a nonvertical subtree, we need to omit the margin for the first subtree: */
.subtree:not(.vertical-subtree) > .subtrees[data-n_levels="10"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 50px;
}

.overview-table-body.subtrees[data-n_levels="10"] > .subtree:not(.fltrd) ~ .subtree:not(.fltrd) {
  margin-top: 50px;
}

.subtrees {
  display: flex;
  flex-direction: column;
  grid-area: subtrees;
}

.subtree {
  display: flex;
}
.subtree.vertical-subtree {
  flex-wrap: wrap;
  flex-direction: row;
}
.subtree.vertical-subtree > .bracket {
  visibility: hidden;
}
.subtree.fltrd {
  display: none;
}

/* To do: Adapt to grid. */
.user {
  height: 40px;
  width: 40px;
  background-size: cover;
  border-radius: 50%;
  margin: 5px;
  position: relative;
  text-align: center;
  font-size: 20px;
  padding-top: 6px;
  color: #bcdba8;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.9);
  background-color: white;
}
.user[data-subscription_count]:after {
  content: attr(data-subscription_count);
  position: absolute;
  top: -8px;
  right: -6px;
  background: red;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  text-align: center;
  font-size: 12px;
  color: white;
  font-weight: bold;
}
.user[data-subscription_count="1"]:after {
  display: none;
}
.user > .user-tooltip {
  background: rgba(255, 255, 255, 0.9);
  color: black;
  font-size: 10px;
  cursor: pointer;
}

.video-window {
  /* How big is this element? */
  /* Does the element always have display: grid? */
  display: grid;
  /* What does the grid look like? */
  grid-template-areas: "icon-bar" "video-window-body";
  grid-template-rows: max-content 1fr;
  /* How are the items to be aligned within their cells? */
  /* (Other specifications:) */
  border-radius: 13.5px 13.5px 0px 0px;
  position: fixed;
  bottom: 0px;
  z-index: 30;
  background: white;
}
.video-window > .video-window-bar {
  background-color: var(--color-main-topbar-for-models);
  grid-template-areas: "close-video-window show-video-in-different-size";
  grid-template-columns: repeat(2, 1fr);
  grid-column-gap: 20px;
  border-radius: 13.5px 13.5px 0px 0px;
}
.video-window > .video-window-body {
  grid-area: video-window-body;
  position: relative;
}
.video-window > .video-window-body > .video-player {
  cursor: pointer;
}
.video-window > .video-window-body > .video-loading-icon {
  position: absolute;
  top: 45%;
  left: 45%;
  width: 40px;
  height: 40px;
  z-index: 30;
}

.addition-candidate, .selected-addition-candidate {
  box-shadow: 8px 0 10px -6px rgba(0, 0, 0, 0.3), -8px 0 10px -6px rgba(0, 0, 0, 0.3);
}
.addition-candidate .cell-field-title, .selected-addition-candidate .cell-field-title {
  color: black;
}

.addition-candidate {
  background: #ffffd0;
}

.addition-candidate.selected-addition-candidate {
  background: #eefed6;
}

.zoomed-in-body-wrapper #main-topbar {
  display: none;
}
.zoomed-in-body-wrapper .main .scrollable-wrapper {
  height: 100%;
  overflow: hidden;
}
.zoomed-in-body-wrapper .overview-table-header {
  display: none;
}
.zoomed-in-body-wrapper .overview-table-body .root.active-cell {
  padding-left: 20px;
  z-index: 7;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
}
.zoomed-in-body-wrapper .overview-table-body .root.active-cell .small-icon-bar {
  top: 0;
}
.zoomed-in-body-wrapper .overview-table-body .root.active-cell .cell-content {
  font-size: 1.3em;
  top: 0;
}

#configuration-panel .cell-content {
  display: flex;
  flex-direction: column;
}

.mode-selection {
  grid-area: mode-selection;
}

#body-wrapper[data-editing_method=direct] #enter-start-edit-mode-button {
  display: none;
}
#body-wrapper[data-editing_method=direct] .root {
  cursor: crosshair;
}

.root.global-search-root {
  background-color: #ffffe6;
}
.root.global-search-root + .bracket {
  background-color: #ffffe6;
}

.cell-field-content.global-search-field {
  background-color: #ffff80;
}

mark {
  background-color: #ffb833;
  color: inherit;
}

#body-wrapper[data-major_mode=global-search-mode]:not(.showing-global-search-results) .global-search-result-button {
  display: none;
}

/* For styles that apply in all minor modes. */
/* Links are not clickable in minor modes, so let's not make them look clickable: */
#body-wrapper[data-minor_mode] a {
  cursor: inherit;
  text-decoration: inherit;
  color: inherit;
  font-weight: inherit;
}

.shake {
  animation-name: shake;
  animation-duration: 1s;
  transform-origin: 50% 50%;
  animation-iteration-count: 1;
  animation-timing-function: linear;
}

@keyframes shake {
  0% {
    transform: translate(2px, 1px) rotate(0deg);
  }
  10% {
    transform: translate(-1px, -2px) rotate(-1deg);
  }
  20% {
    transform: translate(-1px, 0px) rotate(1deg);
  }
  30% {
    transform: translate(0px, 2px) rotate(0deg);
  }
  40% {
    transform: translate(1px, -1px) rotate(1deg);
  }
}
/* .highlighted-icon
 * color: red */
.topbar-control-button > .big-icon-wrapper.highlighted-button {
  background-color: red;
}

/* Using "background" colors everywhere except for within-field changes, since the 
 * * foreground colors are too dominant for entire fields. */
.root[data-cell_change=different] {
  background-color: #ffffe6;
}
.root[data-cell_change=different] + .bracket {
  background-color: #ffffe6;
}
.root[data-cell_change=unique] {
  background-color: #e9fce9;
}
.root[data-cell_change=unique] + .bracket {
  background-color: #e9fce9;
}

.cell-field-wrapper[data-field_change=different] {
  background-color: #ffff80;
}
.cell-field-wrapper[data-field_change=unique] {
  background-color: #e9fce9;
}

ins {
  background-color: #bdf5bd;
  text-decoration: none;
}

del {
  background-color: #ffc6c2;
  text-decoration: none;
}

[data-user_role=Administrator] #further-icons, [data-user_role=Editor] #further-icons, [data-user_role=Reader] #further-icons {
  display: none;
}

[data-user_role=Editor] #create-archive-version,
[data-user_role=Editor] #switch-tipsheet,
[data-user_role=Editor] #show-model,
[data-user_role=Editor] #configure-tipsheet,
[data-user_role=Editor] #make-copy-of-structure,
[data-user_role=Editor] #update-model-structure,
[data-user_role=Editor] #mark-as-example-tipsheet,
[data-user_role=Editor] #to-main-panel,
[data-user_role=Editor] #to-home-panel,
[data-user_role=Editor] #to-explorer-panel,
[data-user_role=Editor] #execute-code,
[data-user_role=Editor] #sidebar-explorer, [data-user_role=Reader] #create-archive-version,
[data-user_role=Reader] #switch-tipsheet,
[data-user_role=Reader] #show-model,
[data-user_role=Reader] #configure-tipsheet,
[data-user_role=Reader] #make-copy-of-structure,
[data-user_role=Reader] #update-model-structure,
[data-user_role=Reader] #mark-as-example-tipsheet,
[data-user_role=Reader] #to-main-panel,
[data-user_role=Reader] #to-home-panel,
[data-user_role=Reader] #to-explorer-panel,
[data-user_role=Reader] #execute-code,
[data-user_role=Reader] #sidebar-explorer {
  display: none;
}

[data-user_role=Administrator] #enable-editing-button, [data-user_role=Editor] #enable-editing-button {
  display: none;
}

[data-user_role=Reader] #topbar-nonminor-mode-controls {
  display: none !important;
}
[data-user_role=Reader] #choose-editing-method, [data-user_role=Reader] #q-and-a, [data-user_role=Reader] #log-in, [data-user_role=Reader] #sign-up, [data-user_role=Reader] #logged-in, [data-user_role=Reader] #log-out, [data-user_role=Reader] #sidebar-explorer {
  display: none;
}
[data-user_role=Reader] #subscriber-avatars {
  display: none !important;
}

.zoomed-cell-icon-bar {
  /* What does the grid look like? */
  grid-template-areas: "cancel-edit finish-edit zoom-out blank";
  grid-template-columns: repeat(3, 1fr);
  grid-column-gap: 18px;
  position: -webkit-sticky;
  position: sticky;
  border-radius: 13.5px;
  margin-right: 29px;
  margin-top: 4px;
  margin-left: 7px;
  top: 0px;
  z-index: 1;
}

/*# sourceMappingURL=compiled-20201213-182543.css.map */
