/*
 * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
 * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1.  Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer. 
 * 2.  Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution. 
 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
 *     its contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission. 
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

html {
    height: 100%;
}

body {
    cursor: default;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    font-family: Lucida Grande, sans-serif;
    font-size: 10px;
    margin: 0;
    -webkit-text-size-adjust: none;
    -ms-text-size-adjust: none;
	-moz-text-size-adjust: none;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
}

* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
	-moz-box-sizing: border-box;
}

:focus {
    outline: none;
}

input[type="search"]:focus, input[type="text"]:focus {
    outline: auto 5px -webkit-focus-ring-color;
}

iframe, a img {
    border: none;
}

img {
    -webkit-user-drag: none;
}

.hidden {
    display: none !important;
}

#toolbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 56px;
    display: -webkit-box;
    display: -ms-flexbox;
	display: -moz-box;
    padding: 0 5px;
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(191, 191, 191)), to(rgb(151, 151, 151)));
    background-image: linear-gradient(to bottom, rgb(191, 191, 191) 0%, rgb(151, 151, 151) 100%);
    border-bottom: 1px solid rgb(80, 80, 80);
    -webkit-box-orient: horizontal;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    -ms-flex-direction: row;
	-moz-box-orient: horizontal;
    background-origin: padding;
    background-clip: padding;
}

body.inactive #toolbar {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(233, 233, 233)), to(rgb(207, 207, 207)));
    background-image: linear-gradient(to bottom, rgb(233, 233, 233) 0%, rgb(207, 207, 207) 100%);
    border-bottom: 1px solid rgb(64%, 64%, 64%);
}

body.detached.platform-mac-leopard #toolbar,
body.detached.platform-mac-snowleopard #toolbar {
    background: transparent !important;
}

body.attached #toolbar {
    height: 34px;
    border-top: 1px solid rgb(100, 100, 100);
    cursor: row-resize;
    padding-left: 0;
}

body.attached.port-qt #toolbar {
    cursor: auto;
}

body.attached.inactive #toolbar {
    border-top: 1px solid rgb(64%, 64%, 64%);
}

.toolbar-item {
    display: -webkit-box;
    display: -ms-flexbox;
	display: -moz-box;
    padding: 4px 6px;
    margin: 0;
    background-color: transparent;
    border-style: none;
    border-color: transparent;
    -webkit-box-orient: vertical;
    -webkit-box-align: center;
    -webkit-box-pack: end;
    -ms-flex-direction: column;
    -ms-flex-align: center;
    -ms-flex-pack: end;
	-moz-box-orient: vertical;
	-moz-box-align: center;
	-moz-box-pack: end;
}

.toolbar-item.toggleable.toggled-on {
    border-width: 0 2px 0 2px;
    padding: 4px 4px;
    -webkit-border-image: url(Images/toolbarItemSelected.png) 0 2 0 2;
	border-image: url(Images/toolbarItemSelected.png) 0 2 0 2;
	border-style: solid;
}

.toolbar-item.flexable-space {
    -webkit-box-flex: 1;
    -ms-flex: 1;
	-moz-box-flex: 1;
    visibility: hidden;
}

.toolbar-item input {
    margin-bottom: 8px;
}

.toolbar-icon {
    display: inline-block;
    width: 32px;
    height: 32px;
    -webkit-background-size: 100% auto;
    background-size: 100% auto;
}

body.attached .toolbar-icon {
    width: 24px;
    height: 24px;
    vertical-align: middle;
}

.toolbar-item:active .toolbar-icon {
    background-position: 0 32px;
}

body.attached .toolbar-item:active .toolbar-icon {
    background-position: 0 24px;
}

.toolbar-label {
    font-size: 11px;
    font-family: Lucida Grande, sans-serif;
    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
}

.toolbar-item.toggleable:active .toolbar-label {
    text-shadow: none;
}

body.attached .toolbar-label {
    display: inline-block;
    vertical-align: middle;
    margin-left: 3px;
}

body.attached #search-toolbar-label {
    display: none;
}

#search {
    width: 205px;
    font-size: 16px;
    margin-bottom: 5px;
}

body.attached #search {
    font-size: 11px;
    margin-bottom: 8px;
}

#search-results-matches {
    font-size: 11px;
    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
    margin-bottom: 22px;
}

body.attached #search-results-matches {
    margin-bottom: 6px;
}

.toolbar-item.elements .toolbar-icon {
    background-image: url(Images/elementsIcon.png);
}

.toolbar-item.resources .toolbar-icon {
    background-image: url(Images/resourcesIcon.png);
}

.toolbar-item.network .toolbar-icon {
    background-image: url(Images/networkIcon.png);
}

.toolbar-item.scripts .toolbar-icon {
    background-image: url(Images/scriptsIcon.png);
}

.toolbar-item.timeline .toolbar-icon {
    background-image: url(Images/timelineIcon.png);
}

.toolbar-item.profiles .toolbar-icon {
    background-image: url(Images/profilesIcon.png);
}

.toolbar-item.audits .toolbar-icon {
    background-image: url(Images/auditsIcon.png);
}

.toolbar-item.console .toolbar-icon {
    background-image: url(Images/consoleIcon.png);
}

#close-button-left, #close-button-right {
    width: 14px;
    height: 14px;
    background-image: url(Images/closeButtons.png);
    background-position: 0 0;
    background-color: transparent;
    border: 0 none transparent;
    margin: 5px 0;
}

#close-button-left:hover, #close-button-right:hover {
    background-position: 14px 0;
}

#close-button-left:active, #close-button-right:active {
    background-position: 28px 0;
}

body.detached .toolbar-item.close-left, body.detached .toolbar-item.close-right {
    display: none;
}

body.attached.port-qt .toolbar-item.close-left, body.attached.port-qt .toolbar-item.close-right {
    display: none;
}

body.platform-mac .toolbar-item.close-right {
    display: none;
}

body:not(.platform-mac) .toolbar-item.close-left {
    display: none;
}

#main {
    position: absolute;
    z-index: 1;
    top: 56px;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    background-color: white;
}

body.attached #main {
    top: 34px;
}

#main-panels {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 23px;
    overflow: hidden;
}

#main-status-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}

body.drawer-visible #main-status-bar {
    height: 24px;
    background-image: url(Images/statusbarResizerVertical.png), url(Images/statusbarBackground.png);
    background-repeat: no-repeat, repeat-x;
    background-position: right center, center;
    cursor: row-resize;
}

body.drawer-visible #main-status-bar * {
    cursor: default;
}

body.drawer-visible #main-panels {
    bottom: 24px;
}

.status-bar {
    background-color: rgb(235, 235, 235);
    background-image: url(Images/statusbarBackground.png);
    background-repeat: repeat-x;
    white-space: nowrap;
    height: 23px;
    overflow: hidden;
    z-index: 12;
}

.status-bar > div {
    display: inline-block;
    vertical-align: top;
}

.status-bar-item {
    display: inline-block;
    height: 24px;
    padding: 0;
    margin-left: -1px;
    margin-right: 0;
    vertical-align: top;
    border: 0 transparent none;
    background-color: transparent;
}

.status-bar-item:active {
    position: relative;
    z-index: 200;
}

.glyph {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.75);
    z-index: 1;
}

.glyph.shadow {
    top: 1px;
    background-color: white !important;
    z-index: 0;
}

button.status-bar-item {
    position: relative;
    width: 32px;
    background-image: url(Images/statusbarButtons.png);
    background-position: 0 0;
}

button.status-bar-item:active {
    background-position: 32px 0 !important;
}

button.status-bar-item .glyph.shadow {
    background-color: rgba(255, 255, 255, 0.33) !important;
}

button.status-bar-item.toggled-on .glyph {
    background-color: rgb(66, 129, 235);
}

button.status-bar-item.toggled-1 .glyph {
    background-color: rgb(66, 129, 235);
}

button.status-bar-item.toggled-2 .glyph {
    background-color: purple;   
}

button.status-bar-item:disabled {
    opacity: 0.5;
    background-position: 0 0 !important;
}

select.status-bar-item {
    min-width: 48px;
    border-width: 0 17px 0 2px;
    padding: 0 2px 0 6px;
    font-weight: bold;
    color: rgb(48, 48, 48);
    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
    -webkit-border-image: url(Images/statusbarMenuButton.png) 0 17 0 2;
	border-image: url(Images/statusbarMenuButton.png) 0 17 0 2;
    -webkit-border-radius: 0;
	border-radius: 0;
    -webkit-appearance: none;
	-moz-appearance: none;
}

select.status-bar-item:active {
    color: black;
    -webkit-border-image: url(Images/statusbarMenuButtonSelected.png) 0 17 0 2;
	border-image: url(Images/statusbarMenuButtonSelected.png) 0 17 0 2;
}

#dock-status-bar-item .glyph {
    -webkit-mask-image: url(Images/undockButtonGlyph.png);
}

body.detached #dock-status-bar-item .glyph {
    -webkit-mask-image: url(Images/dockButtonGlyph.png);
}

body.port-qt #dock-status-bar-item {
    display: none
}

#console-status-bar-item .glyph {
    -webkit-mask-image: url(Images/consoleButtonGlyph.png);
}

.clear-status-bar-item .glyph {
    -webkit-mask-image: url(Images/clearConsoleButtonGlyph.png);
}

#counters {
    position: absolute;
    right: 16px;
    top: 0;
    cursor: pointer;
    padding: 6px 2px 6px 0px;
    font-size: 10px;
    height: 19px;
}

#error-warning-count {
    display: inline;
}

#error-warning-count:hover {
    border-bottom: 1px solid rgb(96, 96, 96);
}

#error-count::before {
    content: url(Images/errorIcon.png);
    width: 10px;
    height: 10px;
    vertical-align: -1px;
    margin-right: 2px;
}
    
#error-count + #warning-count {
    margin-left: 6px;
}

#warning-count::before {
    content: url(Images/warningIcon.png);
    width: 10px;
    height: 10px;
    vertical-align: -1px;
    margin-right: 2px;
}

#drawer {
    display: none;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 200px;
    background-color: white;
    background-image: url(Images/statusbarBottomBackground.png);
    background-repeat: repeat-x;
    background-position: bottom;
}

body.drawer-visible #drawer {
    display: block;
}

#drawer-status-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: none;
}

.monospace {
    font-size: 10px !important;
    font-family: monospace;
}

body.platform-mac .monospace, body.platform-mac .source-code {
    font-family: Monaco, monospace;
}

/* Keep .platform-mac to make the rule more specific than the general one above. */
body.platform-mac.platform-mac-snowleopard .monospace,
body.platform-mac.platform-mac-snowleopard .source-code {
    font-size: 11px !important;
    font-family: Menlo, monospace;
}

body.platform-windows .monospace, body.platform-windows .source-code {
    font-size: 12px !important;
    font-family: Consolas, Lucida Console, monospace;
}

body.platform-linux .monospace, body.platform-linux .source-code {
    font-size: 11px !important;
    font-family: dejavu sans mono, monospace;
}

#console-messages {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    right: 0;
    bottom: 23px;
    padding: 2px 0;
	overflow-y: auto;
	overflow-y: overlay;
    word-wrap: break-word;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    -webkit-text-size-adjust: auto;
    -ms-text-size-adjust: auto;
	-moz-text-size-adjust: auto;
}

#console-prompt {
    position: relative;
    padding: 1px 22px 1px 24px;
    min-height: 16px; 
    white-space: pre-wrap;
    -webkit-user-modify: read-write-plaintext-only;
	-moz-user-modify: read-write;
}

#console-prompt::before {
    background-image: url(Images/userInputIcon.png);
}

.console-user-command-result.console-log-level::before {
    background-image: url(Images/userInputResultIcon.png);
}

.console-message, .console-user-command {
    position: relative;
    border-bottom: 1px solid rgb(240, 240, 240);
    padding: 1px 22px 1px 24px;
    min-height: 16px;
}

.console-adjacent-user-command-result {
    border-bottom: none;
}

.console-adjacent-user-command-result + .console-user-command-result.console-log-level::before {
    background-image: none;
}

.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before {
    position: absolute;
    display: block;
    content: "";
    left: 7px;
    top: 0.8em;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
}

/* Hack to detect IE*/
@media screen\0 {
    /* Set image directly to console div element instead of using pseudo selector
    since it causes displaying caret in incorrecty place*/
    #console-prompt {
        background: url(Images/userInputIcon.png) 7px 5px no-repeat;
    }

    #console-prompt::before{
        content: none !important;
    }

    /*Set icons as background-image since IE doesn't support -webkit-mask-image*/
    #console-status-bar-item .glyph {
        background-image: url(Images/consoleButtonGlyph.png);
    }

    .clear-status-bar-item .glyph {
        background-image: url(Images/clearConsoleButtonGlyph.png);
    }

    .node-search-status-bar-item .glyph {
        background-image: url(Images/nodeSearchButtonGlyph.png);
    }

    #console-status-bar-item .glyph,
    .clear-status-bar-item .glyph,
    .node-search-status-bar-item .glyph{
        background-color: transparent;
    }

    /*Set background image for selected tab since IE doesn't support border-image property*/
    .toolbar-item.toggleable.toggled-on {
        background: url(Images/toolbarItemSelected.png);
        background-size: 1px 100%;
    }
}

/* Hack to detect Firefox*/
@-moz-document url-prefix() {
  	/*Set icons as background-image since FF doesn't support mask-image*/
    #console-status-bar-item .glyph {
        background-image: url(Images/consoleButtonGlyph.png);
    }

    .clear-status-bar-item .glyph {
        background-image: url(Images/clearConsoleButtonGlyph.png);
    }

    .node-search-status-bar-item .glyph {
        background-image: url(Images/nodeSearchButtonGlyph.png);
    }

    #console-status-bar-item .glyph,
    .clear-status-bar-item .glyph,
    .node-search-status-bar-item .glyph{
        background-color: transparent;
    }
}

.console-message .bubble {
    display: inline-block;
    height: 14px;
    background-color: rgb(128, 151, 189);
    vertical-align: middle;
    white-space: nowrap;
    padding: 1px 4px;
    margin-top: -2px;
    margin-right: 4px;
    text-align: left;
    font-size: 11px;
    line-height: normal;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
    text-shadow: none;
    color: white;
    -webkit-border-radius: 7px;
    border-radius: 7px;
}

.console-message-text {
    white-space: pre-wrap;
}

.repeated-message {
    padding-left: 6px;
}

.repeated-message.console-error-level::before, .repeated-message.console-warning-level:before, .repeated-message.console-debug-level:before {
    visibility: hidden;
}

.console-group .console-group > .console-group-messages {
    margin-left: 16px;
}

.console-group-title {
    font-weight: bold;
}

.console-group-title::before {
    background-image: url(Images/disclosureTriangleSmallDown.png);
    top: 0.6em;
    width: 11px;
    height: 12px;
}

.console-group.collapsed .console-group-title::before {
    background-image: url(Images/disclosureTriangleSmallRight.png);
}

.console-group.collapsed > .console-group-messages {
    display: none;
}

.console-error-level .console-message-text {
    color: red;
}

.console-debug-level .console-message-text {
    color: blue;
}

.console-debug-level::before {
    background-image: url(Images/searchSmallBrightBlue.png);
}

.console-error-level::before {
    background-image: url(Images/errorIcon.png);
}

.console-warning-level::before {
    background-image: url(Images/warningIcon.png);
}

.console-user-command .console-message {
    margin-left: -24px;
    padding-right: 0;
    border-bottom: none;
}

.console-user-command::before {
    background-image: url(Images/userInputPreviousIcon.png);
}

.console-user-command > .console-message-text {
    color: rgb(0, 128, 255);
}

#console-messages a {
    color: rgb(33%, 33%, 33%);
    cursor: pointer;
}

#console-messages a:hover {
    color: rgb(15%, 15%, 15%);
}

.console-message-url {
    float: right;
    margin-left: 4px;
}

.console-group-messages .section {
    margin: 0 0 0 12px !important;
}

.console-group-messages .section .header {
    padding: 0 8px 0 0;
    background-image: none;
    border: none;
    min-height: 0;
}

.console-group-messages .section .header::before {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 8px;
    height: 8px;
    content: url(Images/treeRightTriangleBlack.png);
}

.console-group-messages .section.expanded .header::before {
    content: url(Images/treeDownTriangleBlack.png);
}

.console-group-messages .section .header .title {
    color: black;
    font-weight: normal;
}

.console-group-messages .section .properties li .info {
    padding-top: 0;
    padding-bottom: 0;
    color: rgb(60%, 60%, 60%);
}

.console-group-messages .outline-disclosure {
    padding-left: 0;
}

.console-group-messages .outline-disclosure > ol {
    padding: 0 0 0 12px !important;
}

.console-group-messages .outline-disclosure, .console-group-messages .outline-disclosure ol {
    font-size: inherit;
    line-height: 12px;
}

.console-group-messages .outline-disclosure.single-node li {
    padding-left: 2px;
}

.console-group-messages .outline-disclosure li .selection {
    margin-left: -6px;
    margin-right: -6px;
}

.console-group-messages .add-attribute {
    display: none;
}

.console-formatted-object, .console-formatted-node {
    position: relative;
    display: inline-block;
    vertical-align: top;
}

.console-formatted-object .section, .console-formatted-node .section {
    position: static;
}

.console-formatted-object .properties, .console-formatted-node .properties {
    padding-left: 0 !important;
}

.console-formatted-number {
    color: rgb(28, 0, 207);
}

.console-formatted-string, .console-formatted-regexp {
    color: rgb(196, 26, 22);
}

.console-formatted-null, .console-formatted-undefined {
    color: rgb(128, 128, 128);
}

.error-message {
    color: red;
}

.auto-complete-text, .editing .auto-complete-text {
    color: rgb(128, 128, 128) !important;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
    -webkit-user-modify: read-only;
	-moz-user-modify: read-only;
}

.panel {
    display: none;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.panel.visible {
    display: block;
}

.webkit-line-gutter-backdrop {
    /* Keep this in sync with view-source.css (.webkit-line-gutter-backdrop) */
    width: 31px;
    background-color: rgb(240, 240, 240);
    border-right: 1px solid rgb(187, 187, 187);
    position: absolute;
    z-index: -1;
    left: 0;
    top: 0;
    height: 100%
}

.resource-view {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    overflow: auto;
}

.resource-view.visible {
    display: block;
}

.resource-view.font {
    font-size: 60px;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-align: center;
    padding: 15px;
}

.resource-view.image > .image {
    padding: 20px 20px 10px 20px;
    text-align: center;
}

.resource-view.image > .info {
    padding-bottom: 10px;
    font-size: 11px;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
}

.resource-view.image img.resource-image-view {
    max-width: 100%;
    max-height: 1000px;
    background-image: url(Images/checker.png);
    -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.5);
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    -webkit-user-drag: auto;
}

.resource-url {
    vertical-align: middle;
}

.resource-status-image {
    margin-top: -3px;
    vertical-align: middle;
}

.resource-view.image .title {
    text-align: center;
    font-size: 13px;
}

.resource-view.image .infoList {
    margin: 0;
}

.resource-view.image .infoList dt {
    font-weight: bold;
    display: inline-block;
    width: 50%;
    text-align: right;
    color: rgb(76, 76, 76);
}

.resource-view.image .infoList dd {
    display: inline-block;
    padding-left: 8px;
    width: 50%;
    text-align: left;
    margin: 0;
}

.resource-view.image .infoList dd::after {
    white-space: pre;
    content: "\A";
}

.resource-timing-row {
    position: relative;
    height: 12px;
}

.resource-timing-bar {
    position: absolute;
    background-color: red;
    border-left: 1px solid red;
    opacity: 0.4;
}

.resource-timing-bar-title {
    position: absolute;
}

#elements-content {
    display: block;
    overflow: auto;
    padding: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 325px;
    bottom: 0;
}

#elements-sidebar {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 325px;
    border-left: 1px solid rgb(64%, 64%, 64%);
    cursor: default;
    overflow: auto;
}

.crumbs {
    display: inline-block;
    font-size: 11px;
    line-height: 19px;
    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
    color: rgb(20, 20, 20);
    margin-left: -1px;
    padding-right: 12px;
}

.crumbs .crumb {
    height: 24px;
    border-width: 0 12px 0 2px;
    -webkit-border-image: url(Images/segment.png) 0 12 0 2;
	border-image: url(Images/segment.png) 0 12 0 2;
    margin-right: -12px;
    padding-left: 18px;
    padding-right: 2px;
    white-space: nowrap;
    line-height: 23px;
    float: right;
}

.crumbs .crumb.collapsed > * {
    display: none;
}

.crumbs .crumb.collapsed::before {
    content: "\2026";
    font-weight: bold;
}

.crumbs .crumb.compact .extra {
    display: none;
}

.crumbs .crumb.dimmed {
    color: rgba(0, 0, 0, 0.45);
}

.crumbs .crumb.start {
    padding-left: 7px;
}

.crumbs .crumb.end {
    border-width: 0 2px 0 2px;
    padding-right: 6px;
    -webkit-border-image: url(Images/segmentEnd.png) 0 2 0 2;
	border-image: url(Images/segmentEnd.png) 0 2 0 2;
}

.crumbs .crumb.selected {
    -webkit-border-image: url(Images/segmentSelected.png) 0 12 0 2;
	border-image: url(Images/segmentSelected.png) 0 12 0 2;
    color: black;
    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
}

.crumbs .crumb.selected:hover {
    -webkit-border-image: url(Images/segmentSelected.png) 0 12 0 2;
	border-image: url(Images/segmentSelected.png) 0 12 0 2;
}

.crumbs .crumb.selected.end, .crumbs .crumb.selected.end:hover {
    -webkit-border-image: url(Images/segmentSelectedEnd.png) 0 2 0 2;
	border-image: url(Images/segmentSelectedEnd.png) 0 2 0 2;
}

.crumbs .crumb:hover {
    -webkit-border-image: url(Images/segmentHover.png) 0 12 0 2;
	border-image: url(Images/segmentHover.png) 0 12 0 2;
    color: black;
}

.crumbs .crumb.dimmed:hover {
    -webkit-border-image: url(Images/segmentHover.png) 0 12 0 2;
	border-image: url(Images/segmentHover.png) 0 12 0 2;
    color: rgba(0, 0, 0, 0.75);
}

.crumbs .crumb.end:hover {
    -webkit-border-image: url(Images/segmentHoverEnd.png) 0 2 0 2;
	border-image: url(Images/segmentHoverEnd.png) 0 2 0 2;
}

.outline-disclosure li.hovered:not(.selected) .selection {
    display: block;
    left: 3px;
    right: 3px;
    background-color: rgba(56, 121, 217, 0.1);
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

.outline-disclosure li.highlighted .highlight {
    background-color: rgb(255, 230, 179);
    -webkit-border-radius: 4px;
    border-radius: 4px;
    padding-bottom: 2px;
    margin-bottom: -2px;
}

.outline-disclosure li.selected.highlighted .highlight {
    background-color: transparent;
    padding-bottom: 0;
    margin-bottom: 0;
}

.outline-disclosure li .selection {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    height: 15px;
    z-index: -1;
}

.outline-disclosure li.selected .selection {
    display: block;
    background-color: rgb(212, 212, 212);
}

.outline-disclosure ol:focus li.selected .selection {
    background-color: rgb(56, 121, 217);
}

.outline-disclosure {
    font-size: 11px;
}

.outline-disclosure > ol {
    position: relative;
    padding: 2px 6px !important;
    margin: 0;
    color: black;
    cursor: default;
    min-width: 100%;
}

.outline-disclosure, .outline-disclosure ol {
    list-style-type: none;
    -webkit-padding-start: 12px;
	-moz-padding-start: 12px;
    margin: 0;
}

.source-code {
    font-family: monospace;
    font-size: 10px !important;
    white-space: pre-wrap;
}

.outline-disclosure li {
    padding: 0 0 0 14px;
    margin-top: 1px;
    margin-bottom: 1px;
    word-wrap: break-word;
    text-indent: -2px;
}

.resources .outline-disclosure li {
    text-indent: -1px;
}

.outline-disclosure ol:focus li.selected {
    color: white;
}

.outline-disclosure ol:focus li.selected * {
    color: inherit;
}

.outline-disclosure li.parent {
    text-indent: -12px
}

.outline-disclosure li .webkit-html-tag.close {
    margin-left: -12px;
}

.outline-disclosure li.parent::before {
    content: url(Images/treeRightTriangleBlack.png);
    float: left;
    width: 8px;
    height: 8px;
    margin-top: 1px;
    padding-right: 2px;
}

.outline-disclosure li.parent::before {
    content: url(Images/treeRightTriangleBlack.png);
}

.outline-disclosure ol:focus li.parent.selected::before {
    content: url(Images/treeRightTriangleWhite.png);
}

.outline-disclosure li.parent.expanded::before {
    content: url(Images/treeDownTriangleBlack.png);
}

.outline-disclosure ol:focus li.parent.expanded.selected::before {
    content: url(Images/treeDownTriangleWhite.png);
}

.outline-disclosure ol.children {
    display: none;
}

.outline-disclosure ol.children.expanded {
    display: block;
}

.add-attribute {
    margin-left: 1px;
    margin-right: 1px;
    white-space: nowrap;
}

.placard {
    position: relative;
    margin-top: 1px;
    padding: 3px 8px 4px 18px;
    min-height: 18px;
    white-space: nowrap;
}

.placard:nth-of-type(2n) {
    background-color: rgb(234, 243, 255);
}

.placard.selected {
    border-top: 1px solid rgb(145, 160, 192);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));
    background-image: linear-gradient(to bottom, rgb(162, 177, 207) 0%, rgb(120, 138, 177) 100%);
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

:focus .placard.selected {
    border-top: 1px solid rgb(68, 128, 200);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));
    background-image: linear-gradient(to bottom, rgb(92, 147, 213) 0%, rgb(21, 83, 170) 100%);
}

body.inactive .placard.selected {
    border-top: 1px solid rgb(151, 151, 151);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));
    background-image: linear-gradient(to bottom, rgb(180, 180, 180) 0%, rgb(138, 138, 138) 100%);
}

.placard .title {
    color: black;
    font-weight: normal;
    word-wrap: break-word;
    white-space: normal;
}

.placard.selected .title {
    color: white;
    font-weight: bold;
}

.placard .subtitle {
    float: right;
    font-size: 10px;
    margin-left: 5px;
    max-width: 55%;
    color: rgba(0, 0, 0, 0.7);
    text-overflow: ellipsis;
    overflow: hidden;
}

.placard.selected .subtitle {
    color: rgba(255, 255, 255, 0.7);
}

.placard .subtitle a {
    color: inherit;
}

.section {
    position: relative;
    margin-top: 1px;
}

.watch-expressions-buttons-container {
    text-align: center;
}

.events-pane .section:not(:nth-of-type(1)) {
    border-top: 1px solid rgb(191, 191, 191);
}

.event-bar:first-child {
    margin-top: 1px;
}

.section .header {
    color: black;
    padding: 0 8px 0 18px;
    min-height: 18px;
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

.section .header::before {
    position: absolute;
    top: 2px;
    left: 7px;
    width: 8px;
    height: 8px;
    content: url(Images/treeRightTriangleBlack.png);
    opacity: 0.8;
}

.section.expanded .header::before {
    content: url(Images/treeDownTriangleBlack.png);
}

.section .header .title, .event-bar .header .title {
    font-weight: normal;
    word-wrap: break-word;
    white-space: normal;
    line-height: 18px;
}

.section .header .title.blank-title {
    font-style: italic;
}

.section .header label, .event-bar .header label {
    display: none;
}

.section.expanded .header label, .event-bar.expanded .header label {
    display: inline;
}

.section .header .subtitle, .event-bar .header .subtitle {
    float: right;
    margin-left: 5px;
    max-width: 55%;
    text-overflow: ellipsis;
    overflow: hidden;
}

.section .header .subtitle a {
    color: inherit;
}

.section .properties, .event-bar .event-properties {
    display: none;
}

.section.expanded .properties, .event-bar.expanded .event-properties {
    display: block;
    padding-left: 16px;
}

.section.no-affect .properties li {
    opacity: 0.5;
}

.section.no-affect .properties li.editing {
    opacity: 1.0;
}

.properties-tree {
    margin: 0;
    padding: 0 6px 2px;
    list-style: none;
    min-height: 18px;
}

.properties-tree li {
    margin-left: 12px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    cursor: auto;
}

.properties-tree li.parent {
    margin-left: 1px;
}

.properties-tree li.parent::before {
    content: url(Images/treeRightTriangleBlack.png);
    opacity: 0.75;
    float: left;
    width: 8px;
    height: 8px;
    margin-top: 0;
    padding-right: 3px;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
    cursor: default;
}

.properties-tree li.parent.expanded::before {
    content: url(Images/treeDownTriangleBlack.png);
    margin-top: 1px;
}

.properties-tree li .info {
    padding-top: 4px;
    padding-bottom: 3px;
}

.properties-tree ol {
    display: none;
    margin: 0;
    -webkit-padding-start: 12px;
	-moz-padding-start: 12px;
    list-style: none;
}

.properties-tree ol.expanded {
    display: block;
}

.event-listener-breakpoints .event-category {
    font-size: 11px;
    font-weight: bold;
    color: rgb(96, 96, 96);
    padding-top: 2px;
}

.event-listener-breakpoints.properties-tree .children li {
    margin-left: 12px;
    height: 16px;
}

.event-listener-breakpoints .checkbox-elem {
    font-size: 10px;
    float: left;
    top: -2px;
    position: relative;
    left: -1px;
}

.section .event-bars {
    display: none;
}

.section.expanded .event-bars {
    display: block;
}

.event-bar {
    position: relative;
    margin-left: 10px;
}

.event-bars .event-bar .header {
    padding: 0 8px 0 18px;
    min-height: 16px;
    opacity: 1.0;
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

.event-bars .event-bar .header .title {
    font-weight: normal;
    color: black;
    text-shadow: white 0 1px 0; 
}

.event-bars .event-bar .header .subtitle {
    color: rgba(90, 90, 90, 0.75);
}

.event-bars .event-bar .header::before {
    position: absolute;
    top: 2px;
    left: 7px;
    width: 8px;
    height: 8px;
    opacity: 0.75;
    content: url(Images/treeRightTriangleBlack.png);
}

.event-bars .event-bar.expanded .header::before {
    content: url(Images/treeDownTriangleBlack.png);
}

.editing {
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    -webkit-box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;
    box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;
    outline: 1px solid rgb(66%, 66%, 66%) !important;
    background-color: white;
    -webkit-user-modify: read-write-plaintext-only;
	-moz-user-modify: read-write;
    text-overflow: clip !important;
    padding-left: 2px;
    margin-left: -2px;
    padding-right: 2px;
    margin-right: -2px;
    margin-bottom: -1px;
    padding-bottom: 1px;
    opacity: 1.0 !important;
}

.editing, .editing * {
    color: black !important;
    text-decoration: none !important;
}

.child-editing {
    color: black !important;
    text-decoration: none !important;
    overflow: visible !important;
}

.editing br {
    display: none;
}

.elements-tree-editor {
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    -webkit-user-modify: read-write-plaintext-only;
	-moz-user-modify: read-write-plaintext-only;
}

.section .properties li.editing {
    margin-left: 10px;
    text-overflow: clip;
}

li.editing .swatch, li.editing .enabled-button,  li.editing-sub-part .delete-button {
    display: none !important;
}

.watch-expressions > li.editing-sub-part .name {
    display: block; 
    width: 100%;
}

.watch-expressions > li.editing-sub-part .value, .watch-expressions > li.editing-sub-part .separator  {
    display: none;
}

.watch-expressions-error-level {
    color: red;
}

.section .properties li.editing-sub-part {
    padding: 3px 6px 8px 18px;
    margin: -3px -6px -8px -6px;
    text-overflow: clip;
}

/* FIXME: need a better icon (comment in bug 27514) */
.section .properties .delete-button {
    width: 10px;
    height: 10px;
    background-image: url(Images/errorIcon.png);
    background-position: 0 0;
    background-color: transparent;
    background-repeat: no-repeat;
    border: 0 none transparent;
}

.section .properties .name, .event-properties .name {
    color: rgb(136, 19, 145);
}

.section .properties .value.dimmed {
    color: rgb(100, 100, 100);
}

.section .properties .value.error {
    color: red;
}

.section .properties .number, .event-properties .number {
    color: blue;
}

.section .properties .keyword, .event-properties .keyword {
    color: rgb(136, 19, 79);
}

.section .properties .color, .event-properties .color {
    color: rgb(118, 15, 21);
}

.swatch {
    display: inline-block;
    vertical-align: baseline;
    margin-left: 1px;
    margin-right: 2px;
    margin-bottom: -1px;
    width: 1em;
    height: 1em;
    border: 1px solid rgba(128, 128, 128, 0.6);
}

.swatch:hover {
    border: 1px solid rgba(64, 64, 64, 0.8);
}

.pane:not(.expanded) + .pane, .pane:first-of-type {
    margin-top: -1px;
}

.pane > .title {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(243, 243, 243)), color-stop(0.05, rgb(243, 243, 243)), color-stop(0.05, rgb(230, 230, 230)), to(rgb(209, 209, 209)));
    background-image: linear-gradient(to bottom, rgb(243, 243, 243) 0%, rgb(243, 243, 243) 10%, rgb(230, 230, 230) 40%, rgb(209, 209, 209) 100%);
    height: 20px;
    padding: 0 5px;
    border-top: 1px solid rgb(189, 189, 189);
    border-bottom: 1px solid rgb(189, 189, 189);
    font-weight: bold;
    font-size: 12px;
    line-height: 18px;
    color: rgb(110, 110, 110);
    text-shadow: white 0 1px 0;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

.pane > .title:active {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(231, 231, 231)), color-stop(0.05, rgb(231, 231, 231)), color-stop(0.05, rgb(207, 207, 207)), to(rgb(186, 186, 186)));
    background-image: linear-gradient(to bottom, rgb(231, 231, 231) 0%,rgb(231, 231, 231) 10%, rgb(207, 207, 207) 40%, rgb(186, 186, 186) 100%);
    border-top: 1px solid rgb(178, 178, 178);
    border-bottom: 1px solid rgb(178, 178, 178);
}

.pane > .title::before {
    content: url(Images/disclosureTriangleSmallRightBlack.png);
    float: left;
    width: 11px;
    height: 12px;
    margin-right: 2px;
    margin-top: 1px;
}

.pane.expanded > .title::before {
    content: url(Images/disclosureTriangleSmallDownBlack.png);
}

.pane > .title > select {
    float: right;
    width: 23px;
    height: 17px;
    color: transparent;
    background-color: transparent;
    border: none;
    background-image: url(Images/paneSettingsButtons.png);
    background-repeat: no-repeat;
    margin: 1px 0 0 0;
    padding: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    -webkit-appearance: none;
	-moz-appearance: none;
	/* hack for appearance for non-webkit browsers */
	padding-left: 10px;
	padding-right: 13px;
}

.pane > .title > select:hover {
    background-position: -23px 0px;
}

.pane > .title > select:active {
    background-position: -46px 0px;
}

.pane > .title > select > option, .pane > .title > select > hr {
    color: black;
}

.pane > .title > button.add {
    float: right;
    width: 23px;
    height: 17px;
    color: transparent;
    background-color: transparent;
    border: none;
    background-image: url(Images/paneAddButtons.png);
    background-repeat: no-repeat;
    margin: 1px 0 0 0;
    padding: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    -webkit-appearance: none;
	-moz-appearance: none;
}

.pane > .title > button.add:hover {
    background-position: -23px 0px;
}

.pane > .title > button.add:active {
    background-position: -46px 0px;
}

.pane > .body {
    position: relative;
    display: none;
    overflow-y: auto;
    overflow-x: hidden;
}

.pane > .body .info {
    text-align: center;
    font-style: italic;
    font-size: 10px;
    padding: 6px;
    color: black;
}

.pane > .body .placard + .info {
    border-top: 1px solid rgb(189, 189, 189);
    background-color: rgb(255, 255, 194);
}

.pane.expanded > .body, .pane.expanded > .growbar {
    display: block;
}

.pane > .body .breakpoint-condition {
    display: block;
    margin-top: 4px;
    margin-bottom: 4px;
    margin-left: 25px;
    margin-right: 10px;
}

.pane.expanded:nth-last-of-type(1) {
    border-bottom: 1px solid rgb(189, 189, 189);
}

.pane > .growbar {
    display: none;
    background-image: url(Images/paneGrowHandleLine.png), url(Images/paneBottomGrow.png);
    background-repeat: no-repeat, repeat-x;
    background-position: center center, bottom;
    height: 5px;
}

.sidebar-pane-subtitle {
    position: absolute;
    right: 0;
    font-weight: normal;
}

body.platform-windows .sidebar-pane-subtitle {
    padding-top: 1px;
}

.sidebar-pane-subtitle input, .section .header input[type=checkbox] {
    font-size: inherit;
    hight: 1em;
    width: 1em;
    margin-left: 0;
    margin-top: 0;
    margin-bottom: 0.25em;
    vertical-align: middle;
    /*Hack for IE - 'box-sizing: border-box' significantly reduce checkbox size so we set it to default*/
    box-sizing: content-box;
}

.metrics {
    padding: 8px;
    font-size: 10px;
    text-align: center;
    white-space: nowrap;
}

.metrics .label {
    position: absolute;
    margin-top: -10px;
    font-size: 9px;
    color: grey;
    background-color: white;
    margin-left: 3px;
    padding-left: 2px;
    padding-right: 2px;
}

.metrics .position {
    border: 1px rgb(66%, 66%, 66%) dotted;
    display: inline-block;
    text-align: center;
    padding: 3px;
    margin: 3px;
}

.metrics .margin {
    border: 1px dashed;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 3px;
    margin: 3px;
}

.metrics .border {
    border: 1px black solid;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 3px;
    margin: 3px;
}

.metrics .padding {
    border: 1px grey dashed;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 3px;
    margin: 3px;
}

.metrics .content {
    position: static;
    border: 1px grey solid;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 3px;
    margin: 3px;
    min-width: 80px;
    text-align: center;
    overflow: visible;
}

.metrics .content span {
    display: inline-block;
}

.metrics .editing {
    position: relative;
    z-index: 100;
}

.metrics .left {
    display: inline-block;
    vertical-align: middle;
}

.metrics .right {
    display: inline-block;
    vertical-align: middle;
}

.metrics .top {
    display: inline-block;
}

.metrics .bottom {
    display: inline-block;
}

.sidebar {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 200px;
    overflow-y: auto;
    overflow-x: hidden;
    background-color: rgb(214, 221, 229);
    border-right: 1px solid rgb(64%, 64%, 64%);
}

body.inactive .sidebar {
    background-color: rgb(232, 232, 232);
}

.frame-storage-tree-item .icon {
    content: url(Images/frame.png);
}

.database-storage-tree-item .icon {
    content: url(Images/database.png);
}

.database-table-storage-tree-item .icon {
    content: url(Images/databaseTable.png);
}

.domstorage-storage-tree-item.local-storage .icon {
    content: url(Images/localStorage.png);
}

.domstorage-storage-tree-item.session-storage .icon {
    content: url(Images/sessionStorage.png);
}

.cookie-storage-tree-item .icon {
    content: url(Images/cookie.png);
}

.application-cache-storage-tree-item .icon {
    content: url(Images/applicationCache.png);
}

/* FIXME: Make separate png for file-system */
.file-system-storage-tree-item .icon {
    content: url(Images/applicationCache.png);
}

#storage-views {
    position: absolute;
    top: 0;
    right: 0;
    left: 200px;
    bottom: 0;
}

.resources.panel .sidebar {
    padding-left: 0;
    z-index: 10;
}

.resources.panel .sidebar li {
    height: 17px;
    white-space: nowrap;
    text-indent: 0;
    margin-left: -2px;
}

.resources.panel .sidebar li.parent {
    text-indent: 0;
    margin-left: -12px;
}

.resources.panel .sidebar li.selected {
    color: white;
    text-shadow: rgba(0, 0, 0, 0.33) 0 1px 0;
    font-weight: bold;
}

.resources.panel .sidebar li.selected .selection {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));
    background-image: linear-gradient(to bottom, rgb(162, 177, 207) 0%, rgb(120, 138, 177) 100%);
    border-top: 1px solid #979797;
    height: 17px;
}

.resources.panel .sidebar :focus li.selected .selection {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));
    background-image: linear-gradient(to bottom, rgb(92, 147, 213) 0%, rgb(21, 83, 170) 100%);
    border-top: 1px solid rgb(68, 128, 200);
}

body.inactive .resources.panel .sidebar li.selected .selection {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));
    background-image: linear-gradient(to bottom, rgb(180, 180, 180) 0%, rgb(138, 138, 138) 100%);
    border-top: 1px solid rgb(151, 151, 151);
}

.resources.panel .sidebar .icon {
    width: 16px;
    height: 16px;
    float: left;
}

.resources.panel .base-storage-tree-element-title {
    overflow: hidden;
    position: relative;
    text-overflow: ellipsis;
    padding-left: 2px;
    top: 1px;
}

li.selected .base-storage-tree-element-subtitle {
    color: white;
}

.base-storage-tree-element-subtitle {
    padding-left: 2px;
    color: rgb(80, 80, 80);
    text-shadow: none;
}

.resources.panel .status {
    float: right;
    height: 16px;
    margin-top: 1px;
    margin-left: 4px;
    line-height: 1em;
}

.resources.panel li .status .bubble {
    height: 13px;
    padding-top: 0;
}

.storage-view {
    display: none;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.storage-view.visible {
    display: block;
}

.storage-view {
    overflow: hidden;
}

.storage-view .data-grid {
    border: none;
    height: 100%;
}

.storage-empty-view, .storage-view .storage-table-error {
    position: absolute;
    top: 0;
    bottom: 25%;
    left: 0;
    right: 0;
    font-size: 24px;
    color: rgb(75%, 75%, 75%);
    margin-top: auto;
    margin-bottom: auto;
    height: 50px;
    line-height: 26px;
    text-align: center;
    font-weight: bold;
    padding: 10px;
    white-space: pre-wrap;
}

.storage-view .storage-table-error {
    color: rgb(66%, 33%, 33%);
}

.data-grid {
    position: relative;
    border: 1px solid #aaa;
}

.data-grid .highlight {
    background-color: rgb(255, 230, 179);
}

.data-grid tr.selected .highlight {
    background-color: transparent;
}

.data-grid table {
    table-layout: fixed;
    border-spacing: 0;
    border-collapse: collapse;
    width: 100%;
    font-size: 10px;
    font-family: Lucida Grande, sans-serif;
}

.data-grid .data-container {
    position: absolute;
    top: 16px;
    bottom: 0;
    left: 0;
    right: 0;
    padding-right: 14px;
    overflow-x: hidden;
    overflow-y: overlay;
}

.data-grid.inline .data-container {
    position: static;
}

.data-grid th {
    text-align: left;
    background-image: url(Images/glossyHeader.png);
    background-repeat: repeat-x;
    border-right: 1px solid rgb(179, 179, 179);
    border-bottom: 1px solid rgb(179, 179, 179);
    height: 15px;
    font-weight: normal;
    vertical-align: middle;
    padding: 0 4px;
    white-space: nowrap;
}

.data-grid th.corner {
    width: 15px;
    border-right: 0 none transparent;
}

.data-grid tr.filler {
    display: table-row !important;
    height: auto !important;
}

.data-grid tr.filler td {
    height: auto !important;
    padding: 0 !important;
}

.data-grid table.data {
    position: absolute;
    left: 0;
    top: 0;
    right: 16px;
    bottom: 0;
    height: 100%;
    border-top: 0 none transparent;
    background-image: -webkit-gradient(linear, left top, left bottom, from(white), color-stop(0.5, white), color-stop(0.5, rgb(234, 243, 255)), to(rgb(234, 243, 255)));
    background-image: linear-gradient(to bottom, white 0%, white 10%, rgb(234, 243, 255) 40%, rgb(234, 243, 255) 100%);
    -webkit-background-size: 1px 32px;
    background-size: 1px 32px;
}

.data-grid.inline table.data {
    position: static;
}

.data-grid table.data tr {
    display: none;
}

.data-grid table.data tr.revealed {
    display: table-row;
}

.data-grid td {
    vertical-align: top;
    height: 12px;
    line-height: 12px;
    padding: 2px 4px;
    white-space: nowrap;
    border-right: 1px solid #aaa;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
}

.data-grid td > div, .data-grid th > div {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.data-grid .centered div {
    text-align: center;
}

.data-grid .right div {
    text-align: right;
}

.data-grid th.sortable div {
    position: relative;
}

.data-grid th.sortable:active {
    background-image: url(Images/glossyHeaderPressed.png);
}

.data-grid th.sort-ascending, .data-grid th.sort-descending {
    border-right: 1px solid rgb(107, 140, 196);
    border-bottom: 1px solid rgb(107, 140, 196);
    background-image: url(Images/glossyHeaderSelected.png);
    background-repeat: repeat-x;
}

.data-grid th.sortable.sort-ascending:active, .data-grid th.sortable.sort-descending:active {
    background-image: url(Images/glossyHeaderSelectedPressed.png);
}

.data-grid th.sort-ascending > div::after {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    height: 12px;
    margin-bottom: auto;
    margin-top: auto;
    width: 8px;
    content: url(Images/treeUpTriangleBlack.png);
}

.data-grid th.sort-descending > div::after {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    height: 8px;
    margin-bottom: auto;
    margin-top: auto;
    width: 8px;
    content: url(Images/treeDownTriangleBlack.png);
}

.data-grid button {
    line-height: 19px;
}

body.inactive .data-grid th.sort-ascending, body.inactive .data-grid th.sort-descending {
    background-image: url(Images/glossyHeader.png);
    border-right: 1px solid rgb(179, 179, 179);
    border-bottom: 1px solid rgb(179, 179, 179);
}

.data-grid tr.parent td.disclosure::before {
    float: left;
    content: url(Images/treeRightTriangleBlack.png);
    width: 8px;
    height: 8px;
    margin-right: 2px;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
}

.data-grid tr.expanded td.disclosure::before {
    content: url(Images/treeDownTriangleBlack.png);
    width: 8px;
    height: 8px;
    margin-top: 1px;
}

.data-grid tr.selected {
    background-color: rgb(212, 212, 212);
    color: inherit;
}

.data-grid:focus tr.selected {
    background-color: rgb(56, 121, 217);
    color: white;
}

.data-grid:focus tr.parent.selected td.disclosure::before {
    content: url(Images/treeRightTriangleWhite.png);
}

.data-grid:focus tr.expanded.selected td.disclosure::before {
    content: url(Images/treeDownTriangleWhite.png);
}

.data-grid tr:not(.parent) td.disclosure {
    text-indent: 10px;
}

.data-grid-resizer {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 5px;
    z-index: 500;
    cursor: col-resize;
}

.storage-view.query {
    padding: 2px 0;
    overflow-y: overlay;
    overflow-x: hidden;
    -webkit-text-size-adjust: auto;
    -ms-text-size-adjust: auto;
	-moz-text-size-adjust: auto;
}

.database-query-prompt {
    position: relative;
    padding: 1px 22px 1px 24px;
    min-height: 16px; 
    white-space: pre-wrap;
    -webkit-user-modify: read-write-plaintext-only;
	-moz-user-modify: read-write;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
}

.database-user-query::before, .database-query-prompt::before, .database-query-result::before {
    position: absolute;
    display: block;
    content: "";
    left: 7px;
    top: 0.8em;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
}

.database-query-prompt::before {
    background-image: url(Images/userInputIcon.png);
}

.database-user-query {
    position: relative;
    border-bottom: 1px solid rgb(245, 245, 245);
    padding: 1px 22px 1px 24px;
    min-height: 16px; 
}

.database-user-query::before {
    background-image: url(Images/userInputPreviousIcon.png);
}

.database-query-text {
    color: rgb(0, 128, 255);
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: none;
}

.database-query-result {
    position: relative;
    padding: 1px 22px 1px 24px;
    min-height: 16px;
    margin-left: -24px;
    padding-right: 0;
}

.database-query-result.error {
    color: red;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: none;
}

.database-query-result.error::before {
    background-image: url(Images/errorIcon.png);
}

.panel-enabler-view {
    z-index: 1000;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: white;
    font-size: 13px;
    text-align: center;
    overflow-x: hidden;
    overflow-y: overlay;
    display: none;
}

.panel-enabler-view.visible {
    display: block;
}

.panel-enabler-view .panel-enabler-view-content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: 390px;
    margin: auto;
    white-space: nowrap;
}

.panel-enabler-view h1 {
    color: rgb(110, 116, 128);
    font-size: 16px;
    line-height: 20px;
    font-weight: normal;
    margin-top: 0;
}

.panel-enabler-disclaimer {
    font-size: 10px;
    color: rgb(110, 116, 128);
    margin-bottom: 12px;
    margin-left: 20px;
}

.panel-enabler-disclaimer:empty {
    display: none;
}

.panel-enabler-view img, div.welcome-instructions-aligner {
    height: 100%;
    min-height: 200px;
    max-width: 100%;
    top: 0;
    bottom: 0;
    padding: 20px 0 20px 20px;
    margin: auto;
    vertical-align: middle;
}

.panel-enabler-view img.hidden {
    display: initial !important;
    width: 0;
}

.panel-enabler-view form {
    display: inline-block;
    vertical-align: middle;
    width: 330px;
    margin: 0;
    padding: 15px;
    white-space: normal;
}

.panel-enabler-view label {
    position: relative;
    display: block;
    text-align: left;
    word-break: break-word;
    margin: 0 0 5px 20px;
}

.panel-enabler-view button:not(.status-bar-item), .pane button, button.show-all-nodes {
    color: rgb(6, 6, 6);
    background-color: transparent;
    border: 1px solid rgb(165, 165, 165);
    background-color: rgb(237, 237, 237);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
    background-image: linear-gradient(to bottom, rgb(252, 252, 252) 0%, rgb(233, 233, 233) 100%);
    -webkit-border-radius: 12px;
    border-radius: 12px;
    -webkit-appearance: none;
	-moz-appearance: none;
}

.panel-enabler-view button:not(.status-bar-item) {
    font-size: 13px;
    margin: 6px 0 0 0;
    padding: 3px 20px;
    height: 24px;
}

button.show-all-nodes {
    font-size: 13px;
    margin: 0;
    padding: 0 20px;
    height: 20px;
}

.panel-enabler-view.welcome {
    z-index: auto;
}

.panel-enabler-view.welcome div.welcome-instructions-aligner {
    display: inline-block;
    width: 0;
}

.panel-enabler-view.welcome .instructions {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    white-space: normal;
    line-height: 175%;
}

.panel-enabler-view.welcome .message {
    margin-bottom: 2ex;
}

.panel-enabler-view.welcome button.status-bar-item {
    background-image: none;
    vertical-align: top;
}

.pane button {
    margin: 6px 0 6px 3px;
    padding: 2px 9px;
}

.panel-enabler-view button:active:not(.status-bar-item), .pane button:active, button.show-all-nodes:active {
    background-color: rgb(215, 215, 215);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
    background-image: linear-gradient(to bottom, rgb(194, 194, 194) 0%, rgb(239, 239, 239) 100%);
}

body.inactive .panel-enabler-view button:not(.status-bar-item), .panel-enabler-view button:disabled:not(.status-bar-item), body.inactive .pane button, .pane button:disabled, body.inactive button.show-all-nodes {
    color: rgb(130, 130, 130);
    border-color: rgb(212, 212, 212);
    background-color: rgb(239, 239, 239);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235)));
    background-image: linear-gradient(to bottom, rgb(250, 250, 250) 0%, rgb(235, 235, 235) 100%);
}

.panel-enabler-view input {
    height: 17px;
    width: 17px;
    border: 1px solid rgb(165, 165, 165);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
    background-image: linear-gradient(to bottom, rgb(252, 252, 252) 0%, rgb(223, 223, 223) 100%);
    -webkit-border-radius: 8px;
    border-radius: 8px;
    -webkit-appearance: none;
	-moz-appearance: none;
    vertical-align: middle;
    margin: 0 5px 5px 0;
}

.panel-enabler-view input:active {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
    background-image: linear-gradient(to bottom, rgb(194, 194, 194) 0%, rgb(239, 239, 239) 100%);
}

.panel-enabler-view input:checked {
    background: url(Images/radioDot.png) center no-repeat,
                -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
    background-image: linear-gradient(to bottom, rgb(252, 252, 252) 0%, rgb(223, 223, 223) 100%);
}

.panel-enabler-view.scripts img {
    content: url(Images/scriptsSilhouette.png);
}

.panel-enabler-view.profiles img {
    content: url(Images/profilesSilhouette.png);
}

button.enable-toggle-status-bar-item .glyph {
    -webkit-mask-image: url(Images/enableOutlineButtonGlyph.png);
}

button.enable-toggle-status-bar-item.toggled-on .glyph {
    -webkit-mask-image: url(Images/enableSolidButtonGlyph.png);
}

.scripts-pause-on-exceptions-status-bar-item .glyph {
    -webkit-mask-image: url(Images/pauseOnExceptionButtonGlyph.png);
}

#scripts-status-bar {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 24px;
}

#scripts-files {
    max-width: 250px;
}

#scripts-files option.extension-script {
    color: rgb(70, 134, 240);
}

#scripts-functions {
    max-width: 150px;
}

#scripts-status-bar .status-bar-item img {
    margin-top: 2px;
}

#scripts-back img {
    content: url(Images/back.png);
}

#scripts-forward img {
    content: url(Images/forward.png);
}

#scripts-pause img {
    content: url(Images/debuggerPause.png);
}

#scripts-pause.paused img {
    content: url(Images/debuggerContinue.png);
}

#scripts-step-over img {
    content: url(Images/debuggerStepOver.png);
}

#scripts-step-into img {
    content: url(Images/debuggerStepInto.png);
}

#scripts-step-out img {
    content: url(Images/debuggerStepOut.png);
}

.toggle-breakpoints .glyph {
    -webkit-mask-image: url(Images/breakpointsActivateButtonGlyph.png);
    background-color: rgb(96, 96, 96) !important;
}

.toggle-breakpoints.toggled-on .glyph {
    -webkit-mask-image: url(Images/breakpointsDeactivateButtonGlyph.png);
}

#scripts-debugger-status {
    position: absolute;
    line-height: 24px;
    top: 0;
    right: 8px;
}

#scripts-sidebar-resizer-widget {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 225px;
    width: 16px;
    cursor: col-resize;
    background-image: url(Images/statusbarResizerHorizontal.png);
    background-repeat: no-repeat;
    background-position: center;
}

#scripts-sidebar-buttons {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 225px;
    overflow: hidden;
    border-left: 1px solid rgb(64%, 64%, 64%);
}

#script-resource-views {
    display: block;
    padding: 0;
    position: absolute;
    top: 23px;
    left: 0;
    right: 225px;
    bottom: 0;
}

.script-view {
    display: none;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.script-view.visible {
    display: block;
}

#scripts-sidebar {
    position: absolute;
    top: 23px;
    right: 0;
    bottom: 0;
    width: 225px;
    border-left: 1px solid rgb(64%, 64%, 64%);
    cursor: default;
    overflow: auto;
}

.resources-larger-resources-status-bar-item .glyph {
    -webkit-mask-image: url(Images/largerResourcesButtonGlyph.png);
}

#resources-filter, #console-filter.console-filter-top {
    background: -webkit-gradient(linear, left top, left bottom, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));
    background-image: linear-gradient(to bottom, rgb(236, 236, 236) 0%, rgb(217, 217, 217) 100%);
    border-bottom: 1px solid rgb(64%, 64%, 64%);
    width: 100%;
}

#console-messages.console-filter-top {
    margin-top: 23px;
}

#console-filter {
    margin-top: 1px;
}

.tabbed-pane {
    -webkit-box-orient: vertical;
    -ms-flex-direction: column;
	-moz-box-orient: vertical;
    height: 100%;
}

.tabbed-pane-content {
    -webkit-box-flex: 1;
    -ms-flex: 1;
	-moz-box-flex: 1;
    position: relative;
}

.tabbed-pane-header {
    height: 23px;
    padding: 0 10px;
    border-bottom: 1px solid rgb(163, 163, 163);
}

.tabbed-pane-header li {
    display: inline-block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: bold;
    color: rgb(46, 46, 46);
    background: transparent;
    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
    vertical-align: middle;
    padding: 3px 7px 2px;
    height: 21px;
    border: 1px solid transparent;
    border-bottom: none;
}

.tabbed-pane-header li.selected {
    background-color: white;
    border: 1px solid rgb(163, 163, 163);
    border-bottom: none;
}

.scope-bar {
    height: 23px;
    padding: 2px 10px 0;
    overflow: hidden;
}

.scope-bar li {
    display: inline-block;
    margin: 1px 2px 0 0;
    padding: 1px 7px 3px;
    font-size: 11px;
    line-height: 12px;
    font-weight: bold;
    color: rgb(46, 46, 46);
    background: transparent;
    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
    -webkit-border-radius: 8px;
    border-radius: 8px;
    vertical-align: middle;
}

.scope-bar-divider {
    margin: 1px 9px 0 8px;
    background-color: rgba(0, 0, 0, 0.4);
    height: 16px;
    width: 1px;
    vertical-align: middle;
    display: inline-block;
}

.scope-bar li.selected, .scope-bar li:hover, .scope-bar li:active {
    color: white;
    text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
}

.scope-bar li:hover {
    background: rgba(0, 0, 0, 0.2);
}

.scope-bar li.selected {
    background: rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);
}

.scope-bar li:active {
    background: rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);
}

#resources-container {
    position: absolute;
    top: 23px;
    left: 0;
    bottom: 0;
    right: 0;
    border-right: 0 none transparent;
    overflow-y: auto;
    overflow-x: hidden;
}

#resources-container.viewing-resource {
    right: auto;
    width: 200px;
    border-right: 1px solid rgb(64%, 64%, 64%);
}

#resources-container.viewing-resource #resources-sidebar {
    width: 100%;
    border-right: 0 none transparent;
}

#resources-sidebar {
    min-height: 100%;
    bottom: auto;
    overflow: visible;
}

#resources-container-content {
    position: absolute;
    top: 0;
    right: 0;
    left: 200px;
    min-height: 100%;
}

#resources-container.viewing-resource #resources-container-content {
    display: none;
}

#resources-summary {
    position: absolute;
    padding-top: 20px;
    top: 0;
    left: 0;
    right: 0;
    height: 93px;
    margin-left: -1px;
    border-left: 1px solid rgb(102, 102, 102);
    background-color: rgb(101, 111, 130);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.5)));
    background-image: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 50%);
    background-repeat: repeat-x;
    background-position: bottom;
    text-align: center;
    text-shadow: black 0 1px 1px;
    white-space: nowrap;
    color: white;
    -webkit-background-size: 1px 6px;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-size: 1px 6px;
    background-origin: padding;
    background-clip: padding;
    z-index: 400;
}

.summary-graph-legend {
    margin-top: -10px;
    padding-left: 15px;
}

.summary-graph-legend-item {
    display: inline-block;
    font-weight: bold;
    margin-right: 15px;
    vertical-align: top;
}

.summary-graph-legend-item.total {
    margin-left: 10px;
}

.summary-graph-legend-label {
    display: inline-block;
    text-align: left;
}

.summary-graph-legend-header {
    font-size: 12px;
}

.summary-graph-legend-value {
    font-size: 10px;
}

.summary-graph-legend-swatch {
    vertical-align: top;
    margin-top: 1px;
    margin-right: 3px;
}

.resources-dividers {
    position: absolute;
    left: 0;
    right: 0;
    height: 100%;
    top: 0;
    z-index: -100;
}

.resources-event-dividers {
    position: absolute;
    left: 0;
    right: 5px;
    height: 100%;
    top: 0;
    z-index: 300;
    pointer-events: none;
}

.timeline .resources-event-dividers {
    height: 19px;
}

.resources-dividers-label-bar {
    position: absolute;
    top: 0;
    left: 0px;
    right: 0;
    background-color: rgba(255, 255, 255, 0.8);
    background-clip: padding;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    height: 20px;
    z-index: 200;
}

.resources-divider {
    position: absolute;
    width: 1px;
    top: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.1);
}

.resources-event-divider-padding {
    position: absolute;
    width: 8px;
    top: 0;
    bottom: 0;
    pointer-events: auto;
}

.resources-event-divider {
    position: absolute;
    width: 2px;
    top: 0;
    bottom: 0;
    z-index: 300;
}

.resources-red-divider {
    background-color: rgba(255, 0, 0, 0.5);
}

.resources-blue-divider {
    background-color: rgba(0, 0, 255, 0.5);
}

.resources-orange-divider {
    background-color: rgba(255, 178, 23, 0.5);
}

.resources-divider.last {
    background-color: transparent;
}

.resources-divider-label {
    position: absolute;
    top: 4px;
    right: 3px;
    font-size: 9px;
    color: rgb(50%, 50%, 50%);
    white-space: nowrap;
}

.memory-graph-label {
    position: absolute;
    top: 5px;
    left: 5px;
    font-size: 9px;
    color: rgb(50%, 50%, 50%);
    white-space: nowrap;
}

.resources-graph-label {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto -7px;
    height: 13px;
    line-height: 13px;
    font-size: 9px;
    color: rgba(0, 0, 0, 0.75);
    text-shadow: rgba(255, 255, 255, 0.25) 1px 0 0, rgba(255, 255, 255, 0.25) -1px 0 0, rgba(255, 255, 255, 0.333) 0 1px 0, rgba(255, 255, 255, 0.25) 0 -1px 0;
    z-index: 150;
    overflow: hidden;
    text-align: center;
    font-weight: bold;
    opacity: 0;
    -webkit-transition: opacity 250ms ease-in-out;
    transition: opacity 250ms ease-in-out;
}

.resources-graph-side:hover .resources-graph-label {
    opacity: 1;
}

.resources-graph-label:empty {
    display: none;
}

.resources-graph-label.waiting {
    margin-right: 5px;
}

.resources-graph-label.waiting-right {
    margin-left: 5px;
}

.resources-graph-label.before {
    color: rgba(0, 0, 0, 0.7);
    text-shadow: none;
    text-align: right;
    margin-right: 2px;
}

.resources-graph-label.before::after {
    padding-left: 2px;
    height: 6px;
    content: url(Images/graphLabelCalloutLeft.png);
}

.resources-graph-label.after {
    color: rgba(0, 0, 0, 0.7);
    text-shadow: none;
    text-align: left;
    margin-left: 2px;
}

.resources-graph-label.after::before {
    padding-right: 2px;
    height: 6px;
    content: url(Images/graphLabelCalloutRight.png);
}

.resources-graph-bar {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto -7px;
    border-width: 6px 7px;
    height: 13px;
    min-width: 14px;
    opacity: 0.65;
    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;
	border-image: url(Images/timelinePillGray.png) 6 7 6 7;
}

.resources-category-documents, .resources-category-stylesheets, .resources-category-images,
.resources-category-scripts, .resources-category-xhr, .resources-category-fonts,
.resources-category-websockets, .resources-category-other {
    display: none;
}

.filter-all .resources-category-documents, .filter-documents .resources-category-documents,
.filter-all .resources-category-stylesheets, .filter-stylesheets .resources-category-stylesheets,
.filter-all .resources-category-images, .filter-images .resources-category-images,
.filter-all .resources-category-scripts, .filter-scripts .resources-category-scripts,
.filter-all .resources-category-xhr, .filter-xhr .resources-category-xhr,
.filter-all .resources-category-fonts, .filter-fonts .resources-category-fonts,
.filter-all .resources-category-websockets, .filter-websockets .resources-category-websockets,
.filter-all .resources-category-other, .filter-other .resources-category-other,
.resource-sidebar-tree-item.selected {
    display: list-item;
}

.console-warning-level, .console-error-level, .console-log-level {
    display: none;
}

.filter-all .console-warning-level, .filter-warnings .console-warning-level,
.filter-all .console-error-level, .filter-errors .console-error-level,
.filter-all .console-log-level, .filter-logs .console-log-level {
    display: block;
}

.console-user-command-result {
    display: block;
}

.resources-graph-bar.waiting, .resources-graph-bar.waiting-right {
    opacity: 0.35;
}

.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;
}

.resources-category-documents .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillBlue.png) 6 7 6 7;
	border-image: url(Images/timelinePillBlue.png) 6 7 6 7;
}

.resources-category-documents.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillBlue.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillBlue.png) 6 7 6 7;
}

.resources-category-stylesheets .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillGreen.png) 6 7 6 7;
	border-image: url(Images/timelinePillGreen.png) 6 7 6 7;
}

.resources-category-stylesheets.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillGreen.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillGreen.png) 6 7 6 7;
}

.resources-category-images .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillPurple.png) 6 7 6 7;
	border-image: url(Images/timelinePillPurple.png) 6 7 6 7;
}

.resources-category-images.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillPurple.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillPurple.png) 6 7 6 7;
}

.resources-category-fonts .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillRed.png) 6 7 6 7;
	border-image: url(Images/timelinePillRed.png) 6 7 6 7;
}

.resources-category-fonts.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillRed.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillRed.png) 6 7 6 7;
}

.resources-category-scripts .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillOrange.png) 6 7 6 7;
	border-image: url(Images/timelinePillOrange.png) 6 7 6 7;
}

.resources-category-scripts.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillOrange.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillOrange.png) 6 7 6 7;
}

.resources-category-xhr .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillYellow.png) 6 7 6 7;
	border-image: url(Images/timelinePillYellow.png) 6 7 6 7;
}

.resources-category-xhr.resource-cached .resources-graph-bar {
    -webkit-border-image: url(Images/timelineHollowPillYellow.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillYellow.png) 6 7 6 7;
}

/* FIXME: Create bar images for WebSocket. */
.resources-category-websockets .resources-graph-bar {
    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;
	border-image: url(Images/timelinePillGray.png) 6 7 6 7;
}

.resources-category-websockets.resource-cached .resources-graph-bar {
   -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;
	border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;
}

#resource-views {
    position: absolute;
    top: 23px;
    right: 0;
    left: 200px;
    bottom: 0;
}

.source-view-frame {
    width: 100%;
    height: 100%;
}

.sidebar-resizer-vertical {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 5px;
    z-index: 500;
    cursor: col-resize;
}

.resources .sidebar-resizer-vertical {
    top: 23px;
}

.sidebar-tree, .sidebar-tree .children {
    position: relative;
    padding: 0;
    margin: 0;
    list-style: none;
    font-size: 11px;
}

.sidebar-tree-section {
    position: relative;
    height: 18px;
    padding: 4px 10px 6px 10px;
    white-space: nowrap;
    margin-top: 1px;
    color: rgb(92, 110, 129);
    font-weight: bold;
    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
}

.sidebar-tree-item {
    position: relative;
    height: 36px;
    padding: 0 5px 0 5px;
    white-space: nowrap;
    margin-top: 1px;
    line-height: 34px;
    border-top: 1px solid transparent;
}

.sidebar-tree .children {
    display: none;
}

.sidebar-tree .children.expanded {
    display: block;
}

.sidebar-tree-section + .children > .sidebar-tree-item {
    padding-left: 10px !important;
}

.sidebar-tree-section + .children.small > .sidebar-tree-item {
    padding-left: 17px !important;
}

.sidebar-tree > .children > .sidebar-tree-item {
    padding-left: 37px;
}

.sidebar-tree > .children > .children > .sidebar-tree-item {
    padding-left: 37px;
}

.sidebar-tree.hide-disclosure-buttons > .children {
    display: none;
}

.sidebar-tree > .children.hide-disclosure-buttons > .children {
    display: none;
}

.sidebar-tree.some-expandable:not(.hide-disclosure-buttons) > .sidebar-tree-item:not(.parent) .icon {
    margin-left: 16px;
}

.sidebar-tree-item .disclosure-button {
    float: left;
    width: 16px;
    height: 100%;
    border: 0;
    background-color: transparent;
    background-image: url(Images/disclosureTriangleSmallRight.png);
    background-repeat: no-repeat;
    background-position: center;
    -webkit-apearance: none;
	-moz-apearance: none;
}

.sidebar-tree.hide-disclosure-buttons .sidebar-tree-item .disclosure-button {
    display: none;
}

body.inactive .sidebar-tree-item .disclosure-button {
    background-image: url(Images/disclosureTriangleSmallRightBlack.png);
}

body.inactive .sidebar-tree-item.expanded .disclosure-button {
    background-image: url(Images/disclosureTriangleSmallDownBlack.png);
}

body.inactive .sidebar-tree-item .disclosure-button:active {
    background-image: url(Images/disclosureTriangleSmallRightDownBlack.png);
}

.sidebar-tree-item.selected .disclosure-button {
    background-image: url(Images/disclosureTriangleSmallRightWhite.png) !important;
}

.sidebar-tree-item.expanded .disclosure-button {
    background-image: url(Images/disclosureTriangleSmallDown.png);
}

.sidebar-tree-item.selected.expanded .disclosure-button {
    background-image: url(Images/disclosureTriangleSmallDownWhite.png) !important;
}

.sidebar-tree-item.selected .disclosure-button:active {
    background-image: url(Images/disclosureTriangleSmallRightDownWhite.png) !important;
}

.sidebar-tree-item .disclosure-button:active {
    background-image: url(Images/disclosureTriangleSmallRightDown.png);
}

.sidebar-tree-item .icon {
    float: left;
    width: 32px;
    height: 32px;
    margin-top: 1px;
    margin-right: 3px;
}

li .status {
    float: right;
    height: 16px;
    margin-top: 9px;
    margin-left: 4px;
    line-height: 1em;
}

li .status:empty {
    display: none;
}

li .status .bubble {
    display: inline-block;
    height: 14px;
    min-width: 16px;
    margin-top: 1px;
    background-color: rgb(128, 151, 189);
    vertical-align: middle;
    white-space: nowrap;
    padding: 1px 4px;
    text-align: center;
    font-size: 11px;
    line-height: normal;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
    text-shadow: none;
    color: white;
    -webkit-border-radius: 7px;
    border-radius: 7px;
}

li .status .bubble:empty {
    display: none;
}

li.selected .status .bubble {
    background-color: white !important;
    color: rgb(132, 154, 190) !important;
}

:focus li.selected .status .bubble {
    color: rgb(36, 98, 172) !important;
}

body.inactive li.selected .status .bubble {
    color: rgb(159, 159, 159) !important;
}

.sidebar-tree.small .sidebar-tree-item, .sidebar-tree .children.small .sidebar-tree-item, .sidebar-tree-item.small, .small .resources-graph-side {
    height: 20px;
}

.sidebar-tree.small .sidebar-tree-item .icon, .sidebar-tree .children.small .sidebar-tree-item .icon, .sidebar-tree-item.small .icon {
    width: 16px;
    height: 16px;
}

.sidebar-tree.small .sidebar-tree-item .status, .sidebar-tree .children.small .sidebar-tree-item .status, .sidebar-tree-item.small .status {
    margin-top: 1px;
}

.sidebar-tree-item.selected {
    color: white;
    border-top: 1px solid rgb(145, 160, 192);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));
    background-image: linear-gradient(to bottom, rgb(162, 177, 207) 0%, rgb(120, 138, 177) 100%);
    text-shadow: rgba(0, 0, 0, 0.33) 0 1px 0;
    font-weight: bold;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

:focus .sidebar-tree-item.selected {
    border-top: 1px solid rgb(68, 128, 200);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));
    background-image: linear-gradient(to bottom, rgb(92, 147, 213) 0%, rgb(21, 83, 170) 100%);
}

body.inactive .sidebar-tree-item.selected {
    border-top: 1px solid rgb(151, 151, 151);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));
    background-image: linear-gradient(to bottom, rgb(180, 180, 180) 0%, rgb(138, 138, 138) 100%);
}

.sidebar-tree-item .titles {
    position: relative;
    top: 5px;
    line-height: 11px;
    padding-bottom: 1px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.sidebar-tree-item .titles.no-subtitle {
    top: 10px;
}

.sidebar-tree.small .sidebar-tree-item .titles, .sidebar-tree .children.small .sidebar-tree-item .titles, .sidebar-tree-item.small .titles {
    top: 2px;
    line-height: normal;
}

.sidebar-tree:not(.small) .sidebar-tree-item:not(.small) .title::after, .sidebar-tree .children:not(.small) .sidebar-tree-item .title::after {
    content: "\A";
    white-space: pre;
}

.sidebar-tree-item .subtitle {
    font-size: 9px;
    color: rgba(0, 0, 0, 0.7);
}

.sidebar-tree.small .sidebar-tree-item .subtitle, .sidebar-tree .children.small .sidebar-tree-item .subtitle, .sidebar-tree-item.small .subtitle {
    display: none;
}

.sidebar-tree-item.selected .subtitle {
    color: rgba(255, 255, 255, 0.9);
}

#resources-graphs {
    position: absolute;
    left: 0;
    right: 0;
    max-height: 100%;
    top: 112px;
}

.resources-graph-side {
    position: relative;
    height: 36px;
    padding: 0 5px;
    white-space: nowrap;
    margin-top: 1px;
    border-top: 1px solid transparent;
    overflow: hidden;
}

.resources-graph-bar-area {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 8px;
    left: 9px;
}

#resources-container:not(.viewing-resource) .resource-sidebar-tree-item:nth-of-type(2n) {
    background-color: rgba(0, 0, 0, 0.05);
}

#resources-container:not(.viewing-resource) .resources-graph-side:nth-of-type(2n) {
    background-color: rgba(0, 0, 0, 0.05);
}

.resources-time-graph-sidebar-item .icon {
    content: url(Images/resourcesTimeGraphIcon.png);
}

.resources-size-graph-sidebar-item .icon {
    content: url(Images/resourcesSizeGraphIcon.png);
}

.resources-size-graph-sidebar-item .icon {
    content: url(Images/resourcesSizeGraphIcon.png);
}

.resource-sidebar-tree-item .icon {
    content: url(Images/resourcePlainIcon.png);
}

.children.small .resource-sidebar-tree-item .icon {
    content: url(Images/resourcePlainIconSmall.png);
}

.resource-sidebar-tree-item.resources-category-documents .icon {
    content: url(Images/resourceDocumentIcon.png);
}

.children.small .resource-sidebar-tree-item.resources-category-documents .icon {
    content: url(Images/resourceDocumentIconSmall.png);
}

.resource-sidebar-tree-item.resources-category-stylesheets .icon {
    content: url(Images/resourceCSSIcon.png);
}

.children.small .resource-sidebar-tree-item.resources-category-stylesheets .icon {
    content: url(Images/resourceDocumentIconSmall.png);
}

.resource-sidebar-tree-item.resources-category-images .icon {
    position: relative;
    background-image: url(Images/resourcePlainIcon.png);
    background-repeat: no-repeat;
    content: "";
}

.resources-category-images .image-resource-icon-preview {
    position: absolute;
    margin: auto;
    top: 3px;
    bottom: 4px;
    left: 5px;
    right: 5px;
    max-width: 18px;
    max-height: 21px;
    min-width: 1px;
    min-height: 1px;
}

.children.small .resource-sidebar-tree-item.resources-category-images .icon {
    background-image: url(Images/resourcePlainIconSmall.png);
    content: "";
}

.children.small .resources-category-images .image-resource-icon-preview {
    top: 2px;
    bottom: 1px;
    left: 3px;
    right: 3px;
    max-width: 8px;
    max-height: 11px;
}

.resource-sidebar-tree-item.resources-category-fonts .icon {
    content: url(Images/resourcePlainIcon.png);
}

.children.small .resource-sidebar-tree-item.resources-category-fonts .icon {
    content: url(Images/resourcePlainIconSmall.png);
}

.resource-sidebar-tree-item.resources-category-scripts .icon {
    content: url(Images/resourceJSIcon.png);
}

.children.small .resource-sidebar-tree-item.resources-category-scripts .icon {
    content: url(Images/resourceDocumentIconSmall.png);
}

.resource-sidebar-tree-item.resources-category-xhr .icon {
    content: url(Images/resourcePlainIcon.png);
}

.children.small .resource-sidebar-tree-item.resources-category-xhr .icon {
    content: url(Images/resourceDocumentIconSmall.png);
}

.bubble.debug, .console-debug-level .bubble {
    background-color: rgb(0, 0, 255) !important;
}

.bubble.warning, .console-warning-level .bubble {
    background-color: rgb(232, 164, 0) !important;
}

.bubble.error, .console-error-level .bubble {
    background-color: rgb(216, 35, 35) !important;
}

.bubble.search-matches {
    background-image: url(Images/searchSmallWhite.png);
    background-repeat: no-repeat;
    background-position: 3px 2px;
    padding-left: 13px !important;
}

li.selected .bubble.search-matches {
    background-image: url(Images/searchSmallBlue.png);
}

:focus li.selected .bubble.search-matches {
    background-image: url(Images/searchSmallBrightBlue.png);
}

body.inactive li.selected .bubble.search-matches {
    background-image: url(Images/searchSmallGray.png);
}

/* Timeline Style */

#timeline-overview-panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 80px;
}

#timeline-overview-panel .timeline-graph-bar {
    pointer-events: none;
}

.timeline-sidebar-background {
    top: 90px;
    bottom: 0;
}

.timeline .sidebar {
    overflow-y: hidden;
    z-index: 100;
    min-height: 100%;
    bottom: auto;
}

#timeline-overview-separator {
    position: absolute;
    top: 80px;
    left: 0;
    right: 0;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(253, 253, 253)), to(rgb(213, 213, 213)));
    background-image: linear-gradient(to bottom, rgb(253, 253, 253) 0%, rgb(213, 213, 213) 100%);
    border-top: 1px solid rgb(140, 140, 140);
    border-bottom: 1px solid rgb(115, 115, 115);
    height: 10px;
}

#timeline-overview-sidebar {
    position: absolute;
    width: 200px;
    top: 0px;
    bottom: 0px;
    left: 0px;
    padding-top: 2px;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(242, 242, 242)), to(rgb(209, 209, 209)));
    background-image: linear-gradient(to bottom, rgb(242, 242, 242) 0%, rgb(209, 209, 209) 100%);
    border-right: 1px solid rgb(163, 163, 163);
}

#timeline-overview-grid {
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 200px;
    right: 0px;
    background-color: rgb(255, 255, 255);
}

.timeline-window-selector {
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: rgba(125, 173, 217, 0.5);
    z-index: 250;
}

#timeline-overview-window {
    background-color: white;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 60px;
    z-index: 150;
}

.timeline-overview-dividers-background {
    left: 0%;
    right: 0%;
    top: 0px;
    bottom: 60px;
    background-color: black;
    position: absolute;
}

.timeline-overview-window-rulers {
    top: 0;
    bottom: 0;
    position: absolute;
    opacity: 0.2;
    border-right: 1px solid black;
    border-left: 1px solid black;
    z-index: 150;
}

.timeline-window-resizer {
    position: absolute;
    top: 0px;
    bottom: 60px;
    width: 5px;
    margin-left: -3px;
    margin-right: -2px;
    background-color: rgb(153, 153, 153);
    z-index: 500;
    cursor: col-resize;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    -webkit-box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
    box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
}

#timeline-overview-grid #resources-graphs {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 80px;
}

#timeline-container {
    position: absolute;
    top: 90px;
    left: 0;
    bottom: 0;
    right: 0;
    border-right: 0 none transparent;
    overflow-y: auto;
    overflow-x: hidden;
}

.timeline-category-statusbar-item {
    height: 24px;
    line-height: 24px;
    padding-left: 6px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    font-weight: bold;
}

.timeline-category-statusbar-item .timeline-category-checkbox {
    width: 10px;
    height: 11px;
    margin: 0 3px 0 5px;
    padding: 0;
    background-image: url(Images/timelineCheckmarks.png);
    background-repeat: no-repeat;
    background-position: 0 -66px;
    vertical-align: -1px;
    -webkit-appearance: none;
	-moz-appearance: none;
}

.timeline-category-statusbar-item .timeline-category-checkbox:checked {
    background-position-x: -10px;
}

.timeline-category-statusbar-item.timeline-category-loading .timeline-category-checkbox {
    background-position-y: 0;
}

.timeline-category-statusbar-item.timeline-category-scripting .timeline-category-checkbox {
    background-position-y: -33px;
}

.timeline-category-statusbar-item.timeline-category-rendering .timeline-category-checkbox {
    background-position-y: -11px;
}

.timeline-tree-item {
    height: 18px;
    line-height: 15px;
    padding-right: 5px;
    padding-left: 10px;
    padding-top: 2px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.timeline-expandable {
    position: absolute;
    border-left: 1px solid rgb(163, 163, 163);
}

.timeline-expandable-left {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 3px;
    border-top: 1px solid rgb(163, 163, 163);
    border-bottom: 1px solid rgb(163, 163, 163);
}

.timeline-expandable-collapsed {
    background-image: url(Images/disclosureTriangleSmallRightBlack.png);
    background-position-x: 1px;
    background-position-y: 2px;
    background-repeat: no-repeat;
}

.timeline-expandable-expanded {
    background-image: url(Images/disclosureTriangleSmallDownBlack.png);
    background-position-x: 1px;
    background-position-y: 3px;
    background-repeat: no-repeat;
}

.timeline-tree-item .type {
    padding-left: 14px;
}

.timeline-tree-item .count {
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
}

.timeline-tree-item .timeline-tree-icon {
    background-image: url(Images/timelineDots.png);
    margin-top: 2px;
    width: 12px;
    height: 12px;
    position: absolute;
}

.timeline-tree-item.even {
    background-color: rgba(0, 0, 0, 0.05);
}

.timeline-tree-item .data.dimmed {
    color: rgba(0, 0, 0, 0.7);
}

#timeline-overview-timelines,
#timeline-overview-memory {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 20px;
    z-index: 160;
}

#timeline-overview-memory > canvas {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 5px;
}


#timeline-graphs {
    position: absolute;
    left: 0;
    right: 0;
    max-height: 100%;
    top: 19px;
}

.timeline-graph-side {
    position: relative;
    height: 18px;
    padding: 0 5px;
    white-space: nowrap;
    margin-top: 0px;
    border-top: 1px solid transparent;
    overflow: hidden;
    pointer-events: none;
}

.timeline-overview-graph-side {
    height: 20px;
    z-index: 170;
    pointer-events: none;
}

.timeline-overview-graph-side .timeline-graph-bar {
    height: 13px;
}

.timeline-graph-bar-area {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 3px;
    pointer-events: none;
}

.timeline-graph-bar {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto -2px;
    border-width: 4px 4px 5px;
    height: 9px;
    min-width: 5px;
    opacity: 0.8;
    -webkit-border-image: url(Images/timelineBarGray.png) 4 4 5 4;
	border-image: url(Images/timelineBarGray.png) 4 4 5 4;
    z-index: 180;
    pointer-events: visibleFill;
}

.timeline-graph-bar.with-children {
    opacity: 0.2;
}

.timeline-graph-bar.cpu {
    opacity: 0.6;
}

.timeline-graph-side.even {
    background-color: rgba(0, 0, 0, 0.05);
}

.timeline-category-loading .timeline-graph-bar {
    -webkit-border-image: url(Images/timelineBarBlue.png) 4 4 5 4;
	border-image: url(Images/timelineBarBlue.png) 4 4 5 4;
}

.timeline-category-scripting .timeline-graph-bar {
    -webkit-border-image: url(Images/timelineBarOrange.png) 4 4 5 4;
	border-image: url(Images/timelineBarOrange.png) 4 4 5 4;
}

.timeline-category-rendering .timeline-graph-bar {
    -webkit-border-image: url(Images/timelineBarPurple.png) 4 4 5 4;
	border-image: url(Images/timelineBarPurple.png) 4 4 5 4;
}

.timeline-aggregated-category {
    display: inline-block;
    height: 11px;
    margin-right: 2px;
    margin-left: 6px;
    position: relative;
    top: 2px;
    width: 10px;
}

.timeline-loading {
    -webkit-border-image: url(Images/timelineBarBlue.png) 4 4 5 4;
	border-image: url(Images/timelineBarBlue.png) 4 4 5 4;
}

.timeline-scripting {
    -webkit-border-image: url(Images/timelineBarOrange.png) 4 4 5 4;
	border-image: url(Images/timelineBarOrange.png) 4 4 5 4;
}

.timeline-rendering {
    -webkit-border-image: url(Images/timelineBarPurple.png) 4 4 5 4;
	border-image: url(Images/timelineBarPurple.png) 4 4 5 4;
}

.popover .timeline-aggregated-category.timeline-loading {
    margin-left: 0px;
}

.timeline-category-loading .timeline-tree-icon {
    background-position-y: 0px;
}

.timeline-category-scripting .timeline-tree-icon {
    background-position-y: 48px;
}

.timeline-category-rendering .timeline-tree-icon {
    background-position-y: 72px;
}

.timeline-details {
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
    vertical-align: top;
}

.timeline-function-name {
    text-align: right;
}

.timeline-stacktrace-title {
    padding-top: 4px;
}

.timeline-details-row-title {
    font-weight: bold;
    text-align: right;
    white-space: nowrap;
}

.timeline-details-row-data {
    white-space: nowrap;
}

.timeline-details-title {
    border-bottom: 1px solid #B8B8B8;
    font-size: 11px;
    font-weight: bold;
    padding-bottom: 5px;
    padding-top: 0px;
    white-space: nowrap;
}

.timeline-filter-status-bar-item .glyph {
    -webkit-mask-image: url(Images/largerResourcesButtonGlyph.png);
}

.timeline-filter-status-bar-item.toggled-on .glyph {
    background-color: rgb(66, 129, 235) !important;
}

.timeline-records-counter, .storage-application-cache-status, .storage-application-cache-connectivity {
    font-size: 11px;
    text-shadow: white 0 1px 0;
}

#main-status-bar > .timeline-records-counter {
    float: right;
    margin-top: 4px;
    margin-right: 25px;
}

#counters > .timeline-records-counter {
    float: left;
    margin-top: -2px;
}

.storage-application-cache-status-icon, .storage-application-cache-connectivity-icon {
    margin-bottom: -3px;
    margin-left: 5px;
    vertical-align: middle;
}

.status-bar-divider {
    margin-left: 7px;
    border-right: 1px solid #CCC;
}

.storage-application-cache-status, .storage-application-cache-connectivity {
    position: relative;
    top: 4px;
}

/* Profiler Style */

#profile-views {
    position: absolute;
    top: 0;
    right: 0;
    left: 200px;
    bottom: 0;
}

.status-bar-items {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 200px;
    overflow: hidden;
    border-left: 1px solid rgb(184, 184, 184);
    margin-left: -1px;
}

.profile-sidebar-tree-item .icon {
    content: url(Images/profileIcon.png);
}

.profile-sidebar-tree-item.small .icon {
    content: url(Images/profileSmallIcon.png);
}

.profile-group-sidebar-tree-item .icon {
    content: url(Images/profileGroupIcon.png);
}

.profile-view {
    display: none;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.profile-view.visible {
    display: block;
}

.profile-view .data-grid {
    border: none;
    height: 100%;
}

.profile-view .data-grid th.average-column {
    text-align: center;
}

.profile-view .data-grid td.average-column {
    text-align: right;
}

.profile-view .data-grid th.self-column {
    text-align: center;
}

.profile-view .data-grid td.self-column {
    text-align: right;
}

.profile-view .data-grid th.total-column {
    text-align: center;
}

.profile-view .data-grid td.total-column {
    text-align: right;
}

.profile-view .data-grid .calls-column {
    text-align: center;
}

.profile-node-file {
    float: right;
    color: gray;
    margin-top: -1px;
}

.data-grid tr.selected .profile-node-file {
    color: rgb(33%, 33%, 33%);
}

.data-grid:focus tr.selected .profile-node-file {
    color: white;
}

button.enable-toggle-status-bar-item .glyph {
}

.record-profile-status-bar-item .glyph {
    -webkit-mask-image: url(Images/recordButtonGlyph.png);
}

.record-profile-status-bar-item.toggled-on .glyph {
    -webkit-mask-image: url(Images/recordToggledButtonGlyph.png);
    background-color: rgb(216, 0, 0) !important;
}

/* FIXME: should have its own glyph. */
.heap-snapshot-status-bar-item .glyph {
    -webkit-mask-image: url(Images/focusButtonGlyph.png);
}

.node-search-status-bar-item .glyph {
    -webkit-mask-image: url(Images/nodeSearchButtonGlyph.png);
}

.percent-time-status-bar-item .glyph {
    -webkit-mask-image: url(Images/percentButtonGlyph.png);
}

.focus-profile-node-status-bar-item .glyph {
    -webkit-mask-image: url(Images/focusButtonGlyph.png);
}

.exclude-profile-node-status-bar-item .glyph {
    -webkit-mask-image: url(Images/excludeButtonGlyph.png);
}

.reset-profile-status-bar-item .glyph {
    -webkit-mask-image: url(Images/reloadButtonGlyph.png);
}

.delete-storage-status-bar-item .glyph {
    -webkit-mask-image: url(Images/excludeButtonGlyph.png);
}

.refresh-storage-status-bar-item .glyph {
    -webkit-mask-image: url(Images/reloadButtonGlyph.png);
}

ol.breakpoint-list {
    -webkit-padding-start: 0;
	-moz-padding-start: 0;
    list-style: none;
    margin: 0;
}

.breakpoint-list li {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    padding: 2px 0;
    color: black;
}

.breakpoint-list li:hover {
    color: rgb(15%, 15%, 15%);
}

.breakpoint-list .checkbox-elem {
    font-size: 10px;
    margin: 0 4px;
    vertical-align: top;
    position: relative;
    z-index: 1;
}

.breakpoint-list .source-text {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    margin: 2px 0 0px 20px;
}

.pane .breakpoint-hit {
    background-color: rgb(255, 255, 194);
}

li.breakpoint-hit .breakpoint-hit-marker {
    background-color: rgb(255, 255, 194);
    height: 18px;
    left: 0px;
    margin-top: -16px;
    position: absolute;
    right: 0px;
    z-index: -1;
}

.webkit-html-js-node, .webkit-html-css-node {
    white-space: pre;
}

.source-frame-breakpoint-condition {
    z-index: 30;
    padding: 4px;
    background-color: rgb(203, 226, 255);
    -webkit-border-radius: 7px;
    border-radius: 7px;
    border: 2px solid rgb(169, 172, 203); 
    width: 90%; 
}

.source-frame-breakpoint-message {
    background-color: transparent;
    font-family: Lucida Grande, sans-serif; 
    font-weight: normal;
    font-size: 11px;
    text-align: left;
    text-shadow: none;
    color: rgb(85, 85, 85);
    cursor: default;
    margin: 0 0 2px 0; 
}

#source-frame-breakpoint-condition {
    margin: 0;
    border: 1px inset rgb(190, 190, 190) !important;
    width: 100%;
    box-shadow: none !important;
    outline: none !important;
    -webkit-user-modify: read-write;
	-moz-user-modify: read-write;
}

.source-frame-popover-title {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: bold;
    padding-left: 18px;
}

.source-frame-popover-tree {
    border-top: 1px solid rgb(194, 194, 147);
    overflow: auto;
    position: absolute;
    top: 15px;
    bottom: 0;
    left: 0;
    right: 0;
}

.source-frame-eval-expression {
    border: 1px solid rgb(163, 41, 34);
    margin: -1px;
    background-color: rgb(255, 255, 194);
}

.styles-sidebar-separator {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(243, 243, 243)), color-stop(0.05, rgb(243, 243, 243)), color-stop(0.05, rgb(230, 230, 230)), to(rgb(209, 209, 209)));
    background-image: linear-gradient(to bottom, rgb(243, 243, 243) 0%,rgb(243, 243 ,243) 10%, rgb(230, 230, 230) 40%, rgb(209, 209, 209) 100%);
    padding: 0 5px;
    border-top: 1px solid rgb(189, 189, 189);
    border-bottom: 1px solid rgb(189, 189, 189);
    color: rgb(110, 110, 110);
    text-shadow: white 0 1px 0;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    font-size: 11px;
}

.styles-selector {
    cursor: text;
}

.workers-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
 
.workers-list > li {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-left: 1em;
    font-size: 12px;
}

a.worker-item {
    color: rgb(33%, 33%, 33%);
    cursor: pointer;
    text-decoration: none;
}

.styles-section {
    padding: 2px 2px 4px 4px;
    min-height: 18px;
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
    -webkit-user-select: text;
	-ms-user-select: text;
	-moz-user-select: text;
}

.styles-section:not(.first-styles-section) {
    border-top: 1px solid rgb(191, 191, 191);
}

.styles-section.read-only {
    background-color: rgb(240, 240, 240);
}

.styles-section .properties li.not-parsed-ok {
    margin-left: 0px;
}

.styles-section .properties li.not-parsed-ok::before {
    content: url(Images/warningIcon.png);
    opacity: 0.75;
    float: left;
    width: 8px;
    height: 8px;
    margin-top: 0;
    padding-right: 5px;
    vertical-align: sub;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
    cursor: default;
}

.styles-section .header {
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
    background-origin: padding;
    background-clip: padding;
}

.styles-section .header .title {
    word-wrap: break-word;
    white-space: normal;
}

.styles-section .header .subtitle {
    color: rgb(85, 85, 85);
    float: right;
    margin-left: 5px;
    max-width: 65%;
    text-overflow: ellipsis;
    overflow: hidden;
}

.styles-section .header .subtitle a {
    color: inherit;
}

.styles-section a::before {
    content: attr(data-uncopyable);
}

.styles-section .properties {
    display: none;
    margin: 0;
    padding: 2px 4px 0 8px;
    list-style: none;
}

.styles-section.no-affect .properties li {
    opacity: 0.5;
}

.styles-section.no-affect .properties li.editing {
    opacity: 1.0;
}

.styles-section.expanded .properties {
    display: block;
}

.styles-section .properties li {
    margin-left: 12px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: auto;
}

.styles-section .properties li.parent {
    margin-left: 1px;
}

.styles-section .properties ol {
    display: none;
    margin: 0;
    -webkit-padding-start: 12px;
	-moz-padding-start: 12px;
    list-style: none;
}

.styles-section .properties ol.expanded {
    display: block;
}

.styles-section .properties li.parent::before {
    content: url(Images/treeRightTriangleBlack.png);
    opacity: 0.75;
    float: left;
    width: 8px;
    height: 8px;
    margin-top: 0;
    padding-right: 3px;
    -webkit-user-select: none;
	-ms-user-select: none;
	-moz-user-select: none;
    cursor: default;
}

.styles-section .properties li.parent.expanded::before {
    content: url(Images/treeDownTriangleBlack.png);
    margin-top: 1px;
}

.styles-section .properties li .info {
    padding-top: 4px;
    padding-bottom: 3px;
}

.styles-section:hover .properties .enabled-button {
    display: block;
}

.styles-section .properties li.disabled .enabled-button {
    display: block;
}

.styles-section .properties .enabled-button {
    display: none;
    float: right;
    font-size: 10px;
    margin: 0 0 0 4px;
    vertical-align: top;
    position: relative;
    z-index: 1;
    /*Removes checkbox padding that is set in IE by default*/
    padding: 0;
}

.styles-section .properties .overloaded, .styles-section .properties .inactive, .styles-section .properties .disabled {
    text-decoration: line-through;
}

.styles-section.computed-style .properties .disabled {
    text-decoration: none;
    opacity: 0.5;
}

.styles-section .properties .implicit, .styles-section .properties .inherited {
    opacity: 0.5;
}


.body .styles-section .properties .inherited {
    display: none;
}

.body.show-inherited .styles-section .properties .inherited {
    display: block;
}

a.worker-item:hover {
    color: rgb(15%, 15%, 15%);
}

.resource-content-unavailable {
    color: rgb(50%, 50%, 50%);
    font-style: italic;
    font-size: 14px;
    text-align: center;
    padding: 32px;
}

.node-link {
    text-decoration: underline;
    cursor: pointer;
}

.cursor-pointer {
    cursor: pointer;
}

.cursor-auto {
    cursor: auto;
}

.please-wait-msg {
    position: absolute;
    left: 0;
    top: 0;
    border: 4px black solid;
    border-radius: 4px;
    background-color: black;
    opacity: 0.85;
    color: white;
    font-size: 12px;
    font-weight: bold;
    z-index: 10000;
}
