html {
    height: 100%;
}

body {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
}

table {
    border-spacing: 0;
}

.subcontent-div {
    padding-top: 5px;
    margin-left: 1.9em;
    border-left: 1px solid #ccc;
    padding-left: 0.8em;
    overflow: auto;
}

p {
    margin-top: 0;
    text-align: justify;
}

h1 {
    margin-bottom: 0;
    margin-top: 0;
}

h3 {
    font-weight: normal;
    font-size: 18px;
    margin-bottom: 10px;
    margin-top: 0;
}

h4.subheader {
    margin-top: 30px;
    margin-bottom: 10px;
}

/* Interactive */

.CodeMirror {
    clip-path: none !important;
}

input,
button,
textarea,
select,
.codemirror-dialog-toggle-btn {
    background: #FFF;
    border: 1px solid #DBDDE6;
    box-sizing: border-box;
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    height: 22px;
    margin: 0;
    padding: 0;
    width: 100%;
}

input{
    padding: 3px;
}

.codemirror-dialog-toggle-btn {
    color: #000;
    margin-bottom: 10px;
}

textarea {
    resize: vertical;
    padding: 4px;
}

input[type=submit],
input[type=button],
button {
    background: #007ACC;
    color: #FFF;
    border: 0px;
}

input[readonly],
textarea[readonly],
select[readonly],
.codemirror-dialog-toggle-btn[readonly] {
    background-color: #d3d3d3;
}

.codemirror-dialog-toggle-btn[readonly]:hover {
    cursor: unset;
}

.selectParent select {
    background-color: white;
    overflow: hidden;
    padding-right: 20px;
    text-overflow: ellipsis;
}

.selectParent {
    overflow: hidden;
    display: contents;
}

.selectParent select[readonly],
.selectParent select[disabled] {
    color: #545454;
    opacity: 1;
}

select::-ms-expand {
    display: none;
}

td {
    vertical-align: top;
    padding: 5px 0 0 0;
}

.fileinput_label {
    background-color: #f0f0f0;
    cursor: pointer;
    color: #007ACC;
    padding: 3px 7px;
    transition: background-color 300ms;
}

.fileinput_label:hover {
    background-color: #d3d3d3;
}

.reactivate-ext-btn:disabled {
    background-color: #ccc;
    cursor: wait;
}

.reactivate-ext-btn.visible-field {
    display: inline;
}

.mainButton:disabled,
#ws-playground-connect-btn:disabled {
    background-color: #CCCCCC;
}

.import-config-file-column {
    padding: 10px 0;
}

.remove-button {
    color:#DA3434 !important;
    cursor: pointer;
}

.rename-button {
    cursor: pointer;
}

.certificate-container {
    margin-top: 10px;
    margin-bottom: 20px;
    padding-left: 3em;
    padding-bottom: 10px;
    padding-right: 10px;
}

.certificate-container td:first-child {
    width: 30%;
    padding-right: 30px;
    word-break: break-word;
}

.certificate-container td:last-child {
    width: 70%;
    word-break: break-word;
}

.fileselection-field {
    width: 100%;
}

.fileselection-input-column,
.fileselection-delete-column {
    float: left;
}

.fileselection-delete-column {
    padding-left: 5px;
}

.value-input-area {
    width: calc(100% - 3em);
    height: 100%;
    margin-left: 3em;
}

/* Config page areas */

.header {
    color: #000;
    font-weight: bold;
}

.popup {
    background: #FFF;
    border: 1px solid #DBDDE6;
    left: 30%;
    margin: auto;
    padding: 8px;
    position: absolute;
    top: 30%;
    transform: translate(-15%, -15%);
    z-index: 101;
}

.popup-table {
    width: 100%;
}

.popup-resize-handle {
    width: 10px;
    height: 10px;
    position: absolute;
    bottom: 0;
    right: 0;
    cursor: se-resize;
    background-color: #333;
}

.input-toggle-column {
    padding: 2px;
    text-align: center;
}

div.main-container {
    overflow: auto;
    float: left;
    width: 100%;
}

.main-container-hidden-navbar {
    margin-top: 0;
    max-height: calc(100% - 30px);
}

.main-container-active-navbar {
    margin-top: 45px;
    max-height: calc(100% - 45px - 30px);
}

.content_page,
.diagnostics {
    margin-bottom: 50px;
}

.content form {
    display: inline;
}

.content a:hover {
    text-decoration: underline;
    font-weight: bold;
}

.overlay {
    width: 100%;
    height: 100%;
    z-index: 100;
    position: fixed;
    overflow: auto;
    left: 0px;
    top: 0px;
    background-color: rgba(0,0,0,0.3);
}

.custom_content_page {
    padding: 15px 10px;
    background-color: #F4F4F4;
    width: auto;
    float: right;
}

.custom_content_page,
.diagnostics,
.content_page,
.content {
    box-sizing: border-box;
}

.diagnostics table,
.default-content-page table {
    width: 100%;
}

.popup,
.diagnostics,
.default-content-page,
.active-sessions-content .subcontent-data-table {
    width: 100%;
    max-width: 650px;
}

.ws-playground-page {
    width: 100%;
    background-color: #f7f7f7;
}

#ws-playground-connection-container {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    padding: 10px;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: 100%;
    max-width: 1000px;
    box-sizing: border-box;
}

#ws-playground-connection-container label {
    font-weight: bold;
    white-space: nowrap;
}

.ws-playground-endpoint-input {
    flex: 1;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-family: monospace;
    min-width: 200px;
}

#ws-playground-connect-btn {
    width: 20%;
}

.ws-playground-page .CodeMirror {
    height: 350px;
}

#ws-playground-input-editor {
    display: flex;
}

#ws-playground-input-editor .CodeMirror {
    width: 80%;
}

#ws-playground-output-editor {
    width: 100%;
    max-width: 1000px;
}

#ws-playground-output-editor .CodeMirror {
    height: 60vh;
    min-height: 30vh;
}

#ws-playground-output-stats {
    width: 100%;
    max-width: 1000px;
}

.ws-playground-editor-menu {
    width: 30%;
}

.ws-playground-editor-menu > div {
    margin-bottom: 20px;
}

.ws-playground-editor-suggestion-btn {
    text-align: left;
    height: fit-content;
    padding: 8px;
    overflow: hidden;
    word-break: break-all;
}

#ws-playground-editor-history-btn,
.ws-playground-editor-suggestion-btn {
    border: 1px solid #ccc;
    color: #000;
    padding: 10px;
    height: auto;
}

.ws-playground-editor-suggestion-btn {
    background-color: #FFF;
}

.ws-playground-editor-suggestion-btn:hover {
    background-color: #CCC;
}

#ws-playground-editor-history-btn {
    background-color: #FFF;
}

#ws-playground-editor-actions > input {
    margin-top: 5px;
}

#ws-playground-editor-history-container {
    position: relative;
}

#ws-playground-editor-history-selection {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    width: calc(100vw - 45px);
    max-width: 800px;
}

#codemirror-editor-formpopup {
    display: table;
    max-width: 100%;
}

/* Diagnostics */

#loading-diag-msg {
    margin: 20px;
}

.diagnostics {
    background-color: #F0F0F0;
    float: right;
}

.diagnostics .diagnosticsContentDiv {
    padding: 10px;
    margin: 0 10px 15px 10px;
}

.diagnostics a {
    font-weight: bold;
    cursor: pointer;
    top: 70px;
}

.diagnostics a:hover {
    text-decoration: underline;
    font-weight: bold;
}

.diagnostics div.inner {
    display: block;
}

/* Special classes */

.hidden-field {
    display: none !important;
}

.visible-field {
    display: block;
}

.error {
    color: #FF0000;
    word-break: break-word;
    text-align: left;
}
#extension-state-container .error {
    white-space: pre-wrap;
}

.msg {
    color: #000;
}

.mediumtext {
    font-size: 18px;
}

.overlayTitle {
    padding-right: 25px;
}

.overlayform-close-button {
    position: absolute;
    cursor: pointer;
    top: 10px;
    right: 10px;
}

.ref-failed-msg {
    word-break: break-all;
}

.override {
    color: blue;
}

.highlight {
    color: #007ACC;
    font-weight: bold;
    font-size: 18px;
    padding-left: 5px;
}

.centered {
    display: inline-flex !important;
    flex-direction: row;
    align-items: center;
}

.valuedescription {
    white-space: normal;
    font-size: 9px;
    color: #656565;
    margin-top: 1px;
    display: block;
    word-break: break-word;
    padding-left: 1.3em;
    margin-left: 2.55em;
    border-left: 1px solid #ccc;
}

/* Icons */

.feather {
    width: 1.3em;
    height: 1.3em;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.feather:not(.treeIcon):not(.treeIconActive),
.fileselection-key-column > .feather {
    padding-right: 4px;
    padding-left: 1.3em;
    align-self: stretch;
}

.filter-icon {
    height: 1em;
    width: 1em;
    margin-top: 5px;
}

.filter-clear-icon {
    margin-top: 3px;
}

.data-icon {
    color: #ccc;
}

.tree-icon {
    color: #ccc;
    padding-left: 0 !important;
}

.treeIconActive {
    transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
}

/* Config tree structure */

.configLink {
    text-decoration: none;
}

.tree-text-icon-section {
    display: flex;
}

.treeIcon, .treeIconActive {
    color: #333;
}

.treeText {
    white-space: normal;
    word-break: break-all;
    vertical-align: middle;
    display: inline-flex !important;
    flex-direction: row;
    align-items: center;
}

.tree-text-toggle-btn,
.array-add-link,
.config-tooltip,
.rename-button,
.configLink,
.button-icon {
    color: #6495ed;
}

.empty-properties-row td {
    padding: 0;
}

.properties-table {
    width: 100%;
}

.properties-table .properties-table-headline {
    width: 100% !important;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
}

.properties-table > tbody > tr > td:first-child {
    width: 40%;
    word-break: break-word;
}

.properties-table > tbody > tr > td:last-child {
    word-break: break-all;
}

.properties-table .properties-table-headline .maplinkdiv {
    float: left;
}

.properties-table .properties-table-headline .maplinkdiv .treeText {
    display: contents;
}

.properties-table .array-item-button-section,
.properties-table .array-headline-button-section {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
}
.properties-table .array-headline-button-section .feather,
.properties-table .array-item-button-section .feather {
    padding: 0 5px 0 0;
}

.properties-table .array-item-button-section::parent {
    padding: 0;
}

.properties-table .array-item-button-section p,
.properties-table .array-headline-button-section p {
    margin: 0;
    text-align: right;
}

.filter-container { 
    display: flex;
}

.array-filter-clear,
.array-filter-submit {
    width: 200px;
}

.array-filter-clear:hover svg,
.array-filter-submit:hover svg {
    stroke-width: 3;
    font-weight: bold;
}

.array-load-icon use {
    animation: spin 2s linear infinite;
    transform-origin: 50% 50%;
}

.maplinkdiv {
    white-space: nowrap;
    min-width: 12em;
    overflow: hidden;
}

.maplinkdiv-with-buttons {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.struct-content-column {
    padding: 0;
}

tr:last-child > td > .properties-table-headline > .valuedescription,
tr:last-child > td > .valuedescription {
    border-color: transparent;
}

.active-header > .valuedescription,
.fileselection-field tr:last-child > td > .properties-table-headline > .valuedescription,
.fileselection-field tr:last-child > td > .valuedescription {
    border-color: #ccc !important;
}

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

.subnavDiv {
    clear: both;
}

.disableCursor {
    cursor: unset !important;
}

.mainButton,
.reactivate-ext-btn,
.reload-page-btn {
    width: auto;
    min-width: 165px;
    margin-top: 10px;
    margin-right: 5px;
    padding: 0 10px;
}

/* Footer and header */

#bar_wrapper_content {
    box-sizing: border-box;
    width: 100%;
    padding-right: 130px;
}

.footer-text-hidden-navbar {
    background-color: #f0f0f0;
}

.footer-text-active-navbar {
    background-color: white;
}

/* Active sessions */

.sessionSymbolList {
    display: inline;
    list-style: none;
    padding: 0px;
}

.sessionClientList, .sessionClientUserList {
    list-style: none;
    white-space: nowrap;
}

.active-sessions-content {
    width: calc(100vw - 31px);
}

.active-sessions-content .subcontent-data-table {
    border: 1px solid #ccc;
    padding: 10px;
}

.active-sessions-content td:first-child {
    width: 50%;
}

.active-sessions-list-entry {
    min-width: 400px;
}

.addform-container {
    overflow: overlay;
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 75%;
    padding-right: 17px;
}

/* Autocomplete */

.autocomplete-div {
    position: absolute;
    z-index: 40;
    display: inline-block;
    margin-right: 5px;
}

.autocomplete-div .autocomplete-items {
    display: inline-block;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 100px;
    border: 1px solid #ccc;
    z-index: 99;
    top: 100%;
    background-color: #FFF;
    min-width: 163px;
}

.autocomplete-div .autocomplete-items div {
    padding: 2px;
    cursor: pointer;
}

.autocomplete-div .autocomplete-items div:hover {
    background-color: #ccc;
}

.autocomplete-div .autocomplete-items div span {
    text-overflow: ellipsis;
    max-width: 300px;
    display: block;
    overflow: hidden;
}

.autocomplete-container {
    position: relative;
}

.autocomplete-icon {
    display: inline-block;
    color: #FFF;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0px;
}

/* Config hints */

.configuration-hints-head tr td {
    height: 20px;
}

.configuration-hint,
.configuration-error {
    word-break: break-word;
}

.configuration-hints-container {
    padding: 0;
}

.confirm-hint-or-error-btn {
    margin-right: 0;
    margin-left: auto;
}

.confirm-hint-or-error-btn .feather {
    padding: 0;
    margin: 0;
}

.toast-error {
    color: rgb(227, 6, 19);
    font-weight: bold;
}

.toast-success {
    color: #238636;
    font-weight: bold;
}

.config-hint-entry,
.toast-entry {
    display: flex;
    padding: 10px;
}

.config-hint-message,
.toast-message {
    padding-right: 10px;
}

.config-hint-message .feather,
.toast-message .feather {
    padding-left: 5px !important;
    padding-right: 10px !important;
}

.confirm-hint-or-error-btn {
    color: #000;
}

.addform-noncomplex-value-table {
    width: 100%;
}

/* Tooltips */

.config-tooltip {
    cursor: pointer;
}

.config-tooltip:hover {
    cursor: pointer;
}

.config-tooltip-button {
    padding: 0 !important;
}

.input-toggle-column > .config-input-hover-tooltip {
    margin-top: 10px;
    margin-left: -10px;
}

.config-tooltip .config-tooltip-title {
    transform: translate(-10px, 25px);
}

.config-tooltip-title {
    position: absolute;
    z-index: 40;
    display: inline-block;
    margin-right: 5px;
    background-color: rgba(0,0,0,0.6);
    border-radius: 5px;
    padding: 5px;
    color: #FFF;
    font-weight: normal;
    min-width: 50px;
    text-align: center;
    word-break: break-word;
}

.config-tooltip-title-right:before {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 7px solid #000;
    border-right: 3px solid transparent;
    border-top: 3px solid #000;
    border-bottom: 7px solid transparent;
    transform: rotate(-90deg);
    top: -9px;
    opacity: 0.6;
}

.config-tooltip-title-left {
    right: 10%;
    word-break: unset;
}

.config-tooltip-title-left::after {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 7px solid #000;
    border-right: 3px solid transparent;
    border-top: 3px solid #000;
    border-bottom: 7px solid transparent;
    transform: rotate(180deg);
    top: -9px;
    opacity: 0.6
}

.popup .config-tooltip-title {
    max-width: 100px;
    width: max-content;
}

.menu-btn-section .config-tooltip-title {
    transform: translate(-10px, 40px);
}

/* Object control */
.obj-control-col-remove-btn {
    display: block;
    margin-top: 3px;
}

.obj-control-col {
    width: 33%;
}

.obj-control-col span {
    display: flex;
}

.obj-control-col span svg {
    margin-top: 3px;
}

/* HTML editor */

.codemirror-editor-container {
    display: grid;
    max-width: 1000px;
}

/* Media queries */

@media only screen and (min-width: 992px) {
    .content-with-nav .diagnostics,
    .content-with-nav .default-content-page  {
        width: 50%;
    }
}

@media only screen and (min-width: 768px) {
    .popup {
        width: 50%;
    }

    .active-sessions-content .subcontent-data-table {
        width: 50%;
    }
}

@media only screen and (max-width: 767px) {
    .diagnostics,
    .default-content-page {
        min-width: 100px;
    }

    .popup {
        width: 60%;
    }

    .active-sessions-content .subcontent-data-table {
        width: 100%;
    }
}

@keyframes spin {
    100% {
        transform: rotate(360deg);
    }
}