.loadingModal {
    display:    none;
    position:   fixed;
    z-index:    1000;
    top:        0;
    left:       0;
    height:     100%;
    width:      100%;
    background: rgba( 255, 255, 255, .8 )
    url('../img/loading.gif')
    50% 50%
    no-repeat;
}

/* When the body has the loading class, we turn
   the scrollbar off with overflow:hidden */
body.loading {
    overflow: hidden;
}

/* Anytime the body has the loading class, our
   modal element will be visible */
body.loading .loadingModal {
    display: block;
}

.display-inline{
    display:inline;
}

.display-inline-block{
    display:inline-block;
}

.overflow{
    overflow: auto;
}

.overflow-x-auto{
    overflow-x: auto;
}

.overflow-y-auto{
    overflow-y: auto;
}

.w-500{
    width: 500px;
}

.w-600{
    width: 600px;
}

.h-150{
    height: 150px;
}

.h-200{
    height: 200px;
}

.h-300{
    height: 300px;
}

.h-350{
    height: 350px;
}

.h-400{
    height: 400px;
}

.h-700{
    height: 700px;
}

.h-750{
    height: 750px;
}

.h-800{
    height: 800px;
}

.valign-top{
    vertical-align: top;
}

.bg-light{
    background-color: #f9f9f9 !important;
    background-image: none !important;
}

.text-bold{
    font-weight: bold;
}

.text-uppercase{
    text-transform: uppercase;
}

.vega-embed{
    display: block !important;
    padding-right: 0 !important;
}

.text-no-wrap{
    white-space: nowrap !important;
}

.b-r-none{
    border-radius: 0;
}

.b-top{
    border-top: 1px solid lightgray;
}

.b-right{
    border-right: 1px solid lightgray;
}

.b-bottom{
    border-bottom: 1px solid lightgray;
}

.b-left{
    border-left: 1px solid lightgray;
}

.b-all{
    border: 1px solid lightgray;
}

.p-b-md{
    padding: 16px;
}

.p-b-sm{
    padding: 8px;
}

.p-md{
    padding: 16px;
}

.p-sm{
    padding: 8px;
}

.p-xs{
    padding: 4px;
}

.p-none{
    padding: 0;
}

.m-b-sm{
    margin-bottom: 8px;
}

.m-t-sm{
    margin-top: 8px;
}

.m-l-sm{
    margin-left: 8px;
}

.m-r-sm{
    margin-right: 8px;
}

.m-sm{
    margin: 8px;
}

tr.dtrg-group,
tr.dtrg-group:hover {
    background-color: #eeeeee !important;
}

.table-xs td,
.table-xs tr,
.table-xs th {
    padding: 0.3rem !important;
    font-size: 0.95em;
}

.badge-light{
    color: #2f4050;
    background: #eeeeee;
}


ul, ol {
    list-style: none;
}

.clear {
    clear: both;
}

.clearfix:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.jsontree_tree{
    margin-left: 0px !important;
    white-space: normal !important;
}

.jsontree_child-nodes{
    margin-left: 0px !important;
}

.CodeMirror {
    border: 1px solid #eee;
/*  height: auto;*/
    height: 100%;
}

.step {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 18px;
    color: white;
    background-color: #343A3F;
}

.design-studio {
    border-color: #9fb7d8;
    box-shadow: 0 3px 12px rgba(35, 73, 122, 0.08);
}

.design-studio .card-header {
    background: #f3f7fc;
}

.design-example {
    display: grid;
    grid-template-columns: 82px 150px minmax(240px, 1fr) 38px;
    gap: 12px;
    align-items: center;
    padding: 12px;
    margin-bottom: 10px;
    border: 1px solid #dce2e8;
    background: #fafbfc;
}

.design-example-number {
    font-weight: 600;
    color: #495057;
}

.design-example-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 92px;
    overflow: hidden;
    border: 1px dashed #adb5bd;
    background: white;
    font-size: 0.8rem;
    text-align: center;
}

.design-example-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.design-example-fields textarea {
    margin-top: 8px;
}

.output-card {
    height: 540px;
}

.visualization-panel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 485px;
    overflow: auto;
}

.empty-visualization {
    padding: 40px;
    color: #7b8794;
    text-align: center;
}

.specification-panel {
    height: 485px;
    overflow: hidden;
}

@media (max-width: 991px) {
    .design-example {
        grid-template-columns: 82px 120px minmax(180px, 1fr) 38px;
    }

    .design-example-preview {
        width: 120px;
    }

}

@media (max-width: 700px) {
    .design-example {
        grid-template-columns: 1fr 38px;
    }

    .design-example-preview,
    .design-example-fields {
        grid-column: 1 / -1;
        width: 100%;
    }
}
