/*
 * 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;
}

.panel.resources .cookie-storage-tree-item {
    display: none;
}

.panel.resources .frame-storage-tree-item {
    display: none;
}

.panel.resources .application-cache-storage-tree-item {
    display: none;
}

.panel.timeline .resources-size-graph-sidebar-item {
    display: none;
}

#main-status-bar .timeline-category-rendering {
    display: none;
}

#search {
    display: none;
}

#search-toolbar-label {
    display: none;
}

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

