/*
 * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
 *
 * 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.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. 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 INC. 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.
 */

:root {
    --z-index-highlight: 64;
    --z-index-header: 128;
    --z-index-resizer: 256;
    --z-index-popover: 512;
    --z-index-tooltip: 1024;
    --z-index-glass-pane-for-drag: 2048;
    --z-index-uncaught-exception-sheet: 4096;

    --foreground-lightness: 0%;

    --text-color: black;
    --text-color-active: black;

    --text-color-secondary: hsl(0, 0%, 50%);

    /* Disabled text/glyphs */
    --text-color-tertiary: hsl(0, 0%, 70%);

    /* Dividers, separators, background fills */
    --text-color-quaternary: hsl(0, 0%, 85%);

    --background-color: white;

    --background-color-content: white;
    --background-color-code: white;

    /* Gray background with lighter foreground. In dark mode this is lighter. */
    --gray-background-color: hsl(0, 0%, 66%);
    --gray-foreground-color: white;

    --link-text-color: hsl(0, 0%, 33%);

    --selected-foreground-color: white;
    --selected-secondary-text-color: hsla(0, 100%, 100%, 0.7);
    --selected-background-color: hsl(212, 92%, 54%);
    --selected-background-color-unfocused: hsl(0, 0%, 83%);
    --selected-background-color-active: hsl(218, 85%, 52%);
    --selected-background-color-hover: hsla(212, 92%, 54%, 0.5);
    --selected-background-color-highlight: hsla(0, 0%, 100%, 0.3);
    --selected-text-background-color: hsl(210, 98%, 93%);

    --breakpoint-color: hsl(211, 100%, 50%);
    --breakpoint-color-disabled: hsl(211, 82%, 82%);

    --glyph-color: hsl(0, 0%, 30%);
    --glyph-color-pressed: hsl(0, 0%, 15%);
    --glyph-color-disabled: hsla(0, 0%, 30%, 0.55);
    --glyph-color-active: hsl(212, 92%, 54%);
    --glyph-color-active-pressed: hsl(218, 85%, 52%);
    --glyph-opacity: 1;

    --border-color: hsl(0, 0%, 70%);
    --border-color-dark: hsl(0, 0%, 57%);

    --button-background-color: white;
    --button-background-color-hover: hsl(0, 0%, 88%);
    --button-background-color-pressed: hsl(0, 0%, 85%);

    --panel-background-color: hsl(0, 0%, 93%);
    --panel-background-color-light: hsl(0, 0%, 96%);

    --warning-background-color: hsl(43, 97%, 84%);
    --warning-background-color-secondary: hsl(51, 87%, 93%);
    --error-background-color: hsl(11, 100%, 80%);
    --error-background-color-secondary: hsl(15, 100%, 90%);

    --console-secondary-text-color: hsla(0, 0%, 0%, 0.33);
    --console-prompt-min-height: 30px;

    --message-text-view-font-size: 16px;
    --message-text-view-large-font-size: 28px;

    --text-color-gray-dark: hsl(0, 0%, 20%);
    --text-color-gray-medium: hsl(0, 0%, 52%);
    --error-text-color: hsl(0, 86%, 47%);

    --value-changed-highlight: hsla(83, 100%, 48%, 0.4);

    --syntax-highlight-number-color: hsl(248, 100%, 40%);
    --syntax-highlight-boolean-color: hsl(309, 85%, 35%);
    --syntax-highlight-string-color: hsl(1, 79%, 42%);
    --syntax-highlight-link-color: hsl(240, 100%, 52%);
    --syntax-highlight-regexp-color: hsl(20, 100%, 44%);
    --syntax-highlight-symbol-color: hsl(172, 45%, 45%);
    --syntax-highlight-comment-color: hsl(119, 100%, 22%);

    --syntax-highlight-regex-group-color: var(--text-color-gray-medium);

    --timeline-marker-z-index: 4;
    --timeline-record-z-index: 8;
    --timeline-selection-z-index: 16;

    --timeline-odd-background-color: var(--background-color-content);
    --timeline-even-background-color: hsl(0, 0%, 96%);

    --timeline-scanner-color: hsl(0, 0%, 35%);

    --memory-javascript-fill-color: hsl(269, 65%, 75%);
    --memory-javascript-stroke-color: hsl(269, 33%, 50%);
    --memory-images-fill-color: hsl(0, 65%, 75%);
    --memory-images-stroke-color: hsl(0, 54%, 50%);
    --memory-layers-fill-color: hsl(76, 49%, 75%);
    --memory-layers-stroke-color: hsl(79, 45%, 50%);
    --memory-page-fill-color: hsl(22, 60%, 70%);
    --memory-page-stroke-color: hsl(22, 40%, 50%);
    --memory-max-comparison-fill-color: hsl(220, 10%, 75%);
    --memory-max-comparison-stroke-color: hsl(220, 10%, 55%);

    --cpu-other-thread-fill-color: hsl(81, 80%, 50%);
    --cpu-other-thread-stroke-color: hsl(81, 80%, 30%);
    --cpu-main-thread-fill-color: hsl(118, 43%, 55%);
    --cpu-main-thread-stroke-color: hsl(118, 33%, 42%);
    --cpu-worker-thread-fill-color: hsl(59, 79%, 62%);
    --cpu-worker-thread-stroke-color: hsl(59, 79%, 37%);
    --cpu-overlay-color: var(--cpu-main-thread-stroke-color);

    --cpu-script-fill-color: hsl(269, 65%, 75%);
    --cpu-script-stroke-color: hsl(269, 33%, 50%);
    --cpu-style-fill-color: hsl(22, 60%, 70%);
    --cpu-style-stroke-color: hsl(22, 40%, 50%);
    --cpu-layout-fill-color: hsl(0, 65%, 75%);
    --cpu-layout-stroke-color: hsl(0, 54%, 50%);
    --cpu-paint-fill-color: hsl(76, 49%, 75%);
    --cpu-paint-stroke-color: hsl(79, 45%, 50%);

    --cpu-low-color: hsl(110, 52%, 56%);
    --cpu-medium-color: hsl(46, 91%, 62%);
    --cpu-high-color: hsl(6, 79%, 57%);

    --network-header-color: hsl(204, 52%, 55%);
    --network-system-color: hsl(79, 32%, 50%);
    --network-pseudo-header-color: hsl(312, 35%, 51%);
    --network-error-color: hsl(0, 54%, 50%);

    --network-redirect-color: lightgrey;
    --network-queue-color: hsl(0, 0%, 54%);
    --network-dns-color: hsl(265, 82%, 60%);
    --network-connect-color: hsl(46, 92%, 62%);
    --network-secure-color: hsl(352, 81%, 59%);
    --network-request-color: hsl(118, 56%, 65%);
    --network-response-color: hsl(202, 61%, 59%);

    --even-zebra-stripe-row-background-color: white;
    --odd-zebra-stripe-row-background-color: hsl(0, 0%, 95%);
    --transparent-stripe-background-gradient: linear-gradient(to bottom, transparent, transparent 50%, hsla(0, 0%, 0%, 0.03) 50%, hsla(0, 0%, 0%, 0.03)) top left / 100% 40px;

    --toolbar-height: 36px;
    --tab-bar-height: 24px;
    --navigation-bar-height: 29px;

    --slider-height: 11px;

    --css-declaration-vertical-padding: 4px;
    --css-declaration-horizontal-padding: 6px;

    --diff-addition-text-color: hsl(90, 61%, 25%);
    --diff-addition-background-color: hsl(70, 90%, 86%);
    --diff-deletion-text-color: hsl(0, 100%, 35%);
    --diff-deletion-background-color: hsl(5, 100%, 94%);
    --diff-addition-border-color: hsl(90, 100%, 40%);
}

body.window-inactive {
    /* FIXME: Use CSS4 color blend functions once they're available. */
    --selected-background-color: hsla(212, 92%, 54%, 0.5);

    --glyph-color: hsla(0, 0%, 30%, 0.65);
    --glyph-color-disabled: hsla(0, 0%, 30%, 0.35);
    --glyph-opacity: 0.6;
}

body.window-inactive * {
    --border-color: hsl(0, 0%, 85%);
    --border-color-dark: hsl(0, 0%, 72%);
}

@media (prefers-color-scheme: dark) {

    :root {
        color: var(--text-color);

        --foreground-lightness: 100%;

        --text-color: hsl(0, 0%, 88%);
        --text-color-active: white;
        --text-color-secondary: hsl(0, 0%, 65%);

        /* Disabled text/glyphs */
        --text-color-tertiary: hsl(0, 0%, 50%);

        /* Dividers, separators, background fills */
        --text-color-quaternary: hsl(0, 0%, 33%);

        /* Deprecated */
        --text-color-gray-dark: hsl(0, 0%, 75%);
        --text-color-gray-medium: var(--text-color-secondary);

        --background-color: hsl(0, 0%, 24%);
        --background-color-secondary: hsl(0, 0%, 27%);
        --background-color-tertiary: hsl(0, 0%, 31%);

        --background-color-content: hsl(0, 0%, 21%);
        --background-color-code: hsl(0, 0%, 21%);

        --gray-background-color: hsl(0, 0%, 50%);
        --gray-foreground-color: hsl(0, 0%, 33%);

        --link-text-color: var(--text-color-secondary);

        --background-color-alternate: hsla(0, 0%, var(--foreground-lightness), 0.05);
        --background-color-selected: hsla(0, 0%, var(--foreground-lightness), 0.1);

        --color-button: hsl(0, 0%, 99%);
        --color-button-active: var(--text-color-active);

        --selected-foreground-color: var(--text-color-active);
        --selected-secondary-text-color: hsla(0, 0%, var(--foreground-lightness), 0.7);
        --selected-secondary-text-color-active: hsla(0, 0%, var(--foreground-lightness), 0.85);
        --selected-background-color: hsl(219, 80%, 43%);
        --selected-background-color-unfocused: hsla(0, 0%, var(--foreground-lightness), 0.15);
        --selected-background-color-active: hsl(218, 85%, 62%);
        --selected-background-color-hover: hsla(212, 92%, 54%, 0.5);
        --selected-background-color-highlight: hsla(0, 0%, 100%, 0.3);
        --selected-text-background-color: hsl(230, 51%, 36%);

        --glyph-color: hsl(0, 0%, 80%);
        --glyph-color-pressed: hsl(0, 0%, 100%);
        --glyph-color-disabled: hsla(0, 0%, 80%, 0.4);
        --glyph-color-active: hsl(212, 100%, 71%);
        --glyph-color-active-pressed: hsl(212, 92%, 74%);
        --glyph-color-inactive: hsl(0, 0%, 36%);

        --border-color: hsl(0, 0%, 33%);
        --border-color-dark: hsl(0, 0%, 37%); /* non-semantic variable names */

        --border-color-secondary: hsl(0, 0%, 27%);

        --button-background-color: hsl(0, 0%, 43%);
        --button-background-color-hover: var(--button-background-color);
        --button-background-color-pressed: hsl(0, 0%, 55%);
        --button-background-color-inactive: hsl(0, 0%, 28%);

        --dashboard-background-color: hsl(0, 0%, 36%);

        --panel-background-color: hsl(0, 0%, 24%);
        --panel-background-color-light: hsl(0, 0%, 29%);

        --error-text-color: hsl(0, 86%, 65%);

        --green-highlight-background-color: hsl(120, 15%, 28%);
        --green-highlight-text-color: hsl(80, 75%, 80%);

        --yellow-highlight-background-color: hsl(13, 20%, 26%);
        --yellow-highlight-text-color: hsl(50, 96%, 87%);

        --value-changed-highlight: var(--green-highlight-background-color);
        --value-visual-highlight: var(--yellow-highlight-background-color);

        --syntax-highlight-number-color: hsl(276, 100%, 85%);
        --syntax-highlight-boolean-color: hsl(299, 71%, 80%);
        --syntax-highlight-string-color: hsl(28, 84%, 63%);
        --syntax-highlight-link-color: hsl(223, 100%, 77%);
        --syntax-highlight-regexp-color: hsl(20, 100%, 64%);
        --syntax-highlight-symbol-color: hsl(172, 45%, 65%);
        --syntax-highlight-comment-color: hsl(119, 40%, 72%);
        --syntax-highlight-regex-group-color: var(--text-color-gray-medium);

        --console-secondary-text-color: hsla(0, 0%, 100%, 0.45);

        --warning-background-color: hsl(43, 100%, 23%);
        --warning-background-color-secondary: hsl(21, 18%, 25%);
        --error-background-color: hsl(11, 70%, 32%);
        --error-background-color-secondary: hsl(6, 23%, 25%);

        --memory-max-comparison-fill-color: hsl(225, 5%, 45%);
        --memory-max-comparison-stroke-color: hsl(225, 5%, 65%);

        --network-header-color: hsl(204, 52%, 55%);
        --network-system-color: hsl(79, 95%, 50%);
        --network-pseudo-header-color: hsl(312, 55%, 61%);
        --network-error-color: hsl(0, 54%, 55%);

        --cpu-overlay-color: hsl(35, 88%, 45%);

        --cpu-low-color: hsl(110, 52%, 56%);
        --cpu-medium-color: hsl(46, 91%, 62%);
        --cpu-high-color: hsl(6, 79%, 57%);

        --even-zebra-stripe-row-background-color: var(--background-color);
        --odd-zebra-stripe-row-background-color: var(--background-color-secondary);
        --transparent-stripe-background-gradient: linear-gradient(to bottom, transparent, transparent 50%, hsla(0, 0%, 100%, 0.03) 50%, hsla(0, 0%, 100%, 0.03)) top left / 100% 40px;

        --search-highlight-text-color: hsl(60, 100%, 50%);
        --search-highlight-text-color-active: hsl(0, 0%, 0%);
        --search-highlight-background-color: hsla(53, 83%, 53%, 0.2);
        --search-highlight-background-color-active: hsl(60, 100%, 50%);
        --search-highlight-underline-color: hsla(60, 100%, 50%, 0.5);

        --timeline-even-background-color: hsl(0, 0%, 25%);

        --timeline-scanner-color: hsl(0, 0%, 80%);

        /* Invert colors yet preserve the hue */
        --filter-invert: invert(100%) hue-rotate(180deg);

        /* TODO: Use the same variable for the default theme */
        --overlay-background: hsla(0, 0%, 24%, 0.9);

        --console-message-separator: var(--text-color-quaternary);

        --diff-addition-text-color: hsl(70, 64%, 70%);
        --diff-addition-background-color: hsl(90, 40%, 19%);
        --diff-deletion-text-color: hsl(0, 84%, 75%);
        --diff-deletion-background-color: hsl(5, 40%, 28%);
    }

    body.window-inactive {
        --selected-background-color: hsla(212, 92%, 64%, 0.5);

        --glyph-color: hsl(0, 0%, 52%);
        --glyph-color-disabled: hsla(0, 0%, 52%, 0.4);
    }

    body.window-inactive * {
        /* These properties are duplicated so that they have higher specificity than WebKit's stylesheet.
        Otherwise, the variable definition inside 'body.window-inactive *' in OpenSource overrides with a lighter color.
        When merging to open source, we should guard the existing .window-inactive style with
        '@media not all' to avoid applying the definition too broadly. */
        --border-color: hsl(0, 0%, 33%);
        --border-color-dark: hsl(0, 0%, 37%); /* non-semantic variable names */
    }
}

body.mac-platform:not(.sierra, .high-sierra) {
    --selected-foreground-color: -apple-system-alternate-selected-text;
    --selected-background-color: -apple-system-selected-content-background;
    --selected-text-background-color: -apple-system-selected-text-background;

    --breakpoint-color: -apple-system-control-accent;
    --breakpoint-color-disabled: -apple-system-selected-text-background;

    --glyph-color-active: -apple-system-control-accent;
    --glyph-color-active-pressed: -apple-system-control-accent;
}
