/********************************/
/* Content and Toolbar          */
/********************************/

.jsonHidden {
    display: none;
}

.jsonIndent {
    position: relative;
    margin: 1px 0 0 18px;
    min-height: 22px;
}

.jsonObjectHeader {
    position: relative;
    height: 22px;
}

.jsonObjectHeader .jsonKey,
.jsonObjectHeader .jsonColon,
.jsonObjectHeader .jsonDelimiter {
    display: inline-block;
    vertical-align: middle;
}

.jsonKey,
.jsonKeyInput {
    font-weight: bold;
}

.jsonColon {
    margin-right: 4px;
}

.jsonKeyInput ~ .jsonColon,
.jsonKeySelect ~ .jsonColon {
    margin-left: 3px;
}

.jsonKeySelect {
    margin: 0 0 0 4px;
}

.jsonLabel {
    margin-left: 4px;
}

.jsonRadioInput {
    margin: 1px 3px 0 0;
}

.jsonTextInput {
    margin: 1px 0 0 0;
    border: 1px solid #cccccc;
    padding: 0 0 0 4px;
    height: 18px;
    font-family: monospace;
    font-size: 13px;
}
.jsonTextInput:focus {
    outline: none;
    border: 1px solid #689ccd;
    box-shadow: 0 0 5px 2px #689ccd;
}

.jsonToolbar {
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 22px;
}

/* add a grey background to the toolbar */
.jsonToolbar:before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 2000px;
    height: 22px;
    background-color: #e1e1e1;
}

/* siblings of the toolbar must display on top of the grey background */
.jsonToolbar ~ .jsonToolbarSibling {
    position: relative;
    display: inline-block;
    height: 22px;
}

/********************************/
/* Collapsibles                 */
/********************************/

.jsonCollapseArrow {
    width: 22px;
    height: 22px;
    background: url("../icons/json_collapse_down_arrow.png") no-repeat 7px 8px;
    cursor: pointer;
    position: absolute;
    top: 0;
    left: -20px;
}
.jsonCollapseArrow.jsonCollapsed {
    background: url("../icons/json_collapse_right_arrow.png") no-repeat 8px 7px;
}

/* hide the first collapse arrow (for the root object) */
.jsonViewContainer > .jsonObjectWrapper > .jsonObjectHeader .jsonCollapseArrow {
    display: none;
}

.jsonObjectWrapper.jsonCollapsed > .jsonObjectBody,
.jsonObjectWrapper.jsonCollapsed > .jsonObjectFooter {
    display: none;
}

.jsonObjectWrapper.jsonCollapsed > .jsonObjectHeader .jsonDelimiterCurlyBrace:after {
    content: " . . . }";
}

.jsonObjectWrapper.jsonCollapsed > .jsonObjectHeader .jsonDelimiterBracket:after {
    content: " . . . ]";
}

/********************************/
/* General Popout Menu Styles   */
/********************************/

.jsonPopoutMenu {
    position: absolute;
    z-index: 999999;
    right: 100%;
    top: -18px;
    margin-right: 11px;
    border: 2px solid #dcdcdc;
    border-radius: 5px;
    background-color: #ffffff;
    cursor: default;
    display: block;
}

.jsonPopoutMenu.jsonHidden {
    display: none;
}

.jsonPopoutMenu:before,
.jsonPopoutMenu:after {
    left: 100%;
    top: 0;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}
.jsonPopoutMenu:before {
    border-left-color: #dcdcdc;
    border-width: 8px 0 8px 12px;
    margin-top: 18px;
}
.jsonPopoutMenu:after {
    border-left-color: #ffffff;
    border-width: 6px 0 6px 9px;
    margin-top: 20px;
}

/********************************/
/* Optional Properties          */
/********************************/

.jsonOptProps {
    position: absolute;
    top: 0;
    right: 0;
}

.jsonOptPropsButton {
    width: 22px;
    height: 22px;
    background: url("../icons/json_opt_props_icon_14x14.png") no-repeat 4px 4px;
    cursor: pointer;
}

.jsonOptPropsPopoutMenuTitle {
    margin: 0 10px;
    padding: 8px 10px 4px 10px;
    border-bottom: 1px solid #dcdcdc;
    text-align: left;
    font: 16px Arial, sans-serif;
    color: #404040;
}

.jsonOptPropsPopoutMenuContent {
    margin: 4px 10px 10px 10px;
    text-align: left;
    font: 14px Arial, sans-serif;
    color: #404040;
}

.jsonOptPropsTable {
    border-collapse: collapse;
}

.jsonOptPropsTableCell {
    vertical-align: middle;
    padding: 1px 6px 1px 0;
}

.jsonOptPropsTableCell:nth-child(3) {
    padding-right: 0;
}

.jsonOptPropsLabel {
    white-space: nowrap;
    font-family: Arial, sans-serif;
    font-size: 14px;
}

.jsonOptPropsLabel .jsonOptPropsCheckbox {
    margin: 0 4px 0 0;
    display: inline-block;
    vertical-align: middle;
}

.jsonOptPropsLabel .jsonOptPropsName {
    display: inline-block;
    vertical-align: middle;
    min-width: 20px;
}

/********************************/
/* Add Item                     */
/********************************/

.jsonAddItem {
    position: absolute;
    top: 0;
    right: 22px;
}

.jsonAddItemButton {
    width: 22px;
    height: 22px;
    background: url("../icons/json_add_item_icon_12x12.png") no-repeat 5px 5px;
    cursor: pointer;
}

.jsonAddItemPopoutMenuContent {
    margin: 4px 10px;
    text-align: left;
    font: 14px Arial, sans-serif;
    color: #404040;
}

.jsonAddItemPopoutTable {
    border-collapse: collapse;
}

.jsonAddItemTableCell {
    margin-left: 15px;
    padding: 1px 6px 1px 0;
    display: block;
}
.jsonAddItemRowHeader {
    color: #aaaaaa;
    font-weight: normal;
}

.jsonAddItemSelection:hover {
    background-color: #CCCCCC;
}

/********************************/
/* Remove Item                  */
/********************************/

.jsonRemoveItem {
    position: absolute;
    top: 0;
    right: 44px;
}

.jsonRemoveItemButton {
    width: 22px;
    height: 22px;
    background: url("../icons/json_remove_item_icon_12x12.png") no-repeat 5px 5px;
    cursor: pointer;
}