/*
 * 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.
 */

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;
    -webkit-user-select: none;
}

* {
    -webkit-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;
    padding: 0 5px;
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(191, 191, 191)), to(rgb(151, 151, 151)));
    border-bottom: 1px solid rgb(80, 80, 80);
    -webkit-box-orient: horizontal;
    -webkit-background-origin: padding;
    -webkit-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)));
    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;
    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;
}

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

.toolbar-item.flexable-space {
    -webkit-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;
}

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.scripts .toolbar-icon {
    background-image: url(Images/scriptsIcon.png);
}

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

.toolbar-item.storage .toolbar-icon {
    background-image: url(Images/storageIcon.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;
    -webkit-border-radius: 0;
    -webkit-appearance: none;
}

select.status-bar-item:active {
    color: black;
    -webkit-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-console-status-bar-item .glyph {
    -webkit-mask-image: url(Images/clearConsoleButtonGlyph.png);
}

#changes-status-bar-item .glyph {
    -webkit-mask-image: url(Images/consoleButtonGlyph.png); /* TODO: Needs Image for Changes Toggle Button */
}

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

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

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

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

#style-changes-count::before {
    content: url(Images/styleIcon.png); /* TODO: Needs Image for Style Changes Icon */
    width: 10px;
    height: 10px;
    vertical-align: -1px;
    margin-right: 2px;
}

#error-count::before {
    content: url(Images/errorIcon.png);
    width: 10px;
    height: 10px;
    vertical-align: -1px;
    margin-right: 2px;
}
    
#changes-count + #error-warning-count, #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;
    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;
    font-family: Menlo, monospace;
}

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

body.platform-linux .monospace, body.platform-linux .source-code {
    font-size: 11px;
    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: overlay;
    word-wrap: break-word;
    -webkit-user-select: text;
    -webkit-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;
}

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

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

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

.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 {
    color: rgb(128, 128, 128);
    -webkit-user-select: none;
    -webkit-user-modify: read-only;
}

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

.panel.visible {
    display: block;
}

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

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

.resource-view .scope-bar {
    display: none;
    position: absolute;
    height: 20px;
    top: 0;
    left: 0;
    right: 0;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));
    border-bottom: 1px solid rgb(163, 163, 163);
}

.resource-view.headers-visible .scope-bar {
    display: block;
}

.resource-view .scope-bar li {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.resource-view-headers {
    padding: 6px;
    -webkit-user-select: text;    
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: auto;
}

.resource-view.headers-visible .resource-view-headers {
    top: 20px;
}

.resource-view-headers .outline-disclosure .parent {
    -webkit-user-select: none;
    font-weight: bold;
}

.resource-view-headers .outline-disclosure .children li {
    white-space: nowrap;
}

.resource-view-headers .outline-disclosure li.expanded .header-count {
    display: none;
}

.resource-view-headers .outline-disclosure .header-name {
    color: rgb(33%, 33%, 33%);
    display: inline-block;
    margin-right: 0.5em;
    font-weight: bold;
    vertical-align: top;
    white-space: pre-wrap;
}

.resource-view-headers .outline-disclosure .header-value {
    display: inline;
    margin-right: 100px;
    white-space: pre-wrap;
    word-break: break-all;
    margin-top: 1px;
}

.resource-view-headers .outline-disclosure .raw-form-data {
    white-space:pre-wrap;
}

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

.resource-view.headers-visible .resource-view-content {
    top: 20px;
}

.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.font .resource-view-content {
    font-size: 60px;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-align: center;
    padding: 15px;
}

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

.resource-view.image .resource-view-content > .info {
    padding-bottom: 10px;
    font-size: 11px;
    -webkit-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);
    -webkit-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";
}

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

#elements-sidebar {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 225px;
    background-color: rgb(245, 245, 245);
    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;
    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;
}

.crumbs .crumb.selected {
    -webkit-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;
}

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

.crumbs .crumb:hover {
    -webkit-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;
    color: rgba(0, 0, 0, 0.75);
}

.crumbs .crumb.end:hover {
    -webkit-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;
}

.outline-disclosure li.highlighted .highlight {
    background-color: rgb(255, 230, 179);
    -webkit-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;
    margin: 0;
}

.source-code {
    font-family: monospace;
    font-size: 10px;
    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)));
    -webkit-background-origin: padding;
    -webkit-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)));
}

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

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

.section:nth-last-of-type(1), .event-bar:nth-last-of-type(1) {
    margin-bottom: 1px;
}

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

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

.event-bar:nth-last-of-type(1) .header {
    border-bottom: 1px solid rgb(163, 163, 163);
}

.section .header {
    padding: 2px 8px 4px 18px;
    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)));
    min-height: 18px;
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
}

.section.no-affect .header {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(167, 167, 167)), to(rgb(123, 123, 123)))
}

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

.section.blank-section .header::before {
    display: none;
}

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

.section .header .title, .event-bar .header .title {
    color: white;
    font-weight: bold;
    word-wrap: break-word;
    white-space: normal;
}

.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;
    font-size: 10px;
    margin-left: 5px;
    max-width: 55%;
    color: rgba(255, 255, 255, 0.7);
    text-overflow: ellipsis;
    overflow: hidden;
}

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

.section .properties, .event-bar .event-properties {
    display: none;
    margin: 0;
    padding: 2px 6px 3px;
    list-style: none;
    min-height: 18px;
}

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

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

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

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

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

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

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

.section .properties li.parent::before, .event-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;
    cursor: default;
}

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

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

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

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

.event-bar {
    position: relative;
}

.event-bar-connector {
    position: absolute;
    left: 75%;
    bottom: -7px;
    margin-left: -7px;
    content: url(Images/grayConnectorPoint.png);
    z-index: 3;
}

.event-bar.expanded .event-bar-connector {
    content: url(Images/whiteConnectorPoint.png);
}

.event-bars .event-bar .header {
    padding: 2px 8px 4px 18px;
    border-top: 1px solid rgb(163, 163, 163);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(243, 243, 243)), to(rgb(207, 207, 207)));
    min-height: 18px;
    white-space: nowrap;
    -webkit-background-origin: padding;
    -webkit-background-clip: padding;
}

.event-bars .event-bar.expanded .header {
    border-bottom: 1px solid rgb(163, 163, 163);
}

.event-bars .event-bar .header .title {
    font-weight: bold;
    color: #333;
    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: 4px;
    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;
    -webkit-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;
    text-overflow: clip;
    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;
}

.elements-tree-editor {
    -webkit-user-select: text;
    -webkit-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;
}

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

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

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

.section:not(.show-inherited) .properties .inherited {
    display: none;
}

.section .properties .enabled-button {
    display: none;
    float: right;
    font-size: 10px;
    margin: 0 0 0 4px;
    vertical-align: top;
    position: relative;
    z-index: 1;
}

/* 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:hover .properties .enabled-button {
    display: block;
}

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

.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 .priority {
    color: rgb(128, 0, 0);
}

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

.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)));
    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;
    -webkit-appearance: none;
}

.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 > .body {
    position: relative;
    display: none;
    background-color: white;
    overflow-y: auto;
    overflow-x: hidden;
}

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

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

.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 {
    float: right;
    overflow: hidden;
}

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

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

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

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

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

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

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

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

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

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

.storage-view.table {
    overflow: hidden;
}

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

.storage-view.table .storage-table-empty, .storage-view.table .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.table .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;
    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)));
    -webkit-background-size: 1px 32px;
}

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

.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;
    right: 0;
    width: 8px;
    height: 8px;
    content: url(Images/treeUpTriangleBlack.png);
}

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

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

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

.database-query-prompt {
    position: relative;
    padding: 1px 22px 1px 24px;
    min-height: 16px; 
    white-space: pre-wrap;
    -webkit-user-modify: read-write-plaintext-only;
    -webkit-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;
}

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

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

.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)));
    -webkit-border-radius: 12px;
    -webkit-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;
    width: 330px;
    margin: 0;
    white-space: normal;
    line-height: 175%;
}

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

.panel-enabler-view.welcome button.status-bar-item {
    vertical-align: middle;
}

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

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

.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)));
    -webkit-border-radius: 8px;
    -webkit-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)));
}

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

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

.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-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;
    background-color: rgb(245, 245, 245);
    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)));
    border-bottom: 1px solid rgb(64%, 64%, 64%);
    width: 100%;
}

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

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

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

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

#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-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;
    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: 0;
    height: 100%;
    top: 0;
    z-index: 300;
    pointer-events: none;
}

#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-onload-divider {
    position: absolute;
    width: 2px;
    top: 0;
    bottom: 0;
    z-index: 300;
    background-color: rgba(255, 0, 0, 0.5);
}

.resources-ondomcontent-divider {
    position: absolute;
    width: 2px;
    top: 0;
    bottom: 0;
    z-index: 300;
    background-color: rgba(0, 0, 255, 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;
}

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

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

.resources-category-documents, .resources-category-stylesheets, .resources-category-images,
.resources-category-scripts, .resources-category-xhr, .resources-category-fonts, .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-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;
}

.resources-category-documents .resources-graph-bar {
    -webkit-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;
}

.resources-category-stylesheets .resources-graph-bar {
    -webkit-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;
}

.resources-category-images .resources-graph-bar {
    -webkit-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;
}

.resources-category-fonts .resources-graph-bar {
    -webkit-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;
}

.resources-category-scripts .resources-graph-bar {
    -webkit-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;
}

.resources-category-xhr .resources-graph-bar {
    -webkit-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;
}

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

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

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

.sidebar-tree-item .status:empty {
    display: none;
}

.sidebar-tree-item .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;
}

.sidebar-tree-item .status .bubble:empty {
    display: none;
}

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

:focus .sidebar-tree-item.selected .status .bubble {
    color: rgb(36, 98, 172) !important;
}

body.inactive .sidebar-tree-item.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)));
    text-shadow: rgba(0, 0, 0, 0.33) 0 1px 0;
    font-weight: bold;
    -webkit-background-origin: padding;
    -webkit-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)));
}

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

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

.resource-sidebar-tree-item.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 .resource-sidebar-tree-item.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;
}

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

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

body.inactive .sidebar-tree-item.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)));
    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: 1px;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(242, 242, 242)), to(rgb(209, 209, 209)));
    border-right: 1px solid rgb(163, 163, 163);
}

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

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

.timeline-window-resizer {
    position: absolute;
    top: 35px;
    bottom: 15px;
    width: 5px;
    margin-left: -3px;
    margin-right: -2px;
    background-color: rgb(153, 153, 153);
    z-index: 500;
    cursor: col-resize;
    -webkit-border-radius: 2px;
    -webkit-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-clear-status-bar-item .glyph {
    -webkit-mask-image: url(Images/clearConsoleButtonGlyph.png);
}

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

.timeline-category-tree-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;
}

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

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

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

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

.timeline-category-tree-item:nth-of-type(2n) {
    background-color: rgba(0, 0, 0, 0.05);
}

.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-graphs {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 20px;
}

#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;
    z-index: 180;
    pointer-events: visibleFill;
}

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

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

.timeline-category-scripting .timeline-graph-bar {
    -webkit-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;
}

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

/* Profiler Style */

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

#profile-view-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);
}

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

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

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

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

.breakpoint-list li {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    margin: 4px 0;
    color: rgb(33%, 33%, 33%);
    cursor: pointer;
}

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

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

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

.timeline-details {
    -webkit-user-select: text;
}

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

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

.timeline-details-title {
    font-weight: bold;
    white-space: nowrap;
}

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

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

