/*
 * GNU AGPL-3.0 License
 *
 * Copyright (c) 2021 - present core.ai . All rights reserved.
 * Original work Copyright (c) 2012 - 2021 Adobe Systems Incorporated. All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see https://opensource.org/licenses/AGPL-3.0.
 *
 */

/*
 * This file first imports all of the shared LESS/CSS, and then defines
 * version-specific layout (e.g. layout for the App shell, or layout for
 * the In-Browser version on Firefox).
 *
 * Going forward, we may have different versions of this file for different
 * Versions (e.g. App, In-Browser, etc.)
 *
 * Anything that is general/reusable should be pushed up into a LESS file
 * in the "styles" directory. See "brackets_shared.less" for the organization
 *
 * Date: @DATE
 */

/* IMPORTANT: importing brackets_shared should be the first step in this file
 * This is so that imported CSS files (NOT LESS files) end up in the
 * right place
 */
@import "brackets_shared.less";
// Integrated extensions import
@import "Extn-NavigationAndHistory.less";
@import "Extn-RecentProjects.less";
@import "Extn-TabBar.less";
@import "Extn-DisplayShortcuts.less";
@import "Extn-CSSColorPreview.less";
@import "Extn-CustomSnippets.less";
@import "Extn-CollapseFolders.less";
@import "Extn-SidebarTabs.less";
@import "Extn-BottomPanelTabs.less";
@import "Extn-AIChatPanel.less";
@import "CentralControlBar.less";
@import "Extn-Terminal.less";
@import "UserProfile.less";
@import "phoenix-pro.less";

/* Overall layout */

html, body {
    color: @bc-text;
    height: 100%;
    overflow: hidden;
    font-size: 14px;

    /* Turn off selection for UI elements */
    .user-select(none);

    /* And make sure we get a pointer cursor even over text */
    cursor: default;

    &.platform-mac {
        // Use gray scale antialiasing for UI. Code view editor-holder
        // overrides this to use subpixel antialiasing on Mac, which then
        // can be overridden by setting "fontSmoothing" preference to
        // "antialiased". Gray scale AA is used for UI parts which use
        // SourceSansPro font, which does't look good with subpixel AA,
        // especially on low resolution monitors.
        -webkit-font-smoothing: antialiased;
    }

    .dark,
    &.dark {
         color: @dark-bc-text;
    }
}

#phcode-io-main-nav{
    color: @dark-bc-text-link;
}

#phcode-io-main-nav.phoenix-pro{
  background: @phoenix-pro-gradient-dark;
  background-clip: text;
  -webkit-background-clip: text; /* Chrome, Safari */
  color: transparent;            /* works in Firefox */
  -webkit-text-fill-color: transparent; /* Chrome, Safari */
  display: inline-block;
}

#ctrl-nav-overlay {
    position: absolute;
    display: flex; /* Enable flexbox */
    flex-direction: column; /* Stack children vertically */
    justify-content: center; /* Center children vertically */
    align-items: center; /* Center children horizontally */
    width: 100%; /* Full width of the container */
    height: 100vh; /* Full height of the viewport */
    top: 0; /* Align to top edge */
    left: 0; /* Align to left edge */
    color: @overlay-text;
    .dark &{
        color: @dark-overlay-text;
    }
    text-align: center; /* Align text centrally */
    padding: 20px; /* Padding around the content */
    box-sizing: border-box; /* Include padding in width/height calculations */
    z-index: @z-index-brackets-topmost-overlay;
}

.arrowDivs {
    /* Flex container for the icon - though not necessary if only one icon */
    display: flex;
    justify-content: center; /* Center the icon horizontally */
    align-items: center; /* Center the icon vertically */
}

/* Style for the Font Awesome icon */
.arrowDivs > .fa-solid {
    font-size: xxx-large;
    margin-bottom: 20px; /* Space between the icon and the text */
}

/* Style for the instruction text */
.instruction-text {
    font-size: 14px; /* Font size for the instruction text */
    max-width: 80%; /* Max width of the text to maintain readability */
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.hide-cursor {
    cursor: none !important;
    .CodeMirror .CodeMirror-sizer {
        cursor: none !important;
    }
}

.code-inspection-item {
    text-align: left;
}

.editor-text-fragment-hover{
    text-decoration-style: solid;
    text-decoration-line: underline;
    color: @bc-text-link !important;
    text-decoration-color: @bc-text-link;
    text-decoration-thickness: 2px;
    text-decoration-skip-ink: none;
    pointer-events: auto;
    cursor: pointer;
}

.editor-text-fragment-matching-refs{
    background-color: @matching-bracket;
}

.editor-text-tag-sync-underline {
    text-decoration-style: double;
    text-decoration-line: underline;
    text-decoration-skip-ink: none;
    text-decoration-thickness: 1px;
    text-underline-offset: 1px;
    text-decoration-color: @bc-primary-btn-border;
}

.editor-text-rename-outline{
    border-top: 1px @bc-primary-btn-border solid;
    border-bottom: 1px @bc-primary-btn-border solid;
}
.editor-text-rename-outline-left {
    box-shadow: inset 1px 0 0 0 @bc-primary-btn-border; /* Left shadow */
}
.editor-text-rename-outline-right {
    box-shadow: inset -1px 0 0 0 @bc-primary-btn-border; /* right shadow */
}
.editor-text-rename-outline-left.editor-text-rename-outline-right {
    box-shadow: inset 1px 0 0 0 @bc-primary-btn-border, inset -1px 0 0 0 @bc-primary-btn-border; /* Left, right shadow */
}

// error class has highest visual precedence, followed by warning, spell error and info.
// .error.error: This selector has 4x the class name, which increases its specificity compared to single class
// selectors like .warning or .info. Even if error, warning, and info are used on the same div in any order,
// the style for .error.error will take precedence due to its higher specificity.
.editor-text-fragment-error.editor-text-fragment-error.editor-text-fragment-error.editor-text-fragment-error{
    padding-bottom: 1px;
    background: url('images/wavy-error.svg') repeat-x bottom left;
}

.editor-text-fragment-warn.editor-text-fragment-warn.editor-text-fragment-warn {
    padding-bottom: 1px;
    background: url('images/wavy-warn.svg') repeat-x bottom left;
    .dark &{
        background: url('images/wavy-warn-dark.svg') repeat-x bottom left;
    }
}

.editor-text-fragment-spell-error.editor-text-fragment-spell-error {
    padding-bottom: 1px;
    background: url('images/wavy-spell-error.svg') repeat-x bottom left;
}

.editor-text-fragment-info {
    padding-bottom: 1px;
    background: url('images/wavy-info.svg') repeat-x bottom left;
}

.hidden-element{
    display: none !important;
}

.resizing-container {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: @z-index-brackets-panel-resizer;

    &.horz-resizing {
        cursor: col-resize;
    }

    &.vert-resizing {
        cursor: row-resize;
    }
}

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

.main-view {
    background: @bc-menu-bg; // to keep the theme background consistent
    height: 100%;

    .dark & {
        background: @dark-bc-menu-bg;
    }

    #notificationUIDefaultAnchor{
        position: absolute;
        right: @main-toolbar-width;
    }

    .sidebar, .content {
        height: 100%;
        position: absolute;
        top: 0;
    }

    .sidebar {
        .vbox;
        left: 0;
        width: @sidebar-width;  // changed dynamically via Resizer
        white-space: nowrap;
    }

    .content {
        padding: 0;
        left: (@sidebar-width + 30px);  // changed dynamically via Resizer + CentralControlBar
        right: @main-toolbar-width;
        z-index: @z-index-brackets-main-content;
        border-left: 2px solid rgba(255, 255, 255, 0.10);
        border-right: 2px solid rgba(255, 255, 255, 0.10);
    }

    .force-right-zero {
        right: 0;
    }
}

#titlebar, .modal-bar {
    border-bottom: 1px solid @bc-panel-border;
    box-shadow: 0 1px 3px @bc-shadow-small;
    font-size: @menu-item-font-size;
    border-top: 1px solid @border-title-bar;
    .dark & {
        border-top: none;
    }

    // Make sure the bottom box-shadow goes above the editor (position: relative needed to start a new stacking group)
    position: relative;
    z-index: @z-index-brackets-toolbar;

    .dark & {
        border-bottom: 1px solid @dark-bc-shadow;
        box-shadow: 0 1px 3px @dark-bc-shadow-small;
    }
}

.forced-inVisible {
    visibility: hidden !important;
}

.busyCursor {
    cursor: wait !important;
}

#status-bar {
    position: relative;
    background: @bc-bg-status-bar;
    border-top: 1px solid @bc-panel-border;
    box-sizing: border-box;
    color: @bc-text;
    font-family: @sansFontFamily;
    font-size: 11px;
    line-height: 25px;
    height: @bc-bg-status-bar-height;
    overflow: hidden;
    .dark & {
        background: @dark-bc-bg-status-bar;
        border-top: 1px solid @dark-bc-panel-separator;
        color: @dark-bc-text;
    }
}

#status-info {
    color: @bc-text;
    white-space: nowrap;
    cursor: pointer;

    .dark & {
        color: @dark-bc-text;
    }

    div {
        display: inline;
    }
}

#status-file {
    color: @bc-text-quiet;

    .dark & {
        color: @dark-bc-text-quiet;
    }
}

.hide-status-indicators > *:not(.global-indicator) {
    display: none !important;
}

#status-indicators, #status-phoenix{
    background: @bc-bg-status-bar;
    color: @bc-text;
    position: absolute;
    right: 0;
    text-align: right;
    white-space: nowrap;

    .dark & {
        background: @dark-bc-bg-status-bar;
        color: @dark-bc-text;
    }

    > div {
        border-left: 1px solid @bc-panel-border;

        .dark & {
            border-left: 1px solid @dark-bc-panel-separator;
        }
        float: right;
        padding: 0 10px;
    }
    .spinner {  // spinner is tiny & usually invisible; reduce margin so gap is less glaring
        margin: 6px -5px;
        padding: 0;
    }

    #status-language {
        border-right: 1px solid @bc-panel-border;
        padding: 0;
        margin: 0;

        .dark & {
            border-right: 1px solid @dark-bc-panel-separator;
        }
    }

    /* dropdown button styling */
    .btn-status-bar {
        border: 0;
        background-color: unset;
        color: inherit;
        font: inherit;
        height: inherit;
        line-height: inherit;
        margin: 0;
        padding: 0 21px 0 10px;
        vertical-align: top;
        width: auto;
        cursor: pointer;
        border-radius: 0;
        box-shadow: none;
        text-shadow: none;

        &:focus {
            outline: 0;
        }
        &[disabled] {
            cursor: inherit;
            background: none;
            text-decoration: none;
        }
        &::after {
            top: 10px;
            right: 8px;
        }
    }

}

#status-phoenix {
    right: unset;
    left: 0;
    > div {
        border-left: unset;
        border-right: 1px solid @bc-panel-border;

        .dark & {
            border-right: 1px solid @dark-bc-panel-separator;
        }
        float: left;
        text-align: center;
    }
    > div:hover{
        background-color: @bc-status-btn-hover;
        .dark & {
            background-color: @dark-bc-status-btn-hover;
        }
        cursor: pointer;
    }
    > div:only-child {
        border-right: unset;
    }
}

#status-indicators {
    > div:hover{
        background-color: @bc-status-btn-hover;
        .dark & {
            background-color: @dark-bc-status-btn-hover;
        }
        cursor: pointer;
    }
}

#status-indent > * {
    display: inline-block;
}

#status-indent > *.hidden {
    display: none;
}

#indent-type, #indent-auto, #indent-width-label {
    cursor: pointer;
    margin-right: 3px;
}

#status-overwrite:hover, #indent-type:hover, #indent-auto:hover, #indent-width-label:hover {
    text-decoration: underline;
}

#indent-width-input {
    font-size: 11px;
    font-weight: @font-weight-semibold;
    height: 13px;
    line-height: 1;
    vertical-align: middle;
    color: @bc-text;
    margin: 0;
    padding: 0 3px 2px;
    position: relative;
    left: 0;
    top: -1px;
    width: 6px;
    transition: 0.1s linear all;

    .dark & {
        color: @dark-bc-text;
    }
}

#indent-width-input:focus {

}

#indent-width-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#status-overwrite {
    background-color: rgba(255, 255, 255, 0);
    color: @bc-text;
    cursor: pointer;

    .dark & {
        color: @dark-bc-text;
    }
}

#status-tasks {
    display: flex;
    transition: background-color 3s;
    background-color: rgba(255, 255, 255, 0);
    color: @bc-text;
    cursor: pointer;

    .dark & {
        color: @dark-bc-text;
    }

    .hide-spinner {
        display: none !important;
    }
}

.task-status-popup-item {
    display: flex;
    color: @bc-text;
    align-items: center;
    gap: 10px;
    min-width: 200px;
    overflow: hidden;

    .dark & {
        color: @dark-bc-text;
    }

    .status-container {
        flex-grow: 1;
        margin: 2px;
    }

    .close-icon, .pause-icon, .play-icon, .retry-icon{
        font-size: 13px;
        width: 20px;
        cursor: pointer;
        display: flex;
        justify-content: flex-end;
    }
    .close-icon:hover, .pause-icon:hover, .play-icon:hover, .retry-icon:hover{
        color: @bc-secondary-btn-border;
    }
    .task-icon {
        font-size: 22px;
    }

    .task-heading {
        display: flex;
        align-items: center;
        margin-bottom: 2px;
    }

    .progress-bar-container {
        display: flex;
        align-items: center;
        justify-content: space-around;
    }

    .progress-bar-background {
        background: #555;
        flex-grow: 1;
        height: 10px;
        border-radius: 5px;
        overflow: hidden;
    }


    .progress-bar-foreground {
        background: #0a84ff;
        height: 100%;
        /* width can be adjusted by JS to reflect progress */
    }

    .progress-bar-foreground-success {
        background: @accent-success;
        height: 100%;
    }

    .progress-bar-foreground-failure {
        background: @bc-error;
        .dark & {
            background: @accent-error;
        }
        height: 100%;
    }

    .progress-bar-foreground-pulse {
        background: repeating-linear-gradient(
                to right,
                #003366 0%,
                #004c99 10%,
                #0066cc 20%,
                #007bff 30%,
                #3399ff 40%,
                #66b2ff 50%,
                #3399ff 60%,
                #007bff 70%,
                #0066cc 80%,
                #004c99 90%,
                #003366 100%
        );
        background-size: 200% auto;
        animation: progress-gradient 2s linear infinite;
        height: 100%;
        /* width can be adjusted by JS to reflect progress */
    }

    @keyframes progress-gradient {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: -200% 0;
        }
    }

    .task-title {
        white-space: nowrap;
        max-width: 25vw;
        overflow: hidden;
        color: #000;
        .dark & {
            color: @dark-bc-text;
        }
    }
    .task-message {
        font-size: 0.75em; /* slightly smaller than before */
        font-weight: normal;
        max-width: 25vw;
        overflow: hidden;
        color: @bc-text;
        .dark & {
            color: @dark-bc-text;
        }
    }
}

#status-overwrite.flash {
    animation: brightenFade 2s ease-in-out;
}

#status-panel-toggle {
    cursor: pointer;
}

#status-panel-toggle.flash {
    animation: brightenFade 800ms ease-in-out;
}

@keyframes brightenFade {
    0% {
        background-color: transparent;
    }
    15% {
        background-color: rgb(120, 178, 242);
        color: black;
    }
    30% {
        background-color: rgb(120, 178, 242);
        color: black;
    }
    100% {
        background-color: transparent;
    }
}


#sync-button {
    width: 24px;
    height: 24px;
}

#help-button {
    width: 24px;
    height: 24px;
}

.syncing {
    background-image: url("images/Ajax-Loading.svg");
}

.preview {
    background-image: url("images/share-fill.svg");
}

.user {
    background: url("images/circle-user-solid.svg") center no-repeat;
    background-size: 18px 18px;
}

#editor-holder {
    position: relative;

    /* Placeholder shown when there is no editor open */

    .view-pane {
        display: block !important;
        margin: 0;
        overflow: hidden;
    }

    .pane-content {
        display: block;
        margin: 0;
        overflow: hidden;
        height: 100%;
        width: 100%;
        box-sizing: border-box;

        /* Image Preview */
        .image-view {
            overflow: hidden;
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            text-align: center;
            .image-centering {
                display: inline-block;
                vertical-align: middle;
                width: 90%; //As long as the width isn't set on the image itself theres no need for max-width/height
                height: 90%;
            }
            .image-data {
                font-weight: @font-weight-semibold;
            }
        }

        .image-view:before {
            content: '';
            display: inline-block;
            height: 100%;
            margin-right: -0.25em; /* Adjusts for spacing */
            vertical-align: middle;
        }

        .image-preview {
            background: url(images/preview-bg.svg);
            box-shadow: 0 1px 3px @bc-shadow;
            max-height: 100%;

            .dark & {
                background: url(images/preview-bg-dark.svg);
                box-shadow: 0 1px 3px @dark-bc-shadow;
            }
        }

        .image-header {
            display: block;
            width: 100%;
            height: 38px;
            margin-bottom: 15px;
        }

        .image-data,
        .image-path {
            text-align: left;
            .user-select(text);
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }

        .image-data::selection,
        .image-path::selection {
            background: @selection-color-focused;
        }

        .image {
            position: relative;
            height: calc(~'100% - 53px');//.image-header height+margin
        }

        .image-guide,
        .image-tip,
        .image-scale {
            pointer-events: none;
        }

        .image-scale {
            display: block;
            position: absolute;
            top: 5px;
            left: 5px;
            width: 40px;
            text-align: center;
            background-color: rgba(0, 0, 0, 0.8);
            color: @bc-text-alt;
            border-radius: 3px;
            box-shadow: 0 1px 3px @bc-shadow;

            .dark & {
                color: @dark-bc-text-alt;
                box-shadow: 0 1px 3px @dark-bc-shadow;
            }
        }

        .image-tip {
            display: block;
            position: absolute;
            text-align: left;
            white-space: nowrap;
            padding: 6px 9px;
            color: @bc-text-alt;
            background-color: rgba(0, 0, 0, 0.8);
            font-size: 11px;
            font-family: @sourceFontFamily;
            line-height: 13px;
            border-radius: 3px;
            box-shadow: 0 1px 3px @bc-shadow;

            .dark & {
                color: @dark-bc-text-alt;
                box-shadow: 0 1px 3px @dark-bc-shadow;
            }
        }

        .x-value,
        .y-value {
            text-align: right;
        }

        .tip-container {
            border: 0;
        }

        .horz-guide {
            background-image: url("images/horizontal-dash.svg");
            background-repeat: repeat-x;
            width: 8px;
            height: 1px;
        }

        .vert-guide {
            background-image: url("images/vertical-dash.svg");
            background-repeat: repeat-y;
            width: 1px;
            height: 8px;
        }

        .horz-guide,
        .vert-guide {
            position: absolute;
            display: block;
        }
    }
    .pane-header {
        opacity: 0.7; // quieten inactive pane header
        box-sizing: border-box;
        border-bottom:  1px solid rgba(0, 0, 0, 0.05);
        padding: 5px 10px;
        background-color: @background;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;

        &-text {
            display: inline;
        }

        .dark & {
            background-color: #1d1f21; // not using a variable on purpose.
            border-bottom-color: rgba(255, 255, 255, 0.05);
        }

        &-flipview-btn {
            position: relative;
            display: none;
            top: 0;
            padding-top: 2px;
            padding-right: 4px;
            padding-left: 4px;
            margin-left: 0;
            margin-bottom: 0;
            .sprite-icon(0, 0, 13px, 13px, "images/flip-view-icons.svg");
            background-origin: content-box;
            -webkit-transform: translateZ(0); // forces GPU mode for better filter rendering on retina
            transform: translateZ(0); // future proofing
            z-index: 1;
            vertical-align: middle;

            &:hover {
                background-image: url("images/flip-view-icons-hover.svg")
            }

            &.flipview-icon-none {
                display: none;
            }

            &.flipview-icon-top {
                background-position: center 1px;
            }

            &.flipview-icon-right {
                background-position: center -18px;
            }

            &.flipview-icon-bottom {
                background-position: center -35px;
            }

            &.flipview-icon-left {
                background-position: center -54px;
            }
        }

        &-close-btn {
            position: relative;
            display: none;
            height: 16px;
            width: 16px;
            float: right;
            margin-top: -2px;

            &:before {
                color: rgba(0, 0, 0, 0.5);
            }

            &:hover:before {
                color: rgba(0, 0, 0, 0.8);
            }

            .dark & {
                &:before {
                    color: rgba(255, 255, 255, 0.5);
                }

                &:hover:before {
                    color: rgba(255, 255, 255, 0.8);
                }
            }
        }

        &:hover, &.always-show-header-buttons {
            > .pane-header-flipview-btn:not(.flipview-icon-none) {
                display: inline-block;
            }

            > .pane-header-close-btn {
                display: inline;
            }
        }
    }

    .CodeMirror-ruler{
        z-index: 1;
    }

    .active-pane {

        .pane-header {
            opacity: 1;
            color: @bc-menu-text;

            .dark & {
                color: @dark-bc-menu-text;
            }
        }
    }
}

// moved this out of #editor-holder because we need to lower the specificity so theme authors can override the background color
.not-editor {
    height: 100%;
    .vbox;
    .box-pack(center);
    .box-align(center);
    background: #f8f8f8 url('images/no_content_bg.svg') no-repeat center 45%;

    .dark & {
        background: #1d1f21 url('images/no_content_bg_dark.svg') no-repeat center 45%;
    }
}

// Split View Separator Styles
.split-vertical #second-pane {
    border-left: 1px solid rgba(0, 0, 0, 0.17);
    .dark & {
        border-left: 1px solid rgba(255, 255, 255, 0.3);
    }
}

.split-horizontal #second-pane {
    border-top: 1px solid rgba(0, 0, 0, 0.17);
    .dark & {
        border-top: 1px solid rgba(255, 255, 255, 0.3);
    }
}

.vert-resizer {
    position: absolute;
    height: 6px;
    width: 100%;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: row-resize;
}

.horz-resizer {
    position: absolute;
    height: 100%;
    width: 6px;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: col-resize;
}

@keyframes fadeInFromNone {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.horz-resizer:hover {
    background-color: @bc-primary-btn-bg;
    opacity: 1;
    animation: fadeInFromNone 0.5s ease-out;
}

.vert-resizer:hover {
    background-color: @bc-primary-btn-bg;
    opacity: 1;
    animation: fadeInFromNone 0.5s ease-out;
}

.bottom-panel {
    background-color: @bc-panel-bg;
    display: none;
    height: 200px;
    border-top: 1px solid @bc-panel-border;

    .dark & {
        background-color: @dark-bc-panel-bg;
        border-top: 1px solid @dark-bc-panel-border;
    }

    .check-all {
        margin: 7px 15px 7px 7px;
    }

    .toolbar {
        background-color: @bc-panel-bg-promoted;
        border-bottom: @bc-panel-separator;
        height: auto;
        padding-top: (@base-padding / 2);
        padding-bottom: (@base-padding / 2);
        z-index: @z-index-brackets-results-panel;
        box-shadow: inset 0 1px 0 @bc-highlight-hard, 0 -1px 3px @bc-shadow-small;

        .dark & {
            background-color: @dark-bc-panel-bg-promoted;
            border-bottom: @dark-bc-panel-separator;
            box-shadow: inset 0 1px 0 @dark-bc-highlight, 0 -1px 3px @dark-bc-shadow-small;
        }

        .title {
            color: @bc-text;
            font-size: @label-font-size;
            font-weight: @font-weight-semibold;

            .dark & {
                color: @dark-bc-text;
            }
        }
        .close {
            position: absolute;
            right: 10px;
            top: 50%;
            margin-top: -10px;
        }
    }

    .table-container {
        height: 170px;
        overflow: auto;

        .highlight {
            background: @bc-panel-bg-text-highlight;
            border-radius: 2px;

            .dark & {
                background: @dark-bc-panel-bg-text-highlight;
            }
        }

        tr.selected td {
            background-color: @bc-panel-bg-selected-table;
            color: @bc-text-thin;

            .dark & {
                background-color: @dark-bc-panel-bg-selected-table;
                color: @dark-bc-text-thin;
            }
        }
    }
}

.bottom-panel-table {
    td {
        font-size: 14px;
        padding-left: 15px;
        padding-right: 0;
        vertical-align: baseline;
    }

    .file-section > .checkbox-column {
        width: 15px;
    }

    .line-number {
        color: @bc-text-thin-quiet;
        font-family: @sourceFontFamily;
        font-size: 11px;
        padding: 4px 0 0 15px;
        text-align: right;
        white-space: nowrap;
        width: 5px;

        .dark & {
            color: @dark-bc-text-thin-quiet;
        }
    }

    .dialog-filename {
        font-size: 13px;
        font-weight: @font-weight-semibold;
    }

    .dialog-path {
        font-size: 11px;
        font-weight: normal;
    }

    .line-text {
        width: 100%;
    }
}


#update-notification {
    .sprite-icon(0, 0, 24px, 24px, "images/updateSprites.svg");
    &.update-in-progress {
        .sprite-icon(0, 0, 24px, 24px, "images/updateSpritesGrayed.svg");
    }
}

#toolbar-go-live {
    // background-position is 0 0 for 24x24 icons
    // Default icon is for the 'disconnected' state
    // The 'connecting failed' (.warning) state also maps here
    .sprite-icon(0, 0, 24px, 24px, "images/live_development_sprites.svg");
    // 'Connected' state
    &.success {
        .sprite-swap(0, 24px);
    }
    // 'Connection in progress' state
    &.info {
        .sprite-swap(0, 48px);
    }
    // 'Out-of-sync' state
    &.out-of-sync {
        .sprite-swap(0, 72px);
    }
    // 'sync-error'
    &.sync-error {
        .sprite-swap(0, 96px);
    }
}

#toolbar-extension-manager {
    .sprite-icon(0, 0, 24px, 24px, "images/extension-manager-sprite.svg");
    &.updatesAvailable {
        .sprite-icon(0, 24px, 24px, 24px, "images/extension-manager-sprite.svg");
    }
}

#app-drawer-button {
    background-image: url("images/app-drawer.svg");
    background-position: center;
    background-size: 16px;
}

/* Project panel */

#working-set-list-container {
    background: @bc-working-set-bg;
    display: block;

    > div:last-child ul {
        padding-bottom: 21px; // Adds working set bottom padding to the last UL.
    }
}

#working-set-list-container.working-set-hidden {
    display: none !important;
}

.working-set-header {
    position: relative;
    height: 19px;
    padding: 10px 0 9px 12px;
    background: @bc-working-set-bg;
    color: @project-panel-text-2;
    text-shadow: none;
    overflow: hidden;

    > span {
        background: @bc-working-set-bg;
        position: relative;
        z-index: 9;
    }

    > div {
        background-color: @bc-working-set-bg;
        opacity: 1;
    }
}

#mainNavBar {
    height: var(--toolbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

#mainNavBarLeft {
    float: left;
    display: flex;
}

#mainNavBarRight {
    float: right;
    display: flex;
}

.working-set-splitview-btn {
    top: 7px;
    padding: 4px 6px;
    .sprite-icon(0, 0, 13px, 13px, "images/select-triangles.svg");
    background-origin: content-box;  // center image within the 13x13 area - ignore button's padding
    -webkit-transform: translateZ(0); // forces GPU mode for better filter rendering on retina
    transform: translateZ(0); // future proofing
    -webkit-filter: drop-shadow(0 1px 0 rgba(0,0,0,0.36));
    filter: drop-shadow(0 1px 0 rgba(0,0,0,0.36));
    z-index: 1;
    background-position: center 1px;
}

.search-nav-btn {
    top: 7px;
    padding: 4px 6px;
    .sprite-icon(0, 0, 13px, 13px, "images/sprites.svg#search");
    background-position: center;
    background-size: cover;
    opacity: 0.8;
    z-index: 1;
}

.new-project-btn {
    top: 7px;
    padding: 4px 6px;
    .sprite-icon(0, 0, 13px, 13px, "images/sprites.svg#newFolder");
    background-position: center;
    background-size: cover;
    opacity: 0.8;
    z-index: 1;
}

.show-in-file-tree-btn {
    top: 7px;
    padding: 4px 6px;
    .sprite-icon(0, 0, 13px, 13px, "images/sprites.svg#binoculars");
    background-position: center;
    background-size: cover;
    opacity: 0.8;
    z-index: 1;
}

/* Back / forward nav buttons use FontAwesome arrows so they match the
   browser's back/forward affordance and stay visually consistent with
   the other FA-based sidebar and toolbar buttons. NavigationProvider
   still toggles .nav-back-btn / .nav-back-btn-disabled (and the forward
   pair) to signal the enabled state — the rules below read as a single
   icon button with an enabled/disabled fork. */
.nav-back-btn,
.nav-forward-btn,
.nav-back-btn-disabled,
.nav-forward-btn-disabled {
    top: 7px;
    padding: 4px 6px;
    width: 13px;
    height: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1;
    z-index: 1;

    i {
        pointer-events: none;
    }
}

.nav-back-btn,
.nav-forward-btn {
    opacity: 0.8;
}

.nav-back-btn-disabled,
.nav-forward-btn-disabled {
    opacity: 0.35;
    pointer-events: none;
}

.splitview-icon-none {
    display: inline-block;
    background-position: center 1px;
}
.splitview-icon-vertical {
    display: inline-block;
    background-position: center -20px;
}
.splitview-icon-horizontal {
    display: inline-block;
    background-position: center -41px;
}



// Show splitview icons on the button's dropdown menu too
#splitview-menu ul.dropdown-menu > li {
    .menu-name::before {
        display: none;
        .sprite-icon(0, 0, 13px, 13px, "images/split-view-icons.svg");
        margin: 0 5px 0 -1px;
        vertical-align: -2px;

        .dark & {
            .sprite-icon(0, 0, 13px, 13px, "images/split-view-icons-dark.svg");
        }
    }
    &:nth-child(1) .menu-name::before {
        .splitview-icon-none();
    }
    &:nth-child(2) .menu-name::before {
        .splitview-icon-vertical();
    }
    &:nth-child(3) .menu-name::before {
        .splitview-icon-horizontal();
    }
}

#sidebar-resizer {
    position: absolute;
    width: 6px;
    height: 100%;
    z-index: @z-index-brackets-sidebar-resizer;
    opacity: 0;
    cursor: col-resize;
}

/* Resizer.js visibility-preserving hide: elements with .layout-preserve-hide
   get this class toggled instead of `display: none`, so their descendants
   keep their layout objects (and scrollTop / content-visibility caches)
   across collapse/expand. */
.layout-preserve-hide.layout-hidden {
    visibility: hidden !important;
    pointer-events: none !important;
}

.working-set-header-title{
    font-size: 15px;
}

#project-files-header {
    display: flex;
    align-items: center;
    border-top: none;
    padding: 6px 0 6px 12px;
    font-size: 15px;
    color: @project-panel-text-2;
    background-color: @bc-project-files-bg;
    overflow: hidden;
    gap: .5em;

    .btn-alt-quiet {
        background-color: transparent;

        // relative positioning plus z-index make sure that the splitview button flows under the left aligned buttons in the project pane when there are no working set files
        position: relative;
        z-index: 9;
    }
}

#project-operations-spinner{
    margin-right: 5px;
    margin-top: 0;
}

.open-files-container {
    .box-flex(0);
    padding: 0;
    max-height: 30vh;


    ul {
        list-style-type: none;
        margin: 0 0 2px; // 2px bottom margin required to stop scrollbar from appearing when the cursor is hovering over the last opened file.
    }

    li {
        position: relative; // so that children can be positioned absolute
        line-height: 18px;
        padding: 0 0 0 8px;
        min-height: 18px;
        vertical-align: baseline;
        white-space: nowrap;

        &.selected a {
            color: @open-working-file-name-highlight;
        }

        &.selected .extension {
            color: @open-working-file-ext-highlight;
        }
    }

    a {
        color: @bc-text-alt;

        font-size: 14px;
        text-decoration: none;

        display: block;
        height: 16px;
        line-height: 15px;
        margin-left: 18px;
        padding: 4px 0 3px 0;

        cursor: default;

        .dark & {
            color: @dark-bc-text-alt;
        }

        .directory {
            font-size: 11px;
        }
    }

    .extension, .directory {
        color: @project-panel-text-2;
    }
}



.sidebar-selection, .filetree-selection {
    background: @bc-sidebar-selection;
    border: none;
    box-shadow: none;
    box-sizing: border-box;
    height: 23px;
    width: 100%;
    position: absolute;
}

.sidebar-selection-extension, .filetree-selection-extension {
    background: transparent;
    border-top: none;
    border-bottom: none;
    box-sizing: border-box;
    height: 23px;
    width: 9px; /* quiet scrollbar width */
    position: fixed;

    z-index: @z-index-brackets-selection-extension; /* scroller-shadow appears above the extension */
}

.filetree-context-extension {
    background: rgba(255, 255, 255, 0.06);
    box-sizing: border-box;
    height: 23px;
    width: 9px; /* quiet scrollbar width */
    position: fixed;

    z-index: @z-index-brackets-selection-extension; /* scroller-shadow appears above the extension */
}

.filetree-context {
    background: rgba(255, 255, 255, 0.06);
    box-sizing: border-box;
    position: absolute;
    height: 23px;
    width: 100%;
}

//Initially start with the open files hidden, they will get show as files are added
.open-files-container {
    display:none;
}

#project-files-container {
    .box-flex(1);
    background-color: @bc-project-files-bg;

    div > ul {
        padding-bottom: 24px;
        padding-left: 8px;
    }
}

.scroller-shadow {
    background-size: 100%;
    background-repeat: no-repeat;
    height: 8px;
    position: fixed;
    z-index: @z-index-brackets-scroller-shadow;
    pointer-events: none; // serves as a "click through", so clicks go to the file tree behind (see #12684)

    &.top {
        #gradient > .vertical(rgba(0,0,0,0.18), rgba(0,0,0,0));
        background-position: 0 -8px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }

    &.bottom {
        #gradient > .vertical(rgba(0,0,0,0), rgba(0,0,0,0.12));
        background-position: 0 8px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }
}


@jstree-sprite-size: 18px;  // this is hardcoded in jsTree's JS code

/** Classes for icons from jsTreeSprites.svg
*/
.jstree-sprite {
    background-image: @jstree-sprite;
    background-repeat: no-repeat;
    background-color: transparent;
    vertical-align: middle;
    width: @jstree-sprite-size;
    height: @jstree-sprite-size;

    .dark & {
        background-image: @dark-jstree-sprite;
    }
}

/** Overriding jsTreeTheme.less
*/
.jstree-brackets .jstree-no-dots .jstree-open > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0) rotate(90deg);
    transform: translateZ(0) rotate(90deg);
    transition: -webkit-transform 190ms cubic-bezier(.01, .91, 0, .99);
    transition: transform 190ms cubic-bezier(.01, .91, 0, .99);
    -webkit-filter: drop-shadow(1px 0 1px @bc-shadow);
    filter: drop-shadow(1px 0 1px @bc-shadow);

    .dark & {
        -webkit-filter: drop-shadow(1px 0 1px @dark-bc-shadow);
        filter: drop-shadow(1px 0 1px @dark-bc-shadow);
    }
}

.jstree-brackets .jstree-no-dots .jstree-closed > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0); /* Need this to make sure that the svg isn't blurry on retina. */
    transform: translateZ(0);
    transition: -webkit-transform 90ms cubic-bezier(.01, .91, 0, .99);
    transition: transform 90ms cubic-bezier(.01, .91, 0, .99);
    -webkit-filter: drop-shadow(1px 0 1px @bc-shadow);
    filter: drop-shadow(1px 0 1px @bc-shadow);

    .dark & {
        -webkit-filter: drop-shadow(1px 0 1px @dark-bc-shadow);
        filter: drop-shadow(1px 0 1px @dark-bc-shadow);
    }
}

//jstree icons

.bd-icon {
    display: inline-block;
    font-size: 14px;
    vertical-align: middle;
    color: white;
    padding-right: 3px;
    opacity: .8;
    width: 17px;
}

.jstree-clicked .bd-icon, .selected .bd-icon {
    color: #8fddff;
    opacity: 1;
}

/** Unicode Icon container
*/
.unicode-icon-container {
    display: inline-block;
    width: 16px;
    height: 16px;
    font-size: 20px;
    line-height: 15px;
    text-align: center;
}

.file-status-icon {
    margin: 0 0 0 8px;
    position: absolute;
    left: 0;
    top: 0;

    &.dirty:before,
    &.can-close:before {
        .unicode-icon-container;
        color: rgba(255, 255, 255, 0.5);
    }

    &.dirty:before {
        content: "\2022";
        line-height: 1em;
    }

    &.can-close:before {
        content: "\00D7";
        line-height: 1.1em;
    }

    &.can-close:hover:before {
        color: rgba(255, 255, 255, 0.7);
    }

    &.can-close:active:before {
        color: rgba(255, 255, 255, 0.3);
    }
}

/* Styles for inline editors */

.inline-text-editor {
    line-height: 0;
}

.inline-widget {
    position: relative;
    overflow: hidden;
    outline: none;

    background-color: @bc-bg-inline-widget;
    min-width: 250px;
    cursor: default;

    .dark & {
        background-color: @dark-bc-bg-inline-widget;
    }

    &.animating {
        // Make the animation use the GPU--especially important for retina.
        -webkit-transform: translateZ(0);
        transform: translateZ(0);

        transition: height 250ms cubic-bezier(0, 1.02, 0.6, 1);
    }

    .CodeMirror {
        /* remove CodeMirror default height: 300px */
        height: auto;
    }

    .inline-text-editor {
        white-space: nowrap;
    }

    .inline-editor-header {
        display: inline-block;
        padding: 8px 10px 2px 40px;

        .filename {
            vertical-align: middle;
            font-family: @sansFontFamily;
            font-size: 13px;
            color: @bc-text-thin;

            // Filename header is clickable (it's an <a> tag, so we get underscore on hover by
            // default; but the hand cursor is shut off by Bootstrap's reset stylesheet)
            cursor: pointer;

            .dark & {
                color: @dark-bc-text-thin;
            }

            .dirty-indicator {
                .unicode-icon-container;
                color: @bc-text-quiet;
                overflow: hidden;
                position: relative;
                top: 1px;

                .dark & {
                    color: @dark-bc-text-quiet;
                }
            }

            .line-number {
                color: @accent-comment;
            }
        }
    }

    .shadow {
        display: block;
        height: 4px;
        width: 100%;
        position: absolute;
        content: " ";
        left: 0;
        z-index: @z-index-brackets-inline-editor-shadow;
    }

    .shadow.top {
        top: 0;
        background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
    }

    .shadow.bottom {
        bottom: 0;
        background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1));
    }

    .CodeMirror-scroll {
        background-color: transparent !important;

        .CodeMirror-linenumbers {
            background-color: @bc-bg-inline-widget;

            .dark & {
                background-color: @dark-bc-bg-inline-widget;
            }
        }
    }

    .close {
        position: absolute;
        left: 15px;
        top: 10px;
        margin-right: 30px;
    }

}

/* CSSInlineEditor rule list */
.related-container {
    @top-margin: 12px;

    float: right;
    position: relative;
    min-height: 100%;
    font-family: @sansFontFamily;
    width: 250px;
    max-width: 50%;
    overflow: hidden;
    background: @bc-panel-bg;

    // Without this, the "New Rule" button shows on top of the rule list if you resize
    // the window narrow enough. No idea why, since there's no z-index on the button, and
    // the other items in the header go behind the rule list.
    z-index: 1;

    .dark & {
        background: @dark-bc-panel-bg;
    }

    .selection {
        width: 100%;
        background: @bc-panel-bg-selected;
        position: absolute;
        border-top: none;
        border-bottom: none;
        top: @top-margin;

        .dark & {
            background: @dark-bc-panel-bg-selected;
        }

        &.animate {
            transition: top 0.1s ease-out;
        }
    }

    /*
     * CSS triangle hack with anti-alias workarounds:
     * (a) Use selection-background-color instead of transparent.
     * (b) Use transform scaleX and origin to adjust width.
     */
    .selection:before {
        content: " ";
        position: absolute;
        width: 0;
        height: 0;
        border-top: @inline-triangle-size solid transparent;
        border-bottom: @inline-triangle-size solid transparent;
        border-left: @inline-triangle-size solid @bc-bg-inline-widget;
        margin-top: -@inline-triangle-size;
        top: 50%;
        .scale-x(0.9, left, top);

        .dark & {
            border-left: @inline-triangle-size solid @dark-bc-bg-inline-widget;
        }
    }

    .related {
        font-size: 12px;
        position: absolute;
        top: 0;
        left: 1px;
        width: 100%;

        ul {
            margin: 0;
            padding: 10px 0 10px 5px;
            list-style: none;
        }

        li {
            color: @bc-text-emphasized;
            margin: 0;
            overflow: hidden;
            padding: 2px 0 2px 15px;
            text-overflow: ellipsis;
            white-space: nowrap;

            .dark & {
                color: @dark-bc-text-emphasized;
            }

            &.section-header {
                padding-left: 0;
                padding-bottom: 0;
                .disclosure-triangle {
                    .expand-collapse-triangle();
                }
                .filename {
                    font-weight: @font-weight-semibold;
                }
            }

            .related-file {
                color: @bc-text-thin-quiet;
                padding-left: 3px;

                .dark & {
                    color: @dark-bc-text-thin-quiet;
                }
            }
        }

        .selected {
            color: @bc-text-thin;
            transition: color 0.1s ease-out .15s;

            .dark & {
                color: @dark-bc-text-thin;
            }
        }
    }
}

.inline-editor-message {
    color: @bc-text-thin-quiet;
    font-family: @sansFontFamily;
    font-size: 12px;
    line-height: 17px;
    height: 20px;
    padding: 10px 0 40px 50px;

    .dark & {
        color: @dark-bc-text-thin-quiet;
    }
}

/* This text is used to force the code editor's font to be loaded early on if it's a
   web font. This is necessary in order for the editor's horizontal measurement of text
   to work properly.

   In the future, when we allow the user to switch fonts, we'll need to make sure to
   update the font for this text item whenever the user switches. We'll also need to
   wait to initiate a re-measure in CodeMirror until the new font is loaded (if they
   choose a web font). This library allows for checking if a web font is loaded:

     http://code.google.com/apis/webfonts/docs/webfont_loader.html
*/
.dummy-text {
    position: fixed;
    top: -10000px;
    .code-font();
}

.platform-mac .dummy-text {
    .code-font-mac();
}

/* Find in Files results panel - temporary UI, to be replaced with a richer search feature later */

.search-results .toolbar {
    padding: 5px 8px;
}
.search-results .title {
    .sane-box-model;
    margin-left: 4px;
    width: 100%;
    line-height: 26px;

    .flex-box;
    .contracting-col {
        .flex-item(0);
        min-width: 1px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .fixed-col {
        .flex-item(0, 0);
    }
    .pagination-col {
        .flex-item(0, 0);
        min-width: 100px;
        word-spacing: 0;
    }
    .pagination-col > span:hover {
        background-color: rgba(255, 255, 255, 0.3);
    }
    .pagination-col > span:active {
        background-color: @bc-shadow;

        .dark & {
            background-color: @dark-bc-shadow;
        }
    }
    .replace-col {
        .flex-item(1, 0);
        min-width: 120px;
        padding: 0 15px;
    }
    .first-page,
    .prev-page,
    .next-page,
    .last-page {
        .jstree-sprite;
        width: 18px;
        display: inline-block;
        margin: 0;
        background-position: 7px 6px;
        vertical-align: text-top;
        border-radius: 3px;
    }
    .first-page {
        background-position: 6px -78px;
        margin-left: 10px;
    }
    .prev-page {
        background-position: 6px -22px;
        margin-right: 5px;
    }
    .next-page {
        margin-left: 5px;
    }
    .last-page {
        background-position: 6px -50px;
    }
    .disabled,
    .disabled:hover,
    .disabled:active {
        background-color: transparent;
        opacity: 0.3;
    }
}

.search-results.search-no-results {
    .table-container {
        width: 100% !important;
    }
    .search-editor-preview {
        display: none !important;
    }
}

.search-no-results-message {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #888;
    font-size: 15px;
    letter-spacing: 0.5px;
    word-spacing: 1px;
    user-select: none;

    .dark & {
        color: #999;
    }
}

.search-results .disclosure-triangle,
#problems-panel .disclosure-triangle {
    .expand-collapse-triangle();
}
.expand-collapse-triangle() {
    .jstree-sprite;
    display: inline-block;
    background-position: 7px 5px;
    &.expanded {
        // Unfortunately, the way jsTree sprites are aligned within their 18px boxes doesn't look good in
        // other contexts, so we need some tweaks here instead of straight multiples of @jstree-sprite-size
        -webkit-transform: translateZ(0) rotate(90deg);
        transform: translateZ(0) rotate(90deg);
    }
}

// quick view
@bc-highlight:                  rgba(255, 255, 255, 0.12);
@bc-panel-bg:                   #dfe2e2;
@bc-panel-bg-promoted:          #d4d7d7;
@bc-shadow-large:               rgba(0, 0, 0, 0.5);
@bc-shadow-small:               rgba(0, 0, 0, 0.06);
@bc-text:                       #333;

@dark-bc-highlight:             rgba(255, 255, 255, 0.06);
@dark-bc-panel-bg:              #2c2c2c;
@dark-bc-panel-bg-promoted:     #222;
@dark-bc-shadow-large:          rgba(0, 0, 0, 0.5);
@dark-bc-shadow-small:          rgba(0, 0, 0, 0.06);
@dark-bc-text:                  #ccc;

#quick-view-container {
    display: none;
    pointer-events: auto;

    -webkit-transition: opacity 0.125s ease-in, -webkit-transform 0.125s;
    transition: opacity 0.125s ease-in, transform 0.125s;

    transform: scale(0);
    opacity: 0;

    background: @bc-panel-bg;
    position: absolute;
    z-index: 5000;
    user-select: text;

    padding: 8px;
    text-align: center;
    max-width: 75%;
    max-height: 75%;

    border-radius: 4px;
    box-shadow: 0 4px 15px @bc-shadow-large;

    .dark & {
        background: @dark-bc-panel-bg;
        box-shadow: 0 4px 15px @dark-bc-shadow-large;
    }
}

.quick-view-partition {
    border-bottom: 2px solid @bc-quick-view-separator;
    .dark & {
        border-bottom: 2px solid @dark-bc-quick-view-separator;
    }
    padding-bottom: 5px;
    margin-bottom: 5px;
}

.quick-view-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#quick-view-container.active {
    transform: scale(1);
    opacity: 1;
}

#quick-view-container.preview-bubble-above {
    -webkit-transform-origin: center bottom;
}

#quick-view-container.preview-bubble-above:before {
    display: none;
}

#quick-view-container.preview-bubble-below {
    -webkit-transform-origin: center top;
}

#quick-view-container.preview-bubble-below:before {
    -webkit-filter: drop-shadow(0px 1px 0 rgba(255, 255, 255, 0.18));
    transform: rotate(180deg);
    top: -9px;
}

#quick-view-container.preview-bubble-below:after {
    display: none;
}

.quick-view-highlight {
    background-color: rgba(200, 200, 150, 0.4) !important;
    .dark &{
        background-color: rgba(150, 150, 50, 0.3) !important;
    }
}

// selection view
#selection-view-container {
    display: none;
    pointer-events: auto;

    -webkit-transition: opacity 0.125s ease-in, -webkit-transform 0.125s;
    transition: opacity 0.125s ease-in, transform 0.125s;

    transform: scale(0);
    opacity: 0;

    background: @bc-panel-bg;
    position: absolute;
    z-index: 5000;
    user-select: text;

    padding: 8px;
    text-align: center;
    max-width: 75%;
    max-height: 75%;

    border-radius: 4px;
    box-shadow: 0 4px 15px @bc-shadow-large;

    .dark & {
        background: @dark-bc-panel-bg;
        box-shadow: 0 4px 15px @dark-bc-shadow-large;
    }
}

#selection-view-container.active {
    transform: scale(1);
    opacity: 1;
}

#selection-view-container.preview-bubble-above {
    -webkit-transform-origin: center bottom;
}

#selection-view-container.preview-bubble-above:before {
    display: none;
}

#selection-view-container.preview-bubble-below {
    -webkit-transform-origin: center top;
}

#selection-view-container.preview-bubble-below:before {
    -webkit-filter: drop-shadow(0px 1px 0 rgba(255, 255, 255, 0.18));
    transform: rotate(180deg);
    top: -9px;
}

#selection-view-container.preview-bubble-below:after {
    display: none;
}

.sticky-li-top {
    position: sticky;
    top: 0;
    background: @bc-text-searching-match;
}

/* Modal bar for Find/Quick Open */

.modal-bar {
    display: block;
    text-align: left;

    font-family: @sansFontFamily;
    font-size: 14px;
    color: @bc-text;
    background: @bc-panel-bg;
    overflow: visible;  // needed for .error popup
    padding: 5px 4px 4px 14px;

    -webkit-transform: translate(0, 0); // Prefix still required.
    transform: translate(0, 0);
    transition: -webkit-transform 66ms cubic-bezier(0, 0.62, 0.04, 0.99);
    transition: transform 66ms cubic-bezier(0, 0.62, 0.04, 0.99);
    z-index: @z-index-brackets-modalbar;

    .dark & {
        color: @dark-bc-text;
        background: @dark-bc-panel-bg;
    }

    body.in-browser &,
    body:not(.has-appshell-menus) & {
        // Separator line between us and the HTML menu/titlebar above
        border-top: 1px solid @bc-panel-border;

        .dark & {
            border-top: 1px solid @dark-bc-panel-border;
        }
    }

    &.popout {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
    }

    &.offscreen {
        -webkit-transform: translate(0, -100%);
        transform: translate(0, -100%);
        transition: -webkit-transform 266ms cubic-bezier(0, 0.56, 0, 1);
        transition: transform 266ms cubic-bezier(0, 0.56, 0, 1);
    }

    input, textarea {
        font-family: @sansFontFamily;
        outline: none;
        width: 20em;
        margin: 5px 5px 0;
        position: relative;
        top: -4px;
        &.no-results {
            border: 1px solid  @bc-btn-border-error;
            box-shadow: inset 0 1px 0 @bc-shadow-small, 0 0 0 1px @bc-btn-border-error-glow;

            .dark & {
                border: 1px solid  @dark-bc-btn-border-error;
                box-shadow: inset 0 1px 0 @dark-bc-shadow-small, 0 0 0 1px @dark-bc-btn-border-error-glow;
            }
        }
    }

    #find-what, #replace-with {
        width: 295px;
    }

    .search-input-container, .filter-container {
        position: relative;
        display: inline;
        resize: none;

        .find-what-wrapper {
            display: inline-flex;
            align-items: center;
            margin-top: 1px;
            margin-left: 5px;
        }

        .find-what-wrapper-focused {
            margin-top: 1px;
            margin-left: 5px;
            margin-right: 0;
            outline: 0;
            text-shadow: none;
            border: 1px solid @bc-btn-border-focused;
            border-radius: @bc-border-radius;
            box-shadow: inset 0 1px 0 @bc-shadow-small, 0 0 0 1px @bc-btn-border-focused-glow;
            .no-results & {
                border: 1px solid  @bc-btn-border-error;
                box-shadow: inset 0 1px 0 @bc-shadow-small, 0 0 0 1px @bc-btn-border-error-glow;

                .dark & {
                    border: 1px solid  @dark-bc-btn-border-error;
                    box-shadow: inset 0 1px 0 @dark-bc-shadow-small, 0 0 0 1px @dark-bc-btn-border-error-glow;
                }
            }
            .dark & {
                margin-top: 0;
                margin-right: -2px;
                border: 1px solid @dark-bc-btn-border-focused;
                box-shadow: inset 0 1px 0 @dark-bc-shadow-small, 0 0 0 1px @dark-bc-btn-border-focused-glow;
            }
            #find-what, #find-counter, .dropdown-icon {
                border: none;
            }
        }

        .no-results {
            border: 1px solid  @bc-btn-border-error;
            box-shadow: inset 0 1px 0 @bc-shadow-small, 0 0 0 1px @bc-btn-border-error-glow;

            .dark & {
                border: 1px solid  @dark-bc-btn-border-error;
                box-shadow: inset 0 1px 0 @dark-bc-shadow-small, 0 0 0 1px @dark-bc-btn-border-error-glow;
            }
        }

        .error, .error-filter {  // "popup" that hangs below search field
            position: absolute;
            left: 5px;
            top: 24px;
            min-width: 291px + 2px;  // to align with search field above it
            z-index: 1; // to appear above any controls that wrap below

            background-color: @bc-error;
            color: @bc-text-alt;
            font-size: 12px;
            padding: 3px 8px;
            border-radius: 0 0 3px 3px;
            box-shadow: 0 1px 3px @bc-shadow-small;

            .dark & {
                background-color: @dark-bc-error;
                color: @dark-bc-text-alt;
                box-shadow: 0 1px 3px @dark-bc-shadow-small;
            }
        }

        .error-filter{
            min-width: 276px;
            left: 9px;
        }

        #find-what {
            top: 0;
            width: 215px;  // maintain width, accounting for differing padding
            margin: 0;
            height: 18px;
            resize: none;
            white-space: nowrap;
            overflow-x: hidden;
            border: 1px solid @bc-btn-border;
            border-right: none;
            .dark & {
                border: 1px solid @dark-bc-btn-border;
                border-right: none;
            }
            box-shadow: none;
        }

        .dropdown-icon, .filter-dropdown-icon {
            background: url(images/dropdown-icon.svg) no-repeat scroll 15px 15px;
            background-position: center right;
            width: 20px;
            height: 20px;
        }

        #find-counter, .dropdown-icon{
            background-color: white;
            color: @bc-text-thin-quiet;
            font-size: 12px;

            .dark & {
                background-color: @dark-bc-input-bg;
                color: @dark-bc-text-thin-quiet;
            }
        }
        #find-counter {
            font-weight: @font-weight-semibold;
            padding: 0 5px;
            width: 50px;
            height: 26px;
            margin: 0;
            border: 1px solid @bc-btn-border;
            border-left: none;
            border-right: none;
            display: flex;
            align-items: center;
            justify-content: end;
            .dark & {
                border: 1px solid @dark-bc-btn-border;
                border-left: none;
                border-right: none;
            }
        }
        .dropdown-icon{
            margin: 0;
            border: 1px solid @bc-btn-border;
            border-left: none;
            height: 26px;
            .dark & {
                border: 1px solid @dark-bc-btn-border;
                border-left: none;
            }
        }
        #filter-counter, .filter-dropdown-icon{
            top: 1px;
            position: absolute;
            color: @bc-text-thin-quiet;
            right: 2px;
            font-size: 12px;

            .dark & {
                color: @dark-bc-text-thin-quiet;
            }
        }
    }

    .search-input-container {
        display: inline-flex;
        vertical-align: top;
    }
    .filter-container{
        margin-left: -11px;
        #fif-filter-input{
            border-top-left-radius: unset;
            border-bottom-left-radius: unset;
        }
        .filter-dropdown-icon {
            right: 10px;
        }
    }

    .find-input-group {
        display: inline-block;
    }
    #find-group, #replace-group {
        display: inline-block;
        white-space: nowrap;
    }
    #replace-group.has-scope {
        // If scope controls are showing, force the replace controls to a second line.
        display: block;
    }

    .scope-group {
        display: inline-block;
        .file-filter-picker{
            min-width: 150px;
        }
    }

    .indexing-group {
        display: inline-block;
        margin-left: 10px;
    }

    .indexing-message {
        display: inline-block;
        font-style: italic;
        margin-left: 5px;
    }

    #find-case-sensitive, #find-regexp {
        padding: 1px 5px;
    }
    .button-icon {  // icons must be nested inside button so we can apply padding w/o tiling icon
        .sprite-icon(0, 0, 24px, 24px, @button-icon);
        background-repeat: no-repeat;

        .dark & {
            .sprite-icon(0, 0, 24px, 24px, @dark-button-icon);
        }
    }
    #find-regexp.active .button-icon {
        .sprite-swap(0, 24px);
    }
    #find-case-sensitive .button-icon {
        .sprite-swap(0, 48px);
    }
    #find-case-sensitive.active .button-icon {
        .sprite-swap(0, 72px);
    }
    #find-regexp.active,
    #find-regexp:active,
    #find-case-sensitive.active,
    #find-case-sensitive:active { // Make the toggle buttons' down states the same color as 'on' state to prevent a flash of different color.
        background-color: @bc-bg-highlight;

        .dark & {
            background-color: @dark-bc-bg-highlight;
        }
    }

    .navigator {  // next/prev buttons
        display: inline-block;
    }
    button {
        margin: 2px 1px 3px;
    }
    #find-prev {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        margin-left: 5px;
        margin-top: 0;
    }
    #find-next {
        margin-top: 0;
    }

    // Make button pairs snug
    #find-prev, #replace-yes, #replace-batch, #find-case-sensitive {
        border-right: none;
        margin-right: 0;
    }
    #find-next, #replace-all, #find-regexp {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        margin-left: 0;
    }
    #replace-batch {
        border-radius: 0;
        margin-left: 0;
        margin-top: -1px;
    }
    #replace-batch.solo {
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
        border-left: none;
        border-right: 1px solid @bc-btn-border;

        .dark & {
            border-right-color: @dark-bc-btn-border;
        }
    }

    // Make find field snug with options buttons
    //    & replace snug with replace commands
    #find-what, #replace-with {
        margin-right: 0;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    #find-case-sensitive {
        border-left: none;
        margin-left: -3px;
        margin-top: 0;
        border-radius: 0;
    }
    #find-regexp {
        margin-left: -3px;
        margin-top: 0;
    }
    #replace-yes {
        border-left: none;
        margin-left: 0;
        border-radius: 0;
        margin-top: -1px;
    }
    #replace-all {
        margin-top: -1px;
    }

    .close {
        position: absolute;
        right: 10px;
        top: 50%;
        margin-top: -8px;
    }
}

// File exclusion filter (used only in Find in Files search bar, for now)
.filter-trash-icon {
    position: absolute;
    left: 7px;
    width: 16px;
    height: 16px;
    font-size: 20px;
    color: rgba(0, 0, 0, 0.5);
    line-height: 15px;
    text-align: center;
    visibility: hidden;
}

.filter-trash-icon:hover {
    color: @bc-secondary-btn-border;
    cursor: pointer;
}

.filter-edit-icon {
    float: right;
    width: 13px;
    height: 13px;
    color: rgba(0, 0, 0, 0.5);
    visibility: hidden;
    position: relative;
    right: -4px;
}

.filter-edit-icon:hover {
    color: @bc-secondary-btn-border;
    cursor: pointer;
}

li:hover .filter-trash-icon,
li:hover .filter-edit-icon {
    visibility: visible;
}

.recent-filter-type{
    margin-left: 12px;
}

.recent-filter-patterns {
    color: @bc-text-thin-quiet;
    padding-right: 52px;

    .dark & {
        color: @dark-bc-text-thin-quiet;
    }
}

button.file-filter-picker {
    margin-left: 5px;
    margin-top: 0;
}

// File exclusion filter editor dialog
input.exclusions-name {
    display: block;
    width: 100%;
    height: 30px;
    box-sizing: border-box; // needed for width: 100% since it has padding
    margin-top: 12px;
    margin-bottom: 0;
}
textarea.exclusions-editor {
    display: block;
    width: 100%;
    height: 120px;
    box-sizing: border-box; // needed for width: 100% since it has padding
    margin-top: 5px;
    margin-bottom: 0;
    .code-font();
}
.exclusions-name-characters-remaining {
    text-align: right;
    padding-top: 4px;
}
.exclusions-name-characters-limit-reached {
    color: red;
}
.exclusions-filecount {
    margin: 12px 0 -14px 0;
    padding: 4px 8px;
    background-color: @bc-bg-highlight;
    border-radius: @bc-border-radius;

    .dark & {
        background-color: @dark-bc-bg-highlight;
    }
}


// Find/Replace result highlighting
.CodeMirror-searching {
    background-color: @cm-match-highlight;
    box-shadow: 0 1px 3px @bc-shadow-small;
    color: @match-text !important;

    .dark & {
        box-shadow: 0 1px 3px @dark-bc-shadow-small;
    }

    &.searching-current-match {
        background-color: @cm-current-match-highlight;
    }
    &.searching-first {  // first in a contiguous run of highlights
        border-top-left-radius: @bc-border-radius-small;
        border-bottom-left-radius: @bc-border-radius-small;
    }
    &.searching-last {  // last in a contiguous run of highlights
        border-top-right-radius: @bc-border-radius-small;
        border-bottom-right-radius: @bc-border-radius-small;
    }
}

.tickmark-track {
    position: absolute;
    bottom: 0;
    top: 0;
    right: 0;
    width: 12px;
    z-index: @z-index-cm-max;
    pointer-events: none;
    --mark-color: #eddd23;

    .tickmark {
        position: absolute;
        width: 12px;
        height: 2px;
        background-color: var(--mark-color);

        opacity: 0.85;  // allow thumb to show through
        &.tickmark-current {
            background-color: #ed9823;
            z-index: 1;  // ensure this one appears above overlapping sibling highlights
            opacity: 1;
        }

        &.tickmark-side {
            background-color: unset;
            position: absolute;
            width: 12px;
            height: 5px;
            border-left: 2px solid;
            border-left-color: var(--mark-color);
            opacity: 1;
        }
    }
}

/* Quick Open search bar & dropdown */

.find-dialog-label {
    background: @bc-input-bg;
    color: @bc-text-quiet;
    position: absolute;
    right: 15px;
    text-align: right;
    top: 12px;
    z-index: 9999;

    .dark & {
        background: @dark-bc-input-bg;
        color: @dark-bc-text-quiet;
    }
}

// Spotlight-style floating Quick Open picker used while in design mode, where
// the standard ModalBar has no editor space to mount into.
// No backdrop dim/blur — file switching is frequent and UI-wide visual
// changes feel jarring. The overlay only exists to host the centered bar
// and catch outside-clicks for dismiss.
.quick-open-floating-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: @z-index-brackets-context-menu-base + 50;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 12vh;
    background: transparent;
    pointer-events: none;  // passthrough; the bar re-enables pointer events below
}
.quick-open-floating-bar {
    width: 640px;
    max-width: 90vw;
    padding: 0;
    background-color: @bc-panel-bg;
    border: 1px solid @bc-panel-border;
    border-radius: 10px 10px 0 0;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
    pointer-events: auto;  // re-enable inside the bar (overlay disables it for passthrough)
    .dark & {
        background-color: @dark-bc-panel-bg;
        border-color: @dark-bc-panel-border;
    }

    // Input line
    > div {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 4px 14px;
    }
    input[type="text"] {
        flex: 1 1 auto;
        width: auto !important;
        min-width: 0;
        box-sizing: border-box;
        height: 48px !important;
        font-size: 18px;
        line-height: 1.4;
        padding: 10px 4px !important;
        margin: 0 !important;
        border: 0 !important;
        outline: none !important;
        background: transparent !important;
        box-shadow: none !important;
        color: @bc-text;
        .dark & {
            color: @dark-bc-text;
        }
        &::placeholder {
            color: @bc-text-quiet;
            .dark & { color: @dark-bc-text-quiet; }
        }
    }
    .indexing-group {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        flex: 0 0 auto;
        order: -1;  // spinner before input
    }
    .find-dialog-label {
        flex: 0 0 auto;
        color: @bc-text-quiet;
        font-size: 12px;
        .dark & { color: @dark-bc-text-quiet; }
    }
}
// While the floating Quick Open is up, anchor the results dropdown to the
// floating bar (it's the one styled to contain it). The dropdown is appended
// to <body> by QuickSearchField; constrain its max-height so it never
// overflows the viewport, and lift its z-index above the overlay so the
// overlay's backdrop-filter doesn't blur the dropdown too.
body:has(.quick-open-floating-overlay) .quick-search-container {
    z-index: @z-index-brackets-context-menu-base + 51;
    max-height: 60vh;
    overflow-y: auto;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
}

.quick-search-container {
    border: 1px solid @bc-panel-border;
    box-sizing: border-box;  // lets QuickSearchField size the width more nicely
    background-color: @bc-panel-bg;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 5px 10px @bc-shadow;
    opacity: 0;
    overflow-wrap: break-word;

    .animation (autocomplete, 90ms, cubic-bezier(.01, .91, 0, .99));
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;

    padding: 0;
    margin: 9px 0 0;

    z-index: @z-index-brackets-context-menu-base;

    .dark & {
        background-color: @dark-bc-panel-bg;
        border-radius: 0 0 4px 4px;
        box-shadow: 0 5px 10px @dark-bc-shadow;
    }

    .quick-open-path {
        color: @bc-text-medium;
        font-size: 11px;
        letter-spacing: 0.04em;
        line-height: 11px;

        .dark & {
            color: @dark-bc-text-medium;
        }
    }

    li {
        color: @bc-text-emphasized;
        line-height: 15px;
        list-style: none;
        cursor: default;
        padding: 6px 10px;

        .dark & {
            color: @dark-bc-text-emphasized;
        }

        &:nth-child(odd) {
            background-color: @bc-panel-bg-alt;

            .dark & {
                background-color: @dark-bc-panel-bg-alt;
            }
        }
        &:last-child {
            border-radius: 0 0 4px 4px;  // don't cover over quick-search-container's rounded corners
        }

        &:hover {
            background-color: @bc-panel-bg-hover;

            .dark & {
                background-color: @dark-bc-panel-bg-hover;
            }
        }

        &.highlight {
            background-color: @bc-bg-highlight;
            color: @bc-menu-text;

            .dark & {
                background-color: @dark-bc-bg-highlight;
                color: @dark-bc-menu-text;
            }
        }
    }
}

@-webkit-keyframes autocomplete {
    0%   { opacity: 0.6; -webkit-transform: translate3d(0, 0, 0) scale(0.6); }
    100% { opacity: 1; -webkit-transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes autocomplete {
    0%   { opacity: 0.6; transform: translate3d(0, 0, 0) scale(0.6); }
    100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

.quicksearch-pathmatch,
.quicksearch-namematch {
    font-weight: @font-weight-semibold;
}

.quicksearch-pathmatch {
    color: @bc-text-medium;

    .dark & {
        color: @dark-bc-text-medium;
    }
}


/* Spinner */
.spinner.spinner-failure {
    border-left: 3px solid @bc-error;
    border-right: 3px solid @bc-error;

    .dark & {
        border-left: 3px solid @accent-error;
        border-right: 3px solid @accent-error;
    }

    &:before,
    &:after {
        border-left: 3px solid @bc-error;
        border-right: 3px solid @bc-error;

        .dark & {
            border-left: 3px solid @accent-error;
            border-right: 3px solid @accent-error;
        }
    }
}

.spinner.spinner-success {
    border-left: 3px solid @accent-success;
    border-right: 3px solid @accent-success;

    .dark & {
        border-left: 3px solid @accent-success;
        border-right: 3px solid @accent-success;
    }

    &:before,
    &:after {
        border-left: 3px solid @accent-success;
        border-right: 3px solid @accent-success;

        .dark & {
            border-left: 3px solid @accent-success;
            border-right: 3px solid @accent-success;
        }
    }
}

.progress-bar-foreground-success {
    background: @accent-success;
    height: 100%;
}

.spinner.spinner-failure {
    border-left: 3px solid @bc-error;
    border-right: 3px solid @bc-error;

    .dark & {
        border-left: 3px solid @accent-error;
        border-right: 3px solid @accent-error;
    }

    &:before,
    &:after {
        border-left: 3px solid @bc-error;
        border-right: 3px solid @bc-error;

        .dark & {
            border-left: 3px solid @accent-error;
            border-right: 3px solid @accent-error;
        }
    }
}

.spinner.spinner-success {
    border-left: 3px solid @accent-success;
    border-right: 3px solid @accent-success;

    .dark & {
        border-left: 3px solid @accent-success;
        border-right: 3px solid @accent-success;
    }

    &:before,
    &:after {
        border-left: 3px solid @accent-success;
        border-right: 3px solid @accent-success;

        .dark & {
            border-left: 3px solid @accent-success;
            border-right: 3px solid @accent-success;
        }
    }
}

.spinner {
    display: inline-block;
    box-sizing: border-box;
    width: 14px;
    height: 14px;
    border-left: 3px solid @bc-spinner;
    border-right: 3px solid @bc-spinner;
    overflow: hidden;
    position: relative;
    visibility: hidden;

    .dark & {
        border-left: 3px solid @dark-bc-spinner;
        border-right: 3px solid @dark-bc-spinner;
    }

    &:before,
    &:after {
        border-left: 3px solid @bc-spinner;
        border-right: 3px solid @bc-spinner;
        box-sizing: border-box;
        content: "";
        display: block;
        position: absolute;
        width: 100%;
        height: 3px;
        left: 0;

        .dark & {
            border-left: 3px solid @dark-bc-spinner;
            border-right: 3px solid @dark-bc-spinner;
        }
    }
    &:before {
        top: 0;
    }
    &:after {
        bottom: 0;
    }

    &.spin {
        -webkit-animation: spinner-rotateplane 1.2s infinite ease-in-out;
        animation: spinner-rotateplane 1.2s infinite ease-in-out;
        visibility: visible;
    }

    &.large {
        width: 36px;
        height: 36px;
        border-left: 9px solid @bc-spinner;
        border-right: 9px solid @bc-spinner;

        .dark & {
            border-left: 9px solid @dark-bc-spinner;
            border-right: 9px solid @dark-bc-spinner;
        }

        &:before,
        &:after {
            border-left: 7px solid @bc-spinner;
            border-right: 7px solid @bc-spinner;
            height: 9px;

            .dark & {
                border-left: 7px solid @dark-bc-spinner;
                border-right: 7px solid @dark-bc-spinner;
            }
        }
    }

    &.inline {
        margin-left: 8px;
        position: relative;
        top: 3px;
    }
}

@-webkit-keyframes spinner-rotateplane {
    0% { -webkit-transform: perspective(120px); }
    50% { -webkit-transform: perspective(120px) rotateY(180deg); }
    100% { -webkit-transform: perspective(120px) rotateY(180deg)  rotateX(180deg); }
}
@keyframes spinner-rotateplane {
    0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
    50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
    100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); }
}



/* Problems panel & CodeInspection status bar indicator */

#status-indicators #status-inspection {
    border: none;
    cursor: default;
    width: 13px;

    &.inspection-errors, &.inspection-repair {
        cursor: pointer;
    }
}

.inspection-disabled {
    background: url(images/topcoat-inactive-15.svg) 9px 5px no-repeat;
}

.inspection-errors {
    background: url(images/topcoat-warning-15.svg) 9px 5px no-repeat;
}

.inspection-repair {
    background: url(images/topcoat-repair-15.svg) 9px 5px no-repeat;
}

.inspection-errors:hover, .inspection-repair:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.inspection-errors:active, .inspection-repair:active {
    background-color: rgba(0, 0, 0, 0.05);
}

.inspection-valid {
    background: url(images/topcoat-okay-15.svg) 9px 5px no-repeat;
}

.line-icon-problem_type_error {
    color: @error-underline-text;
}
.line-icon-problem_type_warning {
    color: @warn-underline-text;
}
.line-icon-problem_type_info {
    color: @info-underline-text;
}
.line-icon-problem_type_spell {
    color: @spell-underline-text;
}

.CodeMirror .code-inspection-gutter {
    width: 1em;
    background-color: transparent;
    text-align: center;
}

.brackets-inspection-gutter-marker {
    cursor: default;
    display: inline-flex;
    line-height: 1em;
    height: 1em;
    width: 1em;
    font-size: .7em;
    pointer-events: auto;
}

#problems-panel {
    .user-select(text);  // allow selecting error messages for easy web searching
    .toolbar {
        padding: 9px 8px;
    }
    .title {
        margin-left: 4px;
    }
    .line {
        text-align: right;  // make line number line up with editor line numbers
    }

    .line-icon {
        vertical-align: middle;

        .line-icon-default {
            width: 20px;
            height: 18px;
            background-image: url(images/topcoat-inactive-15.svg);
            background-repeat: no-repeat;
            background-position: 0px 1px;
        }
    }

    .line-text {
        white-space: nowrap;
        width: auto;
        padding-left: 5px;
    }

    .line-snippet {
        white-space: nowrap;
        width: 100%;
        padding-left: 10px;
    }

    .inspector-section > td {
        padding-left: 5px;
    }

    .table-copy-err-button {
        visibility: hidden;
        margin: 0 0 0 0;
    }

    .inspector-line:hover .table-copy-err-button {
        visibility: visible;
    }
}

.code-inspection-quick-view-item .copy-qv-error-text-btn {
    visibility: hidden;
}

.code-inspection-quick-view-item:hover .copy-qv-error-text-btn {
    visibility: visible;
}

/* Line up label text and input text */
label input {
    position: relative;
    top: -2px;
}

/* Live Preview */

.live-preview-custom-banner {
    display: flex;
    flex-direction: row;
    background-color: #1E90FF;
    color: white;
    justify-content: flex-end;
    align-items: center;
}

// CodeMirror uses inline styles for active line number, so must use !important here to override
.live-preview-sync-error .CodeMirror-linenumber {
    background-color: @live-preview-sync-error-background !important;
    color: @live-preview-sync-error-color !important;
}

/* Quick Edit, Quick Docs */
.popover-message {
    position: absolute;
    top: 0;
    left: 0;
    z-index: @z-index-brackets-inline-editor-error;
    opacity: 1.0;

    -webkit-transform: scale(0);
    transform: scale(0);

    .text {
        padding: 5px 10px;
        background-color: @bc-error;
        border-radius: 3px;
        color: @bc-text-alt;
        box-shadow: 0 3px 9px @bc-shadow;
        white-space: nowrap;

        .dark & {
            background-color: @dark-bc-error;
            border-radius: 3px;
            color: @dark-bc-text-alt;
            box-shadow: 0 3px 9px @dark-bc-shadow;
        }
    }
    .arrowAbove {
        height: 0;
        width: 0;
        border-width: 0 10px 10px 10px;
        border-color: transparent transparent @bc-error transparent;
        border-style: solid;

        .dark & {
            border-color: transparent transparent @dark-bc-error transparent;
        }
    }
    .arrowBelow {
        height: 0;
        width: 0;
        border-width: 10px 10px 0 10px;
        border-color: @bc-error transparent transparent transparent;
        border-style: solid;

        .dark & {
            border-color: @dark-bc-error transparent transparent transparent;
        }
    }
    &.animateOpen {
        transition: -webkit-transform 125ms;
        transition: transform 125ms;
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    &.animateClose {
        // Make the animation use the GPU--especially important for retina.
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        transition: opacity 500ms 5s ease-in, -webkit-transform 500ms 5s;
        transition: opacity 500ms 5s ease-in, transform 500ms 5s;
        opacity: 0.0;
    }
    &.open {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

.emphasized {
    font-weight: 900;
    font-size: 1.01em;
}

/* Extension Manager */
.install-validating-message {
    display: none;
}

#hidden-editors {
    display: none;
}

.theme-settings {
    .line-height-slider {
        padding-top: 5px;
    }
    .fontLineHeightSlider, .scrollSensitivitySlider {
        width: 220px;
    }
    .fontLineHeightValue, .scrollSensitivityValue {
        margin-left: 3px;
        padding-top: 5px;
    }
}

.theme-settings td {
    padding: 2px;
}

.theme-settings .modal-body {
    min-height: 300px;
    max-height: 300px;
}

#status-language button, #status-encoding button {
    width: auto;
}

// notification popup

#toast-notification-container {
    position: absolute;
    max-width: 250px;
    top: 0;
    right: 39px;
    display: flex;
    flex-direction: column;
    z-index: 100;
    height: 100%;
    pointer-events: none;
}

.notification-popup-container {
    border-radius: 3px;
    background: var(--bc-toast-info-bg-color);
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.24);
    padding: 9px 12px 9px 12px;
    font-family: "SourceSansPro", serif;
    color: black; // text color
    line-height: 1.5;
    margin-top: 7px;

    /* animated properties */
    opacity: 0;
    transform: translateY(-50px);
    pointer-events: all;
}

.notification-dialog-content strong {
    color: black; // text color
}

.notification-ui-tooltip.style-danger, .notification-ui-arrow.style-danger, .notification-popup-container.style-danger {
    background: var(--bc-toast-danger-bg-color);
    a {
        color: white;
        cursor: pointer;
    }
}
.notification-ui-tooltip.style-error, .notification-ui-arrow.style-error, .notification-popup-container.style-error {
    background: var(--bc-toast-error-bg-color);
    a {
        color: white;
        cursor: pointer;
    }
}
.notification-ui-tooltip.style-info, .notification-ui-arrow.style-info, .notification-popup-container.style-info {
    background: var(--bc-toast-info-bg-color);
    a {
        color: blue;
        cursor: pointer;
    }
}
.notification-ui-tooltip.style-success, .notification-ui-arrow.style-success, .notification-popup-container.style-success {
    background: var(--bc-toast-success-bg-color);
    a {
        color: darkblue;
        cursor: pointer;
    }
}
.notification-ui-tooltip.style-warning, .notification-ui-arrow.style-warning, .notification-popup-container.style-warning {
    background: var(--bc-toast-warning-bg-color);
    a {
        color: white;
        cursor: pointer;
    }
}

.notification-popup-container.animateOpen {
    opacity: 1;
    transition: transform 500ms, opacity 500ms;
    transition-delay: 2s;
    transform: translateY(0);
}

.notification-popup-container.instantOpen {
    opacity: 1;
    transition: transform 100ms, opacity 100ms;
    transition-delay: 100ms;
    transform: translateY(0);
}

.notification-popup-container.animateClose {
    transition: transform 500ms, opacity 500ms;
}

.notification-popup-container p {
    margin-bottom: 5px;
}

.notification-popup-close-button {
    font-size: 24px;
    font-weight: 900;
    position: absolute;
    top: 0;
    right: 8px;
    cursor: pointer;
    color: @notification-text;
}
.notification-popup-close-button.arrow {
    top: 8px;
}
.notification-popup-close-button:hover {
    color: white;
}

.notification-dialog-title {
    font-size: 16px;
    font-weight: 500;
    padding-right: 25px;
}

.notification-dialog-content a {
    a {
        color: @bc-text-beige;
    }
    a:hover {
        color: @bc-text-alt;
    }
}

/* Inline toast: positioned inside a relative/absolute container */
.inline-toast {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.4;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 10;
    background: rgba(0, 0, 0, 0.75);
    color: #e0e0e0;
}

.inline-toast.visible {
    opacity: 1;
}

/* HUD overlay: centered macOS-style notification (zoom, volume, etc.) */
.hud-overlay {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 140px;
    height: 120px;
    border-radius: 16px;
    background: rgba(30, 30, 30, 0.85);
    color: #e0e0e0;
    z-index: 10000;
    pointer-events: none;
    user-select: none;
    i {
        font-size: 40px;
        margin-bottom: 8px;
    }
    .hud-label {
        font-size: 18px;
        font-weight: 600;
        letter-spacing: 0.5px;
    }
}

.inline-toast kbd {
    display: inline-block;
    padding: 1px 5px;
    margin: 0 2px;
    border-radius: 3px;
    font-family: inherit;
    font-size: 11px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
}

.github-stars-button {
    .starContainer {
        --fa-style-family-brands: "Font Awesome 6 Brands";
        --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
        --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
        --fa-style-family-classic: "Font Awesome 6 Free";
        --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
        font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
        Helvetica, Arial, sans-serif;
        display: inline-flex;
        height: 14px;
        padding: 2px 5px;
        font-size: 11px;
        font-weight: 600;
        line-height: 14px;
        vertical-align: bottom;
        cursor: pointer;
        user-select: none;
        background-repeat: repeat-x;
        background-position: -1px -1px;
        background-size: 110% 110%;
        color: #24292f;
        background-color: #ebf0f4;
        border: 1px solid rgba(27, 31, 36, .15);
        background-image:  linear-gradient(180deg, #e5e9e9, #e5e9e9 90%);
        border-radius: 0.25em 0 0 0.25em;
    }
    .starContainer:hover{
        color: darkgoldenrod;
    }
    .star{
        margin-right: 4px;
        margin-top: 1px;
    }
    .count {
        --fa-style-family-brands: "Font Awesome 6 Brands";
        --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
        --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
        --fa-style-family-classic: "Font Awesome 6 Free";
        --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
        font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
        Helvetica, Arial, sans-serif;
        display: inline-flex;
        height: 14px;
        padding: 2px 5px;
        font-size: 11px;
        font-weight: 600;
        line-height: 14px;
        vertical-align: bottom;
        cursor: pointer;
        user-select: none;
        background-repeat: repeat-x;
        background-position: -1px -1px;
        background-size: 110% 110%;
        border-radius: 0 0.25em 0.44em 0;
        color: #24292f;
        background-color: #e5e9e9;
        border: 1px solid rgba(27, 31, 36, .15);
        border-left-width: 0;
    }
    .count:hover{
        color: darkgoldenrod;
    }
    .parent {
        --fa-style-family-brands: "Font Awesome 6 Brands";
        --fa-font-brands: normal 400 -2em/1 "Font Awesome 6 Brands";
        --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
        --fa-style-family-classic: "Font Awesome 6 Free";
        --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
        display: inline-block;
        overflow: hidden;
        font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
        Helvetica, Arial, sans-serif;
        font-size: 0;
        line-height: 0;
        white-space: nowrap;
    }

    .dark & {
        .starContainer {
            --fa-style-family-brands: "Font Awesome 6 Brands";
            --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
            --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
            --fa-style-family-classic: "Font Awesome 6 Free";
            --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
            font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
            Helvetica, Arial, sans-serif;
            white-space: nowrap;
            text-decoration: none;
            outline: 0;
            position: relative;
            display: inline-flex;
            height: 14px;
            padding: 2px 5px;
            font-size: 11px;
            font-weight: 600;
            line-height: 14px;
            vertical-align: bottom;
            cursor: pointer;
            user-select: none;
            background-repeat: repeat-x;
            background-position: -1px -1px;
            background-size: 110% 110%;
            border: 1px solid;
            color: #c9d1d9;
            background-color: #0d1117;
            border-color: rgba(240, 246, 252, 0.1);
            background-image: linear-gradient(180deg, #333, #333 90%);
            border-radius: 0.25em 0 0 0.25em;
        }
        .starContainer:hover{
            color: darkgoldenrod;
        }
        .star{
            margin-right: 4px;
            margin-top: 1px;
        }
        .count {
            --fa-style-family-brands: "Font Awesome 6 Brands";
            --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
            --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
            --fa-style-family-classic: "Font Awesome 6 Free";
            --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
            font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
            Helvetica, Arial, sans-serif;
            white-space: nowrap;
            text-decoration: none;
            outline: 0;
            position: relative;
            display: inline-flex;
            height: 14px;
            padding: 2px 5px;
            font-size: 11px;
            font-weight: 600;
            line-height: 14px;
            vertical-align: bottom;
            cursor: pointer;
            user-select: none;
            background-repeat: repeat-x;
            background-position: -1px -1px;
            background-size: 110% 110%;
            border: 1px solid;
            border-left: 0;
            border-radius: 0 0.25em 0.44em 0;
            color: #c9d1d9;
            background-color: #333;
            border-color: rgba(240, 246, 252, 0.1);
        }
        .count:hover{
            color: darkgoldenrod;
        }
        .parent {
            --fa-style-family-brands: "Font Awesome 6 Brands";
            --fa-font-brands: normal 400 -2em/1 "Font Awesome 6 Brands";
            --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
            --fa-style-family-classic: "Font Awesome 6 Free";
            --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
            display: inline-block;
            overflow: hidden;
            font-family: -apple-system, BlinkMacSystemFont, Segoe UI,
            Helvetica, Arial, sans-serif;
            font-size: 0;
            line-height: 0;
            white-space: nowrap;
        }
    }
}

.toggle-switch {
    --width: 90px; // just override this to se custom width
    --height: 28px;
    .toggle {
        position: relative;
        display: inline-block;
        width: var(--width);
        height: var(--height);
        box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.3);
        border-radius: 3px;
        cursor: pointer;
    }

    .toggle input {
        display: none;
    }

    .toggle .slider {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 3px;
        .dark & {
            background-color: #555;
        }
        transition: all 0.4s ease-in-out;
    }

    .toggle .slider::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: calc(var(--height));
        height: calc(var(--height));
        border-radius: 3px;
        background-color: #fff;
        box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.3);
        transition: all 0.4s ease-in-out;
    }

    .toggle input:checked + .slider {
        background-color: @dark-bc-primary-btn-bg;
    }

    .toggle input:checked + .slider::before {
        transform: translateX(calc(var(--width) - var(--height)));
    }
    label{
        margin-bottom: 0;
    }
    /* Adding text in the toggle button */
    .toggle .labels {
        position: absolute;
        top: 5px;
        left: 0;
        width: 100%;
        height: 100%;
        font-size: .9em;
        transition: all 0.4s ease-in-out;
    }

    .toggle .labels::before {
        content: attr(data-on);
        position: absolute;
        left: 5px;
        color: @dark-bc-text-alt;
        opacity: 0;
        transition: all 0.4s ease-in-out;
    }

    .toggle .labels::after {
        content: attr(data-off);
        position: absolute;
        right: 5px;
        color: @bc-text-emphasized;
        .dark & {
            color: @dark-bc-text-alt;
        }
        opacity: 1;
        transition: all 0.4s ease-in-out;
    }

    .toggle input:checked ~ .labels::after {
        opacity: 0;
    }

    .toggle input:checked ~ .labels::before {
        opacity: 1;
    }
}

.new-project-modal-dialog{
    background-color:#3C3F41;
    width: 750px;
    height: 570px;
    display: flex;
    flex-direction: column;
    justify-content: space-between
}

.notification-popup-container.survey-notification-big {
    margin-left: -274px;
    background-color: #f3f5f9; // match with survey planet
    .notification-popup-close-button:hover {
        color: @bc-primary-btn-border-focused-glow;
    }
}
