.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;  
}
