/* See license.txt for terms of usage */

.netTable {
    width: 100%;
}

/*************************************************************************************************/
/* Filtering */

.filtering .netRow:not(.netHeaderRow):not(.netSummaryRow) {
    display: none;
}

.showCategory-undefined .category-undefined,
.showCategory-html .category-html,
.showCategory-css .category-css,
.showCategory-js .category-js,
.showCategory-image .category-image,
.showCategory-xhr .category-xhr,
.showCategory-plugin .category-plugin,
.showCategory-media .category-media,
.showCategory-font .category-font,
.showCategory-txt .category-txt,
.showCategory-bin .category-bin {
    display: table-row !important;
}

/*************************************************************************************************/
/* Header for Net panel table */

.netHeaderRow {
    height: 16px;
}

.netHeaderCell {
    cursor: pointer;
    -moz-user-select: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    padding: 0 !important;
    font-weight: bold;
    background: linear-gradient(
            rgba(255, 255, 255, 0.05),
            rgba(0, 0, 0, 0.05)),
        radial-gradient(1px 60% at right,
            rgba(0, 0, 0, 0.8) 0%,
            transparent 80%) repeat-x #C8D2DC;
    color: #000000;
    white-space: nowrap;
}

.netHeaderRow > .netHeaderCell:first-child > .netHeaderCellBox {
    padding: 2px 14px 2px 18px;
}

.netHeaderCellBox {
    padding: 2px 14px 2px 10px;
}

.netHeaderSorted {
    background-color: #AAC3DC;
}

.netHeaderSorted > .netHeaderCellBox {
    background: url(chrome://firebug/skin/arrowDown.svg) no-repeat calc(100% - 4px);
}

.netHeaderSorted.sortedAscending > .netHeaderCellBox {
    background-image: url(chrome://firebug/skin/arrowUp.svg);
}

.netHeaderCell:hover:active {
    background-image: linear-gradient(
            rgba(0, 0, 0, 0.1),
            transparent),
        radial-gradient(1px 60% at right,
            rgba(0, 0, 0, 0.8) 0%,
            transparent 80%);
}

/*************************************************************************************************/
/* Breakpoints */

.panelNode-net .netRowHeader {
    display: block;
}

.netRowHeader {
    position: relative;
    display: none;
    height: 15px;
    margin-right: 0 !important;
}

.category-xhr .netRowHeader {
    cursor: pointer;
}

/* Display breakpoint disc */
.netRow .netRowHeader {
    width: 3px;
    height: 100%;
    background-position: 5px 4px;
}

.netRow[breakpoint="true"] .netRowHeader {
    background-image: url(chrome://firebug/skin/breakpoint.svg);
}

.netRow[breakpoint="true"][disabledBreakpoint="true"] .netRowHeader {
    background-image: none;
}

.netRow[breakpoint="true"][disabledBreakpoint="true"] .netRowHeader::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 5px;
    width: 12px;
    height: 12px;
    background: url(chrome://firebug/skin/breakpoint.svg) no-repeat;
    opacity: 0.5;
}

.netRow.category-xhr:hover .netRowHeader {
    background-color: #F6F6F6;
}

#netBreakpointBar,
.netDebugCol {
    max-width: 30px;
}

#netHrefCol > .netHeaderCellBox {
    border-left: 0px;
}

.netInfoRow .netRowHeader {
    display: table-cell;
}

.netDebugCol {
    border-right: 1px solid #CCCCCC;
    background-color: #EEEEEE;
}

.netDebugCol .sourceLine {
    border-right: none;
}

/*************************************************************************************************/
/* Column visibility */

.netTable[hiddenCols~=netHrefCol] TD[id="netHrefCol"],
.netTable[hiddenCols~=netHrefCol] TD.netHrefCol,
.netTable[hiddenCols~=netProtocolCol] TD[id="netProtocolCol"],
.netTable[hiddenCols~=netProtocolCol] TD.netProtocolCol,
.netTable[hiddenCols~=netStatusCol] TD[id="netStatusCol"],
.netTable[hiddenCols~=netStatusCol] TD.netStatusCol,
.netTable[hiddenCols~=netDomainCol] TD[id="netDomainCol"],
.netTable[hiddenCols~=netDomainCol] TD.netDomainCol,
.netTable[hiddenCols~=netSizeCol] TD[id="netSizeCol"],
.netTable[hiddenCols~=netSizeCol] TD.netSizeCol,
.netTable[hiddenCols~=netTimeCol] TD[id="netTimeCol"],
.netTable[hiddenCols~=netTimeCol] TD.netTimeCol,
.netTable[hiddenCols~=netLocalAddressCol] TD[id="netLocalAddressCol"],
.netTable[hiddenCols~=netLocalAddressCol] TD.netLocalAddressCol,
.netTable[hiddenCols~=netRemoteAddressCol] TD[id="netRemoteAddressCol"],
.netTable[hiddenCols~=netRemoteAddressCol] TD.netRemoteAddressCol {
    display: none;
}

/*************************************************************************************************/

.netRow {
    background: LightYellow;
}

.netRow.loaded {
    background: #FFFFFF;
}

.netRow.loaded:hover {
    background: #EFEFEF;
}

/* Visual separator between phases */
.netRow[breakLayout="true"]:not(:nth-child(2)) > .netCol {
    border-top: 1px solid rgb(207,207,207);
}

.netRow[breakLayout="true"] .netCol.netDebugCol {
    border-top: none;
}

.netCol {
    padding: 0;
    vertical-align: top;
    white-space: nowrap;
    height: 17px;
}

.netRow:not(:nth-last-child(-n+2)) > .netCol {
    border-bottom: 1px solid #EFEFEF;
}

.netLabel {
    width: 100%;
}

.netStatusCol {
    padding-left: 10px;
    color: rgb(128, 128, 128);
}

.responseError > .netStatusCol {
    color: red;
}

.netDomainCol {
    padding-left: 5px;
}

.netSizeCol {
    text-align: right;
    padding-right: 10px;
}

.netProtocolCol,
.netLocalAddressCol,
.netRemoteAddressCol {
    padding-left: 5px;
    padding-right: 5px;
}

.netHrefLabel {
    -moz-box-sizing: padding-box;
    overflow: hidden;
    z-index: 10;
    position: absolute;
    padding-left: 18px;
    padding-top: 1px;
    padding-bottom: 3px;
    max-width: 15%;
    font-weight: bold;
}

.netFullHrefLabel {
    display: none;
    -moz-user-select: none;
    padding-right: 10px;
    padding-bottom: 2px;
    max-width: calc(100% - 38px);
    background: #FFFFFF;
    z-index: 200;
    text-overflow: ellipsis;
}

.netHrefCol:hover > .netFullHrefLabel {
    display: block;
}

.netRow.loaded:hover .netCol > .netFullHrefLabel {
    background-color: #EFEFEF;
}

.useA11y .a11yShowFullLabel {
    display: block;
    background-image: none !important;
    border: 1px solid #CBE087;
    background-color: LightYellow;
    font-family: monospace;
    color: #000000;
    font-size: 10px;
    z-index: 2147483647;
}

.netSizeLabel {
    padding-left: 6px;
}

.netProtocolLabel,
.netStatusLabel,
.netDomainLabel,
.netSizeLabel,
.netAddressLabel,
.netBar {
    padding: 1px 0 2px 0 !important;
}

.responseError {
    color: red;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

.hasHeaders .netHrefLabel:hover {
    cursor: pointer;
    color: blue;
    text-decoration: underline;
}

/*************************************************************************************************/

.netLoadingIcon {
    position: absolute;
    border: 0;
    margin-left: 14px;
    width: 16px;
    height: 16px;
    background: transparent no-repeat 0 0;
    background-image: url(chrome://firebug/skin/loading.svg);
    display:inline-block;
}

.loaded .netLoadingIcon {
    display: none;
}

/*************************************************************************************************/
/* Timeline */

.netBar {
    position: relative;
    border-right: 50px solid transparent;
}

.netResolvingBar,
.netConnectingBar,
.netBlockingBar,
.netSendingBar,
.netWaitingBar,
.netReceivingBar {
    position: absolute;
    left: 0;
    top: 1px;
    bottom: 1px;
    background-image: linear-gradient(rgba(255, 255, 255, 0.3), rgba(0, 0, 0, 0.2));
}

.netBlockingBar {
    background-color: #EBE1D2;
    z-index: 60;
}

.netResolvingBar {
    background-color: #91D2DC;
    z-index: 50;
}

.netConnectingBar {
    background-color: #B9E164;
    z-index: 40;
}

.netSendingBar {
    background-color: #E1826E;
    z-index: 30;
}

.netWaitingBar {
    background-color: #B4A5D2;
    z-index: 20;
    min-width: 1px;
}

.netReceivingBar {
    background-color: #78E17D;
    z-index: 10;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Vertical lines - time stamps */

.netPageTimingBar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    z-index: 70;
    opacity: 0.5;
    display: none;
    margin-bottom:-1px;
}

.netWindowLoadBar {
    background-color: red;
}

.netContentLoadBar {
    background-color: blue;
}

.netPaintBar {
    background-color: green;
}

.netTimeStampBar {
    background-color: #A0A000;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

.netTimeLabel {
    -moz-box-sizing: padding-box;
    position: absolute;
    top: 1px;
    left: 100%;
    padding-left: 6px;
    color: #808080;
    min-width: 16px;
}

/*
 * Timing info tip is reusing net timeline styles to display the same
 * colors for individual request phases. Notice that the info tip must
 * respect also 'loaded' and 'fromCache' styles that also modify the
 * actual color. These are used both on the same element in case
 * of the tooltip.
 */
.fromCache .netReceivingBar,
.fromCache.netReceivingBar {
    background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.1));
}

.netSummaryRow .netTimeLabel,
.loaded .netTimeLabel {
    background: transparent;
}

/*************************************************************************************************/
/* If coming from BF cache (no network activity) */

.netTable .netRow.fromBFCache {
    display: none;
}

.netTable.showBFCacheResponses .netRow.fromBFCache {
    display: table-row;
    background-image: repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 5px, transparent 5px, transparent 10px);
    background-repeat: repeat;
}

.netRow.fromCache .netLabel,
.netRow.fromBFCache .netBlockingBar,
.netRow.fromBFCache .netResolvingBar,
.netRow.fromBFCache .netConnectingBar,
.netRow.fromBFCache .netSendingBar,
.netRow.fromBFCache .netWaitingBar,
.netRow.fromBFCache .netReceivingBar {
    opacity: 0.5;
}

.netRow.fromCache:not(.responseError) .netHrefLabel {
    opacity: 1.0;
    color: gray;
}

.netInfoResponseHeadersBody .headerFromBFCache {
    color: gray;
}

/*************************************************************************************************/
/* Size Info tip */

.sizeInfoLabelCol {
    font-weight: bold;
    padding-right: 10px;
    font-family: Lucida Grande, Tahoma, sans-serif;
    font-size: 11px;
}

.sizeInfoDetailCol {
    color: gray;
    text-align: right;
}

.sizeInfoDescCol {
    color: gray;
}

/*************************************************************************************************/
/* Summary */

.netSummaryLabel {
    color: #222222;
    padding-top: 2px;
}

.netSummaryRow {
    background: #C8D2DC;
    font-weight: bold;
}

.netSummaryRow .netBar {
    border-right-color: #BBBBBB;
}

.netSummaryRow > .netCol {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.netSummaryRow > .netHrefCol:hover {
    background: transparent !important;
}

.netCountLabel {
    padding-left: 18px;
}

.netTotalSizeCol {
    text-align: right;
}

.netTotalTimeCol {
    text-align: right;
}

.netCacheSizeLabel {
    display: inline-block;
    float: left;
}

.netCacheSizeLabel[collapsed="true"] {
    display: none !important;
}

.netTotalTimeLabel {
    padding-right: 6px;
}

/*************************************************************************************************/

.netInfoCol {
    border-top: 1px solid #EEEEEE;
    background: #FFFFFF linear-gradient(rgba(0, 0, 0, 0.1), transparent 33px) repeat-x;
}

.netInfoBody {
    margin: 10px 0 4px 10px;
}

.netInfoTabs {
    position: relative;
    padding-left: 17px;
}

.netInfoTab {
    position: relative;
    top: -3px;
    margin-top: 10px;
    padding: 4px 6px;
    border: 1px solid transparent;
    border-bottom: none;
    font-weight: bold;
    color: #000000;
}

.netInfoTab:hover {
    cursor: pointer;
}

.netInfoTab[selected="true"] {
    cursor: default !important;
    border-color: #D7D7D7;
    border-radius: 4px 4px 0 0;
    background-color: #FFFFFF;
}

.logRow-netInfo.error .netInfoTitle {
    color: red;
}

.logRow-netInfo.loading .netInfoResponseText {
    font-style: italic;
    color: #888888;
}

.loading .netInfoResponseHeadersTitle {
    display: none;
}

.netInfoResponseSizeLimit {
    font-family: Lucida Grande, Tahoma, sans-serif;
    padding-top: 10px;
    font-size: 11px;
}

.netInfoText {
    display: none;
    margin: 0;
    border: 1px solid #D7D7D7;
    border-right: none;
    padding: 8px;
    background-color: #FFFFFF;
    font-family: monospace;
    /*overflow-x: auto; HTML is damaged in case of big (2-3MB) responses */
}

.netInfoText[selected="true"] {
    display: block;
}

.netInfoParamName {
    padding: 0 10px 0 0;
    font-family: Lucida Grande, Tahoma, sans-serif;
    font-weight: bold;
    vertical-align: top;
    text-align: right;
    white-space: nowrap;
}

.netInfoParamValue {
    width: 100%;
}

.netInfoHeadersText,
.netInfoPostText,
.netInfoPutText,
.netInfoPatchText {
    padding-top: 0;
}

.netInfoHeadersGroup,
.netInfoPostParams,
.netInfoPostSource {
    margin-bottom: 4px;
    border-bottom: 1px solid #D7D7D7;
    padding-top: 8px;
    padding-bottom: 2px;
    font-family: Lucida Grande, Tahoma, sans-serif;
    font-weight: bold;
    color: #565656;
}

.netInfoCachedResponseHeadersBody {
    color: gray;
}

.netInfoPostParamsTable,
.netInfoPostPartsTable,
.netInfoPostJSONTable,
.netInfoPostXMLTable,
.netInfoPostSVGTable,
.netInfoPostSourceTable {
    margin-bottom: 10px;
    width: 100%;
}

.netInfoPostContentType {
    color: #bdbdbd;
    padding-left: 50px;
    font-weight: normal;
}

/*************************************************************************************************/
/* HTML Preview & Resizer */

.netInfoHtmlPreview {
    border: 0;
    width: 100%;
    height: 100%;
}

.netInfoHtmlText {
    padding: 0;
}

.htmlPreviewResizer {
    width: 100%;
    height: 5px;
    background-color: lightgrey;
    cursor: s-resize;
}

/* When HTML preview resizing is in progress set the cursor for all elements
   since the mouse doesn't have to be always just over the resizer and this
   avoids cursor flashing. */
body[resizingHtmlPreview="true"] * {
    cursor: s-resize !important;
}

/* When HTML preview resizing is in progress mouse messages are not sent to
   the iframe document. */
body[resizingHtmlPreview="true"] .netInfoHtmlPreview {
    pointer-events: none !important;
}

/*************************************************************************************************/
/* Request & Response Headers */

.netHeadersViewSource {
    margin-left: 200px;
}

.netPostParameterSort {
    margin-left: 30px;
}

.netHeadersViewSource,
.netPostParameterSort {
    color: #bdbdbd;
    font-weight: normal;
}

.netHeadersViewSource:hover,
.netPostParameterSort:hover {
    color: blue;
    cursor: pointer;
}

.netInfoHeadersTable > .netHeadersGroup > TABLE,
.netInfoHeadersTable > .netHeadersGroup .netHeadersViewSource {
    display: none;
}

.netInfoHeadersTable > .netHeadersGroup.opened > TABLE,
.netInfoHeadersTable > .netHeadersGroup.opened .netHeadersViewSource {
    display: inline-block;
}

.netInfoHeadersTable .netHeader {
    cursor: pointer;
    padding-left: 17px;
    position: static;
    -moz-user-select: none;
}

.netInfoHeadersTable .netHeadersViewSource {
    display: inline-block;
}

/*************************************************************************************************/
/* Net Activation Message */

.netActivationRow {
    background: rgb(238, 238, 238) !important;
    font-weight: normal;
    color: black;
}

.netActivationRow > TD {
    vertical-align: middle !important;
    padding-top: 2px;
    padding-bottom: 2px;
}

.netActivationLabel {
    padding-left: 28px;
}

/*************************************************************************************************/

.netPageCol {
    cursor: pointer;
}

.netPageSeparatorRow {
    height: 5px !important;
    background-color: rgb(238, 238, 238);
}

.netPageSeparatorLabel {
    padding-left: 22px;
    height: 5px !important;
}

.netPageRow {
    background-color: rgb(255, 255, 255);
}

.netPageRow:hover {
    background: #EFEFEF;
}

.netPageLabel {
    padding: 1px 0 2px 18px !important;
    font-weight: bold;
}

/*************************************************************************************************/

.useA11y .panelNode-net .a11yFocus:focus,
.useA11y .panelNode-net .focusRow:focus {
    outline-offset: -2px;
    background-color: #FFFFD6 !important;
}

.useA11y .panelNode-net .netHeaderCell:focus,
.useA11y .panelNode-net :focus .netHeaderCell,
.useA11y .panelNode-net :focus .netReceivingBar,
.useA11y .netSummaryRow :focus .netBar,
.useA11y .netSummaryRow:focus .netBar {
    background-color: #FFFFD6;
    background-image: none;
    border-color: #FFFFD6;
}
