.ref{
    font: normal normal 12px/18px Consolas, "Liberation Mono", Menlo, "Courier New", Courier, monospace;
    color: #333;
}

/* reset default styles for these elements */
.ref i,
.ref span,
.ref r,
.ref a{
    font-style: inherit;
    font-weight: inherit;
    margin: 0;
    padding: 0;
    text-align: left;
    display: inline;
    text-decoration: inherit;
    white-space: normal;
    background: none;
}

/* meta content (used to generate tooltips) */
.ref > div,
.ref > t{
    display: none;
}

/* show help cursor when mouse is over an entity with a tooltip */
.ref [data-tip],
.ref [h]{
    cursor: help;
}

/* pointer if inside a link */
.ref a > [data-tip],
.ref a > [h]{
    cursor: pointer;
}

/* links */
.ref a{
    color: inherit;
    border-bottom: 1px dotted transparent;
    border-color: inherit;
}

/* tooltip; note that the js overrides top/left properties, this is why we use margin  */
#rTip{
    display: none;
    position: absolute;
    z-index: 99999;
    font-size: 12px;
    white-space: pre;
    text-align: left;
    text-shadow: 0 -1px 0 #191919;
    line-height: 16px;
    background: #222;
    color: #888;
    border: 0;
    border-radius: 4px;
    opacity: 0.90;
    box-shadow:0 0 4px rgba(0,0,0, 0.25);
    -webkit-transition: opacity .25s, margin .25s;
    transition: opacity .25s, margin .25s;
}

#rTip.visible{
    display: table;
    margin: 10px 0 0 15px;
}

#rTip.visible.fadingOut{
    opacity: 0;
    margin: 20px 0 0 25px;
}

#rTip [data-cell],
#rTip [c]{
    padding: 2px 7px;
}

#rTip [data-title], #rTip [data-desc]{
    padding: 8px;
    display: block;
    color: #ccc;
}

#rTip [data-desc]{
    padding-top: 0px;
    color: #777;
}

#rTip [data-cell][data-varType],
#rTip [c][data-varType]{
    padding: 10px;
    background: #333;
    box-shadow: inset -1px 0 0 #444;
    border-right:1px solid #111;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

#rTip [data-cell][data-sub],
#rTip [c][data-sub]{
    padding: 8px 10px 10px 10px;
    background: #333;
    box-shadow: inset 0 1px 0 #444;
    border-top:1px solid #111;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
}

#rTip [data-table] [data-cell]:first-child,
#rTip [t] [c]:first-child{
    font: bold 11px Helvetica, Arial;
    color: #888;
}

#rTip [data-table] [data-cell]:nth-child(2),
#rTip [t] [c]:nth-child(2){
    color: #edd078;
}




/* base entity - can be nested */
.ref span, .ref r{
    white-space: pre;
    display: inline;
}

/* key-value dividers, property & method modifiers etc. */
.ref i{
    white-space: pre;
    color: #aaa;
}

/* source expression (input) */
.ref [data-input]{
    margin: 2px 0 0;
    padding: 2px 7px 3px 4px;
    display: block;
    color: #ccc;
    background-color: #333;
    background-image: -webkit-linear-gradient(top, #444, #333);
    background-image: linear-gradient(top, #444, #333);
    border-radius: 4px 4px 0 0;
    border-bottom: 1px solid #fff;
}

.ref [data-backtrace]{
    float: right;
}

.ref [data-output]{
    background: #f9f9f9;
    border: 1px solid #eee;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    box-shadow: inset 0px 4px 4px #f3f3f3, inset 0px -8px 8px #fff;
    padding: 2px 5px;
    margin: 0 0 4px;
    text-shadow: 0 1px 0 #fff;
    display: block;
}

/* expand/collapse toggle link for groups */
.ref [data-toggle]{
    display: inline-block;
    vertical-align: -3px;
    margin-left: 2px;
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 7px 0 7px 10px;
    border-color: transparent transparent transparent #CC0033;
    cursor: pointer;
    -webkit-transition: all ease-in .15s;
    transition: all ease-in .15s;
}

/* collapse graphic */
.ref [data-toggle][data-exp]{
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.ref [data-group],
.ref [g]{
    display: none;
}

.ref [data-toggle][data-exp] ~ [data-group],
.ref [data-toggle][data-exp] ~ [g]{
    display: block;
}

/* group sections */
.ref [data-table],
.ref [t]{
    display: table;
}

/* section titles */
.ref [data-tHead]{
    font: bold 11px Helvetica, Arial;
    color: #bcbcbc;
    text-transform: lowercase;
    margin: 12px 0 2px 10px;
    display: block;
}

/* emulate a table for displaying array & object members */
/* section row */
.ref [data-row],
.ref [r]{
    display: table-row;
}

/* zebra-like rows */
.ref [data-output] [data-row]:nth-child(odd){background: #f4f4f4;}
.ref [data-output] [data-row]:nth-child(even){background: #f9f9f9;}
.ref [data-output] [r]:nth-child(odd){background: #f4f4f4;}
.ref [data-output] [r]:nth-child(even){background: #f9f9f9;}

/* section cells */
.ref [data-cell],
.ref [c]{
    display: table-cell;
    width: auto;
    vertical-align: top;
    padding: 1px 0 1px 10px;
}

/* last cell of a row (forces table to adjust width like we want to) */
.ref [data-output] [data-table],
.ref [data-output] [t],
.ref [data-output] [data-cell]:last-child,
.ref [data-output] [c]:last-child{
    width: 100%;
}



/* tag-like appearance for boolean, null and resource types */
.ref [data-true],
.ref [data-false],
.ref [data-null],
.ref [data-unknown],
.ref [data-resource],
.ref [data-match],
.ref [m]{
    font: bold 11px Helvetica, Arial;
    color: #fff;
    padding: 1px 3px;
    text-transform: lowercase;
    text-shadow: none;
    border-radius: 2px;
    margin-right: 5px;
    background-color: #eee;
    background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 40%,rgba(0,0,0,0.1) 100%);
    background-image: linear-gradient(to bottom, rgba(255,255,255,0.1) 40%,rgba(0,0,0,0.1) 100%);
}

/* string matches */
.ref [data-match],
.ref [m]{
    background-color: #d78035;
}

/* boolean true */
.ref [data-true]{
    background-color: #339900;
}

/* boolean false */
.ref [data-false]{
    background-color: #CC0033;
    color: #fff;
}

/* null value */
.ref [data-null],
.ref [data-unknown]{
    background-color: #eee;
    color: #999;
    text-shadow: inherit;
}

/* resources */
.ref [data-resource]{
    background-color: #0057ae;
}

.ref [data-resourceProp]{
    font: bold 11px Helvetica, Arial;
    color: #999;
}

/* integer or double values */
.ref [data-integer],
.ref [data-double]{
    color: #0099CC;
}

/* string values */
.ref [data-string]{
    background: #e8f0e1;
    color: #669933;
    padding: 3px 1px;

    /* prevent long strings from breaking the page layout */
    white-space: -moz-pre-wrap; /* Mozilla */
    white-space: -hp-pre-wrap; /* HP printers */
    white-space: -o-pre-wrap; /* Opera 7 */
    white-space: -pre-wrap; /* Opera 4-6 */
    white-space: pre-wrap; /* CSS 2.1 */
    white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
    word-wrap: break-word; /* IE */
    word-break: break-all;
}

.ref [data-string][data-special]{
    background: none;
    padding: 0;
}

.ref [data-string][data-special] i{
    background: #faf3dc;
    color: #d78035;
}

/* arrays & objects */
.ref [data-array],
.ref [data-array] ~ i,
.ref [data-object],
.ref [data-object] ~ i,
.ref [data-resource] ~ i{
    color:#CC0033;
}

.ref [data-method]{
    font-weight: bold;
    color: #0057ae;
}

.ref [data-const][data-inherited],
.ref [data-prop][data-inherited]{
    color: #999;
}

.ref [data-prop][data-private],
.ref [data-method][data-private]{
    color: #CC0033;
}

/* inherited methods */
.ref [data-method][data-inherited]{
    font-weight: bold;
    color: #6da5de;
}

/* method arguments */
.ref [data-param]{
    font-weight: normal;
    color: #333;
}

/* optional method arguments */
.ref [data-param][data-optional]{
    font-style: italic;
    font-weight: normal;
    color: #aaa;
}

/* group info prefix */
.ref [data-gLabel],
.ref [gl]{
    font: bold 11px Helvetica, Arial;
    padding: 0 3px;
    color: #333;
}

/* tiny bubbles that indicate visibility info or class features */
.ref [data-mod]{
    font: bold 11px Helvetica, Arial;
    text-shadow: none;
    color: #fff;
}

.ref [data-input] [data-mod]{
    color: #444;
}

.ref [data-mod] span,
.ref [data-mod] r{
    display: inline-block;
    margin: 0 2px;
    width: 14px;
    height: 14px;
    text-align: center;
    border-radius: 30px;
    line-height: 15px;
}

.ref [data-mod-interface],
.ref [data-mod-abstract]{
    background: #baed78;
}

.ref [data-mod-anonymous]{
    background: #444;
}

.ref [data-mod-protected]{
    background: #edd078;
}

.ref [data-mod-private]{
    background: #eea8b9;
}

.ref [data-mod-iterateable]{
    background: #d5dea5;
}

.ref [data-mod-cloneable]{
    background: #bdd7d1;
}

.ref [data-mod-final]{
    background: #78bded;
}

/* regular expression (colors partially match RegexBuddy and RegexPal) */
.ref [data-regex]{
    font-weight: bold;
    text-shadow: none;
    padding: 1px 0;
    background: #e6e6e6;
    word-wrap: break-word;
}

/* char class */
.ref [data-regex-chr]{
    background: #ffc080;
    color: #694c07;
}

.ref [data-regex-chr-meta]{background: #e0a060;} /* char class: metasequence */
.ref [data-regex-chr-range]{background: #ffcf9b;} /* char class: range-hyphen */

/* metasequence */
.ref [data-regex-meta]{
    background: #80c0ff;
    color: #105f8c;
}

/* group: depth 1 */
.ref [data-regex-g1]{
    background: #00c000;
    color: #fff;
}

/* group: depth 2 */
.ref [data-regex-g2]{
    background: #c3e86c;
    color: #648c1c;
}

/* group: depth 3 */
.ref [data-regex-g3]{
    background: #008000;
    color: #fff;
}

/* group: depth 4 */
.ref [data-regex-g4]{
    background: #6dcb99;
    color: #fff;
}

/* group: depth 5 */
.ref [data-regex-g5]{
    background: #00ff00;
    color: #2c8e24;
}

.ref [data-error]{
    background: #CC0033;
    color: #fff;
    border-radius: 0 0 4px 4px;
    padding: 2px 5px;
    margin: 0 0 4px;
    display: block;
}

/* make labels and less-relevant text non-selectable */
.ref [data-match],
.ref [m],
.ref [data-tHead],
.ref [data-gLabel],
.ref [gl],
.ref [data-mod]{
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}