/*
 * Copyright (C) 2013 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.
 */

.find-banner {
    border-bottom: 1px solid var(--border-color);

    position: absolute;
    top: -22px;
    left: 0;
    right: 0;
    height: 22px;

    text-align: right;

    white-space: nowrap;
    overflow: hidden;

    transition-property: top;
    transition-duration: 200ms;
    transition-timing-function: ease-in;

    z-index: var(--z-index-header);

    --find-banner-outer-child-margin: 8px;
}

.find-banner.showing {
    top: 0;
    transition-timing-function: ease-out;
}

.no-find-banner-transition:matches(.find-banner, .supports-find-banner) {
    transition-duration: 0 !important;
}

.supports-find-banner {
    transition-property: top;
    transition-duration: 200ms;
    transition-timing-function: ease-in;
}

.supports-find-banner.showing-find-banner {
    top: 22px !important;
    transition-timing-function: ease-out;
}

.find-banner > :first-child {
    -webkit-margin-start: var(--find-banner-outer-child-margin) !important;
}

.find-banner > :last-child {
    -webkit-margin-end: var(--find-banner-outer-child-margin) !important;
}

.find-banner > input[type="search"] {
    width: 30vw;
    min-width: 143px;
    max-width: 210px;
    height: 19px;
    margin-top: 1px;
    margin-bottom: 1px;
    -webkit-margin-start: 6px;
    -webkit-margin-end: -1px;
    vertical-align: top;
    background-color: white;
    border: 1px solid var(--border-color);
    outline: none;
    -webkit-appearance: none;

    --find-banner-search-box-border-radius-start: 4px;
    --find-banner-search-box-border-radius-end: 0;
}

body[dir=ltr] .find-banner > input[type="search"] {
    border-top-left-radius: var(--find-banner-search-box-border-radius-start);
    border-bottom-left-radius: var(--find-banner-search-box-border-radius-start);
    border-top-right-radius: var(--find-banner-search-box-border-radius-end);
    border-bottom-right-radius: var(--find-banner-search-box-border-radius-end);
}

body[dir=rtl] .find-banner > input[type="search"] {
    border-top-left-radius: var(--find-banner-search-box-border-radius-end);
    border-bottom-left-radius: var(--find-banner-search-box-border-radius-end);
    border-top-right-radius: var(--find-banner-search-box-border-radius-start);
    border-bottom-right-radius: var(--find-banner-search-box-border-radius-start);
}

.find-banner > button {
    margin: 1px 4px;

    padding-left: 6px;
    padding-right: 6px;

    -webkit-appearance: none;

    border-radius: 4px;
    border: 1px solid var(--border-color);
    color: var(--glyph-color);
    background-color: var(--button-background-color);

    line-height: 11px;

    height: 19px;

    text-align: center;
    vertical-align: top;

    outline-offset: -2px;
}

.find-banner > button > .glyph {
    display: inline-block;

    width: 7px;
    height: 11px;
}

.find-banner > button:disabled > .glyph {
    opacity: 0.4;
}

.find-banner > button:active:not(:disabled) {
    border: 1px solid var(--border-color);
    background-color: var(--button-background-color-pressed);
}

.find-banner > button.segmented {
    margin: 1px 0;

    --find-banner-previous-result-border-end: solid 1px var(--border-color);
}

.find-banner > button.segmented.previous-result {
    border-radius: 0;
}

body[dir=ltr] .find-banner > button.segmented.previous-result {
    border-right: var(--find-banner-previous-result-border-end);
}

body[dir=rtl] .find-banner > button.segmented.previous-result {
    border-left: var(--find-banner-previous-result-border-end);
}

body[dir=ltr] .find-banner > button.segmented.previous-result > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#left-arrow-normal);
}

body[dir=rtl] .find-banner > button.segmented.previous-result > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#right-arrow-normal);
}

body[dir=ltr] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#left-arrow-active);
}

body[dir=rtl] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#right-arrow-active);
}

.find-banner > button.segmented.next-result {
    --next-result-border-style-start: none;
    --next-result-border-radius-start: 0;
}

body[dir=ltr] .find-banner > button.segmented.next-result {
    border-top-left-radius: var(--next-result-border-radius-start);
    border-bottom-left-radius: var(--next-result-border-radius-start);
    border-left: var(--next-result-border-style-start);
}

body[dir=rtl] .find-banner > button.segmented.next-result {
    border-top-right-radius: var(--next-result-border-radius-start);
    border-bottom-right-radius: var(--next-result-border-radius-start);
    border-right: var(--next-result-border-style-start);
}

.find-banner > button.segmented.next-result > .glyph {
    -webkit-margin-start: 1px;
}

body[dir=ltr] .find-banner > button.segmented.next-result > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#right-arrow-normal);
}

body[dir=rtl] .find-banner > button.segmented.next-result > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#left-arrow-normal);
}

body[dir=ltr] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#right-arrow-active);
}

body[dir=rtl] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph {
    background-image: url(../Images/BackForwardArrows.svg#left-arrow-active);
}

.find-banner > button.segmented {
    min-width: 22px;
    padding: 3px 6px 2px;
}

.find-banner > button.segmented > .glyph {
    background-size: 7px 11px;
    background-repeat: no-repeat;
}

.find-banner > label {
    margin: 0 6px;
    line-height: 21px;
}

.find-banner.console-find-banner {
    position: relative;
    top: auto;
    border: 0;
}

body .find-banner.console-find-banner {
    flex-wrap: nowrap;
}

.find-banner.console-find-banner > input[type="search"] {
    padding-top: 0;
    outline: none;
    border: 1px solid var(--border-color);
    background-color: hsla(0, 0%, 100%, 0.2);
    background-clip: padding-box;

    --console-find-banner-search-box-border-radius-start: 3px;
    --console-find-banner-search-box-border-radius-end: 0;
}

body[dir=ltr] .find-banner.console-find-banner > input[type="search"] {
    border-top-left-radius: var(--console-find-banner-search-box-border-radius-start);
    border-bottom-left-radius: var(--console-find-banner-search-box-border-radius-start);
    border-top-right-radius: var(--console-find-banner-search-box-border-radius-end);
    border-bottom-right-radius: var(--console-find-banner-search-box-border-radius-end);
}

body[dir=rtl] .find-banner.console-find-banner > input[type="search"] {
    border-top-left-radius: var(--console-find-banner-search-box-border-radius-end);
    border-bottom-left-radius: var(--console-find-banner-search-box-border-radius-end);
    border-top-right-radius: var(--console-find-banner-search-box-border-radius-start);
    border-bottom-right-radius: var(--console-find-banner-search-box-border-radius-start);
}

.find-banner.console-find-banner > :matches(input[type="search"], button) {
    height: 22px;
}

.find-banner.console-find-banner > input[type="search"]::placeholder {
    color: hsla(0, 0%, 0%, 0.35);
}

.find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container {
    -webkit-margin-start: 4px;
}

.find-banner.console-find-banner > input[type="search"]:focus {
    background-color: white;
}

/* Make the search field's background white when it is not focused and has content.
   Needs to be a separate rule. See http://webkit.org/b/118162 */
.find-banner.console-find-banner > input[type="search"]:not(:placeholder-shown) {
    background-color: white;
}

@media (prefers-color-scheme: dark) {
    .find-banner > button.segmented {
        background: transparent !important;
    }

    .find-banner > button.segmented > .glyph {
        filter: invert();
    }

    .find-banner > input[type="search"] {
        background-color: var(--background-color-alternate);
        border-color: var(--background-color-selected);
    }

    .find-banner.console-find-banner > input[type=search]:not(:placeholder-shown) {
        color: unset;
        background-color: unset;
    }
}
