/*
 * Copyright 2015 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

* {
    /* This is required for correct sizing of flex items because we rely
     * on an old version of the flexbox spec.
     * Longer-term we should remove this, see crbug.com/473625 */
    min-width: 0;
    min-height: 0;
}

:host-context(.platform-mac) .monospace,
:host-context(.platform-mac) .source-code,
.platform-mac .monospace,
.platform-mac .source-code {
    font-size: 11px !important;
    font-family: Menlo, monospace;
}

:host-context(.platform-windows) .monospace,
:host-context(.platform-windows) .source-code,
.platform-windows .monospace,
.platform-windows .source-code {
    font-size: 12px !important;
    font-family: Consolas, Lucida Console, Courier New, monospace;
}

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

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

* {
    box-sizing: border-box;
}

:focus {
    outline-width: 0;
}

input[type=radio]:focus {
    outline: auto 5px -webkit-focus-ring-color;
}

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

iframe,
a img {
    border: none;
}

.fill {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

iframe.fill {
    width: 100%;
    height: 100%;
}

.widget {
    position: relative;
    flex: auto;
    contain: style;
}

.hbox {
    display: flex;
    flex-direction: row !important;
    position: relative;
}

.vbox {
    display: flex;
    flex-direction: column !important;
    position: relative;
}

.view-container > .toolbar {
    border-bottom: 1px solid #eee;
}

.flex-auto {
    flex: auto;
}

.flex-none {
    flex: none;
}

.flex-centered {
    display: flex;
    align-items: center;
    justify-content: center;
}

.overflow-auto {
    overflow: auto;
}

iframe.widget {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

.hidden {
    display: none !important;
}

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

.highlighted-search-result {
    border-radius: 1px;
    background-color: rgba(255, 255, 0, 0.8);
    outline: 1px solid rgba(255, 255, 0, 0.8);
}

.-theme-with-dark-background .highlighted-search-result,
:host-context(.-theme-with-dark-background) .highlighted-search-result {
    background-color: hsl(133, 100%, 30%);
    color: #333;
}

.link {
    cursor: pointer;
    text-decoration: underline;
    color: rgb(17, 85, 204);
}

button,
input,
select {
    /* Form elements do not automatically inherit font style from ancestors. */
    font-family: inherit;
    font-size: inherit;
}

input {
    background-color: white;
    color: inherit;
}

input::placeholder {
    color: rgba(0, 0, 0, 0.54);
}

:host-context(.-theme-with-dark-background) input[type="checkbox"]:not(.-theme-preserve) {
    -webkit-filter: invert(80%);
}

.harmony-input:not([type]),
.harmony-input[type=number],
.harmony-input[type=text] {
    padding: 3px 6px;
    height: 24px;
    border: none;
}

.harmony-input:not([type]):not(.error-input):not(:invalid):hover,
.harmony-input[type=number]:not(.error-input):not(:invalid):hover,
.harmony-input[type=text]:not(.error-input):not(:invalid):hover {
    box-shadow: var(--focus-ring-inactive-shadow);
}

.harmony-input:not([type]):not(.error-input):not(:invalid):focus,
.harmony-input[type=number]:not(.error-input):not(:invalid):focus,
.harmony-input[type=text]:not(.error-input):not(:invalid):focus {
    box-shadow: var(--focus-ring-active-shadow);
}

.highlighted-search-result.current-search-result {
    border-radius: 1px;
    padding: 1px;
    margin: -1px;
    background-color: rgba(255, 127, 0, 0.8);
}

.dimmed {
    opacity: 0.6;
}

.editing {
    box-shadow: var(--drop-shadow);
    background-color: white;
    text-overflow: clip !important;
    padding-left: 2px;
    margin-left: -2px;
    padding-right: 2px;
    margin-right: -2px;
    margin-bottom: -1px;
    padding-bottom: 1px;
    opacity: 1.0 !important;
}

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

.harmony-input:not([type]).error-input,
.harmony-input[type=number].error-input,
.harmony-input[type=text].error-input,
.harmony-input:not([type]):invalid,
.harmony-input[type=number]:invalid,
.harmony-input[type=text]:invalid {
    box-shadow: 0 0 0 1px #ff1a00;
}

.chrome-select {
    -webkit-appearance: none;
    -webkit-user-select: none;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 2px;
    color: #333;
    font: inherit;
    margin: 0;
    outline: none;
    padding-right: 20px;
    padding-left: 6px;
    background-image: -webkit-image-set(url(Images/chromeSelect.png) 1x, url(Images/chromeSelect_2x.png) 2x);
    background-color: hsl(0, 0%, 98%);
    background-position: right center;
    background-repeat: no-repeat;
    min-height: 24px;
    min-width: 80px;
    background-size: 15px;
}

.chrome-select:enabled:active,
.chrome-select:enabled:focus,
.chrome-select:enabled:hover {
    background-color: hsl(0, 0%, 96%);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.chrome-select:enabled:active {
    background-color: #f2f2f2;
}

.chrome-select:enabled:focus {
    border-color: transparent;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(66, 133, 244, 0.4);
}

.chrome-select:disabled {
    opacity: 0.38;
}

.chrome-select-label {
  margin: 0px 22px;
  flex: none;
}

.chrome-select-label p {
  margin-top: 0;
  color: gray;
}

.chrome-select optgroup,
.chrome-select option {
    background-color: #EEEEEE;
    color: #222;
}

:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar,
:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar {
    width: 14px;
    height: 14px;
}

:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar-track,
:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 1px rgba(255,255,255,0.3);
}

:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar-thumb,
:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar-thumb {
    border-radius: 2px;
    background-color: #333;
    -webkit-box-shadow: inset 0 0 1px rgba(255,255,255,0.5);
}

:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar-corner,
:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar-corner {
    background-color: #242424;
}

.gray-info-message {
    text-align: center;
    font-style: italic;
    padding: 6px;
    color: #888;
    white-space: nowrap;
}

span[is=dt-icon-label] {
    flex: none;
}

.full-widget-dimmed-banner a {
    color: inherit;
}

.full-widget-dimmed-banner {
    color: #777;
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    font-size: 13px;
    overflow: auto;
    z-index: 500;
}

[is=ui-icon] {
    display: inline-block;
    flex-shrink: 0;
}

.-theme-with-dark-background [is=ui-icon].icon-invert,
:host-context(.-theme-with-dark-background) [is=ui-icon].icon-invert {
    filter: invert(80%) hue-rotate(180deg);
}

[is=ui-icon].icon-mask {
    background-color: rgb(110, 110, 110);
    -webkit-mask-position: var(--spritesheet-position);
}

[is=ui-icon]:not(.icon-mask) {
    background-position: var(--spritesheet-position);
}

.spritesheet-smallicons:not(.icon-mask) {
    background-image: url(Images/smallIcons.svg);
}

.spritesheet-smallicons.icon-mask {
    -webkit-mask-image: url(Images/smallIcons.svg);
}

.spritesheet-largeicons:not(.icon-mask) {
    background-image: url(Images/largeIcons.svg);
}

.spritesheet-largeicons.icon-mask {
    -webkit-mask-image: url(Images/largeIcons.svg);
}

.spritesheet-mediumicons:not(.icon-mask) {
    background-image: url(Images/mediumIcons.svg);
}

.spritesheet-mediumicons.icon-mask {
    -webkit-mask-image: url(Images/mediumIcons.svg);
}

.spritesheet-arrowicons {
    background-image: url(Images/popoverArrows.png);
}

:host-context(.force-white-icons) [is=ui-icon].spritesheet-smallicons, .force-white-icons [is=ui-icon].spritesheet-smallicons, [is=ui-icon].force-white-icons.spritesheet-smallicons, -theme-preserve {
    -webkit-mask-image: url(Images/smallIcons.svg);
    -webkit-mask-position: var(--spritesheet-position);
    background: #fafafa !important;
}

:host-context(.force-white-icons) [is=ui-icon].spritesheet-largeicons, .force-white-icons [is=ui-icon].spritesheet-largeicons, [is=ui-icon].force-white-icons.spritesheet-largeicons, -theme-preserve {
    -webkit-mask-image: url(Images/largeIcons.svg);
    -webkit-mask-position: var(--spritesheet-position);
    background: #fafafa !important;
}

:host-context(.force-white-icons) [is=ui-icon].spritesheet-mediumicon, .force-white-icons [is=ui-icon].spritesheet-mediumicons, [is=ui-icon].force-white-icons.spritesheet-mediumicons, -theme-preserve {
    -webkit-mask-image: url(Images/mediumIcons.svg);
    -webkit-mask-position: var(--spritesheet-position);
    background: #fafafa !important;
}

.expandable-inline-button {
    background-color: #dedede;
    color: #333;
    cursor: pointer;
    border-radius: 3px;
}

.undisplayable-text,
.expandable-inline-button {
    padding: 2px 4px;
    margin: 0 2px;
    font-size: 12px;
    font-family: sans-serif;
    white-space: nowrap;
    display: inline-block;
}

.undisplayable-text::after,
.expandable-inline-button::after {
    content: attr(data-text);
}

.undisplayable-text {
    color: rgb(128, 128, 128);
    font-style: italic;
}

.expandable-inline-button:hover {
    background-color: #d5d5d5;
}

.expandable-inline-button[data-keyboard-focus="true"] {
    background-color: #bbbbbb;
}

::selection {
    background-color: #bbdefb;
}

.-theme-with-dark-background *::selection,
:host-context(.-theme-with-dark-background) *::selection {
    background-color: #9e9e9e;
}

button.link {
    border: none;
    background: none;
    padding: 3px;
}

button.link[data-keyboard-focus="true"]:focus {
    background-color: rgba(0, 0, 0, 0.08);
    border-radius: 2px;
}

/* See ARIAUtils.js */
[data-aria-utils-animation-hack] {
    animation: ANIMATION-HACK 0s;
}
@keyframes ANIMATION-HACK {
}
