/*
 * weinre is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2010, 2011 IBM Corporation
 */

.toolbar-item.remote .toolbar-icon {
    background-image: url(../../images/weinre-icon-32x32.png);
}

.monospace {
     font-size:   12px !important;
     font-family: Monaco, Consolas, Lucida Console, dejavu sans mono, monospace;
}

.source-code {
     font-size:   12px !important;
     font-family: Monaco, Consolas, Lucida Console, dejavu sans mono, monospace;
}

.weinre-connector-item {
    font-size: 140%;
}
 
.weinre-connector-item.target {
    text-decoration: underline; 
    color: blue;
}
 
.weinre-connector-item.target.connected {
    color: #0D0;
}
 
.weinre-connector-item.closed {
    color: #B00;
}

.weinre-connector-item.current {
    font-weight: bold;
}

.weinre-connector-item.connected {
    color: #0D0;
}

.weinre-connector-item.error {
    color: #A00;
    font-weight: bold;
    font-size: 200%
}

.weinreServerProperties {
    margin-left: 2em;
}

.weinre-normal-text-size {
    font-size: 140%;
}

.weinre-fadeable {
  opacity: 1;
  -webkit-transition: opacity 5s linear;
}

.weinre-fade {
  opacity: 0;
}

