make html menus scroll to avoid truncation

// Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.

/* Brackets patterns (and overrides and re-definitions of Bootstrap patterns)
 *
 * This file should contain all _reusable_ UI elements / LESS definitions
 * That is, things that will either a.) be used for more than one element or
 * b.) exist in multiple versions of brackets (e.g. App, In-Browser, etc.)
 *
 * Note that if you want a UI element to be themeable, you should put the
 * themeable part in "brackets_theme_default" as variables/mixins.
 *
 */

/* Variable Overrides */

@tooltipBackground: #fff;
@tooltipArrowColor: @tooltipBackground;

/* Links */

a {
    color: @tc-link;
    text-decoration: none;
}

a:hover {
    color: @tc-link-hover;
    text-decoration: underline;
}

a:focus {
    color: @tc-link-hover;
    outline: 0;
    border-radius: 3px;
    box-shadow: @tc-input-glow;
    text-decoration: none;
}

.panel {
    .vbox;
    .box-flex(1);

    padding: 0;
    margin: 0;

    background: @project-panel-base-color url("images/propertiespanel_back.png") repeat-x 0 0;
    color: #bbb;
    letter-spacing: .01em;
    text-shadow: 0px 1px 2px rgba(0,0,0,.5);
}

/* Toolbar-related styles */

/* Simple toolbar layout (project panel, find in files, etc.)
   We don't set this directly on .toolbar because it'd be a pain to override all the pieces
   if other code (e.g. #main-toolbar) wants to do a different layout */
.simple-toolbar-layout.toolbar {
    .hbox;
    .box-align(center);
    overflow: hidden;

    .title-wrapper {
        /* This is necessary because text-overflow: ellipsis doesn't work when it's set
           directly on a flexing box in Chrome currently. */
        .box-flex(1);
    }
    .buttons {
        .hbox;
        margin-left: 4px;
    }
}

/* Horizontal titlebar/menubar (in-browser only)

   CSS hack based on this code: http://jsfiddle.net/cD657/3/ (via StackOverflow)
   This center-aligns the title across the full width of the toolbar (ignoring the width of the nav floated
   left and buttons floated right), yet still have the browser automatically wrap the floats onto a 2nd row
   if they collide with the title. But the centered content must be a block element with fixed width. Since
   the editor title (filename) varies in width, we rely on JS code to update the width whenever the string
   changes.

   Another wrinkle: wrapping to/from the two-line toolbar layout requires notifying the CodeMirror editor that
   its height changed. Currently, we assume this can ONLY happen in two cases:
    - the window resizes (handled by general listener in EditorManager)
    - title content changes (the same JS code that sets .title-wrapper's fixed width is expected to handle this)
*/
#titlebar {
    // Visible only in-browser
    body.has-appshell-menus & {
        display: none;
    }

    text-align: center;
    .nav {  // menubar
        float: left;
        text-align: left;
        > li {
            float: left;
        }
        .dropdown-menu {
            //max-height: calc(~"100vh - 34px"); doesn't seem to work...
            max-height: 90vh;
            overflow-y: auto;
        }
    }
    .title {
        float: none;
        display: inline;  // must be an inline for JS to measure text size
    }
    .title-wrapper {
        margin: 0 auto;
        display: block;  // must be a block for the fixed width applied by JS to be respected
        // width set in px is appled/updated by JavaScript in DocumentCommandHandlers
    }
}

/* Vertical icon toolbar on right */
#main-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    width: @main-toolbar-width;
    height: 100%;
    box-sizing: border-box;

    background: @main-toolbar-background-color;
    padding: 7px 0px;

    // Ensure icons are vertically stacked & horizontally centered
    .vbox;
    .box-flex(1);
    text-align: center;

    // Ensure that it stays on top
    z-index: @z-index-brackets-main-toolbar;

    .buttons,
    .bottom-buttons {
        text-align: center;
        margin: 0;

        > a {
            border-radius: 3px;
            background-repeat: no-repeat;
            display: block;
            height: 24px;
            margin: 7px 0px 0px 3px;
            width: 24px;
        }

        > a:hover {
            background-color: rgba(0, 0, 0, 0.24) !important;
        }

        > a:active {
            background-color: rgba(0, 0, 0, 0.66) !important;
        }
    }

    .bottom-buttons {
        position: absolute;
        bottom: 5px;
    }
}

/* Toolbar appearance - shared by all toolbars, independent of layout */

@toolbar-top-gap-px: 5px;

.toolbar {
    font-size: @label-font-size;
    padding: 4px 8px;
    background-color: @bc-white;
    color: @bc-black;

    position: relative;  // needed for abs-positioned elements in toolbar (e.g. right-aligned "X")

    .title-wrapper {
        // Title is taller than menu text, so reduce top padding to keep its baseline aligned
        padding: (@toolbar-top-gap-px - 3px) 0 3px 0;
    }
    .title {
        font-size: @title-font-size;
        line-height: normal;
        font-weight: @font-weight-light;

        // On Win, the size+weight combo used above does not look good for the bullet character
        .dirty-dot {
            font-weight: normal;
        }

        white-space: nowrap;
        overflow: hidden;
        -ms-text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    .buttons {
        margin: @toolbar-top-gap-px 0 0 4px;

        span, a {
            cursor: default;
        }
    }
}

/* Menu-related styles */

@menubar-top-padding: 8px;
@menubar-bottom-padding: 6px;
@menubar-h-padding: 9px;
@item-highlight-color: #e0f0fa;

// Dropdown Menu Animation
.dropdown-menu {
    .animation(dropdown, 90ms, cubic-bezier(0, .97, .2, .99), 0, 1);
    -webkit-transform-origin: 0 0;
    border: none;
    border-radius: @tc-control-border-radius;
}

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

// Code hints don't need scaling navigation so we're removing it

.codehint-menu.open .dropdown-menu {
    -webkit-animation: none;
}

.toolbar .nav, .context-menu, .codehint-menu {

    // The 1px adjustments here are to account for the border around the top-level menu items.
    margin: (@toolbar-top-gap-px - @menubar-top-padding - 1) 0 (-@menubar-bottom-padding + 1) (-@menubar-h-padding + 4);

    // General item appearance
    a {
        color: @bc-black;
        text-shadow: none;
        cursor: default;
    }

    // Menubar item appearance
    .dropdown-toggle {
        padding: @menubar-top-padding @menubar-h-padding @menubar-bottom-padding;
        border: 1px solid rgba(0, 0, 0, 0); // transparent border just to hold the layout so it doesn't shift on hover
        color: fadeout(@bc-black, 25%);
        font-weight: @font-weight-light;
    }
    .dropdown-toggle:focus {
        background-color: @bc-white;
        outline: 0;
    }
    .dropdown-toggle:hover, .dropdown.open .dropdown-toggle {
        /* Note: we need several selectors for this in order to match the specificity of all the various Bootstrap
           color rules we need to override (and Bootstrap has several selectors because the colors really differ
           in their defaults). */
        color: @bc-black;
        background: @item-highlight-color;
        border-color: #dbeaf4;
    }

    // no triangle icon after menu items
    .dropdown-toggle:after {
        border: 0;
        margin: 0;
    }

    // Menu dropdown appearance
    .dropdown-menu {
        // Offset for better alignment with button
        top: 34px;
        margin-top: 0;

        // Fix for #4593: don't let narrow parent (menubar item) cause text wrap at the float boundary between
        // the menu item label and keyboard shortcut. This takes away the "gotta get narrower" pressure.
        // This technique won't work on all browsers; see comments in #4593 for alternative options.
        width: -webkit-max-content;
        width: -moz-max-content;

        background-color: @bc-white;
        .border-radius(0 0 3px 3px);
        box-shadow: @tc-dropdown-shadow;
        border: none;

        // Menu items
        li {
            a {
                font-size: @menu-item-font-size;
                line-height: 18px;

                // Slightly less padding on left to account for checkmark.
                // More padding on top than bottom to center font within its bg highlight better.
                padding: 2px 10px 0px 6px;

                color: @bc-black;
                text-shadow: none;
                white-space: nowrap;
                .box-shadow(none);

                &.wide-result {
                    white-space: normal;
                }

                &:hover, &.highlight {
                    color: @bc-black;
                    background: @item-highlight-color;
                }

                &.disabled {
                    color: @bc-gray;

                    &:hover {
                        background: @bc-white;
                    }
                }

                /* hidden checkmark for all list item content ensures consistent left spacing */
                &::before {
                    content: "✓\00a0"; /* non-breaking space */
                    visibility: hidden;
                }
                /* toggle checkmark visibility */
                &.checked::before {
                    visibility: visible;
                }
            }
        }

        .divider {
            background-color: #eaeaea;
            border: 0;
            margin: 5px 1px;
        }
    }

    // Ensure a minimum amount of space to the left of the shortcut
    .menu-shortcut {
        float: right;
        margin-left: 15px;
    }
}

/* Context menu styles */

.context-menu, .codehint-menu {
    position: absolute;
    z-index: @z-index-brackets-context-menu-base;
    list-style-type: none;

    .dropdown-menu {
        .border-radius(3px);
        box-shadow: @tc-dropdown-shadow;
    }

    .menu-shortcut {
        float: right;
    }
}

.codehint-menu {
    opacity: 0;
    .dropdown-menu {
        box-shadow: @tc-dropdown-shadow;
        max-height: 160px;
        overflow-y: auto;
        padding: 0;

        li {
            a {
                // Less padding than on menus. More padding on top than bottom
                // to center font within its bg highlight better.
                padding: 2px 20px 0px 0px;

                // Don't show highlighting on hover for code hints...
                &:hover {
                    color: @bc-black;
                    background-color: @bc-white;
                }

                // ...except for selected item
                &.highlight:hover {
                    color: @bc-black;
                    background-color: @item-highlight-color;
                }
            }
        }
    }
}

.codehint-menu.open {
    opacity: 1;
    transition: opacity 67ms cubic-bezier(0.03, 0.78, 0.17, 0.97);
}

.codehint-menu.apply-transition {
    transition: right 167ms, left 167ms;
}

#context-menu-bar {
    margin: 0;
}

/* DropdownButton widget */

.btn-dropdown, .btn-dropdown.btn-mini {
    position: relative;   // needed to position ::after arrow
    padding-right: 24px;  // makes room for ::after arrow
}
.btn-dropdown::after {
    content: "";
    display: block;
    height: 0px;
    width: 0px;
    position: absolute;
    right: 6px;
    top: 11px;

    /* dropdown triangle */
    border-top: 4px solid @tc-gray-component-triangle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
}
.btn-dropdown.btn-mini::after {
    top: 7px;
}

.dropdownbutton-popup {
    &.dropdown-menu:focus {
        outline: none;
    }

    &.dropdown-menu {
        border: none;
        border-radius: @tc-control-border-radius;
        padding: 0;
        position: absolute;
        display: block;
        box-shadow: @tc-dropdown-shadow;
        max-height: 160px;
        overflow-y: auto;
        max-width: none;
        min-width: 200px;
        z-index: @z-index-brackets-stylesheet-menu;
    }

    &.dropdown-menu li a {
        padding: 1px 15px 1px 15px;
    }

    &.dropdown-menu .stylesheet-link {
        display: block;
    }

    &.dropdown-menu a.selected {
        background: @tc-highlight;
        color: @bc-black !important;
    }

    &.dropdown-menu a:not(.selected):hover {
         background: none;
    }
}

/* Inline editor stylesheet-picker DropdownButton */

.stylesheet-button.btn-mini {
    margin-left: 8px;
    top: -1px;
}

.dropdownbutton-popup {
    .stylesheet-link, .stylesheet-name {
        white-space: nowrap;
    }

    .stylesheet-name {
        color: @tc-text;
    }

    .stylesheet-dir {
        color: @tc-quiet-text;
    }
}

/* Dialog-related styles */

.modal-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    overflow: auto;
    display: table;
}

.modal-inner-wrapper {
    display: table-cell;
    vertical-align: middle;
}

.modal {
    background-color: @tc-gray-panel;
    border: 1px solid rgba(0, 0, 0, 0.1);
    min-width: 200px;
    position: relative;
    top: 0;
    margin: auto;
    .animation(modal, 240ms, cubic-bezier(0, 1.05, .35, 1), 0, 1);
}

.modal .close {
    cursor: default;
    margin: 7px 5px 0 0;
}

.modal-header {
    background: @tc-gray-panel-top-bar;
    border-radius: 4px 4px 0 0;
    border-bottom: 1px solid @tc-gray-panel-separator;
}

.modal-body {
    background-color: @tc-gray-panel;
}

.modal-body.no-padding {
    padding: 0;
}

.modal-body.no-padding td:first-child,
.modal-body.no-padding th:first-child {
    padding-left: 15px;
}

.modal-body.no-padding td:last-child,
.modal-body.no-padding th:last-child {
    padding-right: 15px;
}

.modal-body, .modal-header, .modal-footer {
    /* See styles/bootstrap/patterns.less .modal class.
       Pushing this value down to .modal-header and .modal-body
       to allow the overall modal to take the width of the footer */
    width: auto;
}

.modal-footer {
    text-align: right;
    background-color: @tc-gray-panel;
    border-top: 1px solid @tc-gray-panel-separator;
    box-shadow: none;
    padding: 10px 15px 12px;
    white-space: nowrap;
}

.modal-footer .btn {
    float: none;
}
.modal-footer .left {
    float: left;

    /* Transfer the margin to the right of each left-aligned button, so the left side lines up properly
     * with the title.
     */
    margin-left: 0;
    margin-right: 5px;
}
.modal-footer .btn:not(.left) {
    margin-left: 5px;
}

.platform-win {
    /* Reverse Save/Cancel button order on Win */
    .modal-footer {
        text-align: left;
    }
    .modal-footer .btn:not(.left) {
        float: right;
    }
}

.modal-body ul {
    /* Bootstrap's type.less defines a heavy margin-bottom on ul/ol that we don't want in dialogs
       since they have heavy padding instead. */
    margin-bottom: 0;
}

.modal-backdrop {
    .animation (backdrop, 200ms, linear, 0, 1);
    opacity: 0.4;
}

@-webkit-keyframes backdrop {
    0%   { opacity: 0; -webkit-transform: translate3d(0, 0, 0); }
    100% { opacity: 0.4; -webkit-transform: translate3d(0, 0, 0); }
}
@keyframes backdrop {
    0%   { opacity: 0; transform: translate3d(0, 0, 0); }
    100% { opacity: 0.4; transform: translate3d(0, 0, 0); }
}

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

.dialog-title {
    color: @tc-light-weight-text;
    margin-bottom: 0;
    margin-top: 0;
    font-size: 22px;
    line-height: 30px;
    font-weight: normal;
}

.dialog-message {
    color: @tc-text;
    font-size: 14px;
    line-height: 20px;
    margin-bottom: 20px;
    font-weight: normal;
}

.dialog-message li {
    line-height: 20px;
    color: @tc-light-weight-text;
    padding: 0 0 5px;
}

.dialog-message select {
    margin-left: 10px;
}

.dialog-message select {
    margin-left: 10px;
}

.dialog-list {
    list-style: none;
    margin: 5px 0 20px 10px;
}

.dialog-list > li:before {
    content: "•  ";
    color: @tc-input-border;
    font-size: 1.5em;
    position: relative;
    top: 1px;
}

.dialog-filename {
    word-wrap: break-word;

    font-weight: @font-weight-semibold;
}

/* Any Dialog text in this style is automatically turned into a link that opens in the browser. Use href for the link's target. */
a[href^="http"] {
    cursor: pointer;
}

/* Update dialog */
.update-dialog .modal-body {
    position: relative;
    .update-icon {
        position: absolute;
        left: 30px; // relative to border of modal-body
        top: 20px;
        width: 80px;
        height: 80px;
    }
    .update-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        .update-info {
            max-height: 200px;
            overflow: auto;

            // Enable text selection
            cursor: auto;
            .user-select(text);

            h3 {
                font-weight: normal;
                margin: 0 0 10px;
            }

            ul {
                margin-bottom: 0 0 20px;

                > li {
                    margin-bottom: 10px;
                }
            }
        }
    }
}

/* Project Settings and Install Extension dialogs */
.project-settings-dialog .modal-body, .install-extension-dialog .modal-body {
    text-align: center;

    .field-container {
        display: inline-block;
    }
    label {
        float: none;
    }
    input.url {
        display: inline;
    }
}

.project-settings-dialog .modal-body input.url {
    margin: 0 0 0 5px;
    width: 400px;
}

.install-extension-dialog .modal-body input.url {
    margin: 10px 0;
    width: 550px;
}

/* Extension Manager dialog */
.extension-manager-dialog {
    background-color: #d4d7d7;
    width: 760px;

    .modal-header {
        border-bottom: none;
        padding: 0;

        .nav-tabs {
            margin: 0;
            border-color: #c3c6c5;

            /* Tab styling */
            > li > a {
                min-width: 80px;
                min-height: 60px;
                color: black;
                cursor: default;
                font-size: 12px;

                .box;
                box-sizing: border-box;
                .box-align(center);
                .box-pack(center);
                padding: 0;
                margin: 0;

                text-align: center;

                &:hover {
                    background-color: rgba(0, 0, 0, 0.04);
                    border-color: rgba(0, 0, 0, 0.04);
                }

                > img {
                    margin-top: 5px;
                    padding-bottom: 2px;
                }
            }

            /* Remove border-left from the first tab */
            > li:nth-child(1) > a {
                border-left: transparent;
            }

            /* Colors for the active tab, remove bottom border */
            > .active > a,
            > .active > a:hover {
                background-color: #dfe2e2;
                border-color: #b4b7b7 #b4b7b7 transparent #b4b7b7;
            }

            > li {
                position: relative;  // for positioning .notification icon
                .notification {
                    display: none;  // hidden by default
                    background-color: #91CC41;
                    color: white;
                    border-radius: 16px;
                    padding: 0 5px;
                    position: absolute;
                    right: 19px;
                    top: 8px;
                }
            }
        }

        /* Search box */
        > :nth-child(2) {
            position: absolute;
            top: 15px;
            right: 15px;
        }
        .search {
            background: #fff url("images/topcoat-search-20.svg") 3px 4px no-repeat;
            float: right;
            margin: 0;
            padding-left: 27px;
            padding-right: 20px;
        }
        .search-clear {
            background: transparent;
            position: relative;
            display: block;
            float: right;
            font-size: 20px;
            left: -6px;
            line-height: 0;
            margin: 6px 0 0 -20px;
            opacity: 0.5;
            padding: 0;
            width: 16px;
            height: 16px;
            z-index: 1;
            border: 0;

            &:disabled {
                opacity: 0.3;
                cursor: default;
            }
        }
        .search-clear:active {
            opacity: 0.7;
            &:disabled {
                opacity: 0.3;
            }
        }
    }
    .modal-body {
        height: 400px;
        overflow-y: scroll;
        background-color: @tc-gray-panel;
        padding: 0;

        .empty-message {
            position: absolute;
            top: 50%;
            width: 100%;
            margin-top: -1em;
            text-align: center;
        }

        .info-message {
            background-color: @tc-gray-panel;
            padding: 1em;
        }

        .spinner {
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -18px;
            margin-left: -18px;
        }

        .extension-list {
            td {
                height: 2em;
            }
            .ext-info {
                padding-left: 15px;
                width: 220px;
            }
            .ext-name {
                color: @tc-text;
                display: block;
                font-size: 15px;
                font-weight: normal;
                .user-select(text);
                cursor: text;
            }
            .ext-desc {
                width: auto;
                color: @tc-text;
                font-weight: normal;
                .user-select(text);
                cursor: text;
            }
            .ext-keywords {
                color: @tc-input-placeholder-text;
            }
            .muted {
                color: @tc-input-placeholder-text;
            }
            .alert {
                font-size: 11px;
                margin: 0 0 10px;
            }
            .error {
                font-weight: @font-weight-semibold;
                color: @tc-error-text;
            }
            .ext-version,
            .ext-date,
            .ext-author {
                font-size: 11px;
            }
            .ext-author {
                display: block;
            }
            .ext-action {
                font-size: 12px;
                padding-right: 15px;
                text-align: right;
                vertical-align: middle;
                width: 150px;
            }
            .load-error {
                display: inline-block;
                margin-top: 240px;
            }
        }
    }
}

/* About dialog */
.about-dialog .modal-body {
    // Simple two-column layout: image on left, text taking up remaining space on right
    position: relative;
    .about-icon {
        position: absolute;
        left: 19px;  // relative to border of modal-body (bounds outside padding)
        top:  15px;
        width: 100px;
        height: 100px;
    }
    .about-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        #about-build-number {
            color: @tc-light-weight-quiet-text;
        }
        .about-info {
            max-height: 300px;
            overflow: auto;
        }
        .about-contributors {
            min-height: 100px;

            a {
                text-decoration: none;
            }
        }
        .about-contributors img {
            opacity: 0;
            -webkit-transition: opacity 1s;
            -moz-transition: opacity 1s;
            -o-transition: opacity 1s;
            transition: opacity 1s;
        }
    }

    h2 {
        font-weight: normal;
        font-size: 25px;
        margin-bottom: -4px;
        margin-top: 3px;
    }
    .dialog-message {
        font-size: 14px;
        line-height: 17px;

        // Enable text selection
        cursor: auto;
        .user-select(text);
    }
}

/* Input */
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
    background-color: @tc-input-background;
    border: 1px solid @tc-input-border;
    color: @tc-light-weight-text;
    font-size: (@baseFontSize + 1px);
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    .border-radius(@tc-control-border-radius);
    .box-shadow(@tc-input-inner-shadow);
    .transition(~"border linear 180ms, box-shadow linear 180ms");

    &::-webkit-input-placeholder {
        color: @tc-input-placeholder-text;
        font-weight: normal;
        -webkit-font-smoothing: antialiased;
    }

    &:focus {
        outline: 0;
        background-color: @tc-input-background;
        text-shadow: none;
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-input-inner-shadow, @tc-input-glow;
    }

    &:disabled {
        opacity: @tc-disabled-opacity;
        cursor: default;
    }
}

/* Twipsy tooltips */

.tooltip {
    &.in { opacity: 1; }
}

.tooltip-inner {
    box-shadow: @tc-dropdown-shadow;
    color: @tc-text;
    max-width: 220px;
    text-align: left;
}

.tooltip {
    &.top .tooltip-arrow {
        left: 50%;
    }
    &.right .tooltip-arrow {
        top: 15px;
    }
    &.left .tooltip-arrow {
        top: 15px;
    }
    &.bottom .tooltip-arrow {
        left: 50%;
    }
}

/* Buttons */

// Base .btn styles

.btn:hover,
.btn:focus,
.btn.disabled,
.btn[disabled] {
    background-color: @tc-button-background;
}

.btn.primary:hover,
.btn.primary:focus,
.btn.primary.disabled,
.btn.primary[disabled] {
    background-color: @tc-call-to-action;
}

.btn {
    // Button Base
    background-image: none;

    background-color: @tc-button-background;
    color: @tc-text;
    cursor: default;
    font-size: (@baseFontSize + 1);
    font-weight: @font-weight-semibold;
    line-height: normal;
    border: 1px solid @tc-gray-component-border;
    .border-radius(@tc-control-border-radius);
    box-shadow: @tc-button-highlight;
    -webkit-font-smoothing: antialiased;

    &:hover {
        background-color: @tc-button-background;
        color: @tc-text;
    }

    // Focus state for keyboard and accessibility
    &:focus {
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-button-highlight, @tc-input-glow;
        color: @tc-text;
        outline: none;
    }

    // Active and Disabled states
    &.active:not([disabled]),
    &:active:not([disabled]) {
        background-image: none;
        background-color: @tc-button-down-background;
        box-shadow: @tc-button-down-shadow;
        color: @tc-text;
    }

    &.disabled, &[disabled] {
        opacity: @tc-disabled-opacity;
    }

    // Primary Button Type
    &.primary {
        background-image: none;
        background-color: @tc-call-to-action;
        border: 1px solid  @tc-call-to-action-border;
        box-shadow: @tc-call-to-action-highlight;
        color: @tc-call-to-action-text;
        text-shadow: none;
        &.active,
        &:active {
            background-image: none;
            background-color: @tc-call-to-action-down;
            box-shadow: @tc-call-to-action-down-shadow;
            color: @tc-call-to-action-text;
        }

        &:focus {
            border: 1px solid @tc-call-to-action-border;
            box-shadow: @tc-call-to-action-highlight, @tc-input-glow;
            outline: none;
        }
    }

    // Update Button Type
    &.update {
        background-color: #91cc41;
        border-color: #65a015;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.27);
        color: #fff;
        font-weight: @font-weight-semibold;
        text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.24);

        &:active {
            background-color: #82b839;
            border-color: #5b8028;
            box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
            color: #fff;
        }
    }

    // Button Sizes
    &.large {
        font-size: (@baseFontSize + 1px);
        .border-radius(@tc-control-border-radius);
    }
    &.small {
        font-size: (@baseFontSize - 1px);
    }
}

.btn-alt-quiet {
    border: 1px solid transparent;
    border-radius: @tc-control-border-radius;
    text-decoration: none;
    &:hover {
        border: 1px solid @tc-alt-component-border;
        box-shadow: @tc-button-alt-highlight;
    }
    &:active {
        background: @tc-button-alt-down-background;
        border: 1px solid @tc-alt-component-border;
        box-shadow: @tc-call-to-action-down-shadow;
    }
}

.btn-mini {
    padding: 2px 6px;
    font-size: 11px;
    font-weight: normal;
    line-height: 14px;
    &:focus {
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-button-highlight, @tc-input-glow;
        outline: none;
    }
}

/* Tables */

.table, table {
    th {
        font-weight: @font-weight-semibold;
    }
    td {
        border-top: 1px solid transparent;
    }
    tbody th {
        border-top: 1px solid transparent;
    }
    .right {
        text-align: right;
    }
}

.table-striped tbody {
    tr:nth-child(odd) td,
    tr:nth-child(odd) th {
        background-color: @tc-lighter-gray; // TopCoat palette
    }
    tr:nth-child(even) td,
    tr:nth-child(even) th {
        background-color: @tc-gray-panel; // turn off bootstrap hover highlight
    }
}
.row-highlight tbody {
    tr:hover td,
    tr:hover th {
        background-color: @tc-highlight; // TopCoat palette
    }
}

/* Emphasis */

strong {
    font-weight: @font-weight-semibold;
}

/* Type */

code {
    color: @bc-black;
    background-color: transparent;
}

label {
    font-size: @label-font-size;
}

label.inline {
    display: inline;
}

/* Overriding Bootstrap's bold properties */

h1,
h2,
h3,
h4,
h5,
h6,
b,
strong,
dt,
.label {
    color: @tc-text;
    font-weight: @font-weight-semibold;
}

.alert-message a,
.form-stacked label {
    font-weight: @font-weight-semibold;
}

.alert {
    text-shadow: none;
    background-color: @tc-warning-background;
    border: none;
}
.alert,
.alert h4 {
    // Specified for the h4 to prevent conflicts of changing @headingsColor
    color: @tc-warning-text;
}

input[type="radio"],
input[type="checkbox"] {
    margin: 0;
}

input[type="checkbox"] {
    height: 13px;
    width: 13px;
    vertical-align: middle;
    border: 1px solid @tc-gray-component-border;
    border-radius: 3px;
    background-color: @tc-button-background;
    -webkit-appearance: none;
    box-shadow: @tc-button-highlight;
}

input[type="checkbox"]:active:not(:disabled) {
    background-color: @tc-button-down-background;
    box-shadow: @tc-button-down-shadow;
}

input[type="checkbox"]:focus {
    outline:none;
    border: 1px solid @tc-gray-component-focused-border;
    box-shadow: @tc-input-glow;
}

input[type="checkbox"]:checked:before {
    font-weight: bold;
    color: @tc-text;
    content: '\2713';
    -webkit-margin-start: 0;
    position: relative;
    left: 2px;
    top: -7px;
    font-size: 16px;
}

// Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.

/* Brackets patterns (and overrides and re-definitions of Bootstrap patterns)
 *
 * This file should contain all _reusable_ UI elements / LESS definitions
 * That is, things that will either a.) be used for more than one element or
 * b.) exist in multiple versions of brackets (e.g. App, In-Browser, etc.)
 *
 * Note that if you want a UI element to be themeable, you should put the
 * themeable part in "brackets_theme_default" as variables/mixins.
 *
 */

/* Variable Overrides */

@tooltipBackground: #fff;
@tooltipArrowColor: @tooltipBackground;

/* Links */

a {
    color: @tc-link;
    text-decoration: none;
}

a:hover {
    color: @tc-link-hover;
    text-decoration: underline;
}

a:focus {
    color: @tc-link-hover;
    outline: 0;
    border-radius: 3px;
    box-shadow: @tc-input-glow;
    text-decoration: none;
}

.panel {
    .vbox;
    .box-flex(1);

    padding: 0;
    margin: 0;

    background: @project-panel-base-color url("images/propertiespanel_back.png") repeat-x 0 0;
    color: #bbb;
    letter-spacing: .01em;
    text-shadow: 0px 1px 2px rgba(0,0,0,.5);
}

/* Toolbar-related styles */

/* Simple toolbar layout (project panel, find in files, etc.)
   We don't set this directly on .toolbar because it'd be a pain to override all the pieces
   if other code (e.g. #main-toolbar) wants to do a different layout */
.simple-toolbar-layout.toolbar {
    .hbox;
    .box-align(center);
    overflow: hidden;

    .title-wrapper {
        /* This is necessary because text-overflow: ellipsis doesn't work when it's set
           directly on a flexing box in Chrome currently. */
        .box-flex(1);
    }
    .buttons {
        .hbox;
        margin-left: 4px;
    }
}

/* Horizontal titlebar/menubar (in-browser only)

   CSS hack based on this code: http://jsfiddle.net/cD657/3/ (via StackOverflow)
   This center-aligns the title across the full width of the toolbar (ignoring the width of the nav floated
   left and buttons floated right), yet still have the browser automatically wrap the floats onto a 2nd row
   if they collide with the title. But the centered content must be a block element with fixed width. Since
   the editor title (filename) varies in width, we rely on JS code to update the width whenever the string
   changes.

   Another wrinkle: wrapping to/from the two-line toolbar layout requires notifying the CodeMirror editor that
   its height changed. Currently, we assume this can ONLY happen in two cases:
    - the window resizes (handled by general listener in EditorManager)
    - title content changes (the same JS code that sets .title-wrapper's fixed width is expected to handle this)
*/
#titlebar {
    // Visible only in-browser
    body.has-appshell-menus & {
        display: none;
    }

    text-align: center;
    .nav {  // menubar
        float: left;
        text-align: left;
        > li {
            float: left;
        }
    }
    .title {
        float: none;
        display: inline;  // must be an inline for JS to measure text size
    }
    .title-wrapper {
        margin: 0 auto;
        display: block;  // must be a block for the fixed width applied by JS to be respected
        // width set in px is appled/updated by JavaScript in DocumentCommandHandlers
    }
}

/* Vertical icon toolbar on right */
#main-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    width: @main-toolbar-width;
    height: 100%;
    box-sizing: border-box;

    background: @main-toolbar-background-color;
    padding: 7px 0px;

    // Ensure icons are vertically stacked & horizontally centered
    .vbox;
    .box-flex(1);
    text-align: center;

    // Ensure that it stays on top
    z-index: @z-index-brackets-main-toolbar;

    .buttons,
    .bottom-buttons {
        text-align: center;
        margin: 0;

        > a {
            border-radius: 3px;
            background-repeat: no-repeat;
            display: block;
            height: 24px;
            margin: 7px 0px 0px 3px;
            width: 24px;
        }

        > a:hover {
            background-color: rgba(0, 0, 0, 0.24) !important;
        }

        > a:active {
            background-color: rgba(0, 0, 0, 0.66) !important;
        }
    }

    .bottom-buttons {
        position: absolute;
        bottom: 5px;
    }
}

/* Toolbar appearance - shared by all toolbars, independent of layout */

@toolbar-top-gap-px: 5px;

.toolbar {
    font-size: @label-font-size;
    padding: 4px 8px;
    background-color: @bc-white;
    color: @bc-black;

    position: relative;  // needed for abs-positioned elements in toolbar (e.g. right-aligned "X")

    .title-wrapper {
        // Title is taller than menu text, so reduce top padding to keep its baseline aligned
        padding: (@toolbar-top-gap-px - 3px) 0 3px 0;
    }
    .title {
        font-size: @title-font-size;
        line-height: normal;
        font-weight: @font-weight-light;

        // On Win, the size+weight combo used above does not look good for the bullet character
        .dirty-dot {
            font-weight: normal;
        }

        white-space: nowrap;
        overflow: hidden;
        -ms-text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    .buttons {
        margin: @toolbar-top-gap-px 0 0 4px;

        span, a {
            cursor: default;
        }
    }
}

/* Menu-related styles */

@menubar-top-padding: 8px;
@menubar-bottom-padding: 6px;
@menubar-h-padding: 9px;
@item-highlight-color: #e0f0fa;

// Dropdown Menu Animation
.dropdown-menu {
    .animation(dropdown, 90ms, cubic-bezier(0, .97, .2, .99), 0, 1);
    -webkit-transform-origin: 0 0;
    border: none;
    border-radius: @tc-control-border-radius;
}

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

// Code hints don't need scaling navigation so we're removing it

.codehint-menu.open .dropdown-menu {
    -webkit-animation: none;
}

.toolbar .nav, .context-menu, .codehint-menu {

    // The 1px adjustments here are to account for the border around the top-level menu items.
    margin: (@toolbar-top-gap-px - @menubar-top-padding - 1) 0 (-@menubar-bottom-padding + 1) (-@menubar-h-padding + 4);

    // General item appearance
    a {
        color: @bc-black;
        text-shadow: none;
        cursor: default;
    }

    // Menubar item appearance
    .dropdown-toggle {
        padding: @menubar-top-padding @menubar-h-padding @menubar-bottom-padding;
        border: 1px solid rgba(0, 0, 0, 0); // transparent border just to hold the layout so it doesn't shift on hover
        color: fadeout(@bc-black, 25%);
        font-weight: @font-weight-light;
    }
    .dropdown-toggle:focus {
        background-color: @bc-white;
        outline: 0;
    }
    .dropdown-toggle:hover, .dropdown.open .dropdown-toggle {
        /* Note: we need several selectors for this in order to match the specificity of all the various Bootstrap
           color rules we need to override (and Bootstrap has several selectors because the colors really differ
           in their defaults). */
        color: @bc-black;
        background: @item-highlight-color;
        border-color: #dbeaf4;
    }

    // no triangle icon after menu items
    .dropdown-toggle:after {
        border: 0;
        margin: 0;
    }

    // Menu dropdown appearance
    .dropdown-menu {
        // Offset for better alignment with button
        top: 34px;
        margin-top: 0;

        // Fix for #4593: don't let narrow parent (menubar item) cause text wrap at the float boundary between
        // the menu item label and keyboard shortcut. This takes away the "gotta get narrower" pressure.
        // This technique won't work on all browsers; see comments in #4593 for alternative options.
        width: -webkit-max-content;
        width: -moz-max-content;

        background-color: @bc-white;
        .border-radius(0 0 3px 3px);
        box-shadow: @tc-dropdown-shadow;
        border: none;

        // Menu items
        li {
            a {
                font-size: @menu-item-font-size;
                line-height: 18px;

                // Slightly less padding on left to account for checkmark.
                // More padding on top than bottom to center font within its bg highlight better.
                padding: 2px 10px 0px 6px;

                color: @bc-black;
                text-shadow: none;
                white-space: nowrap;
                .box-shadow(none);

                &.wide-result {
                    white-space: normal;
                }

                &:hover, &.highlight {
                    color: @bc-black;
                    background: @item-highlight-color;
                }

                &.disabled {
                    color: @bc-gray;

                    &:hover {
                        background: @bc-white;
                    }
                }

                /* hidden checkmark for all list item content ensures consistent left spacing */
                &::before {
                    content: "✓\00a0"; /* non-breaking space */
                    visibility: hidden;
                }
                /* toggle checkmark visibility */
                &.checked::before {
                    visibility: visible;
                }
            }
        }

        .divider {
            background-color: #eaeaea;
            border: 0;
            margin: 5px 1px;
        }
    }

    // Ensure a minimum amount of space to the left of the shortcut
    .menu-shortcut {
        float: right;
        margin-left: 15px;
    }
}

/* Context menu styles */

.context-menu, .codehint-menu {
    position: absolute;
    z-index: @z-index-brackets-context-menu-base;
    list-style-type: none;

    .dropdown-menu {
        .border-radius(3px);
        box-shadow: @tc-dropdown-shadow;
    }

    .menu-shortcut {
        float: right;
    }
}

.codehint-menu {
    opacity: 0;
    .dropdown-menu {
        box-shadow: @tc-dropdown-shadow;
        max-height: 160px;
        overflow-y: auto;
        padding: 0;

        li {
            a {
                // Less padding than on menus. More padding on top than bottom
                // to center font within its bg highlight better.
                padding: 2px 20px 0px 0px;

                // Don't show highlighting on hover for code hints...
                &:hover {
                    color: @bc-black;
                    background-color: @bc-white;
                }

                // ...except for selected item
                &.highlight:hover {
                    color: @bc-black;
                    background-color: @item-highlight-color;
                }
            }
        }
    }
}

.codehint-menu.open {
    opacity: 1;
    transition: opacity 67ms cubic-bezier(0.03, 0.78, 0.17, 0.97);
}

.codehint-menu.apply-transition {
    transition: right 167ms, left 167ms;
}

#context-menu-bar {
    margin: 0;
}

/* DropdownButton widget */

.btn-dropdown, .btn-dropdown.btn-mini {
    position: relative;   // needed to position ::after arrow
    padding-right: 24px;  // makes room for ::after arrow
}
.btn-dropdown::after {
    content: "";
    display: block;
    height: 0px;
    width: 0px;
    position: absolute;
    right: 6px;
    top: 11px;

    /* dropdown triangle */
    border-top: 4px solid @tc-gray-component-triangle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
}
.btn-dropdown.btn-mini::after {
    top: 7px;
}

.dropdownbutton-popup {
    &.dropdown-menu:focus {
        outline: none;
    }

    &.dropdown-menu {
        border: none;
        border-radius: @tc-control-border-radius;
        padding: 0;
        position: absolute;
        display: block;
        box-shadow: @tc-dropdown-shadow;
        max-height: 160px;
        overflow-y: auto;
        max-width: none;
        min-width: 200px;
        z-index: @z-index-brackets-stylesheet-menu;
    }

    &.dropdown-menu li a {
        padding: 1px 15px 1px 15px;
    }

    &.dropdown-menu .stylesheet-link {
        display: block;
    }

    &.dropdown-menu a.selected {
        background: @tc-highlight;
        color: @bc-black !important;
    }

    &.dropdown-menu a:not(.selected):hover {
         background: none;
    }
}

/* Inline editor stylesheet-picker DropdownButton */

.stylesheet-button.btn-mini {
    margin-left: 8px;
    top: -1px;
}

.dropdownbutton-popup {
    .stylesheet-link, .stylesheet-name {
        white-space: nowrap;
    }

    .stylesheet-name {
        color: @tc-text;
    }

    .stylesheet-dir {
        color: @tc-quiet-text;
    }
}

/* Dialog-related styles */

.modal-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    overflow: auto;
    display: table;
}

.modal-inner-wrapper {
    display: table-cell;
    vertical-align: middle;
}

.modal {
    background-color: @tc-gray-panel;
    border: 1px solid rgba(0, 0, 0, 0.1);
    min-width: 200px;
    position: relative;
    top: 0;
    margin: auto;
    .animation(modal, 240ms, cubic-bezier(0, 1.05, .35, 1), 0, 1);
}

.modal .close {
    cursor: default;
    margin: 7px 5px 0 0;
}

.modal-header {
    background: @tc-gray-panel-top-bar;
    border-radius: 4px 4px 0 0;
    border-bottom: 1px solid @tc-gray-panel-separator;
}

.modal-body {
    background-color: @tc-gray-panel;
}

.modal-body.no-padding {
    padding: 0;
}

.modal-body.no-padding td:first-child,
.modal-body.no-padding th:first-child {
    padding-left: 15px;
}

.modal-body.no-padding td:last-child,
.modal-body.no-padding th:last-child {
    padding-right: 15px;
}

.modal-body, .modal-header, .modal-footer {
    /* See styles/bootstrap/patterns.less .modal class.
       Pushing this value down to .modal-header and .modal-body
       to allow the overall modal to take the width of the footer */
    width: auto;
}

.modal-footer {
    text-align: right;
    background-color: @tc-gray-panel;
    border-top: 1px solid @tc-gray-panel-separator;
    box-shadow: none;
    padding: 10px 15px 12px;
    white-space: nowrap;
}

.modal-footer .btn {
    float: none;
}
.modal-footer .left {
    float: left;

    /* Transfer the margin to the right of each left-aligned button, so the left side lines up properly
     * with the title.
     */
    margin-left: 0;
    margin-right: 5px;
}
.modal-footer .btn:not(.left) {
    margin-left: 5px;
}

.platform-win {
    /* Reverse Save/Cancel button order on Win */
    .modal-footer {
        text-align: left;
    }
    .modal-footer .btn:not(.left) {
        float: right;
    }
}

.modal-body ul {
    /* Bootstrap's type.less defines a heavy margin-bottom on ul/ol that we don't want in dialogs
       since they have heavy padding instead. */
    margin-bottom: 0;
}

.modal-backdrop {
    .animation (backdrop, 200ms, linear, 0, 1);
    opacity: 0.4;
}

@-webkit-keyframes backdrop {
    0%   { opacity: 0; -webkit-transform: translate3d(0, 0, 0); }
    100% { opacity: 0.4; -webkit-transform: translate3d(0, 0, 0); }
}
@keyframes backdrop {
    0%   { opacity: 0; transform: translate3d(0, 0, 0); }
    100% { opacity: 0.4; transform: translate3d(0, 0, 0); }
}

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

.dialog-title {
    color: @tc-light-weight-text;
    margin-bottom: 0;
    margin-top: 0;
    font-size: 22px;
    line-height: 30px;
    font-weight: normal;
}

.dialog-message {
    color: @tc-text;
    font-size: 14px;
    line-height: 20px;
    margin-bottom: 20px;
    font-weight: normal;
}

.dialog-message li {
    line-height: 20px;
    color: @tc-light-weight-text;
    padding: 0 0 5px;
}

.dialog-message select {
    margin-left: 10px;
}

.dialog-message select {
    margin-left: 10px;
}

.dialog-list {
    list-style: none;
    margin: 5px 0 20px 10px;
}

.dialog-list > li:before {
    content: "•  ";
    color: @tc-input-border;
    font-size: 1.5em;
    position: relative;
    top: 1px;
}

.dialog-filename {
    word-wrap: break-word;

    font-weight: @font-weight-semibold;
}

/* Any Dialog text in this style is automatically turned into a link that opens in the browser. Use href for the link's target. */
a[href^="http"] {
    cursor: pointer;
}

/* Update dialog */
.update-dialog .modal-body {
    position: relative;
    .update-icon {
        position: absolute;
        left: 30px; // relative to border of modal-body
        top: 20px;
        width: 80px;
        height: 80px;
    }
    .update-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        .update-info {
            max-height: 200px;
            overflow: auto;

            // Enable text selection
            cursor: auto;
            .user-select(text);

            h3 {
                font-weight: normal;
                margin: 0 0 10px;
            }

            ul {
                margin-bottom: 0 0 20px;

                > li {
                    margin-bottom: 10px;
                }
            }
        }
    }
}

/* Project Settings and Install Extension dialogs */
.project-settings-dialog .modal-body, .install-extension-dialog .modal-body {
    text-align: center;

    .field-container {
        display: inline-block;
    }
    label {
        float: none;
    }
    input.url {
        display: inline;
    }
}

.project-settings-dialog .modal-body input.url {
    margin: 0 0 0 5px;
    width: 400px;
}

.install-extension-dialog .modal-body input.url {
    margin: 10px 0;
    width: 550px;
}

/* Extension Manager dialog */
.extension-manager-dialog {
    background-color: #d4d7d7;
    width: 760px;

    .modal-header {
        border-bottom: none;
        padding: 0;

        .nav-tabs {
            margin: 0;
            border-color: #c3c6c5;

            /* Tab styling */
            > li > a {
                min-width: 80px;
                min-height: 60px;
                color: black;
                cursor: default;
                font-size: 12px;

                .box;
                box-sizing: border-box;
                .box-align(center);
                .box-pack(center);
                padding: 0;
                margin: 0;

                text-align: center;

                &:hover {
                    background-color: rgba(0, 0, 0, 0.04);
                    border-color: rgba(0, 0, 0, 0.04);
                }

                > img {
                    margin-top: 5px;
                    padding-bottom: 2px;
                }
            }

            /* Remove border-left from the first tab */
            > li:nth-child(1) > a {
                border-left: transparent;
            }

            /* Colors for the active tab, remove bottom border */
            > .active > a,
            > .active > a:hover {
                background-color: #dfe2e2;
                border-color: #b4b7b7 #b4b7b7 transparent #b4b7b7;
            }

            > li {
                position: relative;  // for positioning .notification icon
                .notification {
                    display: none;  // hidden by default
                    background-color: #91CC41;
                    color: white;
                    border-radius: 16px;
                    padding: 0 5px;
                    position: absolute;
                    right: 19px;
                    top: 8px;
                }
            }
        }

        /* Search box */
        > :nth-child(2) {
            position: absolute;
            top: 15px;
            right: 15px;
        }
        .search {
            background: #fff url("images/topcoat-search-20.svg") 3px 4px no-repeat;
            float: right;
            margin: 0;
            padding-left: 27px;
            padding-right: 20px;
        }
        .search-clear {
            background: transparent;
            position: relative;
            display: block;
            float: right;
            font-size: 20px;
            left: -6px;
            line-height: 0;
            margin: 6px 0 0 -20px;
            opacity: 0.5;
            padding: 0;
            width: 16px;
            height: 16px;
            z-index: 1;
            border: 0;

            &:disabled {
                opacity: 0.3;
                cursor: default;
            }
        }
        .search-clear:active {
            opacity: 0.7;
            &:disabled {
                opacity: 0.3;
            }
        }
    }
    .modal-body {
        height: 400px;
        overflow-y: scroll;
        background-color: @tc-gray-panel;
        padding: 0;

        .empty-message {
            position: absolute;
            top: 50%;
            width: 100%;
            margin-top: -1em;
            text-align: center;
        }

        .info-message {
            background-color: @tc-gray-panel;
            padding: 1em;
        }

        .spinner {
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -18px;
            margin-left: -18px;
        }

        .extension-list {
            td {
                height: 2em;
            }
            .ext-info {
                padding-left: 15px;
                width: 220px;
            }
            .ext-name {
                color: @tc-text;
                display: block;
                font-size: 15px;
                font-weight: normal;
                .user-select(text);
                cursor: text;
            }
            .ext-desc {
                width: auto;
                color: @tc-text;
                font-weight: normal;
                .user-select(text);
                cursor: text;
            }
            .ext-keywords {
                color: @tc-input-placeholder-text;
            }
            .muted {
                color: @tc-input-placeholder-text;
            }
            .alert {
                font-size: 11px;
                margin: 0 0 10px;
            }
            .error {
                font-weight: @font-weight-semibold;
                color: @tc-error-text;
            }
            .ext-version,
            .ext-date,
            .ext-author {
                font-size: 11px;
            }
            .ext-author {
                display: block;
            }
            .ext-action {
                font-size: 12px;
                padding-right: 15px;
                text-align: right;
                vertical-align: middle;
                width: 150px;
            }
            .load-error {
                display: inline-block;
                margin-top: 240px;
            }
        }
    }
}

/* About dialog */
.about-dialog .modal-body {
    // Simple two-column layout: image on left, text taking up remaining space on right
    position: relative;
    .about-icon {
        position: absolute;
        left: 19px;  // relative to border of modal-body (bounds outside padding)
        top:  15px;
        width: 100px;
        height: 100px;
    }
    .about-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        #about-build-number {
            color: @tc-light-weight-quiet-text;
        }
        .about-info {
            max-height: 300px;
            overflow: auto;
        }
        .about-contributors {
            min-height: 100px;

            a {
                text-decoration: none;
            }
        }
        .about-contributors img {
            opacity: 0;
            -webkit-transition: opacity 1s;
            -moz-transition: opacity 1s;
            -o-transition: opacity 1s;
            transition: opacity 1s;
        }
    }

    h2 {
        font-weight: normal;
        font-size: 25px;
        margin-bottom: -4px;
        margin-top: 3px;
    }
    .dialog-message {
        font-size: 14px;
        line-height: 17px;

        // Enable text selection
        cursor: auto;
        .user-select(text);
    }
}

/* Input */
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
    background-color: @tc-input-background;
    border: 1px solid @tc-input-border;
    color: @tc-light-weight-text;
    font-size: (@baseFontSize + 1px);
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    .border-radius(@tc-control-border-radius);
    .box-shadow(@tc-input-inner-shadow);
    .transition(~"border linear 180ms, box-shadow linear 180ms");

    &::-webkit-input-placeholder {
        color: @tc-input-placeholder-text;
        font-weight: normal;
        -webkit-font-smoothing: antialiased;
    }

    &:focus {
        outline: 0;
        background-color: @tc-input-background;
        text-shadow: none;
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-input-inner-shadow, @tc-input-glow;
    }

    &:disabled {
        opacity: @tc-disabled-opacity;
        cursor: default;
    }
}

/* Twipsy tooltips */

.tooltip {
    &.in { opacity: 1; }
}

.tooltip-inner {
    box-shadow: @tc-dropdown-shadow;
    color: @tc-text;
    max-width: 220px;
    text-align: left;
}

.tooltip {
    &.top .tooltip-arrow {
        left: 50%;
    }
    &.right .tooltip-arrow {
        top: 15px;
    }
    &.left .tooltip-arrow {
        top: 15px;
    }
    &.bottom .tooltip-arrow {
        left: 50%;
    }
}

/* Buttons */

// Base .btn styles

.btn:hover,
.btn:focus,
.btn.disabled,
.btn[disabled] {
    background-color: @tc-button-background;
}

.btn.primary:hover,
.btn.primary:focus,
.btn.primary.disabled,
.btn.primary[disabled] {
    background-color: @tc-call-to-action;
}

.btn {
    // Button Base
    background-image: none;

    background-color: @tc-button-background;
    color: @tc-text;
    cursor: default;
    font-size: (@baseFontSize + 1);
    font-weight: @font-weight-semibold;
    line-height: normal;
    border: 1px solid @tc-gray-component-border;
    .border-radius(@tc-control-border-radius);
    box-shadow: @tc-button-highlight;
    -webkit-font-smoothing: antialiased;

    &:hover {
        background-color: @tc-button-background;
        color: @tc-text;
    }

    // Focus state for keyboard and accessibility
    &:focus {
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-button-highlight, @tc-input-glow;
        color: @tc-text;
        outline: none;
    }

    // Active and Disabled states
    &.active:not([disabled]),
    &:active:not([disabled]) {
        background-image: none;
        background-color: @tc-button-down-background;
        box-shadow: @tc-button-down-shadow;
        color: @tc-text;
    }

    &.disabled, &[disabled] {
        opacity: @tc-disabled-opacity;
    }

    // Primary Button Type
    &.primary {
        background-image: none;
        background-color: @tc-call-to-action;
        border: 1px solid  @tc-call-to-action-border;
        box-shadow: @tc-call-to-action-highlight;
        color: @tc-call-to-action-text;
        text-shadow: none;
        &.active,
        &:active {
            background-image: none;
            background-color: @tc-call-to-action-down;
            box-shadow: @tc-call-to-action-down-shadow;
            color: @tc-call-to-action-text;
        }

        &:focus {
            border: 1px solid @tc-call-to-action-border;
            box-shadow: @tc-call-to-action-highlight, @tc-input-glow;
            outline: none;
        }
    }

    // Update Button Type
    &.update {
        background-color: #91cc41;
        border-color: #65a015;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.27);
        color: #fff;
        font-weight: @font-weight-semibold;
        text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.24);

        &:active {
            background-color: #82b839;
            border-color: #5b8028;
            box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
            color: #fff;
        }
    }

    // Button Sizes
    &.large {
        font-size: (@baseFontSize + 1px);
        .border-radius(@tc-control-border-radius);
    }
    &.small {
        font-size: (@baseFontSize - 1px);
    }
}

.btn-alt-quiet {
    border: 1px solid transparent;
    border-radius: @tc-control-border-radius;
    text-decoration: none;
    &:hover {
        border: 1px solid @tc-alt-component-border;
        box-shadow: @tc-button-alt-highlight;
    }
    &:active {
        background: @tc-button-alt-down-background;
        border: 1px solid @tc-alt-component-border;
        box-shadow: @tc-call-to-action-down-shadow;
    }
}

.btn-mini {
    padding: 2px 6px;
    font-size: 11px;
    font-weight: normal;
    line-height: 14px;
    &:focus {
        border: 1px solid @tc-gray-component-focused-border;
        box-shadow: @tc-button-highlight, @tc-input-glow;
        outline: none;
    }
}

/* Tables */

.table, table {
    th {
        font-weight: @font-weight-semibold;
    }
    td {
        border-top: 1px solid transparent;
    }
    tbody th {
        border-top: 1px solid transparent;
    }
    .right {
        text-align: right;
    }
}

.table-striped tbody {
    tr:nth-child(odd) td,
    tr:nth-child(odd) th {
        background-color: @tc-lighter-gray; // TopCoat palette
    }
    tr:nth-child(even) td,
    tr:nth-child(even) th {
        background-color: @tc-gray-panel; // turn off bootstrap hover highlight
    }
}
.row-highlight tbody {
    tr:hover td,
    tr:hover th {
        background-color: @tc-highlight; // TopCoat palette
    }
}

/* Emphasis */

strong {
    font-weight: @font-weight-semibold;
}

/* Type */

code {
    color: @bc-black;
    background-color: transparent;
}

label {
    font-size: @label-font-size;
}

label.inline {
    display: inline;
}

/* Overriding Bootstrap's bold properties */

h1,
h2,
h3,
h4,
h5,
h6,
b,
strong,
dt,
.label {
    color: @tc-text;
    font-weight: @font-weight-semibold;
}

.alert-message a,
.form-stacked label {
    font-weight: @font-weight-semibold;
}

.alert {
    text-shadow: none;
    background-color: @tc-warning-background;
    border: none;
}
.alert,
.alert h4 {
    // Specified for the h4 to prevent conflicts of changing @headingsColor
    color: @tc-warning-text;
}

input[type="radio"],
input[type="checkbox"] {
    margin: 0;
}

input[type="checkbox"] {
    height: 13px;
    width: 13px;
    vertical-align: middle;
    border: 1px solid @tc-gray-component-border;
    border-radius: 3px;
    background-color: @tc-button-background;
    -webkit-appearance: none;
    box-shadow: @tc-button-highlight;
}

input[type="checkbox"]:active:not(:disabled) {
    background-color: @tc-button-down-background;
    box-shadow: @tc-button-down-shadow;
}

input[type="checkbox"]:focus {
    outline:none;
    border: 1px solid @tc-gray-component-focused-border;
    box-shadow: @tc-input-glow;
}

input[type="checkbox"]:checked:before {
    font-weight: bold;
    color: @tc-text;
    content: '\2713';
    -webkit-margin-start: 0;
    position: relative;
    left: 2px;
    top: -7px;
    font-size: 16px;
}


For some installations of atom, the  explicit background color rule is required

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jasonhulbert/termal-ui.git/'


OR-342 Fix throbber CSS

OR-342 Fix throbber CSS

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/heroandtn3/openpaas-esn.git/'


css hover catalog

css hover catalog

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/geoadmin/web-emapis.git/'


checkbox error

checkbox error

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/harish2rock/XD-Questionnaire-Project.git/'


Grid - vertical fill/stretch added

Grid - vertical fill/stretch added

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/wUFr/LUI.git/'


Fixes fallback to arial for select tags.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/hevnly/asset-bazaar.git/'


css fixes

css fixes

/* fonts */

@font-face { font-family: Tuffy; src: url('/static/fonts/tuffy_regular.ttf');}
@font-face { font-family: Tuffy; font-weight: bold; src: url('/static/fonts/tuffy_bold.ttf');}
@font-face { font-family: Tuffy; font-style: italic; src: url('/static/fonts/tuffy_italic.ttf');}
@font-face { font-family: Tuffy; font-weight: bold; font-style: italic; src: url('/static/fonts/tuffy_bold_italic.ttf');}

/* coloration */

@lightest-grey: #f8f8f8;
@medium-grey: #666;
@dark-grey: #333;
@darkest-grey: #222;
@black: #000;
@orange: #FF6D3D;
@white: #FFF;
@trans-blue: rgba(100, 200, 255,.3);

@page-bg: @lightest-grey url('/static/images/light-hatch.png') repeat;

.nav-bg {
    background: @dark-grey url('/static/images/dark-hatch.png') repeat;
    .box-shadow(0, 0, 7px, @dark-grey);
}

@default-text-color: @darkest-grey;
@emphasized-text-color: @black;
@module-border-color: @trans-blue;
@module-border: 3px solid @module-border-color;
@submodule-border: 2px dashed #e4e4e4;
@module-interior: rgba(255,255,255,.6);
@emphasized-module-interior: @white;

/* size, width and padding stuff */

@total-width: 1000px;
@standard-padding: 20px;

@padding-between-columns: @standard-padding;
@column-width: ((@total-width - @padding-between-columns * 2) / 3) - @padding-between-columns;

@normal-size: 11pt;

.width-and-padding(@parent-width: @total-width, @padding: @standard-padding) {
    padding-left: @padding;
    padding-right: @padding;
    width: @parent-width - @padding * 2;
}

/* CSSTODO -- do we use these actually?*/
.enormous {
    font-size: 3em;
}

.fairly-big {
    font-size: 1.7em;
}

.enormous > div {
    margin-bottom: 1em;
}

.normal-size {
    font-size: @normal-size;
}

/* other useful mixins */

.border-radius (@radius: 8px) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
}

.box-shadow (@x: 0, @y: 0, @blur: 5px, @color: #000) {
  box-shadow: @arguments;
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
}

.screw-you-webkit { -webkit-margin-before: 0; -webkit-margin-after: 0;}

.centered { margin: 0 auto; }

/* styles */

body { font: @normal-size Tuffy, Helvetica, sans-serif; background: @lightest-grey url('/static/images/light-hatch.png') repeat; color: @default-text-color; width: 100%; .centered; padding: 0; }

code {
    overflow-x: auto;
    display: inline-block;
    width: 100%;
    white-space: nowrap;
}

.link_like, a, body .ui-widget-content a { color: @orange; text-decoration: none; cursor:pointer; cursor:hand; }

.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
    }
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* deprecated; to remove in favor of .clearfix */
.clearer { width: 100%; clear: both; float: none;}

/* for Firefox */
input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, button::-moz-focus-inner { border : 0px; }
/* for IE8 */
input[type="submit"]:focus, input[type="button"]:focus { outline : none; }

.alt-text { left: -9999px; position: absolute; }
/* ^^^ display: none would hide this from screenreaders. Let's hide this off stage left instead. */

.hidden { display: none }

a:hover, .ui-widget-content a:hover { text-decoration: underline; }
a img { border-style: none; }

abbr { border-bottom: 1px dotted #999; }
abbr.foss { border: 0; font-variant: small-caps;}

h1 a, h1 a:hover { text-decoration: none; }

#container { width: @total-width; padding-bottom: 30px; .centered;}

.module {
    width: 100%;
    margin-bottom: 15px;
    .border-radius(4px);
    border: @module-border;
    background: @module-interior;
    float: left;

    .module-head {
        background: @module-border-color;
        padding: 2px 20px;
        ul li a { float: right; padding-top: 5px; }
        h3 { text-shadow: 0 1px 0 #fff; float: none; padding: 4px 10px 7px 0; font-size: 1.2em;}
    }
    .module-body { clear: both; padding: 10px @standard-padding @standard-padding @standard-padding;}
    .module-foot {
        padding: 2px @standard-padding 5px @standard-padding;
        text-align: right;
        .module-foot-left {
            float: left;
        }
    }
}

.submodule-container {
    float: none;
    clear: both;
    width: 100%;
    .centered;
}

.submodule {
    background-color: @emphasized-module-interior;
    margin: 0 10px @standard-padding 0;
    padding: 8px 10px;
    border: @submodule-border;
    float: left;

    .submodule-head {
        margin-bottom: 5px;
    }

    .submodule-body {
        clear: both;
    }
}
ul { padding: 0; margin: 0; list-style: none; }

h1, h2, h3, h4, h5 { margin: 0; clear: both;}

h1 {
    font-weight: normal;
    font-size: 23pt;
}

#nav-container {
    width: 100%;
    height: 67px;
    .nav-bg;
    }

#nav {
    .centered;
    padding-top: 3px;
    border-top: 0;
    .width-and-padding(@total-width, @standard-padding);

    h1 { float: left; }
    ul { list-style: none; margin: 0; float: right; }
    li { float: right; margin-left: 20px; margin-top: 10px; }
}

#pagetop { padding: 0; clear: both; .width-and-padding(@total-width, @standard-padding);}

.up-top { padding: 0; margin-bottom: -15px;}

ul#links { margin-left: 20px; }

#links li { display: inline; font-size: 12pt; margin-top: 20px; }

#account-links, #topnavlinks {
    float: right;
    #username { font-weight: bold; }
    li { margin: 15px 0; }
    a { float: left; padding: 5px 10px; color: white; }
}

#topnavlinks {
    float: left;
    li { font-size: 1.1em; }
}

#content { padding: 10px 0 30px 0; clear: both; .width-and-padding(@total-width, @standard-padding); }

#footer-wrapper { width: 100%; clear: both; padding-top: 40px;}

#footer {
    width: 100%;
    bottom: 0;
    padding: 10px 0px;
    text-align: right;
    .centered;
    .nav-bg;

    ul { display: inline; list-style-type: none; max-width: 108em; padding: 0 20px; }
    li { display: block; text-align: left; padding-left: 0; margin-bottom: 0.3em; }
    a { color: @white; }
    h3 { color: #ddd; font-size: 1em; margin-bottom: 0.8em; }

    .threecol {
        width: 960px; padding: 0 20px; margin: 0 auto; text-align: left;
    }
    .column { width: 210px; display: inline-block; margin: 0px 5px; vertical-align: top; text-align: left; float: none; }

}

#training-missions {
    width: 100%;
}

h3 { margin-bottom: 0px; text-align: left; clear: left; font-weight: normal; font-size: 1.1em; color: @default-text-color; letter-spacing: 0; margin: 0; }

h3.nofloat { float: none; }

img.show-more-link {
    float: right;
    position: relative;
    top: 1px;
}
input[type='text'], input[type='password'], input[type='file'], textarea {
    padding: 5px;
    font-size: 11pt;
    float: left;
}
input[type='submit'] {
    padding: 1px 8px;
    color: @default-text-color;
    font-weight: bold;
    float: left;
}
.alert {
    padding: 15px 0;
    div {
        background-color: #ffa;
        color: #444;
        padding: 8px 15px;
        width: 700px;
        font-size: 11pt;
        .border-radius(5px);
    }
}

img {
    border: 0;
}

img.left { float: left; padding: 0 10px @standard-padding 0;}
img.right { float: right; padding: 0 0 @standard-padding 10px;}

.usernames {
    font-size: 10pt;
}
#info .tag-type {
    font-weight: normal;
    display: block;
    font-size: 8pt;
}
.aka {
}
.column {
    float: left;
    margin-left: -1px;
    width:32%;
}
h4, .cute-header {
    font-size: 9pt;
    color: @medium-grey;
    float: left;
    margin: 0;
    padding: 1px;
}
input[type='submit'] {
    color: @dark-grey;
    float: right;
}

#notifications {
    text-align: center;
    float: left;
}

.notification {
    float: left;
    width: 95%;
    .border-radius;
    padding: 10px;
    color: @emphasized-text-color;
    margin-bottom: 10px;
}

.errorlist {
    ul {
    float: left;
    margin: 0;
    padding: 0;
    }
    li {
    float: left;
    padding: 5px 10px;
    width: 410px;
    color: #522;
    background-color: #ffe4e4;
    margin: 10px 0;
    .border-radius(5px);
    }
}

#normal_login_form li {
    list-style: none;
}

dt { font-size: 120%; }
dd { margin-top: .5em; margin-left: 1.2em; }

#greeting { background-color: rgb(255, 255, 200); background-color: rgba(255, 255, 200, 0.5); -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; padding: 2%; width: 96%; margin-top: 10px; border: 4px solid #fff; float: left; }
    #greeting #about-openhatch { font-size: 140%; float: left; width: 100%; margin-right: 20px; }
    #greeting #invitation { font-size: 120%; margin-top: 10px; text-align: center; float: left; width: 100%; }
    #greeting #next-steps { float: left; width: 100%; }
    #greeting #next-steps li { font-size: 120%; float: left; width: 210px; margin: 10px 20px 0 0; }

#error #content { padding: 0 300px;
    .module { width: 400px;
        .head { width: 96%; color: #aaa; padding: 2%; text-align: center; font-weight: bold; font-size: 96pt; }
        .body { width: 90%; }
    }
}

.head .note { float: right; color: #777; font-size: .9em; padding: 6px; }
.head .more { float: right; padding: 3px; }

body ul.raquo_bullets {
    margin-left: 0;
    padding-left: 1.1em;
    text-indent: -1em;
    list-style: none;
    li { margin-bottom: .4em;
        &:last-child { margin-bottom: 0; }
        &:before { color: #999; font-family: Georgia; margin-right: 2px; font-weight: bold; content: "\00BB \0020"; }
        code {
            display: inline-table;
            margin-left: 16px;
        }
    }
}

.contact_us {
    display: inline-block;
    text-align: center;
}

/* CSSTODO */
body#login .post_login_action_explanation { color: #444; font-size: 1.5em; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; text-align: center; float: left; width: 98%; margin-bottom: 10px; padding: 8px; background-color: #faffaa; }

ol > li { margin: 15px 0; }

/* CSSTODO I think this is just missions*/
input[rel='hint'].blur { color: #777; }

/* CSSTODO */
body#people-map #search_engine_is_down_message { float: left; display: block; margin-top: 1em; margin-bottom: 0; font-size: 1.3em; }

.ajax-loader-circle-txt-medium { display: inline-block; line-height: 32px; padding-left: 32px; background: url('/static/images/throbber.gif') no-repeat left; font-weight: bold; color: #444 }

/* Stuff for jQuery UI Tabs */
/* CSSTODO */
.ui-tabs-hide { display: none !important; }
.tab_nav .ui-state-active { font-weight: bold; }

/* Stuff initially for the events page */
/* CSSTODO */
.module .left-image {
    width: 180px;
    height: 180px;
    float: left;
    margin-right: 10px;
}

.module .name-of-event {
    font-size: 180%;
    margin-bottom: 1em;
}

.module .rest-of-box {
    margin: 15px;
}

.module .little-read-more {
    width: 100px;
    float: right;
}

.module .link-without-style {
    color: inherit;
}

/* Add responsive design only for phones and tablets */
@media (max-width: 800px) {
  /* Based on observation, overwrite existing css styles */
  #footer .threecol, body #container, body#missions_index .submodule,
  body.one_column #main .submodule.skinny, body.one_column #main .submodule.fat,
  .column, body#profile .project-display,
  body#search #container #pagetop img#volunteer-opportunities,
  /*  Overwrite selectors that call LESS mix-in width-and-padding */
  #nav, #pagetop, #content {
    width: 100%;
  }
  #footer .column {
    width: 30%;
  }
}

body#bugset_create textarea {
    width: 98%;
}

body#bugset_create textarea, body#bugset_create input {
    float: none;
}

body#bugset_create #button-container {
    text-align: right;
}

body#bugset_create ul.errorlist li {
    display: block;
    float: none;
    width: 97%;
}

body#bugset_create h1,
body#search.bugsets h1,
body#bugsets_main h1
{
    margin: 10px 0 0 10px;
    font-weight: bold;
    color: #222;
}

/* fonts */

@font-face { font-family: Tuffy; src: url('/static/fonts/tuffy_regular.ttf');}
@font-face { font-family: Tuffy; font-weight: bold; src: url('/static/fonts/tuffy_bold.ttf');}
@font-face { font-family: Tuffy; font-style: italic; src: url('/static/fonts/tuffy_italic.ttf');}
@font-face { font-family: Tuffy; font-weight: bold; font-style: italic; src: url('/static/fonts/tuffy_bold_italic.ttf');}

/* coloration */

@lightest-grey: #f8f8f8;
@medium-grey: #666;
@dark-grey: #333;
@darkest-grey: #222;
@black: #000;
@orange: #FF6D3D;
@white: #FFF;
@trans-blue: rgba(100, 200, 255,.3);

@page-bg: @lightest-grey url('/static/images/light-hatch.png') repeat;

.nav-bg {
    background: @dark-grey url('/static/images/dark-hatch.png') repeat;
    .box-shadow(0, 0, 7px, @dark-grey);
}

@default-text-color: @darkest-grey;
@emphasized-text-color: @black;
@module-border-color: @trans-blue;
@module-border: 3px solid @module-border-color;
@submodule-border: 2px dashed #e4e4e4;
@module-interior: rgba(255,255,255,.6);
@emphasized-module-interior: @white;

/* size, width and padding stuff */

@total-width: 1000px;
@standard-padding: 20px;

@padding-between-columns: @standard-padding;
@column-width: ((@total-width - @padding-between-columns * 2) / 3) - @padding-between-columns;

@normal-size: 11pt;

.width-and-padding(@parent-width: @total-width, @padding: @standard-padding) {
    padding-left: @padding;
    padding-right: @padding;
    width: @parent-width - @padding * 2;
}

/* CSSTODO -- do we use these actually?*/
.enormous {
    font-size: 3em;
}

.fairly-big {
    font-size: 1.7em;
}

.enormous > div {
    margin-bottom: 1em;
}

.normal-size {
    font-size: @normal-size;
}

/* other useful mixins */

.border-radius (@radius: 8px) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
}

.box-shadow (@x: 0, @y: 0, @blur: 5px, @color: #000) {
  box-shadow: @arguments;
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
}

.screw-you-webkit { -webkit-margin-before: 0; -webkit-margin-after: 0;}

.centered { margin: 0 auto; }

/* styles */

body { font: @normal-size Tuffy, Helvetica, sans-serif; background: @lightest-grey url('/static/images/light-hatch.png') repeat; color: @default-text-color; width: 100%; .centered; padding: 0; }

code {
    overflow-x: auto;
    display: inline-block;
    width: 100%;
    white-space: nowrap;
}

.link_like, a, body .ui-widget-content a { color: @orange; text-decoration: none; cursor:pointer; cursor:hand; }

.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
    }
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* deprecated; to remove in favor of .clearfix */
.clearer { width: 100%; clear: both; float: none;}

/* for Firefox */
input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, button::-moz-focus-inner { border : 0px; }
/* for IE8 */
input[type="submit"]:focus, input[type="button"]:focus { outline : none; }

.alt-text { left: -9999px; position: absolute; }
/* ^^^ display: none would hide this from screenreaders. Let's hide this off stage left instead. */

.hidden { display: none }

a:hover, .ui-widget-content a:hover { text-decoration: underline; }
a img { border-style: none; }

abbr { border-bottom: 1px dotted #999; }
abbr.foss { border: 0; font-variant: small-caps;}

h1 a, h1 a:hover { text-decoration: none; }

#container { width: @total-width; padding-bottom: 30px; .centered;}

.module {
    width: 100%;
    margin-bottom: 15px;
    .border-radius(4px);
    border: @module-border;
    background: @module-interior;
    float: left;

    .module-head {
        background: @module-border-color;
        padding: 2px 20px;
        ul li a { float: right; padding-top: 5px; }
        h3 { text-shadow: 0 1px 0 #fff; float: none; padding: 4px 10px 7px 0; font-size: 1.2em;}
    }
    .module-body { clear: both; padding: 10px @standard-padding @standard-padding @standard-padding;}
    .module-foot {
        padding: 2px @standard-padding 5px @standard-padding;
        text-align: right;
        .module-foot-left {
            float: left;
        }
    }
}

.submodule-container {
    float: none;
    clear: both;
    width: 100%;
    .centered;
}

.submodule {
    background-color: @emphasized-module-interior;
    margin: 0 10px @standard-padding 0;
    padding: 8px 10px;
    border: @submodule-border;
    float: left;

    .submodule-head {
        margin-bottom: 5px;
    }

    .submodule-body {
        clear: both;
    }
}
ul { padding: 0; margin: 0; list-style: none; }

h1, h2, h3, h4, h5 { margin: 0; clear: both;}

h1 {
    font-weight: normal;
    font-size: 23pt;
}

#nav-container {
    width: 100%;
    height: 67px;
    .nav-bg;
    }

#nav {
    .centered;
    padding-top: 3px;
    border-top: 0;
    .width-and-padding(@total-width, @standard-padding);

    h1 { float: left; }
    ul { list-style: none; margin: 0; float: right; }
    li { float: right; margin-left: 20px; margin-top: 10px; }
}

#pagetop { padding: 0; clear: both; .width-and-padding(@total-width, @standard-padding);}

.up-top { padding: 0; margin-bottom: -15px;}

ul#links { margin-left: 20px; }

#links li { display: inline; font-size: 12pt; margin-top: 20px; }

#account-links, #topnavlinks {
    float: right;
    #username { font-weight: bold; }
    li { margin: 15px 0; }
    a { float: left; padding: 5px 10px; color: white; }
}

#topnavlinks {
    float: left;
    li { font-size: 1.1em; }
}

#content { padding: 10px 0 30px 0; clear: both; .width-and-padding(@total-width, @standard-padding); }

#footer-wrapper { width: 100%; clear: both; padding-top: 40px;}

#footer {
    width: 100%;
    bottom: 0;
    padding: 10px 0px;
    text-align: right;
    .centered;
    .nav-bg;

    ul { display: inline; list-style-type: none; max-width: 108em; padding: 0 20px; }
    li { display: block; text-align: left; padding-left: 0; margin-bottom: 0.3em; }
    a { color: @white; }
    h3 { color: #ddd; font-size: 1em; margin-bottom: 0.8em; }

    .threecol {
        width: 960px; padding: 0 20px; margin: 0 auto; text-align: left;
    }
    .column { width: 210px; display: inline-block; margin: 0px 5px; vertical-align: top; text-align: left; float: none; }

}

#training-missions {
    width: 100%;
}

h3 { margin-bottom: 0px; text-align: left; clear: left; font-weight: normal; font-size: 1.1em; color: @default-text-color; letter-spacing: 0; margin: 0; }

h3.nofloat { float: none; }

img.show-more-link {
    float: right;
    position: relative;
    top: 1px;
}
input[type='text'], input[type='password'], input[type='file'], textarea {
    padding: 5px;
    font-size: 11pt;
    float: left;
}
input[type='submit'] {
    padding: 1px 8px;
    color: @default-text-color;
    font-weight: bold;
    float: left;
}
.alert {
    padding: 15px 0;
    div {
        background-color: #ffa;
        color: #444;
        padding: 8px 15px;
        width: 700px;
        font-size: 11pt;
        .border-radius(5px);
    }
}

img {
    border: 0;
}

img.left { float: left; padding: 0 10px @standard-padding 0;}
img.right { float: right; padding: 0 0 @standard-padding 10px;}

.usernames {
    font-size: 10pt;
}
#info .tag-type {
    font-weight: normal;
    display: block;
    font-size: 8pt;
}
.aka {
}
.column {
    float: left;
    margin-right: 10px;
}
h4, .cute-header {
    font-size: 9pt;
    color: @medium-grey;
    float: left;
    margin: 0;
    padding: 1px;
}
input[type='submit'] {
    color: @dark-grey;
    float: right;
}

#notifications {
    text-align: center;
    float: left;
}

.notification {
    float: left;
    width: 95%;
    .border-radius;
    padding: 10px;
    color: @emphasized-text-color;
    margin-bottom: 10px;
}

.errorlist {
    ul {
    float: left;
    margin: 0;
    padding: 0;
    }
    li {
    float: left;
    padding: 5px 10px;
    width: 410px;
    color: #522;
    background-color: #ffe4e4;
    margin: 10px 0;
    .border-radius(5px);
    }
}

#normal_login_form li {
    list-style: none;
}

dt { font-size: 120%; }
dd { margin-top: .5em; margin-left: 1.2em; }

#greeting { background-color: rgb(255, 255, 200); background-color: rgba(255, 255, 200, 0.5); -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; padding: 2%; width: 96%; margin-top: 10px; border: 4px solid #fff; float: left; }
    #greeting #about-openhatch { font-size: 140%; float: left; width: 100%; margin-right: 20px; }
    #greeting #invitation { font-size: 120%; margin-top: 10px; text-align: center; float: left; width: 100%; }
    #greeting #next-steps { float: left; width: 100%; }
    #greeting #next-steps li { font-size: 120%; float: left; width: 210px; margin: 10px 20px 0 0; }

#error #content { padding: 0 300px;
    .module { width: 400px;
        .head { width: 96%; color: #aaa; padding: 2%; text-align: center; font-weight: bold; font-size: 96pt; }
        .body { width: 90%; }
    }
}

.head .note { float: right; color: #777; font-size: .9em; padding: 6px; }
.head .more { float: right; padding: 3px; }

body ul.raquo_bullets {
    margin-left: 0;
    padding-left: 1.1em;
    text-indent: -1em;
    list-style: none;
    li { margin-bottom: .4em;
        &:last-child { margin-bottom: 0; }
        &:before { color: #999; font-family: Georgia; margin-right: 2px; font-weight: bold; content: "\00BB \0020"; }
        code {
            display: inline-table;
            margin-left: 16px;
        }
    }
}

.contact_us {
    display: inline-block;
    text-align: center;
}

/* CSSTODO */
body#login .post_login_action_explanation { color: #444; font-size: 1.5em; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; text-align: center; float: left; width: 98%; margin-bottom: 10px; padding: 8px; background-color: #faffaa; }

ol > li { margin: 15px 0; }

/* CSSTODO I think this is just missions*/
input[rel='hint'].blur { color: #777; }

/* CSSTODO */
body#people-map #search_engine_is_down_message { float: left; display: block; margin-top: 1em; margin-bottom: 0; font-size: 1.3em; }

.ajax-loader-circle-txt-medium { display: inline-block; line-height: 32px; padding-left: 32px; background: url('/static/images/throbber.gif') no-repeat left; font-weight: bold; color: #444 }

/* Stuff for jQuery UI Tabs */
/* CSSTODO */
.ui-tabs-hide { display: none !important; }
.tab_nav .ui-state-active { font-weight: bold; }

/* Stuff initially for the events page */
/* CSSTODO */
.module .left-image {
    width: 180px;
    height: 180px;
    float: left;
    margin-right: 10px;
}

.module .name-of-event {
    font-size: 180%;
    margin-bottom: 1em;
}

.module .rest-of-box {
    margin: 15px;
}

.module .little-read-more {
    width: 100px;
    float: right;
}

.module .link-without-style {
    color: inherit;
}

/* Add responsive design only for phones and tablets */
@media (max-width: 800px) {
  /* Based on observation, overwrite existing css styles */
  #footer .threecol, body #container, body#missions_index .submodule,
  body.one_column #main .submodule.skinny, body.one_column #main .submodule.fat,
  .column, body#profile .project-display,
  body#search #container #pagetop img#volunteer-opportunities,
  /*  Overwrite selectors that call LESS mix-in width-and-padding */
  #nav, #pagetop, #content {
    width: 100%;
  }
  #footer .column {
    width: 30%;
  }
}

body#bugset_create textarea {
    width: 98%;
}

body#bugset_create textarea, body#bugset_create input {
    float: none;
}

body#bugset_create #button-container {
    text-align: right;
}

body#bugset_create ul.errorlist li {
    display: block;
    float: none;
    width: 97%;
}

body#bugset_create h1,
body#search.bugsets h1,
body#bugsets_main h1
{
    margin: 10px 0 0 10px;
    font-weight: bold;
    color: #222;
}


Reduce search bar flex width

Reduce search bar flex width

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/xaun/transac.git/'


Add styles

Add styles

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Digipalvelutehdas/APIKA.git/'


- modificando body-bgcolor

- modificando body-bgcolor

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Dhales-Ribeiro/NoClass.git/'


Take a new approach to avoid the fuzzy rendering bug


Signed-off-by: duxinlixiaoxue <1207931454@qq.com>

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/XUEJS/xue-project.git/'


Fixed primary button color.

Fixed primary button color.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/LordAkkarin/SpigotVersionCheck.git/'


fix for linux build

fix for linux build

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/enlightendesigns/PowerBI-visuals.git/'


fix bottom-margin for objects in chrome once again

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bmesuere/uni-test.git/'


Style adjustments

Style adjustments

/**
 *    Copyright 2015-2018 ppy Pty. Ltd.
 *
 *    This file is part of osu!web. osu!web is distributed with the hope of
 *    attracting more community contributions to the core ecosystem of osu!.
 *
 *    osu!web is free software: you can redistribute it and/or modify
 *    it under the terms of the Affero GNU General Public License version 3
 *    as published by the Free Software Foundation.
 *
 *    osu!web is distributed 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 osu!web.  If not, see <http://www.gnu.org/licenses/>.
 */

.profile-extra-account-standing {
  &__box {
    display: flex;
    flex-direction: row;
    align-items: center;

    width: 100%;

    &--action, &--length {
      padding-left: 10px;
    }

    &--info {
      background-color: #ccc;
    }

    &--large {
      height: 30px;
      margin-bottom: 5px;
      padding-left: 20px;
      border-radius: 15px;
      font-size: 15px;
    }

    &--note {
      background-color: @blue;
    }

    &--restriction {
        background-color: @red;
      color: #fff;
    }

    &--silence {
      background-color: @yellow;
    }

    &--small {
      height: 20px;
      border-radius: 10px;

      margin-bottom: 7px;

      font-size: 14px;
    }

    &--warning {
      background-color: @red-dark;
      color: #fff;
    }

  }

  &__table {
    width: 100%;
    min-width: 800px;

    &--notes {
      margin-top: 30px;
    }
  }

  &__table-box {
    overflow-x: scroll;
  }

  &__table-cell {
    &--action {
      width: 105px;
      padding-right: 5px;
    }

    &--date {
      width: 150px;
      padding-right: 20px;
    }

    &--length {
      width: 140px;
      padding-right: 40px;
    }
  }

  &__table-header {
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    padding-bottom: 10px;

    &--action, &--length {
      padding-left: 10px;
    }
  }
}

/**
 *    Copyright 2015-2018 ppy Pty. Ltd.
 *
 *    This file is part of osu!web. osu!web is distributed with the hope of
 *    attracting more community contributions to the core ecosystem of osu!.
 *
 *    osu!web is free software: you can redistribute it and/or modify
 *    it under the terms of the Affero GNU General Public License version 3
 *    as published by the Free Software Foundation.
 *
 *    osu!web is distributed 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 osu!web.  If not, see <http://www.gnu.org/licenses/>.
 */

.profile-extra-account-standing {
  &__box {
    display: flex;
    flex-direction: row;
    align-items: center;

    width: 100%;

    &--action, &--length {
      padding-left: 15px;
    }

    &--info {
      background-color: #ccc;
    }

    &--large {
      height: 40px;
      margin-bottom: 6px;
      padding-left: 15px;
      border-radius: 20px;
      font-size: 15px;
    }

    &--note {
      background-color: @blue;
    }

    &--restriction {
        background-color: @red;
      color: #fff;
    }

    &--silence {
      background-color: @yellow;
    }

    &--small {
      height: 26px;
      border-radius: 13px;

      margin-bottom: 8px;

      font-size: 13px;
    }

    &--warning {
      background-color: @red-dark;
      color: #fff;
    }

  }

  &__table {
    width: 100%;
    min-width: 800px;

    &--notes {
      margin-top: 30px;
    }
  }

  &__table-box {
    overflow-x: scroll;
  }

  &__table-cell {
    padding-right: 20px;

    &--action, &--length {
      width: 155px;
    }

    &--date {
      width: 170px;
    }

    &--description {
      min-width: 65px;
    }
  }

  &__table-header {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    padding-bottom: 10px;

    &--action, &--length {
      padding-left: 15px;
    }
  }
}


last panel margin fix

last panel margin fix