.json {
    width: 100%;
}

.jsonControls {

}

.jsonBody {
    display: grid;
    grid-template-columns: 3fr 5fr;
    gap: 20px;
    height: 100%;
    font-family: Klartext, sans-serif;
    font-size: 16px;
    position: relative;
}

.jsonBodySearch {
    position: absolute;
    top: 20px;
    right: 20px;
    opacity: 0;
    pointer-events: none;
    transition: .5s;
}


.jsonBodySearch.active {
    opacity: .2;
    pointer-events: all;
}

.jsonBodySearch:hover {
    opacity: 1;
}

.jsonBodySearchInput {
    width: 300px;
    border: 2px solid var(--primary);
    color: var(--primary);
    border-radius: 8px;
    background-color: var(--bone);
}

.jsonBodySearchInput:focus {
    outline: none;
}

.jsonBodySearch:has(.jsonBodySearchInput:focus), .jsonBodySearch:has(.jsonBodySearchControlsBtn:focus) {
    opacity: 1;
    pointer-events: all;
}

.jsonBodyItem {
    border-radius: 8px;
    background-color: var(--faded-bone);
    height: 100%;
    color: var(--primary);
    border: 0;
    padding: 20px;
}

.jsonBodyInput:focus {
    outline: none;
}

.jsonBodySearchControls {
    margin-left: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    justify-content: flex-end;
    color: var(--primary);
    width: fit-content;
    margin-top: 4px;
}

.jsonBodySearchControlsWrap {
    display: flex;
    flex-direction: row;
    gap: 4px;
}

.jsonBodySearchControlsBtn {
    width: fit-content;
    padding: 0;
    border: 2px dashed transparent;
    border-radius: 4px;
    transition: .3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jsonBodySearchControlsBtn svg {
    height: 20px;
    width: 30px;
    object-fit: cover;
}

.jsonBodySearchControlsBtn:focus {
    outline: none;
    border: 2px dashed var(--bone);

}

.jsonBodyItem {
    max-height: 500lvh;
    height: 60lvh;
    display: flex;
    flex-shrink: 0;
    overflow-y: auto;
    transition: .5s ease;
}

.jsonBodyItem.tall {
    height: 80lvh;
}


.jsonBodyItem::-webkit-scrollbar {
    width: 12px;
    background: transparent;
}

.jsonBodyItem::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.15);
    cursor: ns-resize;
}

.jsonBodyItem::-webkit-scrollbar-thumb {
    background-color: var(--bone);
    cursor: grab;
    border: 2px solid transparent;
    border-radius: 8px;
}

.jsonBodyItem::-webkit-scrollbar-thumb:active {
    cursor: grabbing;
}

.jsonBodyOutput {
    white-space: pre-wrap;
    display: block;
}

.jsonBodyOutput mark {
    background-color: var(--yellow);
    transition: .3s ease;
}

.jsonBodyOutput mark.active {
    background-color: var(--green);
}

.jsonBodySearchHighlights {
    /*background-color: #b43535;*/
    position: absolute;
    width: 8px;
    height: 100%;
    right: -8px;
    top: 0;
    z-index: 0;
    border-radius: 0 8px 8px 0;
}

.jsonBodySearchHighlightsWrap {
    position: relative;
}

.jsonBodySearchHighlightsTick {
    width: 100%;
    height: 1px;
    background-color: var(--yellow);
    transition: .3s ease;
    position: absolute;
}

@media (max-width: 800px) {
    .jsonBody {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
}