/*!**************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!./third/bootstrap/css/bootstrap.app.css ***!
  \**************************************************************************************************************************************************************************/
/*!
 * Bootstrap v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */
a:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
a:hover,
a:active {
  outline: 0;
}
img {
  /* Responsive images (ensure images don't scale beyond their parents) */

  max-width: 100%;
  /* Part 1: Set a maximum relative to the parent */

  height: auto;
  /* Part 2: Scale the height according to the width, otherwise you get stretching */

  vertical-align: middle;
  border: 0;
}
button {
  -webkit-appearance: button;
}
p {
  margin: 0 0 10px;
}
h1,
h2,
h3,
h4 {
  margin: 10px 0;
  font-family: inherit;
  font-weight: bold;
  line-height: 20px;
  color: inherit;
  text-rendering: optimizelegibility;
}
h1,
h2,
h3 {
  line-height: 40px;
}
h1 {
  font-size: 38.5px;
}
h2 {
  font-size: 31.5px;
}
h3 {
  font-size: 24.5px;
}
h4 {
  font-size: 17.5px;
}
ul,
ol {
  padding: 0;
  margin: 0 0 10px 25px;
}
ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0;
}
hr {
  margin: 20px 0;
  border: 0;
  border-top: 1px solid #eeeeee;
  border-bottom: 1px solid #ffffff;
}
form {
  margin: 0 0 20px;
}
label {
  display: block;
  margin-bottom: 5px;
}
input[disabled],
input[readonly] {
  cursor: not-allowed;
  background-color: #eeeeee;
}
input:focus:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
}
input:focus:invalid:focus {
  border-color: #e9322d;
  -webkit-box-shadow: 0 0 6px #f8b9b7;
  -moz-box-shadow: 0 0 6px #f8b9b7;
  box-shadow: 0 0 6px #f8b9b7;
}

/* Bootstrap alert CSS rules that have not been replaced with our own
   designs. */

.alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: 20px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #fcf8e3;
  border: 1px solid #fbeed5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.alert.alert-error {
  background-color: #f2dede;
  border-color: #eed3d7;
  color: #b94a48;
}
.alert.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #468847;
}
.alert.alert-success h4 {
  color: #468847;
}
.alert,
.alert h4 {
  color: #c09853;
}
.alert h4 {
  margin: 0;
}

/*!**************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!./third/bootstrap/css/bootstrap-btn.css ***!
  \**************************************************************************************************************************************************************************/
/*!
 Software from "Bootstrap" is Copyright (c) 2011-2014 Twitter, Inc. and is provided
 under the following license (the Bootstrap software has been modified):
 --
The MIT License (MIT)

Copyright (c) 2011-2014 Twitter, Inc

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.
 */

/*!
 * Bootstrap v3.1.1 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

.bootstrap-btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 0px;
}
.bootstrap-btn:focus,
.bootstrap-btn:active:focus,
.bootstrap-btn.active:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.bootstrap-btn:hover,
.bootstrap-btn:focus {
  color: #333;
  text-decoration: none;
}
.bootstrap-btn:active,
.bootstrap-btn.active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.bootstrap-btn.disabled,
.bootstrap-btn[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: .65;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/typeahead.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* CSS for Bootstrap typeahead */

.dropdown-menu {
    display: none;
    min-width: 160px;
    list-style: none;
}

.open > .dropdown-menu {
    display: block;
}

.typeahead {
    z-index: 1051;
}

.typeahead.dropdown-menu .typeahead-menu .simplebar-content {
    min-width: max-content;
}

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li {
        overflow-wrap: anywhere;
    }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a {
            display: flex;
            align-items: center;
            padding: 0.2142em 0.7142em; /* 3px 10px at 14px em */
            gap: 0.3571em; /* 5px at 14px em */
            font-weight: normal;
            /* We want to keep this `max-width` less than 320px. */
            max-width: 292px;
            line-height: 1.43; /* 20px / 14px */
            color: var(--color-dropdown-item);
            white-space: nowrap;
        }

@media (min-width: 425px) {

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a {
                /* Scale up with font size on larger widths. */
                /* 292px / 14px */
                max-width: 20.86em;
        }
            }

/* hidden text just to maintain line height for a blank option */

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a strong:empty::after {
                    content: ".";
                    visibility: hidden;
                }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a:hover,.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a:focus {
                -webkit-text-decoration: none;
                text-decoration: none;
                outline: 0;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a .user-circle {
                /* 11px at 16px/1em */
                font-size: 0.6875em;
                align-self: center;
                /* TODO: A grid rewrite of typeahead rows
                   should help to obviate these kinds of
                   fiddly spacing hacks. */
                margin-right: 2px;
                margin-left: -2px;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a.topic-typeahead-link {
                gap: 5px;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a.topic-edit-typeahead {
                display: flex;
                flex-wrap: wrap;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a.topic-edit-typeahead .typeahead-strong-section {
                    /* We want to wrap the topic but preserve
                       original white spaces sequence too. */
                    white-space: pre-wrap;
                }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a .typeahead-text-container {
                display: flex;
                align-self: center;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                gap: 3px;
                align-items: baseline;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a .compose-stream-name {
                overflow: visible;
                gap: 0;
            }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content > li .stream-to-topic-arrow {
            margin-left: 0.375em; /* 6px at 16px em */
            cursor: default;
            color: var(--color-compose-chevron-arrow);
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active > a,.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active > a:hover,.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active > a:focus {
            color: var(--color-active-dropdown-item);
            background-color: var(--background-color-active-typeahead-item);
        }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active > a .user-circle-offline {
            /* Ensure better contrast on highlighted
               typeahead items. */
            color: var(--color-user-circle-offline-typeahead-highlight);
        }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .pronouns,.typeahead.dropdown-menu .typeahead-menu .simplebar-content .autocomplete_secondary {
        align-self: baseline;
        opacity: 0.8;
        font-size: 85%;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .pronouns > a,.typeahead.dropdown-menu .typeahead-menu .simplebar-content .autocomplete_secondary > a {
            color: var(--color-dropdown-item);
            text-decoration: underline;
            -webkit-text-decoration: underline solid currentColor;
                    text-decoration: underline solid currentColor;
            text-decoration-thickness: 1px;
            -webkit-text-decoration: underline 1px;
                    text-decoration: underline 1px;
            text-decoration-color: var(--color-dropdown-item-link-underline);
            opacity: 0.6;
        }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .autocomplete_secondary {
        flex: 1 1 0;
    }

.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active .pronouns,.typeahead.dropdown-menu .typeahead-menu .simplebar-content .active .autocomplete_secondary {
        opacity: 1;
    }

.typeahead.dropdown-menu .typeahead-menu {
        list-style: none;
        margin: 4px 0;
        max-height: min(248px, 95vh);
        overflow-y: auto;
    }

.typeahead.dropdown-menu .typeahead-footer {
        margin: 0;
        padding: 4px 10px;
        border-top: 1px solid hsl(0deg 0% 0% / 20%);
        display: flex;
        align-items: center;
    }

.typeahead.dropdown-menu #typeahead-footer-text {
        color: var(--color-dropdown-item);
        font-size: 0.8571em; /* 12px at 14px/em */
    }

.typeahead.dropdown-menu a strong.typeahead-strong-section {
        /* Can't use flex to display this item if
           we want `text-overflow: ellipsis` to work
           which only works on block elements. */
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: pre;
        align-items: baseline;
        font-weight: 500;
    }

.typeahead.dropdown-menu a strong.typeahead-strong-section .channel-privacy-type-icon {
            margin-right: 3px;
        }

.typeahead-option-label-container {
    display: flex !important;
    justify-content: space-between;
}

.typeahead-option-label-container  > strong {
        margin-right: 14px;
    }

.typeahead-option-label-container .typeahead-option-label {
        color: var(--color-typeahead-option-label);
    }

/* For FontAwesome icons and zulip icons used in place of images for some users. */
.typeahead-image {
    font-size: 1.3571em; /* 19px at 14px em */
    display: inline-block;
    height: 1.1052em; /* 21px at 19px/1em */
    width: 1.1052em; /* 21px at 19px/1em */
    border-radius: 4px;

    text-align: center;
}
.typeahead-image.zulip-icon-user-group {
        font-size: 1.3571em; /* 19px at 14px em */
    }
.typeahead-image.no-presence-circle {
        /* 0.6875 * var(--base-font-size) is the width of presence
        circle, no margin (-2px left margin + 2px right margin = 0px)
        of the presence circle and 0.3571 * var(--base-font-size-px)
        is gap between the presence circle and avatar.
        Cannot directly use 0.6875em or 0.3571em
        since font-size for user group icon is different from the
        font size used to calculate presence circle width and gap. */
        margin-left: calc((0.6875 + 0.3571) * var(--base-font-size-px));
    }

.typeahead-text-container i.zulip-icon-bot {
        align-self: center;
    }

/*
    Negates the extra 3px left margin from `.status-emoji` in zulip.css, which,
    combined with .typeahead-text-container's `gap`, created unintended spacing.
    The typeahead's spacing is now managed only by `gap` in
    .typeahead-text-container.
    */

.typeahead-text-container .status-emoji {
        margin-left: 0;
    }

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/tooltips.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
[data-tippy-root] {
    /* Since tooltip elements are sometimes inside elements
     * which have different font-family, we force font-family
     * for tooltips here.
     */
    font-family: "Source Sans 3 VF", sans-serif !important;
    overflow-wrap: anywhere;
    /* Contains stylistic variant of upper-case character "I" in Source Sans 3 */
    font-feature-settings: "ss01" on;

    /* Affects all tippy tooltips not using any theme. */
}
[data-tippy-root] .tippy-box:not([data-theme]) {
        background: var(--color-background-tippy-box);
        border-radius: 5px;
        /* 14px at 14px/1em */
        font-size: var(--base-font-size-px);
        /* 25px at 14px/1em */
        min-height: 1.7857em;
        box-sizing: border-box;
    }
[data-tippy-root] .tippy-box:not([data-theme]) .tippy-content {
            box-sizing: inherit;
            display: flex;
            align-items: center;
            padding: 5px 10px;
            /* 14px at 14px/1em */
            font-size: var(--base-font-size-px);
            /* 20px at 14px/1em */
            line-height: 1.4286em;
            /* Don't inherit font-weight when
               a Tippy attaches to a parent */
            font-weight: normal;
            color: hsl(0deg 0% 100%);
        }
[data-tippy-root] .tippy-box:not([data-theme]) .tippy-arrow::before {
            /* This affects the arrow for tooltips and doesn't have any impact on arrows for popovers.
             * The transform property scales down the size of the arrow, giving it a thinner appearance.
             * https://atomiks.github.io/tippyjs/v6/themes/#changing-the-arrow-size
             */
            transform: scale(0.75);
        }
[data-tippy-root] .tippy-box:not([data-theme]) .tooltip-inner-content {
            /* 17px at 14px/1em */
            line-height: 1.2143em;
        }
[data-tippy-root] .tippy-box[data-placement^="top"]:not([data-theme]) > .tippy-arrow::before {
            border-top-color: var(--color-background-tippy-box);
        }
[data-tippy-root] .tippy-box[data-placement^="bottom"]:not([data-theme]) > .tippy-arrow::before {
            border-bottom-color: var(--color-background-tippy-box);
        }
[data-tippy-root] .tippy-box[data-placement^="left"]:not([data-theme]) > .tippy-arrow::before {
            border-left-color: var(--color-background-tippy-box);
        }
[data-tippy-root] .tippy-box[data-placement^="right"]:not([data-theme]) > .tippy-arrow::before {
            border-right-color: var(--color-background-tippy-box);
        }
[data-tippy-root] .tippy-arrow::before {
        /* `.tippy-arrow:before` element sometimes
         * inherits the height of the parent, we
         * don't want any height here since we
         * want it to remain an triangle.
         * The bug was only found in Firefox.
         */
        height: 0 !important;
    }
[data-tippy-root] {
    /* If the text in the tooltips stretches to multiple lines,
     * we want the lines to be left-indented and not right-indented
     * by default.
     */
    text-align: left;
}
[data-tippy-root] .tooltip-hotkey-hints {
        box-sizing: inherit;
        display: flex;
        align-self: flex-start;
        margin: 0 -5px 0 10px;
        gap: 4px;
    }
[data-tippy-root] span.tooltip-hotkey-hint {
        border: 1px solid hsl(225deg 100% 84%);
        border-radius: 3px;
        color: hsl(225deg 100% 84%);
        padding: 0 5px;
        text-align: center;
        white-space: nowrap;
    }
[data-tippy-root] .channel-privacy-type-icon {
        width: 9px;
        padding-left: 2px;
        top: 0.5px;
    }
/* If the reference of the tooltip is went offscreen while scrolling,
       the tooltip will be visible until the scrolling stops. Popper adds
       `data-reference-hidden` attribute to those tooltips whole reference is
       hidden. Since tooltips have `absolute` position, they can occupy scroll
       space offscreen and cause document to have the wrong scroll height.
       Setting `display: none` makes sure it doesn't occupy any offscreen space.

       NOTE: This data attribute has changed each time in the past 3 releases and
       if we upgrade tippy from v6, we should check if this attribute is still valid.

       See https://github.com/atomiks/tippyjs/issues/555 for some discussion on this.
    */
[data-tippy-root] [data-reference-hidden]:not(.show-when-reference-hidden) {
        display: none;
    }

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/components.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Reusable, object-oriented CSS base components for all Zulip pages
   (both web app and portico). */

label.checkbox {
    padding: 0;
    display: inline-block;
    position: relative;
    vertical-align: top;
    min-height: 20px;
}

label.checkbox input[type="checkbox"] {
        position: absolute;
        clip-path: rect(0 0 0 0);
    }

label.checkbox input[type="checkbox"]  ~ .rendered-checkbox {
            display: inline-block;
            vertical-align: middle;
            position: relative;
            top: -2px;

            padding: 2px;
            margin: 0 5px 0 0;
            height: 10px;
            width: 10px;

            font-weight: 300;
            line-height: 0.8;
            font-size: 1.3rem;
            text-align: center;
            /* Color variables are not imported to the portico, so we duplicate
               the light-mode color value here as a fallback. */
            border: 1px solid
                var(--color-border-rendered-checkbox, hsl(0deg 0% 0% / 60%));
            border-radius: 4px;

            cursor: pointer;
        }

label.checkbox input[type="checkbox"]:checked ~ .rendered-checkbox {
            /* As with the border color above, we duplicate
               the light-mode SVG URL value here as a fallback. */
            background-image: var(
                --svg-url-rendered-checkbox,
                url(files/images/checkbox.svg)
            );
            background-size: 85%;
            background-position: 50% 50%;
            background-repeat: no-repeat;
        }

label.checkbox input[type="checkbox"]:disabled ~ .rendered-checkbox {
            opacity: 0.5;
            cursor: not-allowed;
        }

label.checkbox:has(.enter_sends) {
        vertical-align: middle;
    }

a.no-style {
    color: inherit;
}

a.no-underline,
a.no-underline:hover,
a.no-underline:focus {
    -webkit-text-decoration: none;
    text-decoration: none;
}

.italic {
    font-style: italic;
}

.simplebar-track .simplebar-scrollbar::before {
        background-color: hsl(0deg 0% 0%);
        box-shadow: 0 0 0 1px hsl(0deg 0% 100% / 33%);
    }

.simplebar-track.simplebar-vertical {
        transition: width 0.2s ease 1s; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
    }

.simplebar-track.simplebar-vertical.simplebar-hover {
            width: 15px;
            transition: width 0.2s ease; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
        }

.simplebar-track.simplebar-horizontal {
        transition: height 0.2s ease 1s; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
    }

.simplebar-track.simplebar-horizontal.simplebar-hover {
            height: 15px;
            transition: height 0.2s ease; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
        }

i.zulip-icon.zulip-icon-bot {
    color: var(--color-icon-bot);
}

/* Hide the somewhat buggy browser show password feature in IE, Edge,
   since it duplicates our own "show password" widget. */
input::-ms-reveal {
    display: none;
}

.password-div {
    position: relative;
}

.password-div .password_visibility_toggle {
        position: absolute;
        right: 10px;
        top: 42px;
        opacity: 0.6;
    }

.password-div .password_visibility_toggle:hover {
            opacity: 1;
        }

select.bootstrap-focus-style:focus {
        outline: 1px dotted hsl(0deg 0% 20%);
        outline: 5px auto -webkit-focus-ring-color;
        outline-offset: -2px;
        transition: none;
    }

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/rendered_markdown.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* We use a custom counter here for Safari to
   get better control of its counter positioning.
   Because Safari does not recognize `content`
   properties on `::marker`, the style here better
   approximates the same styles set on `::marker`
   below. */
@counter-style numbers {
    system: numeric;
    symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
    suffix: ".";
}

.rendered_markdown p {
        margin: 0 0 var(--markdown-interelement-space-px);
    }

.rendered_markdown p:has( + ul, + ol) {
            /* When a paragraph is immediately followed
               by a list sibling, we reduce the paragraph's
               ordinary bottom space by half. */
            margin-bottom: calc(var(--markdown-interelement-space-px) / 2);
        }

/* The spacing between two paragraphs is double the usual value.
       We coordinate this spacing matches so that it matches the
       spacing between paragraphs in two consecutive 1-line messages. */

.rendered_markdown p + p {
        margin-top: var(--markdown-interelement-doubled-space-px);
    }

.rendered_markdown ul {
        margin: 0 0 var(--markdown-interelement-space-px) 0;
        /* Because browsers use inline padding, we set the
           same property here to offset bullets. */
        padding-inline-start: 1.1ch;
        /* By setting Unicode characters of our own, we
           gain better, cross-browser alignment of bullets. */
        list-style-type: "•";
    }

.rendered_markdown ul ul {
            list-style-type: "◦";
        }

.rendered_markdown ul ul ul {
                list-style-type: "▪︎";
            }

.rendered_markdown ul > li {
            /* This aligns bullets to roughly the
               center of a single-digit counter.
               11.2px at 16px/1em */
            padding-inline-start: 0.7em;
        }

.rendered_markdown ul > li::marker {
            /* This is an eyeballed value, but it makes the
               otherwise diminutive markers specified above
               both larger *and* better vertically centered. */
            font-size: 1.3em;
            /* We do not want the line-height for the item text
               affected by the larger font-size, though. So we
               zero it out. */
            line-height: 0;
        }

.rendered_markdown ol {
        /* For the sake of Safari, we reference the `numbers`
           counter defined on `@counter-style` above. */
        list-style: numbers;
        /* To preserve the `start` attribute on lists that
           begin with a number other than 1, we update the
           `counter-reset` in postprocess_content.ts. */
        counter-reset: count;
        margin: 0 0 var(--markdown-interelement-space-px) 0;
        /* Because browsers use inline padding, we set the
           same here to offset the counters. */
        padding-inline-start: 2.1ch;
    }

.rendered_markdown ol > li {
            counter-increment: count 1;
            /* 3.2px at 16px/1em */
            padding-inline-start: 0.2em;
        }

.rendered_markdown ol > li::marker {
            content: counter(count, decimal) ". ";
        }

/* To avoid cutting off the focus ring on links, we set
       padding on first children most likely to take links.
       We account for this extra space on `.message_content`. */

.rendered_markdown > p:first-child,.rendered_markdown > ul:first-child,.rendered_markdown > ol:first-child {
        padding-top: var(--message-box-link-focus-ring-block-padding);
    }

/* We set margin according to the length of the longest list counter.
       The values here keep the counters flush left, just like paragraph
       text. */

.rendered_markdown .counter-length-1 {
        padding-inline-start: 2.1ch;
    }

.rendered_markdown .counter-length-2 {
        padding-inline-start: 3.1ch;
    }

.rendered_markdown .counter-length-3 {
        padding-inline-start: 4.1ch;
    }

.rendered_markdown .counter-length-4 {
        padding-inline-start: 5.1ch;
    }

.rendered_markdown .counter-length-5 {
        padding-inline-start: 6.1ch;
    }

.rendered_markdown .counter-length-6 {
        padding-inline-start: 7.1ch;
    }

.rendered_markdown hr {
        border-bottom: 1px solid hsl(0deg 0% 87%);
        border-top: 1px solid hsl(0deg 0% 87%);
        /* Override Bootstrap with doubled interelement space */
        margin: calc(var(--markdown-interelement-space-px) * 2) 0;
    }

/* Headings */

.rendered_markdown h1,.rendered_markdown h2,.rendered_markdown h3,.rendered_markdown h4,.rendered_markdown h5,.rendered_markdown h6 {
        font-weight: 600;
        line-height: 1.4;
        /* Headings take a margin-top because of the pronounced extra
           space they require, but are zeroed out below when they open
           a message. */
        margin-top: 15px;
        margin-bottom: var(--markdown-interelement-space-px);
    }

/* Headings: Ensure that messages that start with a heading don't have
       a weirdly blank area at the very start of the message. */

.rendered_markdown h1:first-child,.rendered_markdown h2:first-child,.rendered_markdown h3:first-child,.rendered_markdown h4:first-child,.rendered_markdown h5:first-child,.rendered_markdown h6:first-child {
        margin-top: 0;
    }

/* We use a modest progression of heading sizes to make them stand out
       from normal next but avoid taking up too much space. */

.rendered_markdown h1 {
        font-size: 1.4em;
    }

.rendered_markdown h2 {
        font-size: 1.3em;
    }

.rendered_markdown h3 {
        font-size: 1.2em;
    }

.rendered_markdown h4 {
        font-size: 1.1em;
    }

.rendered_markdown h5 {
        font-size: 1.05em;
    }

.rendered_markdown h6 {
        font-size: 1em;
    }

/* Formatting for blockquotes */

.rendered_markdown blockquote {
        /* This keeps the blockquote text block
           aligned with list-item text blocks.
           12.4px at 16px/1em */
        padding: 0;
        padding-inline-start: 0.775em;
    }

.rendered_markdown blockquote,.rendered_markdown .message_embed {
        /* We want to keep the border roughly centered
           with bullets and single-digit list markers.
           3.5px at 16px/1em */
        margin: 0 0 var(--markdown-interelement-space-px) 0;
        margin-inline-start: 0.2188em;
        border-inline-start: 4px solid
            var(--color-text-message-blockquote-border);
    }

/* Formatting for Markdown tables */

.rendered_markdown table {
        padding-right: 10px;
        margin: 0 5px var(--markdown-interelement-space-px);
        width: 99%;
        display: block;
        max-width: -moz-fit-content;
        max-width: fit-content;
        overflow-x: auto;
        white-space: nowrap;
        border-collapse: collapse;
    }

.rendered_markdown thead {
        background-color: var(--color-background-rendered-markdown-thead);
    }

.rendered_markdown tr {
        display: table-row;
        vertical-align: inherit;
    }

.rendered_markdown tr th {
        border: 1px solid var(--color-border-rendered-markdown-table);
        padding: 4px;
        text-align: left;
    }

.rendered_markdown tr td {
        border: 1px solid var(--color-border-rendered-markdown-table);
        padding: 4px;
    }

/* Emoji; sized to be easily understood while not overwhelming text. */

.rendered_markdown .emoji {
        /* The box for emoji is allowed to be larger than the size of the
           line-height. */
        height: var(--length-line-oversize-block);
        width: var(--length-line-oversize-block);
        /* A negative top and bottom margin adjustment allows emoji
           to size larger than the size of the line, without disturbing
           the surrounding lines of text. */
        margin: var(--length-line-oversize-block-margin-adjust) auto;
        /* We set the alignment programmatically, as an em value.
           Because the negative margins above are equal, top and bottom,
           this vertical offset value works without adjustment for
           oversize emoji blocks. */
        vertical-align: var(--line-fitted-vertical-align-offset-em);
    }

/* Mentions and alert words */

.rendered_markdown .user-group-mention,.rendered_markdown .user-mention,.rendered_markdown .topic-mention {
        padding: 0 3px;
        border-radius: 3px;
        white-space: nowrap;
        /* Reduce the font-size to reduce the
           footprint of the background highlight. */
        font-size: 0.95em;
    }

.rendered_markdown .mention-content-wrapper {
        /* Restore the font-size to match the rest
           of the message area. */
        font-size: 1.0526em;
    }

.rendered_markdown .user-mention {
        color: var(--color-text-other-mention);
        background-color: var(--color-background-text-direct-mention);
    }

.rendered_markdown .user-mention.user-mention-me {
            color: var(--color-text-self-direct-mention);
            font-weight: 600;
        }

.rendered_markdown .user-mention:hover {
            background-color: var(--color-background-text-hover-direct-mention);
        }

.rendered_markdown .user-mention,.rendered_markdown .user-group-mention {
        /* We have to explicitly mention this for compose box preview
           where cursor is set to not-allowed */
        cursor: pointer;
    }

/* We show the same cursor as the parent element for `@all`
       mention */

.rendered_markdown .user-mention-all {
        cursor: inherit;
    }

.rendered_markdown .user-mention[data-user-id="*"],.rendered_markdown .user-group-mention,.rendered_markdown .topic-mention {
        color: var(--color-text-other-mention);
        background-color: var(--color-background-text-group-mention);
    }

.rendered_markdown .user-mention.user-mention-me[data-user-id="*"],.rendered_markdown .user-group-mention.user-mention-me:not(.does-not-exist),.rendered_markdown .topic-mention.user-mention-me:not(.does-not-exist) {
            color: var(--color-text-self-group-mention);
            font-weight: 600;
        }

.rendered_markdown .stream-topic {
        /* Display whitespace within topics. */
        white-space: pre-wrap;
    }

.rendered_markdown .user-group-mention:hover {
            background-color: var(--color-background-text-hover-group-mention);
        }

.rendered_markdown .alert-word {
        background-color: var(--color-background-alert-word);
    }

/* Timestamps */

.rendered_markdown time {
        background: hsl(0deg 0% 93%);
        border-radius: 3px;
        box-shadow: 0 0 0 1px hsl(0deg 0% 80%);
        white-space: nowrap;
        margin: 0 2px;
        /* Reduce the font-size to reduce the
           footprint of the timestamp block. */
        font-size: 0.95em;
    }

.rendered_markdown time .timestamp-content-wrapper {
            /* Restore the font-size to match the rest
               of the message area, and apply the layout
               for the icon. */
            font-size: 1.0526em;
            padding: 0 0.2em;
            display: inline-flex;
            align-items: baseline;
            gap: 3px;
        }

.rendered_markdown time .markdown-timestamp-icon {
            align-self: center;
        }

/* LaTeX styling */

.rendered_markdown .katex-display {
        /* KaTeX sometimes overdraws its bounding box by a little, so we
           enlarge its scrolling area by adding 3px of padding to its top
           and bottom. To prevent what will appear as extra whitespace,
           we reduce surrounding margins by the same 3px. */
        padding: 3px 0;
        margin: -3px 0;
        overflow: auto hidden;
    }

.rendered_markdown .katex-mathml annotation {
        /* Because annotations are never displayable, browser user-agent
           stylesheets mark them as not displayable, which has the
           side effect of having them not be included in the HTML
           version of copying the content. Override this, so KaTeX can
           be copy/pasted within Zulip. */
        -webkit-user-select: all;
                user-select: all;
        display: inline;
    }

.rendered_markdown .tex-error {
        color: hsl(0deg 0% 50%);
    }

/* Spoiler styling */

.rendered_markdown .spoiler-block {
        border: hsl(0deg 0% 50%) 1px solid;
        padding: 2px 8px 2px 10px;
        border-radius: 10px;
        /* Space any subsequent Markdown content the same
           distance as adjacent paragraphs are spaced. */
        margin: 0 0 var(--markdown-interelement-doubled-space-px);
    }

.rendered_markdown .spoiler-block .spoiler-header {
            /* We use flexbox to display the spoiler message
               and button. */
            display: flex;
            align-items: center;
            padding: 8px 5px;
            font-weight: bold;
        }

.rendered_markdown .spoiler-block .spoiler-header .spoiler-header-text {
                /* Disallow margin from ordinary rendered-markdown
                   elements. The header's vertical space is handled
                   independently by padding on .spoiler-header. */
                margin-bottom: 0;
                /* Message grows to push the arrow to the right,
                   but shrinks so as to allow long multi-line
                   spoiler messages to wrap. */
                flex: 1 1 auto;
            }

.rendered_markdown .spoiler-block .spoiler-header time {
                /* Time tag pushes the arrow out of view when overflow,
                   adding white-space property prevents this by wrapping
                   the element */
                white-space: normal;
            }

.rendered_markdown .spoiler-block .spoiler-content {
            overflow: hidden;
            border-top: hsl(0deg 0% 50%) 0 solid;
            transition:
                /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */
                height 0.4s ease-in-out,
                border-top 0.4s step-end,
                padding 0.4s step-end; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
            padding: 0;
            height: 0;
        }

.rendered_markdown .spoiler-block .spoiler-content.spoiler-content-open {
                border-top: hsl(0deg 0% 50%) 1px solid;
                transition:
                    /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */
                    height 0.4s ease-in-out,
                    border-top 0.4s step-start,
                    padding 0.4s step-start; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
                padding: 5px;
                height: auto;
            }

.rendered_markdown .spoiler-block .spoiler-button {
            /* Keep the button to a consistent right-hand edge. */
            padding-right: 3px;
        }

.rendered_markdown .spoiler-block .spoiler-button:hover .spoiler-arrow::before {
                    background-color: hsl(0deg 0% 50%);
                }

.rendered_markdown .spoiler-block .spoiler-button:hover .spoiler-arrow::after {
                    background-color: hsl(0deg 0% 50%);
                }

.rendered_markdown .spoiler-block .spoiler-arrow {
            float: right;
            width: 15px;
            cursor: pointer;
            transition: transform 0.4s ease;
            transform: rotate(45deg);
        }

.rendered_markdown .spoiler-block .spoiler-arrow::before {
                position: absolute;
                content: "";
                display: inline-block;
                width: 12px;
                height: 3px;
                background-color: hsl(0deg 0% 83%);
                transition: transform 0.4s ease;
            }

.rendered_markdown .spoiler-block .spoiler-arrow::after {
                position: absolute;
                content: "";
                display: inline-block;
                width: 12px;
                height: 3px;
                background-color: hsl(0deg 0% 83%);
                transition: transform 0.4s ease;
            }

.rendered_markdown .spoiler-block .spoiler-arrow::after {
                position: absolute;
                transform: rotate(90deg);
                top: -5px;
                left: 5px;
            }

.rendered_markdown .spoiler-block .spoiler-arrow.spoiler-button-open {
                transform: rotate(45deg) translate(-5px, -5px);
            }

.rendered_markdown .spoiler-block .spoiler-arrow.spoiler-button-open::before {
                    transform: translate(10px, 0);
                }

.rendered_markdown .spoiler-block .spoiler-arrow.spoiler-button-open::after {
                    transform: rotate(90deg) translate(10px, 0);
                }

/* embedded link previews */

.rendered_markdown .message-thumbnail-gallery {
        display: flex;
        flex-flow: row wrap;
        place-items: center center;
        gap: 5px;
        margin-bottom: var(--markdown-interelement-space-px);
    }

/* We used to use this for certain dropbox previews, we are keeping
       this around as to not break any previous instances of these
       previews. */

.rendered_markdown .message_inline_image_title {
        font-weight: bold;
    }

.rendered_markdown .twitter-image,.rendered_markdown .message-media-preview-image,.rendered_markdown .message-media-preview-video {
        /* Set a background for the image; the background will be visible
           behind the width of the transparent border. */
        border: solid 3px transparent;
        transition: background 0.3s ease;
        background: var(--color-background-image-thumbnail);
    }

.rendered_markdown .twitter-image:hover,.rendered_markdown .message-media-preview-image:hover,.rendered_markdown .message-media-preview-video:hover {
            background: var(--color-background-image-thumbnail-hover);
        }

.rendered_markdown .twitter-image .media-anchor-element,.rendered_markdown .message-media-preview-image .media-anchor-element,.rendered_markdown .message-media-preview-video .media-anchor-element {
            display: block;
        }

.rendered_markdown .twitter-image .media-image-element,.rendered_markdown .message-media-preview-image .media-image-element,.rendered_markdown .message-media-preview-video .media-image-element {
            display: block;
            object-fit: scale-down;

            /* Sizing CSS for inline images requires care, because images load
               asynchronously, and browsers will unfortunately jump your
               scroll position when elements load above the current
               position in the message feed in a way that changes the
               height of elements. (As of March 2022, both Firefox and
               Chrome exhibit this problem, though in Chrome it is pretty
               subtle).

               We prevent this by utilizing dimensions on the `<img>` elements,
               but further care is needed because different layout mechanisms,
               including inline-block, can ignore those dimensions. For that
               reason, we enforce a minimum 4em square for "dinky" images,
               and set the scaled-down width on all others via JavaScript.

               If there are several images next to each other, we display
               them in a grid format; the same considerations require
               use to either use a scrollable region or set a predictable
               size for images so that the browser statically knows whether
               it'll need to overflow. We choose predictable sizes here. */

            /* Ensure a reasonable clickable area on
               extremely tall or extremely wide images. */
            min-width: 4em;
            min-height: 4em;

            /* Constrain height to 10em, but otherwise keep
               the width to the size of the gallery, and
               therefore the message area. */
            max-height: 10em;
            max-width: 100%;

            /* Allow height and width to grow as needed, though
               note we set the scaled-down `width` property on
               each image in JavaScript to keep flexbox from
               collapsing to the min-height and min-width values
               set above... */
            width: auto;
            height: auto;
        }

.rendered_markdown .twitter-image img.image-loading-placeholder,.rendered_markdown .message-media-preview-image img.image-loading-placeholder,.rendered_markdown .message-media-preview-video img.image-loading-placeholder {
            content: var(--svg-url-thumbnail-loader);
        }

.rendered_markdown .twitter-tweet {
        border: 1px solid hsl(0deg 0% 87%);
        padding: 0.5em 0.75em;
        margin-bottom: 0.25em;
        overflow-wrap: anywhere;
        min-height: 48px;
    }

.rendered_markdown .twitter-avatar {
        float: left;
        width: 48px;
        height: 48px;
        margin-right: 0.75em;
    }

/* We used to use this for certain dropbox previews, we are keeping
       this around as to not break any previous instances of these
       previews. */

.rendered_markdown .message_inline_ref {
        margin-bottom: var(--markdown-interelement-space-px);
        margin-inline-start: 5px;
        height: 50px;
        display: block !important;
        border: none !important;
    }

.rendered_markdown .media-image-element {
        cursor: zoom-in;
    }

.rendered_markdown .youtube-video .media-image-element,.rendered_markdown .vimeo-video .media-image-element,.rendered_markdown .embed-video .media-image-element {
        cursor: pointer;
    }

.rendered_markdown .youtube-video .media-image-element {
        /* We do this for the sake of increasing
           the size of older YouTube thumbnail
           previews, but there are no ill effects
           on newer preview images. */
        object-fit: contain;
    }

.rendered_markdown .message_inline_video,.rendered_markdown .message_inline_animated_image_still,.rendered_markdown .youtube-video .media-anchor-element {
        /* Once collections of thumbnails are set to render as
           flex items, this can be updated to use `display: grid`
           instead of `display: inline-grid`. */
        display: inline-grid;
        grid-template: "media" minmax(0, auto) / minmax(0, auto);
        place-items: center center;
    }

.rendered_markdown .message_inline_video:not(.does-not-exist):hover::after {
                transform: scale(1);
            }

.rendered_markdown .message_inline_animated_image_still:not(.does-not-exist):hover::after {
                transform: scale(1);
            }

.rendered_markdown .youtube-video .media-anchor-element:hover::after {
                transform: scale(1);
            }

/* The .media-anchor-selector is for all media
           except YouTube, which needs to place
           .media-image-element on the grid. */

.rendered_markdown .message_inline_video:not(.does-not-exist) .media-anchor-element,.rendered_markdown .message_inline_animated_image_still:not(.does-not-exist) .media-anchor-element,.rendered_markdown .youtube-video .media-anchor-element .media-anchor-element,.rendered_markdown .message_inline_video:not(.does-not-exist) .media-image-element,.rendered_markdown .message_inline_animated_image_still:not(.does-not-exist) .media-image-element,.rendered_markdown .youtube-video .media-anchor-element .media-image-element {
            grid-area: media;
        }

.rendered_markdown .message_inline_video:not(.does-not-exist)::after {
            grid-area: media;
            content: "";
            background-image: url(files/images/play_button.svg);
            background-position: center center;
            background-repeat: no-repeat;
            /* 32px at 14px/1em */
            background-size: 2.2857em;
            /* Match the box to the play button's
               background-size value. */
            width: 2.2857em;
            height: 2.2857em;
            border-radius: 100%;
            transform: scale(0.8);
            transition: transform 0.2s;
        }

.rendered_markdown .message_inline_animated_image_still:not(.does-not-exist)::after {
            grid-area: media;
            content: "";
            background-image: url(files/images/play_button.svg);
            background-position: center center;
            background-repeat: no-repeat;
            /* 32px at 14px/1em */
            background-size: 2.2857em;
            /* Match the box to the play button's
               background-size value. */
            width: 2.2857em;
            height: 2.2857em;
            border-radius: 100%;
            transform: scale(0.8);
            transition: transform 0.2s;
        }

.rendered_markdown .youtube-video .media-anchor-element::after {
            grid-area: media;
            content: "";
            background-image: url(files/images/play_button.svg);
            background-position: center center;
            background-repeat: no-repeat;
            /* 32px at 14px/1em */
            background-size: 2.2857em;
            /* Match the box to the play button's
               background-size value. */
            width: 2.2857em;
            height: 2.2857em;
            border-radius: 100%;
            transform: scale(0.8);
            transition: transform 0.2s;
        }

.rendered_markdown .message_inline_video:not(.does-not-exist) .media-video-element,.rendered_markdown .message_inline_animated_image_still:not(.does-not-exist) .media-video-element,.rendered_markdown .youtube-video .media-anchor-element .media-video-element {
            display: block;
            object-fit: contain;
            /* Since we do not yet read height and width
               values for media thumbnails, we carry forward
               reasonable dimensions for a landscape thumbnail
               here. */
            height: 8em;
            width: 12em;
        }

.rendered_markdown .youtube-video .media-anchor-element {
        /* We display the youtube-video anchor
           as a grid, not inline grid, to avoid
           additional space beneath the thumbnail. */
        display: grid;
    }

.rendered_markdown .media-audio-wrapper {
        vertical-align: middle;
        display: inline-flex;
        align-items: center;
        max-width: 100%;
    }

.rendered_markdown .media-audio-element {
        flex: 0 1 auto;
        /* Allow browser-native media players
           to resize in narrow viewports. */
        max-width: calc(100% - 30px);
    }

.rendered_markdown .media-audio-download {
        flex: 0 0 20px;
        margin-left: 5px;
        display: flex;
        place-content: center center;
    }

.rendered_markdown .media-audio-download:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.rendered_markdown .message_embed {
        display: grid;
        grid-template-columns:
            [thumbnail-start] var(--length-message-preview-embeds)
            [thumbnail-end fader-start data-container-start] minmax(0, 1fr)
            [data-container-end fader-end];
        grid-template-rows:
            [border-start thumbnail-start data-container-start] calc(
                var(--length-message-preview-embeds) - 10%
            )
            [fader-start] 10% [data-container-end thumbnail-end border-end fader-end];
        -moz-column-gap: 5px;
             column-gap: 5px;
        /* We want to control the height without worrying about
           padding... */
        box-sizing: border-box;
        /* ...though we will account for 10px of padding in the
           height itself, so that the fade effect on long description
           text works as expected. */
        height: calc(var(--length-message-preview-embeds) + 10px);
        padding: 5px;
    }

.rendered_markdown .message_embed .message_embed_title {
            font-size: 1.2em;
            /* 5px at 16.8px (1.2 * 14px) */
            margin-top: -0.2976em;
            /* We set the markdown link colors here so
               that the ellipsis takes it on truncated
               lines. The ellipsis will not take an
               underline even if we specify one, so
               that is deliberately omitted here. */
            color: var(--color-markdown-link);
        }

.rendered_markdown .message_embed .message_embed_title:hover {
                color: var(--color-markdown-link-hover);
            }

.rendered_markdown .message_embed .message_embed_title .message-embed-title-link {
                /* Line-clamp lines seem to have a small
                   interline area that's not clickable
                   unless we set the anchor to display as
                   a block. */
                display: block;
            }

.rendered_markdown .message_embed .message_embed_title,.rendered_markdown .message_embed .message_embed_description {
            /* Clamp multi-line titles and descriptions
               to two lines. */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;
            /* Break overflowing words as necessary. */
            overflow-wrap: break-word;
        }

.rendered_markdown .message_embed .message_embed_image {
            display: block;
            grid-area: thumbnail;
            /* Keep the embed image square. */
            max-height: var(--length-message-preview-embeds);
            background-size: cover;
            background-position: center;
        }

.rendered_markdown .message_embed .data-container {
            grid-area: data-container;
        }

.rendered_markdown a:not(.icon-button) {
        color: var(--color-markdown-link);
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.rendered_markdown a:not(.icon-button) code {
            color: var(--color-markdown-code-link);
        }

.rendered_markdown a:not(.icon-button):hover,.rendered_markdown a:not(.icon-button):focus {
            color: var(--color-markdown-link-hover);
            -webkit-text-decoration: underline;
            text-decoration: underline;
        }

.rendered_markdown a:not(.icon-button):hover code,.rendered_markdown a:not(.icon-button):focus code {
                color: var(--color-markdown-code-link-hover);
            }

.rendered_markdown pre {
        direction: ltr;
        /* code block text is a bit smaller than normal text */
        font-size: 0.825em;
        line-height: 1.4;
        white-space: pre;
        overflow-x: auto;
        word-break: break-all;
        overflow-wrap: normal;
        margin: 0 0 var(--markdown-interelement-space-px);
        padding: 5px 7px 3px;
        display: block;
        border-radius: 4px;
    }

.rendered_markdown pre:hover .code-buttons-container {
            visibility: visible;
        }

/* Hide the code buttons container when the user is
           clicking on the code block other than the buttons.
           This allows the user to select part of the the code
           without the buttons interfering with the selection. */

.rendered_markdown pre:active .code-buttons-container:not(:hover) {
            visibility: hidden;
        }

.rendered_markdown pre code {
        font-size: inherit;
        padding: 0;
        white-space: inherit;
        overflow-x: scroll;
        /* Unset to avoid compounding alpha values */
        background-color: unset;
        color: inherit;
        border: 0;
    }

.rendered_markdown code {
        /* 11.55px when body is the default 14px; this is chosen to be
        slightly above the 11.5px threshold where the height jumps by a
        pixel on most platforms. */
        font-size: 0.825em;
        unicode-bidi: embed;
        direction: ltr;
        white-space: pre-wrap;
        /* 1px at 14px/1em */
        padding: 0.0714em 2px;
        color: var(--color-markdown-code-text);
        background-color: var(--color-markdown-code-background);
        border-radius: 3px;
    }

/* Container for buttons inside code blocks. */

.rendered_markdown .code-buttons-container {
        /* Break white-space treatment inherited from <pre> */
        white-space: collapse;
        /* Present buttons in a flexbox layout. */
        display: flex;
        align-items: center;
        gap: 3px;
        /* Having absolute positioning here ensures that the element
        doesn't scroll along with the code div in narrow windows */
        position: absolute;
        top: 4px;
        right: 0;
        padding: 0 4px;
        /* Invisible unless <pre> is hovered. */
        visibility: hidden;
        z-index: 0;
    }

/* The properties of the code_external_link button are copied from the
       copy-button class in app_components.css. */

.rendered_markdown .code_external_link {
        display: flex;
        border-radius: 4px;
        color: var(--color-copy-button);
        /* 2px at 16px/1em */
        padding: 0.125em;
        cursor: pointer;
    }

.rendered_markdown .code_external_link :focus-visible {
            background-color: var(--color-copy-button-square-bg-hover);
        }

.rendered_markdown .code_external_link:hover {
            background-color: var(--color-copy-button-square-bg-hover);
        }

.rendered_markdown .code_external_link:active {
            background-color: var(--color-copy-button-square-bg-active);
            color: var(--color-copy-button-square-active);
        }

.rendered_markdown .copy_codeblock,.rendered_markdown .code_external_link {
        font-size: 1.1363em;
        border: 1px solid var(--color-copy-button-square-bg-active);
        -webkit-backdrop-filter: blur(20px);
                backdrop-filter: blur(20px);
    }

.group_mention .rendered_markdown pre,.direct_mention .rendered_markdown pre {
        background-color: var(--color-markdown-pre-background-mentions);
        border-color: var(--color-markdown-pre-border-mentions);
    }

.group_mention .rendered_markdown code,.direct_mention .rendered_markdown code {
        background-color: var(--color-markdown-code-background-mentions);
    }

.group_mention .rendered_markdown pre code,.direct_mention .rendered_markdown pre code {
        background-color: unset;
        border-color: unset;
    }

.preview_content .copy_codeblock {
    /* We avoid displaying copy_codeblock button in previews, because it
       feels odd given that you can just copy-paste the code out of
       the "edit" state.  We may change this decision when we add
       menu options for viewing the code in a coding playground. */
    display: none;
}

.informational-overlays .copy_codeblock {
    display: none;
}

.message_edit_history_content .copy_codeblock {
    /*  Copy code block button is hidden in edit history, this is done
        because of issues faced in copying code blocks in edit history
        modal. This may be changed later as we decide upon a proper ux
        for displaying edit-history. */
    display: none;
}

.message_edit_history_content .code_external_link {
    right: 5px;
}

.preview_content .code_external_link {
    right: 12px;
}

@media (max-width: 575.98px) {
    .rendered_markdown .message_embed {
        height: auto;
    }

        .rendered_markdown .message_embed .message_embed_image {
            width: 100%;
            height: 100px;
        }

        .rendered_markdown .message_embed .data-container {
            display: block;
            max-width: 100%;
            margin-top: 10px;
        }
}

.codehilite {
    display: block !important;
    border: none !important;
    background: none !important;

    /* Set a relative positioning context to more precisely
       position .code-buttons-container. This eliminates
       problems with positioning shifts associated with
       code blocks in spoilers, too. */
    position: relative;
}

.codehilite pre {
        color: var(--color-markdown-pre-text);
        /* This is necessary to remove the background color
           set by Pygments. */
        background-color: var(--color-markdown-pre-background);
        border: 1px solid var(--color-markdown-pre-border);
    }

/* Both the horizontal scrollbar in <pre/> as well as
   vertical scrollbar in the <textarea/> is styled similarly. */
/* Ensure the horizontal scrollbar is visible on Mac */
.message_edit_form textarea::-webkit-scrollbar {
        height: 8px;
        width: 10px;
        background-color: hsl(0deg 0% 0% / 5%);
    }
.rendered_markdown pre::-webkit-scrollbar {
        height: 8px;
        width: 10px;
        background-color: hsl(0deg 0% 0% / 5%);
    }
.message_edit_form textarea::-webkit-scrollbar-thumb {
        background-color: hsl(0deg 0% 0% / 30%);
        border-radius: 20px;
        cursor: auto;
        -webkit-transition: background-color 0.2s ease;
        transition: background-color 0.2s ease;
    }
.rendered_markdown pre::-webkit-scrollbar-thumb {
        background-color: hsl(0deg 0% 0% / 30%);
        border-radius: 20px;
        cursor: auto;
        -webkit-transition: background-color 0.2s ease;
        transition: background-color 0.2s ease;
    }
.message_edit_form textarea::-webkit-scrollbar-thumb:hover {
        background-color: hsl(0deg 0% 0% / 60%);
    }
.rendered_markdown pre::-webkit-scrollbar-thumb:hover {
        background-color: hsl(0deg 0% 0% / 60%);
    }

/* Search highlight used in both topics and rendered_markdown */
.highlight {
    background-color: hsl(51deg 100% 79%);
}

/* For elements where we want to show as much markdown content we can
   in a single line and then hide the overflowing part. */
/* Any element which can `wrap` in the above defined elements. */
.single-line-rendered-markdown code,.single-line-rendered-markdown .stream-topic {
        white-space: nowrap;
    }

.user-mention i.zulip-icon-bot {
        vertical-align: middle;
        position: relative;
        top: -1px;
        padding-left: 0.3em;
    }

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/zulip.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
html {
    overflow: hidden scroll;
    overscroll-behavior-y: none;
    width: calc(100% - var(--disabled-scrollbar-width));
}

body,
html {
    height: 100%;
    touch-action: manipulation;
}

.column-middle,
#main_div {
    background-color: var(--color-background);
}

#app-loading.loaded {
    display: none !important; /* We are now loaded, by definition. */
}

body {
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: var(--base-font-size-px);
    /* The line-height used in most of the UI should be at least
       its legacy value, but should expand with larger base
       line-height values. */
    line-height: max(
        var(--legacy-body-line-height-unitless),
        var(--base-line-height-unitless)
    );
    font-family: "Source Sans 3 VF", sans-serif;
    color: var(--color-text-default);
    background-color: var(--color-background);

    /* Implementation for fluid layout width setting. */
}

body .header-main,body .app .app-main,body #compose-container {
        max-width: calc(
            var(--left-sidebar-max-width) + var(--message-area-max-width) +
                var(--right-sidebar-max-width)
        );
    }

/* When sidebars are manually hidden, we set the max-width
       for the layout to a different maximum width. This keeps
       the message area predictably readable. */

body.hide-left-sidebar:not(.fluid_layout_width) .header-main,body.hide-left-sidebar:not(.fluid_layout_width) .app .app-main,body.hide-left-sidebar:not(.fluid_layout_width) #compose-container {
            max-width: calc(
                var(--message-area-max-width) + var(--right-sidebar-max-width)
            );

            /* When we're less than the xl_min breakpoint, we instead
               constrain to just the message area's max-width, since
               the right column will be hidden below that point. */
        }

@container header-container (width < 75em) {

body.hide-left-sidebar:not(.fluid_layout_width) .header-main,body.hide-left-sidebar:not(.fluid_layout_width) .app .app-main,body.hide-left-sidebar:not(.fluid_layout_width) #compose-container {
                max-width: var(--message-area-max-width);
        }
            }

@container app (width < 75em) {

body.hide-left-sidebar:not(.fluid_layout_width) .header-main,body.hide-left-sidebar:not(.fluid_layout_width) .app .app-main,body.hide-left-sidebar:not(.fluid_layout_width) #compose-container {
                max-width: var(--message-area-max-width);
        }
            }

/* Fallback media query. */

@media (max-width: 1199.98px) {
            body.without-container-query-support.hide-left-sidebar:not(.fluid_layout_width) .header-main,body.without-container-query-support.hide-left-sidebar:not(.fluid_layout_width) .app .app-main,body.without-container-query-support.hide-left-sidebar:not(.fluid_layout_width) #compose-container {
                max-width: var(--message-area-max-width);
            }
    }

body.hide-right-sidebar:not(.fluid_layout_width) .header-main,body.hide-right-sidebar:not(.fluid_layout_width) .app .app-main,body.hide-right-sidebar:not(.fluid_layout_width) #compose-container {
            max-width: calc(
                var(--left-sidebar-max-width) + var(--message-area-max-width)
            );
        }

body.hide-left-sidebar.hide-right-sidebar:not(.fluid_layout_width) .header-main,body.hide-left-sidebar.hide-right-sidebar:not(.fluid_layout_width) .app .app-main,body.hide-left-sidebar.hide-right-sidebar:not(.fluid_layout_width) #compose-container {
            max-width: var(--message-area-max-width);
        }

body.fluid_layout_width .header-main,body.fluid_layout_width .app .app-main,body.fluid_layout_width #compose-container {
            max-width: inherit;
        }

input,
button {
    /* Browsers default to inline-block,
       so preserve this value. */
    vertical-align: middle;
    /* Preserve normal font-weight, though
       it appears UA stylesheets do not set
       the weight to other values. */
    font-weight: normal;
    /* Likewise with zeroed margin. */
    margin: 0;

    /* Reset these values from Firefox's
       UA stylesheet (still present in
       April 2025) */
}

input::-moz-focus-inner {
        padding: 0;
        border: 0;
    }

button::-moz-focus-inner {
        padding: 0;
        border: 0;
    }

input,
button,
select,
textarea {
    font-family: "Source Sans 3 VF", sans-serif;
    /* Disable bootstrap size CSS; we want to use our default font size on
       body for input elements. */
    line-height: normal;
    font-size: inherit;
}

blockquote p {
    font-weight: normal;
}

/* These colors are typically overridden,
   but referencing them as variables prevents
   specificity wars and ugly :not() selectors,
   especially in dark theme. */
a {
    cursor: pointer;
    color: var(--color-text-generic-link);
    -webkit-text-decoration: none;
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--color-text-generic-link-interactive);
    -webkit-text-decoration: underline;
    text-decoration: underline;
}

a:hover code,a:focus code {
        color: var(--color-text-generic-link-interactive);
    }

code,
pre {
    font-family: "Source Code Pro", monospace;
}

.no-select {
    -webkit-user-select: none;
            user-select: none;
}

.text-select {
    -webkit-user-select: text;
            user-select: text;
}

p.n-margin {
    margin: 10px 0 0;
}

.small-line-height {
    line-height: 1.1;
}

.float-left {
    float: left;
}

.float-right {
    float: right;
}

.float-clear {
    clear: both;
}

.no-margin {
    margin: 0;
}

.history-limited-box {
    color: hsl(16deg 60% 45%);
    border: 1px solid hsl(16deg 60% 45%);
    box-shadow: 0 0 2px hsl(16deg 60% 45%);
}

.all-messages-search-caution {
    border: 1px solid hsl(192deg 19% 75% / 20%);
    box-shadow: 0 0 2px hsl(192deg 19% 75% / 20%);
}

.history-limited-box,
.all-messages-search-caution {
    border-radius: 4px;
    display: none;
    margin: 0 auto 12px;
    padding: 5px;
    /* Difference should be 16px to accommodate the icon. */
    /* This emulates hanging indent. */
    padding-left: 26px;
    text-indent: -10px;
}

.history-limited-box .all-messages-search-caution-icon,.all-messages-search-caution .all-messages-search-caution-icon {
        margin: 0 3px 0 1px;
    }

.history-limited-box p,.all-messages-search-caution p {
        margin: 0;
        padding: 4px;
    }

.messages-logo-svg {
    width: 1.7188em; /* 27.5px at 16px/1em */
}

.bottom-messages-logo {
    display: none;
}

.alert-zulip-logo,
.top-messages-logo,
.bottom-messages-logo {
    width: 1.7143em; /* 24px at 14px/em */
    height: 1.7143em;
    margin: 0 auto 0.8571em; /* 12px at 14px/em */
}

.alert-zulip-logo svg circle,.top-messages-logo svg circle,.bottom-messages-logo svg circle {
            fill: var(--color-zulip-logo);
            stroke: var(--color-zulip-logo);
        }

.alert-zulip-logo svg path,.top-messages-logo svg path,.bottom-messages-logo svg path {
            fill: var(--color-zulip-logo-z);
            stroke: var(--color-zulip-logo-z);
        }

.loading.alert-zulip-logo circle,.loading.top-messages-logo circle,.loading.bottom-messages-logo circle {
        fill: var(--color-zulip-logo-loading);
        stroke: var(--color-zulip-logo-loading);
    }

.top-messages-logo {
    /* Since padding under message header is not transparent
       we need to position it below the padding. */
    padding-top: var(--header-padding-bottom);
}

/* See https://web.dev/animations-guide/#triggers before adding any funny animation properties here. */
@keyframes feedback-slide-in {
    from {
        transform: translateY(-120%);
        opacity: 0;
    }

    to {
        transform: translateY(50px);
        opacity: 1;
    }
}

@keyframes feedback-slide-out {
    from {
        transform: translateY(50px);
        opacity: 1;
    }

    to {
        transform: translateY(-120%);
        opacity: 0;
    }
}

#feedback_container {
    display: none;
    position: fixed;
    width: 400px;
    top: 0;
    left: calc(50vw - 220px);
    padding: 15px;
    background-color: var(--color-background-modal);
    border-radius: 5px;
    box-shadow: 0 0 30px hsl(0deg 0% 0% / 25%);
    z-index: 110;
}

@container app (width < 48em) {

#feedback_container {
        width: calc(90% - 30px);
        left: 5%;
        top: 5%;
}
    }

#feedback_container.show-feedback-container {
        display: block;
        animation: feedback-slide-in 0.6s forwards;
    }

#feedback_container.slide-out-feedback-container {
        animation: feedback-slide-out 0.6s;
    }

#feedback_container h3 {
        font-size: 16pt;
        margin-top: 2px;
    }

#feedback_container .exit-me {
        margin: 0 0 0 5px;
    }

#feedback_container .float-header {
        display: flex;
        align-items: center;
    }

#feedback_container .feedback-button-container {
        display: flex;
        align-items: center;
        margin-left: auto;
    }

#navbar-fixed-container {
    position: fixed;
    top: 0;
    z-index: 102;
}

/* Adjust width of any fixed / absolute positioned elements that might be visible in
   the background when a overlay / modal is open. */
#navbar-fixed-container,
#compose {
    width: calc(100% - var(--disabled-scrollbar-width));
}

.header {
    width: 100%;
    height: var(--header-height);
    /* Since the headers are sticky, we need non-transparent background. */
    background-color: var(--color-background);
    /* Add 1px box-shadow below header so that if there is a gap between sticky header
       and header at some zoom level, it is covered by this */
    box-shadow: 0 1px 0 0 var(--color-background);
}

#navbar-middle .column-middle-inner,
.header,
#message_view_header {
    background-color: var(--color-background-navbar);
    box-shadow: inset 0 -1px 0 var(--color-navbar-bottom-border);
}

.app {
    min-width: 100%;
    min-height: 100%;
    z-index: 99;
}

.app-main,
.header-main {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    position: relative;
}

/* Move simplebar scrollbar to the left so that
       browser scrollbar doesn't overlap with it. */

body.has-overlay-scrollbar .app-main .column-right .simplebar-track.simplebar-vertical {
        right: var(--browser-overlay-scrollbar-width);
    }

/* Styles for popovers rendered as an overlay at the
   center of the screen, primarily used in mobile sizes. */
#popover-overlay-background {
    position: fixed;
    inset: 0;

    /* Needs to be higher than the 105 for div.overlay so that the
       emoji picker can render on top of the user status picker. */
    z-index: 106;
    background-color: hsl(0deg 0% 0% / 70%);
}

.white-space-preserve-wrap {
    white-space: pre-wrap;
}

.white-space-preserve {
    white-space: pre;
}

.white-space-nowrap {
    white-space: nowrap;
}

/* Set flex display on login buttons only in the
   spectator view. We want them to display none
   otherwise. */
.spectator-view #top_navbar .column-right .spectator_login_buttons {
    display: flex;
}

/* This applies to column-left both in navbar and app. */
.column-right {
    width: var(--right-sidebar-width);
    max-width: var(--right-sidebar-max-width);
    position: absolute;
    right: 0;
    top: 0;
}
.column-right .spectator_login_buttons {
        /* Allow the login buttons flexbox to
           grow and shrink to fit the available
           area. */
        flex: 1 1 0;
        /* Use a flexbox gap of 7px between the
           buttons to reflect the outer 7px of space. */
        gap: 7px;
        /* Don't allow login buttons flexbox to
           break out of the allotted right-column
           space. */
        overflow: hidden;
        /* This should be removed once the navbar
           has been rewritten entirely with modern
           layout methods. For now, we pull this up
           so that the buttons and search box are
           the same height and their boxes sit on the
           same invisible line. */
        margin-top: -1px;
        /* Prevent collisions with the search box. */
        margin-left: 15px;
    }
.column-right .spectator_login_buttons a {
            font-size: calc(16em / 14);
            /* Vertically size the buttons to
               match the search box. */
            line-height: 28px;
            font-weight: 450;
            letter-spacing: 0.03ch;
            /* Allow individual buttons to grow
               and shrink inside their containers,
               with padding to prevent text from
               sitting against the edge of the button. */
            flex: 1 1 0;
            padding: 0 4px;
            /* Center the text nodes within the
               flex items. */
            text-align: center;
            /* Internationalization: disallow wrapping,
               and display an ellipsis when there's not
               space enough to accommodate the button
               text. */
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            /* Button curvature and transitions. */
            border-radius: 4px;
            transition: transform 100ms ease-out;
        }
.column-right .spectator_login_buttons a:hover,.column-right .spectator_login_buttons a:focus {
                -webkit-text-decoration: none;
                text-decoration: none;
            }
.column-right .spectator_login_buttons a:active {
                transform: scale(0.98);
            }
.column-right .spectator_login_buttons a i {
                margin-right: 3px;
            }
.column-right .spectator_login_buttons .login_button {
            color: var(
                --color-navbar-spectator-medium-attention-brand-button-text
            );
            background-color: var(
                --color-navbar-spectator-medium-attention-brand-button-background
            );
        }
.column-right .spectator_login_buttons .login_button:hover,.column-right .spectator_login_buttons .login_button:focus {
                color: var(
                    --color-navbar-spectator-medium-attention-brand-button-text
                );
                background-color: var(
                    --color-navbar-spectator-medium-attention-brand-button-background-hover
                );
            }
.column-right .spectator_login_buttons .login_button:active {
                color: var(
                    --color-navbar-spectator-medium-attention-brand-button-text
                );
                background-color: var(
                    --color-navbar-spectator-medium-attention-brand-button-background-active
                );
            }
.column-right .spectator_narrow_login_button {
        position: absolute;
        top: 0;
        right: 0;
        height: var(--header-height);
        width: var(--header-height);
    }
@media (min-width: 1200px) and (min-height: 600px) {
.column-right .spectator_narrow_login_button {
            display: none;
    }
        }
.column-right .spectator_narrow_login_button .login_button {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100%;
        }
.column-right .spectator_narrow_login_button .login_button:hover {
                -webkit-text-decoration: none;
                text-decoration: none;
            }
.column-right .spectator_narrow_login_button .login_button i {
                color: var(--color-navbar-icon);
                font-size: 1.6em;
            }

/* This applies to column-left both in navbar and app. */
.column-left {
    width: var(--left-sidebar-width);
    max-width: var(--left-sidebar-width);
    position: absolute;
    left: 0;
    top: 0;
}

.app-main .column-right.expanded,
.app-main .column-left.expanded {
    /* We share a baseline z-index to make
       sure overlays respect the .topmost-overlay
       below. */
    z-index: 10;
}

.app-main .column-right.expanded.topmost-overlay,
.app-main .column-left.expanded.topmost-overlay {
    z-index: 15;
}

#message_feed_container,
.app-main .column-left .left-sidebar,
.app-main .column-right .right-sidebar {
    padding-top: calc(
        var(--navbar-fixed-height) + var(--header-padding-bottom)
    );
}

.app-main {
    height: 100%;
    min-height: 100%;
}

.app-main::after {
        /* We use `content` values to determine
           viewport state from JavaScript; this
           hides the values without disrupting
           the document flow. */
        position: absolute;
        display: none;
    }

.app-main .column-left .left-sidebar,.app-main .column-right .right-sidebar {
        position: fixed;
        z-index: 100;
    }

.app-main .column-left .left-sidebar {
        width: var(--left-sidebar-width);
        padding-left: var(--left-sidebar-padding-left);
    }

.app-main .column-right .right-sidebar {
        padding-left: var(--right-sidebar-left-spacing);
        width: var(--right-sidebar-width);
    }

.app-main .column-middle {
        min-height: 100%;
        /* We need `overflow-y: visible` for sticky headers to work. */
    }

/* We test for spec-aligned container query support
   using these styles. */
.container-query-test {
    /* Keep the test div from rendering. */
    visibility: hidden;
    /* Establish a container. */
    container: test-container / inline-size;
    /* Establish a positioning context that
       conforming browsers will ignore. */
    position: relative;
    top: 100px;
}
.container-query-test .container-query-test-child {
        /* Non-spec aligned browsers will keep
           this element to the top of the containing
           <div>; spec-aligned browsers move it to the
           top of the viewport. We check for this in
           information_density.ts */
        position: fixed;
        top: 0;
    }

/* With spec-aligned container support, we
       can establish em-aware containers to
       query as needed.
       Note that container queries can only
       act on children of the container, so
       at least for now, we include separate
       queries for #header-container in the
       navbar as well as .app-main in capable
       browsers.
    */

.with-container-query-support #header-container {
        container: header-container / inline-size;
    }

.with-container-query-support .app {
        container: app / inline-size;
    }

.column-middle,
#compose-content {
    margin-right: var(--right-sidebar-width);
    margin-left: calc(
        var(--left-sidebar-width) + var(--left-sidebar-padding-left)
    );
    position: relative;
}

textarea,
input {
    font-family: "Source Sans 3 VF", sans-serif;
}

/* Override browsers that use
   `cursor: default` */
label,
button {
    cursor: pointer;
}

/* Override Bootstrap's fixed sizes for various elements */
textarea,
label {
    font-size: inherit;
    line-height: inherit;
}

button:focus {
    outline: 0;
}

/* Bootstrap's focus outline uses -webkit-focus-ring-color which doesn't exist in Firefox */
a:not(:active):focus,
button:focus-visible,
label.checkbox input[type="checkbox"]:focus ~ .rendered-checkbox,
i.fa:focus,
i.zulip-icon:focus-visible,
[role="button"]:focus {
    outline: 2px solid var(--color-outline-focus);
    /* TODO: change solid to auto once the Chromium bug #1105822 is fixed */
}

/* List of text-like input types taken from Bootstrap */
input[type="text"]:not(.input-element),input[type="password"]:not(.input-element),input[type="datetime"]:not(.input-element),input[type="datetime-local"]:not(.input-element),input[type="date"]:not(.input-element),input[type="month"]:not(.input-element),input[type="time"]:not(.input-element),input[type="week"]:not(.input-element),input[type="number"]:not(.input-element),input[type="email"]:not(.input-element),input[type="url"]:not(.input-element),input[type="search"]:not(.input-element),input[type="tel"]:not(.input-element),input[type="color"]:not(.input-element) {
        font-size: inherit;
        height: 1.4em;
        background-color: var(--color-background-legacy-input);
        border-color: var(--color-border-legacy-input);
    }
input[type="text"]:not(.input-element):focus,input[type="password"]:not(.input-element):focus,input[type="datetime"]:not(.input-element):focus,input[type="datetime-local"]:not(.input-element):focus,input[type="date"]:not(.input-element):focus,input[type="month"]:not(.input-element):focus,input[type="time"]:not(.input-element):focus,input[type="week"]:not(.input-element):focus,input[type="number"]:not(.input-element):focus,input[type="email"]:not(.input-element):focus,input[type="url"]:not(.input-element):focus,input[type="search"]:not(.input-element):focus,input[type="tel"]:not(.input-element):focus,input[type="color"]:not(.input-element):focus {
            border-color: var(--color-border-legacy-input-focus);
        }

li,
.table th,
.table td {
    line-height: inherit;
}

.bootstrap-btn {
    font-size: inherit;
    height: auto;
    line-height: 100%;
}

/* Classes which style copy buttons */
.copy_button_base {
    outline-color: hsl(0deg 0% 73%);
    height: 18px;
    width: 10px;
    padding: 6px;
    display: block;
    /* The below two avoids the padded element from displaying
    its own border and background color */
    border: none;
    background-clip: content-box;
}
.copy_button_base:hover svg path {
        fill: var(--color-fill-hover-copy-icon);
    }

.copy_message {
    position: absolute;
    top: 5px;
    right: 5px;
    height: 1em;
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    outline: 1px solid var(--color-copy-button-square-bg-active);
}

#copy_generated_link_container {
    display: flex;
    gap: 4px;
    align-items: center;
}

#copy_generated_invite_link {
    position: relative;
    right: -30px;
}

/* Classes for hiding and showing controls */

.notdisplayed {
    display: none !important;
}

.notvisible {
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
}

/* Lighter strong */

strong {
    font-weight: 600;
}

.preserve_spaces {
    white-space: pre-wrap;
}

.logout {
    white-space: nowrap;
}

.buddy_list_tooltip_content {
    text-align: left;
    overflow-wrap: break-word;
    /* 280px at 14px/1em */
    max-width: 20em;
}

#change_visibility_policy_button_tooltip {
    text-align: left;
}

#change_visibility_policy_button_tooltip .tooltip-privacy-icon {
        position: relative;
        display: inline-block;
    }

#change_visibility_policy_button_tooltip .tooltip-privacy-icon .zulip-icon-lock {
        margin-top: -0.15em !important;
    }

#change_visibility_policy_button_tooltip .tooltip-privacy-icon i {
        position: absolute;
        top: 0.1667em;
    }

#change_visibility_policy_button_tooltip .privacy-tooltip-stream-name {
        margin-left: 1.25em;
    }

.narrow-filter {
    display: block;
    position: relative;
}

@keyframes pulse-unread {
    /* Only unread dots in collapsed Views
       have offset variables set; all others
       will fall back to 0 (no offset). */
    0% {
        transform: scale(1) translateX(var(--unread-dot-x-offset, 0));
    }

    50% {
        transform: scale(var(--pulse-unread-scale-max))
            translateX(var(--unread-dot-x-offset-scaled, 0));
    }

    100% {
        transform: scale(1) translateX(var(--unread-dot-x-offset, 0));
    }
}

.new-unread .unread_count {
    animation: 2s ease-in-out 2 pulse-unread;
}

.messagebox-content .slow-send-spinner {
    display: block;
    font-size: 0.8571em; /* 12px at 14px/em */
    text-align: right;
    opacity: 0.8;
    color: var(--color-text-default);
    animation: rotate 1s infinite linear;
}

.star:hover {
        cursor: pointer;
    }

.copy-paste-text {
    /* Hide the text that we want copy paste to capture */
    position: absolute;
    left: -99999px;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(359deg);
    }
}

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

    100% {
        opacity: 1;
    }
}

@keyframes fadeInEditNotice {
    0% {
        transform: translateX(-10px);
    }

    100% {
        transform: translateX(0);
    }
}

.selected_message .messagebox-content {
        /* We add an outline and shift it inside the message so that without
           any vertical padding changes, we can have the outline surrounding
           the message without overflowing the boundary of the message in any case. */
        outline: 1px solid var(--color-selected-message-outline);
        border-radius: 5px;
        outline-offset: -1px;
    }

@media (hover: none) {
        .selected_msg_for_touchscreen .message_reactions .reaction_button {
            visibility: visible;
            pointer-events: all;
        }
    }

/* Make the action icon on the message row
   always visible while the popover is open */
.has_actions_popover .actions_hover {
    visibility: visible !important;
    pointer-events: all !important;
    opacity: 1 !important;
}
.has_actions_popover .actions_hover i:focus {
        /* Avoid displaying a focus outline outside the popover on the \vdots
           icon when opened via the mouse. */
        outline: 0 !important;
    }

.has_actions_popover .info {
    opacity: 1;
    visibility: visible;
}

.small {
    font-size: 80%;
}

.tiny {
    font-size: 60%;
}

div.message-list {
    border-collapse: separate;
    margin-left: auto;
    display: none;
    width: 100%;
}

div.focused-message-list {
    display: block;
}

/* In conversation view, always show the recipient bar action buttons */
div.focused-message-list.is-conversation-view .recipient_row .recipient_bar_controls {
        opacity: 1;
        transition: opacity 0.15s ease-in;
    }

.rtl {
    direction: rtl;
}

.topic_edit {
    display: none;
    flex-grow: 1;
}

.topic_edit .alert {
        display: inline-block;
        margin: 0;
        padding: 0 10px;
        line-height: 17px;
    }

.topic_edit_form {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    padding-right: 5px;
    position: relative;
}

.inline_topic_edit {
    flex: 1;
    line-height: 1.2142em;
    padding: 0 5px;
    color: var(--color-text-default);
    border-radius: 4px;
    border: 1px solid hsl(0deg 0% 80%);

    transition:
        border-color linear 0.2s,
        box-shadow linear 0.2s;
}

.inline_topic_edit:focus {
        border-color: hsl(206deg 80% 62% / 80%);
        outline: 0;
        box-shadow:
            inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
            0 0 8px hsl(206deg 80% 62% / 60%);
    }

.inline_topic_edit.empty-topic-display::placeholder {
        color: inherit;
    }

.inline-topic-edit-placeholder {
    position: absolute;
    left: 5px;
    max-width: 65%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    visibility: hidden;
}

.inline-topic-edit-placeholder-visible {
    visibility: visible;
}

.topic_edit_save {
    --csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) hsl(0deg 0% 0% / 60%);
    border-color: var(--csstools-light-dark-toggle--0, hsl(0deg 0% 0% / 10%));
    border-color: light-dark(hsl(0deg 0% 0% / 10%), hsl(0deg 0% 0% / 60%));
    border-width: 1px;
    border-style: solid;
    background-clip: padding-box;
}

.information-settings .user-profile-picture,
.user_sidebar_entry.with_avatar .user-profile-picture,
.inline_profile_picture {
    display: inline-block;
    /* Don't inherit the line-height from message-avatar;
       this preserves the dimensions and rounded corners
       on the image itself. */
    line-height: 1;
    vertical-align: top;
    border-radius: 4px;
    overflow: hidden;
}

.information-settings .user-profile-picture.guest-avatar:not(.does-not-exist)::after {
        outline: 2px solid hsl(0deg 0% 100%);
    }

.user_sidebar_entry.with_avatar .user-profile-picture.guest-avatar::after {
        outline: 2px solid hsl(0deg 0% 100%);
    }

.guest-avatar.inline_profile_picture:not(.does-not-exist):not(.does-not-exist)::after {
        outline: 2px solid hsl(0deg 0% 100%);
    }

.inline_profile_picture {
    width: var(--message-box-avatar-width);
    height: var(--message-box-avatar-height);
}

.information-settings .user-profile-picture,
.user_sidebar_entry.with_avatar .user-profile-picture {
    width: var(--right-sidebar-avatar-width);
    height: var(--right-sidebar-avatar-height);
    margin-right: var(--right-sidebar-avatar-right-margin);
}

.streamname {
    font-weight: bold;
}

.top-navbar-container {
    /* Calculate right margin so that title and description
       elements can truncate and not collide with or run underneath
       with the search section. */
    margin-right: calc(
        var(--search-box-width) + var(--navbar-content-righthand-offset)
    );
    overflow: hidden;
    text-overflow: ellipsis;
}

.top-navbar-container-allow-description-extension {
    overflow: visible;
}

#streamlist-toggle {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
}

.hide-streamlist-toggle-visibility,
.hide-navbar-buttons-visibility {
    visibility: hidden;
}

#header-container .left-sidebar-toggle-button {
    -webkit-text-decoration: none;
    text-decoration: none;
    color: var(--color-navbar-icon);
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    width: var(--header-height);
    height: var(--header-height);
}

#header-container .left-sidebar-toggle-button:hover {
        background-color: var(--color-header-button-hover);
    }

#header-container .left-sidebar-toggle-button:hover .left-sidebar-toggle-unreadcount {
            border-color: var(--color-header-button-hover-no-alpha);
        }

#header-container .left-sidebar-toggle-button:active {
        background-color: var(--color-header-button-focus);
    }

#header-container .left-sidebar-toggle-button:focus {
        outline: 0;
    }

#header-container .left-sidebar-toggle-button:focus-visible {
        outline: none;
        background-color: var(--color-header-button-focus);
    }

#header-container .left-sidebar-toggle-button:active .left-sidebar-toggle-unreadcount {
            border-color: var(--color-header-button-focus-no-alpha);
        }

#header-container .left-sidebar-toggle-button:focus-visible .left-sidebar-toggle-unreadcount {
            border-color: var(--color-header-button-focus-no-alpha);
        }

.left-sidebar-toggle-unreadcount {
    position: absolute;
    display: none;
    /* 6px at 16px/1em */
    height: 0.375em;
    width: 0.375em;
    background-color: var(--color-navbar-icon);

    /* 2px at 16px/1em */
    border: 0.125em solid var(--color-background-navbar);
    /* 6px at 16px/1em */
    border-radius: 0.375em;
    padding: 0;

    /* At 16px/1em, the toggle icon is 20px on a side, which is
       half the width of its container (40px on a side). To
       place the 10px-wide unread counter correctly, then, we
       set it to 25% of the right of the container, or 10px,
       and likewise 25% down from the top of the container,
       also 10px. */

    top: 25%;
    right: 25%;
}

nav .column-left {
        text-align: left;
        display: flex;
        justify-content: left;
        gap: 4px;
    }

nav .column-left .brand {
            display: flex;
            align-items: center;
        }

nav .column-left .nav-logo {
            display: inline-block;
            height: 1.25em; /* 20px at 16px em */
            max-width: var(--realm-logo-max-width);
        }

@media (max-height: 599.98px) {

nav .column-left .nav-logo {
                height: 0.9375em; /* 15px at 16px em */
        }
            }

nav .column-left .left-sidebar-toggle-button .left-sidebar-toggle-unreadcount {
            /* The toggle icon is half the width of its container
            and is at the center of the container.
            So, the left width starts from left 25% of the container
            and ends till 75% of the container's width.
            Similarly, vertically, the dot is starts at the top 25% of
            the container's height and ends at 75% of the total height

            So, the top right corner of the icon is at 25% from top and
            75% from the right. This is the location where we place the
            unread indicator dot. */
            top: 25%;
            right: 25%;
        }

nav a.no-style:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
            cursor: pointer;
        }

nav a .no-style {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

#bottom_whitespace {
    display: block;
    height: var(--max-unmaximized-compose-height);
}

.operator_value {
    font-family: "Source Code Pro", monospace;
    color: hsl(353deg 70% 65%);
}

.operator {
    font-family: "Source Code Pro", monospace;
}

#loading_older_messages_indicator,
#loading_more_indicator {
    margin: 10px;
}

#loading_older_messages_indicator_box_container,
#loading_more_indicator_box_container {
    position: absolute;
    left: 50%;

    /* Override the base rules in app_components.css, which would require
       coordination with loading.make_indicator */
}

#loading_older_messages_indicator_box_container .loading_indicator_spinner,#loading_more_indicator_box_container .loading_indicator_spinner {
        height: 2.7143em; /* 38px at 14px/em */
        width: 2.7143em; /* 38px at 14px/em */
    }

#loading_older_messages_indicator_box,
#loading_more_indicator_box {
    position: relative;
    left: -1.3571em; /* 50% of 38px = 19px at 14px/em */
    top: -3.0714em; /* -43px at 14px/em */
    z-index: 1;
    border-radius: 6px;
}

#page_loading_indicator {
    margin: 10px auto;
}

#page_loading_indicator_box_container {
    position: absolute;
    left: 50%;
}

#page_loading_indicator_box {
    position: relative;
    /* 50% of 38px = 19px at 14px/1em */
    left: -1.3571em;
    /* -43px at 14px/1em */
    top: -3.0714em;
    z-index: 1;
    border-radius: 6px;
}

#create_stream_subscribers {
    margin-top: 10px;
}

#create_stream_subscribers .checkbox {
        display: block;
    }

#create_stream_subscribers .checkbox input[type="checkbox"] {
            margin: 5px 0;
            float: none;
        }

.sub_button_row {
    text-align: center;
}

div.topic_edit_spinner {
    display: flex;
    align-items: center;
    width: 1.2em; /* 18px at 15px/em  (from font size set in .message-header-contents) */
    height: 1.2em; /* 18px at 15px/em */
}

div.topic_edit_spinner .loading_indicator_spinner {
    width: 0.9333em; /* 14px at 15px/em  (from font size set in .message-header-contents) */
    height: 0.9333em; /* 14px at 15px/em */
}

div.topic_edit_spinner .loading_indicator_spinner path {
        fill: var(--color-recipient-bar-controls-spinner);
    }

.custom-time-input-value,
#invite-user-form {
    margin: 0;
}

.invite-user-select {
    vertical-align: middle;
}

#multiuse_invite_link {
    width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
}

#invite-user-form .loading_indicator_spinner {
    height: 1em;
    width: -moz-fit-content;
    width: fit-content;
    display: inline-block;
    float: none;
    margin: 0 5px;
}

.add-user-group-container,
.add_streams_container {
    display: inline-flex;
    align-items: center;
    width: 100%;
}

#invite_welcome_custom_message_text {
    resize: vertical;
    height: 8em;
    width: 100%;
    box-sizing: border-box;
}

.custom-time-input-value {
    width: 5ch;
    margin-right: 15px;

    padding: 4px 6px;
    color: var(--color-text-default);
    border-radius: 4px;
    border: 1px solid hsl(0deg 0% 80%);
    box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
    transition:
        border-color linear 0.2s,
        box-shadow linear 0.2s;
}

.custom-time-input-value:focus {
        border-color: hsl(206deg 80% 62% / 80%);
        outline: 0;
        box-shadow:
            inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
            0 0 8px hsl(206deg 80% 62% / 60%);
    }

.custom-time-input-unit {
    width: auto;
}

.empty_feed_notice {
    max-width: 42.8571em;
    margin: 0 auto;
    padding: 3em 1em;
    text-align: center;
}

.empty-feed-notice-title {
    font-size: 1.5em;
    font-weight: 400;
    line-height: inherit;
    overflow-wrap: break-word;
}

.empty-feed-notice-description {
    font-size: 1.1em;
}

.empty-feed-notice-description .search-query-word {
        overflow-wrap: break-word;
    }

.message-fade,
.user_sidebar_entry.user-fade {
    opacity: 0.4;
}

.emoji {
    height: 25px;
    width: 25px;
    /* Maintain `vertical-align` for inline-block styles in messages: */
    vertical-align: middle;
    /* But, for all others, use flexbox and its align-self property.
      What is excellent about this is that flexbox will ignore the
      `vertical-align` value, while inline-block contexts will ignore
      the `align-self` property: */
    align-self: center;
}

.status-emoji {
    /* 16px at 14px/1em */
    height: 1.1429em;
    width: 1.1429em;
    /* We are setting minimum width here because when the user's name is very long,
    emoji's width decreases and causes it to break. */
    min-width: 1.1429em;
    /* In most contexts, status emoji appear immediately after a name
      field with no margin. Position the status emoji with 3px of left
      margin to space it from the name, and set no right margin so
      that any components to the right appear equally distant as they
      would be from a name. */
    margin-left: 3px;
    margin-right: 0;
}

/* FIXME: Combine this rule with the one in portico.css somehow? */
#pw_strength {
    width: 100%;
    height: 10px;
    margin-bottom: 0;
}

.screen {
    position: absolute;
    left: 0;
    top: 0;
    background-color: hsl(0deg 0% 0%);
    z-index: 20000;
}

.deactivated_user .deactivated-user-icon {
    color: inherit;
    margin-left: 2px;
    font-size: 0.9em;
}

.no-drag {
    -webkit-user-drag: none;
    -webkit-user-select: none;
            user-select: none;
}

/* Hide the up and down arrows in the Flatpickr datepicker year */

.flatpickr-calendar .flatpickr-months .numInputWrapper span {
        display: none;
    }

.flatpickr-calendar .flatpickr-time-separator {
        position: relative;
        left: 5px;
    }

.flatpickr-calendar .flatpickr-time input {
        margin: 0 5px;
        min-height: 30px;
    }

.flatpickr-calendar .flatpickr-confirm {
        color: hsl(0deg 0% 100%);
        background-color: hsl(213deg 90% 65%);
        font-size: var(--flatpickr-confirm-button-font-size);
        font-weight: 600;
    }

@media (max-width: 767.98px) {

.flatpickr-calendar {
        /* Center align flatpickr on mobile
         * devices so that it doesn't go out of
         * the viewport. */
        left: 0 !important;
        right: 0 !important;
        margin: auto;
}

        .flatpickr-calendar::after,.flatpickr-calendar::before {
            border-top-width: 0 !important;
        }
    }

#about-zulip .exit {
        font-size: 1.5rem;
        font-weight: 600;
        background-color: transparent;
        border: none;
        position: absolute;
        right: 8px;
        z-index: 1;
        color: hsl(0deg 0% 67%);
    }

#about-zulip .overlay-content {
        width: 440px;
        border-radius: 4px;
    }

#about-zulip .zulip-version-info,#about-zulip .zulip-merge-base-info {
        display: flex;
        align-items: center;
        gap: 5px;
    }

#about-zulip .about-zulip-logo {
        text-align: center;
        margin: 30px;
    }

#about-zulip .about-zulip-logo img {
        height: 40px;
    }

#about-zulip .overlay-body {
        max-height: 60vh;
        padding: 15px;
    }

@media (max-width: 1199.98px) or (max-height: 599.98px) {
        .spectator-view #navbar-middle {
            /* = (width of button, square with header) * 3 (number of buttons) + 10px extra margin. */
            margin-right: calc(var(--header-height) * 3 + 10px);
        }

        .spectator-view #help-menu,.spectator-view #gear-menu {
            position: relative;
            right: var(--header-height);
        }

        .spectator-view #top_navbar .column-right .spectator_login_buttons {
            display: none;
        }

    .header-main .column-right {
        /* For a diminutive right column in the navbar,
           allow the width to be that of the flexing
           button elements. */
        width: auto;
    }
}

@media (max-width: 767.98px) {
        .spectator-view #navbar-middle {
            /* = (width of button, square with header) * 3 (number of buttons) */
            margin-right: calc(var(--header-height) * 3);
        }

        .spectator-view .header-main .column-right {
            width: calc(var(--header-height) * 3);
        }
}

.hide-right-sidebar .app-main .column-right {
        display: none;
    }

.hide-right-sidebar .app-main .column-right.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --right-sidebar-width: var(--right-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            right: 15px;
            top: 0;
    }

.hide-right-sidebar .app-main .column-right.expanded .simplebar-track.simplebar-vertical {
                right: 0;
    }

.hide-right-sidebar .app-main .column-right.expanded .right-sidebar {
                box-shadow: 0 -2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-left: 1px solid var(--color-border-sidebar);
                height: 100%;
                width: var(--right-sidebar-width);
                right: 0;
                background-color: var(--color-background);
    }

.hide-right-sidebar #navbar-middle {
        margin-right: var(--right-column-collapsed-sidebar-width);
    }

.hide-right-sidebar #compose-content,.hide-right-sidebar .app-main .column-middle {
        margin-right: 7px;
    }

.hide-right-sidebar-by-visibility .app-main .column-right {
    visibility: hidden;
}

.left-sidebar-toggle-button .zulip-icon-panel-left {
    display: none;
}

.column-middle.expanded .left-sidebar-toggle-button .zulip-icon-panel-left {
        display: none;
    }

.column-middle.expanded .left-sidebar-toggle-button .zulip-icon-panel-left-dashed {
        display: block;
    }

.hide-left-sidebar .app-main .left-sidebar-toggle-button .zulip-icon-panel-left {
        display: block;
    }

.hide-left-sidebar .app-main .left-sidebar-toggle-button .zulip-icon-panel-left-dashed {
        display: none;
    }

.hide-left-sidebar .app-main .column-left {
        display: none;
    }

.hide-left-sidebar .app-main .column-left.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --left-sidebar-width: var(--left-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            left: 0;
            top: 0;
    }

.hide-left-sidebar .app-main .column-left.expanded .left-sidebar {
                background-color: var(--color-background);
                box-shadow: 0 2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-right: 1px solid var(--color-border-sidebar);
                height: 100%;
                padding-left: 10px;
                width: var(--left-sidebar-width);
    }

.hide-left-sidebar #compose-content,.hide-left-sidebar .app-main .column-middle {
        margin-left: 7px;
    }

@container header-container (width > 48em) {
        .hide-left-sidebar #navbar-middle {
            margin-left: var(--middle-column-left-margin-fluid-layout);
        }
    }

@container header-container (width < 75em) {
        .hide-left-sidebar #top_navbar .column-left {
            width: auto;
        }
    }

@container header-container (width < 48em) {
        .hide-left-sidebar #navbar-middle {
            margin-left: 0;
        }
    }

@container app (width < 75em) {
        .hide-left-sidebar #compose-content,.hide-left-sidebar .app-main .column-middle {
            margin-left: 7px;
        }
    }

/* Media-query fallback for the cinched-up logo presentation. */
@media (min-width: 768.02px) {
            .without-container-query-support.hide-left-sidebar #navbar-middle {
                margin-left: var(--middle-column-left-margin-fluid-layout);
            }
}

/* User can clearly see the unread count in the left sidebar. So,
       we don't need an indicator here as it will only serve as a disctraction. */

body:not(.hide-left-sidebar) #header-container .column-left .left-sidebar-toggle-unreadcount {
        display: none !important;
    }

/* The large Log In button for spectators makes this rule
       inappropriate for that view. */

@container header-container (width < 75em) {
        body:not(.spectator-view) #navbar-middle {
            /* = (width of button, square with header) * 4 (number of buttons) + 3px extra margin. */
            margin-right: var(--right-column-collapsed-sidebar-width);
        }
    }

/* We have some regrettable but temporarily necessary code duplication
   in the queries that follow.

   In browsers that support spec-aligned, em-aware container queries,
   we query on the app-main container. That enables breakpoints that
   look best at a chose base font size.

   However, in browsers that lag the spec, we fall back to the original
   media queries. The layout will not look as good as it could, but
   essential scrolling behavior will be maintained. */

@container app (width < 75em) {
    .app-main .column-right {
        display: none;
    }
    .app-main .column-right.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --right-sidebar-width: var(--right-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            right: 15px;
            top: 0;
    }
    .app-main .column-right.expanded .simplebar-track.simplebar-vertical {
                right: 0;
    }
    .app-main .column-right.expanded .right-sidebar {
                box-shadow: 0 -2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-left: 1px solid var(--color-border-sidebar);
                height: 100%;
                width: var(--right-sidebar-width);
                right: 0;
                background-color: var(--color-background);
    }

        .app-main .column-middle {
            margin-right: 7px;
        }

    #typing_notifications,
    #scheduled_message_indicator,
    #compose-content {
        margin-right: 7px;
    }
}

@container header-container (width < 48em) {
    .header-main .column-left {
        display: none;
    }

    #navbar-middle {
        margin-left: 0;
    }

    #streamlist-toggle {
        display: block;
    }

    .top-navbar-container {
        /* The --header-height variable is used to make
        the squared toggle area, so we offset it
        accordingly. */
        margin-left: var(--header-height);
    }
}

@container app (width < 48em) {
    .app-main .left-sidebar-toggle-button .zulip-icon-panel-left {
        display: block;
    }
    .app-main .left-sidebar-toggle-button .zulip-icon-panel-left-dashed {
        display: none;
    }
    .app-main .column-left {
        display: none;
    }
    .app-main .column-left.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --left-sidebar-width: var(--left-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            left: 0;
            top: 0;
    }
    .app-main .column-left.expanded .left-sidebar {
                background-color: var(--color-background);
                box-shadow: 0 2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-right: 1px solid var(--color-border-sidebar);
                height: 100%;
                padding-left: 10px;
                width: var(--left-sidebar-width);
    }

        .app-main .column-middle {
            margin-left: 7px;
            margin-right: 7px;
        }

        .app-main .column-middle .column-middle-inner {
            margin-left: 0;
            margin-right: 0;
        }

    #typing_notifications,
    #scheduled_message_indicator,
    #compose-content {
        margin-left: 7px;
    }
}

@container app (width <= 26.5625em) {
    .column-right.expanded,
    .column-left.expanded {
        width: 100vw;
        max-width: 100%;
    }

    .app-main .column-right.expanded .right-sidebar,
    .app-main .column-left.expanded .left-sidebar {
        width: 100vw;
        max-width: 100%;
    }
}

@container header-container (width <= 36em) {
    .narrow_description {
        display: none;
    }
}

/* Begin fallback media queries. */
@media (max-width: 1199.98px) {
        .without-container-query-support .app-main .column-right {
        display: none;
        }
        .without-container-query-support .app-main .column-right.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --right-sidebar-width: var(--right-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            right: 15px;
            top: 0;
        }
        .without-container-query-support .app-main .column-right.expanded .simplebar-track.simplebar-vertical {
                right: 0;
        }
        .without-container-query-support .app-main .column-right.expanded .right-sidebar {
                box-shadow: 0 -2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-left: 1px solid var(--color-border-sidebar);
                height: 100%;
                width: var(--right-sidebar-width);
                right: 0;
                background-color: var(--color-background);
        }

            .without-container-query-support .app-main .column-middle {
                margin-right: 7px;
            }

        .without-container-query-support #navbar-middle {
            /* = (width of button, square with header) * 4 (number of buttons) + 3px extra margin. */
            margin-right: calc(var(--header-height) * 4 + 3px);
        }

        .without-container-query-support #typing_notifications,.without-container-query-support #scheduled_message_indicator,.without-container-query-support #compose-content {
            margin-right: 7px;
        }
            .without-container-query-support .hide-left-sidebar #compose-content,.without-container-query-support .hide-left-sidebar .app-main .column-middle {
                margin-left: 7px;
            }

            .without-container-query-support .hide-left-sidebar #top_navbar .column-left {
                width: auto;
            }
}

@media (max-width: 767.98px) {
        .without-container-query-support .app-main .left-sidebar-toggle-button .zulip-icon-panel-left {
        display: block;
        }
        .without-container-query-support .app-main .left-sidebar-toggle-button .zulip-icon-panel-left-dashed {
        display: none;
        }
        .without-container-query-support .app-main .column-left {
        display: none;
        }
        .without-container-query-support .app-main .column-left.expanded {
            /* In the extended state, we open the sidebar
               to its maximum possible size (otherwise, it
               would be unnecessarily too narrow). */
            --left-sidebar-width: var(--left-sidebar-max-width);
            display: block;
            position: absolute;
            float: none;
            left: 0;
            top: 0;
        }
        .without-container-query-support .app-main .column-left.expanded .left-sidebar {
                background-color: var(--color-background);
                box-shadow: 0 2px 3px 0 hsl(0deg 0% 0% / 10%);
                border-right: 1px solid var(--color-border-sidebar);
                height: 100%;
                padding-left: 10px;
                width: var(--left-sidebar-width);
        }

            .without-container-query-support .app-main .column-middle {
                margin-left: 7px;
                margin-right: 7px;
            }

            .without-container-query-support .app-main .column-middle .column-middle-inner {
                margin-left: 0;
                margin-right: 0;
            }

        .without-container-query-support .header-main .column-left {
            display: none;
        }

        .without-container-query-support #navbar-middle {
            margin-left: 0;
        }

        .without-container-query-support #streamlist-toggle {
            display: block;
        }

        .without-container-query-support .top-navbar-container {
            margin-left: 40px;
        }

        .without-container-query-support #feedback_container {
            width: calc(90% - 30px);
            left: 5%;
            top: 5%;
        }

        .without-container-query-support #typing_notifications,.without-container-query-support #scheduled_message_indicator,.without-container-query-support #compose-content {
            margin-left: 7px;
        }
}

@media (max-width: 425px) {
        .without-container-query-support .column-right.expanded,.without-container-query-support .column-left.expanded {
            width: 100vw;
            max-width: 100%;
        }

        .without-container-query-support .app-main .column-right.expanded .right-sidebar,.without-container-query-support .app-main .column-left.expanded .left-sidebar {
            width: 100vw;
            max-width: 100%;
        }
}

@media (max-width: 576px) {
        .without-container-query-support .narrow_description {
            display: none;
        }
}

/* End fallback media queries. */

/* Begin viewport state queries. */

/* We sometimes need the state of the viewport in JavaScript;
   by setting values on `content:`, we can query instead for
   those, independent of whether it's a container or media query
   responsible for layout. See for example `sidebar_ui.ts`.

   These queries for greater than or equal to should be ordered
   smallest to largest. */

/* Adjustments for smaller viewports are critical
   regardless of info-density settings, so we
   don't include a container-query check here. */
@media (max-width: 767.98px) {
    .app-main::after {
        content: "lt_md_min";
    }
}

@container app (width >= 48em) {
    .app-main::after {
        content: "gte_md_min";
    }
}

@media (min-width: 768px) {
        .without-container-query-support .app-main::after {
            content: "gte_md_min";
        }
}

@container app (width >= 75em) {
    .app-main::after {
        content: "gte_md_min gte_xl_min";
    }
}

@media (min-width: 1200px) {
        .without-container-query-support .app-main::after {
            content: "gte_md_min gte_xl_min";
        }
}

/* End viewport state queries. */

@media (max-height: 599.98px) {
    .app-main .column-right.expanded .right-sidebar,
    .app-main .column-left.expanded .left-sidebar {
        margin-top: var(--navbar-fixed-height);
        /* For very short screen sizes, skip the relatively large top padding. */
        padding-top: 0;
    }

    /* TODO: Properly and accurately align the
       topmost headers on the left and right
       sidebar. */
    .app-main .column-right.expanded .right-sidebar-items {
        margin-top: 10px;
    }

    .app-main .column-left.expanded .left-sidebar-navigation-area {
        margin-top: 10px;
    }

    /* Usually the styling is applied directly to the icon, but here
    the icon is `position: static`, so we can't. */
    .search_closed {
        top: 5px;
    }

    #streamlist-toggle,
    #message_view_header,
    #searchbox,
    .header {
        line-height: var(--header-height);
        height: var(--header-height);
    }

    .spectator_narrow_login_button {
        height: var(--header-height) !important;
    }

    .left-sidebar-toggle-button {
        height: var(--header-height);
    }

    nav
        .column-left
        .left-sidebar-toggle-button
        .left-sidebar-toggle-unreadcount {
        top: 5px;
        left: 16px;
    }

    .left-sidebar-toggle-unreadcount {
        /* Adjust in response to shorter navbar. */
        top: 5px;
        right: 4px;
    }

    #top_navbar .column-right #personal-menu .header-button-avatar {
        width: 1.25em; /* 20px at 16px em */
        height: 1.25em; /* 20px at 16px em */
    }
}

/* As these adjustments are properly the province of
   the viewport, we do not present these mm_min queries
   in a corresponding container query block. */
@media (max-width: 374.98px) {
    html {
        overflow-x: hidden;
    }

    /* We don't want user to experience Zulip below this width since
       we don't develop features for below this width. */
    body,
    html,
    .app-main,
    .header-main {
        min-width: 320px;
    }

    #compose #compose-content {
        margin-right: 5px;
        margin-left: 5px;
    }
}

#scroll-to-bottom-button-container {
    display: block;
    position: absolute;
    bottom: 41px;
    right: 0;
    visibility: hidden;
    opacity: 0;
    transition:
        visibility 500ms,
        opacity 500ms ease-in-out;
}

#scroll-to-bottom-button-container.show {
        visibility: visible;
        opacity: 1;
    }

#scroll-to-bottom-button-container #scroll-to-bottom-button-clickable-area {
        width: 3.75em; /* 60px at 16px em */
        height: 3.75em; /* 60px at 16px em */
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

#scroll-to-bottom-button-container #scroll-to-bottom-button-clickable-area:hover #scroll-to-bottom-button {
            background: hsl(240deg 96% 68%);
        }

#scroll-to-bottom-button-container #scroll-to-bottom-button-clickable-area #scroll-to-bottom-button {
            text-align: center;
            width: 2.5em; /* 40px at 16px em */
            height: 2.5em; /* 40px at 16px em */
            background: hsl(240deg 96% 68% / 50%);
            border-radius: 50%;
            display: flex;
            align-items: center;
        }

#scroll-to-bottom-button-container #scroll-to-bottom-button-clickable-area #scroll-to-bottom-button .scroll-to-bottom-icon {
                color: hsl(0deg 0% 100%);
                margin: 0 auto;
                font-size: 1.3125em; /* 21px at 16px em */
            }

.spectator_login_for_image_button {
    max-width: 250px;
    height: 50px;
}

.spectator_login_for_image_button :hover {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.spectator_login_for_image_button .login_button {
        padding: 5px;
        margin-top: 5px;
    }

.spectator_login_for_image_button .login_button .fa {
            top: 1px;
        }

.simplebar-content-wrapper {
    /* `simplebar-content-wrapper` has `tabindex=-1` set, which makes sure
       that it does not get focus when navigating via a keyboard.

       But in a few situations, we programmatically focus this
       element, and in this case, we don't want to see the outline. */
    outline: none;

    /* This prevents the popover from closing once the top/bottom is reached */
    overscroll-behavior: contain;
}

.popover-filter-input-wrapper {
    display: flex;
}

.popover-filter-input-wrapper .popover-filter-input {
        background: var(--color-background-widget-input);
        color: var(--color-text-dropdown-input);
        width: 100%;
        margin: 4px 4px 2px;
    }

.popover-filter-input-wrapper .popover-filter-input:focus {
            background: hsl(0deg 0% 100%);
            border: 1px solid hsl(229.09deg 21.57% 10% / 80%);
            box-shadow: 0 0 6px hsl(228deg 9.8% 20% / 30%);
        }

.dropdown-list-container .dropdown-list-wrapper {
        /* Sync with `max-height` in dropdown_widget. */
        max-height: 210px;
        /* 200px/14px */
        min-width: 14.285em;
    }

.dropdown-list-container .dropdown-list-wrapper .dropdown-list {
            list-style: none;
            margin: 0;
        }

.dropdown-list-container.folder_id-dropdown-list-container {
        width: calc(var(--modal-input-width) * 0.75);

        /* Alignment adjustments on channel-folder selector. */
    }

.dropdown-list-container.folder_id-dropdown-list-container .dropdown-list-item-name:has(.dropdown-list-buttons) {
            /* We hold the first row height to 28px at 16px/1em
               for the sake of the buttons plus their padding. */
            grid-template-rows: 1.75em minmax(0, auto);
            /* We also align everything to start, so that we can
               offset the text from the top to align it with the
               buttons. */
            align-items: start;
        }

.dropdown-list-container.folder_id-dropdown-list-container .dropdown-list-item-name:has(.dropdown-list-buttons) .dropdown-list-text-neutral {
                /* 0.2em is an eyeballed value that keeps the buttons
                   well aligned with the first/only line of text. */
                padding-top: 0.2em;
                align-self: start;
            }

.dropdown-list-container .no-dropdown-items {
        color: hsl(0deg 0% 60%);
        display: none;
        padding: 3px 10px 3px 8px;
        font-weight: 400;
        line-height: 20px;
        white-space: normal;
    }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles {
        display: grid;
        grid-template:
            "privacy-icon     item-label       " min-content
            "item-description item-description" minmax(0, min-content) / minmax(
                0,
                auto
            )
            minmax(0, 1fr);
        color: var(--color-dropdown-item);
        padding: 3px 10px 3px 8px;
        font-weight: 400;
        white-space: normal;
        /* Keep the line-height stable, instead of using the
           user-set line-height, so that the icon is always
           vertically centered properly. */
        line-height: 1.214;
    }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .channel-privacy-type-icon {
            grid-area: privacy-icon;
            line-height: 1.214;
            font-size: 0.93em;
            /* We set only the width so that flexbox
            can do its work to properly center,
            regardless of the height. */
            width: 0.93em;
            padding-right: 5px;
            /* Override the [data-tippy-root] style in
               `tooltips.css`.
               Because we are manually holding icon
               alignment to the first/only line of a
               channel, we make this adjustment here.
               Calculated by eye to look good at 12px-20px. */
            top: 0.05em;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .decorated-channel-name {
            grid-area: item-label;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-description {
            grid-area: item-description;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-name {
            grid-area: item-label;
            display: grid;
            grid-template:
                "item-text item-buttons" minmax(0, auto)
                "item-text .           " minmax(0, auto) / minmax(0, 1fr)
                minmax(0, auto);
            align-items: center;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-name:has(.dropdown-list-buttons) {
                grid-template-rows: 1.75em minmax(0, auto);
                align-items: start;
            }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-name:has(.dropdown-list-buttons) .dropdown-list-text-neutral {
                    padding-top: 0.2em;
                    align-self: start;
                }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-name .dropdown-list-text-neutral {
                grid-area: item-text;
                align-self: center;
            }

/* This correctly places neutral text items
           appearing without a wrapping
           `.dropdown-list-item-name` class. */

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-text-neutral {
            grid-area: item-label;
            align-self: center;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-buttons {
            grid-area: item-buttons;
            display: flex;
            visibility: hidden;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:focus,.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:hover {
            color: var(--color-dropdown-item);
            -webkit-text-decoration: none;
            text-decoration: none;
            background-color: var(--background-color-active-dropdown-item);
            outline: none;
        }

.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:focus .dropdown-list-delete,.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:hover .dropdown-list-delete,.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:focus .dropdown-list-edit,.dropdown-list-container .dropdown-list .dropdown-list-item-common-styles:hover .dropdown-list-edit {
                visibility: visible;
            }

.dropdown-list-container .list-item {
    color: var(--color-dropdown-item);
}

.dropdown-list-container .list-item:focus,.dropdown-list-container .list-item.current_selection {
        background-color: var(--background-color-active-dropdown-item);
        outline: none;
    }

.inbox-filter-dropdown-list-container,
.recent-view-filter-dropdown-list-container {
    overflow: visible;
}

.inbox-filter-dropdown-list-container .list-item:focus,.recent-view-filter-dropdown-list-container .list-item:focus {
            border-radius: 4px;
            outline: 1px solid var(--color-outline-focus) !important;
            outline-offset: -2px;
            background-color: transparent;
        }

.inbox-filter-dropdown-list-container .list-item.current_user_setting,.recent-view-filter-dropdown-list-container .list-item.current_user_setting {
            background-color: var(--background-color-active-dropdown-item);
            outline: none;
        }

.dropdown-list-item-common-styles .dropdown-list-text-selected {
    font-weight: 700;
}

#scheduled_messages_overlay .error-icon-message-recipient {
    width: 15px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-grow: 1;
    color: var(--color-failed-message-send-icon);
}

#scheduled_messages_overlay .error-icon-message-recipient .zulip-icon {
        padding: 5px;
    }

.emoji-popover-tab-item .zulip-icon-star {
        position: relative;
        top: 2px;
    }

.header-main .column-right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.header-main .column-right a:focus {
        filter: none;
        outline: 0;
    }

.header-button {
    width: var(--header-height);
    height: var(--header-height);
    display: flex;
    justify-content: center;
    align-items: center;
}

.header-button:hover,.header-button:focus {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.header-button:hover {
        background-color: var(--color-header-button-hover);
    }

.header-button:active {
        background-color: var(--color-header-button-focus);
    }

.header-button:focus-visible {
        outline: none;
        background-color: var(--color-header-button-focus);
    }

.header-button .zulip-icon {
        color: var(--color-navbar-icon);
    }

.header-button .zulip-icon-gear {
        font-size: 1.125em; /* 18px at 16px em */
    }

.header-button .zulip-icon-help-bigger,.header-button .zulip-icon-user-list {
        font-size: 1.25em; /* 20px at 16px em */
    }

.header-button .zulip-icon-help {
        position: relative;
        top: 0.5px;
        right: -0.5px;
    }

.left-sidebar-toggle-button .zulip-icon-panel-left,.left-sidebar-toggle-button .zulip-icon-panel-left-dashed {
        font-size: 1.25em; /* 20px at 16px em */
    }

#personal-menu .header-button-avatar {
        /* Put styling on div rather than img to gracefully handle
           uBlock Origin blocking of gravatar, which seems to make
           the img disappear. */
        width: 1.5em; /* 24px at 16px em */
        height: 1.5em; /* 24px at 16px em */
        background-size: cover;
        border-radius: 4px;
        background-color: var(--color-background-image-loader);
        border: 1px solid var(--color-border-personal-menu-avatar);
        overflow: hidden;
    }

#personal-menu .header-button-avatar .header-button-avatar-image {
            /* Overcome `vertical-align: middle`. This prevents the
               avatar in the navbar from being lower by a pixel. */
            display: block;
        }

#personal-menu .header-button-avatar:has(.avatar-loaded) {
            background-color: transparent;
            border-color: transparent;
        }

.default-language-display,
.empty-topic-display,
.empty-topic-placeholder-display::placeholder,
.drafts-unknown-msg-header-field {
    font-style: italic;
}

.popover-menu-user-avatar-container.deactivated,
.inline_profile_picture.deactivated {
    position: relative;
}

.popover-menu-user-avatar-container.deactivated  > img,.inline_profile_picture.deactivated  > img {
        opacity: 0.5;
    }

.popover-menu-user-avatar-container.deactivated .deactivated-user-icon,.inline_profile_picture.deactivated .deactivated-user-icon {
        background-color: var(--color-background);
        color: var(--color-user-circle-deactivated);
        padding: 2px;
        font-size: 0.8em;
        position: absolute;
        border-radius: 10px;
        bottom: -2px;
        right: -2px;
    }

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/message_view_header.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
#message_view_header {
    color: var(--color-text-message-view-header);
    z-index: 2;
    float: left;
    height: var(--header-height);
    width: 100%;
    line-height: var(--header-height);
    display: flex;
    align-items: baseline;
    white-space: nowrap;
    cursor: default;
}

#message_view_header .hidden {
        display: none;
    }

/* TODO: Remove the `.navbar_title` span from the `message_view_header.hbs`
       template. That span predates the use of flexbox, and makes it so that
       elements like the `.narrow_description` have different line-height and
       sizing contexts depending on whether it's a view or a narrow being shown. */

#message_view_header .message-header-stream-settings-button,#message_view_header .navbar_title {
        padding: 0 2px 0 6px;
        overflow: hidden;
        text-overflow: ellipsis;
        color: inherit;
        -webkit-text-decoration: none;
        text-decoration: none;
        /* Create a flex container for the icon and
           stream name. */
        display: flex;
        /* We want to use baseline alignment so that the
           stream name and narrow description sit on
           the same invisible line. */
        align-items: baseline;
    }

#message_view_header .message-header-stream-settings-button .zulip-icon,#message_view_header .navbar_title .zulip-icon {
            /* Pull the icon out of baseline alignment,
               and center with stream name. */
            align-self: center;
        }

#message_view_header .message-header-stream-settings-button .zulip-icon-inbox,#message_view_header .navbar_title .zulip-icon-inbox {
            /* 16px at 16px em, inherited from .navbar_title */
            font-size: 1em;
        }

@media (max-height: 599.98px) {

#message_view_header .message-header-stream-settings-button,#message_view_header .navbar_title {
            padding: 0 3.5px; /* based on having ~41.66% decrease */
    }
        }

#message_view_header .message-header-stream-settings-button .navbar-icon,#message_view_header .navbar_title .navbar-icon {
            margin: 0 6px 0 5px;
            /* Align all icons to center. */
            align-self: center;
        }

#message_view_header .message-header-navbar-title {
        font-weight: 600;
        /* 16px at 14px em */
        font-size: 1.1429em;
        /* Allow long navbar titles (e.g., stream names) to collapse. */
        flex: 0 1 auto;
        overflow: hidden;
        text-overflow: ellipsis;
    }

#message_view_header .message-header-navbar-title .channel-privacy-type-icon {
            width: auto;
        }

#message_view_header .message-header-archived {
        color: var(--color-text-message-header-archived);
        cursor: default;
        padding-left: 5px;
    }

#message_view_header .narrow_description {
        /* Flexbox's baseline alignment is responsible for
           matching the description's baseline to the title.
           Here, normal just ensures a comfortable, i18n-friendly
           line height for the description. */
        line-height: normal;
        background: none;
        color: inherit;
        font-weight: 400;
        /* Padding to the left separates the description from the
           view label or channel name; padding to the right keeps
           the description from getting too close to the closed
           search box--with a pleasing equidistant space in both
           places. */
        padding: 0 10px;
        overflow: hidden;
        text-overflow: ellipsis;
        /* The very last element in the navbar is the search icon, the second
        last element is the narrow description (even if it is empty when a
        channel contains no description). The flex-grow property ensures this
        element takes up the entirety of the white space, while flex-shrink
        accommodates narrower viewports. Setting flex-basis 0 enables an
        ellipsis to be displayed, as the 0 takes the place of the max-content
        default that would otherwise run titles under the search box. */
        flex: 1 1 0;
        margin: 0;
    }

#message_view_header .narrow_description .help_link_widget,#message_view_header .narrow_description .fa {
            margin: 0;
        }

#message_view_header .narrow_description .fa-question-circle-o {
            /* Override relative position for sake of
               Chrome paint bug that keeps the circle
               visible when ellipses are showing. */
            position: static;
        }

#message_view_header .narrow_description .help_link_widget {
            /* With relative positioning no longer
               in effect, we vertically align the
               help icon with an inline-block assist,
               which is present on the .fa class. */
            vertical-align: middle;
        }

#message_view_header .view-description-extended {
        overflow-wrap: break-word;
        -webkit-hyphens: auto;
                hyphens: auto;
        overflow: hidden;
        white-space: normal;
        background-color: var(--color-background-navbar);
        border-radius: 5px;
        animation: expand-extended-description 100ms ease-in both;
    }

#message_view_header .view-description-extended.leaving-extended-view-description {
            animation: contract-extended-description 100ms ease-in both !important;
        }

/* Media Queries */
@media only screen and (max-width: 620px) {
    .view-description-extended {
        padding-top: 0.5em !important;
    }
}

/* stylelint-disable plugin/no-low-performance-animation-properties */
@keyframes expand-extended-description {
    from {
        max-height: var(--header-height);
        padding-bottom: 0;
    }

    to {
        max-height: 1000px;
        padding-bottom: 5px;
    }
}

@keyframes contract-extended-description {
    from {
        max-height: 1000px;
        padding-bottom: 5px;
    }

    to {
        max-height: var(--header-height);
        padding-bottom: 0;
    }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/message_header.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.message_header {
    vertical-align: middle;
    text-align: left;
    /* We can overflow-y if the font size gets big */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    position: relative;
    z-index: 0;
    background-color: var(--color-background);
}

.message_header .message-header-contents {
        font-size: 1.0714em; /* 15px at 14px em */
        line-height: 1.2;
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 1.8666em; /* 28px at 15px em */
        border: 1px solid var(--color-message-header-contents-border);
        border-bottom-color: var(--color-message-header-contents-border-bottom);
        border-radius: 7px 7px 0 0;
    }

.message_header.message_header_stream {
        /* Add box shadow to hide message border (first one) and message
           selected box shadow (second one) that are visible
           due to top borders of sticky recipient bar being curved. */
        box-shadow:
            -1px -5px 0 5px var(--color-background),
            1px -5px 0 0 var(--color-background);
    }

.message_header.message_header_stream .message_label_clickable {
            -webkit-user-select: text;
                    user-select: text;
            color: var(--color-text-message-header);
        }

.message_header.message_header_stream .message_label_clickable:hover {
                color: var(--color-text-message-header);
                -webkit-text-decoration: none;
                text-decoration: none;
            }

.message_header.message_header_stream .message_label_clickable:focus {
            outline: none;
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.message_header.message_header_stream .stream_topic_separator {
            line-height: 0;
            color: var(--color-message-header-icon-non-interactive);
            position: relative;
            top: 0.5px;
        }

.message_header.message_header_stream .stream_topic {
            display: inline-block;
            padding: 5px 6px 5px 2px;
            height: 1.2142em; /* 17px at 14px em */
            line-height: 1.2142em; /* 17px at 14px em */
            overflow: hidden;
            text-overflow: ellipsis;
        }

.message_header.message_header_stream .stream_topic .message_label_clickable.narrows_by_topic {
                position: relative;
                top: 0.5px;
                overflow: hidden;
                text-overflow: ellipsis;
            }

.message_header.message_header_stream .stream_topic .message_label_clickable.narrows_by_topic span.stream-topic-inner {
                    white-space: pre;
                }

.message_header.message_header_stream .stream-privacy i {
            font-size: 1.0714em; /* 15px at 14px em */
        }

.message_header.message_header_stream .stream-privacy i.zulip-icon-globe,.message_header.message_header_stream .stream-privacy i.zulip-icon-hashtag {
                position: relative;
                top: -0.5px;
            }

.message_header.message_header_stream .recipient_bar_controls {
            opacity: 0;
            transition: opacity 0.15s ease-out;
        }

.message_header.message_header_stream .recipient_bar_controls:focus-within {
            opacity: 1;
            transition: opacity 0.1s ease-in;
        }

/* Show the bar controls on hover with a slight delay */

.message_header.message_header_stream:hover .recipient_bar_controls {
                opacity: 1;
                transition: opacity 0.15s ease-in 0.1s;
            }

/* Always show controls when header is sticky */

.message_header.message_header_stream.sticky_header .recipient_bar_controls {
                opacity: 1;
                transition: opacity 0.15s ease-in;
            }

.message_header_private_message {
    /* This is required for box-shadow appear above the message content. */
    z-index: 1;
    box-shadow:
        -1px -5px 0 5px var(--color-background),
        1px -5px 0 0 var(--color-background);
    background-color: var(--color-background);
}

.message_header_private_message .message-header-contents {
        border-color: var(--color-private-message-header-border);
        border-bottom-color: var(--color-private-message-header-border-bottom);
        background-color: var(--color-background-private-message-header);
    }

.message_header_private_message .message_label_clickable {
        -webkit-user-select: text;
                user-select: text;
        display: flex;
        padding: 5px 0 5px 10px;
        font-weight: 600;
        height: 1.4142em; /* 19px at 14px em */
        line-height: 1.4142em; /* 19px at 14px em */
        color: var(--color-text-message-header);
    }

.message_header_private_message .message_label_clickable:hover {
            color: var(--color-text-message-header) !important;
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.message_header_private_message .message_label_clickable:focus {
            outline: none;
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.message_header_private_message .message_label_clickable .private_message_header_icon {
            font-size: 1.0714em; /* 15px at 14px em */
            position: relative;
            top: 1px;
            width: 1.0666em; /* 16px at 15px em */
            height: 1.0666em; /* 16px at 15px em */
        }

.message_header_private_message .message_label_clickable .private_message_header_name {
            overflow: hidden;
            text-overflow: ellipsis;
        }

.message_header_private_message .message_label_clickable .private_message_header_name i.zulip-icon-bot {
                vertical-align: middle;
                position: relative;
                top: -1px;
                padding-left: 0.3em;
            }

.message-feed .recipient_row {
        /* Browser overlaps extra top padding of message header and
           the bottom border message if this margin is not present. */
        margin-bottom: 1px;
        border-radius: 5px;
    }

.message-feed .recipient_row .message_row:last-of-type {
            border-radius: 0 0 7px 7px;
            border-bottom: 1px solid var(--color-message-list-border);
        }

.message-feed .recipient_row .message_row:last-of-type .unread-marker-fill {
                border-radius: 0 0 0 7px;
                height: calc(100% - 2px);
            }

.message-feed .recipient_row .message_row:last-of-type .messagebox {
                border-radius: 0 0 7px 7px;
                padding-bottom: 4px;
            }

.message-feed .recipient_row .message_header + .message_row .messagebox {
                padding-top: 5px;
            }

.message-feed .message_header {
        position: sticky;
        top: var(--navbar-fixed-height);
        /* Needs to be higher than the z-index of date_row. */
        z-index: 4;
        box-shadow: 0 -1px 0 0 var(--color-background);
    }

.message-feed .message_header .message-header-contents {
            margin-top: var(--header-padding-bottom);
        }

.message-feed .message_header.sticky_header {
            box-shadow: var(--unread-marker-left) -1px 0 0
                var(--color-background);
        }

.message-feed .message_header.sticky_header .recipient_row_date {
                display: block;
            }

.stream_label {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 2px 5px 10px;
    height: 1.2142em; /* 17px at 14px em */
    line-height: 1.2142em; /* 17px at 14px em */
    position: relative;
    top: 0.5px;
    -webkit-text-decoration: none;
    text-decoration: none;
    font-weight: 600;
    overflow: hidden;
}

.stream_label .zulip-icon.zulip-icon-globe {
        position: relative;
        top: 1px;
    }

.stream_label:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.stream_label .stream-privacy {
        min-width: unset;
        width: 1.1428em; /* 16px at 14px em */
        height: 1.1428em; /* 16px at 14px em */
        display: flex;
        justify-content: center;
        align-items: center;
    }

.stream_label .stream-privacy .hashtag {
            padding-right: 0;
        }

.stream_label .stream-privacy .hashtag::after {
                font-size: 1.1428em; /* 16px at 14px em */
            }

.stream_label .message-header-stream-name {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.stream_label .message-header-stream-archived {
        color: var(--color-text-message-header-archived);
    }

.recipient_bar_controls {
    display: flex;
    flex-grow: 1;
    align-items: center;
}

.on_hover_topic_read {
    opacity: 0.7;
}

.on_hover_topic_read:hover {
        cursor: pointer;
        opacity: 1;
    }

.recipient_row_date {
    color: var(--color-date);
    font-size: calc(12em / 14);
    padding: 0 10px;
    text-align: right;
    display: flex;
    align-items: center;
    font-style: normal;
    font-weight: 600;
    line-height: 17px; /* identical to box height, or 131% */
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding-top: 1px;

    /* Display the date when unchanged only for sticky headers. */
}

.recipient_row_date.recipient_row_date_unchanged {
        display: none;
    }

.sticky_header .recipient_row_date.recipient_row_date_unchanged {
            display: block;
        }

.recipient_row_date.hide-date-separator-header {
        display: none;
    }

.recipient_bar_icon {
    color: var(--color-message-header-icon-interactive);
    opacity: 0.2;
    padding-left: 6px;
    padding-right: 6px;
}

.recipient_bar_icon:hover {
        opacity: 0.4 !important;
        cursor: pointer;
    }

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/message_row.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/

    .with-container-query-support #message-lists-container {
        container: message-lists / inline-size;
    }

.message_row {
    display: grid;
    /* Prevent the messagebox column from overflowing the 1fr
       space allotted by specifying `minmax(0,1fr)`, which
       sets 0 as the minimum size, not the grid default of
       `auto`. */
    grid-template: auto auto / 2px minmax(0, 1fr);
    grid-template-areas:
        "date_unread_marker    date_row  "
        "message_unread_marker messagebox";

    border-left: 1px solid var(--color-message-list-border);
    border-right: 1px solid var(--color-message-list-border);
    background-color: var(--color-background-stream-message-content);
}

.message_row.private-message {
        background-color: var(--color-background-private-message-content);
    }

.message_row.private-message .data-container::after {
            background: linear-gradient(
                0deg,
                var(--color-background-private-message-content),
                transparent 100%
            );
        }

.message_row.direct_mention {
        background-color: var(--color-background-direct-mention);
    }

.message_row.direct_mention .message_embed .data-container::after {
            background: linear-gradient(
                0deg,
                var(--color-background-direct-mention),
                transparent 100%
            );
        }

.message_row.group_mention {
        background-color: var(--color-background-group-mention);
    }

.message_row.group_mention .message_embed .data-container::after {
            background: linear-gradient(
                0deg,
                var(--color-background-group-mention),
                transparent 100%
            );
        }

.message_row.sender_info_hovered .sender_name {
            cursor: pointer;
            /* TODO: Refactor the teetering nested classes
               above so that !important can be removed. */
            color: var(--color-text-sender-name-hover) !important;
        }

.message_row.sender_info_hovered .message-avatar {
            cursor: pointer;
        }

.messagebox {
    grid-area: messagebox;
    overflow-wrap: break-word;
    border: none;
    /* The left padding value accounts for a 2px
      unread marker, ensuring a uniform 5px of
      padding on either side of the message box. */
    padding: 0 5px 0 3px;
}

.messagebox:hover .message_controls  > .message_control_button {
            opacity: 1;
            visibility: visible;
        }

.messagebox-content {
    display: grid;
    align-content: baseline;
    padding-left: 10px;
    /* Prevent the message column from overflowing the 1fr
       space allotted by specifying `minmax(0,1fr)`, which
       sets 0 as the minimum size, not the grid default of
       `auto`.

        The calculated `--message-box-timestamp-column-width`
        should match `max-content` exactly, but `max-content`
        ensures the timestamp will always have enough space
        in the column. */
    grid-template:
        minmax(var(--message-box-sender-line-height), auto) repeat(3, auto) /
        var(--message-box-avatar-column-width) minmax(0, 1fr) max-content
        8px minmax(var(--message-box-timestamp-column-width), max-content);
    /* Named grid areas provide flexibility for positioning grid items
       reliably, even if the row or column definitions of the grid change. */
    grid-template-areas:
        "edited message   controls . time"
        ".      message   .        . .   "
        ".      more      .        . .   "
        ".      reactions .        . .   ";
}

.messagebox-content.content_edit_mode {
        cursor: default;
        /* Set the controls area to 0 to give more space
           to the edit/source view area. */
        grid-template-columns:
            var(--message-box-avatar-column-width) minmax(0, 1fr)
            0 8px minmax(
                var(--message-box-timestamp-column-width),
                max-content
            );
    }

.messagebox-content .message_edit_notice {
        grid-area: edited;
        align-self: center;
    }

.messagebox-content .edit-notifications {
        grid-area: edited;
        align-self: center;
    }

.messagebox-content .slow-send-spinner {
        display: none;
        place-self: center end;
        position: unset;
        margin-top: 1px;
        margin-right: 10px;
        text-align: end;
        grid-area: time;
    }

.messagebox-content .message_content:not(.status-message) {
        grid-area: message;
        padding: var(--message-box-markdown-aligned-vertical-space) 0 0;
        color: var(--color-text-message-default);
        /* We explicitly set line-height here so that
           the message area is not beholden to the legacy
           `max()` declaration on `body`. */
        line-height: var(--base-line-height-unitless);
        min-height: 17px;
        display: block;
        position: relative;
        overflow: hidden;

        /* For the sake of paragraphs and lists that include
           links, we adjust the vertical space here to keep
           it uniform. */
    }

.messagebox-content .message_content:not(.status-message):has( > p:first-child, > ol:first-child, > ul:first-child) {
            padding-top: calc(
                var(--message-box-markdown-aligned-vertical-space) -
                    var(--message-box-link-focus-ring-block-padding)
            );
        }

.messagebox-content .message_content:not(.status-message):empty {
            display: none;
        }

.messagebox-content .message_content.condensed:not(.status-message) {
            max-height: 8.5em;
            min-height: 0;
            overflow: hidden;
            -webkit-mask-image: linear-gradient(
                to top,
                hsl(0deg 0% 100% / 0%) 0%,
                hsl(0deg 0% 100%) 60px
            );
                    mask-image: linear-gradient(
                to top,
                hsl(0deg 0% 100% / 0%) 0%,
                hsl(0deg 0% 100%) 60px
            );
            -webkit-mask-size: cover;
                    mask-size: cover;
        }

.messagebox-content .message_content.collapsed:not(.status-message) {
            padding: 0;
            max-height: 0;
            min-height: 0;
            overflow: hidden;
        }

.messagebox-content .message_reactions {
        grid-area: reactions;
        display: flex;
        /* Allow reactions to wrap in mobile viewports */
        flex-wrap: wrap;
        /* Keep reactions aligned to start (top), so that the
           margin on the reaction button doesn't appear to
           stretch the reactions taller. */
        align-items: flex-start;
        /* Control reaction spacing with a gap */
        gap: 4px;
    }

.messagebox-content .message_edit {
        grid-area: message;
        /* Align self to start, rather than baseline, so the baseline
          is preserved from the message itself--keeping the time,
          edit message, and controls at the same vertical alignment. */
        align-self: start;
        margin-top: var(--message-box-vertical-margin);
    }

.messagebox-content .message_length_controller {
        grid-area: more;
    }

.messagebox-content .collapsed ~ .message_length_controller {
        /* When content is collapsed, the length controller
           should occupy the space ordinarily assigned to
           the message. */
        grid-area: message;
        /* However, don't let the SHOW MORE button participate
           in the baseline group. */
        align-self: start;
    }

.messagebox-content .collapsed ~ .message_length_controller .message_length_toggle {
            /* Ensure that a collapsed message maintains the
               same space around the toggle button as any other
               message-row content. */
            margin: 4px 0;
        }

.messagebox-content .message_length_toggle {
        width: 100%;
        height: 1.714em; /* 24px / 14px em */
        margin-bottom: var(--message-box-markdown-aligned-vertical-space);
        color: var(--color-text-show-more-less-button);
        background-color: var(--color-show-more-less-button-background);
        border-radius: 4px;
        border: none;
        outline: none;
        font-feature-settings: "smcp", "c2sc";
        font-variant: all-small-caps;
    }

.messagebox-content .message_length_toggle:hover {
            background-color: var(
                --color-show-more-less-button-background-hover
            );
        }

.messagebox-content .message_length_toggle:active {
            background-color: var(
                --color-show-more-less-button-background-active
            );
            scale: 0.98;
        }

.messagebox-content.content_edit_mode .message_length_controller {
        /* If entering edit mode on a collapsed message,
           just hide the controller area. This preserves
           the collapsed state of the message, which need
           not be touched. We just need to hide the button.
           This works for condensed messages, too. */
        display: none;
    }

.messagebox-includes-sender .messagebox-content {
        grid-template-areas:
            "avatar sender    controls . time"
            "avatar message   .        . .   "
            ".      more      .        . .   "
            ".      reactions .        . .   ";
    }

.messagebox-includes-sender .messagebox-content .message_edit {
            /* No top margin when there's a sender row */
            margin-top: 0;
        }

.messagebox-includes-sender .messagebox-content.is-me-message {
            grid-template-areas:
                ".      .         .        . .   "
                "avatar sender    controls . time"
                "avatar sender    .        . .   "
                ".      more      .        . .   "
                ".      reactions .        . .   ";
            grid-template-rows:
                var(--message-box-vertical-margin) var(
                    --message-box-avatar-height
                )
                minmax(0, auto) repeat(3, auto);
            /* We align items to the baseline on me messages,
               and unset the align-content property. */
            align-items: baseline;
            align-content: unset;
        }

.messagebox-includes-sender .messagebox-content.is-me-message .message-avatar {
                /* Set the line-height to match the height of the avatar image
                   to center me-messages within the baseline group. */
                line-height: var(--message-box-avatar-height);
                align-self: baseline;
                /* Because the avatar may be the tallest element in a
                   single-line me message, this margin preserves the
                   overall height of the message box. */
                margin-bottom: var(--message-box-vertical-margin);
            }

.messagebox-includes-sender .messagebox-content.is-me-message .message-avatar .inline_profile_picture {
                    /* We adjust the vertical space in me messages via
                       the grid definition above. */
                    margin-top: 0;
                }

.messagebox-includes-sender .messagebox-content.is-me-message .message_controls {
                /* Because the controls height is smaller than the
                   available grid row height on me-messages, we
                   align to center here. */
                align-self: center;
            }

.messagebox-includes-sender .messagebox-content.is-me-message .message_edit_notice {
                /* Unset the margin on a typical sender line. */
                margin-left: 0;
            }

.messagebox-includes-sender .messagebox-content.is-me-message .message_sender {
                /* Don't display message sender as flexbox for me-messages. */
                display: block;
                /* Set the same line-height as on message content for
                   me-messages. */
                line-height: var(--base-line-height-unitless);
                /* Ensure the same spacing below messages as for any other
                   paragraph. */
                padding-bottom: var(
                    --message-box-markdown-aligned-vertical-space
                );
                /* Don't allow an ellipsis to display on me-messages. This is
                   an edge case that can happen with elements such as the
                   inline audio player. */
                overflow: visible;

                /* Display message components inline, with wrapping white-space,
                   so the sender name and message display as a continuous line
                   of wrapping text. */
            }

.messagebox-includes-sender .messagebox-content.is-me-message .message_sender .sender_name {
                    white-space: normal;
                    display: inline;
                }

.messagebox-includes-sender .messagebox-content.is-me-message .message_sender .sender_name_text {
                    max-width: 100%;
                }

.messagebox-includes-sender .messagebox-content.is-me-message.content_edit_mode .message_sender {
                    /* Keep the me-message participating in the baseline */
                    visibility: hidden;
                }

.messagebox-includes-sender .messagebox-content.is-me-message.content_edit_mode .message_edit {
                    /* Use the sender grid area for the me-message edit/view-source box */
                    grid-area: sender;
                    margin-top: var(--message-box-vertical-margin);
                }

.messagebox-includes-sender .messagebox-content .message-avatar {
            grid-area: avatar;
            /* The picture should not participate in the baseline group. */
            align-self: start;
        }

.messagebox-includes-sender .messagebox-content .message-avatar .inline_profile_picture {
                /* Setting the margin inside this element prevents
                   unwanted shifts in the placement of especially
                   sender-line elements on the .messagebox-content
                   grid. */
                margin-top: var(--message-box-vertical-margin);
            }

.messagebox-includes-sender .messagebox-content .status-message {
            font-weight: normal;
        }

.messagebox-includes-sender .messagebox-content .message_content {
            /* Pull message content up closer to sender to
               let the text baseline sit adjacent the bottom
               of the avatar. We also need to account for the
               padding atop .message_content. */
            margin-top: calc(
                (
                        var(--message-box-markdown-aligned-vertical-space) *
                            0.5 * -1
                    ) -
                    var(--message-box-markdown-aligned-vertical-space)
            );
            grid-area: message;
        }

.messagebox-includes-sender .messagebox-content .message_edit_notice {
            /* When the edit notice is inline, as on edited me-messages,
              the inline-block and accompanying vertical-align styles will
              apply */
            display: inline-block;
            vertical-align: baseline;
            /* A bit of margin here helps these not look associated with the name. */
            margin-left: 4px;
            /* Unset the padding, align-self used on edited notices under the avatar. */
            padding-right: 0;
            align-self: unset;
        }

.messagebox-includes-sender .messagebox-content .message_edit_notice.hide {
                display: none;
            }

.messagebox-includes-sender .messagebox-content .message_sender {
            overflow: hidden;
            text-overflow: ellipsis;
            grid-area: sender;
            display: flex;
            /* A generous line-height on the sender name is necessary
               for internationalization and non-Western Latin character
               sets. */
            line-height: var(--message-box-sender-line-height);
            /* Ensure flexed sender info (name, status emoji, inline EDITED)
               forms a baseline group, which will participate with the
               message-box grid's baseline group, too. */
            align-items: baseline;
        }

.messagebox-includes-sender .messagebox-content .message_sender .zulip-icon.zulip-icon-bot {
                align-self: center;
                margin-left: 5px;
                /* The bot icon is center-aligned but appears
                slightly misaligned with the bot name text due
                to its shape. Adding a negative top margin ensures
                it's proper alignment. */
                margin-top: -0.12em;
            }

.messagebox-includes-sender .messagebox-content .message_sender .sender_name {
                display: inline-flex;
                font-weight: 700;
                color: var(--color-text-sender-name);
                -moz-column-gap: 3px;
                     column-gap: 3px;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                outline: none;
                align-self: baseline;
            }

.messagebox-includes-sender .messagebox-content .message_sender .sender_name .sender_name_text {
                    overflow: hidden;
                    white-space: nowrap;
                    display: inline-flex;
                }

.messagebox-includes-sender .messagebox-content .message_sender .sender_name .sender_name_text .user-name {
                        overflow: hidden;
                        text-overflow: ellipsis;
                    }

.messagebox-includes-sender .collapsed ~ .message_length_controller .message_length_toggle {
        /* Collapse top margin to avoid extra space
           between the button and sender line. */
        margin-top: 0;
    }

.message_controls {
    grid-area: controls;
    /* Let the controls occupy the entire height
       of the row; inner flexboxes handle the
       centering of the icons. */
    align-self: stretch;
    /* Controls flex to the height of the top
       row of the message box, and center
       themselves within it. */
    display: flex;
    align-items: center;
    /* Ensure square icons for better centering. */
    line-height: 1;
}

@container message-lists (width < 36em) {
        /* This is intended to target the first message_controls child
           when there are 3 displayed. */
        .message_controls .message_control_button:nth-last-child(3) {
            display: none;
        }
    }

/* Media-query fallback. Note that because we're treating
       #message-lists-container as its own container, we can
       express a much simpler query there. The more complex
       conditions are necessary only for media queries. */

@media (max-width: 575.98px), ((min-width: 768px) and (max-width: 848.98px)) {
            /* This is intended to target the first message_controls child
            when there are 3 displayed. */
            .message_controls .without-container-query-support .message_control_button:nth-last-child(3) {
                display: none;
            }
    }

/* This is a bit tricky; we need to reserve space for the message
       controls even when the message isn't hovered, so that hover
       doesn't disturb the layout.  Usually that would be just
       visibility: hidden, but that cannot be animated, so we set
       opacity as well, which can be animated. */

.message_controls .message_control_button {
        opacity: 0;
        visibility: hidden;
        transition: 0.2s ease;
        transition-property: opacity, visibility;
        /* Allow buttons to grow to fill the available space,
           in concord with the column calculated for the
           .messagebox-content grid. */
        flex: 1 0 0;
        /* Set the height to 100% to effectively flex open
           on the vertical axis. */
        height: 100%;
        /* Control buttons are their own flex containers,
           to more gracefully center the icons. */
        display: flex;
        place-items: center center;
        color: var(--color-message-action-visible);
    }

.message_controls .message_control_button .emoji-message-control-button-container {
            /* This button has an extra div for Tippy purposes,
               so it becomes its own flex container. */
            display: flex;
        }

.message_controls .message_control_button .message-controls-icon {
            cursor: pointer;
            /* The icon body is 16px square at 16px/1em; the clickable
               area for the icon is 26px wide by 25px tall, so these
               values ensure a 26px x 25px clickable area for the icon. */
            /* 2.5px at 16px/1em; 3px at 16px/1em */
            padding: 0.1563em 0.1875em;
        }

.message_controls .message_control_button .message-controls-icon::before {
                /* We specify block display so the
                   scaling transform below works as
                   expected. */
                display: block;
            }

.message_controls .message_control_button .message-controls-icon:active::before {
                transform: scale(0.92);
                transform-origin: center;
                outline: 0;
            }

.message_controls .message_control_button .message-controls-icon:focus {
                /* Remove the outline but do not color on focus;
                   focus-visible is more appropriate for the color
                   changes, as it only applies color when focus
                   is achieved from a keyboard or other pointerless
                   device. */
                outline: 0;
            }

.message_controls .message_control_button .message-controls-icon:focus-visible {
                outline: 0;
                color: var(--color-message-action-interactive);
            }

.message_controls .message_control_button .message-controls-icon:hover {
                outline: 0;
                color: var(--color-message-action-interactive);
            }

/* Separate hover colors for stars */

.message_controls .message_control_button .message-controls-icon.star:focus-visible {
                color: var(--color-message-star-action);
            }

.message_controls .message_control_button .message-controls-icon.star:hover {
                color: var(--color-message-star-action);
            }

/* Tooltips should not follow the width restrictions of their parent element. */

.message_controls [data-tippy-root] {
        width: max-content;
        overflow-wrap: unset;
    }

.message_controls .edit_content {
        width: var(--message-box-icon-width);
    }

.message_controls .edit_content .move_message_button,.message_controls .edit_content .edit_content_button {
            display: none;
        }

.message_controls .edit_content.can-edit-content .edit_content_button {
                display: inline;
            }

.message_controls .edit_content.can-move-message .move_message_button {
                display: inline;
            }

.message_controls .failed_message_action {
        color: var(--color-failed-message-send-icon);
        font-weight: bold;
        padding: 1px;
        opacity: 1;
        visibility: visible;
    }

.message_controls .failed_message_action .rotating {
            animation: rotate 1s infinite linear;
        }

.message_controls .star_container:not(.empty-star) {
            /* Color, opacity, and visibility, as though the message is hovered. */
            color: var(--color-message-star-action);
            opacity: 1;
            visibility: visible !important;
        }

.unread_marker {
    margin-left: var(--unread-marker-left);
    opacity: 0;
    transition: opacity 0.3s ease-out;
}

.unread_marker.slow_fade {
        transition: opacity 2s ease-out;
    }

.unread_marker.fast_fade {
        transition: opacity 0.3s ease-out;
    }

.unread_marker.date_unread_marker {
        grid-area: date_unread_marker;
    }

.unread_marker.date_unread_marker .unread-marker-fill {
            border-radius: 0 !important;
            height: 100% !important;
        }

.unread_marker.message_unread_marker {
        grid-area: message_unread_marker;
    }

.unread-marker-fill {
    height: 100%;
    width: 2px;
    background: linear-gradient(
        90deg,
        var(--color-unread-marker) 30%,
        hsl(217deg 64% 59% / 0%)
    );
}

.unread .unread_marker {
    transition: opacity 0.3s ease-out;
    opacity: 1;
}

.message-time {
    justify-self: end;
    padding-right: 5px;
    /* Maintain first-line baseline regardless of
       what happens in the message-content area (e.g., a
       collapsed message, or source/edit view). This
       line-height also keeps EDITED/MOVED messages
       in place, care of their baseline-group participation
       within the grid. */
    line-height: var(--message-box-sender-line-height);
    grid-area: time;
    display: block;
    /* 13px at 14px/1em */
    font-size: 0.9286em;
    font-weight: 350;
    text-align: end;
    opacity: 0.8;
    color: var(--color-text-default);
    letter-spacing: 0.02em;
    /* Disable blue link styling for the message timestamp link. */
}

.message-time:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
        color: var(--color-message-action-interactive);
    }

.message-time.notvisible {
        /* This happens when message failed to send. We don't want to
           display time but still want it to occupy space. */
        width: 45px !important;
        position: unset !important;
    }

/* Message-editing styles */
.message-edit-buttons-and-timer {
    margin-top: 5px;
    display: flex;
    gap: 5px;
    /* Allow items to occupy full height.
       This is especially important for
       buttons that are flex items. */
    align-items: stretch;
}

.message-actions-button {
    box-sizing: border-box;
    align-self: stretch;
    /* Display the actions buttons as
       flex containers for positioning
       text and spinners. */
    display: flex;
    align-items: center;
    justify-content: center;
    /* 28px at 16px/1em, per Vlad's spec. */
    height: 1.75em;
    /* 65px at 16px/1em, which is the width of
       the Cancel button. */
    min-width: 4.0625em;
    padding: 0 10px;
    border-radius: 4px;
    border: 0;
    line-height: 1;
}

.message-actions-button:focus {
        outline: none;
    }

.message-actions-button:focus-visible {
        outline: 2px solid var(--color-outline-focus);
    }

.message_edit_save {
    /* Match Save button's basic colors to
       the compose box Send button. */
    color: var(--color-compose-send-button-icon-color);
    background-color: var(--color-compose-send-button-background);
}

.message_edit_save:hover {
        background-color: var(
            --color-compose-send-button-background-interactive
        );
    }

.message_edit_save:disabled {
        /* Replicate disabled values, without any color shifts. */
        cursor: not-allowed;
        opacity: 0.5;
    }

.message_edit_cancel,
.message_edit_close {
    color: var(--color-exit-button-text);
    background: var(--color-exit-button-background);
}

.message_edit_cancel:hover,.message_edit_close:hover {
        background: var(--color-exit-button-background-interactive);
    }

.edit-content-container {
    border-radius: 4px;
    border: 1px solid var(--color-message-content-container-border);
    transition: border-color 0.2s ease;
    display: grid;
    grid-template-areas: "message-edit-content";
}

.edit-content-container:has(.message_edit_content:focus) {
        border-color: var(--color-message-content-container-border-focus);
    }

.edit-content-container .message-edit-textbox {
        /* Setting `position:relative` on this container ensures that .copy-button
           (a possible immediate child with `position: absolute`) is positioned
           relative to this container instead of <html>. */
        position: relative;
        grid-area: message-edit-content;
    }

.edit-content-container .message-edit-textbox .textarea-over-limit {
            background-color: var(
                --color-compose-message-content-background-over-limit
            );
        }

.edit-content-container .message-edit-textbox .textarea-approaching-limit {
            background-color: var(
                --color-compose-message-content-background-approaching-limit
            );
        }

.message_edit_content {
    max-height: var(--max-message-edit-height);
    width: 100%;
    min-width: 206px;
    min-height: 52px;
    box-sizing: border-box;
    /* Setting resize as none hides the bottom right diagonal box
       (which even has a background color of its own!). */
    resize: none !important;
    color: var(--color-text-default);
    background-color: hsl(0deg 0% 100%);
    border-radius: 3px;
    vertical-align: middle;
    border: none;
    /* Match textarea padding to compose box and
       message-edit preview area. */
    padding: 5px 5px 0;
    margin: 0;

    box-shadow: none;
}

.message_edit_content:focus {
        outline: 0;
    }

.message_edit_content:read-only,.message_edit_content:disabled {
        cursor: not-allowed;
    }

/* The selector needs to be written this way to override the specificity
of the base style defined for a read-only textarea in dark mode. */
.message_edit_form .edit-controls textarea.message_edit_content:read-only {
    opacity: 1;
}

.message-editing-animation {
    display: inline-flex;
    align-items: baseline;
    margin-left: 3px;
    width: 40px;
    height: 5px;

    /* Avoid this animation element blocking clicks on .edit-notifications
       to display the message's edit history. */
    pointer-events: none;
}

.message-editing-animation .y-animated-dot {
        width: 4px;
        height: 4px;
        background-color: hsl(0deg 0% 53%);
        border-radius: 50%;
        margin-left: 3px;
        opacity: 0;
    }

.message-editing-animation .y-animated-dot:nth-child(1) {
            animation: typing 1s infinite 0.2s;
        }

.message-editing-animation .y-animated-dot:nth-child(2) {
            animation: typing 1s infinite 0.4s;
        }

.message-editing-animation .y-animated-dot:nth-child(3) {
            animation: typing 1s infinite 0.6s;
        }

@keyframes typing {
    0% {
        opacity: 0;
        transform: translateY(0);
    }

    50% {
        opacity: 1;
        transform: translateY(-3px);
    }

    100% {
        opacity: 0;
        transform: translateY(0);
    }
}

.message_edit_countdown_timer {
    text-align: right;
    display: inline;
    color: hsl(0deg 0% 63%);
}

.message_edit_countdown_timer.expired {
        color: hsl(4deg 58% 33%);
    }

.message-edit-timer {
    display: none;
    /* Center vertically relative to
       buttons. */
    align-self: center;
    /* Use flexbox to position to far right of
       the Save and Cancel buttons. */
    margin-left: auto;
}

.message-edit-feature-group {
    border-radius: 0 0 3px 3px;
    background-color: var(--color-message-formatting-controls-container);
    /* margin on either side to let the border of
       .edit-content-container show through. */
    margin: 0 1px;
}

.message_edit_save .loader {
    display: none;
    /* 28px at 16px/1em */
    height: 1.75em;
    width: 1.75em;
    grid-area: button-display;
    justify-self: center;
    z-index: 1;
}

.message_edit_save:has(.showing-button-spinner) {
    /* We want to maintain the width of the Save button
       in an i18n friendly way; this quick grid ensures
       that the width of the text holds the button open,
       while the styles above ensure the spinner's
       centering. */
    display: grid;
    grid-template: "button-display";
}

.showing-button-spinner {
    visibility: hidden;
    grid-area: button-display;
    z-index: 0;
}

.edit-controls .button-wrapper {
        cursor: not-allowed;
    }

.message-edit-button-disabled {
    pointer-events: none;
}

/* Reduce some of the heavy padding from Bootstrap. */
.message_edit_form {
    margin-bottom: 10px;
    cursor: default;
}
.message_edit_form .edit-form {
        /* Override Bootstrap. */
        margin-bottom: 0;
    }
.message_edit_form .edit-controls {
        margin-left: 0;
        margin-top: 0;
    }
.message_edit_form .preview_message_area {
        max-height: var(--max-message-edit-height);
        grid-area: message-edit-content;
    }

.message_edit_notice {
    /* 10px at 14px/1em */
    font-size: 0.7143em;
    opacity: 0.5;
    -webkit-user-select: none;
            user-select: none;
    white-space: nowrap;
    overflow-x: hidden;
    overflow-x: clip;
    text-overflow: ellipsis;
    padding-right: 5.5px;
    cursor: pointer;
}

.fade-in-message {
    animation-name: fadeInMessage;
    animation-duration: 1s;
    animation-iteration-count: 1;
}

.fade-in-message .message_edit_notice {
        animation-name: fadeInEditNotice;
        animation-duration: 1s;
        animation-iteration-count: 1;
    }

.message_edit_notice_hover:hover {
    opacity: 1;
}

/* Locally echoed messages. */
.locally-echoed .message-time {
    opacity: 0;
    /* Don't show pointer when message-time doesn't have a link. */
    cursor: default;
}

/* Show the spinner only for messages that are still locally echoed. */
.locally-echoed .slow-send-spinner {
    display: unset !important;
    cursor: default;
}

/* Placehold the control buttons, unless there's a failure. */
.locally-echoed .messagebox:hover .message_controls .message_control_button:not(.failed_message_action) {
        visibility: hidden;
    }
/* The actual star icon is not added to the DOM when a
       message is locally echoed, so we set the equivalent
       width on its container. */
.locally-echoed .star_container {
        width: var(--message-box-icon-width);
    }

/* See https://stackoverflow.com/questions/2717480/css-selector-for-first-element-with-class/8539107#8539107
       for details on how this works */

.recipient_row .message_row.unread .date_unread_marker {
            display: none;
        }

/* Select all but the first .message_row.unread,
       and remove the properties set from the previous rule. */

.recipient_row .message_row.unread ~ .message_row.unread .date_unread_marker {
            display: block;
        }

.date_row {
    grid-area: date_row;
}

.date_row .timerender-content {
        display: block;
        overflow: hidden;
        text-transform: uppercase;
        font-size: calc(12em / 14);
        font-style: normal;
        font-weight: 600;
        line-height: 17px; /* identical to box height, or 131% */
        text-align: right;
        letter-spacing: 0.04em;
        color: var(--color-date);
        /* Right padding matches time in message row and date in recipient row. */
        padding: 8px 6px 8px 4px;
    }

.date_row .timerender-content::before {
            width: 100%;
        }

.date_row .timerender-content::after {
            width: 6px;
            left: 0.25em;
            /* Align date with message time and recipient bar date. */
            margin-right: -1px;
        }

.bookend {
    margin-top: 10px;
    background-color: transparent;
    padding-bottom: 10px;
    text-align: center;
}

.bookend .stream-status {
        opacity: 0.6;
    }

.bookend .stream-status i {
            font-size: 0.7143em; /* 10px at 14px / em */
            /* TODO: Don't use relative positioning here. */
            position: relative;
            top: 0.1em; /* 1px at 10px / em */
            margin-left: 0.2em; /* 2px at 10px / em */
        }

.bookend .stream-status .zulip-icon.zulip-icon-lock {
            font-size: 0.8571em; /* 12px at 14px / em */
            top: 0.0833em; /* 1px at 12px / em */
            margin-left: 0.1667em; /* 2px at 12px / em */
        }

.bookend-label {
    font-size: 1em;
    display: block;
    padding: 4px;
    overflow: hidden;
}

.bookend-label::before,.bookend-label::after {
        width: 50%;
    }

.bookend-label::after {
        left: 0.25em;
        margin-right: -50%;
    }

/* Only show links on the trailing bookend. */
.bookend-channel-settings-link {
    display: none;
}

.trailing_bookend .bookend-channel-settings-link {
    display: inline;
}

.bookend-label::before,
.bookend-label::after,
.date_row .timerender-content::before,
.date_row .timerender-content::after {
    display: inline-block;
    position: relative;
    content: " ";
    vertical-align: middle;
    height: 0;
    border-bottom: 1px solid var(--color-border-message-group-spacer-line);
}

.bookend-label::before,
.date_row .timerender-content::before {
    right: 0.25em;
    margin-left: -50%;
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/settings.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
label {
    margin: 0;
}

label:not(.does-not-exist) .fa-info-circle,h4:not(.does-not-exist) .fa-info-circle,h3:not(.does-not-exist) .fa-info-circle,.settings-section-title .fa-info-circle {
        top: 1px;
        position: relative;
    }

/* TODO: This should ideally be added to help_link_widget.hbs,
   allowing us to deduplicate at least the opacity CSS with the
   fa-question-circle-o logic above. */
.settings-info-icon {
    padding-left: 3px;
    opacity: 0.7;
}
.settings-info-icon:hover {
        opacity: 1;
    }

a.help_link_widget {
    opacity: 0.7;
    color: inherit;
    margin-left: 3px;
}

a.help_link_widget .fa-question-circle-o {
        position: relative;
        top: 1px;
    }

a.help_link_widget:hover {
        color: inherit;
        opacity: 1;
    }

h3:not(.does-not-exist) .help_link_widget,.settings-section-title .help_link_widget {
        margin-left: 5px;
    }

.profile-settings-form {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap-reverse;
}

.profile-main-panel {
    margin-right: 20px;
}

.profile-side-panel {
    margin-right: 10px;
}

.admin_profile_fields_table th.display,.admin_profile_fields_table th.required,.admin_profile_fields_table td.display_in_profile_summary_cell,.admin_profile_fields_table td.required-cell {
        text-align: center;
    }

.user-details-title {
    display: inline-block;
    min-width: 80px;
    font-weight: 600;
    padding-right: 5px;
}

.user-avatar-section .inline-block {
        box-shadow: 0 0 10px hsl(0deg 0% 0% / 10%);
    }

#change_password_modal,
#change_email_modal {
    width: 34.2857em; /* 480px at 14px/em */
    max-width: 90vw;
}

#change-email-form-input-email {
    max-width: 90%;
}

#change_email_modal #change_email_form {
        margin: 0;
    }

.disabled_setting_tooltip {
    cursor: not-allowed;
}

#account-settings .deactivate_realm_button {
    margin-left: 10px;
}

#change_email_button:disabled {
        pointer-events: none;
    }

#user_deactivate_account_button:disabled {
        pointer-events: none;
    }

.deactivate_realm_button:not(#does-not-exist):disabled {
        pointer-events: none;
    }

#api_key_button:disabled {
        pointer-events: none;
    }

#user_email_address_visibility:disabled {
        pointer-events: none;
    }

#change_email_button,
#change_password {
    min-width: 0;
}

.change-email {
    display: flex;
    gap: 0.5rem;
}

.admin-realm-description,
.admin-realm-welcome-message-custom-text {
    height: 12em;
    width: 100%;
    max-width: 500px;
    box-sizing: border-box;
}

.admin-realm-welcome-message-custom-text {
    margin-bottom: 10px;
}

#welcome_message_custom_text_buttons_container {
    display: inline-flex;
    /* 5px at 16px em */
    gap: 0.3125em;
    align-items: center;
}

.setting_notification_sound,
.play_notification_sound {
    margin-right: 4px;
}

.play_notification_sound .notification-sound-icon {
        font-size: 1.5714em; /* 22px at 14px / em */
        /* Visually center with chevron in select */
        line-height: 1.8571em; /* 26px at 14px / em */
        cursor: pointer;
    }

.setting_notification_sound {
    text-transform: capitalize;
}

.table tbody {
        border-bottom: 1px solid hsl(0deg 0% 87%);
    }

.wrapped-table {
    overflow-wrap: anywhere;
    overflow-wrap: break-word;
    white-space: pre-wrap;
    white-space: normal;
}

#settings_content table + .progressive-table-wrapper table tr.user_row td:first-of-type {
        width: 20%;
    }

#uploaded_files_table > tr > td:nth-of-type(1),
#attachments-settings .upload-file-name {
    word-break: break-all;
}

.upload-mentioned-in,
.upload-date {
    word-break: normal;
}

#linkifier-settings #linkifier_pattern,#linkifier-settings #linkifier_template {
        width: calc(100% - 10em - 6em);
    }

#playground-settings #playground_pygments_language,#playground-settings #playground_name,#playground-settings #playground_url_template {
        width: calc(100% - 10em - 6em);
    }

#language_selection_modal table {
        width: 90%;
        margin-top: 20px;
        border-collapse: separate;
    }

#language_selection_modal td {
        padding-top: 1px;
    }

.settings-section {
    display: none;
    width: calc(100% - 40px);
    margin: 20px;
}

.settings-section.show {
        display: block;
    }

.settings-section form {
        margin: 0;
    }

.settings-section .no-padding {
        padding: 0;
    }

.settings-section .settings-section-title {
        font-size: 1.4em;
        font-weight: 400;
        margin: 10px 0;
    }

.settings-section .settings-section-title.transparent {
            background-color: transparent;
            color: inherit;
        }

.settings-section .table-sticky-headers {
        position: sticky;
        top: 0;
        z-index: 1;
    }

.settings-section #admin_page_users_loading_indicator,.settings-section #attachments_loading_indicator,.settings-section #admin_page_deactivated_users_loading_indicator,.settings-section #admin_page_bots_loading_indicator {
        margin: 0 auto;
    }

.settings-section .loading_indicator_text {
        font-size: 0.8571em; /* 12px at 14px/em */
        font-weight: 400;
        vertical-align: middle;
        line-height: inherit;
        display: inline-block;
        float: none;
        margin-top: 9px;
    }

.settings-section .inline {
        display: inline !important;
    }

.settings-section .hidden-email {
        font-style: italic;
    }

/* Originally the icon inherits the color of label, but when the setting
    is disabled, the color of the label is changed and thus the icon becomes
    too light. So, we set the color explicitly to original color of label to
    keep the color of the icon same even when the setting is disabled. */

.settings-section #id_realm_enable_spectator_access_label a {
        color: var(--color-realm-enable-spectator-access-link);
    }

/* The height and width of this should match input fields in settings
       menu. We try to keep the padding and height the same, and both without
       border-box box-sizing.

       These styles should be kept in sync with the styles for .settings_select
       in subscriptions.css */

.settings-section .settings_select {
        box-sizing: unset;
        /* Subtract 1px border on each side and 25+6 padding */
        width: calc(var(--modal-input-width) - 33px);
        max-width: 100%;
        padding-top: 4px;
        padding-bottom: 4px;
        height: 1.4em; /* To match height of input elements */
    }

.settings-section .account-settings-heading {
        margin-right: 10px;
    }

/* Make this one less wide because it's indented, so that the right
   edge lines up with other dropdown menus. Usual 33px plus 23px extra
   margin. */
#id_realm_jitsi_server_url {
    width: calc(var(--modal-input-width) - 33px - 23px);
}

/* list_select is similar to settings_select, but without the height styling. */
.settings_select,
.list_select {
    padding: 0 25px 0 6px;
    color: var(--color-text-default);
    border-radius: 4px;
    border: 1px solid hsl(0deg 0% 80%);
    cursor: pointer;
    background-color: hsl(0deg 0% 100%);
}
.settings_select:disabled {
        cursor: not-allowed;
        background-color: hsl(0deg 0% 93%);

        /* This is reset for other browsers to use Chrome's opacity. */
        opacity: 0.7;
    }
.list_select:disabled {
        cursor: not-allowed;
        background-color: hsl(0deg 0% 93%);

        /* This is reset for other browsers to use Chrome's opacity. */
        opacity: 0.7;
    }

/* For consistent custom select dropdowns that match with dropdown-widget */
select.modal_select,
select.list_select,
select.settings_select {
    -webkit-appearance: none;
            appearance: none;
    background-image: var(--icon-chevron-down);
    background-repeat: no-repeat;
    background-position: 98%;
    background-size: 1em;
}

#admin-active-users-list .table tr:first-of-type td {
        border-top: none;
    }

#admin-bot-list .table tr:first-of-type td {
        border-top: none;
    }

.user_role,
.profile_field_type,
.bot_type,
.last_active {
    word-break: normal;
}

.export_url_spinner .loading_indicator_spinner,.last_active .loading_indicator_spinner {
        width: 1.25em;
        height: auto;
        display: flex;
        align-items: center;
        margin: 0;
        margin-left: 0.5em; /* The spinner is left-justified with a slight left margin to look good. */
    }

.input-group {
    margin: 0 0 1.25em; /* 20px at 16px/em */
}

.input-group label.checkbox + label {
        cursor: pointer;
    }

.input-group .message_count {
        margin: 10px 0 0;
    }

/* Class for displaying an input with an
   auxiliary control, e.g., the play button
   next to the notification sound dropdown. */
.input-element-with-control {
    display: flex;
    align-items: center;
    /* Preserve the effective space allotted
       inside the input group.

       Select element: --modal-input-width
       Button element: ~29px
       Right margin:     4px */
    max-width: calc(var(--modal-input-width) + 29px + 4px);
}
.input-element-with-control .settings_select {
        /* Hold the settings select to its usual value;
           a TODO would be to fix up the min- and max-
           width values on the parent class, as the
           min-width always applies, and max-width: 100%
           has no meaning without an actual width:
           declaration. */
        max-width: var(--modal-input-width);
        /* Disregard the min-width from the main
           .settings_select selector. */
        min-width: 0;
        /* Allow the select to grow within the flex
           container to keep the play button in the
           viewport, and not force dodgy looking wrap
           onto a second line. */
        flex: 1 0 auto;
    }

.no-margin {
    margin: 0;
}

input[type="checkbox"]  + .inline-block {
        margin-left: 10px;
    }

input[type="checkbox"] .inline-block {
        margin: -2px 0 0;
    }

.decorated-stream-name-dropdown-widget .dropdown_widget_value {
        /* The max-width should account for the
           16px-square box (at 16px/1em) for the
           chevron icon. */
        max-width: calc(100% - 1em);
        display: flex;
        align-items: baseline;
        /* Mimic the space from the previous inline
           layout. */
        gap: 0.4ch;
    }

.decorated-stream-name-dropdown-widget .decorated-channel-name {
        overflow-x: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.allow-subdomains,
.new-realm-domain-allow-subdomains {
    margin: 0 !important;
}

.realm_domains_info {
    margin-bottom: 0;
}

.admin-realm-form h3 {
        margin: 10px 0 5px;
    }

.admin-realm-form .subsection-header h3 {
        display: inline;
    }

.preferences-settings-form .subsection-header h3,.notification-settings-form .subsection-header h3 {
        display: inline-block;
        margin: 10px 0 5px;
    }

.preferences-settings-form .tip,.notification-settings-form .tip {
        width: -moz-fit-content;
        width: fit-content;
        margin-top: 0;
    }

.send_test_notification {
    margin-bottom: 15px;
}

.preferences-settings-form .tab-picker {
        width: 325px;
    }

.information-density-settings {
    display: flex;
    gap: 2em;
    margin: 0 0 20px;
}

.information-density-settings.disabled-setting .display-value {
        opacity: 0.4;
    }

.information-density-settings .display-value {
        background-color: var(--color-background-popover);
        font-size: 1.15em;
        line-height: 1;
        display: flex;
        align-items: center;
        padding: 0.25em 0.375em;
    }

.information-density-settings .zulip-icon {
        font-size: 1.15em;
        width: 1.15em;
        height: 1.15em;
    }

#stream-specific-notify-table .reset_stream_notifications {
        opacity: 0;
        visibility: hidden;
        transition: 0.2s ease;
        transition-property: opacity, visibility;
    }

#stream-specific-notify-table .reset_stream_notifications:hover {
            cursor: pointer;
        }

#stream-specific-notify-table .reset_stream_notifications:active {
            outline: none;
        }

#stream-specific-notify-table .unmute_stream:hover {
            cursor: pointer;
        }

#stream-specific-notify-table .unmute_stream:focus {
            outline: none;
        }

#stream-specific-notify-table .stream-controls {
        display: flex;
        align-items: center;
        /* This gap matches a single space character. */
        gap: 0.4ch;
    }

#stream-specific-notify-table .stream-controls .stream-privacy {
            display: flex;
        }

#stream-specific-notify-table .stream-controls:hover .reset_stream_notifications {
                opacity: 1;
                visibility: visible;
            }

#confirm_reset_stream_notifications_modal .channel-privacy-type-icon {
        padding-left: 3px;
        padding-right: 0;
        width: auto;
    }

#customizable_stream_notifications_table .dropdown-widget-button {
    /* 225px at 16px/1em */
    width: 14.0625em;
}

#customizable_stream_notifications_table .dropdown-widget-button:focus {
        outline: none;
    }

#customizable_stream_notifications_table .dropdown-widget-button:focus-visible {
        outline: 2px solid var(--color-outline-focus);
    }

.advanced-configurations-container .advance-config-toggle-area {
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 0 0.625em;
    }

.advanced-configurations-container .advance-config-toggle-area .stream_setting_subsection_title {
            margin: 4px 0;
        }

.advanced-configurations-container .advance-config-toggle-area .toggle-advanced-configurations-icon {
            font-size: 1.4286em; /* 20px at 14px / em */
        }

.advanced-configurations-container .advanced-configurations-collapase-view .admin-permissions-tip {
            margin-bottom: 1em;
        }

.organization-settings-parent {
    padding-top: 5px;
}

#id_org_profile_preview {
    width: max-content;
    display: flex;
    gap: 5px;
    align-items: center;
    margin-bottom: 20px;
}

.inline-block.organization-permissions-parent {
    padding-top: 5px;
}

#org-other-permissions .tip {
    margin-top: 0;
}

.language_selection_widget .language_selection_button {
    -webkit-text-decoration: none;
    text-decoration: none;
    min-width: 0;
}

#user_enter_sends_label kbd,
#realm_enter_sends_label kbd {
    /* 14px at 15px/1em */
    font-size: 0.9333em;
    font-style: normal;
    font-weight: 500;
    color: var(--color-kbd-enter-sends);
    position: relative;
    bottom: 1px;
    margin: 0 2px;
}

.overlay-keyboard-shortcuts .popover-menu-hotkey-hints {
    display: inline-flex;
    padding-left: 0;
}

.edit-attachment-buttons {
    display: inline-block;
    vertical-align: middle;
}

.remove-alert-word {
    margin-top: 1px;
}

.alert-word-status-banner {
    margin-bottom: 20px;
}

.alert-notification {
    display: inline-flex;
    align-items: center;
    vertical-align: top;
    height: auto !important;
    width: auto !important;
    white-space: break-spaces !important;

    overflow-wrap: anywhere;
    background-color: transparent;
    border-radius: 4px;
    color: hsl(156deg 30% 50%);
    padding: 3px 10px;
}

.alert-notification.account-alert-notification {
        margin: 0 0 10px;
        vertical-align: middle;
    }

.alert-notification:not(:empty) {
        border: 1px solid hsl(156deg 30% 50%);
    }

.alert-notification.alert-error {
        color: hsl(2deg 46% 68%);
        border-color: hsl(2deg 46% 68%);
    }

.alert-notification .loading_indicator_spinner {
        width: 0.9283em; /* 13px at 14px/em */
        height: 1.4286em; /* 20px at 14px/em */
        margin: 0;
    }

/* make the spinner green like the text and box. */

.alert-notification .loading_indicator_spinner svg path {
        fill: hsl(178deg 100% 40%);
    }

.alert-notification .loading_indicator_text {
        margin-top: 0;
        font-size: inherit;
        vertical-align: top;
    }

.alert-notification img {
        margin-right: 6px;
    }

.alert-notification .settings-save-checkmark {
        width: 0.9285em; /* 13px at 14px/em */
    }

#profile-field-settings #admin-add-profile-field-status {
    margin-top: 4px;
}

#add-custom-profile-field-button {
    margin-top: auto;
    margin-bottom: 12px;
    padding: 4px 14px;
}

#user-notification-settings .notification-table thead,#realm-user-default-settings .notification-table thead {
            background-color: var(--color-background-notification-table-thead);
        }

#user-notification-settings .notification-table th,#realm-user-default-settings .notification-table th,#user-notification-settings .notification-table td,#realm-user-default-settings .notification-table td {
            text-align: center;
            vertical-align: middle;
            cursor: default;
        }

#user-notification-settings .notification-table th .stream-privacy span.hashtag,#realm-user-default-settings .notification-table th .stream-privacy span.hashtag,#user-notification-settings .notification-table td .stream-privacy span.hashtag,#realm-user-default-settings .notification-table td .stream-privacy span.hashtag,#user-notification-settings .notification-table th .filter-icon i,#realm-user-default-settings .notification-table th .filter-icon i,#user-notification-settings .notification-table td .filter-icon i,#realm-user-default-settings .notification-table td .filter-icon i {
                padding-right: 0;
            }

#user-notification-settings .notification-table th label,#realm-user-default-settings .notification-table th label,#user-notification-settings .notification-table td label,#realm-user-default-settings .notification-table td label {
                cursor: default;
            }

#user-notification-settings .notification-table td:first-child {
            text-align: left;
            font-weight: bold;
            word-break: break-all;
        }

#realm-user-default-settings .notification-table td:first-child {
            text-align: left;
            font-weight: bold;
            word-break: break-all;
        }

#convert-demo-organization-form .domain_label {
        display: inline-block;
    }

#edit-user-form .alert-notification.custom-field-status,
#profile-settings .alert-notification.custom-field-status,
#profile-settings .alert-notification.full-name-status,
#profile-settings .alert-notification.timezone-setting-status {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    padding-left: 0;
    margin-left: 5px;
    border: none;
}

#profile-settings .custom-profile-fields-form .custom_user_field label,#profile-settings .full-name-change-container label,#profile-settings .timezone-setting-form label {
        min-width: -moz-fit-content;
        min-width: fit-content;
    }

#profile-settings .person_picker {
        /* Subtract 2 * (2px padding) + 2 * (1px border) */
        min-width: calc(var(--modal-input-width) - 6px);
    }

#profile-settings textarea {
        /* Subtract 6px of padding from side */
        width: calc(var(--modal-input-width) - 12px);
    }

.required-symbol {
    color: hsl(0deg 66% 60%);
}

.settings-profile-user-field {
    margin-top: 5px;
    max-width: -moz-fit-content;
    max-width: fit-content;
}

.settings-profile-user-field  > .settings_url_input {
        margin-bottom: 0;
    }

.settings-profile-user-field.editable-date-field {
    display: grid;
    grid-template-areas: "datepicker close-button";
    grid-template-columns: minmax(0, 1fr) 1.4285em; /* 20px at 14px em */
    align-items: center;
    width: var(--modal-input-width);
}

.control-label-disabled {
    color: hsl(0deg 0% 50%);
}

.admin-realm-message-retention-days {
    width: 5ch;
    text-align: right;
}

.delete-choice {
    display: inline-flex;
}

.delete-choice.hide {
        display: none;
    }

#add-default-stream-modal .dropdown-widget-button {
        display: inline-flex;
    }

#add-default-stream-modal .default_stream_choices_table {
        margin-top: 2px;
    }

#add-default-stream-modal .choice-row {
        margin-bottom: 10px;
    }

#add-default-stream-modal .choice-row:last-of-type .delete-choice {
                display: none;
            }

.add_default_streams_button_container {
    display: flex;
    flex-wrap: wrap;
    margin-top: auto;
    margin-bottom: 12px;
    gap: 6px;
}

.add_default_streams_button_container #show-add-default-streams-modal {
        padding-top: 0;
        padding-bottom: 0;

        min-width: 0;
    }

#add-custom-emoji-modal form {
        margin: 0;
    }

#add-custom-emoji-modal input[type="text"] {
        padding: 6px;
    }

#add-custom-emoji-modal .emoji_name_input {
        margin-top: 10px;
    }

#add-custom-emoji-modal #emoji-file-name {
        white-space: nowrap;
        font-style: italic;
        color: hsl(0deg 0% 67%);
    }

#add-custom-emoji-modal #emoji_preview_text {
        margin-top: 6px;
    }

#emoji_file_input_error {
    vertical-align: middle;
}

.add-new-linkifier-box button,.add-new-playground-box button {
        margin-left: calc(10em + 20px) !important;
    }

.add-new-linkifier-box,
.add-new-playground-box {
    margin-bottom: 15px;
}

.add-new-linkifier-box .checkbox,.add-new-playground-box .checkbox {
        margin-top: 5px;
    }

.settings-highlight-box .wrapper {
    margin: 10px 0;
}

.admin_profile_fields_table .movable-row .move-handle,.edit_profile_field_choices_container .movable-row .move-handle,.profile_field_choices_table .movable-row .move-handle,.admin_linkifiers_table .movable-row .move-handle,.admin_channel_folders_table .movable-row .move-handle {
            cursor: move;
            -webkit-user-select: none;
                    user-select: none;
            margin-right: 5px;
        }

.admin_profile_fields_table .movable-row .fa-ellipsis-v,.edit_profile_field_choices_container .movable-row .fa-ellipsis-v,.profile_field_choices_table .movable-row .fa-ellipsis-v,.admin_linkifiers_table .movable-row .fa-ellipsis-v,.admin_channel_folders_table .movable-row .fa-ellipsis-v {
            color: hsl(0deg 0% 75%);
            position: relative;
            top: 1px;
        }

#admin-linkifier-pattern-status,
#admin-linkifier-template-status {
    margin: 20px 0 0;
}

#organization-permissions .dropdown-widget-button {
        color: var(--color-text-default);
    }

#organization-settings .dropdown-widget-button {
        color: var(--color-text-default);
    }

.org-permissions-form .pill-container {
    /* Subtract 2 * (2px padding) + 2 * (1px border) */
    min-width: calc(var(--modal-input-width) - 6px);
}

.org-permissions-form .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.progressive-table-wrapper {
    position: relative;
    max-height: calc(95vh - 220px);
    overflow: auto;
    width: 100%;
}

#admin-default-channels-list .progressive-table-wrapper {
    max-height: calc(95vh - 280px);
}

#bot-settings .add-a-new-bot {
        margin-bottom: 2px;
        margin-top: 10px;
    }

#bot-settings hr {
        margin: 10px 0;
        border-color: hsl(0deg 0% 85%);
    }

#bot-settings .config-download-text {
        margin-left: 5px;
    }

#bot-settings .ind-tab {
        width: auto;
        min-width: 90px;
    }

.bots_list {
    list-style-type: none;
    margin-left: 0;
}

.bots_list .bot-card-image {
        vertical-align: top;
    }

.bots_list .bot-card-name {
        font-weight: 600;
        font-size: 1.1rem;
        margin: 7px 5px;

        overflow: hidden;
        line-height: 1.3em;
        text-overflow: ellipsis;
        white-space: pre;
    }

.bots_list .bot-card-regenerate-bot-api-key {
        position: relative;
        margin-left: 5px;
        color: hsl(0deg 0% 67%);
        transition: color 0.3s ease;
    }

.bots_list .bot-card-regenerate-bot-api-key:hover {
            color: hsl(0deg 0% 27%);
        }

.bots_list .edit-bot-buttons {
        padding-top: 5px;
    }

.bots_list .edit-bot-buttons button {
            background-color: transparent;
        }

.bots_list .edit-bot-buttons .bootstrap-btn {
            padding: 4px;
        }

.bots_list .edit-bot-buttons .sea-green {
            color: hsl(177deg 70% 46%);
        }

.bots_list .edit-bot-buttons .blue {
            color: hsl(203deg 77% 56%);
        }

.bots_list .edit-bot-buttons .danger-red {
            color: hsl(0deg 56% 73%);
        }

.bots_list .edit-bot-buttons .copy_zuliprc {
            color: hsl(51deg 90% 50%);
        }

.bots_list .edit-bot-buttons .purple {
            color: hsl(278deg 62% 68%);
        }

.bots_list .edit-bot-buttons .steel-blue {
            color: hsl(207deg 44% 49%);
        }

.bots_list .bot-information-box {
        position: relative;
        display: inline-block;
        width: calc(50% - 10px);
        margin: 5px;

        border-radius: 4px;
        box-sizing: border-box;

        overflow: auto;
    }

.bots_list .bot-information-box .bot-card-details {
            display: inline-block;
            width: calc(100% - 75px);
        }

.bots_list img.bot-card-avatar {
        margin: 10px 5px 0 10px;
        height: 50px;
        width: 50px;
        border-radius: 4px;
        vertical-align: top;
        box-shadow: 0 0 4px hsl(0deg 0% 0% / 10%);
    }

.bots_list .bot-card-email,.bots_list .bot-card-type {
        margin-bottom: 5px;
    }

.bots_list .bot-card-email .bot-card-value,.bots_list .bot-card-api-key .bot-card-api-key-value-and-button {
        display: block;
        margin-left: 0;
        overflow-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

.bots_list .bot-card-api-key .bot-card-api-key-value-and-button {
        font-family: "Source Code Pro", monospace;
        font-size: 0.85em;
        display: flex;
    }

.bots_list .bot-card-info {
        padding: 10px;
    }

.bots_list .bot-card-field {
        text-transform: uppercase;
        font-weight: 600;
        color: hsl(0deg 0% 67%);
    }

#inactive_bots_list .bot_info .reactivate_bot {
    margin-top: 5px;
}

.edit_bot_form {
    font-size: 100%;
    margin: 0;
    padding: 0;
}

.edit_bot_form .buttons {
        margin: 10px 0 5px;
    }

.edit_bot_form #current_bot_avatar_image {
        margin: 5px 0 8px;
    }

.edit_bot_form .edit_bot_avatar_preview_text {
        display: none;
    }

#add_bot_preview_text {
    display: none;
}

.edit_bot_avatar_preview_image,
#add_bot_preview_image {
    height: 100px;
    width: 100px;
    margin: 2px 0 8px;
}

#add-alert-word form {
        margin-bottom: 4px;
    }

#add-alert-word input {
        margin-bottom: 0;
    }

.admin-linkifier-form label,.admin-playground-form label {
        float: left;
        padding-top: 5px;
        width: 10em;
        text-align: right;
        margin-right: 20px;
    }

.admin-profile-field-form #custom_external_account_url_pattern input,
#edit-custom-profile-field-form-modal .custom_external_account_detail input {
    width: 70%;
}

#alert-words-table {
    margin: 0;
}

#alert-words-table li {
        list-style-type: none;
    }

#alert-words-table li.alert-word-item:first-child {
            background: none;
            margin-top: 8px;
        }

#alert-words-table .alert_word_listing .value {
        overflow-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

#alert-words-table .edit-attachment-buttons {
        position: absolute;
        right: 20px;
        top: 0;
    }

#change_password_modal #change_password_container {
        margin: 0;
    }

#api_key_status {
    margin: 0 0 10px;
}

#download_zuliprc {
    color: hsl(0deg 0% 100%);
    -webkit-text-decoration: none;
    text-decoration: none;
}

#realm_domains_table {
    margin: 0;
}

#api_key_form .settings-password-div,#change_password_modal .settings-password-div {
        display: flex;
        flex-wrap: wrap;
    }

#api_key_form .settings-password-div .modal-field-label,#change_password_modal .settings-password-div .modal-field-label {
            /* Keep the label to its own
               line in the wrapping flexbox. */
            flex: 0 0 100%;
        }

#api_key_form .settings-password-div .password-input-row,#change_password_modal .settings-password-div .password-input-row {
            display: flex;
            margin-bottom: 10px;
            /* This helps us in making sure that the
               password_visibility_toggle does not look
               misaligned in small screens where that component
               increases in height on small screens. */
            max-height: 2em;
        }

#api_key_form .settings-password-div .password-input-row .modal_password_input,#change_password_modal .settings-password-div .password-input-row .modal_password_input {
                /* The usual width of input is 206px, but we reduce
                   it by 30px to make way for the padding. */
                width: 176px;
                padding-right: 30px;
                /* Override the original 10px value so that we can
                   set the margin-bottom in the parent div instead. */
                margin-bottom: 0;
            }

#api_key_form .settings-password-div .password-input-row .password_visibility_toggle,#change_password_modal .settings-password-div .password-input-row .password_visibility_toggle {
                /* We're going to use flexbox, not
                   positioning, to get the clear button
                   over top of the input. This -2em
                   margin accomplishes that, in tandem
                   with the 2em width of this element,
                   which is shared with the ending
                   anchor element in left sidebar header
                   rows. We're using em instead of pixels
                   so the whitespace between the input box
                   and the icon doesn't decrease when the
                   icon's font-size increases when switching
                   from 14px info density to 16px info density
                   mode. */
                width: 2em;
                margin-left: -2em;

                /* Make the button itself a flex container,
                   so we can perfectly center the X icon. */
                display: flex;
                justify-content: center;
                align-items: center;

                opacity: 0.6;
            }

#api_key_form .settings-password-div .password-input-row .password_visibility_toggle:hover,#change_password_modal .settings-password-div .password-input-row .password_visibility_toggle:hover {
                    opacity: 1;
                }

#api_key_form .settings-password-div .password-input-row .settings-forgot-password,#change_password_modal .settings-password-div .password-input-row .settings-forgot-password {
                /* Make the link itself a flex container,
                   so we can perfectly center the text
                   in relation to the input box. */
                display: flex;
                align-items: center;
                margin-left: 10px;
            }

.emojiset_choices,
.user_list_style_values {
    padding: 0 10px;
}

label.preferences-radio-choice-label {
    border-bottom: 1px solid hsl(0deg 0% 0% / 20%);
    padding: 8px 0 10px;
    display: flex;
}

label.preferences-radio-choice-label:last-of-type {
        border-bottom: none;
    }

label.preferences-radio-choice-label input[type="radio"] {
        position: relative;
        top: -2px;
        margin: 0 5px 0 0;
        width: auto;
        cursor: pointer;
    }

label.preferences-radio-choice-label input[type="radio"]:focus {
            outline: 1px dotted hsl(0deg 0% 20%);
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
        }

label.preferences-radio-choice-label input[type="radio"]:disabled {
            cursor: not-allowed;
        }

label.preferences-radio-choice-label input[type="radio"]:checked + .preferences-radio-choice-text {
            font-weight: 600;
        }

label.preferences-radio-choice-label .right {
        /* Push to far right in flex container. */
        margin-left: auto;
    }

.emojiset_choices {
    width: 25em; /* 350px / 14px em */
}

.emojiset_choices .emoji {
        height: 22px;
        width: 22px;
    }

.user_list_style_values {
    max-width: 25em; /* 350px / 14px em */
}

.user_list_style_values .preferences-radio-choice-label {
        display: grid;
        grid-template-columns: 10.7143em auto; /* 150px / 14px em */
        justify-content: left;
        margin-right: 6px;
    }

.user_list_style_values .preferences-radio-choice-label .right {
            margin-left: unset;
        }

.user_list_style_values .preview {
        white-space: nowrap;
        overflow: hidden;
    }

.user_list_style_values .preview .user-name-and-status-text {
            display: flex;
            flex-direction: column;
        }

.user_list_style_values .preview .user-name-and-status-emoji .user-name {
                max-width: 100%;
                overflow: hidden;
            }

.user_list_style_values .preview .status-text {
            opacity: 0.75;
            font-size: 90%;
        }

.user_list_style_values .preview .status-text:not(:empty) {
                margin-top: -3px;
            }

.open-user-form {
    min-width: initial !important;
}

#api_key_buttons {
    display: inline-flex;
}

#api_key_buttons .regenerate_api_key {
        margin-right: 5px;
    }

.right.show .emoji_alt_code {
    /* This better aligns the example alt code
       with the other emoji styles. */
    margin-right: 1px;
}

.download_bot_zuliprc,
.copy_zuliprc,
.open_bots_subscribed_streams,
.manage-bot-button,
.deactivate-bot-button {
    display: inline-flex;
    align-items: center;
}

/* -- new settings overlay -- */
#settings_page {
    height: 95vh;
    width: 97vw;
    max-width: 73.1429em; /* 1024px at 14px em */
    margin: 2.5vh auto;
    overflow: hidden;
    border-radius: 4px;
}
#settings_page .time-limit-custom-input {
        width: 5ch;
        text-align: right;
    }
#settings_page .realm-time-limit-label {
        vertical-align: middle;
    }
#settings_page h3 {
        font-size: 1.5em;
        font-weight: normal;
        line-height: 1.5;
    }
#settings_page h5 {
        font-size: 1em;
        font-weight: normal;
        line-height: 1.2;
        margin: 10px 0;
    }
#settings_page .sidebar-wrapper {
        float: left;
        position: relative;
        width: var(--settings-sidebar-width);
        height: 100%;
    }
#settings_page .sidebar-wrapper .tab-container {
            box-sizing: border-box;
            height: var(--settings-overlay-header-height);
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: var(--color-background-modal-bar);
            border-bottom: 1px solid var(--color-border-modal-bar);
        }
#settings_page .sidebar-wrapper .tab-container .tab-switcher {
                display: flex;
                justify-content: center;
            }
#settings_page .sidebar-wrapper .tab-container .tab-switcher .ind-tab {
                    width: auto;
                    min-width: 6.7857em; /* 95px at 14px em */
                }
#settings_page .sidebar {
        height: calc(100% - var(--settings-overlay-header-height));
        overflow-y: auto;
        border-right: 1px solid var(--color-border-modal);
    }
#settings_page .sidebar .header {
            height: auto;
            position: relative;
            width: calc(100% - 20px);
            padding: 10px;
            text-align: center;
            text-transform: uppercase;

            background-color: var(--color-background-modal-bar);
            border-bottom: 1px solid var(--color-border-modal-bar);
        }
#settings_page .sidebar .sidebar-item {
            display: grid;
            /* 3.5714em is 50px at 14px/1em -- the legacy height of these rows. */
            /* 2.8571em is 40px at 14px/1em */
            grid-template:
                "starting-anchor-element row-content ending-anchor-element" 3.5714em / 2.8571em minmax(
                    0,
                    1fr
                )
                minmax(34px, auto);
            align-items: center;
            outline: none;
            cursor: pointer;
            transition:
                background-color 0.2s ease,
                border-bottom 0.2s ease;
            border-bottom: 1px solid var(--color-border-modal);
        }
#settings_page .sidebar .sidebar-item:last-of-type .text {
                border-bottom: none;
            }
#settings_page .sidebar .sidebar-item.active {
                /* TODO: Check with Vlad about highlight
                   colors such as this. */
                background-color: var(--color-active-row-modal);
            }
#settings_page .sidebar .sidebar-item .sidebar-item-icon {
                font-size: 1.4em;
                text-align: center;
                color: hsl(0deg 0% 53%);
            }
#settings_page .sidebar .sidebar-item .text {
                /* Hyphenate for internationalization */
                -webkit-hyphens: auto;
                        hyphens: auto;
            }
#settings_page .sidebar .sidebar-item .locked {
                font-size: 1em;
                text-align: center;
                color: hsl(0deg 0% 62%);
            }
#settings_page .sidebar .collapse-settings-button,#settings_page .sidebar .collapse-settings-button > #toggle_collapse_chevron {
            color: var(--color-text-url);
        }
#settings_page .sidebar .collapse-settings-button:not(#does-not-exist):hover,#settings_page .sidebar .collapse-settings-button > #toggle_collapse_chevron:hover {
                cursor: pointer;
                color: var(--color-text-url-hover);
            }
#settings_page .sidebar .org-settings-list {
            display: none;
        }
#settings_page .sidebar .hide-org-settings {
            display: none;
        }
#settings_page .sidebar .normal-settings-list,#settings_page .sidebar .org-settings-list {
            position: relative;
            list-style: none;
            margin: 0;
            padding: 0;
        }
#settings_page .settings-header {
        padding-top: 1px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
#settings_page .settings-header.mobile {
            display: none;
            border-bottom: 1px solid var(--color-border-modal-bar);
        }
#settings_page .settings-header.mobile .fa-chevron-left {
                float: left;
            }
#settings_page .settings-header h1 {
            text-align: center;
            font-size: 1.1em;
            line-height: 1;
            text-transform: uppercase;
        }
#settings_page .settings-header .exit {
            font-weight: 600;
            position: absolute;
            right: 0.7142em; /* 10px at 14px em */
            color: hsl(0deg 0% 67%);
            cursor: pointer;
        }
#settings_page .settings-header .exit-sign {
            font-size: 1.5em;
            font-weight: 600;
            cursor: pointer;
        }
#settings_page .content-wrapper {
        position: absolute;
        left: var(--settings-sidebar-width);
        width: calc(100% - var(--settings-sidebar-width));
        height: 100%;
        overflow: hidden;
    }
#settings_page .content-wrapper .settings-header {
            width: 100%;
            height: var(--settings-overlay-header-height);
            box-sizing: border-box;
            border-bottom: 1px solid var(--color-border-modal-bar);
            background-color: var(--color-background-modal-bar);
        }
#settings_page .content-wrapper .settings-header h1 .section {
                font-weight: 400;
                color: inherit;
                opacity: 0.6;
            }
#settings_page .content-wrapper #settings_content {
            position: relative;
            width: 100%;
            height: calc(100% - var(--settings-overlay-header-height));

            float: left;
            overflow: auto;

            background-color: hsl(0deg 0% 0% / 2%);
        }
#settings_page .preferences-settings-form select {
        width: var(--modal-input-width);
    }

.time-limit-custom-input,
.realm_jitsi_server_url_custom_input {
    padding: 4px 6px;
    color: var(--color-text-default);
    border: 1px solid hsl(0deg 0% 80%);
    transition:
        border-color linear 0.2s,
        box-shadow linear 0.2s;
}

.time-limit-custom-input:focus,.realm_jitsi_server_url_custom_input:focus {
        border-color: hsl(206deg 80% 62% / 80%);
        outline: 0;
        box-shadow:
            inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
            0 0 8px hsl(206deg 80% 62% / 60%);
    }

#realm_jitsi_server_url_setting {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

#realm_jitsi_server_url_setting .jitsi_server_url_custom_input_label {
        margin-bottom: var(--margin-bottom-field-description);
    }

#profile-settings .custom_user_field,#edit-user-form .custom_user_field {
        padding-bottom: 20px;
    }

#profile-settings .custom_user_field textarea,#edit-user-form .custom_user_field textarea {
            height: 80px;
        }

#profile-settings .custom_user_field:hover .remove_date,#edit-user-form .custom_user_field:hover .remove_date {
            display: inline-flex;
        }

#profile-settings .custom_user_field .remove_date,#edit-user-form .custom_user_field .remove_date {
            opacity: 0.5;
            display: none;
            cursor: pointer;
            grid-area: close-button;
            z-index: 5;
        }

#profile-settings .custom_user_field .remove_date:hover,#edit-user-form .custom_user_field .remove_date:hover {
                opacity: 1;
            }

#profile-settings .custom_user_field .datepicker,#edit-user-form .custom_user_field .datepicker {
            cursor: default;
            padding-right: 1.4285em; /* 20px at 14px em */
            /* full input width minus right padding and
               6px left padding from .settings_text_input
               and 1px border on each side */
            max-width: calc(var(--modal-input-width) - 1.4285em - 8px);
        }

#profile-settings .custom_user_field input.datepicker[disabled],#edit-user-form .custom_user_field input.datepicker[disabled] {
            cursor: not-allowed;
        }

#profile-settings #show_my_user_profile_modal,#edit-user-form #show_my_user_profile_modal {
        width: 100%;
        top: 20px;
        position: sticky;
    }

#profile-settings #show_my_user_profile_modal .show-user-profile-icon,#edit-user-form #show_my_user_profile_modal .show-user-profile-icon {
            padding-left: 2px;
            vertical-align: middle;
        }

#edit-user-form .person_picker {
        /* Subtract (1px border and 2px of padding) on each side */
        min-width: calc(var(--modal-input-width) - 6px);
    }

#edit-user-form textarea {
        /* Subtract (1px border and 6px padding) on each side */
        width: calc(var(--modal-input-width) - 14px);
    }

#manage-profile-tab #edit-user-form .name-setting,#manage-profile-tab #bot-edit-form .name-setting {
            margin-bottom: 10px;
        }

#manage-profile-tab input,#manage-profile-tab input[type="url"],#manage-profile-tab textarea,#manage-profile-tab select {
        /* Override undesired Bootstrap default. */
        margin-bottom: 0;
    }

.subsection-failed-status p {
    background-color: hsl(0deg 43% 91%);
    padding: 2px 6px;
    border-radius: 4px;
    margin: 0 0 0 5px;
}

#muted_topics_table {
    width: 90%;
    margin: 0 auto;
}

#muted_topics_table tbody {
        border-bottom: none;
    }

#payload_url_inputbox input[type="text"] {
        width: 340px;
    }

.settings-field-label {
    margin-bottom: var(--margin-bottom-field-description);
    /* Avoid having the clickable area extend to the full width of the containing element */
    width: -moz-fit-content;
    width: fit-content;
}

.settings-profile-user-field-hint {
    color: var(--color-text-settings-field-hint);
    /* We effectively eliminate the margin-bottom on
       .settings-field-label by pulling .field-hint
       up a corresponding negative value. This cinches
       things up a little tighter, given the generous
       line-height (20px) on <label> elements, though
       note well that that comes care of Bootstrap. */
    margin-top: calc(var(--margin-bottom-field-description) * -1.5);
    /* Maintain the same margin-bottom value as appears
       with .settings-field-label to display text-input
       combinations uniformly throughout the settings UI. */
    margin-bottom: var(--margin-bottom-field-description);
}

.cursor-text {
    cursor: text;
}

.profile-field-choices {
    display: inline-block;
}

.profile-field-choices hr {
        margin-top: 0;
        margin-bottom: 5px;
    }

.profile-field-choices .choice-row {
        margin-top: 8px;
    }

.profile-field-choices .choice-row input {
            width: 190px;
        }

.profile-field-choices .choice-row button {
            margin-left: 2px;
        }

.profile-field-choices  > .choice-row:first-of-type {
        margin-top: 0;
    }

.profile-field-choices-wrapper > .alphabetize-choices-button {
    display: block;
    margin: 12px 0 0;
}

.custom_user_field .pill-container,.bot_owner_user_field .pill-container {
        min-height: 24px;
        max-width: 206px;
    }

.custom_user_field .pill-container:focus-within {
            border-color: hsl(206deg 80% 62% / 80%);
            outline: 0;
            outline: 1px dotted \9;

            box-shadow:
                inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
                0 0 8px hsl(206deg 80% 62% / 60%);
        }

.bot_owner_user_field .pill-container:focus-within {
            border-color: hsl(206deg 80% 62% / 80%);
            outline: 0;
            outline: 1px dotted \9;

            box-shadow:
                inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
                0 0 8px hsl(206deg 80% 62% / 60%);
        }

#get_api_key_button {
    display: block;
}

#attachment-stats-holder {
    position: relative;
    margin-top: 13px;
    display: block;
}

#attachment-stats-holder .upgrade-tip {
        width: auto;
    }

#attachment-stats-holder .tip::before {
        content: "\f135";
        margin-right: 8px;
    }

.admin_exports_table {
    margin-bottom: 20px;
}

.settings_textarea {
    color: var(--color-text-default);
    background-color: hsl(0deg 0% 100%);
    border-radius: 4px;
    vertical-align: middle;
    border: 1px solid hsl(0deg 0% 80%);
    padding: 4px 6px;

    box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
    transition:
        border-color linear 0.2s,
        box-shadow linear 0.2s;
}

.settings_textarea:focus {
        border-color: hsl(206.5deg 80% 62% / 80%);
        outline: 0;

        box-shadow:
            inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
            0 0 8px hsl(206.5deg 80% 62% / 60%);
    }

.settings_textarea:disabled {
        cursor: not-allowed;
        background-color: hsl(0deg 0% 93%);
    }

@media (max-width: 991.98px) {
    .settings-email-column {
        display: none;
    }

    .empty-email-col-for-user-group {
        display: none;
    }

    .hidden-subscriber-email {
        display: none;
    }

    .upload-size {
        display: none;
    }

    .user-avatar-section,
    .realm-icon-section {
        display: block;
    }

    .subsection-failed-status p {
        margin: 5px 0 0;
    }
}

/* We should eventually consolidate some of these styles with the styles
   in subscriptions.css, using shared classnames. */
@container settings-overlay (width < 57.142857142857146em) {
        .profile-settings-form .user-avatar-section {
            flex: 100%;
        }

    #settings_overlay_container {
        /* this variable allows JavaScript to detect this media query */
        --single-column: yes;
    }
        #settings_page .settings-header.mobile {
            display: flex;
            justify-content: space-between;
            height: var(--settings-overlay-header-height);
            /* We need the height to disregard border and
               padding values added to other instances of
               .settings-header. */
            box-sizing: border-box;
        }

            #settings_page .settings-header.mobile .fa-chevron-left {
                transform: translate(-50px, 0);
                opacity: 0;
                color: hsl(0deg 0% 67%);
                padding: 2px 10px;
                cursor: pointer;
                transition: 0.3s ease;
                transition-property: opacity, transform;
            }

            #settings_page .settings-header.mobile .exit {
                position: static;
                margin-right: 10px;
            }

            #settings_page .settings-header.mobile:not(.slide-left) .section {
                /* When viewing the settings list we hide the active section. */
                display: none;
            }
            #settings_page .content-wrapper .settings-header {
                display: none;
            }

            #settings_page .content-wrapper #settings_content {
                height: 100%;
            }

        #settings_page .content-wrapper.right {
            position: absolute;
            display: block;
            left: 101%;
            margin: 0;
            width: 100%;
            height: calc(100% - var(--settings-overlay-header-height));

            top: var(--settings-overlay-header-height);
            background-color: var(--color-background-modal);
            border: none;

            transition: left 0.3s ease; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
            z-index: 10;
        }

            #settings_page .content-wrapper.right.show {
                left: 0%;
            }

        #settings_page .sidebar-wrapper {
            width: 100%;
        }

        #settings_page .sidebar {
            position: absolute;
            width: 100%;
            border: none;
            height: calc(
                100% - var(--settings-overlay-header-height) -
                    var(--settings-overlay-subheader-height)
            );
        }
}

@container (width > 57.142857142857146em) {
    #attachments-settings .upload-file-name {
        min-width: 10em;
    }
        #user_topics_table .user-topic-stream {
            min-width: 6em;
        }

        #user_topics_table .user-topic {
            min-width: 10em;
        }
            #admin-user-list .user_row .user_name,#admin-bot-list .user_row .user_name,#admin-user-list .user_row .email,#admin-bot-list .user_row .email {
                min-width: 8em;
            }
        .admin_profile_fields_table .profile_field_name,.admin_profile_fields_table .profile_field_hint {
            min-width: 8em;
        }
}

@media (max-width: 575.98px) {
            #admin-user-list .user_row .bot_type,#admin-bot-list .user_row .bot_type,#admin-user-list .table-sticky-headers .bot_type,#admin-bot-list .table-sticky-headers .bot_type,#admin-user-list .user_row .last_active,#admin-bot-list .user_row .last_active,#admin-user-list .table-sticky-headers .last_active,#admin-bot-list .table-sticky-headers .last_active {
                display: none;
            }

            #admin-user-list .user_row .user_name,#admin-bot-list .user_row .user_name,#admin-user-list .table-sticky-headers .user_name,#admin-bot-list .table-sticky-headers .user_name,#admin-user-list .user_row .email,#admin-bot-list .user_row .email,#admin-user-list .table-sticky-headers .email,#admin-bot-list .table-sticky-headers .email {
                min-width: 8em;
            }

    #pw_strength {
        margin: auto;
    }

    #linkifier-settings .new-linkifier-form input,
    #playground-settings .new-playground-form input,
    #profile-field-settings .new-profile-field-form input {
        width: calc(100% - 20px) !important;
    }

    #linkifier-settings .new-linkifier-form label,
    #playground-settings .new-playground-form label,
    #profile-field-settings .new-profile-field-form label {
        display: block;
        width: 120px;
        padding: 0;
        padding-top: 0;
        text-align: center;
        margin: auto;
        float: none;
    }

    #change_password_modal,
    #change_email_modal {
        width: 400px;
    }

    #attachments-settings .upload-file-name {
        min-width: 10em;
    }
        #user_topics_table .user-topic {
            min-width: 10em;
        }

        #user_topics_table .user-topic-stream {
            min-width: 6em;
        }
        .admin_profile_fields_table .profile_field_name,.admin_profile_fields_table .profile_field_hint {
            min-width: 8em;
        }
}

@media (max-width: 424.98px) {
    #api_key_buttons,
    #download_zuliprc {
        flex-direction: column;
        margin-top: 5px;
    }
        #edit-user-form .custom_user_field textarea {
            width: calc(100% - 25px);
        }

    .topic_date_updated {
        display: none;
    }

    #change_password_modal,
    #change_email_modal {
        width: 300px;
    }
}

@media (max-width: 374.98px) {
    .deactivate_realm_button {
        margin-top: 20px;
    }
}

@media only screen and (max-width: 991.98px) {
    /* Show bot-information-box at full width on small
       screen sizes. Not having this media query breaks the
       information box */
    .bots_list .bot-information-box {
        width: calc(100% - 10px);
    }
}

#edit-linkifier-form #edit-linkifier-pattern,#edit-linkifier-form #edit-linkifier-url-template {
        width: 400px;
    }

#edit-linkifier-form label {
        margin-bottom: 4px;
    }

#edit-linkifier-form #edit-linkifier-pattern-status,#edit-linkifier-form #edit-linkifier-template-status {
        margin-top: 10px;
    }

#edit-linkifier-form input {
        margin-bottom: 0;
    }

.settings_panel_list_header {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.settings_panel_list_header h3 {
        display: inline-block;
    }

.settings_panel_list_header .user_filters {
        display: flex;
        flex-wrap: wrap;
        margin-top: auto;
        margin-bottom: 12px;
        gap: 6px;
    }

.settings_panel_list_header .user_filters .dropdown-widget-button {
            height: 1.4em;
            max-width: 160px;
            box-sizing: content-box;
        }

.settings_panel_list_header .user_filters input.search {
            /* Margins need to be only handled by the container holding the
            filters to keep them aligned in .settings_panel_list_header */
            margin: 0;
        }

.settings_panel_list_header .add_default_streams_button_container input.search {
            /* Margins need to be only handled by the container holding the
            filters to keep them aligned in .settings_panel_list_header */
            margin: 0;
        }

.settings_panel_list_header .alert-notification {
        margin-left: 10px;
        margin-right: auto;
    }

.settings_panel_list_header .search-container {
        display: grid;
        grid-template: "search-input clear-search" auto / minmax(0, 1fr) 30px;
    }

.settings_panel_list_header .search-container input.search {
            grid-column: search-input-start / clear-search-end;
            grid-row: search-input;
            padding-right: 23px;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
            margin: 0;
        }

.settings_panel_list_header .search-container .clear-filter {
            grid-area: clear-search;
            padding: 0;
            background: none;
            color: var(--color-text-clear-search-button);
            border: none;
            outline: none;
            display: grid;
        }

.settings_panel_list_header .search-container .clear-filter:hover {
                color: var(--color-text-clear-search-button-hover);
            }

.settings_panel_list_header .search-container .clear-filter .zulip-icon-close {
                align-self: center;
            }

.settings_panel_list_header .search-container input.search:placeholder-shown + .clear-filter {
            display: none;
        }

.settings_panel_list_header input.search {
        /* Without explicitly mentioning the height, it used be just a little
        bit short of 20px, since we need to maintain the same height with
        .dropdown-widget-button, we need to explicitly set the height here.
        We could set the height inside .user_filters but that would make
        the height a tiny bit inconsistent on pages without .user_filters. */
        height: 1.4em;
        float: right;
        font-size: 1em;
        max-width: 160px;
        margin-top: auto;
        margin-bottom: 12px;
    }

#add-new-custom-profile-field-form .disabled_label,#edit-custom-profile-field-form-modal .disabled_label {
        cursor: default;
        opacity: 0.7;
    }

/* Needed for settings_checkbox partial. */

#add-new-custom-profile-field-form .inline,#edit-custom-profile-field-form-modal .inline {
        display: inline;
    }

#admin_users_table .deactivated_user,
#admin_deactivated_users_table .active-user {
    color: hsl(0deg 0% 64%);
}

#admin_users_table .deactivated_user a,#admin_deactivated_users_table .active-user a {
        color: inherit;
    }

.settings_url_input,
.settings_text_input {
    padding: 4px 6px;
    color: var(--color-text-default);
    border-radius: 4px;
    border: 1px solid hsl(0deg 0% 80%);
    box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
    transition:
        border-color linear 0.2s,
        box-shadow linear 0.2s;
    margin-bottom: 10px;

    /* Subtract 2 * 6px (padding) + 2 * 1px (border) */
    width: calc(var(--modal-input-width) - 14px);
}

.settings_url_input:focus,.settings_text_input:focus {
        border-color: hsl(206deg 80% 62% / 80%);
        outline: 0;
        box-shadow:
            inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
            0 0 8px hsl(206deg 80% 62% / 60%);
    }

.empty-required-field {
    border: 1px solid hsl(3deg 57% 33%);
    border-radius: 5px;
}

.empty-required-field .settings_url_input,.empty-required-field .settings_text_input,.empty-required-field .settings_textarea,.empty-required-field .pill-container {
        margin-bottom: 0;
    }

.empty-required-field .settings_url_input:focus,.empty-required-field .settings_text_input:focus,.empty-required-field .settings_textarea:focus,.empty-required-field .pill-container:focus {
            border-color: hsl(206deg 80% 62% / 80%);
        }

#generate-integration-url-modal .inline {
        display: inline;
    }

#generate-integration-url-modal .integration-url {
        font-family: "Source Code Pro", monospace;
        background-color: var(--color-background-integration-url);
        padding: 10px;
        font-size: 0.85rem;
        border: 1px solid hsl(0deg 0% 87%);
        border-radius: 4px;
        overflow-wrap: break-word;
        word-break: break-all;
    }

#generate-integration-url-modal .integration-url-name-wrapper .dropdown-widget-button {
        width: 50%;
    }

#generate-integration-url-modal .integration-url-name-wrapper .dropdown_widget_value,#generate-integration-url-modal .integration-url-stream-wrapper .dropdown_widget_value {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

#generate-integration-url-modal .integration-url-stream-wrapper .dropdown-widget-button {
        width: 75%;
    }

#generate-integration-url-modal #stream-not-specified-notice {
        margin-top: -10px;
    }

.tab-switcher.org-user-settings-switcher {
    margin-bottom: 12px;
}

#admin-user-list .tab-switcher .ind-tab {
    width: 110px;
}

#admin-user-list .tab-switcher {
    margin-left: 0;
}

#data-exports .tab-switcher .ind-tab {
    width: 160px;
}

#admin_invites_table .check:disabled {
        opacity: 1;
    }

#admin_invites_table .check.hide {
            display: none;
        }

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/image_upload_widget.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* common CSS for all image upload widget's */
.image_upload_widget {
    position: relative;
    border-radius: 5px;
    box-shadow: 0 0 10px hsl(0deg 0% 0% / 10%);
    overflow: hidden;
}
.image_upload_widget .image-block {
        background-size: contain;
        height: 100%;
    }
.image_upload_widget .image-hover-background {
        content: "";
        background-color: hsl(0deg 0% 0% / 60%);
        height: 100%;
        width: 100%;
        z-index: 99;
        position: absolute;
        display: none;
        cursor: pointer;
    }
.image_upload_widget .image_upload_button {
        position: absolute;
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        text-align: center;
        justify-content: center;
        box-shadow: 0 0 10px hsl(0deg 0% 0% / 10%);
        z-index: 99;
    }
.image_upload_widget .image-delete-button {
        background: none;
        border: none;
        cursor: pointer;
        color: hsl(0deg 0% 75%);
        opacity: 0;
        padding: 0;
        position: absolute;
        font-size: 2rem;
        top: 10px;
        right: 10px;
        z-index: 99;
        line-height: 20px;
    }
.image_upload_widget .image-delete-button:focus:not(:focus-visible) {
            outline: none;
        }
.image_upload_widget .image-disabled-text {
        color: hsl(0deg 0% 100%);
        cursor: not-allowed;
        position: absolute;
        text-align: center;
        visibility: hidden;
        z-index: 99;
    }
.image_upload_widget .image-delete-text,.image_upload_widget .image-upload-text,.image_upload_widget .image-disabled-text {
        box-sizing: border-box;
        width: 100%;
        padding: 0 10px;
    }
.image_upload_widget .image-delete-button:focus,.image_upload_widget .image-delete-button:hover {
        color: hsl(0deg 0% 100%);
    }
.image_upload_widget .image-delete-button:hover ~ .image-upload-text {
        visibility: hidden;
    }
.image_upload_widget .image-delete-button:hover ~ .image-delete-text {
        visibility: visible;
    }
.image_upload_widget .image-delete-text {
        color: hsl(0deg 0% 100%);
        font-size: 0.85rem;
        position: absolute;
        visibility: hidden;
        z-index: 99;
    }
.image_upload_widget .image-upload-text {
        cursor: pointer;
        font-size: 0.85rem;
        color: hsl(0deg 0% 85%);
        position: absolute;
        z-index: 99;
        visibility: hidden;
    }
.image_upload_widget .image-upload-text:focus:not(:focus-visible) {
            outline: none;
        }
.image_upload_widget .image-upload-text:hover {
        color: hsl(0deg 0% 100%);
    }
.image_upload_widget .upload-spinner-background {
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: hsl(0deg 0% 10%);
        font-size: 0.8rem;
        width: 100%;
        opacity: 0.8;
        height: 100%;
        position: absolute;
        visibility: hidden;
        z-index: 99;
        cursor: pointer;
        border-radius: 5px;
    }
.image_upload_widget .hide {
        display: none;
    }
.image_upload_widget:hover .image-upload-text {
            visibility: visible;
        }
.image_upload_widget:hover .image-delete-button {
            opacity: 1;
        }
.image_upload_widget:hover .image-disabled-text {
            visibility: visible;
        }
.image_upload_widget:hover .image-hover-background {
            display: block;
        }

.user-avatar-section,
.realm-icon-section {
    margin: 20px 0;
}

.realm-logo-section {
    margin: 0 0 20px;
}

/* CSS related to settings page user avatar upload widget only */
#user-avatar-upload-widget .image-block {
        width: 200px;
        height: 200px;
    }

#user-avatar-source {
    font-size: 1em;
    z-index: 99;
    margin-top: 10px;
}

/* CSS related to settings page realm icon upload widget only */
#realm-icon-upload-widget {
    width: 100px;
    height: 100px;
    box-shadow: 0 0 10px hsl(0deg 0% 0% / 10%);
}
#realm-icon-upload-widget .image-delete-button {
        top: 5px;
        right: 5px;
    }

/* CSS related to settings page realm day/night logo upload widget only */
#realm-day-logo-upload-widget,
#realm-night-logo-upload-widget {
    width: 220px;
    height: 55px;
    text-align: center;
}
#realm-day-logo-upload-widget .image-delete-button,#realm-night-logo-upload-widget .image-delete-button {
        top: 5px;
        right: 5px;
    }

#realm-day-logo-upload-widget {
    /* Match to light-theme --color-background-navbar. */
    background-color: hsl(0deg 0% 97%);
    padding: 5px;
}

#realm-night-logo-upload-widget {
    /* Match to dark-theme --color-background-navbar. */
    background-color: hsl(0deg 0% 13%);
    padding: 5px;
}

.realm-logo-group {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.realm-logo-group .image_upload_button {
        top: 0;
        left: 0;
    }

/* CSS  related to upload widget's preview image */
.upload_widget_image_preview {
    object-fit: cover;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/subscriptions.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
#subs_page_loading_indicator {
    margin: 10px auto;
}

.member_list_loading_indicator,
.subscriber_list_loading_indicator {
    margin: 10px auto;
}

.member_list_loading_indicator:empty,
.subscriber_list_loading_indicator:empty {
    margin: 0;
}

.subscriptions div #response {
    overflow-wrap: break-word;
}

.subscription_settings .bootstrap-btn {
    border-radius: 2px;
}

.stream-email {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: "Source Code Pro", monospace;
    padding: 10px;
    font-size: 0.85em; /* 13.6px at 16px/em (previously 0.85rem) */
    background-color: var(--color-background-stream-email);
    border: 1px solid hsl(0deg 0% 87%);
    border-radius: 4px;
}

.stream-email .email-address {
    display: block;
    flex: 0 0 90%;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}

.stream-email .copy-email-address {
    font-size: 1.1765em; /* 16px at 13.6px/em */
}

.sub_setting_checkbox {
    display: flex;
}

.sub_setting_checkbox .control-label-disabled label.checkbox + label {
        cursor: not-allowed;
    }

.mute-note {
    font-size: 90%;
    opacity: 0.5;
}

.hide-mute-note {
    display: none;
}

.sub_setting_control {
    display: inline-block;
    margin-right: 10px;
}

#add_new_user_group {
    margin-left: auto;
    height: var(--settings-overlay-header-button-height);
}

.two-pane-settings-plus-button {
    font-weight: 400;
    position: relative;
    border: 1px solid var(--color-border-settings-plus-button);
    border-radius: 5px;
    background-color: var(--color-background-settings-plus-button);
    color: var(--color-text-settings-plus-button);
    margin: 0;
    height: 100%;
    width: var(--settings-overlay-header-button-height);
    display: flex;
    align-items: center;
    justify-content: center;
}

.two-pane-settings-plus-button:hover {
        border: 1px solid hsl(0deg 0% 47%);
    }

.two-pane-settings-plus-button .create_button_plus_sign {
        line-height: 1em;
        display: block;
        font-size: 1.2em;
        opacity: 0.8;
    }

.two-pane-settings-plus-button:disabled {
        /* Replicate disabled values */
        cursor: not-allowed;
        opacity: 0.5;
    }

#create_user_group_description,
#create_stream_description {
    width: calc(100% - 15px);
}

.user_group_creation_error,
.stream_creation_error,
#settings-topics-already-exist-error {
    display: none;
    margin-left: 2px;
    color: hsl(0deg 100% 50%);
}

/* TODO: Unify with settings.css definition */
h3.stream_setting_subsection_title,
h3.user_group_setting_subsection_title {
    display: inline-block;
    font-size: 1.5em;
    font-weight: normal;
    line-height: 1.5;
    margin: 4px 0;
}

h4.stream_setting_subsection_title {
    margin-bottom: 5px;
}

h4.stream_setting_subsection_title,
h4.user_group_setting_subsection_title {
    display: inline-block;
    font-size: 1.35em;
    font-weight: normal;
    line-height: 1.5;
}

.subscriber_list_settings_container.no-display {
    display: none;
}

.subscriber-list-settings-loading {
    display: flex;
    align-items: center;
    margin: auto;
    margin-top: 100px;
}

#people_to_add_in_group,
#people_to_add,
.member_list_settings_container,
.subscriber_list_settings_container {
    display: flex;
    flex-direction: column;
}

#people_to_add_in_group .input-group,#people_to_add .input-group,.member_list_settings_container:not(#does-not-exist) .input-group,.subscriber_list_settings_container:not(#does-not-exist) .input-group {
        margin-bottom: 10px;
    }

.add-group-member-loading-spinner,
.add-subscriber-loading-spinner {
    align-self: center;
}

.member-list-box,
.subscriber-list-box {
    text-align: center;
    border-left: 1px solid var(--color-border-table-subscriber-list);
    border-right: 1px solid var(--color-border-table-subscriber-list);
    border-radius: 4px;
}

.member-list-box .member_list_container,.subscriber-list-box .member_list_container,.member-list-box .subscriber_list_container,.subscriber-list-box .subscriber_list_container {
        position: relative;
        border-bottom: 1px solid var(--color-border-table-subscriber-list);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        max-height: var(--stream-subscriber-list-max-height);
        overflow: auto;
        text-align: left;
        -webkit-overflow-scrolling: touch;
    }

.member-list-box .member_list_container .member-list,.subscriber-list-box .member_list_container .member-list,.member-list-box .subscriber_list_container .member-list,.subscriber-list-box .subscriber_list_container .member-list,.member-list-box .member_list_container .subscriber-list,.subscriber-list-box .member_list_container .subscriber-list,.member-list-box .subscriber_list_container .subscriber-list,.subscriber-list-box .subscriber_list_container .subscriber-list {
            width: 100%;
            margin: auto;
        }

.member-list-box .member_list_container .member-list tbody,.subscriber-list-box .member_list_container .member-list tbody,.member-list-box .subscriber_list_container .member-list tbody,.subscriber-list-box .subscriber_list_container .member-list tbody,.member-list-box .member_list_container .subscriber-list tbody,.subscriber-list-box .member_list_container .subscriber-list tbody,.member-list-box .subscriber_list_container .subscriber-list tbody,.subscriber-list-box .subscriber_list_container .subscriber-list tbody {
                border-bottom: none;
            }

.member-list-box .member_list_container .member-list tr td,.subscriber-list-box .member_list_container .member-list tr td,.member-list-box .subscriber_list_container .member-list tr td,.subscriber-list-box .subscriber_list_container .member-list tr td,.member-list-box .member_list_container .subscriber-list tr td,.subscriber-list-box .member_list_container .subscriber-list tr td,.member-list-box .subscriber_list_container .subscriber-list tr td,.subscriber-list-box .subscriber_list_container .subscriber-list tr td,.member-list-box .member_list_container .member-list tr th,.subscriber-list-box .member_list_container .member-list tr th,.member-list-box .subscriber_list_container .member-list tr th,.subscriber-list-box .subscriber_list_container .member-list tr th,.member-list-box .member_list_container .subscriber-list tr th,.subscriber-list-box .member_list_container .subscriber-list tr th,.member-list-box .subscriber_list_container .subscriber-list tr th,.subscriber-list-box .subscriber_list_container .subscriber-list tr th {
                    padding: 4px 10px 4px 5px;
                    vertical-align: middle;
                }

.member-list-box .member_list_container .member-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .member_list_container .member-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .subscriber_list_container .member-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .subscriber_list_container .member-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .member_list_container .subscriber-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .member_list_container .subscriber-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .subscriber_list_container .subscriber-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .subscriber_list_container .subscriber-list tr td:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .member_list_container .member-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .member_list_container .member-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .subscriber_list_container .member-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .subscriber_list_container .member-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .member_list_container .subscriber-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .member_list_container .subscriber-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .subscriber_list_container .subscriber-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.subscriber-list-box .subscriber_list_container .subscriber-list tr th:first-of-type {
                        padding-left: 10px;
                    }

.member-list-box .member_list_container .member-list thead,.subscriber-list-box .member_list_container .member-list thead,.member-list-box .subscriber_list_container .member-list thead,.subscriber-list-box .subscriber_list_container .member-list thead,.member-list-box .member_list_container .subscriber-list thead,.subscriber-list-box .member_list_container .subscriber-list thead,.member-list-box .subscriber_list_container .subscriber-list thead,.subscriber-list-box .subscriber_list_container .subscriber-list thead {
                position: sticky;
                top: 0;
                z-index: 1;
            }

.member-list-box .member_list_container .member-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.subscriber-list-box .member_list_container .member-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.member-list-box .subscriber_list_container .member-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.subscriber-list-box .subscriber_list_container .member-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.member-list-box .member_list_container .subscriber-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.subscriber-list-box .member_list_container .subscriber-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.member-list-box .subscriber_list_container .subscriber-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.subscriber-list-box .subscriber_list_container .subscriber-list thead th:first-of-type {
                        border-top-left-radius: 4px;
                    }

.member-list-box .member_list_container .member-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.subscriber-list-box .member_list_container .member-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.member-list-box .subscriber_list_container .member-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.subscriber-list-box .subscriber_list_container .member-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.member-list-box .member_list_container .subscriber-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.subscriber-list-box .member_list_container .subscriber-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.member-list-box .subscriber_list_container .subscriber-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.subscriber-list-box .subscriber_list_container .subscriber-list thead th:last-of-type {
                        border-top-right-radius: 4px;
                    }

.member-list-box .member_list_container .member-list .hidden-subscriber-email,.subscriber-list-box .member_list_container .member-list .hidden-subscriber-email,.member-list-box .subscriber_list_container .member-list .hidden-subscriber-email,.subscriber-list-box .subscriber_list_container .member-list .hidden-subscriber-email,.member-list-box .member_list_container .subscriber-list .hidden-subscriber-email,.subscriber-list-box .member_list_container .subscriber-list .hidden-subscriber-email,.member-list-box .subscriber_list_container .subscriber-list .hidden-subscriber-email,.subscriber-list-box .subscriber_list_container .subscriber-list .hidden-subscriber-email {
                font-style: italic;
            }

.member-list-box .member_list_container .member-list .strikethrough,.subscriber-list-box .member_list_container .member-list .strikethrough,.member-list-box .subscriber_list_container .member-list .strikethrough,.subscriber-list-box .subscriber_list_container .member-list .strikethrough,.member-list-box .member_list_container .subscriber-list .strikethrough,.subscriber-list-box .member_list_container .subscriber-list .strikethrough,.member-list-box .subscriber_list_container .subscriber-list .strikethrough,.subscriber-list-box .subscriber_list_container .subscriber-list .strikethrough {
                -webkit-text-decoration: line-through;
                text-decoration: line-through;
            }

.subscriber-name,
.subscriber-email {
    padding: 5px;
}

.subscriber-email {
    margin-left: 20px;
    padding-right: 8px;
}

.subscriber_list_add,
.member_list_add {
    width: 100%;
    margin: 0 0 10px;
}

.user_group_subscription_request_result a,.stream_subscription_request_result a {
        color: inherit;
    }

.user_group_subscription_request_result,
.stream_subscription_request_result {
    margin-bottom: 10px;
}

.member-search,
.subscriber-search {
    margin: 10px 0 0;
}

.member-search .search,.subscriber-search .search {
        max-width: 160px;
    }

@media (max-width: 320px) {

.member-search,
.subscriber-search {
        float: none;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin: 0 0 5px;
}
    }

.subscriber_list_add .form-inline,
.member_list_add .form-inline {
    margin-bottom: 0;
}

.add_subscribers_container,
.add_members_container {
    display: inline-flex;
    width: 100%;
    align-items: center;

    /* We need on click events to fire on this input for our typeahead.
       This ensures that the input occupies space in the parent
       container. */
}

.add_subscribers_container .input,.add_members_container .input {
        flex-grow: 1;
    }

.add_subscriber_button_wrapper,
.add_member_button_wrapper {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    place-items: center;
}

.add_subscriber_button_wrapper .check,.add_member_button_wrapper .check,.add_subscriber_button_wrapper .add-subscriber-button,.add_member_button_wrapper .add-subscriber-button,.add_subscriber_button_wrapper .add-member-button,.add_member_button_wrapper .add-member-button {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
        z-index: 1;
        visibility: visible;
        max-height: 1.75em;
        width: 100%;
        position: relative;
    }

.add_subscriber_button_wrapper .check.hidden-below,.add_member_button_wrapper .check.hidden-below,.add_subscriber_button_wrapper .add-subscriber-button.hidden-below,.add_member_button_wrapper .add-subscriber-button.hidden-below,.add_subscriber_button_wrapper .add-member-button.hidden-below,.add_member_button_wrapper .add-member-button.hidden-below {
            visibility: hidden;
            z-index: -1;
        }

.add_subscribers_container .add_subscriber_button_wrapper,
.add_members_container .add_member_button_wrapper {
    padding-left: 5px;
}

.add-subscribers-subtitle,
.add-members-subtitle {
    opacity: 0.7;
}

.choose-subscribers-label {
    display: inline;
}

.two-pane-settings-container .two-pane-settings-header .fa-chevron-left {
    position: relative;
    transform: translate(-50px, 0);
    opacity: 0;
    color: hsl(0deg 0% 67%);

    float: left;
    padding: 2px 10px;

    cursor: pointer;
    visibility: hidden;

    transition: 0.3s ease;
    transition-property: opacity, transform;
}

.two-pane-settings-container
    .two-pane-settings-header.slide-left
    .fa-chevron-left,
#settings_overlay_container
    .settings-header.mobile.slide-left
    .fa-chevron-left {
    transform: translate(0, 0);
    opacity: 1;
}

.group-assigned-permissions .subsection-header h3 {
            font-size: 1.5em;
            font-weight: normal;
            line-height: 1.5;
            display: inline;
        }

.group-assigned-permissions .subsection-header h3 .channel-privacy-type-icon {
                margin-right: 4px;
            }

.group-assigned-permissions .subsection-settings {
        margin-top: 10px;
    }

.group-assigned-permissions .subsection-settings .input-group {
            margin-bottom: 1.25em; /* 20px at 16px/em */
        }

.group-assigned-permissions .subsection-settings .input-group.control-label-disabled {
                width: -moz-fit-content;
                width: fit-content;
            }

.group-assigned-permissions .no-permissions-for-group-text {
        font-size: 1.5em;
    }

.group-assigned-permissions .inline {
        display: inline;
    }

.two-pane-settings-container .two-pane-settings-subheader {
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--color-border-modal-bar);
    grid-area: settings-overlay-subheader;
}

.two-pane-settings-container .two-pane-settings-subheader .left {
        align-self: start;
    }

.two-pane-settings-container .two-pane-settings-subheader .left,.two-pane-settings-container .two-pane-settings-subheader .right {
        display: flex;
        justify-content: center;
    }

.two-pane-settings-container .two-pane-settings-subheader .list-toggler-container {
        flex-wrap: wrap;
        padding: 8px;
        display: flex;
        justify-content: end;
        flex-grow: 1;
        gap: 5px;
    }

.two-pane-settings-container .two-pane-settings-subheader .tab-switcher.stream_sorter_toggle {
        margin-left: auto;
    }

.two-pane-settings-container .two-pane-settings-subheader .tab-switcher,.two-pane-settings-container .two-pane-settings-subheader #add_new_subscription {
        margin: 0;
        height: var(--settings-overlay-header-button-height);
    }

.two-pane-settings-container .two-pane-settings-subheader .display-type {
        display: flex;
        justify-content: center;
        align-items: center;
        font-weight: 600;
        padding: 10px;
        overflow: hidden;
    }

.two-pane-settings-container .two-pane-settings-subheader .display-type a {
            color: inherit;
        }

.two-pane-settings-container .two-pane-settings-subheader .display-type a:hover {
                color: inherit;
                -webkit-text-decoration: none;
                text-decoration: none;
            }

.two-pane-settings-container .two-pane-settings-subheader .display-type.preview::after {
            content: "Preview";
        }

.two-pane-settings-container .two-pane-settings-subheader .display-type.preferences::after {
            content: "Preferences";
        }

.two-pane-settings-container .two-pane-settings-subheader .display-type .stream-info-title,.two-pane-settings-container .two-pane-settings-subheader .display-type .user-group-info-title {
            display: none;
            font-size: 1.5em; /* 21px at 14px/em */
            line-height: 1.25;
            font-weight: 600;
            overflow-wrap: break-word;
            line-clamp: 2;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

.two-pane-settings-container .two-pane-settings-subheader .display-type .stream-info-title.showing-info-title,.two-pane-settings-container .two-pane-settings-subheader .display-type .user-group-info-title.showing-info-title {
                display: -webkit-box;
            }

.two-pane-settings-container .two-pane-settings-subheader .display-type .stream-info-title .large-icon,.two-pane-settings-container .two-pane-settings-subheader .display-type .user-group-info-title .large-icon {
                display: inline-block;
                margin-left: 5px;
            }

.two-pane-settings-container .two-pane-settings-subheader .display-type .stream-info-title .large-icon .zulip-icon,.two-pane-settings-container .two-pane-settings-subheader .display-type .user-group-info-title .large-icon .zulip-icon {
                    font-size: 0.75em; /* 18px at 24px/em */
                }

.two-pane-settings-container .two-pane-settings-subheader .display-type .user-group-info-title {
            margin-left: 5px;
        }

.two-pane-settings-container .two-pane-settings-subheader .display-type .deactivated-user-group-icon-right {
            margin-right: 5px;
        }

.two-pane-settings-container {
    display: grid;
    grid-template:
        "settings-overlay-header   " var(--settings-overlay-header-height)
        "settings-overlay-subheader" minmax(
            var(--settings-overlay-subheader-height),
            max-content
        )
        "settings-overlay-body     " minmax(0, 1fr) / 100%;
    height: 95%;
    border-radius: 4px;
    padding: 0;
    width: 97%;
    position: relative;
    overflow: hidden;
    max-width: 1200px;
    max-height: var(--overlay-container-max-height);
}

.two-pane-settings-container .list-toggler-container .tab-switcher .ind-tab {
        width: auto;
        display: flex;
        padding: 0 10px;
    }

.two-pane-settings-container .list-toggler-container .tab-switcher .ind-tab .fa {
            font-size: 1em;
        }

.two-pane-settings-container .two-pane-settings-header {
        grid-area: settings-overlay-header;
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-transform: uppercase;
        font-weight: 700;
        background-color: var(--color-background-modal-bar);
        border-bottom: 1px solid var(--color-border-modal-bar);
    }

.two-pane-settings-container .two-pane-settings-header .exit {
            font-weight: 600;
            color: hsl(0deg 0% 67%);
            cursor: pointer;
        }

.two-pane-settings-container .exit-sign {
        font-size: 1.5em;
        margin-right: 0.7142em; /* 10px at 14px em */
        font-weight: 600;
        cursor: pointer;
    }

.two-pane-settings-container .two-pane-settings-body {
        display: flex;
    }

.two-pane-settings-container .left .no-streams-to-show,.two-pane-settings-container .left .no-groups-to-show,.two-pane-settings-container .right .nothing-selected .create-stream-button-container {
        display: block;
        text-align: center;
        font-size: 1em;
        margin-left: 2em;
        margin-right: 2em;
    }

.two-pane-settings-container .left .no-streams-to-show:not(.does-not-exist) .settings-empty-option-text,.two-pane-settings-container .left .no-groups-to-show:not(.does-not-exist) .settings-empty-option-text,.two-pane-settings-container .right .nothing-selected .create-stream-button-container .settings-empty-option-text {
            color: var(--color-text-item);
        }

.two-pane-settings-container .left .no-streams-to-show,.two-pane-settings-container .left .no-groups-to-show {
        margin-top: calc(45vh - 75px);
    }

.two-pane-settings-container .right .nothing-selected {
        padding: 5px 5px 0;
    }

.two-pane-settings-container .right .nothing-selected .stream-info-banner a,.two-pane-settings-container .right .nothing-selected .group-info-banner a {
            color: inherit;
        }

.two-pane-settings-container .right .nothing-selected .create-stream-button-container {
            margin-top: calc(45vh - 128px);
        }

.two-pane-settings-container .right .nothing-selected .create-group-button-container {
            margin-top: calc(45vh - 134px);
            text-align: center;
        }

.two-pane-settings-container .right .nothing-selected .create-group-button-container .settings-empty-option-text {
                color: var(--color-text-item);
            }

.two-pane-settings-container .right .nothing-selected .create-group-button-container .upgrade-or-sponsorship-tip,.two-pane-settings-container .right .nothing-selected .create-group-button-container .upgrade-tip {
                /* Center tip in parent container */
                margin-left: auto;
                margin-right: auto;
            }

.two-pane-settings-container .left {
        width: 40%;
    }

.two-pane-settings-container .right {
        width: calc(60% + 1px);
        border-left: 1px solid var(--color-border-modal-bar);
        box-sizing: border-box;
    }

.two-pane-settings-container .right .nothing-selected .create_stream_button,.two-pane-settings-container .right .nothing-selected .create_user_group_button {
            padding: 6px 10px 8px;
            display: block;
            margin: 0 auto 10px;
        }

.two-pane-settings-container .right .main-view-banner.group_deactivated {
            margin-bottom: 10px;
        }

.two-pane-settings-container input.small[type="text"] {
        border: 1px solid hsl(0deg 0% 80%);
        border-radius: 4px;
        padding: 3px;
        outline: none;
        color: hsl(0deg 0% 27%);
        text-align: center;
    }

.two-pane-settings-container input.small[type="text"]:focus {
            text-align: left;
        }

.two-pane-settings-container input.small[type="text"]:valid {
            text-align: left;
        }

#search_stream_name,
#search_group_name {
    box-shadow: none;
    padding-right: 28px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    grid-column: search-input-start / clear-search-end;
    grid-row: search-input;
}

.stream_name_search_section,
.group_name_search_section {
    padding: 8px 10px;
    display: grid;
    grid-template:
        "search-input clear-search dropdown-widget" auto / minmax(0, 1fr)
        30px;
    border-bottom: 1px solid var(--color-border-modal-bar);
}

#stream_settings_filter_widget {
    margin-left: 10px;
    gap: 3px;
    width: auto;
}

.stream_settings_filter_container.hide_filter {
    display: none;
}

#user_group_visibility_settings_widget {
    grid-area: more-options-button;
    margin-left: 10px;
    display: flex;
    gap: 3px;
    width: auto;
}

.user-groups-list,
.streams-list {
    position: relative;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}

.left .group-name-wrapper .fa-ban,
.right .group-name .fa-ban {
    font-size: 0.8em;
    opacity: 0.6;
}

.deactivated-user-group-icon-right {
    margin-left: 3px;
    opacity: 0.6;
}

.left .group-name-wrapper,
.right .group-name {
    display: flex;
    gap: 3px;
    align-items: center;
}

.user-groups-list.hide-deactivated-user-groups .deactivated-group {
    display: none;
}

.user-groups-list.hide-active-user-groups .group-row:not(.deactivated-group) {
    display: none;
}

.user_group_visibility_settings-dropdown-list-container .dropdown-list-wrapper {
    min-width: 11em;
}

#search_group_name:placeholder-shown + #clear_search_group_name {
    visibility: hidden;
}

#search_stream_name:placeholder-shown + #clear_search_stream_name {
    visibility: hidden;
}

.stream-title {
    font-size: 1.3em;
    font-weight: 400;
}

.user-group-creation-body section,.stream-creation-body section {
        margin-bottom: 20px;
    }

.user-group-creation-body #announce-new-stream,.stream-creation-body #announce-new-stream {
        margin: 20px auto;
    }

.stream-row,
.group-row {
    padding: 0.9375em 0.625em 0.6875em; /* 15px 10px 11px at 16px font size */
    border-bottom: 1px solid var(--color-border-modal-bar);
    cursor: pointer;
    display: flex;
    align-items: center;
}

.stream-row .check,.group-row .check {
        width: 1.5625em; /* 25px at 16px font size */
        height: 1.5625em; /* 25px at 16px font size */
        margin-right: 0.75em; /* 12px at 16px font size */
        background-size: 60% auto;
        background-repeat: no-repeat;
        background-position: center center;
        display: flex;
        justify-content: center;
    }

.stream-row .check .sub-unsub-icon,.group-row .check .sub-unsub-icon {
            display: flex;
            height: 100%;
            align-items: center;
            /* This color is used in .subscriber-check-icon of the help
               center to make the icon color same as the web app. Do change
               the color there when changing the color here */
            color: var(--color-stream-group-row-plus-icon);
            font-size: 1.0938em; /* 70% of 1.5625em */
        }

.stream-row .check .sub-unsub-icon.hide,.group-row .check .sub-unsub-icon.hide {
                display: none;
            }

.stream-row .check.checked:hover .sub-unsub-icon,.group-row .check.checked:hover .sub-unsub-icon {
            color: var(--color-stream-group-row-checked-icon-hover);
        }

.stream-row .check.not-direct-member .sub-unsub-icon,.group-row .check.not-direct-member .sub-unsub-icon {
                cursor: default;
            }

.stream-row .check.disabled:not(.checked) .sub-unsub-icon,.group-row .check.disabled:not(.checked) .sub-unsub-icon {
                /* Change opacity to 50% in dark mode */
                color: var(--color-stream-group-row-plus-icon-disabled);
            }

.stream-row .check.disabled .sub-unsub-icon,.group-row .check.disabled .sub-unsub-icon {
                color: var(--color-stream-group-row-checked-icon-disabled);
                cursor: not-allowed;
            }

.stream-row .check .sub_unsub_status,.group-row .check .sub_unsub_status,.stream-row .check .join_leave_status,.group-row .check .join_leave_status {
            display: inline-block !important;
            height: auto !important;
            width: auto !important;
        }

.stream-row .check .sub_unsub_status .loading_indicator_spinner,.group-row .check .sub_unsub_status .loading_indicator_spinner,.stream-row .check .join_leave_status .loading_indicator_spinner,.group-row .check .join_leave_status .loading_indicator_spinner {
                width: 100%;
                height: 100%;
                margin: 0;
            }

.stream-row .check .sub_unsub_status .loading_indicator_spinner svg path,.group-row .check .sub_unsub_status .loading_indicator_spinner svg path,.stream-row .check .join_leave_status .loading_indicator_spinner svg path,.group-row .check .join_leave_status .loading_indicator_spinner svg path {
                fill: hsl(178deg 100% 40%);
            }

.stream-row .checked .sub-unsub-icon,.group-row .checked .sub-unsub-icon {
        /* This color is used in .subscriber-check-icon of the help
           center to make the icon color same as the web app. Do change
           the color there when changing the color here */
        color: var(--color-stream-group-row-checked-icon);
    }

.stream-row .check:not(.checked):not(.disabled):hover .sub-unsub-icon,.group-row .check:not(.checked):not(.disabled):hover .sub-unsub-icon,.active.stream-row .check:not(.checked):not(.disabled):hover .sub-unsub-icon,.active.group-row .check:not(.checked):not(.disabled):hover .sub-unsub-icon {
        color: var(--color-stream-group-row-plus-icon-hover);
    }

.stream-row .icon,.group-row .icon {
        width: 2.1875em; /* 35px at 16px font size */
        height: 2.1875em; /* 35px at 16px font size */
        margin-right: 0.75em; /* 12px at 16px font size */
        background-color: hsl(300deg 100% 25%);
        border-radius: 4px;
        color: hsl(0deg 0% 100%);
    }

.stream-row .icon .symbol,.group-row .icon .symbol {
            font-weight: 600;
            font-size: 1.1em;
        }

.stream-row .icon .hashtag,.group-row .icon .hashtag {
            font-size: 1.4em;
            font-weight: 600;
        }

.stream-row .sub-info-box,.group-row .sub-info-box {
        /* 5.5em = width of checkmark (1.5625em) + right margin for checkmark (0.75em)
        + width of privacy icon (2.1875em) + right margin for privacy icon (0.75em) +
        right margin for this element (0.25em) */
        width: calc(100% - 5.5em);
    }

.stream-row .group-info-box,.group-row .group-info-box {
        /* 2.5625em = width of checkmark (1.5625em) + right margin for checkmark (0.75em)
        + right margin for this element (0.25em) */
        width: calc(100% - 2.5625em);
    }

.stream-row .sub-info-box,.group-row .sub-info-box,.stream-row .group-info-box,.group-row .group-info-box {
        margin-right: 0.25em; /* 4px at 16px font size */
    }

.stream-row .sub-info-box .top-bar,.group-row .sub-info-box .top-bar,.stream-row .group-info-box .top-bar,.group-row .group-info-box .top-bar,.stream-row .sub-info-box .bottom-bar,.group-row .sub-info-box .bottom-bar,.stream-row .group-info-box .bottom-bar,.group-row .group-info-box .bottom-bar {
            display: flex;
            justify-content: space-between;
            position: relative;
        }

.stream-row .sub-info-box .top-bar .group-name-wrapper,.group-row .sub-info-box .top-bar .group-name-wrapper,.stream-row .group-info-box .top-bar .group-name-wrapper,.group-row .group-info-box .top-bar .group-name-wrapper {
            overflow: hidden;
        }

.stream-row .sub-info-box .top-bar .stream-name,.group-row .sub-info-box .top-bar .stream-name,.stream-row .group-info-box .top-bar .stream-name,.group-row .group-info-box .top-bar .stream-name,.stream-row .sub-info-box .top-bar .group-name,.group-row .sub-info-box .top-bar .group-name,.stream-row .group-info-box .top-bar .group-name,.group-row .group-info-box .top-bar .group-name,.stream-row .sub-info-box .bottom-bar .description,.group-row .sub-info-box .bottom-bar .description,.stream-row .group-info-box .bottom-bar .description,.group-row .group-info-box .bottom-bar .description {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

.stream-row .sub-info-box .top-bar .stream-name,.group-row .sub-info-box .top-bar .stream-name,.stream-row .group-info-box .top-bar .stream-name,.group-row .group-info-box .top-bar .stream-name,.stream-row .sub-info-box .bottom-bar .description,.group-row .sub-info-box .bottom-bar .description,.stream-row .group-info-box .bottom-bar .description,.group-row .group-info-box .bottom-bar .description {
            margin-right: 0.75em; /* 12px at 16px font size */
        }

.stream-row .sub-info-box .top-bar .subscriber-count,.group-row .sub-info-box .top-bar .subscriber-count,.stream-row .group-info-box .top-bar .subscriber-count,.group-row .group-info-box .top-bar .subscriber-count,.stream-row .sub-info-box .bottom-bar .stream-message-count,.group-row .sub-info-box .bottom-bar .stream-message-count,.stream-row .group-info-box .bottom-bar .stream-message-count,.group-row .group-info-box .bottom-bar .stream-message-count {
            white-space: nowrap;
            color: hsl(0deg 0% 67%);
        }

.stream-row .sub-info-box .top-bar .subscriber-count-text,.group-row .sub-info-box .top-bar .subscriber-count-text,.stream-row .group-info-box .top-bar .subscriber-count-text,.group-row .group-info-box .top-bar .subscriber-count-text,.stream-row .sub-info-box .top-bar .subscriber-count-lock,.group-row .sub-info-box .top-bar .subscriber-count-lock,.stream-row .group-info-box .top-bar .subscriber-count-lock,.group-row .group-info-box .top-bar .subscriber-count-lock,.stream-row .sub-info-box .bottom-bar .stream-message-count-text,.group-row .sub-info-box .bottom-bar .stream-message-count-text,.stream-row .group-info-box .bottom-bar .stream-message-count-text,.group-row .group-info-box .bottom-bar .stream-message-count-text {
            margin-right: 0.3125em; /* 5px at 16px font size */
        }

.stream-row .sub-info-box .top-bar .stream-name,.group-row .sub-info-box .top-bar .stream-name,.stream-row .group-info-box .top-bar .stream-name,.group-row .group-info-box .top-bar .stream-name {
            font-weight: 600;
        }

.stream-row .sub-info-box .bottom-bar,.group-row .sub-info-box .bottom-bar,.stream-row .group-info-box .bottom-bar,.group-row .group-info-box .bottom-bar {
            line-height: 1.5;
        }

.active.stream-row,.active.group-row {
        background-color: var(--color-active-row-modal);
    }

.stream-row::selection {
        background-color: transparent;
    }

.group-row::selection {
        background-color: transparent;
    }

.stream-row .icon .hashtag::selection {
        background-color: transparent;
    }

.group-row .icon .hashtag::selection {
        background-color: transparent;
    }

.stream-row .sub-info-box .description:empty::after,
.group-row .group-info-box .description:empty::after {
    content: attr(data-no-description);
    font-style: italic;
    color: hsl(0deg 0% 67%);
}

.subscriber_list_settings .add_subscribers_disabled,
.member_list_settings .add_members_disabled {
    cursor: not-allowed;
}

.subscriber_list_settings .add_subscribers_disabled .pill-container,.member_list_settings .add_members_disabled .pill-container {
        cursor: not-allowed;
        pointer-events: none;
    }

.subscriber_list_settings button[disabled],.member_list_settings button[disabled] {
        pointer-events: none;
    }

.org-permissions-form .group_setting_disabled,.group-permissions .group_setting_disabled,.advanced-configurations-container .group_setting_disabled {
        cursor: not-allowed;
        /* This ensures that we do not see the not allowed cursor in the
           extra space of a div */
        width: -moz-fit-content;
        width: fit-content;

        /* This specific rules are needed to override the default settings
           of these elements */
    }

.org-permissions-form .group_setting_disabled .pill-container,.group-permissions .group_setting_disabled .pill-container,.advanced-configurations-container .group_setting_disabled .pill-container,.org-permissions-form .group_setting_disabled .group-setting-label,.group-permissions .group_setting_disabled .group-setting-label,.advanced-configurations-container .group_setting_disabled .group-setting-label {
            cursor: not-allowed;
        }

.org-permissions-form .group_setting_disabled .pill-container,.group-permissions .group_setting_disabled .pill-container,.advanced-configurations-container .group_setting_disabled .pill-container {
            opacity: 0.7;
        }

.org-permissions-form .group_setting_disabled .pill-container .pill .exit,.group-permissions .group_setting_disabled .pill-container .pill .exit,.advanced-configurations-container .group_setting_disabled .pill-container .pill .exit {
                    display: none;
                }

.org-permissions-form .group_setting_disabled .pill-container .input,.group-permissions .group_setting_disabled .pill-container .input,.advanced-configurations-container .group_setting_disabled .pill-container .input {
                pointer-events: none;
            }

#settings_page,
.two-pane-settings-overlay {
    container: settings-overlay / inline-size;
}

.two-pane-settings-overlay .tab-switcher {
        display: flex;
        flex-wrap: nowrap;
        height: var(--settings-overlay-header-button-height);
    }

.two-pane-settings-overlay #user-group-creation,.two-pane-settings-overlay #stream-creation {
        overflow: auto;
        outline: none;
        -webkit-overflow-scrolling: touch;
    }

.two-pane-settings-overlay #user-group-creation .user-group-creation-body,.two-pane-settings-overlay #stream-creation .user-group-creation-body,.two-pane-settings-overlay #user-group-creation .stream-creation-body,.two-pane-settings-overlay #stream-creation .stream-creation-body {
            padding: 15px 15px 0;
        }

.two-pane-settings-overlay #user-group-creation .settings-sticky-footer,.two-pane-settings-overlay #stream-creation .settings-sticky-footer {
            display: flex;
            justify-content: space-between;
            padding: 9px 15px;
            text-align: right;
            background-color: var(--color-background-modal-bar);
            border-top: 1px solid var(--color-border-modal-bar);
        }

@container settings-overlay (width > 57.142857142857146em) {
            .two-pane-settings-overlay #user-group-creation .settings-sticky-footer,.two-pane-settings-overlay #stream-creation .settings-sticky-footer {
                border-radius: 0 0 6px;
            }
        }

.two-pane-settings-overlay #user-group-creation .create_user_group_member_list_header,.two-pane-settings-overlay #stream-creation .create_user_group_member_list_header,.two-pane-settings-overlay #user-group-creation .create_stream_subscriber_list_header,.two-pane-settings-overlay #stream-creation .create_stream_subscriber_list_header {
            margin-top: 10px;
            margin-bottom: 3px;
        }

.two-pane-settings-overlay #user-group-creation .create_user_group_member_list_header h5,.two-pane-settings-overlay #stream-creation .create_user_group_member_list_header h5,.two-pane-settings-overlay #user-group-creation .create_stream_subscriber_list_header h5,.two-pane-settings-overlay #stream-creation .create_stream_subscriber_list_header h5 {
                display: inline-block;
            }

.two-pane-settings-overlay #user-group-creation .add-user-list-filter,.two-pane-settings-overlay #stream-creation .add-user-list-filter {
            width: 140px;
            float: right;
        }

.two-pane-settings-overlay #user-group-creation #user_group_creation_form,.two-pane-settings-overlay #stream-creation #user_group_creation_form,.two-pane-settings-overlay #user-group-creation #stream_creation_form,.two-pane-settings-overlay #stream-creation #stream_creation_form {
            margin: 0;
        }

.two-pane-settings-overlay #user-group-creation #user_group_creation_form .user_group_create_info.show,.two-pane-settings-overlay #stream-creation #user_group_creation_form .user_group_create_info.show,.two-pane-settings-overlay #user-group-creation #stream_creation_form .user_group_create_info.show,.two-pane-settings-overlay #stream-creation #stream_creation_form .user_group_create_info.show {
                margin: 5px;
            }

.two-pane-settings-overlay #user-group-creation #user_group_creation_form #user_group_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #stream-creation #user_group_creation_form #user_group_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #user-group-creation #stream_creation_form #user_group_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #stream-creation #stream_creation_form #user_group_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #user-group-creation #user_group_creation_form #stream_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #stream-creation #user_group_creation_form #stream_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #user-group-creation #stream_creation_form #stream_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #stream-creation #stream_creation_form #stream_creating_indicator:not(:empty) {
                    position: absolute;
                    width: 100% !important;
                    height: calc(100% - 105px) !important;
                    display: flex !important;
                    justify-content: center;
                    align-items: center;
                    background-color: var(
                        --color-background-non-empty-overlay-indicator
                    );
                    z-index: 1;
                }

.two-pane-settings-overlay #user-group-creation #user_group_creation_form #user_group_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #stream-creation #user_group_creation_form #user_group_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #user-group-creation #stream_creation_form #user_group_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #stream-creation #stream_creation_form #user_group_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #user-group-creation #user_group_creation_form #stream_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #stream-creation #user_group_creation_form #stream_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #user-group-creation #stream_creation_form #stream_creating_indicator .loading_indicator_text,.two-pane-settings-overlay #stream-creation #stream_creation_form #stream_creating_indicator .loading_indicator_text {
                    font-weight: 400;
                }

.two-pane-settings-overlay .inner-box {
        margin: 18px;
    }

.two-pane-settings-overlay .group_settings_header,.two-pane-settings-overlay .stream_settings_header {
        white-space: nowrap;
        display: flex;
        margin-left: 18px;
    }

.two-pane-settings-overlay .group_settings_header .tab-container .tab-switcher,.two-pane-settings-overlay .stream_settings_header .tab-container .tab-switcher {
                margin: 0;
            }

.two-pane-settings-overlay .group_settings_header .tab-container .ind-tab,.two-pane-settings-overlay .stream_settings_header .tab-container .ind-tab {
                padding: 0 4px;
                min-width: 5.7142em; /* 80px at 14px/em */
                width: auto;
                display: flex;
            }

.two-pane-settings-overlay .group_settings_header .button-group,.two-pane-settings-overlay .stream_settings_header .button-group {
            padding-top: 5px;
            margin-left: auto;
            margin-right: 18px;
            height: var(--settings-overlay-header-button-height);
            display: flex;
        }

.two-pane-settings-overlay .group_settings_header .button-group .subscribe-button,.two-pane-settings-overlay .stream_settings_header .button-group .subscribe-button,.two-pane-settings-overlay .group_settings_header .button-group .join_leave_button,.two-pane-settings-overlay .stream_settings_header .button-group .join_leave_button,.two-pane-settings-overlay .group_settings_header .button-group #preview-stream-button,.two-pane-settings-overlay .stream_settings_header .button-group #preview-stream-button {
                height: 100%;
                margin-left: 3px;
            }

.two-pane-settings-overlay .group-header,.two-pane-settings-overlay .stream-header {
        white-space: nowrap;
        padding-top: 5px;
        display: flex;
        align-items: center;
    }

.two-pane-settings-overlay .group-header .group-name-wrapper,.two-pane-settings-overlay .stream-header .group-name-wrapper,.two-pane-settings-overlay .group-header .stream-name,.two-pane-settings-overlay .stream-header .stream-name {
            position: relative;
            font-size: 1.5em;
            font-weight: 600;
            white-space: nowrap;
            max-width: 90%;
            flex: auto;
            min-width: 0;
            overflow-x: clip;
            text-overflow: ellipsis;
        }

.two-pane-settings-overlay .group-header .group-name-wrapper .group-name,.two-pane-settings-overlay .stream-header .group-name-wrapper .group-name,.two-pane-settings-overlay .group-header .stream-name .group-name,.two-pane-settings-overlay .stream-header .stream-name .group-name,.two-pane-settings-overlay .group-header .group-name-wrapper .sub-stream-name,.two-pane-settings-overlay .stream-header .group-name-wrapper .sub-stream-name,.two-pane-settings-overlay .group-header .stream-name .sub-stream-name,.two-pane-settings-overlay .stream-header .stream-name .sub-stream-name {
                display: block;
                width: 100%;
                overflow: hidden;
                text-overflow: ellipsis;
            }

.two-pane-settings-overlay .group-header #open_group_info_modal,.two-pane-settings-overlay .stream-header #open_group_info_modal {
            display: flex;
            align-items: center;
        }

.two-pane-settings-overlay .group-header .button-group,.two-pane-settings-overlay .stream-header .button-group {
            margin-left: auto;

            /* This icon is narrower in width, we have to explicitly
               set it's width to 1em so that it vertically aligns with
               other buttons near it. */
        }

.two-pane-settings-overlay .group-header .button-group .fa-pencil,.two-pane-settings-overlay .stream-header .button-group .fa-pencil {
                width: 1em;
            }

.two-pane-settings-overlay .group-header .button-group .deactivate,.two-pane-settings-overlay .stream-header .button-group .deactivate,.two-pane-settings-overlay .group-header .button-group .reactivate,.two-pane-settings-overlay .stream-header .button-group .reactivate {
                margin-right: 3px;
                -webkit-text-decoration: none;
                text-decoration: none;
            }

.two-pane-settings-overlay .group-header .large-icon,.two-pane-settings-overlay .stream-header .large-icon {
            display: flex;
            margin-right: 5px;
        }

.two-pane-settings-overlay .group-header .large-icon.hash::after {
                top: -1px;
                font-size: 1.09em;
                font-weight: 700;
            }

.two-pane-settings-overlay .stream-header .large-icon.hash::after {
                top: -1px;
                font-size: 1.09em;
                font-weight: 700;
            }

.two-pane-settings-overlay .group-header .large-icon .zulip-icon,.two-pane-settings-overlay .stream-header .large-icon .zulip-icon {
                font-size: 1.2857em; /* 18px at 14px/em */
            }

.two-pane-settings-overlay .group-header .group_change_property_info,.two-pane-settings-overlay .stream-header .group_change_property_info,.two-pane-settings-overlay .group-header .stream_change_property_info,.two-pane-settings-overlay .stream-header .stream_change_property_info {
            vertical-align: top;
            margin: 0 5px 0 0;
        }

.two-pane-settings-overlay .group-description-wrapper,.two-pane-settings-overlay .stream-description {
        -webkit-hyphens: auto;
                hyphens: auto;
        margin-bottom: 5px;
    }

.two-pane-settings-overlay .group-description-wrapper .no-description,.two-pane-settings-overlay .stream-description .no-description {
            font-style: italic;
            color: hsl(0deg 0% 67%);
        }

.two-pane-settings-overlay .checkmark {
        display: none;
        margin-left: 5px;
        color: hsl(0deg 0% 67%);

        cursor: pointer;
    }

.two-pane-settings-overlay .checkmark.show {
            display: block;
        }

.two-pane-settings-overlay .hash::after {
        position: relative;
        content: "#";
    }

.two-pane-settings-overlay .settings {
        position: relative;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

.two-pane-settings-overlay .settings .tab-container {
            padding-top: 5px;
        }

.two-pane-settings-overlay .subscription_settings {
        display: none;
        position: relative;
        width: 100%;
        margin: 0 auto;
        border-radius: 4px;
        top: -1px;
    }

.two-pane-settings-overlay .subscription_settings.show {
            display: block;
        }

.two-pane-settings-overlay #personal-stream-settings .stream_change_property_status {
            margin: 9px auto 3px 3px;
        }

.two-pane-settings-overlay .stream_details_box  > .stream_details_subsection,.two-pane-settings-overlay .group_detail_box  > .stream_details_subsection,.two-pane-settings-overlay .stream_details_box  > .group_details_box_subsection,.two-pane-settings-overlay .group_detail_box  > .group_details_box_subsection {
            margin: 0 0 10px; /* mimic paragraph spacing */
        }

.two-pane-settings-overlay .stream_details_box .stream_email_address_error,.two-pane-settings-overlay .group_detail_box .stream_email_address_error {
            vertical-align: top;
            margin-left: 15px;
        }

.two-pane-settings-overlay .loading_indicator_text {
        font-weight: 400;
        line-height: 20px;
    }

.two-pane-settings-overlay .subsection-parent .input-group input[type="checkbox"] {
            margin-top: 0;
        }

.two-pane-settings-overlay .subsection-parent .input-group:last-of-type {
            border-bottom: none;
        }

.two-pane-settings-overlay .subsection-parent .input-group input[type="radio"] {
            margin-right: 5px;
        }

.two-pane-settings-overlay .subsection-parent .input-group .inline {
            display: inline !important;
        }

.two-pane-settings-overlay .icon-button {
        font-size: 1.2em;
    }

div.settings-radio-input-parent {
    border-bottom: 1px solid var(--color-border-settings-radio-input-parent);
    margin: 2px 0 2px 5px;
    padding: 2px 0;
}

div.settings-radio-input-parent:last-of-type {
        border-bottom: none;
    }

div.settings-radio-input-parent label.radio {
        display: inline;
        margin: 5px;
    }

div.settings-radio-input-parent input {
        float: left;
        width: auto;
        cursor: pointer;
        /* Scale the height with font-size, 14px at 1em */
        height: 1em;
        /* This value came from fiddling to find what looked
           vertically centered at 12px-20px font sizes. */
        margin-top: 0.15em;
    }

div.settings-radio-input-parent input:focus {
            outline: 1px dotted hsl(0deg 0% 20%);
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
        }

div.settings-radio-input-parent input:disabled {
            cursor: not-allowed;
        }

div.settings-radio-input-parent.default_stream_private_tooltip {
        cursor: not-allowed;
    }

div.settings-radio-input-parent.default_stream_private_tooltip label {
            pointer-events: none;
        }

.stream-permissions .input-group,.advanced-configurations-container .input-group,.group-permissions .input-group {
        margin-bottom: 0.625em; /* 10px at 16px/em */
    }

.stream-permissions .input-group.message-retention-setting-group input,.advanced-configurations-container .input-group.message-retention-setting-group input,.group-permissions .input-group.message-retention-setting-group input {
                width: 5ch;
                text-align: right;
            }

.stream-permissions .settings_select,.advanced-configurations-container .settings_select,.group-permissions .settings_select {
        /* Match with select elements in settings page. See there
           for comments about these values. */
        box-sizing: unset;
        width: calc(var(--modal-input-width) - 33px);
        max-width: 100%;
        padding-top: 4px;
        padding-bottom: 4px;
        height: 1.4em;
    }

.stream-permissions .default-stream,.advanced-configurations-container .default-stream,.group-permissions .default-stream {
        margin: 20px 0;
        width: -moz-fit-content;
        width: fit-content;
    }

.stream-permissions .default-stream .inline,.advanced-configurations-container .default-stream .inline,.group-permissions .default-stream .inline {
            display: inline;
        }

.group-permissions .pill-container,
.advanced-configurations-container .pill-container {
    /* Subtract 2 * (2px padding) + 2 * (1px border) */
    min-width: calc(var(--modal-input-width) - 6px);
}

.group-permissions .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.advanced-configurations-container .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.advanced-configurations-container .pill-container {
    margin-bottom: 10px;
}

.group-permissions .dropdown_widget_with_label_wrapper {
    display: inline-block;
    height: 30px;
    margin-bottom: 10px;
}

#change_user_group_description,
#change_stream_description,
#new_channel_folder_description,
#edit_channel_folder_description {
    width: 100%;
    height: 80px;
    margin-bottom: 4px;
    box-sizing: border-box;
}

.advanced-configurations-container
    .stream-message-retention-days-input
    input[type="text"] {
    border-radius: 5px;
    box-shadow: none;
    margin: 0;
    height: inherit;
}

.group-setting-label {
    /* Avoid having the clickable area extend to the full width of the containing element */
    width: -moz-fit-content;
    width: fit-content;
}

.stream-settings-color-selector {
    border: 1px solid var(--color-border-zulip-button);
    display: flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
}

.stream-settings-color-selector.action-button-quiet-neutral {
        box-shadow: none;
    }

.stream-settings-color-preview {
    /* 28px at 16px font size */
    width: 1.75em;
    height: 1.75em;
    /* -6px 0 -6px 10px at 16px font size. */
    margin: -0.375em 0 -0.375em -0.625em;
}

#subscription_overlay .channel-folder-widget-container {
    display: flex;
    gap: 0.5em;
    width: auto;
    /* Set minimum width such that the total width of dropdown
    button and "Create folder" button is at least equal to the
    minimum width of pill inputs for permission settings. */
    min-width: var(--modal-input-width);
    flex-wrap: wrap;
}

#subscription_overlay .channel-folder-widget-container .dropdown_widget_value {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

#deactivation-confirm-modal .alert {
        padding-right: 14px;
    }

#deactivation-confirm-modal .cannot-deactivate-group-banner {
        border: none;
        margin: 0;
    }

#deactivation-confirm-modal .cannot-deactivate-group-banner .banner-text {
            margin: 0;
            padding-right: 4px;
        }

#deactivation-confirm-modal .cannot-deactivate-group-banner .permissions-button {
            text-wrap: nowrap;
        }

#deactivation-confirm-modal .cannot-deactivate-group-banner .permissions-button:focus {
                outline: 0;
            }

@media (max-width: 991.98px) {
    .two-pane-settings-container {
        max-width: 95%;
    }

    #groups_overlay .group_settings_header,
    #subscription_overlay .stream_settings_header {
        flex-wrap: wrap;
    }
}

/* This ensures the left-border is tall enough. We can't keep this style for
    narrow screens because `right` is absolutely positioned on narrow screens. */
@container settings-overlay (width >= 57.142857142857146em) {
    .two-pane-settings-container .right {
        height: 100%;
    }
}

/* We should eventually consolidate some of these styles with the styles
   in settings.css, using shared classnames. */
@container settings-overlay (width < 57.142857142857146em) {
    .two-pane-settings-container {
        position: relative;
        overflow: hidden;
    }

        .two-pane-settings-container .two-pane-settings-header .fa-chevron-left {
            visibility: visible;
        }

        .two-pane-settings-container .two-pane-settings-header.slide-left {
            border-bottom: none;
        }

    .two-pane-settings-overlay .left {
        overflow: hidden;
        width: 100%;
    }

    .two-pane-settings-overlay .right {
        position: absolute;
        transform: translateX(101%);
        transition: transform 0.3s ease;
        background-color: var(--color-background-modal);
        z-index: 10;
        width: 100%;
    }

        .two-pane-settings-overlay .right.show {
            transform: translateX(0%);
        }

    .two-pane-settings-overlay .settings {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 575.98px) {
        #groups_overlay .user_group_settings_wrapper .button-group,#subscription_overlay .subscription_settings .button-group {
            display: block;
            float: right;
            margin-top: 10px;
        }
            #groups_overlay .user_group_settings_wrapper .group-header .button-group,#subscription_overlay .subscription_settings .group-header .button-group,#groups_overlay .user_group_settings_wrapper .stream-header .button-group,#subscription_overlay .subscription_settings .stream-header .button-group {
                margin-top: -5px;
            }

        #groups_overlay .user_group_settings_wrapper .group_change_property_info,#subscription_overlay .subscription_settings .group_change_property_info,#groups_overlay .user_group_settings_wrapper .stream_change_property_info,#subscription_overlay .subscription_settings .stream_change_property_info {
            /* For small widths where there is not enough space
            to show alert beside stream name we set its display
            to block so it is shown in new line. But to avoid
            it covering whole screen width we set max-width
            so that it does not losses inline-block appearance. */

            /* TODO: This will probably be not required once
            we have tabbed navigation as button group width
            will be smaller. */
            display: block;
            max-width: max-content;
            white-space: nowrap;
        }
}

.selected-stream-title,
.user-group-info-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selected-stream-title {
    display: block;
    margin: auto;
}

#stream_members_list,
#user_group_settings .member-list,
#stream_creation_form .subscriber-list,
#user_group_creation_form .member-list {
    table-layout: fixed;
    width: 100%;
}

#stream_members_list:not(.does-not-exist) th,#user_group_settings .member-list th,#stream_creation_form .subscriber-list th,#user_group_creation_form .member-list th,#stream_members_list:not(.does-not-exist) td,#user_group_settings .member-list td,#stream_creation_form .subscriber-list td,#user_group_creation_form .member-list td {
        box-sizing: border-box;
    }

#stream_members_list:not(.does-not-exist) .panel_user_list,#user_group_settings .member-list .panel_user_list,#stream_creation_form .subscriber-list .panel_user_list,#user_group_creation_form .member-list .panel_user_list {
        width: 50%;
    }

#stream_members_list:not(.does-not-exist) .panel_user_list .pill-container,#user_group_settings .member-list .panel_user_list .pill-container,#stream_creation_form .subscriber-list .panel_user_list .pill-container,#user_group_creation_form .member-list .panel_user_list .pill-container {
            max-width: 100%;
        }

#stream_members_list:not(.does-not-exist) .panel_user_list .pill-container .pill-value,#user_group_settings .member-list .panel_user_list .pill-container .pill-value,#stream_creation_form .subscriber-list .panel_user_list .pill-container .pill-value,#user_group_creation_form .member-list .panel_user_list .pill-container .pill-value {
                /* This is needed to unset the max-width value of 165px
                set for user pills in other tables. */
                max-width: unset;
            }

#stream_members_list:not(.does-not-exist) .remove-button-column,#user_group_settings .member-list .remove-button-column {
        width: 3em;
    }

#stream_members_list:not(.does-not-exist) .settings-email-column,#user_group_settings .member-list .settings-email-column {
        width: calc(50% - 3em);
    }

#stream_creation_form .subscriber-list .action-column,#user_group_creation_form .member-list .action-column {
        width: 6em;
    }

#stream_creation_form .subscriber-list .settings-email-column,#user_group_creation_form .member-list .settings-email-column {
        width: calc(50% - 6em);
    }

@media (max-width: 991.98px) {
        #stream_members_list:not(.does-not-exist) .panel_user_list,#user_group_settings .member-list .panel_user_list,#stream_creation_form .subscriber-list .panel_user_list,#user_group_creation_form .member-list .panel_user_list {
            width: auto;
        }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/scheduled_messages.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/

    #reminders-overlay-container .no-overlay-messages,#scheduled_messages_overlay_container .no-overlay-messages {
        display: none;
    }

#reminders-overlay-container .no-overlay-messages:only-child {
            display: block;
        }

#scheduled_messages_overlay_container .no-overlay-messages:only-child {
            display: block;
        }

#scheduled_message_indicator {
    display: block;
    margin-left: 10px;
    font-style: italic;
    color: hsl(0deg 0% 53%);
}

#reminders-overlay-container .message_content {
    cursor: auto;
}

.schedule-reminder-note {
    /* Horizontal resizing in the popover doesn't look good at all. */
    resize: vertical;
    width: 100%;
    min-width: 10em;
    padding: 3px;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/drafts.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/

    .drafts-container .banner-container {
        margin: 0 25px 5px;
    }
.drafts-container .header-body {
        display: flex;
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
        gap: 5px;
    }
.drafts-container .header-body .drafts-header-note {
            text-align: left;
            margin-left: 25px;
        }
@media (max-width: 991.98px) {
        .drafts-container .header-body .drafts-header-note {
                text-align: center;
                margin-left: 0;
        }
            }
.drafts-container .header-body .delete-drafts-group {
            display: flex;
            justify-content: flex-end;
            gap: 10px;
        }
.drafts-container .header-body .delete-drafts-group .delete-selected-drafts-button:focus {
                    background-color: hsl(0deg 0% 93%);
                }
.drafts-container .header-body .delete-drafts-group .select-drafts-button {
                display: flex;
                align-items: center;
                gap: 5px;
                margin-right: 25px;
                padding-left: 15px;
                padding-right: 15px;
            }
.drafts-container .header-body .delete-drafts-group .select-drafts-button:focus {
                    background-color: hsl(0deg 0% 93%);
                }
.drafts-container .header-body .delete-drafts-group .select-state-indicator {
                width: 15px;
            }
@media (max-width: 991.98px) {
        .drafts-container .header-body .delete-drafts-group {
                margin-top: 5px;
                width: 100%;
        }
            }
@media (max-width: 991.98px) {
        .drafts-container .header-body {
            display: block;
    }
        }
.drafts-container .drafts-list h2 {
            font-size: 1.1em;
            line-height: normal;
            margin-bottom: 5px;
            white-space: pre-wrap;
        }
.drafts-container .draft-selection-checkbox {
        margin-top: 0.25em;
        /* Required to make sure that the checkbox icon stays inside
           the grid. Any value greater than 13px (original width of
           the checkbox icon) will work. */
        width: 15px;
    }

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/input_pill.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.pill-container {
    display: inline-flex;
    gap: var(--vertical-spacing-input-pill) var(--horizontal-spacing-input-pill);
    flex-wrap: wrap;
    min-width: 0;

    background-color: var(--color-background-pill-container);

    padding: var(--outer-spacing-input-pill-container);
    border: 1px solid var(--color-border-pill-container);
    border-radius: 4px;
    align-items: center;

    cursor: text;
}

.pill-container .pill {
        display: inline-flex;
        align-items: center;
        max-width: 100%;
        min-width: 0;
        position: relative;

        height: var(--height-input-pill);
        /* Make sure the `height` property
           is the authoritative source of an
           input pill's height, without being
           affected by borders, etc. */
        box-sizing: border-box;
        margin: 0;

        color: inherit;

        border-radius: 4px;
        background-color: var(--color-background-input-pill);
        cursor: pointer;

        /* Not focus-visible, because we want to support mouse+backpace to
           delete pills */
    }

.pill-container .pill:focus {
            /* Box shadow instead of border, because user pills have avatars
               that extend all the way to the edge of the pill. */
            box-shadow: 0 0 0 1px var(--color-focus-outline-input-pill) inset;
            outline: none;

            /* For user pills with avatars, the avatar covers up the box
               shadow, so we also have to make a border around the avatar. */
        }

.pill-container .pill:focus .pill-image-border {
                border-right: none;
                border-radius: 4px 0 0 4px;
                border-color: var(--color-focus-outline-input-pill);
            }

.pill-container .pill .pill-image {
            height: var(--height-input-pill);
            width: var(--height-input-pill);
            border-radius: 4px;
        }

.pill-container .pill .pill-image-border {
            height: var(--height-input-pill);
            width: var(--height-input-pill);
            position: absolute;
            box-sizing: border-box;
            border: 1px solid;
            border-radius: 4px;
            border-color: var(--color-border-input-pill-image);
        }

.pill-container .pill .zulip-icon {
            padding-right: 2px;
        }

.pill-container .pill .pill-label {
            /* Treat as flex container to better position status
               emoji and control ellipsis on the pill value. */
            display: flex;
            /* Allow label to collapse for ellipsis effect. */
            min-width: 0;
            align-items: center;
            margin: 0 var(--input-pill-side-padding);
        }

.pill-container .pill .pill-label .zulip-icon-bot {
                margin-left: 0.4em;
            }

.pill-container .pill .pill-value {
            flex: 0 1 auto;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.5;
        }

.pill-container .pill .pill-close-button,.pill-container .pill .pill-expand-button {
            font-size: 0.7142em; /* 10px at 14px em */
            -webkit-text-decoration: none;
            text-decoration: none;
            /* Let the close button's box stretch,
               but no larger than the height of the
               banner box when the action button
               achieves its full height (margin,
               padding, and height), which keeps
               the X vertically centered with it. */
            align-self: stretch;
            max-height: 52px;
            /* Display as flexbox to better control
               the X icon's position. This creates
               an anonymous flexbox item out of the
               ::before content where the icon sits. */
            display: flex;
            align-items: center;
            /* !important overrides `.dark-theme:root a:hover` */
            color: var(--color-input-pill-close) !important;
            opacity: 0.7;
        }

.pill-container .pill .exit,.pill-container .pill .expand {
            width: var(--length-input-pill-exit);
            height: var(--length-input-pill-exit);
            display: flex;
            justify-content: center;
            margin-right: 2px;
            border-radius: 2px;
        }

.pill-container .pill .exit:hover,.pill-container .pill .expand:hover {
                background: var(--color-background-input-pill-exit-hover);
            }

.pill-container .pill .exit:hover .pill-close-button,.pill-container .pill .expand:hover .pill-close-button,.pill-container .pill .exit:hover .pill-expand-button,.pill-container .pill .expand:hover .pill-expand-button {
                    opacity: 1;
                }

.pill-container .pill .group-members-count {
            opacity: 0.65;
        }

.pill-container .pill.deactivated-pill {
            background-color: var(--color-background-deactivated-user-pill);
            opacity: 0.7;
        }

.pill-container .pill.deactivated-pill:focus {
                border-color: var(--color-focus-outline-deactivated-user-pill);
            }

.pill-container .pill.deactivated-pill .pill-close-button {
                /* !important overrides `.dark-theme:root a:hover` */
                color: var(--color-close-deactivated-user-pill) !important;
            }

.pill-container .pill.deactivated-pill .exit:hover {
                background: var(
                    --color-background-exit-hover-deactivated-user-pill
                );
            }

.pill-container .pill.deactivated-pill  > img {
                opacity: 0.5;
            }

.pill-container .slashed-circle-icon {
        position: absolute;
        background-color: var(--color-background-deactivated-user-pill);
        padding: 0.2em;
        font-size: 0.7em;
        border-radius: 0.625em;
        bottom: -0.0625em;
        left: 1.1em;
        opacity: 1;
    }

.pill-container.not-editable {
        cursor: not-allowed;
        border: none;
        background-color: transparent;
        padding: 0;
    }

.pill-container.not-editable .pill {
            padding-right: 4px;
            cursor: not-allowed;
        }

.pill-container.not-editable .pill:focus {
                color: inherit;
                border: 1px solid hsl(0deg 0% 0% / 15%);
                background-color: hsl(0deg 0% 0% / 7%);
            }

.pill-container.not-editable .pill .exit {
                display: none;
            }

.pill-container .input {
        display: inline-block;
        /* This keeps the input sized to
           the same height as pills. */
        line-height: var(--height-input-pill);
        padding: 0 4px;

        min-width: 2px;
        overflow-wrap: anywhere;
        flex: 1 1 auto;

        outline: none;
    }

.pill-container .input.shake {
            animation: shake 0.3s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
            transform: translate3d(0, 0, 0);
            -webkit-backface-visibility: hidden;
                    backface-visibility: hidden;
            perspective: 1000px;
        }

.pill-container.not-editable-by-user {
        cursor: not-allowed;
    }

.pill-container.not-editable-by-user .pill {
            cursor: not-allowed;
        }

.pill-container.not-editable-by-user .exit {
            display: none;
        }

.pill-container.invalid {
        border-color: var(--color-invalid-input-border);
        box-shadow: var(--invalid-input-box-shadow);
    }

#compose-direct-recipient .pill-container {
    border: 1px solid var(--color-compose-recipient-box-border-color);
}

#compose-direct-recipient .pill-container .input:first-child:empty::before {
        content: attr(data-no-recipients-text);
        opacity: 0.5;
    }

#compose-direct-recipient .pill-container:has(.input:focus) {
        border-color: var(--color-compose-recipient-box-has-focus);
    }

#invitee_emails_container .pill-container,
#integration-url-filter-branches .pill-container {
    width: 100%;
    box-sizing: border-box;
    background-color: var(
        --color-background-pill-container-without-placeholder
    );
}

#invitee_emails_container .pill-container.not-editable-by-user {
    height: var(--height-input-pill);
    background-color: var(--color-background-pill-container-input-disabled);
}

.add_subscribers_container .pill-container,
.add_streams_container .pill-container,
.add-user-group-container .pill-container,
.add_members_container .pill-container {
    width: 100%;
}

.add_subscribers_container .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.add_streams_container .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.add-user-group-container .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.add_members_container .pill-container .input:first-child:empty::before {
        opacity: 0.5;
        content: attr(data-placeholder);
    }

.add_streams_container .input,
.add-user-group-container .input {
    flex-grow: 1;
}

.display_only_pill {
    /* Ensure middle alignment in table contexts. */
    vertical-align: middle;
}

/* These pill are similar to .not-editable, but are meant to show
   profile cards when clicked. */
.panel_user_list > .pill-container,
.creator_details > .display_only_pill {
    background-color: hsl(0deg 0% 0% / 7%);
    gap: 2px;
    flex-wrap: nowrap;
}
.panel_user_list > .pill-container.inline_with_text_pill > .pill-deactivated,.creator_details > .display_only_pill.inline_with_text_pill > .pill-deactivated {
        font-size: 0.9em;
        padding-right: 2px;
    }
.panel_user_list > .pill-container:hover,.creator_details > .display_only_pill:hover {
        color: inherit;
    }
.panel_user_list > .pill-container  > .pill,.creator_details > .display_only_pill  > .pill {
        background-color: transparent;
        border: none;
        -webkit-text-decoration: none;
        text-decoration: none;
    }
.panel_user_list > .pill-container > .pill:focus,.creator_details > .display_only_pill > .pill:focus {
            color: inherit;
        }
.panel_user_list > .pill-container > .pill  > .pill-label,.creator_details > .display_only_pill > .pill  > .pill-label {
            margin: 0;
        }
.panel_user_list > .pill-container > .pill > .pill-label  > .pill-value,.creator_details > .display_only_pill > .pill > .pill-label  > .pill-value {
                padding: 5px;
                max-width: 165px;
            }

.creator_details > .display_only_pill.inline_with_text_pill {
    padding: 0;
}

.creator_details > .display_only_pill.inline_with_text_pill  > .pill {
        margin: 0;
        align-items: baseline;
    }

.creator_details > .display_only_pill.inline_with_text_pill > .pill  > .pill-image {
            /* Add line-height equal to height to mimic baseline alignment. */
            line-height: 20px;
            align-self: center;
        }

.creator_details > .display_only_pill.inline_with_text_pill > .pill > .pill-label  > .pill-value {
                padding: 0 5px;
                max-width: 200px;
            }

.creator_details > .display_only_pill.inline_with_text_pill > .pill > .pill-label  > .my_user_status {
                margin-right: 2px;
            }

.display_only_group_pill .zulip-icon-user-group {
    font-size: 1.3571em; /* 19px at 14px / em */
}

@keyframes shake {
    10%,
    90% {
        transform: translate3d(-1px, 0, 0);
    }

    20%,
    80% {
        transform: translate3d(2px, 0, 0);
    }

    30%,
    50%,
    70% {
        transform: translate3d(-3px, 0, 0);
    }

    40%,
    60% {
        transform: translate3d(3px, 0, 0);
    }
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/informational_overlays.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/

    .informational-overlays .overlay-content {
        width: var(--informational-overlay-max-width);
        margin: 0 auto;
        position: relative;
        top: calc((30vh - 50px) / 2);
        border-radius: 4px;
        overflow: hidden;

        background-color: var(--color-background-modal);
    }

.informational-overlays .overlay-tabs {
        padding: 10px 0;
        border-bottom: 1px solid hsl(0deg 0% 0% / 20%);
    }

.informational-overlays .overlay-tabs .tab-switcher {
            margin-left: 15px;
        }

.informational-overlays .overlay-tabs .exit {
            float: right;
            font-size: 1.5rem;
            color: hsl(0deg 0% 67%);
            font-weight: 600;
            margin: 0 15px;
            cursor: pointer;
        }

.informational-overlays .overlay-modal {
        padding-bottom: 10px;
    }

.informational-overlays .overlay-modal .overlay-scroll-container {
            height: 70vh;
            text-align: center;
            outline: none;
        }

.informational-overlays .overlay-modal .overlay-scroll-container .help-table {
                table-layout: fixed;
            }

.informational-overlays .overlay-modal .overlay-scroll-container th {
                font-weight: 400;
            }

.informational-overlays td.operator {
        font-size: 0.9em;
    }

.informational-overlays .poll-question-header {
        display: inline;
    }

.hotkeys_table {
    table-layout: fixed;
    width: 100%;
    vertical-align: middle;
    display: table;
}

.hotkeys_table td.definition {
        /* keeps dividing line at same width for all tables in model. */
        width: calc(50% - 11px);
        text-align: right;
    }

.hotkeys_table .hotkey {
        font-weight: normal;
    }

.hotkeys_table .arrow-key {
        font-size: 1.36em;
        line-height: 1;
        padding: 0 0.2em 0.2em;
    }

.hotkeys_table th {
        width: 245px;
        text-align: center;
        /* aligns table name with dividing line */
    }

.hotkeys_table td:not(.definition) {
        text-align: left;
        white-space: normal;
        font-weight: bold;
    }

#keyboard-shortcuts table {
    margin-bottom: 10px !important;
}

@media only screen and (max-width: 767.98px) {
        .informational-overlays .overlay-content {
            width: calc(100% - 20px);
            /* Constrain to same width as in larger viewports. */
            max-width: var(--informational-overlay-max-width);
        }

        .informational-overlays .tab-switcher {
            display: flex;
        }

            .informational-overlays .tab-switcher.large .ind-tab {
                width: 100%;
            }

        .informational-overlays .hotkeys_table {
            width: 100%;
            display: table;
        }
}

#message-formatting-first-header,
#search-operators-first-header {
    width: 40%;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/compose.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
#compose_buttons {
    text-align: right;
    display: flex;
    -moz-column-gap: 4px;
         column-gap: 4px;
    flex-direction: row;
    /* With precisely controlled line-heights
       in this area, stretch will both center
       and maintain uniform heights between the
       reply button and the new-message button. */
    align-items: stretch;
}

#compose_buttons .compose_mobile_button {
        /* Keep the new message button sized to match
           adjacent buttons. */
        min-width: inherit;
        padding: 3px 10px;
        border-radius: 4px;
        outline: none;
        /* This is ugly, but necessary to use the
           text + for the compose button. An icon
           would likely be a better choice here.
           1.2em is 16.8px at 14px em. */
        font-size: 1.2em;
        /* 1.2em is 16.8px at 14px em; this
           maintains the 20px em-equivalent compose
           line height, but at a 16.8px em. */
        line-height: 1.19em;
        font-weight: 400;
        color: var(--color-text-default);
        background-color: var(--color-background-compose-new-message-button);
        border: 1px solid var(--color-border-compose-new-message-button);
    }

#compose_buttons .compose_mobile_button:hover {
            background-color: var(
                --color-background-compose-new-message-button-hover
            );
            border-color: var(--color-border-compose-new-message-button-hover);
        }

#compose_buttons .compose_mobile_button:active {
            background-color: var(
                --color-background-compose-new-message-button-active
            );
            border-color: var(--color-border-compose-new-message-button-hover);
        }

#compose_buttons .reply_button_container {
        display: flex;
        flex-grow: 1;

        /* Adjust flexbox default `min-width` to allow smaller container sizes. */
        min-width: 0;

        /* Button-like styling */
        border-radius: 4px;
        background-color: var(
            --color-compose-collapsed-reply-button-area-background
        );
        border: 1px solid
            var(--color-compose-collapsed-reply-button-area-border);
    }

#compose_buttons .reply_button_container:hover,#compose_buttons .reply_button_container:focus {
            background-color: var(
                --color-compose-collapsed-reply-button-area-background-interactive
            );
            border-color: var(
                --color-compose-collapsed-reply-button-area-border-interactive
            );
        }

#compose_buttons .reply_button_container #left_bar_compose_reply_button_big,#compose_buttons .reply_button_container #new_conversation_button {
            /* Keep the new message button sized to match
               adjacent buttons. */
            font-size: inherit;
            min-width: inherit;
            padding: 3px 10px;
            outline: none;
            border: none;
            color: var(--color-text-default);
            background: var(--color-compose-embedded-button-background);
            border-radius: 3px;
            line-height: var(--line-height-compose-buttons);
        }

#compose_buttons .reply_button_container .compose-reply-button-wrapper {
            flex-grow: 1;
            display: flex;
            overflow: hidden;
        }

#compose_buttons .reply_button_container #left_bar_compose_reply_button_big {
            width: 100%;
            text-align: left;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
        }

#compose_buttons .reply_button_container #new_conversation_button {
            /* Remove the  `padding` to prevent margin from affecting parent height. */
            padding: 0 10px;
            min-width: inherit;
            margin: 1px;
            flex-shrink: 0;
            align-self: stretch;

            color: var(--color-compose-embedded-button-text-color);
        }

#compose_buttons .reply_button_container #new_conversation_button:hover {
                background-color: var(
                    --color-compose-embedded-button-background-hover
                );
                color: var(--color-compose-embedded-button-text-color-hover);
            }

@media (min-width: 576px) {

#compose_buttons .mobile_button_container {
            display: none;
    }
        }

#compose_buttons #new_conversation_button,#compose_buttons .new_direct_message_button_container {
        flex-shrink: 0;
        line-height: var(--line-height-compose-buttons);
    }

@media (max-width: 575.98px) {

#compose_buttons #new_conversation_button,#compose_buttons .new_direct_message_button_container {
            /* Override inline style injected by jQuery hide() */
            display: none !important;
    }
        }

#compose_buttons .new_direct_message_button_container {
        display: flex;
    }

#compose_buttons #new_direct_message_button {
        /* Keep the new message button sized to match
           adjacent buttons. */
        align-self: stretch;
        font-size: inherit;
        min-width: inherit;
        line-height: var(--line-height-compose-buttons);
        padding: 3px 10px;
        border-radius: 4px;
        outline: none;
        color: var(--color-text-default);
        background-color: var(--color-background-compose-new-message-button);
        border: 1px solid var(--color-border-compose-new-message-button);
    }

#compose_buttons #new_direct_message_button:hover {
            background-color: var(
                --color-background-compose-new-message-button-hover
            );
            border-color: var(--color-border-compose-new-message-button-hover);
        }

#compose_buttons #new_direct_message_button:active {
            background-color: var(
                --color-background-compose-new-message-button-active
            );
            border-color: var(--color-border-compose-new-message-button-hover);
        }

/* Main geometry for this element is in zulip.css */
#compose-content {
    background-color: var(--color-compose-box-background);
    padding: 4px 4px 6px;
    border: 1px solid var(--color-border-compose-content);
    border-radius: 9px 9px 0 0;
    box-shadow: 0 0 0 hsl(236deg 11% 28%);
    height: 100%;
    display: flex;
    flex-flow: column;
    box-sizing: border-box;
}
#compose-content:hover .composebox-buttons > button {
            opacity: 1;
        }

.message_comp {
    display: none;
    padding: 0 7px 0 0;
}

.message_comp #compose_banners {
        max-height: min(25vh, 240px);
        overflow-y: auto;
        /* Align to compose controls; that's 112px width,
           plus 4px of grid gap for 116px here. */
        margin-right: calc(var(--compose-send-controls-width) + 4px);
    }

.compose_table {
    height: 100%;
    display: flex;
    flex-flow: column;
}

.compose_table #compose-recipient.compose-recipient-direct-selected #compose_select_recipient_widget_wrapper {
                /* As the DM-pill area expands, we want to
                   hold the DM picker to the first line. */
                align-self: flex-start;
            }

.compose_table #compose-recipient.compose-recipient-direct-selected #compose_select_recipient_widget {
                border-radius: 4px !important;
                /* This height is necessary only for the
                   DM picker, so that it does not stretch
                   open taller with multiple rows of user
                   pills. */
                height: var(--compose-recipient-box-min-height);
            }

.compose_table #compose-recipient.compose-recipient-direct-selected .topic-marker-container {
                /* As the DM-pill area expands, we likewise
                   want to keep the topic marker aligned with
                   the DM picker. */
                align-self: flex-start;
            }

.compose_table #compose-recipient .topic-marker-container {
            /* Ensure the marker ( < ) stays centered vertically
              with the dropdown, even when adjacent stacking pills
              in, e.g., a group DM. */
            align-self: center;
            display: flex;
            align-items: center;
            /* Ensure horizontal centering, too. */
            justify-content: center;
            /* Disallow shrinking or growth, which can cause
               little layout shifts with pills. */
            flex: 0 0 auto;
            height: var(--compose-recipient-box-min-height);
        }

.compose_table #compose-recipient .topic-marker-container .conversation-arrow {
                font-size: 1.1429em; /* 16px / 14px em */
                /* Fix the line-height to the font size
                   to maintain a circle that scales. */
                line-height: 1;
                border-radius: 50%;
                padding: 2px;
                margin: 0 3px;
                color: var(--color-compose-chevron-arrow);
                -webkit-text-decoration: none;
                text-decoration: none;
                cursor: default;
                transition: 0.2s ease-in-out;
                transition-property: background, color;
            }

.compose_table #compose-recipient .topic-marker-container .conversation-arrow.narrow_to_compose_recipients {
                    background: var(
                        --color-narrow-to-compose-recipients-background
                    );
                    color: var(--color-narrow-to-compose-recipients);
                    cursor: pointer;
                }

.compose_table #compose-recipient .topic-marker-container .conversation-arrow.narrow_to_compose_recipients:hover {
                        background: var(
                            --color-narrow-to-compose-recipients-background-hover
                        );
                        color: var(--color-narrow-to-compose-recipients-hover);
                    }

.compose_table #compose-direct-recipient {
        flex-grow: 1;
        display: grid;
        grid-template-columns: 1fr;
        align-items: stretch;
    }

.compose_table .message_header {
        background: none;
        background-color: hsl(0deg 0% 92%);
        border: none;
        border-radius: 0;
        box-shadow: none !important;
    }

.compose_table .messagebox {
        box-shadow: none !important;
    }

#send_message_form {
    margin: 0;
    height: 100%;
}

#send_message_form .messagebox {
        /* normally 5px 14px; pull in the right and bottom a bit */
        cursor: default;
        flex: 1;
        padding: 0;
        background: none;
        box-shadow: none;
        border: none;
        height: 100%;
        display: grid;
        /* Vlad's design calls for 122px for the send column
           at its widest; 112px accounts for 6px of gap and
           4px outside padding. */
        grid-template:
            minmax(0, 1fr) var(--compose-formatting-buttons-row-height)
            / minmax(0, 1fr) var(--compose-send-controls-width);
        grid-template-areas:
            "message-content-container message-send-controls-container"
            "message-formatting-controls-container message-send-controls-container";
        gap: 0 4px;
    }

#send_message_form .message_content {
        margin-right: 0;
    }

#message-content-container {
    grid-area: message-content-container;
    display: grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr) var(
            --composebox-buttons-width
        );
    grid-template-areas: "message-content composebox-buttons";
    border-radius: 4px;
    border: 1px solid var(--color-message-content-container-border);
}

#message-content-container:has(.new_message_textarea:focus) {
        border-color: var(--color-message-content-container-border-focus);
    }

#message-content-container:has(.new_message_textarea.invalid),#message-content-container:has(.new_message_textarea.invalid:focus) {
        border-color: var(--color-invalid-input-border);
        box-shadow: var(--invalid-input-box-shadow);
    }

#message-content-container:has(.new_message_textarea.textarea-over-limit),
.edit-content-container:has(.message_edit_content.textarea-over-limit) {
    box-shadow: 0 0 0 1pt
        var(--color-message-content-container-border-over-limit);
}

#message-content-container:has(
        .new_message_textarea.textarea-approaching-limit
    ),
.edit-content-container:has(.message_edit_content.textarea-approaching-limit) {
    box-shadow: 0 0 0 1pt
        var(--color-message-content-container-border-approaching-limit);
}

#message-content-container:has(.new_message_textarea.textarea-over-limit.flash),
#message-content-container:has(
        .new_message_textarea.textarea-approaching-limit.flash
    ),
.edit-content-container:has(.message_edit_content.textarea-over-limit.flash),
.edit-content-container:has(
        .message_edit_content.textarea-approaching-limit.flash
    ) {
    /* This should align with the timing in compose_validate.validate_message_length. */
    animation: message-limit-flash 0.5s ease-in-out 1;
}

#message-content-container .composebox-buttons {
    grid-area: composebox-buttons;
    /* z-index is needed to avoid flickering of cursor and the
    button when hovering it in preview mode. */
    z-index: 1;
    height: max-content;
}

#message-content-container .composebox-buttons button {
        width: 24px;
        /* Override any UA stylesheet padding, such as that
           added by mobile Safari. */
        padding: 0;
        border: none;
        aspect-ratio: 1 / 1;
        background-color: var(--color-composebox-button-background);
        color: var(--color-composebox-button);
        border-radius: 3px;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition:
            opacity 0.4s ease-in,
            color 0.1s ease-in,
            background-color 0.1s ease-in;
    }

#message-content-container .composebox-buttons button:hover {
            background-color: var(--color-composebox-button-background-hover);
            color: var(--color-composebox-button-hover);
        }

#message-content-container .composebox-buttons button:focus {
            outline: 0;
        }

#message-content-container .composebox-buttons button:focus-visible {
            outline: 2px solid var(--color-outline-focus);
        }

#message-content-container .composebox-buttons .collapse-composebox-button,#message-content-container .composebox-buttons .maximize-composebox-button {
        display: none;
    }

#compose-textarea,
#preview-message-area-container {
    grid-area: message-content;
}

#compose-textarea,
#preview_message_area {
    margin-right: calc(var(--composebox-buttons-width) * -1);
    padding-right: var(--composebox-buttons-width);
    background-color: var(--color-compose-message-content-background);
    color: var(--color-text-default);
}

#compose-textarea.textarea-over-limit,#preview_message_area.textarea-over-limit {
        background-color: var(
            --color-compose-message-content-background-over-limit
        );
    }

#compose-textarea.textarea-approaching-limit,#preview_message_area.textarea-approaching-limit {
        background-color: var(
            --color-compose-message-content-background-approaching-limit
        );
    }

.surround-formatting-buttons-row {
    /* This is to extend it under the formatting buttons
       row, so that any border / box-shadow styles applied
       to it surround the formatting buttons row as well. */
    padding-bottom: var(--compose-formatting-buttons-row-height);
    /* The extra 1px of margin-bottom is to ensure the 1px of
       border-bottom shows below the formatting buttons row. */
    margin-bottom: calc(
        (var(--compose-formatting-buttons-row-height) + 1px) * -1
    );
}

.surround-formatting-buttons-row textarea {
        /* Flatten the bottom edge of the textarea to
           merge with the flat top edge of the buttons row */
        border-radius: 3px 3px 0 0;
    }

#preview-message-area-container {
    /* Keep preview container invisible outside
       of preview mode. */
    display: none;
}

#message-send-controls-container {
    grid-area: message-send-controls-container;
    /* A columnar flex does a nice job here
       holding Drafts to the top of the
       container, and the send button to
       the bottom--even as the compose box
       expands or contracts. */
    display: flex;
    flex-direction: column;
    /* With a columnar flex, this ensures that
       send controls occupy the same space as
       the adjacent textbox. */
    justify-content: space-between;
    /* We add 6px of margin to the grid-gap of
       6px, for 12px of space between the Send
       button and the textarea. */
    margin-left: 6px;
}

@media (max-width: 575.98px), ((min-width: 576px) and (max-width: 848.98px)) {

#message-send-controls-container {
        margin-left: 0;
}
    }

#message-formatting-controls-container {
    grid-area: message-formatting-controls-container;
    border-radius: 0 0 3px 3px;
    background-color: var(--color-message-formatting-controls-container);
    /* margin on either side to let the border of
       .message-content-container show through. */
    margin: 0 1px;
}

.compose-scrolling-buttons-container {
    display: grid;
    /* The scroller buttons are set to a 48px width that does not scale;
       the idea being that that's a generous target area, and that it
       would be better not to consume more space at larger font sizes
       under narrower screen sizes. */
    grid-template-columns:
        [scroller-backward-start buttons-start] 48px [scroller-backward-end] minmax(
            0,
            1fr
        )
        [scroller-forward-start] 48px [scroller-forward-end buttons-end];
    grid-template-rows: auto;
}

.compose-scrollable-buttons {
    grid-area: buttons;
    overflow-x: scroll;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.formatting-control-scroller-button {
    z-index: 5;
    display: flex;
    align-items: center;

    border-radius: 0;
    border: 0;

    color: var(--color-compose-scroll-icon);
    background: transparent;

    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
}

.formatting-control-scroller-button:focus {
        outline: 0;
    }

.formatting-scroller-backward {
    grid-area: scroller-backward;
    justify-content: flex-start;
    border-radius: 0 0 0 3px;
    background: var(--gradient-compose-scroll-backward);
}

.formatting-scroller-backward:hover {
        background: var(--gradient-compose-scroll-backward-hover);
    }

.formatting-scroller-backward:active {
        background: var(--gradient-compose-scroll-backward-active);
    }

.formatting-scroller-backward:active .scroller-backward-icon {
            /* Subtly shift arrow in scroll direction. */
            margin-left: -2px;
        }

.formatting-scroller-forward {
    grid-area: scroller-forward;
    justify-content: flex-end;
    border-radius: 0 0 3px;
    background: var(--gradient-compose-scroll-forward);
}

.formatting-scroller-forward:hover {
        background: var(--gradient-compose-scroll-forward-hover);
    }

.formatting-scroller-forward:active {
        background: var(--gradient-compose-scroll-forward-active);
    }

.formatting-scroller-forward:active .scroller-forward-icon {
            /* Subtly shift arrow in scroll direction. */
            margin-right: -2px;
        }

.can-scroll-backward .formatting-scroller-backward,
.can-scroll-forward .formatting-scroller-forward {
    opacity: 1;
    pointer-events: all;
}

/* Hide the scroller buttons when someone has reached
   the formatting bar via Tab. Scroller-button state
   silently updates despite their being hidden, and
   scroller buttons reappear once focus has moved out
   of the formatting bar. */
.compose-scrolling-buttons-container:has(.compose-scrollable-buttons:focus-within) .formatting-scroller-backward,.compose-scrolling-buttons-container:has(.compose-scrollable-buttons:focus-within) .formatting-scroller-forward {
        opacity: 0;
        pointer-events: none;
    }

.message-limit-indicator:not(:empty) {
    font-size: 0.8571em; /* 12px at 14px/em */
    color: var(--color-limit-indicator);
    width: max-content;

    /* Keep the limit indicator just above
       and aligned with the send button.
       `:not(:empty)` prevents the padding
       and margin-top from affecting layout
       in the controls area when no indicator
       is present. */
    margin-top: auto;
    padding: 3px 3px 3px 0;
}

.message-limit-indicator.textarea-over-limit:not(:empty) {
        color: var(--color-limit-indicator-over-limit);
        font-weight: bold;
    }

#compose {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 4;
}

#compose-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: auto;
}

#compose_top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    /* Matched to 4px grid-gap on .messagebox grid. */
    padding-bottom: 4px;
    /* Align to compose controls; that's 112px width,
       plus 4px of grid gap for 116px here. */
    margin-right: calc(var(--compose-send-controls-width) + 4px);
}

#compose_close {
    position: absolute;
    top: 0;
    right: 0;
    color: var(--color-compose-send-control-button);
    background: transparent;
    /* 12.5px at 14px em */
    font-size: 0.8928em;
    font-weight: normal;
    /* 3px 7px at 12.5px font size at 14px em */
    line-height: 1.6em;
    opacity: 0.7;
    border: 0;
    /* 3px 7px at 12.5px font size at 14px em */
    padding: 0.24em 0.56em;
    border-radius: 8px;
    vertical-align: unset;
    text-shadow: none;
}

#compose_close:hover {
        opacity: 1;
        background: var(--color-compose-embedded-button-background-hover);
        color: var(--color-compose-send-control-button-interactive);
    }

#compose_close:active {
        background-color: var(
            --color-compose-embedded-button-background-interactive
        );
    }

#compose_close:focus:not(:focus-visible) {
        outline: none;
    }

#compose_close:focus-visible {
        outline-color: var(--color-compose-focus-ring);
    }

.main-view-banner {
    /* This is same spatial value as the 4px of padding around
       the edge of the compose box. */
    margin-bottom: 4px;
    border-radius: 5px;
    border: 1px solid;
    display: flex;
    align-items: center;
    line-height: 1.2em; /* 18px at 15px/1em. */
}

.main-view-banner .above_compose_banner_action_link {
        color: var(--color-main-view-banner-action-link);
    }

.main-view-banner .main-view-banner-elements-wrapper {
        display: flex;
        align-items: center;
        /* Allow this flex container to grow or
           shrink to fit the outer container. */
        flex: 1 1 auto;
        /* Allow items to wrap; this supports an
           intrinsic layout for banner text and
           buttons, which will always occupy the
           space available, without our having
           to fiddle with tons of media queries. */
        flex-wrap: wrap;
    }

.main-view-banner .banner_content {
        /* Override Bootstrap when .banner_content is
           a paragraph element. */
        margin: 0;
        /* 5px right padding + 10px left-margin of the neighbouring button will match the left padding */
        padding: 8px 5px 8px 15px;
        /* The banner text uses a flex-basis of 150px,
           which is roughly the width at which banner
           text lines are still comfortably readable.
           Still, it can grow and shrink as needed. */
        flex: 1 1 150px;
    }

.main-view-banner .banner_content .banner_message {
            /* Override Bootstrap when .banner_content
               contains an inner .banner_message
               paragraph. */
            margin: 0;
        }

.main-view-banner .main-view-banner-action-button,.main-view-banner .upload_banner_cancel_button {
        border: none;
        border-radius: 4px;
        padding: 5px 10px;
        font-weight: 600;
        margin-top: 4.5px;
        margin-bottom: 4.5px;
        /* Buttons take a minimum height for
           when their text fits on a single
           line. 2.1333em is 32px at 15px/1em. */
        min-height: 2.1333em;
        /* When we're larger than large mobile
           scales ($ml_min), flex the button to
           its max-content, i.e., all its text
           on a single line. But do not grow in
           order to avoid awkward, oversized
           buttons within the flex group. */
        flex: 0 1 max-content;
        /* Use this margin-left hack to keep
           the button to the righthand side of
           the banner. */
        margin-left: auto;
    }

@media (max-width: 424.98px) {

.main-view-banner .main-view-banner-action-button,.main-view-banner .upload_banner_cancel_button {
            /* When we're smaller than large mobile
               scales, we allow the button to grow,
               so that it can span the full width of
               narrow, mobile-scale banners as it
               wraps onto a second line.

               We also allow the button to shrink,
               so that, for example, the text can
               wrap on the schedule-message button
               that appears when undoing a scheduled
               message. */
            flex: 1 1 max-content;
            /* Use a 10px left margin to keep the
               button away from the edge of the
               banner box to match the banner text;
               we need this only at small scales,
               when the button grows to the full
               width of the flex container. */
            margin-left: 10px;
    }
        }

/* Extra margin to ensure the layout is identical when there is no
           close button. */

.main-view-banner .main-view-banner-action-button.right_edge,.main-view-banner .upload_banner_cancel_button.right_edge {
            margin-right: 10px;
        }

.main-view-banner .main-view-banner-action-button {
        /* Establish a uniform top and bottom
           space around the button, which also
           works with the space around the message
           text. */
        margin-top: 8px;
        margin-bottom: 8px;
        /* Make as tall as two lines of banner message
           text, which have a line-height of 18px, but
           no more. 2.4em is two 1.2em lines in the
           banner area. */
        max-height: 2.4em;
        /* Keep to the top of the box, but stretch
           taller based on how the box is flexing. */
        min-height: 0;
        align-self: stretch;
    }

.main-view-banner .main-view-banner-close-button {
        -webkit-text-decoration: none;
        text-decoration: none;
        /* Set same top and bottom margin
           as action buttons. */
        margin: 8px 0;
        padding: 0 8px;
        /* Let the close button's box stretch,
           but no larger than the height of the
           banner box when the action button
           achieves its full height (margin,
           padding, and height), which keeps
           the X vertically centered with it. */
        align-self: stretch;
        /* 2.4em is two 1.2em lines in the
           banner area. */
        max-height: 2.4em;
        /* Display as flexbox to better control
           the X icon's position. This creates
           an anonymous flexbox item out of the
           ::before content where the icon sits. */
        display: flex;
        align-items: center;
    }

.main-view-banner .banner_content + .main-view-banner-close-button {
        /* When there's no action button, set the max
           height for the typical height of the box
           when it contains only banner message text.
           This will keep the action button aligned
           with the first or only line of text.
           2.2667 is 34px at 15px/1em; */
        max-height: 2.2667em;
    }

.main-view-banner.success {
        background-color: var(--color-background-success-main-view-banner);
        border: 1px solid var(--color-border-success-main-view-banner);
        color: var(--color-success-main-view-banner);
    }

.main-view-banner.success .main-view-banner-close-button {
            color: var(--color-success-main-view-banner-close-button);
        }

.main-view-banner.success .main-view-banner-close-button:hover {
                color: var(--color-success-main-view-banner-close-button-hover);
            }

.main-view-banner.success .main-view-banner-close-button:active {
                color: var(
                    --color-success-main-view-banner-close-button-active
                );
            }

.main-view-banner.success .main-view-banner-action-button {
            background-color: var(
                --color-background-success-main-view-banner-action-button
            );
            color: inherit;
        }

.main-view-banner.success .main-view-banner-action-button:hover {
                background-color: var(
                    --color-background-success-main-view-banner-action-button-hover
                );
            }

.main-view-banner.success .main-view-banner-action-button:active {
                background-color: var(
                    --color-background-success-main-view-banner-action-button-active
                );
            }

/* warning and warning-style classes have the same CSS; this is since
    the warning class has some associated javascript which we do not want
    for some of the banners, for which we use the warning-style class. */

.main-view-banner.warning,.main-view-banner.warning-style {
        background-color: var(--color-background-warning-main-view-banner);
        border-color: var(--color-border-warning-main-view-banner);
        color: var(--color-warning-main-view-banner);
    }

.main-view-banner.warning .main-view-banner-close-button,.main-view-banner.warning-style .main-view-banner-close-button {
            color: var(--color-warning-main-view-banner-close-button);
        }

.main-view-banner.warning .main-view-banner-close-button:hover,.main-view-banner.warning-style .main-view-banner-close-button:hover {
                color: var(--color-warning-main-view-banner-close-button-hover);
            }

.main-view-banner.warning .main-view-banner-close-button:active {
                color: var(
                    --color-warning-main-view-banner-close-button-active
                );
            }

.main-view-banner.warning-style .main-view-banner-close-button:active {
                color: var(
                    --color-warning-main-view-banner-close-button-active
                );
            }

.main-view-banner.warning .main-view-banner-action-button,.main-view-banner.warning-style .main-view-banner-action-button {
            background-color: var(
                --color-background-warning-main-view-banner-action-button
            );
            color: var(--color-warning-main-view-banner-action-button);
        }

.main-view-banner.warning .main-view-banner-action-button:hover,.main-view-banner.warning-style .main-view-banner-action-button:hover {
                background-color: var(
                    --color-background-warning-main-view-banner-action-button-hover
                );
            }

.main-view-banner.warning .main-view-banner-action-button:active {
                background-color: var(
                    --color-background-warning-main-view-banner-action-button-active
                );
            }

.main-view-banner.warning-style .main-view-banner-action-button:active {
                background-color: var(
                    --color-background-warning-main-view-banner-action-button-active
                );
            }

.main-view-banner.error {
        background-color: var(--color-background-error-main-view-banner);
        border-color: var(--color-border-error-main-view-banner);
        color: var(--color-error-main-view-banner);
    }

.main-view-banner.error .main-view-banner-close-button {
            color: var(--color-error-main-view-banner-close-button);
        }

.main-view-banner.error .main-view-banner-close-button:hover {
                color: var(--color-error-main-view-banner-close-button-hover);
            }

.main-view-banner.error .main-view-banner-close-button:active {
                color: var(--color-error-main-view-banner-close-button-active);
            }

.main-view-banner.error .main-view-banner-action-button {
            background-color: var(
                --color-background-error-main-view-banner-action-button
            );
            color: var(--color-error-main-view-banner-action-button);
        }

.main-view-banner.error .main-view-banner-action-button:hover {
                background-color: var(
                    --color-background-error-main-view-banner-action-button-hover
                );
            }

.main-view-banner.error .main-view-banner-action-button:active {
                background-color: var(
                    --color-background-error-main-view-banner-action-button-active
                );
            }

.main-view-banner.info {
        position: relative;
        background-color: var(--color-background-info-main-view-banner);
        border-color: var(--color-border-info-main-view-banner);
        color: var(--color-info-main-view-banner);
    }

.main-view-banner.info .main-view-banner-close-button {
            color: var(--color-info-main-view-banner-close-button);
        }

.main-view-banner.info .main-view-banner-close-button:hover {
                color: var(--color-info-main-view-banner-close-button-hover);
            }

.main-view-banner.info .main-view-banner-close-button:active {
                color: var(--color-info-main-view-banner-close-button-active);
            }

.main-view-banner.info .main-view-banner-action-button,.main-view-banner.info .upload_banner_cancel_button {
            background-color: var(
                --color-background-info-main-view-banner-action-button
            );
            color: var(--color-info-main-view-banner-action-button);
        }

.main-view-banner.info .main-view-banner-action-button:hover,.main-view-banner.info .upload_banner_cancel_button:hover {
                background-color: var(
                    --color-background-info-main-view-banner-action-button-hover
                );
            }

.main-view-banner.info .main-view-banner-action-button:active {
                background-color: var(
                    --color-background-info-main-view-banner-action-button-active
                );
            }

.main-view-banner.info .upload_banner_cancel_button:active {
                background-color: var(
                    --color-background-info-main-view-banner-action-button-active
                );
            }

.upload_banner {
    overflow: hidden;
}

.upload_banner.hidden {
        display: none;
    }

.upload_banner .moving_bar {
        position: absolute;
        width: 0;
        /* The progress updates seem to come every second or so,
        so this is the smoothest it can probably get. */
        transition: width 1s ease-in-out; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
        background: var(--color-background-main-view-banner-moving-bar);
        top: 0;
        bottom: 0;
    }

/* Keep these elements visible above the
       .moving_bar element on file uploads. */

.upload_banner .upload_msg,.upload_banner .main-view-banner-close-button,.upload_banner .upload_banner_cancel_button {
        z-index: 1;
        position: relative;
    }

.composition-area {
    position: relative;
    flex: 1;
}

@keyframes message-limit-flash {
    0% {
        box-shadow: none;
    }

    100% {
        box-shadow: 0 0 0 1pt
            var(--color-message-content-container-border-over-limit);
    }
}

textarea.new_message_textarea {
    display: table-cell;
    padding: 5px 5px 0;
    height: 1.5em;
    max-height: 22em;
    margin: 0;
    resize: none !important;
    border-radius: 3px 3px 0 0;
    border: none;
    scrollbar-width: thin;
    scrollbar-color: hsl(0deg 0% 50%) transparent;
    box-shadow: none;
}

textarea.new_message_textarea:focus {
        outline: 0;
    }

textarea.new_message_textarea:read-only,textarea.new_message_textarea:disabled {
        background-color: hsl(0deg 0% 93%);
    }

#message-content-container,
#compose_recipient_box {
    color: var(--color-text-default);
}

#compose_recipient_box {
    display: grid;
    /* When displaying #topic-not-mandatory-placeholder,
       we let it occupy the entire topic box. Otherwise,
       we set and preserve named areas for the ordinary
       topic text and the clear-topic button. */
    grid-template-columns:
        [topic-box-start topic-start] minmax(0, 1fr)
        [topic-end topic-clear-button-start] auto [topic-clear-button-end topic-box-end];
    grid-template-rows: [topic-box-start topic-start topic-clear-button-start] auto [topic-clear-button-end topic-end topic-box-end];
    align-content: center;
    align-items: stretch;
    flex: 1 1 0;
    border: 1px solid var(--color-compose-recipient-box-border-color);
    border-radius: 4px;
    background: var(--color-compose-recipient-box-background-color);
}

#compose_recipient_box:hover {
        border-color: var(--color-compose-recipient-box-hover);
    }

/* Give the recipient box, a `<div>`, the
       correct styles when focus is in the
       #stream_message_recipient_topic `<input>` */

#compose_recipient_box:focus-within {
        border-color: var(--color-compose-recipient-box-has-focus);
    }

#compose_recipient_box #stream_message_recipient_topic,#compose_recipient_box #recipient_box_clear_topic_button {
        background: none;
        border: none;
    }

#compose_recipient_box #stream_message_recipient_topic:disabled {
            cursor: default;
            opacity: 1;
        }

#compose_recipient_box #recipient_box_clear_topic_button:disabled {
            cursor: default;
            opacity: 1;
        }

/* Styles for input in the recipient_box */

#compose_recipient_box #stream_message_recipient_topic {
        grid-area: topic;
        color: var(--color-compose-recipient-box-text-color);
        /* Keep the line-height matched to the font-size
           for a more predictable box height.
           This will have to be watched very closely for
           possible regressions, such as when Unicode emoji
           appear in the topic box. */
        line-height: 1;
        /* Override grid's effective `max-content` min-width */
        overflow: hidden;
        text-overflow: ellipsis;

        box-shadow: none;
        outline: none;

        padding: 0 6px;
        /* Reset height to let `align-items: stretch` on the grid parent handle this. */
        height: auto;
    }

#compose_recipient_box #stream_message_recipient_topic.empty-topic-display::placeholder {
            color: var(--color-compose-recipient-box-text-color);
        }

#compose_recipient_box #topic-not-mandatory-placeholder {
        grid-area: topic-box;
        align-self: center;
        white-space: nowrap;
        overflow-x: hidden;
        text-overflow: ellipsis;
        padding: 5px 6px;
        display: none;
        visibility: hidden;
        pointer-events: none;
    }

#compose_recipient_box #topic-not-mandatory-placeholder.visible {
            visibility: visible;
        }

/* Styles for new conversation button in the recipient_box */

#compose_recipient_box #recipient_box_clear_topic_button {
        grid-area: topic-clear-button;
        /* Set the border radius smaller, relative to the parent */
        border-radius: 2px;
        padding: 6px;
        margin: 1px;
        color: var(--color-compose-embedded-button-text-color);
    }

#compose_recipient_box #recipient_box_clear_topic_button .zulip-icon {
            display: block;
        }

#compose_recipient_box #recipient_box_clear_topic_button:hover {
            background-color: var(
                --color-compose-embedded-button-background-hover
            );
            color: var(--color-compose-embedded-button-text-color-hover);
        }

#compose_recipient_box #recipient_box_clear_topic_button:focus {
            outline: 0;
        }

#compose_recipient_box #stream_message_recipient_topic:not(.empty-topic-display):placeholder-shown ~ #recipient_box_clear_topic_button {
        visibility: hidden;
    }

#compose_recipient_box #stream_message_recipient_topic:disabled ~ #recipient_box_clear_topic_button {
        visibility: hidden;
    }

/* This will reset the bootstrap margin-bottom: 10px value for the inputs */

#compose_recipient_box input {
        margin-bottom: 0;
    }

#compose_recipient_box.disabled {
        background-color: transparent;
        border-color: transparent;
        max-width: -moz-fit-content;
        max-width: fit-content;
    }

#compose_select_recipient_widget {
    /* We set width to 100% to get the ellipsis when
       needed, but the flex and max-width properties
       on the widget wrapper ultimately determine
       how much space the channel picker occupies. */
    width: 100%;
    outline: none;
    /* We override the component-level colors to
       ensure concord with the topic box. */
    color: var(--color-compose-recipient-box-text-color);
    background-color: var(--color-compose-recipient-box-background-color);
    border-color: var(--color-compose-recipient-box-border-color);
}

#compose_select_recipient_widget:hover,#compose_select_recipient_widget.widget-open {
        border-color: var(--color-compose-recipient-box-hover);
    }

#compose_select_recipient_widget.dropdown-widget-button {
        /* We control the surrounding space through the
           grid on `.dropdown_widget_value`. */
        padding: 0;
        border-radius: 4px;
    }

#compose_select_recipient_widget .dropdown_widget_value {
        text-overflow: ellipsis;
        overflow: hidden;
    }

#private_message_recipient.recipient_box {
    width: 100%;
}

#compose-direct-recipient .pill-container .pill {
    /* This is necessary to avoid an otherwise unstyled
       flash of outline around pills when focus shifts out
       of the recipient row and transitions are in effect. */
    outline-color: transparent;
}

/* We want transitions to run only on user interactions with
   the mouse, once the compose box is open. Any keyboard
   interactions (e.g., Shift-Tabbing from the compose textarea
   to the topic box) show instant changes, so we don't need to
   accommodate them here, which we prevent by applying the
   transitions only when focus isn't within the recipient row. */
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #compose_select_recipient_widget {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: background-color, border-color;
        }
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #compose_recipient_box {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: background-color, border-color;
        }
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #compose-direct-recipient .pill-container {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: background-color, border-color;
        }
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #compose_select_recipient_widget .channel-privacy-type-icon {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: color;
        }
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #recipient_box_clear_topic_button {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: color, background-color, opacity;
        }
#compose.compose-box-open .low-attention-recipient-row:hover:not(:focus-within) #compose-direct-recipient .pill {
            transition: var(--compose-recipient-row-transition);
            transition-delay: var(--compose-recipient-row-transition-delay);
            transition-property: outline-color;
        }
#compose.compose-box-open #compose-recipient.low-attention-recipient-row:hover:not(:focus-within) .decorated-channel-name {
                transition: var(--compose-recipient-row-transition);
                transition-delay: var(--compose-recipient-row-transition-delay);
                transition-property: opacity;
            }
#compose.compose-box-open #compose-recipient.low-attention-recipient-row:hover:not(:focus-within) .zulip-icon-chevron-down {
                transition: var(--compose-recipient-row-transition);
                transition-delay: var(--compose-recipient-row-transition-delay);
                transition-property: opacity;
            }
#compose.compose-box-open #compose-recipient.low-attention-recipient-row:hover:not(:focus-within) .conversation-arrow {
                transition: var(--compose-recipient-row-transition);
                transition-delay: var(--compose-recipient-row-transition-delay);
                transition-property: opacity;
            }
#compose.compose-box-open #compose-recipient.low-attention-recipient-row:hover:not(:focus-within) #stream_message_recipient_topic {
                transition: var(--compose-recipient-row-transition);
                transition-delay: var(--compose-recipient-row-transition-delay);
                transition-property: opacity;
            }

/* For the sake of keyboard use, we do not want to apply
   these styles when any element (the picker, user pills)
   has focus. */
#compose-recipient.low-attention-recipient-row:not(:focus-within) .decorated-channel-name,#compose-recipient.low-attention-recipient-row:not(:focus-within) .conversation-arrow,#compose-recipient.low-attention-recipient-row:not(:focus-within) #stream_message_recipient_topic {
            opacity: 0.9;
        }
#compose-recipient.low-attention-recipient-row:not(:focus-within) .zulip-icon-chevron-down {
            opacity: 0;
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget,.low-attention-recipient-row:not(:focus-within) #compose_recipient_box,.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container {
        background-color: transparent;
        border-color: transparent;

        /* Particularly in light mode, pill colors are almost identical
           to the compose-box background. We place a higher-contrast
           outline on them in the low-attention state. */
    }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist) .pill {
            outline: 1px solid var(--color-outline-low-attention-input-pill);
            /* We offset the outline so that pills do not appear to touch,
               especially in dark mode where the outline color is otherwise
               the same as the pill color (the opacity makes it brighter
               when so offset, too). */
            outline-offset: -1px;
        }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist) .pill {
            outline: 1px solid var(--color-outline-low-attention-input-pill);
            /* We offset the outline so that pills do not appear to touch,
               especially in dark mode where the outline color is otherwise
               the same as the pill color (the opacity makes it brighter
               when so offset, too). */
            outline-offset: -1px;
        }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container .pill {
            outline: 1px solid var(--color-outline-low-attention-input-pill);
            /* We offset the outline so that pills do not appear to touch,
               especially in dark mode where the outline color is otherwise
               the same as the pill color (the opacity makes it brighter
               when so offset, too). */
            outline-offset: -1px;
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) {
            background-color: var(
                --color-compose-recipient-box-background-color
            );
            border-color: var(--color-compose-recipient-box-border-color);
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) {
            background-color: var(
                --color-compose-recipient-box-background-color
            );
            border-color: var(--color-compose-recipient-box-border-color);
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) {
            background-color: var(
                --color-compose-recipient-box-background-color
            );
            border-color: var(--color-compose-recipient-box-border-color);
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) .decorated-channel-name {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) .decorated-channel-name {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) .decorated-channel-name {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) .zulip-icon-chevron-down {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) .zulip-icon-chevron-down {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) .zulip-icon-chevron-down {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) .conversation-arrow {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) .conversation-arrow {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) .conversation-arrow {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) #stream_message_recipient_topic {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) #stream_message_recipient_topic {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) #stream_message_recipient_topic {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist):hover:not(.disabled) .pill {
                outline-color: transparent;
            }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist):hover:not(.disabled) .pill {
                outline-color: transparent;
            }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container:hover:not(.disabled) .pill {
                outline-color: transparent;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:not(.does-not-exist) #recipient_box_clear_topic_button:hover {
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose_recipient_box:not(.does-not-exist) #recipient_box_clear_topic_button:hover {
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose-direct-recipient .pill-container #recipient_box_clear_topic_button:hover {
            opacity: 1;
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget .channel-privacy-type-icon.zulip-icon {
            color: var(--privacy-icon-color-modified);
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget:hover .channel-privacy-type-icon.zulip-icon {
            color: var(--privacy-icon-color-original);
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget.widget-open {
            background-color: var(--color-background-dropdown-widget-button);
            border-color: var(--color-compose-recipient-box-border-color);
        }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget.widget-open .channel-privacy-type-icon {
                color: var(--privacy-icon-color-original);
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget.widget-open .decorated-channel-name {
                opacity: 1;
            }
.low-attention-recipient-row:not(:focus-within) #compose_select_recipient_widget.widget-open .zulip-icon-chevron-down {
                opacity: 1;
            }

.compose-send-or-save-button {
    border-radius: 4px;
    border: 0;
    margin-bottom: 0;
    color: var(--color-compose-send-button-icon-color);
    background-color: var(--color-compose-send-button-background);
}

.compose-send-or-save-button:active {
        transition: transform 80ms;
        transform: scale(0.96);
    }

.compose-send-or-save-button:focus {
        outline: 0;
    }

.compose-send-or-save-button:focus-visible {
        border: 1px solid var(--color-compose-send-button-focus-border);
        box-shadow: 0 0 5px var(--color-compose-send-button-focus-shadow);
        /* Override default browser ring. */
        outline: 0;
    }

.compose-send-or-save-button:hover {
        background-color: var(
            --color-compose-send-button-background-interactive
        );
    }

#compose-send-button {
    width: 74px;
    height: var(--compose-formatting-buttons-row-height);
    /* Allow to grow but not shrink */
    flex: 1 0 auto;
    /* Override inherited styles
       so that flexbox can do the
       job of positioning the icon. */
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Flex items respect z-index values;
       this is needed to keep the send
       button over top of the vdots
       background */
    z-index: 1;
}

@media (max-width: 575.98px), ((min-width: 576px) and (max-width: 848.98px)) {

#compose-send-button {
        /* Drop to a square button,
           and don't flex any wider. */
        width: 30px;
        flex-grow: 0;
}
    }

#compose-send-button .zulip-icon-send {
        display: block;
        font-size: 1.2143em; /* 17px at 14px/em */
        line-height: 0.9412; /* 16px at 17px/em */
    }

#compose-send-button .loader {
        display: none;
    }

.enter_sends_choices {
    display: flex;
    flex-direction: column;
    color: var(--color-text-popover-menu);
}

.enter_sends_choices .enter_sends_choice {
        padding: 4px 10px;
        gap: 0 8px;
        display: grid;
        /* 1em and 1.5em were chosen from playing around with different values
           and picking some that looked reasonable. */
        grid-template:
            "radio-button instructions" 1.5em
            ".            instructions" auto / 1em auto;
    }

.enter_sends_choices .enter_sends_choice:hover {
            background: var(--color-background-hover-popover-menu);
            outline: none;
        }

.enter_sends_choices .enter_sends_choice:active {
            background: var(--color-background-active-popover-menu);
        }

.enter_sends_choices .enter_sends_choice:focus-visible {
            background: var(--color-background-hover-popover-menu);
            border-radius: 4px;
            outline: 1px solid var(--color-outline-focus) !important;
            outline-offset: -1px;
        }

.enter_sends_choices .enter_sends_choice .enter_sends_choice_radio {
            width: auto;
            cursor: pointer;
            /* Radio buttons scale with height, and here we're just
               matching that to the active font-size. */
            height: 1em;
            accent-color: hsl(217deg 100% 60%);
            grid-area: radio-button;
            align-self: center;
        }

.enter_sends_choices .enter_sends_choice .enter_sends_choice_radio:focus {
                outline: 1px dotted hsl(0deg 0% 20%);
                outline: 5px auto -webkit-focus-ring-color;
                outline-offset: -2px;
            }

.enter_sends_choices .enter_sends_choice .enter_sends_choice_radio:checked + .enter_sends_choice_text_container .popover-menu-hotkey-hint {
                color: hsl(217deg 100% 60%);
                border: 1px solid hsl(217deg 100% 60% / 50%);
            }

.enter_sends_choices .enter_sends_choice_text_container {
        display: flex;
        flex-direction: column;
        flex-shrink: 0;
        gap: 3px;
        white-space: nowrap;
        grid-area: instructions;
    }

.enter_sends_choices .enter_sends_choice_text {
        display: flex;
        align-items: center;
        gap: 3px;
    }

.enter_sends_choices .popover-menu-hotkey-hints {
        margin: 0;
        padding: 0;
    }

.enter_sends_choices .popover-menu-hotkey-hints .popover-menu-hotkey-hint {
            padding: 2px 5px;
            display: flex;
        }

.enter_sends_choices .enter_sends_major {
        /* 15px at 14px/1em */
        font-size: 1.0714em;
    }

.enter_sends_choices .enter_sends_minor {
        /* 12px at 14px/1em */
        font-size: 0.8571em;
    }

.enter_sends_choices .enter_sends_minor .popover-menu-hotkey-hint {
            /* 12px at 14px/1em */
            font-size: 0.8571em;
            padding: 1px 4px;
        }

.drafts-item-in-popover {
    display: none;
    /* Only show the Drafts item in the popover when it's not visible
       in the compose box. */
}

@media (max-width: 575.98px) {

.drafts-item-in-popover {
        display: block;
}
    }

.drafts-item-in-popover .unread_count {
        margin: 1px 0 0 6px;
    }

#compose-recipient {
    /* Set a line-height equal to the font-size to
       make a compact, predictably tall recipient row. */
    line-height: 1;
    display: flex;
    flex: 1 1 0;
    /* Use this containing flex element to
      establish the minimum height of all its
      children; the default `align-items: stretch`
      (which is set on any flexbox without specifying
      it) ensures that the child flex items will
      always stretch to fit the height set here;
      larger heights, such as on group-DM pills,
      will allow this to grow as needed.
      Child flex items like chevrons take
      `align-self: center` to center only
      themselves, where necessary. */
    min-height: var(--compose-recipient-box-min-height);
    min-width: 0;
}

.compose-control-buttons-container {
    display: flex;
    align-items: center;
    /* 30px at 15px/1em */
    height: var(--compose-formatting-buttons-row-height);
}

.compose-control-buttons-container .compose_control_button {
        /* 22px at 15px/1em */
        font-size: 1.4667em;
        /* Constrain icon fonts to a perfect
           box (22px at 15px/1em) to sit centered
           in the 30px by 30px button area. */
        line-height: 1;
        /* Coordinate with the value of
           --compose-formatting-buttons-row-height */
        /* 30px at 22px/1em */
        height: 1.3636em;
        width: 1.3636em;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0.7;
        color: inherit;
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.compose-control-buttons-container .compose_control_button:hover {
            opacity: 1;
            background-color: var(
                --color-compose-control-button-background-hover
            );
        }

.compose-control-buttons-container .compose_control_button:focus:not(:focus-visible) {
            outline: none;
        }

.compose-control-buttons-container .compose_control_button:focus-visible {
            outline-color: var(--color-compose-focus-ring);
        }

.compose-control-buttons-container .compose_control_button_container.disabled-on-hover:hover {
        opacity: 0.3;
    }

.compose-control-buttons-container .compose_control_button_container.disabled-on-hover:hover .compose_control_button {
            pointer-events: none;
        }

.compose-control-buttons-container .fa-eye {
        position: relative;
        top: -0.7px;
    }

.compose-control-buttons-container .divider {
        margin: 0 5px;
        /* Coordinate with the value of
           --compose-formatting-buttons-row-height */
        /* 16px at 14px/1em */
        height: 1.1429em;
        width: 1.5px;
        /* Prevent dividers from growing or shrinking. */
        flex: 0 0 auto;
        background-color: var(--color-compose-formatting-button-divider);
    }

@media (max-width: 399.98px) {

.compose-control-buttons-container .divider {
            /* Remove at mobile widths to make more space
               for compose buttons */
            display: none;
    }
        }

.message-send-controls {
    display: flex;
}

@media (max-width: 575.98px) {

.message-send-controls {
        /* At small widths, we display the
           diminutive Send button and vdots
           in a column, using `column-reverse`
           to put the vdots above Send. */
        flex-direction: column-reverse;
}
    }

.message-send-controls .compose-button-disabled {
        pointer-events: none;
    }

#compose-send-button.disabled-message-send-controls {
    cursor: default;
    opacity: 0.5;
}

.drag {
    display: none;
    height: 18px;
    width: 100%;
    top: 23px;
    position: relative;
    cursor: ns-resize;
}

.preview_message_area {
    padding: 5px 5px 0;
    overflow: auto;
}

.markdown_preview_spinner {
    margin: auto;
}

#compose_select_recipient_widget_wrapper {
    display: flex;
    /* Allow the contents wrapped here to
       expand the available space... */
    white-space: nowrap;
    /* And follow the fitted content on the
       flexbox. */
    flex: 0 0 fit-content;
    /* But force an ellipsis here, rather than
       just on an inner element. */
    overflow: hidden;
    text-overflow: ellipsis;
    /* Finally, hold this to a maximum width of
       40% of the recipient row. */
    max-width: 40%;
}

#compose_select_recipient_widget_wrapper:focus-visible {
        outline: 0;
    }

#compose_select_recipient_widget_wrapper:focus-visible #compose_select_recipient_widget {
            border-color: var(--color-compose-recipient-box-has-focus);
        }

#compose_select_recipient_widget_wrapper .dropdown_widget_value {
        flex-grow: 1;
        display: grid;
        align-items: baseline;
        /* This is a bit of eyeball work, based on balancing
           out the size and spatial relationships between the
           privacy icon and the channel name, and the
           surrounding negative space. */
        /* 7px at 20px/1em; 4px at 20px/1em. */
        grid-template:
            "lefthand-offset privacy-icon privacy-icon-gap channel-name righthand-offset" auto / 0.35em [select-label-start] auto 0.2em minmax(
                0,
                1fr
            )
            [select-label-end]
            0.35em;
    }

#compose_select_recipient_widget_wrapper .dropdown_widget_value .channel-privacy-type-icon {
            grid-area: privacy-icon;
            place-self: center;
            font-size: 0.95em; /* 19px at 20px/1em */
            margin-top: -0.0579em; /* Eyeball work; 1.1px at 19px/1em */
            color: var(--privacy-icon-color-original);
            /* Eliminate inherited component styles. */
            position: static;
            padding: 0;
            width: 1em;
            height: 1em;
        }

#compose_select_recipient_widget_wrapper .dropdown_widget_value .channel-privacy-type-icon.zulip-icon-lock {
                /* The lock looks better centered without
                   a negative margin-top adjustment. */
                margin-top: 0;
            }

#compose_select_recipient_widget_wrapper .dropdown_widget_value .select-channel-label,#compose_select_recipient_widget_wrapper .dropdown_widget_value .decorated-dm-label,#compose_select_recipient_widget_wrapper .dropdown_widget_value .decorated-channel-name {
            grid-area: channel-name;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            color: var(--color-text-default);
        }

#compose_select_recipient_widget_wrapper .dropdown_widget_value .select-channel-label {
            grid-area: select-label;
        }

/* We suppress the chevron on the channel picker. */

#compose_select_recipient_widget_wrapper .zulip-icon-chevron-down {
        display: none;
    }

/* Class for send-area buttons, such as
   Drafts and the send-adjacent vdots */
.send-control-button {
    border: 0;
    outline: 0;
    padding: 0;
    margin: 0;
    border-radius: 4px;
    color: var(--color-compose-send-control-button);
    background-color: var(--color-compose-send-control-button-background);
    font-weight: 450;
}
.send-control-button:active {
        transition: transform 80ms;
        transform: scale(0.96);
    }
.send-control-button:focus:not(:focus-visible) {
        outline: none;
    }
.send-control-button:focus-visible {
        outline-color: var(--color-compose-focus-ring);
    }
.send-control-button:hover {
        /* We need to use !important here, regrettably, to keep the default
           dark-mode hover colors from showing. */
        color: var(--color-compose-send-control-button-interactive) !important;
        background-color: var(
            --color-compose-send-control-button-background-interactive
        );
        -webkit-text-decoration: none;
        text-decoration: none;
    }

/* vdots icon located next to `Send` button which shows
   options to schedule the message. */
#send_later {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    /* Allow to grow but not shrink */
    flex: 1 0 auto;
    height: var(--compose-formatting-buttons-row-height);
    /* Make the vdots appear to extend from
       beneath the send button when an
       interactive background is present.
       Compensatory padding for this negative
       margin is handled on the vdots icon
       below, so as to make for a maximum
       clickable vdots area. */
    margin-left: -4px;
    border-radius: 0 4px 4px 0;
    /* Flex items respect z-index values;
       this is needed to keep the vdots
       background beneath the send button. */
    z-index: 0;
}
#send_later:focus-visible {
        /* Use a border, not an outline, to preserve the
           conjoined layout with the Send button. Flexbox
           will handle the dimension change, so there won't
           be any movement of the vdots in this state. */
        outline: 0;
        border: 2px solid var(--color-compose-focus-ring);
    }
@media ((min-width: 576px) and (max-width: 848.98px)) {
#send_later {
        width: 32px;
}
    }
@media (max-width: 575.98px) {
#send_later {
        /* Drop to a square, rounded button. */
        width: 30px;
        /* This reduces the vdots button so that
           it and the send button fit within the
           53px height the compose textarea occupies,
           including its top border. */
        height: 25px;
        margin-left: 0;
        border-radius: 4px;
}
    }
#send_later .zulip-icon {
        padding: 5px 0 5px 4px;
        /* 17px at 14px/1em */
        font-size: 1.2143em;
        flex-grow: 1;
    }
@media (max-width: 575.98px) {
#send_later .zulip-icon {
            /* Keep vdots centered above the
               Send button at smallest sizes. */
            padding-left: 0;
    }
        }

#compose-drafts-button {
    /* Use border-box sizing to make
       width calculations more predictable
       in a flex context. */
    box-sizing: border-box;
    /* In a columnar flex, we need to
       use alignment to keep the Drafts
       button from expanding the full
       width of the column. */
    align-self: flex-start;
    /* Keep the Drafts button text
       aligned with the Send button's
       lefthand edge */
    padding: 0 8px;
    margin-left: -8px;
    /* Allow the button to occupy as much
       as 100% of the container width, plus
       the 8px from the negative left margin. */
    max-width: calc(100% + 8px);
    display: flex;
    gap: 2px;
}

#compose-drafts-button .compose-drafts-text {
        /* Set an ellipsis when the translated
           version of `Drafts` exceeds the width,
           and keep button text to a single line. */
        white-space: nowrap;
        overflow-x: hidden;
        text-overflow: ellipsis;
        flex-grow: 1;
    }

@media (max-width: 848.98px) {

#compose-drafts-button {
        /* Reduce the padding on the sides so the
        button's edge isn't too close to the textarea */
        margin-left: -3px;
        max-width: calc(100% + 3px);
        /* Align the `Drafts` text with the
           send icon below. */
        padding: 0 3px;
}
    }

.saved_snippets-dropdown-list-container {
    width: 17.8571em; /* 250px at 14px/em */
}

.saved_snippets-dropdown-list-container .dropdown-list .dropdown-list-item-common-styles {
        padding: 0.3571em 0.7143em; /* 5px 10px at 14px/em */
        /* Make content appear more distinct from
           the snippet name. */
        border-bottom: solid 1px var(--color-border-popover-menu-separator);
    }

.saved_snippets-dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-name {
            line-height: 1.2em;
        }

.saved_snippets-dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-item-description {
            font-weight: 400;
            font-size: 0.9283em; /* 13px at 14px/em */
            opacity: 0.8;
            padding: 0;
            text-overflow: ellipsis;
            overflow: hidden;
        }

.saved_snippets-dropdown-list-container .dropdown-list .dropdown-list-item-common-styles .dropdown-list-text-selected {
            font-weight: 500;
            max-width: 210px;
            display: inline-block;
            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }

#add-new-saved-snippet-modal .saved-snippet-title,#edit-saved-snippet-modal .saved-snippet-title {
        width: 97%;
        margin-bottom: 20px;
    }

#add-new-saved-snippet-modal .saved-snippet-content,#edit-saved-snippet-modal .saved-snippet-content {
        width: 97%;
        resize: vertical;
    }

#compose.compose-fullscreen,
#compose.compose-intermediate {
    z-index: 99;
}

#compose.compose-fullscreen #compose-container,#compose.compose-intermediate #compose-container {
        height: 100%;
    }

#compose.compose-fullscreen .message_comp,#compose.compose-intermediate .message_comp {
        flex: 1;
        display: flex !important;
        flex-flow: column;
    }

#compose.compose-fullscreen #compose-textarea,#compose.compose-intermediate #compose-textarea,#compose.compose-fullscreen #preview_message_area,#compose.compose-intermediate #preview_message_area {
        /* When in full screen, override max-height
           properties set from manually resizing. */
        max-height: none !important;
    }

#compose.compose-fullscreen #compose-textarea,#compose.compose-intermediate #compose-textarea {
        /* Additionally, override the height properties
           on the textarea. This is essential if the
           textarea has been manually resized prior
           to going into fullscreen. */
        height: auto !important;
    }

#compose.compose-fullscreen #preview_message_area,#compose.compose-intermediate #preview_message_area {
        /* Setting height to 0 is necessary to make the flex+Simplebar
           combination work correctly, without pushing the compose
           controls offscreen when previewing a very tall message. */
        height: 0;
        flex: 1;
    }

#compose.compose-fullscreen .maximize-composebox-button,#compose.compose-fullscreen .expand-composebox-button {
        display: none;
    }

#compose.compose-fullscreen .collapse-composebox-button {
        display: flex;
    }

#compose.compose-intermediate .collapse-composebox-button,#compose.automatically-expanded .collapse-composebox-button,#compose.compose-intermediate .expand-composebox-button,#compose.automatically-expanded .expand-composebox-button {
        display: none;
    }

#compose.compose-intermediate .maximize-composebox-button,#compose.automatically-expanded .maximize-composebox-button {
        display: flex;
    }

#compose.compose-intermediate {
    height: var(--max-unmaximized-compose-height);
}

.preview_mode #preview-message-area-container {
        /* When in preview mode, we display the
           preview container as a columnar flexbox.
           This containing element is necessary
           because Simplebar on its own will cause
           a grid blowout despite a minmax(0, 1fr)
           row definition. */
        display: flex;
        flex-flow: column;
    }

.preview_mode .preview_mode_disabled {
        opacity: 0.3;
    }

.preview_mode .preview_mode_disabled .compose_control_button {
            pointer-events: none;
        }

.preview_mode .message-textarea,.preview_mode .message-edit-textbox {
        /* In preview mode, we hide the message edit
           textbox to prevent it from appearing behind
           the preview container. We cannot set its
           display to none or visibility to hidden, as
           that would prevent us from modifying the
           textarea's value.

           The !important use here in necessary to be sure
           we override the inline styles set on the
           compose textarea. */
        height: 0 !important;
        overflow: hidden !important;
    }

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/message_edit_history.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/

    .message-edit-history-container .header-body {
        display: flex;
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
        gap: 5px;
    }
@media (max-width: 991.98px) {
        .message-edit-history-container .header-body {
            display: block;
    }
        }
/*
        styles are based on drafts-list
        see web/styles/drafts.css
        */
.message-edit-history-container .message-edit-history-list h2 {
            font-size: 1.1em;
            line-height: normal;
            margin-bottom: 5px;
        }
.message-edit-history-container .message_edit_history_content .highlight_text_inserted {
            color: var(--color-message-edit-history-text-inserted);
            background-color: var(
                --color-message-edit-history-background-inserted
            );
        }
.message-edit-history-container .message_edit_history_content .highlight_text_deleted {
            color: var(--color-message-edit-history-text-deleted);
            background-color: var(
                --color-message-edit-history-background-deleted
            );
            -webkit-text-decoration: line-through;
            text-decoration: line-through;
            word-break: break-all;
        }
.message-edit-history-container .messagebox-content {
        display: block !important;
    }
.message-edit-history-container .messagebox-content .message_content {
            cursor: default !important;
        }
.message-edit-history-container #message-history-error {
        /*
        styles are based on .model_content
        see web/styles/modal.css
        */
        font-size: 1rem;
        display: none;
        margin: 10px;
    }
.message-edit-history-container .overlay_loading_indicator_style {
        width: 100% !important;
        height: 100% !important;
        display: flex;
        justify-content: center;
        align-items: center;
    }

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/reactions.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.message_reactions {
    overflow: hidden;
    -webkit-user-select: none;
            user-select: none;
}

.message_reactions:has(.message_reaction) {
        margin-bottom: var(--message-box-markdown-aligned-vertical-space);
    }

.message_reactions .message_reaction_container.disabled {
            cursor: not-allowed;
        }

.message_reactions .message_reaction {
        display: flex;
        /* Set a pixel and half padding to maintain
           pill height adjacent own reactions. */
        padding: 1.5px 4px 1.5px 3px;
        box-sizing: border-box;
        min-width: 44px;
        cursor: pointer;
        color: var(--color-message-reaction-text);
        background-color: var(--color-message-reaction-background);
        border: 1px solid var(--color-message-reaction-border);
        border-radius: 21px;
        align-items: center;
        box-shadow: inset 0 0 5px 0 var(--color-message-reaction-shadow-inner);
        transition:
            transform 100ms linear,
            font-weight 100ms linear; /* stylelint-disable-line plugin/no-low-performance-animation-properties */
    }

.message_reactions .message_reaction.reacted {
            color: var(--color-message-reaction-text-reacted);
            background-color: var(--color-message-reaction-background-reacted);
            border-color: var(--color-message-reaction-border-reacted);
            /* Make this border thicker by half a pixel,
               to make own reactions more prominent. */
            border-width: 1.5px;
            /* Reduce the padding top and bottom by half
               a pixel accordingly, to maintain the same
               pill height. */
            padding: 1px 4px 1px 3px;
            font-weight: var(--font-weight-message-reaction);
            box-shadow: none;
        }

.message_reactions .message_reaction.disabled {
            pointer-events: none;
        }

.message_reactions .message_reaction:hover {
            background-color: var(--color-message-reaction-background-hover);
        }

.message_reactions .message_reaction:active {
            transform: scale(var(--scale-message-reaction-active));
        }

.message_reactions .message_reaction .emoji {
            margin: 1px 3px;
            /* 17px at 14px/1em */
            height: 1.2143em;
            width: 1.2143em;
            /* Preserve the emoji's dimensions, no
               matter what the flexbox does. */
            flex-shrink: 0;
            /* Don't inherit position: relative; from
               the base .emoji class. */
            position: static;
        }

.message_reactions .message_reaction .emoji_alt_code {
            /* Apply the same margins as on graphical emoji. */
            margin: 1px 3px;
            font-size: 0.8em;
        }

.message_reactions .message_reaction_count {
        /* 90% works out here to 12.6px */
        font-size: 90%;
        /* No top and bottom margin; just allow
           flexbox to handle the vertical alignment. */
        margin: 0 3px;
        /* Set the 12.6px text on a 13px line;
           the goal is to center correctly on the
           vertical with square emoji, resulting in
           equal space above and below the reaction
           count/name.
           13px at 12.6/1em */
        line-height: 1.0317em;
    }

.message_reactions .message_reaction:hover .message_reaction_count {
        color: var(--color-message-reaction-button-text-hover);
    }

.message_reactions:hover .reaction_button {
        visibility: visible;
        pointer-events: all;
    }

.message_reactions .emoji-message-control-button-container {
        display: flex;
        align-items: center;
    }

.message_reactions .reaction_button {
        visibility: hidden;
        pointer-events: none;
        /* Set top/bottom padding to accommodate borders
           and padding around reaction pills. */
        padding: 4px 6px;
        border-radius: 21px;
        color: var(--color-message-reaction-button-text);
        background-color: var(--color-message-reaction-button-background);
        border: 1px solid var(--color-message-reaction-button-border);
    }

.message_reactions .reaction_button i {
            font-size: 1em;
            color: var(--color-message-reaction-button-text);
        }

.message_reactions .reaction_button:hover i {
            color: var(--color-message-reaction-button-text-hover);
        }

.message_reactions .reaction_button:hover {
            color: var(--color-message-reaction-button-text-hover);
            background-color: var(
                --color-message-reaction-button-background-hover
            );
            border: 1px solid var(--color-message-reaction-button-border-hover);
            border-color: var(--color-message-reaction-button-border-hover);
            box-shadow: inset 0 0 5px 0
                var(--color-message-reaction-shadow-inner);
            cursor: pointer;
            opacity: 1;
        }

.message_reactions .reaction_button .message_reaction_count {
            font-weight: 700;
            color: var(--color-message-reaction-button-text);
            margin-right: 0;
            line-height: 14px;
        }

.message_reactions .reaction_button:hover .message_reaction_count {
            color: var(--color-message-reaction-button-text-hover);
        }

.active-emoji-picker-reference,
.active-playground-links-reference {
    visibility: visible !important;
    pointer-events: all !important;
    opacity: 1 !important;
}

.emoji-picker-popover {
    padding: 0;
    -webkit-user-select: none;
            user-select: none;
}

.emoji-picker-popover .emoji-popover {
        width: 16.6667em; /* 250px at 15px/em */
    }

.emoji-picker-popover .emoji-popover .emoji-popover-category-tabs {
            /* Flex needed here to work around #7511 (90% zoom issues in firefox) */
            display: flex;
            background-color: var(--color-background-emoji-picker-popover);
            width: 100%;
            box-sizing: border-box;
            overflow: hidden;
        }

.emoji-picker-popover .emoji-popover .emoji-popover-category-tabs .emoji-popover-tab-item {
                font-size: 1.0667em; /* 16px at 15px/em */
                display: inline-block;
                padding-top: 0.5em; /* 8px at 16px/em */
                width: 1.5625em; /* 25px at 16px/em */
                height: 1.5625em; /* 25px at 16px/em */
                text-align: center;
                cursor: pointer;
                /* Flex needed here to work around #7511 (90% zoom issues in firefox) */
                flex-grow: 1;
            }

.emoji-picker-popover .emoji-popover .emoji-popover-category-tabs .emoji-popover-tab-item.active {
                    background-color: var(
                        --color-background-emoji-picker-popover-tab-item-active
                    );
                }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji-map,.emoji-picker-popover .emoji-popover .emoji-search-results-container {
            padding: 0;
            position: relative;
            overflow: hidden auto;
            display: block;
            width: 16.4667em; /* 247px at 15px/em */
            padding-left: 0.2em; /* 3px at 15px/em */
        }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji-map {
            height: 16.6667em; /* 250px at 15px/em */
        }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji-map .emoji-popover-subheading {
                font-weight: 600;
                padding: 0.3333em 0.2em; /* 5px 3px at 15px/em */
            }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji {
            display: inline-block;
            margin: 0;
            padding: 0.4em; /* 6px at 15px/em */
            cursor: pointer;
            border-radius: 0.5em;
            height: 1.6667em; /* 25px at 15px/em */
            width: 1.6667em; /* 25px at 15px/em */
        }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji:focus {
                background-color: var(
                    --color-background-emoji-picker-emoji-focus
                );
                /* Only dark mode takes a box shadow on
                   the emoji-picker's focused emoji. */
                box-shadow: 0 0 1px
                    var(--color-box-shadow-emoji-picker-emoji-focus);
                outline: none;
            }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji.reacted {
                background-color: var(
                    --color-background-emoji-picker-emoji-reacted
                );
                border-color: var(--color-border-emoji-picker-emoji-reacted);
            }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji.reacted:focus {
                background-color: var(
                    --color-background-emoji-picker-emoji-reacted-focus
                );
            }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji.hide {
                display: none;
            }

.emoji-picker-popover .emoji-popover .emoji-popover-emoji .emoji {
                height: 1.6667em; /* 25px at 15px/em */
                width: 1.6667em; /* 25px at 15px/em */
            }

.emoji-picker-popover .emoji-popover .emoji-search-results-container {
            /* Keep it hidden initially to avoid it taking extra height
               when the emoji popover is initially rendered which can
               cause the popover to render at incorrect position when
               the search container is hidden `onMount`. */
            display: none;
            height: 18.8667em; /* 283px at 15px/em */
        }

.emoji-picker-popover .emoji-popover .emoji-search-results-container .emoji-popover-results-heading {
                font-size: 1.1333em; /* 17px at 15px/em */
                font-weight: 600;
                padding: 0.2941em 0.1765em 0.1765em 0.2941em; /* 5px 3px 3px 5px at 17px/em */
            }

.emoji-picker-popover .emoji-showcase-container {
        position: relative;
        background-color: var(--color-background-emoji-picker-popover);
        min-height: 2.9333em; /* 44px at 15px/em */
        width: 16.6667em; /* 250px at 15px/em */
        border-radius: 0 0 6px 6px;
    }

.emoji-picker-popover .emoji-showcase-container .emoji-preview {
            position: absolute;
            width: 2.1333em; /* 32px at 15px/em */
            height: 2.1333em; /* 32px at 15px/em */
            left: 0.3333em; /* 5px at 15px/em */
            top: 0.4em; /* 6px at 15px/em */
            margin-top: 0;
        }

.emoji-picker-popover .emoji-showcase-container .emoji-canonical-name {
            font-size: 1.0667em; /* 16px at 15px/em */
            position: relative;
            top: 0.75em; /* 12px at 16px/em */
            margin-left: 3.125em; /* 50px at 16px/em */
            font-weight: 600;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }

.typeahead .emoji {
    top: 2px;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/search.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
#searchbox {
    width: 100%;
    height: var(--header-height);
}
#searchbox .navbar-search {
        margin: 0.2187em 0; /* 3.5px at 16px em */
        border-radius: 5px;
        position: absolute;
        overflow: hidden;
        /* We bump the z-index to keep the search box
           clickable despite position-based layout
           adjustments. */
        z-index: 1;
    }
#searchbox .search_icon {
        grid-area: search-icon;
        align-self: center;
        -webkit-text-decoration: none;
        text-decoration: none;
        padding: 0 0.4117em; /* 7px at 17px em */
        font-size: 1.0625em; /* 17px at 16px em */
        border: none;
        background-color: transparent;
        color: var(--color-search-icons);
        opacity: 0.5;
        cursor: default;
    }
#searchbox .search_icon:active {
            outline: none;
        }
#searchbox .search_icon:focus {
            outline: none;
        }
#searchbox .search_icon:disabled {
            visibility: hidden;
        }
#searchbox .search_close_button {
        grid-area: search-close;
        width: 1.75em; /* 28px at 16px em */
        height: 100%;
        background: none;
        border: none;
        opacity: 0.5;
        line-height: 0;
        border-radius: 4px;
        /* Reset iOS button defaults. */
        color: var(--color-search-icons);
        padding: 0;
        outline: none;
    }
#searchbox .search_close_button:hover {
            opacity: 1;
        }
#searchbox .search_close_button:focus-visible {
            outline: 2px solid var(--color-outline-focus);
            outline-offset: -3px;
        }
#searchbox .search_close_button:disabled {
            visibility: hidden;
        }
#searchbox .search-input-and-pills {
        grid-area: search-pills;
        display: flex;
        padding: 0;
        flex-wrap: wrap;
        gap: 0.125em; /* 2px at 16px em */
        align-self: center;
    }
#searchbox .navbar-search:not(.expanded) {
        right: 0;
        background-color: var(--color-background-search-collapsed);
    }
#searchbox .navbar-search:not(.expanded) .search_close_button {
            display: none;
        }
#searchbox .navbar-search:not(.expanded) #searchbox-input-container {
            width: var(--search-box-width);
        }
@media (max-width: 767.98px) {
    #searchbox .navbar-search:not(.expanded) #searchbox-input-container {
                grid-template:
                    "search-icon search-pills" var(--search-box-height)
                    / var(--search-box-height) 0;
                -moz-column-gap: 0;
                     column-gap: 0;
        }
            }
#searchbox .navbar-search:not(.expanded) .search-input {
            border-radius: 5px;
            color: var(--color-text-search);
            box-shadow: none;
        }
#searchbox .navbar-search:not(.expanded):hover {
            cursor: pointer;
        }
@media (min-width: 768px) {
    #searchbox .navbar-search:not(.expanded):hover {
                box-shadow:
                    0 4px 20px var(--color-search-box-hover-shadow),
                    0 1px 5px var(--color-search-box-hover-shadow);
        }
            }
#searchbox .navbar-search:not(.expanded):hover .search_icon {
                cursor: pointer;
            }
@media (max-width: 767.98px) {
            #searchbox .navbar-search:not(.expanded) .search-input {
                opacity: 0;
            }
        }
@media (max-height: 599.98px) {
            #searchbox .navbar-search:not(.expanded) #searchbox-input-container .search_icon {
                font-size: 1.125em; /* 18px at 16px/em */
            }
        }
#searchbox .navbar-search.expanded {
        width: 100%;
        box-shadow:
            0 4px 20px var(--color-search-shadow-wide),
            0 1px 5px var(--color-search-shadow-tight);
    }
#searchbox .navbar-search.expanded .search-input {
            cursor: text;
        }
#searchbox .navbar-search.expanded #searchbox-input-container.pill-container {
            /* Pill container should display the same background
               color as the search typeahead. */
            background-color: var(--color-background-search);
        }
@media (max-width: 767.98px) {
    #searchbox .navbar-search.expanded {
            /* 3px chosen so that the cursor clicks the search button
               and close button from the same position. */
            width: calc(100% - 3px);
            /* z-index to not see the gear icon underneath */
            z-index: 1;
    }
        }
#searchbox .typeahead.dropdown-menu {
        /* Match the typeahead's width to its parent container. */
        right: 0;
        top: 0;
        margin-top: 0;
        padding-top: 0;
        box-shadow: none;
        position: relative;
        width: 100%;
        background: var(--color-background-search);
        color: var(--color-text-search);

        border-width: 0;
        border-top-width: 1px;
        border-top-color: var(--color-search-dropdown-top-border);
        border-radius: 0 0 4px 4px;
    }
#searchbox .typeahead.dropdown-menu .active > a {
            background-color: var(--color-background-search-option-hover);
            background-image: none;
            color: var(--color-text-search-hover);
        }
#searchbox .typeahead.dropdown-menu .typeahead-menu .simplebar-content {
            min-width: unset;
        }
#searchbox .typeahead.dropdown-menu .typeahead-menu .simplebar-content > li > a {
            max-width: none;
        }
#searchbox .input-append {
        position: relative;
        width: 100%;
        box-sizing: border-box;
        margin-bottom: 0;
    }
#searchbox .search-input {
        /* Avoid massive inheritance chain on font-size. */
        font-size: var(--base-font-size-px);
        /* override bootstrap padding for input[type="text"] */
        padding: 0;
        border: none;
        outline: none;
        border-radius: 0;
        font-family: "Source Sans 3 VF", sans-serif;
        font-weight: 400;
        background: transparent;
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: pre;
        flex-grow: 1;

        color: var(--color-text-search);

        display: flex;
        align-items: center;
    }
#searchbox .search-input:empty::before {
            content: attr(data-placeholder-text);
            color: var(--color-text-search-placeholder);
        } /* for both input container and search suggestions */
#searchbox .user-pill-container  > .pill-label {
            min-width: -moz-fit-content;
            min-width: fit-content;
            white-space: nowrap;
            width: -moz-fit-content;
            width: fit-content;
        }
#searchbox #searchbox-input-container {
        display: grid;
        /* The next two styles override .input-append style from app_components.js */
        letter-spacing: normal;
        font-size: 100%;
        /* Override style for .pill-container that isn't relevant for search. */
        border: none;
        grid-template:
            "search-icon search-pills search-close" var(--search-box-height)
            ". search-pills ." auto / var(--search-left-padding) minmax(0, 1fr)
            1.75em; /* 28px at 16px em */
        align-content: center;
        cursor: pointer;

        /* Override styles for .pill-container that aren't relevant for search. */
    }
#searchbox #searchbox-input-container.pill-container {
            background: inherit;
            gap: 0;
            /* Override padding. */
            padding: 0;
        }
#searchbox #searchbox-input-container .pill {
            margin: 0;
            min-width: unset;
            background-color: var(--color-background-input-pill-search);
        }
#searchbox #searchbox-input-container:not(.focused) {
            height: var(--search-box-height);
            overflow: hidden;
        }
#searchbox #searchbox-input-container:not(.focused) .search-input-and-pills {
                flex-wrap: nowrap;
                overflow: hidden;
            }
@media (max-height: 599.98px) {
    #searchbox #searchbox-input-container:not(.focused) .search-input-and-pills {
                    line-height: var(--base-line-height-unitless);
            }
                }
#searchbox #searchbox-input-container.focused .user-pill-container {
            flex-flow: row wrap;
        }
#searchbox #searchbox-input-container .user-pill-container {
            gap: 2px 5px;
            /* Don't enforce a height, as user-pill containers
                can contain multiple user pills that wrap onto
                new lines. */
            height: unset;
            border: 1px solid transparent;

            /* Not focus-visible, because we want to support mouse+backpace
                to delete pills */
        }
#searchbox #searchbox-input-container .user-pill-container:focus {
                /* Unlike regular `.pill` this multi-user pill has a border,
                    so we use border instead of box-shadow on focus. */
                box-shadow: none;
                border-color: var(--color-focus-outline-input-pill);
            }
#searchbox #searchbox-input-container .user-pill-container  > .pill-label {
                /* Replaced by the 5px gap. */
                margin-right: 0;
                /* Don't inherit large line-height for user pill labels. */
                line-height: 1.1;
            }
#searchbox #searchbox-input-container .user-pill-container .pill {
                /* Reduce user pill height by 2px to
                    preserve an apparent border around
                    them even under `box-sizing: border-box`
                    in the area. */
                height: calc(var(--height-input-pill) - 2px);
                border: none;
                /* Match border radius to image */
                border-radius: 4px;
                max-width: none;
                /* Set the minimum width on the pill container;
                    this accommodates the avatar, a minimum
                    two-character username, and the closing X.
                    90px at 20px/1em.

                TODO: This would ideally be reworked, as we need to
                override it for search suggestion pills (with no X) below.
               */
                min-width: 4.5em;
                display: grid;
                grid-template-columns:
                    var(--length-search-input-pill-image) minmax(0, 1fr)
                    var(--length-input-pill-exit);
                align-content: center;
                /* Don't inherit large line-height for user pills themselves, either. */
                line-height: 1.1;
            }
#searchbox #searchbox-input-container .user-pill-container .pill .pill-image {
                    height: var(--length-search-input-pill-image);
                    width: var(--length-search-input-pill-image);
                }
#searchbox #searchbox-input-container .user-pill-container .pill .pill-image-border {
                    border: none;
                }
#searchbox #searchbox-input-container .user-pill-container .pill:not(.deactivated-pill) {
                    background-color: var(--color-background-user-pill);
                }
@media (min-width: 768px) {
        #searchbox .navbar-search {
            background: var(--color-background-search);
        }

        #searchbox .navbar-search:not(.expanded) {
            box-shadow: 0 0 2px var(--color-search-box-hover-shadow);
        }
    }
@media (max-width: 767.98px) {
        #searchbox .navbar-search:not(.expanded) .search_icon:hover {
            opacity: 1;
        }

        #searchbox .navbar-search.expanded {
            background: var(--color-background-search);
        }
    }
@media (max-height: 599.98px) {
        #searchbox #searchbox_form:not(.expanded) {
            margin: 0;
            /* Now that the header is shorter, the search box will take up the whole
               height (which looks weird), so add 1px of space above and below it
               by manipulating the margin and the height. */
            margin-top: 1px;
            height: calc(var(--header-height) - 3px);
        }

        /* It looks fine to fill the navbar when the typeahead is open. */
        #searchbox #searchbox_form.expanded {
            margin-top: 1px;
        }
    }
@media (max-width: 575.98px) {
        #searchbox #searchbox_form.expanded {
            position: fixed;
            left: 0;
            right: 9px;
            width: 100%;
            border-radius: 0;
            box-shadow: none;
            /* To be visible over `.left-sidebar-toggle-unreadcount` */
            z-index: 20;
        }
    }
#searchbox .typeahead-menu .simplebar-content > li > a {
        padding: 3px var(--search-left-padding);
        /* Override white-space: nowrap from zulip.css */
        white-space: normal;
    }
#searchbox .typeahead-menu .simplebar-content > li > a .search_list_item {
            max-width: 100%;
            display: flex;
            gap: 5px;
            align-items: center;
        }
#searchbox .typeahead-menu .simplebar-content > li > a .search_list_item .description {
            margin: 2px 0;
        }
#searchbox .typeahead-menu .simplebar-content > li > a .search_list_item .pill-container {
            margin: 2px 0;
            /* This contains only one pill, which handles its own border */
            border: none;
            cursor: pointer;
            padding: 0;
            max-width: 100%;
        }
#searchbox .typeahead-menu .simplebar-content > li > a .pill {
            align-items: baseline;
            margin: 0;

            /* We remove the close button's column space from the grid template
               for search suggestions, since there's no exit button.
               The min-width here prevents extra space on very short names. */
            min-width: 0;
            grid-template-columns: var(--length-search-input-pill-image) minmax(
                    0,
                    1fr
                );

            /* We don't show a border for focused pills
               in the search typeahead */
        }
#searchbox .typeahead-menu .simplebar-content > li > a .pill:focus {
                /* Regular pills use box-shadow. */
                box-shadow: none;

                /* User pills use border */
                border-color: var(--color-background-input-pill);
            }
#searchbox .typeahead-menu .simplebar-content > li > a .pill:focus .pill-image-border {
                    border-color: var(--color-border-input-pill-image);
                }
#searchbox .typeahead-menu .simplebar-content > li > a .pill .exit {
                display: none;
            }
#searchbox .typeahead-menu .simplebar-content > li > a .pill-image {
            /* Add line-height equal to height to mimic baseline alignment. */
            line-height: var(--height-input-pill);
            align-self: center;
        } /* Break really long words (unlikely to happen). */
#searchbox .search_list_item span {
        overflow-wrap: anywhere;
    }

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/user_circles.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.user-circle-active {
    color: var(--color-user-circle-active);
}

.user-circle-idle {
    background: var(--gradient-user-circle-idle);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
}

.with_avatar .user-circle-idle {
    background: var(--gradient-user-circle-idle-avatar);
}

.user-circle-offline {
    color: var(--color-user-circle-offline);
}

.user-circle-deactivated {
    color: var(--color-user-circle-deactivated);
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/left_sidebar.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.left-sidebar-title {
    color: var(--color-text-sidebar-heading);
    opacity: var(--opacity-sidebar-heading);
    transition: opacity 140ms linear;
    font-size: inherit;
    font-weight: var(--font-weight-sidebar-heading);
    letter-spacing: var(--letter-spacing-sidebar-heading);
    /* Override heading margin from Bootstrap. */
    margin: 0;
    /* Show an ellipsis on a heading when
       it won't sit adjacent other icons
       or controls in the row. */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#left-sidebar .input-element-wrapper:not(.left-sidebar-search-section) {
    /* We normalize this based on Firefox's 31px-tall input,
       raising Chrome's (28px) and Safari's (30px) to all
       match, so that `top:` and other offset values are
       identical relative to input elements. This value
       is taken up by the grid-template definition in
       inputs.css. We don't do this on the sidebar search, though,
       so that it matches the height of the filter at the top of the
       right sidebar. Normalizing the height isn't essential here,
       as there are no sticky headers offset from the filter input. */
    --input-element-row-height: 1.9375em;
}

#left-sidebar .input-element-wrapper:not(.left-sidebar-search-section) .input-element {
        /* And to keep the visual space of the input identical,
           we stretch to the height of the grid row above. */
        align-self: stretch;
    }

#left-sidebar .unread_count {
    -webkit-user-select: none;
            user-select: none;
}

.sidebar-topic-check,
.topic-markers-and-unreads {
    cursor: pointer;
}

#left-sidebar-navigation-list .filter-icon i {
    color: var(--color-left-sidebar-navigation-icon);
}

#stream_filters,
#left-sidebar-navigation-list {
    margin-right: var(--left-sidebar-right-margin);
}

.add-stream-icon-container {
    grid-area: add-channel;
    display: grid;
    /* 2px right margin here to match the new topic margin-right */
    margin: 2px 1px 2px 0;
    border-radius: 3px;
}

.add-stream-icon-container .add_stream_icon {
        /* We display as flex to center the icon while
           keeping the entire highlighted area clickable. */
        display: flex;
        place-items: center center;
        color: var(--color-left-sidebar-heads-up-icon);
    }

.add-stream-icon-container .add_stream_icon::before {
            /* To horizontally center the icon within the
               flex, though, we need this margin adjustment. */
            margin: 0 auto;
        }

.add-stream-icon-container:hover {
        color: var(--color-left-sidebar-heads-up-icon-hover);
        background-color: var(
            --background-color-left-sidebar-heads-up-icon-hover
        );
        cursor: pointer;
    }

.masked_unread_count {
    /* 8px at 16px/14em */
    font-size: 0.5em;
    display: none;
    /* Masked unreads display as flex when revealed. */
    align-items: center;
    justify-content: center;
    color: var(--color-unread-counter-muted);
    width: var(--left-sidebar-single-digit-unread-width);
}

#left-sidebar-navigation-list .selected-home-view.hide-unread-messages-count .masked_unread_count {
            display: flex;
            grid-area: markers-and-unreads;
            /* Adding margin-right aligns the .masked_unread_count  */
            /* with the rest of the masked unread counts. */
            margin-right: var(--left-sidebar-unread-offset);
            justify-self: end;
            visibility: visible;
        }

#left-sidebar-navigation-list .selected-home-view.hide-unread-messages-count .unread_count {
            visibility: hidden;
        }

/* When message summary count is 0, we dont want to show unread_count or masked_unread_count. */

#left-sidebar-navigation-list .selected-home-view.hide-unread-messages-count .unread_count.hide + .masked_unread_count {
            visibility: hidden;
        }

/* Suppress the unread-count dot and show
           the unread count on hover. */

#left-sidebar-navigation-list .selected-home-view.hide-unread-messages-count:hover .masked_unread_count {
                visibility: hidden;
            }

#left-sidebar-navigation-list .selected-home-view.hide-unread-messages-count:hover .unread_count:not(:empty) {
                visibility: visible;
            }

#stream_filters {
    overflow: visible;
    margin-bottom: 5px;
    padding: 0;
    font-weight: normal;
}

#stream_filters .topic_search_section {
        margin: 3px 0;
    }

#stream_filters li .sidebar-topic-name:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

#stream_filters li ul {
            margin-left: 0;
        }

#stream_filters li ul.topic-list li {
                padding: 0;
            }

#stream_filters .stream-with-count.hide_unread_counts .masked_unread_count,#stream_filters .stream-list-subsection-header.hide_unread_counts .masked_unread_count,#stream_filters .show-inactive-or-muted-channels.hide_unread_counts .masked_unread_count {
            display: flex;
        }

#stream_filters .stream-with-count.hide_unread_counts .unread_count,#stream_filters .stream-list-subsection-header.hide_unread_counts .unread_count,#stream_filters .show-inactive-or-muted-channels.hide_unread_counts .unread_count {
            display: none;
        }

/* When count is 0, we dont want to show unread_count or masked_unread_count. */

#stream_filters .stream-with-count.hide_unread_counts .unread_count.hide + .masked_unread_count,#stream_filters .stream-list-subsection-header.hide_unread_counts .unread_count.hide + .masked_unread_count,#stream_filters .show-inactive-or-muted-channels.hide_unread_counts .unread_count.hide + .masked_unread_count {
            display: none;
        }

#stream_filters .stream-with-count.hide_unread_counts:hover .masked_unread_count,#stream_filters .stream-list-subsection-header.hide_unread_counts:hover .masked_unread_count,#stream_filters .show-inactive-or-muted-channels.hide_unread_counts:hover .masked_unread_count {
                display: none;
            }

#stream_filters .stream-with-count.hide_unread_counts:hover .unread_count:not(.hide),#stream_filters .stream-list-subsection-header.hide_unread_counts:hover .unread_count:not(.hide),#stream_filters .show-inactive-or-muted-channels.hide_unread_counts:hover .unread_count:not(.hide) {
                display: inline;
            }

#stream_filters .narrow-filter > .bottom_left_row:hover > .stream-with-count.hide_unread_counts .masked_unread_count {
            display: none;
        }

#stream_filters .narrow-filter > .bottom_left_row:hover > .stream-with-count.hide_unread_counts .unread_count {
            display: inline;
        }

#stream_filters .stream-expanded .channel-new-topic-button {
            display: flex;
        }

#stream_filters .stream-expanded .subscription_block .sidebar-menu-icon {
            display: flex;
            color: var(--color-vdots-visible);
        }

#stream_filters .stream-expanded .stream-with-count.hide_unread_counts .masked_unread_count {
                display: none;
            }

#stream_filters .stream-expanded .stream-with-count.hide_unread_counts .unread_count {
                display: inline;
            }

#stream_filters .toggle_stream_mute {
        margin-right: 3px;
        opacity: 0.5;
    }

#stream_filters .toggle_stream_mute:hover {
            opacity: 1;
        }

.left-sidebar-navigation-icon-container:hover,.left-sidebar-navigation-label-container:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

#hide-more-direct-messages,
#direct-messages-section-header {
    grid-template-columns:
        0 var(--left-sidebar-header-icon-toggle-width) 0 minmax(0, 1fr)
        minmax(0, max-content) minmax(0, max-content) var(
            --left-sidebar-vdots-width
        )
        0;
}

#hide-more-direct-messages {
    /* Keep the DM zoom-out option hidden until zoomed-in. */
    display: none;
    margin-right: var(--left-sidebar-right-margin);
    line-height: var(--line-height-sidebar-row);
    border-radius: 4px;
    -webkit-text-decoration: none;
    text-decoration: none;
    color: inherit;
}

#hide-more-direct-messages .hide-more-direct-messages-text {
        color: var(--color-text-sidebar-action-heading);
        font-size: var(--font-size-sidebar-action-heading);
        font-weight: var(--font-weight-sidebar-action-heading);
        font-feature-settings: ;
        font-variant: var(--font-variant-sidebar-action-heading);
        text-transform: var(--text-transform-sidebar-action-heading);
        grid-area: row-content;
    }

#hide-more-direct-messages:hover {
        background-color: var(--color-background-sidebar-action-heading-hover);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

#hide-more-direct-messages:focus {
        outline: none;
    }

#direct-messages-section-header {
    cursor: pointer;
    white-space: nowrap;
    border-radius: 4px;

    /* Prevent hover styles set on other rows when zoomed in. */
}

#direct-messages-section-header:not(.zoom-in):hover {
        background-color: var(--color-background-hover-narrow-filter);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

#direct-messages-section-header:not(.zoom-in):hover .left-sidebar-title,#direct-messages-section-header:not(.zoom-in):hover .sidebar-heading-icon {
            opacity: var(--opacity-sidebar-heading-hover);
        }

#direct-messages-section-header #toggle-direct-messages-section-icon {
        grid-area: starting-anchor-element;
        /* Horizontally center the icon in its allotted grid area. */
        justify-self: center;
    }

#direct-messages-section-header .left-sidebar-title {
        grid-area: row-content;
    }

#direct-messages-section-header .heading-markers-and-unreads {
        grid-area: markers-and-unreads;
        display: flex;
        gap: 5px;
        align-items: center;
        /* Extra margin for unreads. */
        margin-right: var(--left-sidebar-unread-offset);
    }

#direct-messages-section-header .heading-markers-and-unreads:has(.unread_count:empty) {
            margin-right: 0;
        }

#direct-messages-section-header #compose-new-direct-message,#direct-messages-section-header #show-all-direct-messages {
        color: var(--color-left-sidebar-heads-up-icon);
        display: none;
        align-items: center;
        justify-content: center;
        -webkit-text-decoration: none;
        text-decoration: none;
        margin: 2px 0;
        border-radius: 3px;
        grid-row: 1 / 1;
    }

#direct-messages-section-header #compose-new-direct-message:hover,#direct-messages-section-header #show-all-direct-messages:hover {
            color: var(--color-left-sidebar-heads-up-icon-hover);
            background-color: var(
                --background-color-left-sidebar-heads-up-icon-hover
            );
        }

@media (hover: none) {

#direct-messages-section-header #compose-new-direct-message,#direct-messages-section-header #show-all-direct-messages {
            display: flex;
    }
        }

#direct-messages-section-header.hover-over-dm-section #compose-new-direct-message,#direct-messages-section-header.zoom-in #compose-new-direct-message,#direct-messages-section-header:hover #compose-new-direct-message,#direct-messages-section-header.hover-over-dm-section #show-all-direct-messages,#direct-messages-section-header.zoom-in #show-all-direct-messages,#direct-messages-section-header:hover #show-all-direct-messages {
            display: flex;
        }

.spectator-view #left-sidebar-search {
    grid-template-columns: minmax(0, 1fr);
}

#left-sidebar-search {
    display: grid;
    grid-template-areas: "filter-container add-channel channel-folders-option";
    grid-template-columns:
        minmax(0, 1fr) var(--left-sidebar-header-icon-width)
        auto;
    position: sticky;
    top: 0;
    background: var(--color-background);
    /* Must be padding not margin so that the sticky headers don't show behind it */
    padding: 0 var(--left-sidebar-right-margin)
        var(--sidebar-filter-bottom-spacing) 5px;
}

#left-sidebar-search .channel-folders-sidebar-menu-icon {
        grid-area: channel-folders-option;
        display: grid;
        /* width excluding left & right margin */
        width: calc(var(--left-sidebar-vdots-width) - 3px);
        cursor: pointer;
        place-items: center center;
        border-radius: 3px;
        margin: 2px 2px 2px 1px;
        color: var(--color-vdots-visible);
    }

#left-sidebar-search .channel-folders-sidebar-menu-icon i.zulip-icon {
            font-size: 1.0625em;
        }

#left-sidebar-search .channel-folders-sidebar-menu-icon:hover {
            color: var(--color-vdots-hover);
            background-color: var(--color-background-sidebar-action-hover);
        }

.stream-list-subsection-header {
    display: grid;
    align-items: center;
    /* There's no three-dot menu here, but we still want the markers to line-up with
       markers in other rows that do have three-dot menus. */
    grid-template:
        "arrow row-content add-channel markers-and-unreads three-dot-placeholder" var(
            --line-height-sidebar-row-prominent
        )
        / var(--right-sidebar-header-icon-toggle-width) minmax(0, 1fr) minmax(
            0,
            max-content
        )
        minmax(0, max-content) var(--left-sidebar-vdots-width);
    cursor: pointer;
    background-color: var(--color-background);
    position: sticky;
    top: 0;
    /* Must be more than .sidebar-topic-check and less than #left-sidebar-search */
    z-index: 2;
    color: var(--color-text-default);
    /* There seems to be a bug where when the header returns to normal position after
       being sticky, it's 0.5px below its actual position and thus overlaps the channel
       below. This extra margin prevents that overlap. */
    margin-bottom: 1px;
}

.stream-list-subsection-header .markers-and-unreads {
        display: flex;
        align-items: center;
    }

.stream-list-subsection-header .unread_count,.stream-list-subsection-header .masked_unread_count {
        margin-right: var(--left-sidebar-unread-offset);
    }

.stream-list-subsection-header .add-stream-icon-container {
        -webkit-text-decoration: none;
        text-decoration: none;
        grid-auto-columns: var(--left-sidebar-header-icon-width);
        /* -4px for the 2px top and bottom padding in .add-stream-icon-container */
        grid-template-rows: calc(
            var(--line-height-sidebar-row-prominent) - 4px
        );
    }

.stream-list-subsection-header .add_stream_icon {
        visibility: hidden;
    }

.stream-list-subsection-header .add-stream-icon-container:focus-visible .add_stream_icon {
        visibility: visible;
    }

.stream-list-subsection-header:hover {
        background-color: var(--color-background-hover-narrow-filter);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        /* We only set the border radius on the hover/popover states,
           so as to prevent the background on highlighted channels
           from bleeding through. */
        border-radius: 4px;
    }

.stream-list-subsection-header:hover .left-sidebar-title,.stream-list-subsection-header:hover .stream-list-section-toggle {
            opacity: var(--opacity-sidebar-heading-hover);
        }

.stream-list-subsection-header:hover .add_stream_icon {
            visibility: visible;
        }

.stream-list-subsection-header .stream-list-section-toggle {
        color: var(--color-text-sidebar-heading);
        opacity: var(--opacity-sidebar-heading-icon);
        justify-self: center;
    }

.stream-list-toggle-inactive-or-muted-channels {
    padding-left: var(--left-sidebar-toggle-width-offset);
}

.stream-list-toggle-inactive-or-muted-channels .show-inactive-or-muted-channels,.stream-list-toggle-inactive-or-muted-channels .hide-inactive-or-muted-channels {
        /* Override the action heading font size, so that em measurements
        on child elements are sized properly */
        font-size: var(--base-font-size-px);
        /* We also want the count text to be the normal font style. */
        font-feature-settings: inherit, , inherit, ;
        font-variant: inherit;
        padding: 0;
    }

.stream-list-toggle-inactive-or-muted-channels .show-inactive-or-muted-channels .stream-list-toggle-inactive-or-muted-channels-text,.stream-list-toggle-inactive-or-muted-channels .hide-inactive-or-muted-channels .stream-list-toggle-inactive-or-muted-channels-text {
            font-size: var(--font-size-sidebar-action-heading);
            font-feature-settings: ;
            font-variant: var(--font-variant-sidebar-action-heading);
            overflow-x: hidden;
            text-overflow: ellipsis;
        }

.stream-list-section-container:not(.showing-inactive-or-muted) .inactive-or-muted-in-channel-folder:not(.active-filter):not(:has(.active-sub-filter)) {
        display: none;
    }

.stream-list-section-container:not(.showing-inactive-or-muted) .stream-list-toggle-inactive-or-muted-channels .hide-inactive-or-muted-channels {
            display: none;
        }

#streams_list.is_searching .show-inactive-or-muted-channels,#streams_list.is_searching .hide-inactive-or-muted-channels {
        display: none;
    }

#streams_list.is_searching .inactive-or-muted-in-channel-folder {
        display: block;
    }

.stream-list-section-container.showing-inactive-or-muted .stream-list-toggle-inactive-or-muted-channels .show-inactive-or-muted-channels {
            display: none;
        }

/* Sections with inactive/muted channels have a button to toggle
   showing them. If there's only one inactive/muted channel, and
   it's currently highlighted (.stream-expanded), then we want to
   always show it, which means there aren't any inactive/muted
   channels left to toggle visibility for. So we should hide the
   toggle button.

   (Checking for any .inactive-or-muted-in-channel-folder without
   .stream-expanded in a .stream-list-section-container, and if none
   then hide .stream-list-toggle-inactive-or-muted-channels). */
.stream-list-section-container:not(:has(.inactive-or-muted-in-channel-folder:not(.stream-expanded))) .stream-list-toggle-inactive-or-muted-channels {
        display: none;
    }

.show-inactive-or-muted-channels,
.hide-inactive-or-muted-channels {
    display: grid;
    grid-template:
        "icon content markers-and-unreads three-dot-placeholder" auto
        / 1.5em minmax(0, 1fr) minmax(0, max-content) var(
            --left-sidebar-vdots-width
        );
    align-items: center;
}

.show-inactive-or-muted-channels .markers-and-unreads,.hide-inactive-or-muted-channels .markers-and-unreads {
        margin-right: var(--left-sidebar-unread-offset);
    }

.show-inactive-or-muted-channels .zulip-icon-collapse,.hide-inactive-or-muted-channels .zulip-icon-collapse,.show-inactive-or-muted-channels .zulip-icon-expand,.hide-inactive-or-muted-channels .zulip-icon-expand {
        grid-area: icon;
        /* 2px at 16px/1em to properly vertically center it */
        margin-top: 0.125em;
    }

.show-inactive-or-muted-channels .stream-list-toggle-inactive-or-muted-channels-text,.hide-inactive-or-muted-channels .stream-list-toggle-inactive-or-muted-channels-text {
        grid-area: content;
    }

.stream-list-section {
    margin: 0;
}

.stream-list-section-container.no-display {
    display: none;
}

#streams_list .stream-list-section-container.collapsed.hide-topic-bracket ul.topic-list.topic-list-has-topics::before {
        display: none;
    }

#streams_list .stream-list-section-container.collapsed.hide-topic-bracket ul.topic-list.topic-list-has-topics::after {
        display: none;
    }

#streams_list .stream-list-section-container.collapsed .narrow-filter:not(.stream-expanded),#streams_list .stream-list-section-container.collapsed .stream-list-toggle-inactive-or-muted-channels,#streams_list .stream-list-section-container.collapsed .topic-list-item:not(.active-sub-filter) {
        display: none;
    }

/* Only show section header unread counts when the section is collapsed
   or when the header is being hovered over. */
#streams_list .stream-list-section-container:not(.collapsed) .stream-list-subsection-header:not(:hover) .unread_count,#streams_list .stream-list-section-container:not(.collapsed) .stream-list-subsection-header:not(:hover) .masked_unread_count {
            visibility: hidden;
        }
#streams_list .stream-list-section-container:not(.collapsed) .stream-list-subsection-header:not(:hover) .unread_mention_info {
        display: none;
    }

.direct-messages-container {
    /* Properly offset all the grid rows
       in the DM section. */
    margin-right: var(--left-sidebar-right-margin);
}

.direct-messages-container ul.dm-list {
        list-style-type: none;
        font-weight: 400;
        margin-left: 0;
        margin-bottom: 0;
        line-height: var(--line-height-sidebar-row-prominent);
    }

.direct-messages-container ul.dm-list li.dm-list-item .dm-box,.direct-messages-container ul.dm-list li.dm-list-item .dm-name {
                -webkit-text-decoration: none;
                text-decoration: none;
                color: inherit;
                outline: none;
            }

.direct-messages-container ul.dm-list li.dm-list-item .zulip-icon:not(.user-circle) {
                color: var(--color-left-sidebar-dm-partners-icon);
                vertical-align: -0.2em;
            }

.direct-messages-container ul.dm-list li#show-more-direct-messages {
            color: var(--color-text-sidebar-action-heading);
            font-size: var(--font-size-sidebar-action-heading);
            font-weight: var(--font-weight-sidebar-action-heading);
            letter-spacing: var(--letter-spacing-sidebar-action-heading);
            font-feature-settings: ;
            font-variant: var(--font-variant-sidebar-action-heading);
            text-transform: var(--text-transform-sidebar-action-heading);
            cursor: pointer;
            /* The 'more conversations' line has no icons,
               so vertically align the text with the unread
               count, when one appears there. */
            align-items: baseline;
        }

.direct-messages-container ul.dm-list li#show-more-direct-messages:hover {
                background-color: var(
                    --color-background-sidebar-action-heading-hover
                );
            }

.direct-messages-container ul.dm-list li#show-more-direct-messages:hover .dm-name {
                    color: var(--color-text-sidebar-action-heading-hover);
                }

.direct-messages-container ul.dm-list li#show-more-direct-messages .unread_count {
                margin-top: 2px;
            }

.zulip-icon-heading-triangle-right {
    transition:
        opacity 140ms linear,
        rotate 140ms linear;
}

.zulip-icon-heading-triangle-right.rotate-icon-down {
    rotate: 90deg;
}

.zulip-icon-heading-triangle-right.rotate-icon-right {
    rotate: 0deg;
}

#toggle-direct-messages-section-icon,
#toggle-top-left-navigation-area-icon {
    color: var(--color-text-sidebar-heading);
    opacity: var(--opacity-sidebar-heading-icon);
}

#toggle-direct-messages-section-icon:focus,#toggle-top-left-navigation-area-icon:focus {
        outline: 0;
    }

/* This renders an outline when the caret is reached
       with the keyboard, although that is not at present
       easily accomplished. */

#toggle-direct-messages-section-icon:focus-visible {
        outline: 2px solid var(--color-outline-focus);
    }

#toggle-top-left-navigation-area-icon:focus-visible {
        outline: 2px solid var(--color-outline-focus);
    }

.active-direct-messages-section {
    background-color: var(--color-background-active-narrow-filter);
}

#direct-messages-section-header.active-direct-messages-section {
        border-radius: 4px 4px 0 0;
    }

.active-direct-messages-section #direct-messages-list {
        border-radius: 0 0 4px 4px;
    }

.top_left_row,
.bottom_left_row {
    /* Ensure a border radius on any interactive
       state that might show a highlight. */
    border-radius: 4px;

    /* Always show the box-shadow outline on hover and
       an open left-sidebar menu (vdots) */
}

.top_left_row:has(.left_sidebar_menu_icon_visible) {
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

.bottom_left_row:has(.left_sidebar_menu_icon_visible) {
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

.top_left_row:hover,.bottom_left_row:hover {
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

/* However, only adjust the background colors outside of active
       filters, whose colors are more intense in light and dark mode
       than the hover-narrow-filter color values. */

.top_left_row:not(.active-sub-filter):has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-hover-narrow-filter);
        }

.bottom_left_row:not(.active-sub-filter):has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-hover-narrow-filter);
        }

.top_left_row:not(.active-sub-filter):hover,.bottom_left_row:not(.active-sub-filter):hover {
            background-color: var(--color-background-hover-narrow-filter);
        }

.top_left_row:not(.active-sub-filter):has(.left_sidebar_menu_icon_visible) .sidebar-topic-check {
                background-color: var(--color-background-hover-narrow-filter);
            }

.bottom_left_row:not(.active-sub-filter):has(.left_sidebar_menu_icon_visible) .sidebar-topic-check {
                background-color: var(--color-background-hover-narrow-filter);
            }

.top_left_row:not(.active-sub-filter):hover .sidebar-topic-check,.bottom_left_row:not(.active-sub-filter):hover .sidebar-topic-check {
                background-color: var(--color-background-hover-narrow-filter);
            }

.top_left_row:has(.sidebar-topic-action-heading):hover {
        background-color: var(--color-background-sidebar-action-heading-hover);
    }

.bottom_left_row:has(.sidebar-topic-action-heading):hover {
        background-color: var(--color-background-sidebar-action-heading-hover);
    }

.top_left_row:has(a.left-sidebar-navigation-label-container:focus-visible) {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: -2px;
        background-color: var(--color-background-hover-narrow-filter);
    }

.bottom_left_row:has(a.left-sidebar-navigation-label-container:focus-visible) {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: -2px;
        background-color: var(--color-background-hover-narrow-filter);
    }

.top_left_row .left-sidebar-navigation-label-container:focus,.bottom_left_row .left-sidebar-navigation-label-container:focus {
        outline: none;
    }

.active-filter.top_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.active-filter.bottom_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.top-left-active-filter.top_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.top-left-active-filter.bottom_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.active-sub-filter.top_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.active-sub-filter.bottom_left_row:has(.left_sidebar_menu_icon_visible) {
            background-color: var(--color-background-active-narrow-filter);
        }

.stream-list-toggle-inactive-or-muted-channels.highlighted_row {
    outline: 2px solid var(--color-outline-focus);
    outline-offset: -2px;
    background-color: var(--color-background-sidebar-action-heading-hover);
}

#stream_filters .narrow-filter.active-filter:has(a.subscription_block:focus-visible) > .bottom_left_row {
        background-color: var(--color-background-hover-narrow-filter);
    }

#stream_filters .narrow-filter.highlighted_row.active-filter:not(.does-not-exist):not(does-not-exist) > .bottom_left_row {
        background-color: var(--color-background-hover-narrow-filter);
    }

#stream_filters .narrow-filter:has(a.subscription_block:focus-visible) > .bottom_left_row {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: -2px;
    }

#stream_filters .narrow-filter.highlighted_row:not(.does-not-exist):not(does-not-exist) > .bottom_left_row {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: -2px;
    }

#stream_filters .narrow-filter.active-filter:has(a.subscription_block:focus-visible) .topic-list .bottom_left_row {
        background-color: var(--color-background-active-narrow-filter);
    }

#stream_filters .narrow-filter.highlighted_row.active-filter:not(.does-not-exist):not(does-not-exist) .topic-list .bottom_left_row {
        background-color: var(--color-background-active-narrow-filter);
    }

#stream_filters .narrow-filter:has(a.subscription_block:focus-visible) .bottom_left_row:not(.active-sub-filter) {
        background-color: var(--color-background-hover-narrow-filter);
    }

#stream_filters .narrow-filter.highlighted_row:not(.does-not-exist):not(does-not-exist) .bottom_left_row:not(.active-sub-filter) {
        background-color: var(--color-background-hover-narrow-filter);
    }

#views-label-container.highlighted_row,#direct-messages-section-header.highlighted_row,.highlighted_row.stream-list-subsection-header:not(#does-not-exist),.highlighted_row.top_left_row:not(#does-not-exist),.highlighted_row.bottom_left_row:not(#does-not-exist) {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: -2px;
    }

#stream_filters
    .narrow-filter
    .topic-list
    .bottom_left_row:has(a.topic-box:focus-visible),
#direct-messages-list .dm-list .bottom_left_row:has(a.dm-box:focus-visible),
#show-more-direct-messages:has(a.dm-name:focus-visible),
#hide-more-direct-messages:focus-visible,
#topics_header .show-all-streams:focus-visible,
#subscribe-to-more-streams:has(.subscribe-more-link:focus-visible),
#login-to-more-streams:has(.subscribe-more-link:focus-visible) {
    outline: 2px solid var(--color-outline-focus);
    outline-offset: -2px;
    background-color: var(--color-background-hover-narrow-filter);
}

#stream_filters .narrow-filter a.stream-name:focus,#direct-messages-list .bottom_left_row a.stream-name:focus,#stream_filters .narrow-filter a.sidebar-topic-name:focus,#direct-messages-list .bottom_left_row a.sidebar-topic-name:focus,#stream_filters .narrow-filter a.conversation-partners:focus,#direct-messages-list .bottom_left_row a.conversation-partners:focus,#stream_filters .narrow-filter a.dm-box:focus,#direct-messages-list .bottom_left_row a.dm-box:focus,#stream_filters .narrow-filter a.sidebar-topic-action-heading:focus,#direct-messages-list .bottom_left_row a.sidebar-topic-action-heading:focus {
        outline: none;
        -webkit-text-decoration: none;
        text-decoration: none;
    }

#subscribe-to-more-streams,
#login-to-more-streams {
    /* --left-sidebar-bottom-scrolling-buffer is to prevent the row from
       being cut off, and --sidebar-bottom-spacing is extra padding. */
    margin: 5px var(--left-sidebar-right-margin)
        calc(
            var(--left-sidebar-bottom-scrolling-buffer) +
                var(--sidebar-bottom-spacing)
        )
        0;
    padding-left: var(--left-sidebar-toggle-width-offset);
    border-radius: 4px;
    -webkit-text-decoration: none;
    text-decoration: none;
}

#subscribe-to-more-streams:hover,#login-to-more-streams:hover {
        background: var(--color-background-sidebar-action-heading-hover);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        color: var(--color-text-sidebar-action-heading-hover);
    }

#subscribe-to-more-streams .subscribe-more-link,#login-to-more-streams .subscribe-more-link {
        display: grid;
        grid-template:
            "plus-icon . row-text" minmax(
                var(--line-height-sidebar-row-prominent),
                auto
            )
            / var(--left-sidebar-icon-column-width) var(
                --left-sidebar-icon-content-gap
            )
            minmax(0, 1fr);
        align-items: center;
        line-height: 1;
        color: var(--color-text-sidebar-action-heading);
        -webkit-text-decoration: none;
        text-decoration: none;
        outline: none;
    }

#subscribe-to-more-streams .subscribe-more-label,#login-to-more-streams .subscribe-more-label {
        grid-area: row-text;
        /* Because the label is run in small caps, we do a font-metrics-based
           adjustment of its top margin to keep the text vertically aligned
           with the square [+] icon (whose shape leaves absolutely no room
           for error when it comes to centering). Going back to the font metrics
           outlined in web/src/information_density.ts, we can offset against the
           space reserved for descenders, and take half that value to pull the
           text up: 400 / (400 + 1025) ~= 0.28; half of 0.28 is 0.14, so
           `margin-top: -0.14em`. However, it looks as though a slight adjustment
           to -0.12em produces a slightly more pleasing result, which makes sense
           because mathematical centering and the perception of center don't
           always match. */
        margin-top: -0.12em;
        padding: 3px 0;
        font-size: var(--font-size-sidebar-action-heading);
        font-weight: var(--font-weight-sidebar-action-heading);
        font-variant: var(--font-variant-sidebar-action-heading);
        font-feature-settings: var(
            --font-feature-settings-sidebar-action-heading
        ), , ;
        text-transform: var(--text-transform-sidebar-action-heading);
    }

#subscribe-to-more-streams .subscribe-more-icon,#login-to-more-streams .subscribe-more-icon {
        /* Scale the icon with the action-heading font-size
           for better vertical centering. */
        font-size: var(--font-size-sidebar-action-heading);
    }

ul.filters {
    list-style-type: none;
    margin-left: 0;
    line-height: var(--line-height-sidebar-row-prominent);
}

ul.filters .sidebar-topic-name,ul.filters .left-sidebar-navigation-label-container {
        color: var(--color-text-sidebar-row);
    }

ul.filters .sidebar-topic-name:hover,ul.filters .left-sidebar-navigation-label-container:hover {
            /* Push back against a:hover color in dark_theme.css */
            color: var(--color-text-sidebar-row) !important;
        }

ul.filters .sidebar-topic-name:focus,ul.filters .left-sidebar-navigation-label-container:focus {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

ul.filters .sidebar-topic-action-heading:focus {
            color: var(--color-text-sidebar-action-heading);
        }

ul.filters hr {
        margin-top: 10px;
        margin-bottom: 10px;
    }

ul.filters .has-only-muted-unreads .unread_count,ul.filters .has-only-muted-unreads .masked_unread_count {
            opacity: var(--opacity-left-sidebar-muted);
        }

ul.filters .has-only-muted-unreads:hover .unread_count {
            opacity: var(--opacity-left-sidebar-muted-hover);
        }

ul.filters .has-only-muted-mentions .unread_mention_info {
            opacity: var(--opacity-left-sidebar-muted-mentions);
        }

ul.filters .has-only-muted-mentions:hover .unread_mention_info {
            opacity: var(--opacity-left-sidebar-muted-hover);
        }

/* This is a noop in the current design, because unread counts for
       muted streams have the same opacity, but the logic is here to
       be explicit and because the design may change in the future. */

ul.filters .more_topic_unreads_muted_only .unread_count {
        opacity: var(--opacity-left-sidebar-muted);
    }

ul.filters .zulip-icon-follow {
        opacity: 0.5;
    }

ul.filters .zulip-icon-follow:hover {
            opacity: 1;
            color: var(--color-left-sidebar-follow-icon-hover);
        }

ul.filters li.muted_topic .sidebar-topic-check,ul.filters li.muted_topic .sidebar-topic-name,ul.filters li.muted_topic .unread_count {
            opacity: var(--opacity-left-sidebar-muted);
        }

ul.filters li.muted_topic:hover .sidebar-topic-check,ul.filters li.muted_topic:hover .sidebar-topic-name,ul.filters li.muted_topic:hover .unread_count {
                opacity: var(--opacity-left-sidebar-muted-hover);
            }

ul.filters li.out_of_home_view .stream-privacy,ul.filters li.out_of_home_view .stream-name,ul.filters li.out_of_home_view .channel-new-topic-button,ul.filters li.out_of_home_view .unread_count,ul.filters li.out_of_home_view .masked_unread_count,ul.filters li.out_of_home_view .sidebar-menu-icon {
            opacity: var(--opacity-left-sidebar-muted);
        }

ul.filters li.out_of_home_view .unread_mention_info {
            /* Default opacity for this icon is too close to
               --opacity-left-sidebar-muted */
            opacity: var(--opacity-left-sidebar-muted-mentions);
        }

ul.filters li.out_of_home_view:hover .stream-privacy,ul.filters li.out_of_home_view:hover .stream-name,ul.filters li.out_of_home_view:hover .channel-new-topic-button,ul.filters li.out_of_home_view:hover .unread_count,ul.filters li.out_of_home_view:hover .masked_unread_count,ul.filters li.out_of_home_view:hover .sidebar-menu-icon {
                opacity: var(--opacity-left-sidebar-muted-hover);
            }

ul.filters li.out_of_home_view .has-unmuted-unreads .unread_count {
                opacity: 1;
            }

ul.filters li.out_of_home_view li.unmuted_or_followed_topic {
            color: var(--color-unmuted-or-followed-topic-list-item);
        }

ul.filters li.out_of_home_view li.unmuted_or_followed_topic .unread_count {
                opacity: 1;
            }

li.active-filter,
li.top-left-active-filter,
li.active-sub-filter {
    font-weight: 600 !important;
    position: relative;
    border-radius: 4px;
    color: var(--color-text-active-narrow-filter);
    background-color: var(--color-background-active-narrow-filter);

    /* These hover styles effectively push back on non-active-filter
       styles, which would otherwise present the less-intense
       --color-background-hover-narrow-filter colors. */
}

li.active-filter:hover,li.top-left-active-filter:hover,li.active-sub-filter:hover {
        background-color: var(--color-background-active-narrow-filter);
    }

li.active-filter:hover .sidebar-topic-check,li.top-left-active-filter:hover .sidebar-topic-check,li.active-sub-filter:hover .sidebar-topic-check {
            background-color: var(--color-background-active-narrow-filter);
        }

li.active-filter .sidebar-topic-check,li.top-left-active-filter .sidebar-topic-check,li.active-sub-filter .sidebar-topic-check {
        background-color: var(--color-background-active-narrow-filter);
    }

li.active-filter .sidebar-topic-name-inner,li.top-left-active-filter .sidebar-topic-name-inner,li.active-sub-filter .sidebar-topic-name-inner {
        color: var(--color-text-active-narrow-filter);
    }

/* To highlight the background when a new unread arrives,
       we set the background on the .new-unread class. */

.top_left_mentions.new-unread {
        background-color: var(--color-background-active-narrow-filter);
    }

/* The background-color transition is maintained by this class,
       which ensures an immediate opening transition, and lingers
       some time longer beyond the CSS Animation on the unread count,
       ensuring a smooth transition back to the normal background
       color on the sidebar row that's been targeted. */

.top_left_mentions.new-unread-highlight {
        transition: background-color 1s ease-in-out;
    }

.top_left_mentions #stream_filters .narrow-filter.active-filter .topic-list .filter-topics,.top_left_mentions #stream_filters .narrow-filter.active-filter  > .bottom_left_row {
        background-color: var(--color-background-active-narrow-filter);
        border-radius: 4px;
    }

.top_left_mentions #stream_filters .narrow-filter.active-filter .topic-list .filter-topics:hover,.top_left_mentions #stream_filters .narrow-filter.active-filter > .bottom_left_row:not(.does-not-exist):hover {
            background-color: var(--color-background-hover-narrow-filter);
        }

#left-sidebar-navigation-list-condensed {
    display: flex;
    justify-content: center;
}

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item {
        /* 26px minimum width gives a bit more
           breathing room for unread markers when
           unreads are displayed.
           However, we want to permit growing but
           not shrinking to keep icons reasonably
           spaced across different information-density
           settings. So we convert this value to ems:
           26px at 16px/1em. */
        flex: 1 0 1.625em;
        /* Unset padding from individual top_left items */
        padding: 0;
        border-radius: 4px;
        /* Set a positioning context for the unread dot. */
        position: relative;
    }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker) .unread_count {
                position: absolute;
            }

/* Show the same styles when each item is
               hovered or, via the keyboard, the `<a>`
               element within receives focus. */

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker):focus-within {
                background: var(--color-background-navigation-item-hover);
            }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker):hover {
                background: var(--color-background-navigation-item-hover);
            }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker):focus-within .unread_count {
                    /* 6px at 12px/1em */
                    top: -0.5em;
                    right: -0.5em;
                    background: var(--color-background-unread-counter-no-alpha);
                }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker):hover .unread_count {
                    /* 6px at 12px/1em */
                    top: -0.5em;
                    right: -0.5em;
                    background: var(--color-background-unread-counter-no-alpha);
                }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item:not(.top_left_condensed_unread_marker):not(:hover) .unread_count {
                /* .unread_count has its based font-size set to 12px at 14px/em. */
                /* 2px, 6px at 12px/1em */
                top: 0.1667em;
                /* With positioning, we center the dot over the icon
                   by subtracting half its width from the 50% mark. */
                right: calc(50% - 0.25em);
                /* But then we shift it left the em equivalent of half
                   the icon width (15px/2) plus 2px. This keeps the
                   unread dot in correct proximity to the view icon,
                   no matter how the row flexes or what information-
                   density values a user has set. 9.5px at 12px/1em.

                   We set this and its scaled counterpart as variables
                   for use in the pulse-unread animation to maintain the
                   dot's correct position relative to the view icon. */
                --unread-dot-x-offset: 0.7917em;
                /* To make sure the unread dot appears to scale from the
                   offset dot's center in collapsed Views, we need to
                   adjust the translateX offset by the same amount we
                   scale. calc() does not play nicely with animations,
                   so it's critical that we calculate this value here,
                   well before its needed. */
                --unread-dot-x-offset-scaled: calc(
                    var(--unread-dot-x-offset) / var(--pulse-unread-scale-max)
                );

                transform: translateX(var(--unread-dot-x-offset));
                width: 0.5em;
                height: 0.5em;
                padding: 0;
                color: transparent;
                background-color: var(--color-background-unread-counter-dot);
            }

/* Hide the unread dot, assuming that message
           counts are not hidden. */

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item.selected-home-view .unread_count {
            display: none;
        }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item.top_left_starred_messages .unread_count {
            display: none;
        }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item.top_left_condensed_unread_marker {
            /* Flex to just the unread's width, to keep the
               unreads aligned on the righthand side with others
               up and down the left sidebar. */
            flex: 0 0 auto;
            display: flex;
            align-content: center;
        }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item.top_left_condensed_unread_marker:has(.unread_count:empty) {
                /* When the unread count is empty (no unreads),
                   we flex shut to 0 across the board so the
                   unread count takes up no space. */
                flex: 0 0 0;
            }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-condensed-item.top_left_condensed_unread_marker .unread_count:not(:empty) {
                margin: 0 var(--left-sidebar-unread-offset);
                align-self: center;
            }

/* Restore the unread dot when message counts
           are hidden, unless there are no unreads,
           of course. */

#left-sidebar-navigation-list-condensed.hide-unread-messages-count .selected-home-view .unread_count:not(:empty) {
            display: block;
        }

/* We suppress the entire unread area
           for users who prefer masked unreads. */

#left-sidebar-navigation-list-condensed.hide-unread-messages-count .top_left_condensed_unread_marker {
            display: none;
        }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-icon-container {
        /* Unset margin from full nav list anchor elements. */
        margin: 0;
        /* Horizontally center icons within their boxes. */
        text-align: center;
    }

#left-sidebar-navigation-list-condensed .left-sidebar-navigation-icon-container:focus {
            /* Unset inherited :focus outline. */
            outline: 0;
        }

#left-sidebar-navigation-list-condensed .top-left-active-filter {
        /* Don't display a background on condensed icons. */
        background: unset;
    }

#left-sidebar-navigation-list-condensed .filter-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        /* Enlarge icons slightly in condensed views. */
        /* 15px at 16px/1em */
        font-size: 0.9375em;
        /* 24px at 15px/1em */
        height: 1.6em;
        color: var(--color-left-sidebar-navigation-icon);
    }

#left-sidebar-navigation-list {
    margin-bottom: 0;
    display: grid;
    line-height: var(--line-height-sidebar-row);
    /* Explicitly ensure parity with the line-height
       for the sake of low-resolution screens, whose
       font-rendering and rounding may cause icons
       to appear out of alignment. This grid feature should
       only apply in the expanded-navigation view. */
    grid-auto-rows: var(--line-height-sidebar-row);
}

#left-sidebar-navigation-list .left-sidebar-navigation-label-container .left-sidebar-navigation-label {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

/* Don't show unread counts on views... */
.top_left_my_reactions .unread_count,.top_left_inbox .unread_count,.top_left_recent_view .unread_count,.top_left_all_messages .unread_count {
        visibility: hidden;
    }
/* ...unless it's the selected home view. */
.selected-home-view.top_left_my_reactions .unread_count,.selected-home-view.top_left_inbox .unread_count,.selected-home-view.top_left_recent_view .unread_count,.selected-home-view.top_left_all_messages .unread_count {
        visibility: visible;
    }

.sidebar-menu-icon.hide {
    visibility: hidden;
}

.left-sidebar-navigation-label-container {
    grid-area: row-content;
    /* The label container itself is also a grid,
       for laying out the items that are its
       children. Same template areas, different
       column widths. */
    grid-template-columns:
        var(--left-sidebar-toggle-width-offset) var(
            --left-sidebar-icon-column-width
        )
        var(--left-sidebar-icon-content-gap) minmax(0, 1fr) minmax(
            0,
            max-content
        )
        minmax(0, max-content) 0 0;
}

.left-sidebar-navigation-label-container .filter-icon {
        grid-area: starting-anchor-element;
        /* Use a flex container to handle
           icon centering within the grid area. */
        display: flex;
        justify-content: center;
    }

.left-sidebar-navigation-label-container .left-sidebar-navigation-label {
        grid-area: row-content;
        padding-right: var(--left-sidebar-before-unread-count-padding);
    }

@media screen and (-webkit-max-device-pixel-ratio: 1), screen and (max-resolution: 1x) {

.left-sidebar-navigation-label-container .left-sidebar-navigation-label {
            /* For the sake of low-resolution screens,
               we'll let the actual label take 1 as a line-height
               value, and allow grid to handle the alignment. */
            line-height: 1;
    }
        }

.left-sidebar-navigation-label-container .unread_count {
        grid-area: markers-and-unreads;
        /* Extra margin for unreads. */
        margin-right: var(--left-sidebar-unread-offset);
    }

.left-sidebar-navigation-label-container .unread_count:empty {
            margin-right: 0;
        }

/* Low-attention unreads have no bounding box,
   so their counters should be aligned on the
   same baseline as the navigation label. */
.top_left_starred_messages .left-sidebar-navigation-label-container,.top_left_drafts .left-sidebar-navigation-label-container,.top_left_scheduled_messages .left-sidebar-navigation-label-container {
        align-items: baseline;
    }
@media screen and (-webkit-max-device-pixel-ratio: 1), screen and (max-resolution: 1x) {
.top_left_starred_messages .left-sidebar-navigation-label,.top_left_drafts .left-sidebar-navigation-label,.top_left_scheduled_messages .left-sidebar-navigation-label {
            /* Owing to the baseline alignment in this
               area, we don't need the low-res line-height
               adjustment. */
            line-height: inherit;
    }
        }
.top_left_starred_messages .filter-icon,.top_left_drafts .filter-icon,.top_left_scheduled_messages .filter-icon {
        align-self: center;
    }

.top_left_starred_messages.hide_starred_message_count .masked_unread_count {
            display: flex;
            grid-area: markers-and-unreads;
            /* Extra margin for unreads. */
            margin-right: var(--left-sidebar-unread-offset);
        }

.top_left_starred_messages.hide_starred_message_count .unread_count {
            display: none;
        }

/* When starred message count is 0, we dont want to show unread_count or masked_unread_count. */

.top_left_starred_messages.hide_starred_message_count .unread_count.hide + .masked_unread_count {
            display: none;
        }

.top_left_starred_messages.hide_starred_message_count:hover .masked_unread_count {
            display: none;
        }

.top_left_starred_messages.hide_starred_message_count:hover .unread_count {
            display: inline;
        }

.top_left_starred_messages.hide_starred_message_count:hover .unread_count.hide {
            display: none;
        }

.top_left_starred_messages.top-left-active-filter.hide_starred_message_count .masked_unread_count {
            display: none;
        }

.top_left_starred_messages.top-left-active-filter.hide_starred_message_count .unread_count {
            display: inline;
        }

.top_left_starred_messages.top-left-active-filter.hide_starred_message_count .unread_count.hide {
            display: none;
        }

.conversation-partners {
    grid-area: row-content;
    overflow: hidden;
    text-overflow: ellipsis;
}

.conversation-partners .status-emoji {
    /* Prevent status emoji from colliding
       with unread counts. */
    margin-right: 3px;
    /* To make status emoji look good with
       multiline usernames, we need to fall
       back to inline-block display here. */
    display: inline-block;
    vertical-align: -0.25em;
}

/* New grid definitions here. */
#views-label-container,
#hide-more-direct-messages.dm-zoomed-in,
.top_left_row,
.left-sidebar-navigation-label-container,
.dm-box,
.subscription_block,
.searching-for-more-topics {
    display: grid;
    align-items: center;
    /* This general pattern of elements applies to every single row in the left
       sidebar, to some degree or another. Eventually, these template areas
       could be applied to all rows, with different `grid-template-column`
       values applied as needed (and shared as needed). For example, an element
       with no "starting-offset" sets that area to `0`; so too with other non-
       existent elements.

       The offsets themselves are meant to greedily assign all of the available
       horizontal space to the content area of the row. That space can then be
       modified or reassigned as needed, without running up against `padding`
       (which alters the box size) or `margin` (which notoriously bleeds outside
       of the element it's defined on). */
    grid-template-areas: "starting-offset starting-anchor-element icon-content-gap row-content controls markers-and-unreads ending-anchor-element ending-offset";
}

.top_left_row {
    /* We stretch the items on the overall
       nav row, so there's no unclickable
       gaps between nav rows. */
    align-items: stretch;
    /* The row grid for the outer .top_left_row
       is chiefly for lefthand spacing and placing
       the inner row content and vdots. */
    grid-template-columns:
        0 0 0 minmax(0, 1fr) 0 0 var(--left-sidebar-vdots-width)
        0;
}

.top_left_row .sidebar-menu-icon {
        grid-area: ending-anchor-element;
    }

#direct-messages-section-header,
#topics_header {
    display: grid;
    align-items: center;
    /* This extends the general pattern of left sidebar rows, but includes a
       second grid row for placing filter boxes. */
    grid-template-areas:
        "starting-offset   starting-anchor-element  icon-content-gap  row-content       controls          markers-and-unreads  ending-anchor-element  ending-offset"
        "filter-container  filter-container         filter-container  filter-container  filter-container  filter-container     filter-container       filter-container";
    grid-template-rows: var(--line-height-sidebar-row-prominent) minmax(
            0,
            max-content
        );
}

.left-sidebar-filter-input-container {
    grid-area: filter-container;
    display: grid;
    align-items: center;
    grid-template:
        "starting-offset filter-input ending-offset" minmax(0, max-content)
        / calc(
            var(--left-sidebar-toggle-width-offset) -
                var(--input-icon-starting-offset)
        )
        minmax(0, 1fr) 0;
}

.left-sidebar-filter-input-container .filter-input,.left-sidebar-filter-input-container .filter-topics {
        grid-area: filter-input;
    }

/* Keep topic filters to a single line, and show
       an ellipsis when the input loses focus. */

.left-sidebar-filter-input-container #left-sidebar-filter-topic-input {
        flex-wrap: nowrap;
    }

.left-sidebar-filter-input-container #left-sidebar-filter-topic-input .pill {
            flex-shrink: 0;
        }

.left-sidebar-filter-input-container #left-sidebar-filter-topic-input .input {
            white-space: nowrap;
            overflow: hidden;
        }

#views-label-container {
    margin-right: var(--left-sidebar-right-margin);
    grid-template-columns:
        0 var(--left-sidebar-header-icon-toggle-width) 0 minmax(0, 0.5fr)
        0 minmax(0, 1fr)
        var(--left-sidebar-vdots-width) 0;
    /* 28px at 16px/1em */
    grid-template-rows: 1.75em;
    cursor: pointer;
    border-radius: 4px;
}

#views-label-container:not(.remove-pointer-for-spectator):hover,#views-label-container:has(.left-sidebar-navigation-menu-icon[aria-expanded="true"]) {
        background-color: var(--color-background-hover-narrow-filter);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

#views-label-container:has(.left-sidebar-navigation-menu-icon[aria-expanded="true"]) .left-sidebar-title {
            opacity: var(--opacity-sidebar-heading-hover);
        }

#views-label-container:has(.left-sidebar-navigation-menu-icon[aria-expanded="true"]) .sidebar-heading-icon {
            opacity: var(--opacity-sidebar-heading-hover);
        }

#views-label-container:not(.remove-pointer-for-spectator):hover .left-sidebar-title,#views-label-container:not(.remove-pointer-for-spectator):hover .sidebar-heading-icon {
            opacity: var(--opacity-sidebar-heading-hover);
        }

/* When the expanded navigation is visible,
           hide the condensed navigation's controls. */

#views-label-container.showing-expanded-navigation #left-sidebar-navigation-list-condensed,#views-label-container.showing-expanded-navigation .left-sidebar-navigation-menu-icon {
            display: none;
        }

/* Give the sidebar title through the end of the markers
           area, if needed. */

#views-label-container.showing-expanded-navigation .left-sidebar-title {
            grid-column: row-content-start / markers-and-unreads-end;
        }

/* Use a next-sibling combinator (+) to use CSS to show and hide
       filter rows as needed, based on the narrow. */

#views-label-container.showing-condensed-navigation  + #left-sidebar-navigation-list {
            /* In the condensed state, we don't want to generate
               auto rows, or there will be a footprint where the
               expanded nav sits. */
            grid-auto-rows: unset;
            /* When the navigation area is condensed, hide all
               the rows in the full navigation list... */
        }

#views-label-container.showing-condensed-navigation + #left-sidebar-navigation-list .top_left_row {
                display: none;
            }

/* ...except when there is an active filter in place:
               that row should still be shown. */

#views-label-container.showing-condensed-navigation + #left-sidebar-navigation-list .top_left_row.top-left-active-filter {
                display: grid;
                /* In the absence of auto rows in the condensed state,
                   we set an explicit height on the active filter. */
                height: var(--line-height-sidebar-row);
            }

/* When unread counts display in the condensed-view
           row for users who do not prefer to mask their unread
           counts, we suppress the count on the highlighted
           home-view row. */

#views-label-container.showing-condensed-navigation:not(:has(.hide-unread-messages-count)) + #left-sidebar-navigation-list .selected-home-view .unread_count {
                    display: none;
                }

/* Remove the cursor: pointer property of Views label for the spectators. */

#views-label-container.remove-pointer-for-spectator {
        cursor: default;
    }

#views-label-container #toggle-top-left-navigation-area-icon {
        grid-area: starting-anchor-element;
        /* Horizontally center the icon in its allotted grid area. */
        justify-self: center;
    }

#views-label-container .left-sidebar-title {
        grid-area: row-content;
    }

#views-label-container #left-sidebar-navigation-list-condensed {
        margin: 0;
        grid-area: markers-and-unreads;
    }

#views-label-container .left-sidebar-navigation-menu-icon {
        grid-area: ending-anchor-element;
        /* Horizontally center vdots. */
        justify-self: stretch;
        /* Properly size vdots. */
        /* 17px at 16px/1em */
        font-size: 1.0625em;
        /* Occupy same clickable height as
           other condensed-view icons */
        /* 24px at 17px/1em */
        height: 1.4118em;
        /* Vertically center dots with
           flexbox. */
        display: flex;
        align-items: center;
        justify-content: center;
        /* These margin and padding values should be
           coordinated with those on .sidebar-menu-icon. */
        margin: 2px 2px 2px 1px;
        padding-left: 1px;
        border-radius: 3px;
        color: var(--color-vdots-visible);
    }

#views-label-container .left-sidebar-navigation-menu-icon:hover {
            color: var(--color-vdots-hover);
            background-color: var(--color-background-sidebar-action-hover);
        }

.subscription_block {
    -webkit-user-select: text;
            user-select: text;
    grid-template-columns:
        var(--left-sidebar-toggle-width-offset) var(
            --left-sidebar-icon-column-width
        )
        var(--left-sidebar-icon-content-gap) minmax(0, 1fr) minmax(
            0,
            max-content
        )
        minmax(0, max-content)
        var(--left-sidebar-vdots-width) 0;
    white-space: nowrap;
    -webkit-text-decoration: none;
    text-decoration: none;
    color: inherit;
}

.subscription_block:hover,.subscription_block:active {
        opacity: 1;
        -webkit-text-decoration: none;
        text-decoration: none;
        color: inherit;
    }

.subscription_block:not(:active):focus {
        -webkit-text-decoration: none;
        text-decoration: none;
        border: none;
        outline: none;
        color: inherit;
    }

.subscription_block .stream-privacy {
        grid-area: starting-anchor-element;
        display: flex;
        place-content: center center;
    }

.subscription_block .stream-privacy .zulip-icon.zulip-icon-globe {
            /* 12px at 14px/1em */
            font-size: 0.8571em;
        }

.subscription_block .stream-privacy .zulip-icon.zulip-icon-hashtag {
            /* 13px at 14px/1em */
            font-size: 0.9286em;
        }

.subscription_block .stream-privacy .zulip-icon.zulip-icon-lock {
            /* 13px at 14px/1em */
            font-size: 0.9286em;
        }

.subscription_block .stream-name {
        grid-area: row-content;
        color: inherit;
    }

.subscription_block .stream-name:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.left-sidebar-filter-row {
    display: grid;
    /* The final 2px column keeps the filter box from going
       to the edge of the highlighted channel box, and also
       matches the right edge to the right edge of the vdots
       on the channel row. (The vdots take a 2px right margin.) */
    grid-template-columns:
        [filter-box-start] minmax(0, 1fr)
        [clear-button-start] var(--line-height-sidebar-row-prominent)
        [clear-button-end filter-box-end] 2px;
    grid-template-rows: [filter-box-start clear-button-start] auto [clear-button-end filter-box-end];
    align-content: center;
}

.left-sidebar-filter-row .clear_search_button {
        grid-area: clear-button;
    }

.topic-box,
.searching-for-more-topics {
    display: grid;
    grid-template:
        "starting-offset starting-anchor-element icon-content-gap row-content controls markers-and-unreads ending-anchor-element ending-offset" var(
            --line-height-sidebar-row-prominent
        )
        ".               .                       .                row-content .        .                   .                     .            " auto / 0 var(
            --left-sidebar-icon-column-width
        )
        var(--left-sidebar-icon-content-gap)
        minmax(0, 1fr) minmax(0, max-content) minmax(0, max-content)
        var(--left-sidebar-vdots-width) 0;
    -webkit-text-decoration: none;
    text-decoration: none;
    color: inherit;
}

.topic-box:active {
        opacity: 1;
        -webkit-text-decoration: none;
        text-decoration: none;
        color: inherit;
    }

.searching-for-more-topics:active {
        opacity: 1;
        -webkit-text-decoration: none;
        text-decoration: none;
        color: inherit;
    }

.topic-box:hover,.searching-for-more-topics:hover {
        opacity: 1;
        -webkit-text-decoration: none;
        text-decoration: none;
        color: inherit;
    }

.topic-box:not(:active):focus {
        -webkit-text-decoration: none;
        text-decoration: none;
        border: none;
        outline: none;
        color: inherit;
    }

.searching-for-more-topics:not(:active):focus {
        -webkit-text-decoration: none;
        text-decoration: none;
        border: none;
        outline: none;
        color: inherit;
    }

.topic-box {
    -webkit-user-select: text;
            user-select: text;
}

.searching-for-more-topics {
    margin-left: var(--left-sidebar-toggle-width-offset);
    height: var(--line-height-sidebar-row-prominent);
}

.topic-box .zero_count {
    display: none;
}

.sidebar-topic-name {
    cursor: pointer;
    grid-area: row-content;
    padding: 0 var(--left-sidebar-before-unread-count-padding) 0 0;
}

.sidebar-topic-name:hover {
        color: inherit;
    }

.sidebar-topic-name:focus {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.sidebar-topic-name .sidebar-topic-name-inner {
        /* Clamp multi-line topics to two lines. */
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
        /* Break overflowing words as necessary. */
        overflow-wrap: break-word;

        line-height: var(--line-height-sidebar-topic-inner);
        /* To avoid clipping the tops of certain characters,
           we set the top space with padding. But to make the
           line-clamp effect work, we set the bottom space
           with margin. */
        padding-top: var(--spacing-top-bottom-sidebar-topic-inner);
        margin: 0 0 var(--spacing-top-bottom-sidebar-topic-inner) 0;
    }

.sidebar-topic-action-heading {
    color: var(--color-text-sidebar-action-heading);
    font-size: var(--font-size-sidebar-action-heading);
    font-weight: var(--font-weight-sidebar-action-heading);
    font-variant: var(--font-variant-sidebar-action-heading);
    font-feature-settings: var(--font-feature-settings-sidebar-action-heading), ;
    text-transform: var(--text-transform-sidebar-action-heading);

    cursor: pointer;
    grid-area: row-content;
    padding: 0 var(--left-sidebar-before-unread-count-padding) 0 0;
    /* TODO: Consolidate these styles with conversation partners and stream name
        once grid rewrite is complete on all sidebar rows.

        Also: note that these styles will be moot for topic names once we allow
        for multiline topics. If we hold multiline topics to a certain number
        of lines, we'll likely need a JavaScript-based solution like Clamp.js
        to display an ellipsis on the final visible line. */
    white-space: nowrap;
    /* Both `hidden` and `clip` are shown for the sake
        of older browsers that do not support `clip`. */
    overflow-x: hidden;
    overflow-x: clip;
    text-overflow: ellipsis;
}

.sidebar-topic-action-heading:focus {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.sidebar-topic-action-heading:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
        /* Push back against a:hover color in dark_theme.css. */
        color: var(--color-text-sidebar-action-heading-hover) !important;
    }

.filter-topics {
    font-weight: initial;
}

.searching-for-more-topics img {
    height: 16px;
    grid-area: row-content;
}

.sidebar-topic-check {
    grid-area: starting-anchor-element;
    place-self: center end;
    /* 15px at 14px/1em */
    font-size: 1.0714em;
    /* Use background to mask part of grouping bracket. */
    padding-left: 3px;
    /* Keep background from affecting rounded corners on
       .active-sub-filter by reducing the checkbox
       line-height to match its font size. */
    line-height: 1;
    /* As a grid item, adjust the checkmark's z-index here so
       that the background color appears above the grouping
       bracket's bottom line. Its value must less than
       the z-index set on .stream-list-subsection-header */
    z-index: 1;
    /* To correct an edge case where a resolved topic is
       the last in a list of topics, we set the app background
       color on it to keep the closing topic bracket from
       getting too close to the checkmark. */
    background-color: var(--color-background);
}

.left-sidebar-controls {
    grid-area: controls;
    display: grid;
    /* We won't know in advance how many controls a given
       row has, but this allows grid to generate as many
       as needed, sized to a shared icon width. */
    grid-auto-columns: var(--left-sidebar-header-icon-width);
    grid-template-rows: var(--line-height-sidebar-row-prominent);
    place-content: stretch stretch;
    margin-right: 1px;
}

.dm-markers-and-unreads,
.stream-markers-and-unreads,
.topic-markers-and-unreads {
    grid-area: markers-and-unreads;
    display: flex;
    /* Present a uniform space between icons */
    gap: 5px;
    align-items: center;
    justify-content: center;
    /* Extra margin for unreads. */
    margin-right: var(--left-sidebar-unread-offset);
}

.dm-markers-and-unreads:has(.unread_count.hide) {
        margin-right: 0;
    }

.stream-markers-and-unreads:has(.unread_count.hide) {
        margin-right: 0;
    }

.topic-markers-and-unreads:has(.unread_count.hide) {
        margin-right: 0;
    }

.dm-markers-and-unreads .unread_mention_info,.stream-markers-and-unreads .unread_mention_info,.topic-markers-and-unreads .unread_mention_info {
        /* Unset margin in favor of flex gap. */
        margin: 0;
    }

.dm-markers-and-unreads .unread_count,.stream-markers-and-unreads .unread_count,.topic-markers-and-unreads .unread_count {
        /* Height is set here by the flexbox; this
           decouples .unread_count from the app-wide
           definition. */
        height: auto;
    }

.dm-markers-and-unreads,
.conversation-partners {
    align-self: baseline;
}

.channel-new-topic-button {
    /* display: flex; is set on visible channels and
       channel-row hovers. */
    display: none;
    align-items: center;
    justify-content: center;
    color: var(--color-left-sidebar-heads-up-icon);
    margin: 2px 0;
    border-radius: 3px;
}

.channel-new-topic-button:hover {
        color: var(--color-left-sidebar-heads-up-icon-hover);
        background-color: var(
            --background-color-left-sidebar-heads-up-icon-hover
        );
    }

.narrow-filter:hover .channel-new-topic-button {
        display: flex;
    }

.bottom_left_row .sidebar-menu-icon {
    grid-area: ending-anchor-element;
}

.stream-name {
    white-space: nowrap;
    overflow-x: hidden;
    overflow-x: clip;
    text-overflow: ellipsis;
    padding: 0 var(--left-sidebar-before-unread-count-padding) 0 0;
}

.conversation-partners-list {
    /* Clamp multi-line DMs to two lines. */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    /* Break overflowing usernames as necessary. */
    overflow-wrap: break-word;

    line-height: var(--line-height-sidebar-topic-inner);
    /* To avoid clipping the tops of certain characters,
       we set the top space with padding. But to make the
       line-clamp effect work, we set the bottom space
       with margin. */
    padding: var(--spacing-top-bottom-sidebar-topic-inner)
        var(--left-sidebar-before-unread-count-padding) 0 0;
    margin-bottom: var(--spacing-top-bottom-sidebar-topic-inner);
}

/*
    All of our left sidebar handlers use absolute
    positioning.  We should fix that.
*/
.bottom_left_row .sidebar-menu-icon,
.top_left_row .sidebar-menu-icon {
    display: none;
    cursor: pointer;
    /* Use a flex container to handle
       icon centering within the grid area.
       :hover actually sets the `display: flex`,
       so it remains hidden otherwise. */
    justify-content: center;
    align-items: center;
    text-align: center;
    /* Ensure icons are vertically aligned, in
       case they appear in a grid definition,
       like the nav rows, that use a different
       centering regime for the row. */
    align-self: stretch;
    border-radius: 3px;
    /* These margin and padding values should be
       coordinated with those on
       .left-sidebar-navigation-menu-icon. */
    margin: 2px 2px 2px 1px;
    /* This helps horizontally align the vdots,
       given the reduced margin-left above. */
    padding-left: 1px;
    /* Set the icon size, which will be inherited
       by .zulip-icon */
    /* 17px at 16px/1em */
    font-size: 1.0625em;

    /*
        If you hover directly over the ellipsis itself,
        show it in black.
    */
}
.bottom_left_row .sidebar-menu-icon:hover,.top_left_row .sidebar-menu-icon:hover {
        color: var(--color-vdots-hover);
    }
/*
        Hover does not work for touch-based devices like mobile phones.
        Hence the icons does not appear, making the user unaware of its
        presence on such devices. The following media property displays the
        icon by default for such behaviour.
    */
@media (hover: none) {
.bottom_left_row .sidebar-menu-icon,
.top_left_row .sidebar-menu-icon {
        display: flex;
        /* Show dots on touchscreens in a less distracting,
           lighter shade. */
        color: var(--color-vdots-hint);
}
    }

/*
    When you hover over list items, we hover
    the vdots in light gray.

    The stream icon should always display when
    any topic is hovered, which is why it gets
    a more specific selector here.
*/
#stream_filters li:hover .stream-sidebar-menu-icon,
.top_left_row:hover .sidebar-menu-icon,
.bottom_left_row:hover .sidebar-menu-icon,
.app-main .column-left .left-sidebar .left_sidebar_menu_icon_visible {
    /* We push against `display: none` with
       `display: flex` because the sidebar vdots
       all expect to be displayed as flex items
       when visible. Their vertical alignment
       depends on it, too. */
    display: flex;
    color: var(--color-vdots-visible);
}
#stream_filters li:hover .stream-sidebar-menu-icon:hover,.top_left_row:hover .sidebar-menu-icon:not(#does-not-exist):not(does-not-exist):hover,.bottom_left_row:hover .sidebar-menu-icon:not(#does-not-exist):not(does-not-exist):hover,.app-main .column-left .left-sidebar .left_sidebar_menu_icon_visible:not(#does-not-exist):not(does-not-exist):hover {
        color: var(--color-vdots-hover);
        background-color: var(--color-background-sidebar-action-hover);
    }

ul.topic-list {
    line-height: var(--line-height-sidebar-row-prominent);
    list-style-type: none;
    font-weight: normal;
}

ul.topic-list.topic-list-has-topics::before {
    content: " ";
    display: block;
    position: absolute;
    /* 12px at 16px/1em */
    top: 0.75em;
    bottom: 0.75em;
    left: 9px;
    border: 1px solid var(--color-topic-indent-border);
    border-right: 0;
    border-radius: 9px 0 0 9px;
    width: 6px;
    pointer-events: none;
}

ul.topic-list.topic-list-has-topics::after {
    content: " ";
    display: block;
    position: absolute;
    /* -14px at 16px/1em */
    top: -0.875em;
    /* 12px at 16px/1em */
    bottom: 0.75em;
    left: 16px;
    width: 12px;
    border-bottom: 1px solid var(--color-topic-indent-border);
    pointer-events: none;
}

ul.topic-list:has(.show-more-topics)::after {
    /* When the show all topics control is displayed,
       extend the bottom bracket. */
    width: 18px;
}

#stream_filters
    .narrow-filter
    .topic-list
    .bottom_left_row:has(a.sidebar-topic-action-heading:focus-visible) {
    outline: 2px solid var(--color-outline-focus);
    outline-offset: -2px;
    background-color: var(--color-background-hover-narrow-filter);
}

/* The grouping border should not be shown
   on zoomed-in views. */
.zoom-in .topic-list.topic-list-has-topics::before,
.zoom-in .topic-list.topic-list-has-topics::after {
    border: 0;
}

li.topic-list-item {
    position: relative;
    padding-right: 5px;
    margin-left: var(--left-sidebar-toggle-width-offset);
}

.dm-box {
    -webkit-user-select: text;
            user-select: text;
    grid-template-columns:
        var(--left-sidebar-toggle-width-offset) [action-heading-start] var(
            --left-sidebar-icon-column-width
        )
        var(--left-sidebar-icon-content-gap) minmax(0, 1fr)
        [action-heading-end] 0 minmax(0, max-content)
        var(--left-sidebar-vdots-width) 0;
    grid-template-rows: [action-heading-start] auto [action-heading-end];
}

.dm-box .conversation-partners-icon {
        grid-area: starting-anchor-element;
        place-self: center;
    }

.dm-box .conversation-partners-icon:not(.user-circle) {
            place-self: start center;
        }

.dm-box .dm-name {
        grid-area: action-heading;
    }

.dm-box .user-circle {
        /* User circles are approximately 8px at 15px/1em. */
        font-size: 0.5333em;
        align-self: start;
    }

.dm-box .unread_count {
        grid-area: markers-and-unreads;
        /* Use flexbox to vertically center
           the 12px-high text node within the
           16px-high unread box. */
        display: flex;
        align-items: center;
    }

.dm-box .unread_count:empty {
            margin-right: 0;
        }

/* Since direct-messages-sticky-header also has the `input-append`
   class accompanying it. The display property of that class will
   overwrite display: none if we don't have a more specific CSS
   rule. It will also overwrite `display: none` even if `.zoom-out`
   properties are declared after the `.input-append` properties since
   the latter is more specific. */
#direct-messages-sticky-header.zoom-out #topics_header,.zoom-out:not(#does-not-exist) #topics_header {
        display: none;
    }
#direct-messages-sticky-header.zoom-out .zoom-out-hide,.zoom-out:not(#does-not-exist) .zoom-out-hide {
        display: none;
    }

#topics_header {
    display: grid;
    position: sticky;
    top: 0;
    z-index: 2;
    grid-template-columns:
        [topics-content-area-start] var(--left-sidebar-toggle-width-offset)
        0 0 minmax(0, 1fr) 0
        max-content 0 var(--left-sidebar-vdots-width)
        [topics-content-area-end] var(--left-sidebar-right-margin);
    grid-template-rows:
        [topics-content-area-start] var(--line-height-sidebar-row-prominent)
        [topics-content-area-end] 0;
    padding-top: var(--left-sidebar-sections-vertical-gutter);
    color: hsl(0deg 0% 43%);
    background-color: var(--color-background);
    /* With quiet unreads, we want the BACK TO CHANNELS
       and unread count to share a common baseline. */
    line-height: var(--line-height-sidebar-row);
    align-items: baseline;
}

#topics_header .show-all-streams {
        grid-area: topics-content-area;
        padding-left: var(--left-sidebar-toggle-width-offset);
        border-radius: 4px;
        font-size: var(--font-size-sidebar-action-heading);
        font-weight: var(--font-weight-sidebar-action-heading);
        font-feature-settings: ;
        font-variant: var(--font-variant-sidebar-action-heading);
        text-transform: var(--text-transform-sidebar-action-heading);
        color: var(--color-text-sidebar-action-heading);
        -webkit-text-decoration: none;
        text-decoration: none;
        outline: none;
    }

#topics_header .show-all-streams:hover {
            background-color: var(
                --color-background-sidebar-action-heading-hover
            );
            box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        }

#topics_header .unread_count {
        grid-area: markers-and-unreads;
        /* Extra margin for unreads. */
        margin-right: var(--left-sidebar-unread-offset);
    }

#topics_header .unread_count:empty {
            margin-right: 0;
        }

.zero_count {
    visibility: hidden;
}

.zero-topic-unreads.show-more-topics .topic-box {
    margin-right: 30px;
}

.zoom-in .narrow-filter.hide {
        display: none;
    }

.zoom-in .narrow-filter > .bottom_left_row {
        position: sticky;
        /* We need to hold the space where the BACK TO CHANNELS
           line sits, so the channel info doesn't run over the
           top of it when scrolling down. These are the same
           variables for setting the space on the BACK TO CHANNELS
           grid row plus its top padding: */
        top: calc(
            var(--line-height-sidebar-row-prominent) +
                var(--left-sidebar-sections-vertical-gutter)
        );
        z-index: 2;
        padding-bottom: 1px;
        background-color: var(--color-background);
    }

.zoom-in .narrow-filter > .bottom_left_row:hover {
            /* Prevent hover styles set on other rows. */
            box-shadow: none;
            background-color: var(--color-background);
        }

/* We avoid putting the box-shadow around both
           the channel row and the filter input it contains,
           as there is no hover effect on channel rows when
           zoomed in, making a preserve-the-hover-outline
           effect here moot. */

.zoom-in .narrow-filter > .bottom_left_row:has(.left_sidebar_menu_icon_visible) {
            box-shadow: none;
        }

/* When zooming in on a channel that's serving as an
       active filter, keep the background colors in line
       with the active-narrow-filter colors. */

.zoom-in .narrow-filter.active-filter > .bottom_left_row {
        background-color: var(--color-background-active-narrow-filter);
    }

.zoom-in .narrow-filter.active-filter > .bottom_left_row:hover {
            background-color: var(--color-background-active-narrow-filter);
        }

.zoom-in #subscribe-to-more-streams,.zoom-in #login-to-more-streams,.zoom-in .show-more-topics {
        display: none;
    }

.zoom-in.direct-messages-container ul.dm-list {
        margin-bottom: var(--left-sidebar-bottom-scrolling-buffer);
    }

.zoom-in .direct-messages-search-section {
        grid-column: filter-container;
        margin: 5px 0;
    }

.zoom-in .zoom-in-hide,.zoom-in #left-sidebar-search.zoom-in-hide {
        display: none;
    }

.zoom-in .zoom-in-sticky {
        position: sticky;
        top: 0;
        z-index: 1;
    }

.top_left_row.hidden-by-filters {
    display: none !important;
}

#left-sidebar-navigation-area.hidden-by-filters,
#direct-messages-section-header.hidden-by-filters {
    display: none;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/right_sidebar.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
    /* Width of emoji used by user to display status. */
    --user-status-emoji-width: 24px;
}

.right-sidebar a:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.right-sidebar-items {
    padding-left: var(--right-sidebar-padding-left);
}

.right-sidebar-title {
    color: var(--color-text-sidebar-heading);
    opacity: var(--opacity-sidebar-heading);
    font-size: inherit;
    font-weight: var(--font-weight-sidebar-heading);
    letter-spacing: var(--letter-spacing-sidebar-heading);
}

#buddy_list_wrapper {
    position: relative;
    margin-left: 0;
    overflow: auto;
}

.buddy-list-section-toggle.zulip-icon-heading-triangle-right {
    transition:
        opacity 140ms linear,
        rotate 140ms linear;
}

.buddy-list-section-toggle.zulip-icon-heading-triangle-right.rotate-icon-down {
        rotate: 90deg;
    }

.buddy-list-section-toggle.zulip-icon-heading-triangle-right.rotate-icon-right {
        rotate: 0deg;
    }

.buddy-list-section-toggle {
    grid-area: arrow;
    justify-self: center;
    color: var(--color-text-sidebar-heading);
    opacity: var(--opacity-sidebar-heading-icon);
}

.buddy-list-section-container {
    /* This establishes better visual concord with
       the left sidebar's spacing between a last
       channel/topic and the header that follows. */
    margin-bottom: 3px;
}

.buddy-list-section-container.no-display {
        display: none;
    }

.buddy-list-section-container.collapsed .buddy-list-section,.buddy-list-section-container.collapsed .buddy-list-user-link {
        display: none;
    }

.buddy-list-section .user_sidebar_entry:not(#does-not-exist) .user-list-sidebar-menu-icon,#userlist-header .user-list-sidebar-menu-icon {
        justify-self: stretch;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 2px 2px 2px 1px;
        /* This helps horizontally align the vdots,
           given the reduced margin-left above.
           Vertical centering looks better with an
           extra pixel of top padding in this area,
           too. */
        padding: 1px 0 0 1px;
        border-radius: 3px;
    }

.buddy-list-section .user_sidebar_entry:not(#does-not-exist) .user-list-sidebar-menu-icon .zulip-icon-more-vertical,#userlist-header .user-list-sidebar-menu-icon .zulip-icon-more-vertical {
            /* 17px at 16px em */
            font-size: 1.0625em;
        }

/*
        Hover does not work for touch-based devices like mobile phones.
        Hence the icons does not appear, making the user unaware of its
        presence on such devices. The following media property displays the
        icon by default for such behaviour.
        */

@media (hover: none) {

.buddy-list-section .user_sidebar_entry:not(#does-not-exist) .user-list-sidebar-menu-icon,#userlist-header .user-list-sidebar-menu-icon {
            visibility: visible;
            /* Show dots on touchscreens in a less distracting,
               lighter shade. */
            color: var(--color-vdots-hint);
    }
        }

.buddy-list-section .user_sidebar_entry:not(#does-not-exist):hover .user-list-sidebar-menu-icon,#userlist-header:hover .user-list-sidebar-menu-icon {
            cursor: pointer;
            color: var(--color-vdots-visible);
        }

.buddy-list-section .user_sidebar_entry:not(#does-not-exist):hover .user-list-sidebar-menu-icon:hover,#userlist-header:hover .user-list-sidebar-menu-icon:hover {
                color: var(--color-vdots-hover);
                background-color: var(--color-background-sidebar-action-hover);
            }

.buddy-list-section {
    margin: 0;
    overflow-x: hidden;
    list-style-position: inside; /* Draw the bullets inside our box */
    line-height: var(--line-height-sidebar-row);
}

.buddy-list-section .user-list-sidebar-menu-icon {
        visibility: hidden;
    }

.buddy-list-section li:hover .user-list-sidebar-menu-icon {
            visibility: visible;
        }

.buddy-list-section li {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        list-style-type: none;
        border-radius: 4px;
        padding: 0;
    }

.buddy-list-section li.narrow-filter:has(a.user-presence-link:focus-visible) {
            background-color: var(--color-buddy-list-highlighted-user);
            box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        }

.buddy-list-section li:hover,.buddy-list-section li.highlighted_user {
            background-color: var(--color-buddy-list-highlighted-user);
            box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        }

.buddy-list-section li.narrow-filter:has(a.user-presence-link:focus-visible) {
            outline: 2px solid var(--color-outline-focus);
            outline-offset: -2px;
        }

.buddy-list-section li.highlighted_user {
            outline: 2px solid var(--color-outline-focus);
            outline-offset: -2px;
        }

.buddy-list-section .narrow-filter a.user-presence-link:focus {
            outline: none;
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.buddy-list-section .user-circle {
        grid-area: starting-anchor-element;
        place-self: center center;
        /* Tighten the line-height to match the icon's size... */
        line-height: 1;
        /* ...which is approximately 8px at 15px/1em in Vlad's design. */
        font-size: 0.5333em;
    }

.buddy-list-section .user_sidebar_entry.with_avatar .user-profile-picture-container {
            /* Establish positioning context for user circle. */
            position: relative;
            /* TODO: Express this as part of the grid on
               .selectable_sidebar_block. */
            margin-right: var(--right-sidebar-avatar-right-margin);
        }

.buddy-list-section .user_sidebar_entry.with_avatar .user-profile-picture-container:not(:has(.user-circle-offline)) .user-profile-picture {
                /* The over-avatar user circle width is 15.5px at 20px/1em;
                   we adjust the border radius here to avoid any pixels
                   from the avatar bleeding through. */
                border-bottom-right-radius: 0.3875em; /* 7.75px at 20px/1em */
            }

.buddy-list-section .user_sidebar_entry.with_avatar .user-profile-picture {
            /* Push back on the margin-right usually allotted here;
               we put it on .user-profile-picture-container instead,
               so that user circles occupy the corner of the image. */
            margin-right: 0;
        }

.buddy-list-section .user_sidebar_entry.with_avatar .user-circle {
            position: absolute;
            /* 10px at 16px/1em */
            font-size: 0.625em;
            bottom: -0.5px;
            right: -0.5px;
            background-color: var(--color-background);
            /* A 1.5px border provides better results than
               a 1px border, especially at smaller font sizes. */
            border: 1.5px solid var(--color-background);
            border-radius: 50%;
        }

.buddy-list-section .user_sidebar_entry.with_avatar .user-circle.user-circle-offline {
                display: none;
            }

/* Overwrite some stray list rules (including one in left_sidebar.css) to turn color
       back to the bootstrap default. */

.buddy-list-section .view-all-subscribers-link,.buddy-list-section .view-all-users-link {
        color: var(--color-text-url);
    }

.buddy-list-section .view-all-subscribers-link:hover,.buddy-list-section .view-all-users-link:hover {
            /* Prevent hover styles set on other rows until
               the right sidebar matches the action-heading typography
               of the left sidebar. */
            box-shadow: none;
            background-color: inherit;
            color: var(--color-text-url-hover);
        }

#left-sidebar-empty-list-message {
    list-style-type: none;
    padding-top: 10px;
    text-align: center;
}

#left-sidebar-empty-list-message .empty-list-message,
.buddy-list-section .empty-list-message {
    font-style: italic;
    color: var(--color-text-empty-list-message);
    /* Overwrite default empty list font size, to look better under the subheaders. */
    /* 14px at 16px/1em */
    font-size: 0.875em;
    /* Override .empty-list-message !important styling */
    padding: 0 !important;
    text-align: left;
}

#left-sidebar-empty-list-message .empty-list-message:hover,.buddy-list-section .empty-list-message:not(#does-not-exist):hover {
        /* Prevent hover styles set on other rows. */
        box-shadow: none;
        background-color: inherit;
    }

.buddy-list-subsection-header {
    display: grid;
    align-items: center;
    grid-template:
        "arrow row-content scroll-buffer" var(
            --line-height-sidebar-row-prominent
        )
        / var(--right-sidebar-header-icon-toggle-width) minmax(0, 1fr);
    cursor: pointer;
    background-color: var(--color-background);
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--color-text-default);
    border-radius: 4px;
    margin-right: var(--width-simplebar-scroll-hover);
}

.buddy-list-subsection-header:hover {
        background-color: var(--color-buddy-list-highlighted-user);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
    }

.buddy-list-subsection-header:hover .buddy-list-section-toggle,.buddy-list-subsection-header:hover .buddy-list-heading {
            opacity: var(--opacity-sidebar-heading-hover);
        }

.buddy-list-heading {
    -webkit-user-select: none;
            user-select: none;
    margin: 0;
    padding: 5px 5px 5px 0;
    color: var(--color-text-sidebar-heading);
    font-size: inherit;
    font-weight: var(--font-weight-sidebar-heading);
    letter-spacing: var(--letter-spacing-sidebar-heading);
    opacity: var(--opacity-sidebar-heading);
    transition: opacity 140ms linear;
    grid-area: row-content;
    display: flex;
}

.buddy-list-heading-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-right: 2px;
}

.buddy-list-heading-user-count-with-parens {
    opacity: 0.75;
}

.buddy-list-subsection-header.no-display {
    display: none;
}

.user-presence-link,
.user_sidebar_entry .selectable_sidebar_block {
    overflow: hidden;
    color: var(--color-text-sidebar-row);
}

.user-presence-link:not(.does-not-exist) .user-name,.user_sidebar_entry .selectable_sidebar_block .user-name {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.user_sidebar_entry .selectable_sidebar_block {
    grid-area: row-content;
    display: grid;
    grid-template:
        "starting-anchor-element row-content markers-and-controls" var(
            --line-height-sidebar-row
        )
        ".                       row-content ." auto / var(
            --right-sidebar-presence-circle-width
        )
        minmax(0, 1fr)
        minmax(0, auto);
    align-items: baseline;
}

.user_sidebar_entry.with_avatar {
    grid-template:
        "row-content" var(--line-height-sidebar-row-with-avatars)
        "row-content" auto / minmax(0, 1fr);
}

.user_sidebar_entry.with_avatar .selectable_sidebar_block {
        grid-template-rows: auto;
        padding: 4px;
        padding-left: calc(var(--right-sidebar-header-icon-toggle-width) / 2);
    }

.user_sidebar_entry.with_avatar .avatar-preload-background {
        background-color: var(--color-buddy-list-avatar-loading);
    }

.user_sidebar_entry.with_avatar .unread_count:not(.hide) {
        margin-right: 2px;
    }

.user_sidebar_entry.with_avatar.with_status .unread_count {
        align-self: baseline;
    }

.user-presence-link {
    -webkit-user-select: text;
            user-select: text;
    grid-area: row-content;
}

.user-presence-link:hover,.user-presence-link:focus {
        color: var(--color-text-sidebar-row);
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.information-settings .profile-with-avatar,
.user_sidebar_entry.with_avatar .selectable_sidebar_block {
    line-height: var(--line-height-sidebar-row-with-avatars);
    display: grid;
    grid-template:
        "avatar row-content markers-and-controls" var(
            --right-sidebar-avatar-width
        )
        / auto minmax(0, 1fr) minmax(0, auto);
    justify-content: flex-start;
    align-items: center;
}

.information-settings .profile-with-avatar {
    margin: 5px 0;
}

.my_user_status {
    opacity: 0.5;
    white-space: nowrap;
}

.selectable_sidebar_block {
    cursor: pointer;
}

.user_list_style_values .user-name-and-status-emoji {
        display: flex;
        align-items: center;
        width: 100%;
    }

.user_list_style_values .user-name-and-status-emoji .user-name {
            display: inline-block;
            max-width: calc(100% - var(--user-status-emoji-width));
            overflow-x: hidden;
            text-overflow: ellipsis;
        }

.user_list_style_values .user-name-and-status-emoji .status-emoji {
            line-height: 20px;
            margin-left: 6px;
        }

.user_list_style_values .status-text {
        overflow-x: hidden;
        text-overflow: ellipsis;
    }

.user_sidebar_entry {
    display: grid;
    /* We establish a two-row, two-column outer grid so
       that controls remain aligned with the username,
       even when there is a status line shown below.

       The 25px column for the vdots is less than the
       30px allotted in the left sidebar, but it holds
       the username area constant, so that no ellipsis
       appears on the username on hover. The 25px value
       is necessary for correct vdots alignment with the
       filter row's vdots. */
    grid-template:
        "row-content ending-anchor-element" var(--line-height-sidebar-row)
        "row-content ." auto / minmax(0, 1fr) var(--right-sidebar-vdots-width);
    align-content: baseline;
    margin-right: var(--width-simplebar-scroll-hover);
    /* When both the left circle and three dot menu are present, we want
       the space to the left of the circle to be more similar to the space
       to the right of the three dot menu. */
}

.user_sidebar_entry:not(.with_avatar) {
        padding-left: calc(var(--right-sidebar-toggle-width-offset) - 2px);
    }

.user_sidebar_entry:hover {
        cursor: pointer;
    }

.user_sidebar_entry .user-name-and-status-emoji {
        display: flex;
    }

.user_sidebar_entry .status-text {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        opacity: 0.75;
        font-size: 90%;
    }

.user_sidebar_entry span.status-text:not(:empty) {
        /* Cinch up the status text by one quarter of the
           sidebar row's line-height. */
        margin-top: calc((var(--line-height-sidebar-row) / 4) * -1);
    }

.user_sidebar_entry .unread_count {
        grid-area: markers-and-controls;
        align-self: center;
        display: none;
    }

.user_sidebar_entry .unread_count:not(.hide) {
        display: block;
        margin-left: 4px;
    }

.user_sidebar_entry .unread_count:not(.hide):empty {
            /* Hide otherwise empty unread count pill
               after DMs have been read, but before the
               count has been removed from the DOM. */
            display: none;
        }

#userlist-toggle {
    text-align: center;
    vertical-align: middle;
}

#userlist-toggle-button {
    -webkit-text-decoration: none;
    text-decoration: none;
    color: hsl(0deg 0% 60%);
}

#userlist-toggle-button:hover {
        color: inherit;
    }

.right-sidebar-items:first-of-type #userlist-header {
    border-top: none;
}

#userlist-header {
    cursor: pointer;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-left: var(--right-sidebar-heading-left-spacing);
    /* The scrollbar doesn't extend this high, but we want the three-dot
       menus to line up. */
    padding-right: var(--width-simplebar-scroll-hover);
    padding-bottom: var(--sidebar-filter-bottom-spacing);
    background-color: var(--color-background);
}

#userlist-header #buddy-list-menu-icon {
        color: var(--color-vdots-visible);
        width: var(--right-sidebar-vdots-width);
        /* Push back against default right-sidebar
           spacing for better vdots alignment. */
        padding: 0;
        /* No left/right margin to maintain vdots
           alignment with user rows below. */
        margin: 2px 0;
    }

#userlist-header #buddy-list-menu-icon:hover {
            color: var(--color-vdots-hover);
            background-color: var(--color-background-sidebar-action-hover);
        }

.buddy-list-user-link,
.invite-user-shortcut {
    margin-right: var(--width-simplebar-scroll-hover);
    border-radius: 4px;
}

.buddy-list-user-link:hover,.invite-user-shortcut:hover {
        background: var(--color-background-sidebar-action-heading-hover);
        box-shadow: inset 0 0 0 1px var(--color-shadow-sidebar-row-hover);
        color: var(--color-text-sidebar-action-heading-hover);
    }

.buddy-list-user-link .right-sidebar-wrappable-text-container,.invite-user-shortcut .right-sidebar-wrappable-text-container {
        display: grid;
        grid-template-rows: minmax(
            var(--line-height-sidebar-row-prominent),
            auto
        );
        align-items: center;
        color: var(--color-text-sidebar-action-heading);
    }

.buddy-list-user-link .right-sidebar-wrappable-text-container .right-sidebar-wrappable-text-inner,.invite-user-shortcut .right-sidebar-wrappable-text-container .right-sidebar-wrappable-text-inner {
            margin: var(--spacing-top-bottom-sidebar-topic-inner) 0;
            line-height: 1;
            -webkit-text-decoration: none;
            text-decoration: none;
            font-size: var(--font-size-sidebar-action-heading);
            font-weight: var(--font-weight-sidebar-action-heading);
            font-variant: var(--font-variant-sidebar-action-heading);
            font-feature-settings: var(
                --font-feature-settings-sidebar-action-heading
            ), , , ;
        }

.buddy-list-user-link .right-sidebar-wrappable-text-container,.invite-user-shortcut .right-sidebar-wrappable-text-container {
        text-transform: var(--text-transform-sidebar-action-heading);
    }

#user-list.with_avatars
    .buddy-list-user-link
    .right-sidebar-wrappable-text-container,
#user-list.with_avatars .buddy-list-section .empty-list-message {
    margin-left: var(--right-sidebar-text-indent-with-avatar);
}

.buddy-list-user-link .right-sidebar-wrappable-text-container,
.buddy-list-section .empty-list-message {
    margin-left: var(--right-sidebar-text-indent-without-avatar);
}

.invite-user-shortcut {
    /* The margin top is calculated from a legacy 25px height,
       from a 20px line of text and 5px of margin top. We calculate
       a scaling margin-top by subtracting the em-unit line height
       from the legacy value. */
    margin-top: calc(25px - (var(--legacy-body-line-height-unitless) * 1em));
    margin-bottom: var(--sidebar-bottom-spacing);
}

.invite-user-shortcut .invite-user-link {
        /* TODO: We should eventually change the grid to use the correct
           --right-sidebar-presence-circle-width with left spacing, and
           share that left spacing value here. */
        padding-left: calc(var(--right-sidebar-toggle-width-offset) + 0.3em);
    }

#user-list.with_avatars .invite-user-link {
    padding-left: calc(var(--right-sidebar-header-icon-toggle-width) / 2);
}

#buddy-list-actions-menu-popover .display-style-selector + .invite-user-link-item {
        border-top: 1px solid var(--color-border-sidebar-subheader);
    }

/* No hover effect on the label */

#buddy-list-actions-menu-popover .display-style-selector-header:hover {
        background: inherit;
        cursor: default;
    }

#buddy-list-actions-menu-popover .popover-menu-link:not(.display-style-selector-header) {
        display: grid;
        grid-template: "left-icon row-content" auto / 18px minmax(
                max-content,
                1fr
            );
        align-items: center;
    }

#buddy-list-actions-menu-popover .popover-menu-link:not(.display-style-selector-header) .popover-menu-icon,#buddy-list-actions-menu-popover .popover-menu-link:not(.display-style-selector-header) .user_list_style_choice {
            grid-area: left-icon;
            justify-self: baseline;
        }

#buddy-list-actions-menu-popover .popover-menu-link:not(.display-style-selector-header) .popover-menu-label {
            grid-area: row-content;
        }

#buddy-list-loading-subscribers {
    margin: auto;
    padding-right: var(--width-simplebar-scroll-hover);
    padding-top: 30px;
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/lightbox.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
#lightbox_overlay {
    background-color: hsl(227deg 40% 16%);
    display: flex;
    flex-direction: column;
    height: 100dvh;
}

#lightbox_overlay .image-preview {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 100%;
        margin: 0;
        overflow: hidden;

        background-size: contain;
        background-repeat: no-repeat;
        background-position: center center;
    }

#lightbox_overlay .image-preview img {
            cursor: move;
            max-height: 100%;
            max-width: 100%;
            object-fit: contain;
        }

#lightbox_overlay .image-preview .zoom-element {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

#lightbox_overlay .video-player {
        flex: 1;
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: center;
        margin: 0;
        overflow: hidden;
    }

#lightbox_overlay .video-player video {
            max-width: 100%;
            max-height: 100%;
        }

#lightbox_overlay .exit {
        flex-shrink: 0;

        color: hsl(0deg 0% 100% / 80%);
        font-size: 14px;
        line-height: 31px;

        opacity: 0;
        pointer-events: none;
        cursor: pointer;
        transition: opacity 0.2s ease;
    }

#lightbox_overlay.show .exit {
        pointer-events: auto;
        opacity: 1;
    }

#lightbox_overlay .media-info-wrapper {
        display: flex;
        justify-content: end;
        align-items: start;
        gap: 20px;
        padding: 20px;

        background-color: transparent;
    }

#lightbox_overlay .media-actions {
        display: flex;
        flex-shrink: 0;
        gap: 10px;
    }

#lightbox_overlay .media-actions .button {
            font-size: 0.9rem;
            min-width: inherit;
            padding: 4px 10px;
            border: 1px solid hsl(0deg 0% 100% / 60%);
            background-color: transparent;
            color: hsl(0deg 0% 100%);
            border-radius: 4px;
            -webkit-text-decoration: none;
            text-decoration: none;
            display: inline-block;
        }

#lightbox_overlay .media-actions .button:hover {
                background-color: hsl(0deg 0% 100%);
                border-color: hsl(0deg 0% 100%);
                color: hsl(227deg 40% 16%);
            }

#lightbox_overlay .media-actions .disabled {
            opacity: 0.7;
            cursor: default;
        }

#lightbox_overlay .media-actions .disabled:hover {
                background-color: transparent;
                color: hsl(0deg 0% 100%);
                border: 1px solid hsl(0deg 0% 100% / 60%);
            }

#lightbox_overlay .media-description {
        container: media-description / inline-size;

        flex: 1;
        /* setting min-width to an absolute value will make
           sure the text gets truncated in case of overflow */
        min-width: 0;

        font-size: 1.1rem;
        color: hsl(0deg 0% 100%);
    }

#lightbox_overlay .media-description .title {
            vertical-align: top;
            font-weight: 400;
            line-height: normal;

            /* Required for text-overflow */
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

#lightbox_overlay .media-description .user {
            font-weight: 300;
            line-height: normal;
            text-overflow: ellipsis;
            overflow: hidden;
            white-space: pre;
        }

#lightbox_overlay .media-description .user::before {
                margin-right: 5px;
                content: "\2014";
            }

#lightbox_overlay .player-container {
        flex: 1;
        display: flex;
        justify-content: center;
        align-items: center;
    }

#lightbox_overlay .player-container iframe {
            aspect-ratio: 16/9;
            /* for screen_width<=lg_min aspect-ratio will be
               maintained given portrait mode is used */
            /* in landscape max-height will prevent overflow,
               however user will benefit more from using
               youtube fullscreen at that point */
            width: 100%;
            /* maintains the aspect ratio for screen_width>=lg_min. */
            max-width: 992px;
            /* height(media_info_container) + height(center) < 200px */
            max-height: calc(100dvh - 200px);
        }

#lightbox_overlay .center {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 2px;
        padding: 12px 20px;
    }

#lightbox_overlay .center .arrow {
            color: hsl(0deg 0% 100%);
            /* The thumbnails do not scale, so we express these
               dimensions as pixels, too. */
            font-size: 35px;
            line-height: 25.6px;

            cursor: pointer;

            opacity: 0.5;
            transition: opacity 0.3s ease;
        }

#lightbox_overlay .center .arrow:hover {
                opacity: 1;
            }

#lightbox_overlay .center .image-list {
            position: relative;
            display: inline-block;
            font-size: 0;

            max-width: 40vw;
            overflow: hidden;
            white-space: nowrap;
        }

#lightbox_overlay .center .image-list .image {
                display: inline-block;
                vertical-align: top;
                width: 50px;
                height: 50px;
                margin: 0 2px;

                background-color: hsl(0deg 0% 94% / 20%);
                opacity: 0.5;

                background-size: cover;
                background-position: center;
                cursor: pointer;
            }

#lightbox_overlay .center .image-list .image.selected {
                    opacity: 1;
                }

#lightbox_overlay .center .image-list .lightbox_video video {
                width: 50px;
                height: 50px;
            }

/* hide media-description if it has width less than 100px  */
@container media-description (max-width: 100px) {
        .media-description .title {
            display: none;
        }

        .media-description .user {
            display: none;
        }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/popovers.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/*
  Our Tippy popovers use the strangely named "light-border" Tippy
  theme, so this block defines the common styling for all of our Tippy
  popovers. (Tippy tooltips are defined in tooltips.css).
*/
.tippy-box[data-theme="light-border"] {
    background-color: var(--color-background-popover);
    /* Basic Tippy popovers scale with the base font-size. */
    font-size: var(--base-font-size-px);
}
.tippy-box[data-theme="light-border"] .tippy-content {
        /* We set the font-size here to override the
           default value in the upstream tippy.css */
        /* 14px at 14px/1em */
        font-size: 1em;
    }
/* TODO: Clean this logic up after drop Bootstrap styling */
.tippy-box[data-theme="light-border"] hr {
        /* Override bootstrap defaults */
        margin: 5px 0;
    }
.tippy-box[data-theme="light-border"][data-placement^="top"] > .tippy-arrow::before {
                border-top-color: var(--color-background-popover);
            }
.tippy-box[data-theme="light-border"][data-placement^="bottom"] > .tippy-arrow::before {
                border-bottom-color: var(--color-background-popover);
            }
.tippy-box[data-theme="light-border"][data-placement^="left"] > .tippy-arrow::before {
                border-left-color: var(--color-background-popover);
            }
.tippy-box[data-theme="light-border"][data-placement^="right"] > .tippy-arrow::before {
                border-right-color: var(--color-background-popover);
            }

.tippy-box[data-theme="dropdown-widget"] {
    border-radius: 6px;
    background-color: var(--color-background-dropdown-widget);
    border: 1px solid var(--color-border-dropdown-widget);
    --csstools-light-dark-toggle--0:
        var(--csstools-color-scheme--light) hsl(0deg 0% 0% / 35%);
    --csstools-light-dark-toggle--1:
        var(--csstools-color-scheme--light) hsl(0deg 0% 0% / 32%);
    --csstools-light-dark-toggle--2:
        var(--csstools-color-scheme--light) hsl(0deg 0% 0% / 20%);
    box-shadow:
        0 7px 13px var(--csstools-light-dark-toggle--0, hsl(0deg 0% 0% / 15%)),
        0 5px 8px var(--csstools-light-dark-toggle--1, hsl(0deg 0% 0% / 12%)),
        0 2px 4px var(--csstools-light-dark-toggle--2, hsl(0deg 0% 0% / 10%));
    box-shadow:
        0 7px 13px light-dark(hsl(0deg 0% 0% / 15%), hsl(0deg 0% 0% / 35%)),
        0 5px 8px light-dark(hsl(0deg 0% 0% / 12%), hsl(0deg 0% 0% / 32%)),
        0 2px 4px light-dark(hsl(0deg 0% 0% / 10%), hsl(0deg 0% 0% / 20%));
    /* Tippy dropdown widgets scale with the base font-size. */
    font-size: var(--base-font-size-px);
}

.tippy-box[data-theme="dropdown-widget"] .tippy-content {
        /* We set the font-size here to override the
           default value in the upstream tippy.css */
        /* 14px at 14px/1em */
        font-size: 1em;
        color: hsl(0deg 0% 75%);
        padding: 0;
    }

.tippy-box[data-theme="popover-menu"] {
    background-color: var(--color-background-popover-menu);
    border: 1px solid var(--color-border-popover-menu);
    border-radius: 6px;
    box-shadow: var(--box-shadow-popover-menu);
    font-size: 1.0714em; /* 15px at 14px em */
}

.tippy-box[data-theme="popover-menu"]  > .tippy-content {
        padding: 0;
        /* We set the font-size here to override the
           default value in the upstream tippy.css */
        /* 15 at 15px/1em */
        font-size: 1em;
    }

.tippy-box[data-theme="popover-menu"]  > .tippy-arrow {
        color: var(--color-background-popover-menu);
    }

.tippy-box[data-theme="popover-menu"][data-placement^="top"] > .tippy-arrow::before {
        bottom: var(--popover-tippy-arrow-before-offset);
    }

.tippy-box[data-theme="popover-menu"][data-placement^="bottom"] > .tippy-arrow::before {
        top: var(--popover-tippy-arrow-before-offset);
    }

.tippy-box[data-theme="popover-menu"][data-placement^="left"] > .tippy-arrow::before {
        right: var(--popover-tippy-arrow-before-offset);
    }

.tippy-box[data-theme="popover-menu"][data-placement^="right"] > .tippy-arrow::before {
        left: var(--popover-tippy-arrow-before-offset);
    }

.giphy-popover .tippy-box .tippy-arrow {
    /* Since the GIPHY banner at the popover is black,
       match the arrow color with the banner. */
    color: hsl(0deg 0% 0%);
}

.tippy-box[data-theme="popover-menu"]:has(#gear-menu-dropdown) {
    --box-shadow-popover-menu: var(--box-shadow-gear-menu);
}

.user_full_name {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.user-card-popover-actions {
    --color-text-item: var(--color-text-user-card-secondary);
}

.user-card-popover-actions .user-card-popover-bot-owner-field.text-item {
            align-items: center;
            white-space: nowrap;
        }

.user-card-popover-actions .user-card-popover-bot-owner-field .pill-container {
            border: none !important;
        }

.user-card-popover-actions .user-card-popover-bot-owner-field .pill {
            border: none;
            -webkit-text-decoration: none;
            text-decoration: none;
            color: var(--color-text-popover-menu);
            background-color: var(--color-background-text-direct-mention);
        }

.user-card-popover-actions .user-card-popover-bot-owner-field .pill:hover {
                color: var(--color-text-popover-menu);
                background-color: var(
                    --color-background-text-hover-direct-mention
                );
                -webkit-text-decoration: none;
                text-decoration: none;
            }

.user-card-popover-actions .pill-container {
        padding: 0;
    }

.user-card-popover-actions .custom-profile-field-value {
        display: flex;
        align-items: center;
        gap: 5px;
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

.user-card-popover-actions .custom-profile-field-value.rendered_markdown p {
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
        /* Overriding CSS from rendered_markdown.css */
        margin: 0;
    }

.user-card-popover-actions .custom-profile-field-link {
        color: var(--color-text-item);
    }

.user-card-popover-actions .custom-profile-field-link:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.user-card-popover-actions .custom-profile-field-link:focus-visible {
            color: var(--color-text-url-hover);
            outline: 1px solid var(--color-outline-focus) !important;
            outline-offset: 2px;
            border-radius: 2px;
        }

.user-card-popover-actions .custom-profile-field-link .custom-profile-field-text {
            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }

.user-card-popover-actions .custom-profile-field-link .custom-profile-field-text:hover {
                -webkit-text-decoration: underline;
                text-decoration: underline;
            }

.custom-user-url-field {
    display: flex;
    align-items: center;
    /* Maintain space between URL and copy icon. */
    gap: 3px;
    overflow: hidden;
}

.custom-user-url-field .custom-profile-fields-link {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

.custom-user-url-field .copy-custom-field-url {
        height: 1em;
    }

.hidden-remove-button {
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
    pointer-events: none;
}

.hidden-remove-button:has(.button-loading-indicator) {
    visibility: visible;
    cursor: default;
    opacity: 1;
}

.hidden-remove-button-row:hover
    .hidden-remove-button:not(:has(.button-loading-indicator)) {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

#stream-actions-menu-popover .popover-stream-name,#stream-card-popover .popover-stream-name {
        font-weight: 600;
        color: var(--color-text-popover-menu);
        line-height: 1.1;
    }

#stream-actions-menu-popover .popover-stream-name,#stream-card-popover .popover-stream-name,#stream-actions-menu-popover .stream-privacy.filter-icon,#stream-card-popover .stream-privacy.filter-icon {
        margin-top: 4px;
    }

#stream-actions-menu-popover .zulip-icon-lock,#stream-card-popover .zulip-icon-lock {
        /* Override the margin-top set on the stream lock icon
           at the top-level, since we don't need to pull up this
           icon for the stream actions popover header.  */
        margin: 0 !important;
    }

#stream-actions-menu-popover .popover-stream-info-menu-description,#stream-card-popover .popover-stream-info-menu-description {
        color: var(--color-text-popover-menu);
    }

#topic-actions-menu-popover .popover-topic-name {
        font-weight: 600;
        color: var(--color-text-popover-menu);
        line-height: 1.1;
        margin-top: 4px;
        white-space: pre-wrap;
    }

.popover-header-name {
    font-weight: 600;
    color: var(--color-text-popover-menu);
    line-height: 1.1;
    margin-top: 4px;
}

.popover-group-menu-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 3px var(--user-group-popover-horizontal-padding);
}

.popover-group-menu-name-container {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    /* 18px at 15px/1em */
    font-size: 1.2em;
    font-weight: 600;
    /* 20px at 18px/1em */
    line-height: 1.1111em;
    color: var(--color-text-full-name);
    overflow-wrap: anywhere;
}

.popover-group-menu-description {
    /* 15px at 15px/1em */
    font-size: 1em;
    /* 16px at 15px/1em */
    line-height: 1.0667em;
}

ul.popover-group-menu-member-list {
    max-height: 300px;
    display: flex;
    flex-direction: column;
}

ul.popover-group-menu-member-list .simplebar-content {
        display: grid;
        grid-template-areas: "group-member-icon gap group-member-name";
        grid-template-columns:
            max-content var(--user-group-popover-icon-text-gap)
            minmax(0, 1fr);
        width: unset;
    }

ul.popover-group-menu-member-list .popover-group-menu-member {
        display: grid;
        grid-template-columns: subgrid;
        grid-column: 1 / -1;
        align-items: center;
        padding: 0 var(--user-group-popover-horizontal-padding);
    }

ul.popover-group-menu-member-list .popover-group-member-icon {
        justify-self: center;
        grid-area: group-member-icon;
    }

ul.popover-group-menu-member-list .popover-group-menu-member-name {
        grid-area: group-member-name;
    }

.popover-group-menu-placeholder {
    padding: 0 var(--user-group-popover-horizontal-padding);
}

.popover-group-menu-member .zulip-icon-user-group {
        color: var(--color-icon-purple);
    }

.popover-group-menu-member-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.popover-group-menu-description,
.popover-group-menu-member-name,
.popover-group-menu-placeholder {
    color: var(--color-text-popover-menu);
}

.user-status-icon-wrapper {
    display: flex;
}

.popover-group-menu-user-presence {
    /* 11px at 16px/1em */
    font-size: 0.6875em;
}

.user_profile_presence {
    /* Remove font-size to allow this to scale
       with the menu header text. Declaring font-size
       here maintains the legacy design of keeping
       the user-circle smaller, despite the larger
       surrounding text and icons. */
    font-size: calc(var(--base-font-size-px) * 0.6666);
    line-height: 1;
}

.popover-avatar {
    height: 240px;
    width: 240px;
    background-size: cover;
    background-position: center;
    position: relative;
}

.popover-avatar.guest-avatar::after {
        outline: 10px solid hsl(0deg 0% 100%);
    }

.popover-avatar .popover-inner {
        width: 240px;
    }

#user-profile-modal .modal__body {
        box-sizing: border-box;
        height: 60vh;
        padding-left: 16px;
        padding-right: 16px;

        /*
            The height of the main body of the profile modal is 60vh. However,
            the footer is only present in the manage user tab. To make sure the
            modal doesn't expand while switching between tabs, we can reduce
            the height of the main body to 52vh - 1px (border radius of the footer)
            and add a footer of 8vh.
        */
    }

#user-profile-modal .modal__body.modal__body__manage_profile_height {
            height: calc(52vh - 1px);
        }

#user-profile-modal .modal__header {
        justify-items: center;
    }

#user-profile-modal .modal__close {
        position: absolute;
        right: 20px;
    }

#user-profile-modal #tab-toggle {
        font-weight: initial;
        padding: 0 16px 6px;
    }

#user-profile-modal .name {
        color: var(--color-user-profile-field-name);
        font-weight: 600;
        margin-right: 10px;
        overflow-wrap: break-word;
    }

#user-profile-modal .value {
        vertical-align: top;
        overflow-wrap: anywhere;
    }

#user-profile-modal #exit-sign {
        /* 24px at 14px/1em */
        font-size: 1.7143em;
        line-height: 1;
    }

#user-profile-modal #profile-tab {
        margin: 1px 5px 0;
    }

#user-profile-modal #profile-tab li.custom_user_field {
            display: block;
        }

#user-profile-modal .top {
        display: flex;
        justify-content: space-between;
    }

@media (max-width: 424.98px) {
        #user-profile-modal .top {
            flex-direction: column-reverse;
        }
    }

#user-profile-modal #avatar {
        display: inline-block;
        height: 180px;
        width: 180px;
        background-size: cover;
        background-position: center;
        border-radius: 5px;
        box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 20%);
    }

#user-profile-modal #avatar.guest-avatar::after {
            outline: 9px solid hsl(0deg 0% 100%);
        }

#user-profile-modal .user-profile-header-actions {
        display: flex;
        gap: 5px;
    }

#user-profile-modal .deactivated-user-icon {
        vertical-align: middle;
        font-size: 0.7em;
    }

#user-profile-modal #default-section {
        vertical-align: top;
    }

#user-profile-modal #default-section .default-field {
            margin-bottom: 10px;
        }

#user-profile-modal hr {
        border: 1px solid hsl(0deg 0% 93%);
        margin: 5px 0;
    }

#user-profile-modal #content .field-section {
            margin-bottom: 10px;
        }

#user-profile-modal #content .field-section[data-type="2"] .value {
                overflow-wrap: break-word;
            }

#user-profile-modal #content .rendered_markdown p {
            margin: 0;
        }

#user-profile-modal .col-left {
        padding: 0 10px 0 0;
    }

#user-profile-modal .col-right {
        width: -moz-fit-content;
        width: fit-content;
    }

#user-profile-modal .tab-data .active {
            display: block;
        }

#user-profile-modal .tab-data {

        margin-bottom: 20px;
    }

#user-profile-modal .group-tab-element-header,#user-profile-modal .stream-tab-element-header {
        margin: 0;
        display: inline-block;
        font-weight: inherit;
        /* 21px at 14px/1em */
        font-size: 1.5em;
    }

#user-profile-modal #user-profile-streams-tab .stream_list_info {
            margin-bottom: 8px;
        }

#user-profile-modal #user-profile-streams-tab .user-profile-group-list-alert {
            margin-bottom: 8px;
        }

#user-profile-modal #user-profile-streams-tab .stream-privacy {
            display: flex;
            align-items: center;
        }

#user-profile-modal #user-profile-streams-tab .filter-icon i {
            padding-right: 3px;
        }

#user-profile-modal #user-profile-streams-tab .user_profile_subscribe_widget {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            padding-top: 2px;
        }

#user-profile-modal #user-profile-streams-tab .dropdown_widget_value {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

#user-profile-modal .group-list-top-section,#user-profile-modal .stream-list-top-section {
        display: flex;
        margin-top: 12px;
        align-items: center;
        margin-bottom: 5px;
    }

#user-profile-modal .group-list-top-section .group-search-container,#user-profile-modal .stream-list-top-section .group-search-container,#user-profile-modal .group-list-top-section .stream-search-container,#user-profile-modal .stream-list-top-section .stream-search-container {
            margin-left: auto;
            display: grid;
            grid-template:
                "search-input clear-search" auto / minmax(0, 1fr)
                30px;
        }

#user-profile-modal .group-list-top-section .group-search,#user-profile-modal .stream-list-top-section .group-search,#user-profile-modal .group-list-top-section .stream-search,#user-profile-modal .stream-list-top-section .stream-search {
            grid-column: search-input-start / clear-search-end;
            grid-row: search-input;
            padding-right: 28px;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
            margin-bottom: 0;
            /* Override default modal input width, since that overflows.
               This is 185px (the default "width: unset" width) at 14px/em */
            width: 13.2142em;
        }

#user-profile-modal .group-list-top-section .group-search:placeholder-shown + #clear_groups_search {
            visibility: hidden;
        }

#user-profile-modal .stream-list-top-section .group-search:placeholder-shown + #clear_groups_search {
            visibility: hidden;
        }

#user-profile-modal .group-list-top-section .stream-search:placeholder-shown + #clear_stream_search {
            visibility: hidden;
        }

#user-profile-modal .stream-list-top-section .stream-search:placeholder-shown + #clear_stream_search {
            visibility: hidden;
        }

#user-profile-modal .subscription-group-list,#user-profile-modal .subscription-stream-list {
        border: 1px solid var(--color-border-user-profile-table);
        border-radius: 4px;
        overflow: auto;
        text-align: left;
        margin-bottom: 5px;
        -webkit-overflow-scrolling: touch;
    }

#user-profile-modal .subscription-group-list .user-stream-list,#user-profile-modal .subscription-stream-list .user-stream-list,#user-profile-modal .subscription-group-list .user-group-list,#user-profile-modal .subscription-stream-list .user-group-list {
            width: 100%;
            margin: auto;
            border-radius: 6px;
            border-collapse: collapse;
        }

#user-profile-modal .subscription-group-list .user-stream-list tr,#user-profile-modal .subscription-stream-list .user-stream-list tr,#user-profile-modal .subscription-group-list .user-group-list tr,#user-profile-modal .subscription-stream-list .user-group-list tr {
                border-bottom: 1px solid var(--color-border-user-profile-table);
                /* Ensure equal height for rows with a remove-subscription-button and
                   those without one. */
                height: 34px;
            }

#user-profile-modal .subscription-group-list .user-stream-list tr:last-of-type {
                    border-bottom: none;
                }

#user-profile-modal .subscription-stream-list .user-stream-list tr:last-of-type {
                    border-bottom: none;
                }

#user-profile-modal .subscription-group-list .user-group-list tr:last-of-type {
                    border-bottom: none;
                }

#user-profile-modal .subscription-stream-list .user-group-list tr:last-of-type {
                    border-bottom: none;
                }

#user-profile-modal .subscription-group-list .user-stream-list tr td,#user-profile-modal .subscription-stream-list .user-stream-list tr td,#user-profile-modal .subscription-group-list .user-group-list tr td,#user-profile-modal .subscription-stream-list .user-group-list tr td {
                    padding: 4px 0;
                }

#user-profile-modal .subscription-group-list .user-stream-list tr td.remove_subscription,#user-profile-modal .subscription-stream-list .user-stream-list tr td.remove_subscription,#user-profile-modal .subscription-group-list .user-group-list tr td.remove_subscription,#user-profile-modal .subscription-stream-list .user-group-list tr td.remove_subscription,#user-profile-modal .subscription-group-list .user-stream-list tr td.remove_member,#user-profile-modal .subscription-stream-list .user-stream-list tr td.remove_member,#user-profile-modal .subscription-group-list .user-group-list tr td.remove_member,#user-profile-modal .subscription-stream-list .user-group-list tr td.remove_member {
                        padding-right: 10px;
                    }

#user-profile-modal .subscription-group-list .user-stream-list tr td.user-profile-channel-row,#user-profile-modal .subscription-stream-list .user-stream-list tr td.user-profile-channel-row,#user-profile-modal .subscription-group-list .user-group-list tr td.user-profile-channel-row,#user-profile-modal .subscription-stream-list .user-group-list tr td.user-profile-channel-row,#user-profile-modal .subscription-group-list .user-stream-list tr td.user-profile-group-row,#user-profile-modal .subscription-stream-list .user-stream-list tr td.user-profile-group-row,#user-profile-modal .subscription-group-list .user-group-list tr td.user-profile-group-row,#user-profile-modal .subscription-stream-list .user-group-list tr td.user-profile-group-row {
                        text-align: left;
                        padding-left: 10px;
                    }

#user-profile-modal .subscription-group-list .user-stream-list tr td.user-profile-channel-row .user-profile-channel-container,#user-profile-modal .subscription-stream-list .user-stream-list tr td.user-profile-channel-row .user-profile-channel-container,#user-profile-modal .subscription-group-list .user-group-list tr td.user-profile-channel-row .user-profile-channel-container,#user-profile-modal .subscription-stream-list .user-group-list tr td.user-profile-channel-row .user-profile-channel-container,#user-profile-modal .subscription-group-list .user-stream-list tr td.user-profile-group-row .user-profile-channel-container,#user-profile-modal .subscription-stream-list .user-stream-list tr td.user-profile-group-row .user-profile-channel-container,#user-profile-modal .subscription-group-list .user-group-list tr td.user-profile-group-row .user-profile-channel-container,#user-profile-modal .subscription-stream-list .user-group-list tr td.user-profile-group-row .user-profile-channel-container {
                            display: flex;
                            gap: 3px;
                        }

#user-profile-modal .subscription-group-list .user-stream-list .remove-button-wrapper,#user-profile-modal .subscription-stream-list .user-stream-list .remove-button-wrapper,#user-profile-modal .subscription-group-list .user-group-list .remove-button-wrapper,#user-profile-modal .subscription-stream-list .user-group-list .remove-button-wrapper {
                display: flex;
                justify-content: flex-end;
            }

#user-profile-modal .manage-profile-tab-footer {
        height: 0;
    }

#user-profile-modal .manage-profile-tab-footer.modal__footer_wrapper {
            border-top: 1px solid var(--color-border-manage-profile-footer);
            display: flex;
            justify-content: flex-end;
            align-items: center;
            height: 8vh;

            /* The default padding of the footer is 20px. However, since we have set */
            /* the height of the footer wrapper to be 8vh on different screen sizes, */
            /* the buttons might look odd. Instead of using padding top and bottom, we */
            /* just use the flex and properties to align them. */
        }

#user-profile-modal .manage-profile-tab-footer.modal__footer_wrapper .modal__footer {
                padding-top: unset;
                padding-bottom: unset;
            }

#user-profile-modal .empty-list {
        border: none;
    }

#user-profile-modal .empty-list .empty-table-message {
            padding: 3em 1em;
        }

@media (max-width: 767.98px) {
    .popover-flex {
        position: absolute;
        top: 0 !important;
        left: 0 !important;

        width: 100vw;
        height: 100vh;

        display: flex !important;
        justify-content: center;
        align-items: center;

        background-color: hsl(0deg 0% 0% / 70%);

        /* Needs to be higher than the 105 for div.overlay so that the
           emoji picker can render on top of the user status picker. */
        z-index: 106;

        opacity: 0;
        pointer-events: none;

        transition: opacity 0.3s ease;
    }

        .popover-flex.fade.in {
            opacity: 1;
            pointer-events: all;
        }

    .emoji-picker-popover {
        position: static;
        margin-right: 0;
    }
        #user-profile-modal .group-list-top-section,#user-profile-modal .stream-list-top-section {
            display: block;
        }

            #user-profile-modal .group-list-top-section .header-section,#user-profile-modal .stream-list-top-section .header-section {
                width: 100%;
            }

            #user-profile-modal .group-list-top-section .group-search,#user-profile-modal .stream-list-top-section .group-search,#user-profile-modal .group-list-top-section .stream-search,#user-profile-modal .stream-list-top-section .stream-search {
                margin-bottom: 8px;
            }

            #user-profile-modal .group-list-top-section #clear_groups_search,#user-profile-modal .stream-list-top-section #clear_groups_search,#user-profile-modal .group-list-top-section #clear_stream_search,#user-profile-modal .stream-list-top-section #clear_stream_search {
                padding-top: 1px;
            }
}

.popover.top .arrow::after {
    left: -1px;
}

.giphy-popover .tippy-content,.emoji-popover-root .tippy-content {
        /* We remove the default padding from this container
           as it is not necessary for the Giphy popover. */
        padding: 0;

        /* By resetting to the default color from the `body`,
           we can ignore the colors applied from `tippy-box`. */
        color: var(--color-text-default);
    }

/* The emoji popover has a different background color for the
       header and footer, so we customize the arrow to match this color. */

.emoji-popover-root .tippy-box[data-placement="top"] .tippy-arrow::before {
        border-top-color: var(--color-border-emoji-picker-tippy-arrow);
    }

.emoji-popover-root .tippy-box[data-placement="bottom"] .tippy-arrow::before {
        border-bottom-color: var(--color-border-emoji-picker-tippy-arrow);
    }

.emoji-popover-root .tippy-box[data-placement="left"] .tippy-arrow::before {
        border-left-color: var(--color-border-emoji-picker-tippy-arrow);
    }

#giphy_grid_in_popover {
    /* 300px of GIPHY grid + 5px is the extra gutter space
     * + 1px for outline.
     * between gif columns. */
    width: 306px;
    border: 0;
    padding: 0;
}

#giphy_grid_in_popover .giphy-gif {
        cursor: pointer;
    }

#giphy_grid_in_popover .giphy-gif:focus {
        /* Red outline for clear visibility
         * of which image is in focus.
         */
        outline: 1px solid hsl(0deg 100% 50%);
    }

#giphy_grid_in_popover .giphy-scrolling-container {
        overflow: hidden auto;
        height: 200px;
        margin: 2px 3px;
        padding: 5px 0;
    }

#giphy_grid_in_popover .popover-footer {
        text-align: center;
        background-color: hsl(0deg 0% 0%);
        /* The border radius corresponds to the default radius value from `tippy-box`. */
        border-radius: 0 0 4px 4px;

        /* This prevents the footer from experiencing height
           fluctuations at the moment when the image is uploaded. */
        min-height: 25px;
    }

#giphy_grid_in_popover .popover-footer img {
            width: 120px;
        }

/* Modals have a 16px/1em base font-size. */

#move_topic_modal form {
        margin: 0;
    }

#move_topic_modal .modal_select {
        width: auto;
        max-width: 100%;
    }

#move_topic_modal .modal__title {
        /* Grid defined in modal.css */
        grid-area: heading;
    }

#move_topic_modal .modal__title .channel-privacy-type-icon {
            padding-left: 3px;
            padding-right: 5px;
        }

#move_topic_modal #move_topic_to_stream_widget_wrapper {
        display: flex;
        /* 230px at 16px/1em */
        max-width: 14.375em;
    }

#move_topic_modal #move_topic_to_stream_widget_wrapper .dropdown-widget-button {
            outline: none;
            /* 24px at 16px/1em */
            line-height: 1.5em;
            width: 100%;
        }

#move_topic_modal #move_topic_to_stream_widget_wrapper .dropdown_widget_value {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            color: var(--color-text-default);
        }

#move_topic_modal #move_topic_to_stream_widget_wrapper .dropdown_widget_value .channel-privacy-type-icon {
                /* 13px at 16px/1em */
                font-size: 0.8125em;
                /* 13px at 13px/1em */
                width: 1em;
                height: 1em;
                position: relative;
                top: 2px;
            }

#move_topic_modal #move_topic_to_stream_widget_wrapper .zulip-icon-chevron-down {
            padding-left: 5px;
            color: hsl(0deg 0% 58%);
            font-weight: lighter;
        }

#move_topic_modal #move-topic-new-topic-input-wrapper {
        position: relative;
        display: grid;
        /* 30px at 16px/1em */
        grid-template:
            "move-topic-input clear-topic" auto / minmax(0, 1fr)
            1.875em;
    }

#move_topic_modal #move-topic-new-topic-input-wrapper input.move_messages_edit_topic {
            grid-column: move-topic-input-start / clear-topic-end;
            grid-row: move-topic-input;
            /* 30px at 16px/1em */
            padding-right: 1.875em;
            margin-bottom: unset;
            box-sizing: border-box;
            width: 100%;
            height: auto;
        }

#move_topic_modal #move-topic-new-topic-input-wrapper input.move_messages_edit_topic.empty-topic-display::placeholder {
                color: inherit;
            }

#move_topic_modal #move-topic-new-topic-input-wrapper input.move_messages_edit_topic.empty-topic-only {
                cursor: default;
            }

#move_topic_modal .move-topic-new-topic-placeholder {
        position: absolute;
        left: 6px;
        right: 6px;
        top: 50%;
        transform: translateY(-50%);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        pointer-events: none;
        visibility: hidden;
    }

#move_topic_modal .move-topic-new-topic-placeholder-visible {
        visibility: visible;
    }

#move_topic_modal #message_move_select_options {
        width: 100%;
    }

#move_topic_modal #move_messages_count {
        /* Disabled pending fixes to the logic. */
        display: none;
    }

#move_topic_modal .topic_stream_edit_header #select_stream_id {
            border-left: 0;
            padding-left: 0;
            border-radius: 3px;
            margin: 0 5px 5px -10px;
            text-indent: 10px;
        }

#move_topic_modal .topic_stream_edit_header .dropdown-menu {
            position: fixed;
            top: 125px;
            left: 40px;
        }

#move_topic_modal .topic_move_breadcrumb_messages {
        margin: 0 5px 5px 0;
        align-self: center;
        width: 100%;
    }

#move_topic_modal .topic_move_breadcrumb_messages label.checkbox {
            /* Place the checkboxes on their own lines. */
            display: block;
        }

#move_topic_modal .topic_move_breadcrumb_messages label.checkbox input {
                margin: 0;
                vertical-align: baseline;
            }

#move_topic_modal .topic_move_breadcrumb_messages label.checkbox + label.checkbox {
                margin-top: 10px;
            }

#move_topic_modal .topic_move_breadcrumb_messages label {
            display: inline-block;
            margin-right: 10px;
        }

#language_selection_modal {
    width: min(750px, 70vw);
}

.default_language_modal_table {
    -moz-column-count: 3;
         column-count: 3;
}

@media (max-width: 767.98px) {

.default_language_modal_table {
        -moz-column-count: 2;
             column-count: 2;
}
    }

@media (max-width: 575.98px) {

.default_language_modal_table {
        -moz-column-count: 1;
             column-count: 1;
}
    }

#send_later_popover hr {
        margin: 5px 0;
    }

.visibility-policy-popover .popover-menu-list {
        padding: 2px;
    }

.recipient-bar-topic-visibility-switcher .tab-option-content {
        /* 15px at 16px/1em */
        font-size: 0.9375em;
        color: var(--color-text-popover-menu);
        gap: 10px;
        justify-content: flex-start;
        padding: 2px 13px;
    }

.popover-menu-user-header {
    display: flex;
    flex-flow: row nowrap;
    gap: 7px;
    text-align: left;
    padding: 4px;
}

.popover-menu-user-header .popover-menu-user-avatar-container {
        position: relative;
        flex-shrink: 0;
        width: var(--length-user-popover-menu-avatar);
        height: var(--length-user-popover-menu-avatar);
    }

.popover-menu-user-header .popover-menu-user-avatar {
        width: var(--length-user-popover-menu-avatar);
        height: var(--length-user-popover-menu-avatar);
        border-radius: 4px;
        background-size: cover;
        background-position: center;
    }

.popover-menu-user-header .popover-menu-user-presence {
        position: absolute;
        /* Presence dot does not scale, because
           the avatar itself does not scale. */
        font-size: var(--length-user-status-circle-popover-menu);
        line-height: 1;
        right: -1px;
        bottom: -1px;
        background-color: var(--color-background-popover-menu);
        border: solid 1px var(--color-background-popover-menu);
        border-radius: 50%;
    }

.popover-menu-user-header .popover-menu-user-presence.deactivated-user-icon {
            font-size: 0.8em;
            background-color: var(--color-background-popover-menu);
            padding: 1px;
        }

.popover-menu-user-header .popover-menu-user-info {
        width: max-content;
        align-self: center;
        overflow: hidden;
    }

.popover-menu-user-header .popover-menu-user-full-name {
        /* 18px at 15px/1em */
        font-size: 1.2em;
        font-weight: 600;
        /* 20px at 18px/1em */
        line-height: 1.1111em;
        color: var(--color-text-full-name);
        overflow-wrap: anywhere;
    }

.popover-menu-user-header .popover-menu-user-full-name .zulip-icon.zulip-icon-bot {
            vertical-align: middle;
        }

.popover-menu-user-header .popover-menu-user-type {
        /* 14px at 15px/1em */
        font-size: 0.9333em;
        font-weight: 400;
        /* 16px at 14px/1em */
        line-height: 1.1428em;
        color: var(--color-text-item);
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.user-card-popover-email-field .user_popover_email {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
    }

#popover-menu-copy-email,
.copy-custom-profile-field-link {
    display: flex;
    margin-left: auto;
}

#popover-menu-copy-email.hide_copy_icon,.hide_copy_icon.copy-custom-profile-field-link:not(#does-not-exist) {
        display: none;
    }

#popover-menu-copy-email:focus-visible {
        outline: 1px solid var(--color-outline-focus) !important;
    }

.copy-custom-profile-field-link:not(#does-not-exist):focus-visible {
        outline: 1px solid var(--color-outline-focus) !important;
    }

.personal-menu-header {
    display: flex;
    flex-flow: row nowrap;
    gap: 7px;
    text-align: left;
    padding: 4px;
}

.personal-menu-header .avatar {
        position: relative;
        width: 64px;
        height: 64px;
    }

.personal-menu-header .avatar-image {
        width: 64px;
        height: 64px;
        border-radius: 4px;
        background-size: cover;
        background-position: center;
    }

.personal-menu-header .status-circle {
        position: absolute;
        top: unset;
        left: unset;
        font-size: var(--length-user-status-circle);
        line-height: 1;
        right: -1px;
        bottom: -1px;
        background-color: var(--color-background-popover-menu);
        border: solid 1px var(--color-background-popover-menu);
        border-radius: 50%;
    }

.personal-menu-header .text-area {
        flex-grow: 1;
        padding-top: 4px;
    }

.personal-menu-header .text-area p {
            margin: 0 0 4px;
        }

.personal-menu-header .full-name {
        /* 18px at 15px/1em */
        font-size: 1.2em;
        font-weight: 600;
        /* 20px at 18px/1em */
        line-height: 1.1111em;
        color: var(--color-text-full-name) !important;
        max-width: 150px;
        overflow-wrap: anywhere;
    }

.personal-menu-header .user-type {
        /* 14px at 15px/1em */
        font-size: 0.9333em;
        font-weight: 400;
        /* 16px at 14px/1em */
        line-height: 1.1429em;
        color: var(--color-text-item) !important;
    }

.popover-menu {
    margin: 0;
    max-height: 85vh;
    overflow-x: hidden;
    -webkit-user-select: none;
            user-select: none;
    border-radius: 6px;
}

.popover-menu .simplebar-content {
        /* Set the popover menu width equal to the width of the
        longest menu item, thus letting the menu items control
        the width of the menu. */
        width: min-content;
        /* Set `max-width` to the minimum of `97vw` and the value defined by
        the `--popover-menu-max-width` custom property, which should be defined
        as a local custom property in the scope of a particular popover where
        we want apply a `max-width` limit.

        When we don't define this local custom property, the fallback value of
        `97vw` is considered and the `max-width` is then set to `min(97vw, 97vw)`
        which is simply equivalent to `97vw`.

        IMPORTANT: Setting `--popover-menu-max-width` in the `:root` scope
        instead of the local scope, eliminates the fallback behavior and thus
        prevents us from setting the max-width on a case-to-case basis. */
        max-width: min(var(--popover-menu-max-width, 97vw), 97vw);
    }

.popover-menu .popover-menu-label {
        /* Keep menu items on a single line, unless forced to wrap
        by a max-width on the popover. */
        width: max-content;
        flex: 1 0 0;
    }

.popover-menu .text-item,.popover-menu .link-item .popover-menu-link {
        box-sizing: border-box;
        display: flex;
        flex-flow: row nowrap;
        align-items: flex-start;
        gap: 5px;
        /* 3px at 15px/1em, 10px at 15px/1em */
        padding: 0.2em 0.6666em;
        /* 15px at 15px/1em */
        font-size: 1em;
        /* 16px at 15px/1em */
        line-height: 1.0667em;
        /* 26px at 16px/1em - this height was carried forward
           despite the information density change in 15px > 16px,
           so we calculate its height to the 16px em in use. */
        min-height: 1.625em;
    }

.popover-menu .text-item:not(.does-not-exist) .popover-menu-icon,.popover-menu .link-item .popover-menu-link .popover-menu-icon {
            /* 16px at 15px/1em */
            font-size: 1.0667em;
            /* 16px at 16px/1em */
            width: 1em;
            height: 1em;
            text-align: center;
        }

.popover-menu .text-item {
        color: var(--color-text-item);
        width: auto;
        -webkit-user-select: text;
                user-select: text;
    }

.popover-menu .link-item {
        outline: none;
    }

.popover-menu .link-item:focus-within {
            background: var(--color-background-hover-popover-menu);
        }

.popover-menu .link-item .popover-menu-label,.popover-menu .link-item .popover-menu-icon {
            margin-top: 2px;
        }

.popover-menu .link-item .popover-menu-icon {
            color: var(--color-icon-purple);
        }

.popover-menu .link-item .popover-menu-link {
            color: var(--color-text-popover-menu) !important;
            -webkit-text-decoration: none;
            text-decoration: none;
            flex-grow: 1;
        }

.popover-menu .link-item .popover-menu-link:hover {
                background: var(--color-background-hover-popover-menu);
                outline: none;
            }

.popover-menu .link-item .popover-menu-link:focus-visible {
                border-radius: 4px;
                /* Override the default focus style */
                outline: 1px solid var(--color-outline-focus) !important;
                outline-offset: -1px;
            }

.popover-menu .link-item .popover-menu-link:active {
                background: var(--color-background-active-popover-menu);
            }

.popover-menu .tab-picker.popover-menu-tab-group {
            margin: 2px 10px;
        }

.popover-menu .tab-picker .tab-option-content:focus-visible {
            border-radius: 4px;
            /* Override the default focus style */
            outline: 1px solid var(--color-outline-focus) !important;
            outline-offset: -1px;
        }

.popover-menu .status_emoji {
        align-self: flex-start;
        flex-shrink: 0;
        /* 16px at 15px/1em */
        width: 1.0667em;
        height: 1.0667em;
    }

.popover-menu .popover-menu-icon {
        position: relative;
        top: -1px;
    }

.popover-menu .info-density-controls {
        display: flex;
        padding: 0.125em 0.625em;
        gap: 0.5em;
    }

.popover-menu .info-density-controls .zulip-icon {
            width: 0.933em;
            height: 0.933em;
        }

#help-menu-dropdown .simplebar-content,#gear-menu-dropdown .simplebar-content,#personal-menu-dropdown .simplebar-content {
        min-width: var(--navbar-popover-menu-min-width);
    }

#message-actions-menu-dropdown {
    /* 350px at 15px/1em */
    --popover-menu-max-width: 23.3333em;
}

#message-actions-menu-dropdown .simplebar-content {
        min-width: var(--message-actions-popover-min-width);
    }

#stream-actions-menu-popover .simplebar-content,#topic-actions-menu-popover .simplebar-content {
        min-width: var(--topic-actions-popover-min-width);
    }

#user_card_popover {
    /* 250px at 14px/1em */
    --popover-menu-max-width: 17.8571em;
}

#user_card_popover .simplebar-content {
        min-width: var(--user-card-popover-min-width);
    }

.user-group-info-popover .simplebar-content {
        min-width: var(--user-group-info-popover-min-width);
    }

#stream-card-popover .simplebar-content {
        min-width: var(--stream-card-popover-min-width);
    }

.color-picker-popover {
    --popover-menu-max-width: calc(
        var(--padding-color-swatch-list) * 2 + var(--size-color-swatch) * 6 +
            var(--grid-gap-color-swatch) * 5
    );
}

.personal-menu-clear-status {
    display: flex;
    align-items: center;
    margin-left: auto;
    color: hsl(0deg 0% 40%) !important;
    border-radius: 4px;
    opacity: 0.5;
}

.personal-menu-clear-status:focus {
        /* Override bootstrap defaults */
        outline: 1px solid var(--color-outline-focus) !important;
        outline-offset: 0;
    }

.personal-menu-clear-status:hover,.personal-menu-clear-status:focus {
        opacity: 0.9;
        -webkit-text-decoration: none;
        text-decoration: none;
    }

.personal-menu-clear-status .personal-menu-clear-status-icon {
    top: 0;
}

.personal-menu-status-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 5px;
}

.personal-menu-status-text {
    color: var(--color-text-personal-menu-some-status);
}

.personal-menu-no-status-text {
    color: var(--color-text-personal-menu-no-status);
}

#gear-menu-dropdown .org-info-container {
        padding: 9px 0 5px;
        border-bottom: solid 1px var(--color-border-popover-menu-separator);
    }

#gear-menu-dropdown .org-info-container .org-info {
            display: flex;
            justify-content: flex-start;
            font-style: normal;
            font-weight: 400;
            /* 16px at 15px/1em */
            line-height: 1.0667em;
            letter-spacing: 0.28px;
        }

#gear-menu-dropdown .org-info-container .org-info:focus-within {
                background: var(--color-background-hover-popover-menu);
            }

#gear-menu-dropdown .org-info-container .org-info .popover-menu-link {
                padding: 2px 10px;
                flex-grow: 1;
                -webkit-text-decoration: none;
                text-decoration: none;
            }

#gear-menu-dropdown .org-info-container .org-info .popover-menu-link:hover {
                    background: var(--color-background-hover-popover-menu);
                    outline: none;
                }

#gear-menu-dropdown .org-info-container .org-info .popover-menu-link:focus-visible {
                    border-radius: 4px;
                    /* Override the default focus style */
                    outline: 1px solid var(--color-outline-focus) !important;
                    outline-offset: -1px;
                }

#gear-menu-dropdown .org-info-container .org-info .popover-menu-link:active {
                    background: var(--color-background-active-popover-menu);
                }

#gear-menu-dropdown .org-info-container .org-url {
            margin-bottom: 7px;
            padding: 0 10px;
        }

#gear-menu-dropdown .org-info-container .org-name,#gear-menu-dropdown .org-info-container .org-plan .popover-menu-link {
            color: var(--color-text-popover-menu);
        }

#gear-menu-dropdown .org-info-container .org-name {
            /* 17px at 15px/1em */
            font-size: 1.1333em;
            font-weight: 600;
            /* 22px at 17px/1em */
            line-height: 1.2941em;
            padding: 0 10px;
        }

#gear-menu-dropdown .org-info-container .org-upgrade {
            /* 14px at 15px/1em */
            font-size: 0.9333em;
            /* 16px at 14px/1em */
            line-height: 1.1428em;
        }

#gear-menu-dropdown .org-info-container .org-upgrade,#gear-menu-dropdown .org-info-container .org-url {
            color: var(--color-gear-menu-lighter-text);
        }

#gear-menu-dropdown .org-info-container .org-upgrade a,#gear-menu-dropdown .org-info-container .org-version a {
            color: var(--color-gear-menu-blue-text);
        }

#gear-menu-dropdown .theme-switcher {
        /* Left and right margins are set to match the alignment with
        other items in the menu. Other elements have space of 0.6666em
        on both sides, but they have font size set to 1em and theme
        switcher has font size set to 1.0666em. So, we need space of
        0.6666/1.0666 em on each side. */
        margin: 0 0.625em;
    }

#gear-menu-dropdown .info-density-controls {
        /* Left and right paddings are set to match the alignment with
        other items in the menu. */
        padding: 0.4em 0.6666em 0.25em;
    }

ul.popover-menu-list {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

ul.popover-menu-list li.popover-menu-separator {
        margin: 4px 0;
        border-bottom: solid 1px var(--color-border-popover-menu-separator);
    }

.popover-menu-hotkey-hints {
    display: flex;
    gap: 4px;
    margin-left: auto;
    padding-left: 5px;
}

.popover-menu-hotkey-hints  > .popover-menu-hotkey-hint {
        box-sizing: border-box;
        color: var(--color-popover-hotkey-hint);
        text-align: center;
        /* 14px at 15px/1em */
        font-size: 0.9333em;
        font-style: normal;
        font-weight: 500;
        /* 14px at 14px/1em */
        line-height: 1em;
        /* 20px at 14px/1em */
        min-width: 1.4285em;
        padding: 2px 4px;
        border-radius: 3px;
        border: 1px solid var(--color-border-popover-hotkey-hint);
    }

.condensed-views-popover-menu .popover-menu-link:has(.label-and-unread-wrapper) {
        align-items: center;
    }

.condensed-views-popover-menu .popover-menu-link:has(.label-and-unread-wrapper) .popover-menu-icon {
            margin-top: 1px;
        }

.condensed-views-popover-menu .popover-menu-link:has(.label-and-unread-wrapper) .label-and-unread-wrapper {
            /* Occupy the maximum width of the
               parent flex container. */
            flex: 1 0 max-content;
            display: flex;
            gap: 5px;
            align-items: baseline;
        }

.condensed-views-popover-menu .popover-menu-link:has(.label-and-unread-wrapper) .popover-menu-label {
            margin-top: 0;
        }

.condensed-views-popover-menu .popover-menu-link:has(.label-and-unread-wrapper) .unread_count {
            margin: 0 0 0 6px;
            border-color: var(--color-border-unread-counter-popover-menu);
            width: max-content;
            height: auto;
            line-height: 1.2445em;
            align-self: baseline;
        }

#groups-to-add {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

#user-group-to-add {
    flex: 1;
    min-width: 0;
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/recent_view.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.recent_view_container {
    padding: 0;
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: var(--navbar-fixed-height);
    z-index: 1;
}

.recent_view_container #recent_view_table {
    max-width: 100%;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
    border: 0;
}

#recent_view_table .table,
#recent-view-content-table {
    /* To keep border properties to the thead th. */
    border-collapse: separate;

    border-spacing: 0;
    width: 100%;
}

#recent_view {
    display: none;
    padding-top: var(--navbar-fixed-height);
    /* Add bottom padding equal to `#bottom-whitespace`. This helps us keep #compose visible
       at its max-height without overlapping with any visible topics. */
    padding-bottom: var(--max-unmaximized-compose-height);
}

#recent_view td {
        vertical-align: middle;
        padding: 3px 8px;
        border-top: 1px solid var(--color-border-recent-view-row);
    }

#recent_view .recent_view_focusable {
        /* Use flexbox to align icons vertically */
        display: flex;
        align-items: center;
    }

#recent_view .recent_view_focusable .recent-view-table-link,#recent_view .recent_view_focusable > .zulip-icon {
            outline: 0;
        }

#recent_view .recent_view_focusable:focus-within {
            /* Use the same color as the message feed pointer */
            box-shadow: 0 3px 0 var(--color-outline-focus);
        }

#recent_view .recent_view_focusable.change_visibility_policy.topic-popover-visible .visibility-status-icon {
                opacity: 0.4;
            }

#recent_view .recent_view_focusable.change_visibility_policy .visibility-status-icon:not(.recent-view-row-topic-menu):hover {
            /* Show vertical ellipsis when user hovers over visibility indicator icon. */
            background-image: url(files/shared/icons/more-vertical.svg);
            background-repeat: no-repeat;
            background-position: left bottom;
            background-size: contain;
            width: var(--base-font-size-px);
            height: var(--base-font-size-px);
        }

#recent_view .recent_view_focusable.change_visibility_policy .visibility-status-icon:not(.recent-view-row-topic-menu):hover::before {
                content: "";
            }

#recent_view .recent_view_focusable.change_visibility_policy .recent-view-row-topic-menu {
            opacity: 0;
            cursor: pointer;
        }

#recent_view .recent_view_focusable.change_visibility_policy .recent-view-row-topic-menu:not(.visibility-status-icon) {
                display: none;
            }

#recent_view .recent_view_focusable.change_visibility_policy .recent-view-row-topic-menu:focus {
                opacity: 0.2;
            }

#recent_view a {
        color: var(--color-recent-view-link);
        -webkit-text-decoration: none;
        text-decoration: none;
    }

#recent_view a:hover {
            color: var(--color-recent-view-link-hover);
        }

#recent_view .white-space-preserve-wrap {
        overflow-wrap: anywhere;
    }

#recent_view .empty-table-message {
        background-color: var(--color-background);
        padding: 3em 1em;
    }

#recent_view .fa-check-square-o,#recent_view .fa-square-o {
        width: 0.7142em; /* Legacy 10px size at 14px/1em. */
        padding-right: 0.3571em; /* Legacy 5px size at 14px/1em. */
        padding-left: 0.1428em; /* Legacy 2px size at 14px/1em. */
    }

#recent_view .zulip-icon-user {
        /* Legacy 11.2px size at 14px/1em. */
        font-size: 0.8em;
        text-align: center;
        opacity: 0.6;
    }

#recent_view .table_fix_head {
        padding: 0 !important;
    }

#recent_view .recent-view-load-more-container {
        margin: 20px 10px;
        align-items: center;
    }

#recent_view .fetch-messages-button {
        display: grid;
        justify-items: center;
    }

#recent_view .fetch-messages-button .loading_indicator_spinner {
            height: 20px;
            width: 20px;
        }

#recent_view .fetch-messages-button path {
            fill: var(--color-recent-view-loading-spinner);
        }

#recent_view .table_fix_head table th {
        padding: 8px;
        text-align: left;
    }

#recent_view #recent_view_filter_buttons {
        /* This padding-top value aligns the recents filters
           with the filters in the left and right sidebars.
           TODO: As part of the recents redesign, these filters
           should match the height of the sidebar filters. */
        padding: 10px 10px 0;
        display: flex;
        gap: var(--recent-topics-filters-gap);
        /* Search box has no height without this in safari. */
        flex: 0 0 auto;
        flex-wrap: wrap;
        justify-content: flex-start;
        background: var(--color-background);
    }

#recent_view #recent_filters_group {
        display: flex;
        flex-flow: row wrap;
        gap: var(--recent-topics-filters-gap);
    }

#recent_view #recent-view-search-wrapper {
        flex-grow: 1;
        margin-bottom: var(--recent-topics-filters-gap);
    }

#recent_view .button-recent-filters {
        color: var(--color-text-default);
        background-color: var(--color-background-zulip-button);
        border: 1px solid var(--color-border-zulip-button);
        border-radius: 40px;
        /* Matching to the height of the filter search box. */
        height: var(--recent-topics-filters-height);
        /* Legacy 12px at 14px/1em. */
        padding: 0 0.8571em;

        flex: 0 0 auto;
        display: flex;
        align-items: center;
    }

#recent_view .button-recent-filters:hover {
            background-color: var(--color-background-zulip-button-hover);
        }

#recent_view .button-recent-filters:active {
            background-color: var(--color-background-zulip-button-active);
        }

#recent_view .button-recent-filters:focus {
            background-color: var(
                --color-background-recent-filters-button-focus
            );
            outline: 0;
        }

#recent_view .button-recent-filters.fake_disabled_button {
            cursor: not-allowed;
            opacity: 0.5;
        }

#recent_view .button-recent-filters.fake_disabled_button:hover {
                background-color: var(
                    --color-background-recent-filters-button-disabled
                );
                border-color: var(
                    --color-border-recent-filters-button-disabled
                );
            }

#recent_view .button-recent-selected {
        background-color: var(--color-background-recent-view-selected);
    }

#recent_view .unread_count {
        /* Focus underline can only occupy the total length of the unread count */
        margin-right: 1px;
        margin-left: 1px;
        align-self: center;
        opacity: 1;
        outline: 0 solid var(--color-background-unread-counter);
        transition: outline-width 0.1s ease;
    }

#recent_view .unread_count:hover {
            outline-width: 1.5px;
        }

#recent_view .unread_mention_info:not(:empty) {
        /* Zero out right margin from left sidebar presentation. */
        margin-right: 0;
        /* Match with its font-size. */
        line-height: 14px;
        /* Present a default/arrow cursor */
        cursor: default;
    }

#recent_view .unread_hidden {
        visibility: hidden;
    }

#recent_view .flex_container_pm {
        /* Flex container to fit in user circle and group icon */
        display: flex;
        justify-content: space-between;
    }

#recent_view .flex_container_pm .tippy-content {
            font-weight: 400;
        }

#recent_view .flex_container {
        display: flex;
        align-items: center;
    }

#recent_view .flex_container .right_part {
        margin-left: auto;
        display: inline-flex;
        align-items: center;
    }

#recent_view .recent_topic_actions {
        /* Add spacing between mention marker, unread count
            and mute icon */
        margin-left: 5px;
        display: flex;
        flex-flow: row nowrap;
        /* Preserve space for the actions even on archived
           channels, especially those with unreads. The
           width is 16px at 16px/1em. */
        min-width: 1em;
    }

#recent_view .mention_in_unread {
        opacity: 0.7;
    }

#recent_view .recent_topic_actions.dummy_action_button {
        visibility: hidden;
    }

#recent_view .recent_topic_actions .recent_view_focusable {
        /* Keep a uniform distance from the focus-within
            indicator at bottom. */
        padding-bottom: 3px;
        /* But push down with margin by the same amount,
            so as to preserve vertical alignment introduced
            by the parent flexbox. */
        margin-top: 3px;
    }

#recent_view .recent_topic_actions .recipient_bar_icon {
        /* Zero out padding used in recipient bar. */
        padding-right: 0;
        padding-left: 0;
    }

#recent_view .recent_view_participants {
        display: inline-flex; /* Causes LI items to display in row. */
        /* Keep avatars centered on the line. */
        vertical-align: middle;
        list-style-type: none;
        margin: auto; /* Centers vertically / horizontally in flex container. */
        /* 24px at 16px/1em */
        height: 1.5em;
        /* 4px at 16px/1em */
        padding: 0.25em 4px;
        border-radius: 6px;
        overflow: hidden;

        /*
            By using the row-reverse layout, the visual ordering will be opposite of
            the DOM ordering. This will allows us to stack the items in the opposite
            direction of the natural stacking order without having to mess with the
            zIndex value. The MAJOR DOWNSIDE is that the HTML itself now reads
            backwards, which super janky.
        */
        flex-direction: row-reverse;
    }

#recent_view .recent_view_participant_item {
        /* 24px at 16px/1em */
        height: 1.5em;
        margin: 0;
        padding: 0 1.5px;
        position: relative;
        /* 24px at 16px/1em */
        min-width: 1.5em;
        cursor: pointer;
    }

#recent_view .recent_view_participant_item .fa-user {
            opacity: 0.7;
        }

#recent_view .recent_view_participant_avatar,#recent_view .recent_view_participant_overflow {
        border: 0;
        /* Keep the rounded corners from ballooning
           to a circle at smaller font sizes.
           6px at 16px/1em */
        border-radius: 0.375em;
        color: var(--color-recent-view-participant-overflow-text);
        display: block;
        height: 100%;
        text-align: center;
        background-color: var(
            --color-background-recent-view-participant-overflow
        );
    }

#recent_view .recent_view_participant_avatar {
        background-color: transparent;
    }

#recent_view .recent_view_participant_overflow {
        /* 24px at 16px/1em */
        line-height: 1.5;
    }

#recent_view tr {
        background-color: var(--color-background-recent-view-row);
    }

#recent_view tr:hover {
            background-color: var(--color-background-recent-view-row-hover);
        }

#recent_view tr:hover .change_visibility_policy .recent-view-row-topic-menu {
                opacity: 0.4;
            }

#recent_view .unread_topic {
        background-color: var(--color-background-recent-view-unread-row);
    }

#recent_view .unread_topic:hover {
            background-color: var(
                --color-background-recent-view-unread-row-hover
            );
        }

#recent_view .last_msg_time {
        float: left;
        margin-right: 5px;
    }

#recent_view thead th {
        background-color: var(--color-background-recent-view-table-thead-th);
        color: inherit;
        border-top: 1px solid hsl(0deg 0% 0% / 20%) !important;
        border-bottom: 1px solid hsl(0deg 0% 0% / 20%) !important;
        z-index: 1;
    }

#recent_view thead th .table-sortable-arrow {
            /* Sub alignment works perfectly in this context,
               where the table header is a text node. */
            vertical-align: sub;
            transform: rotate(180deg);
            opacity: 0;
            transition: opacity 100ms ease-out;
        }

#recent_view thead th.descend .table-sortable-arrow {
            transform: rotate(0deg);
        }

#recent_view thead th[data-sort]:not(.active):hover .table-sortable-arrow {
            opacity: 0.3;
        }

#recent_view thead th.active .table-sortable-arrow {
            opacity: 1;
        }

#recent_view thead th.active {
            opacity: 1;
            transition: opacity 100ms ease-out;
        }

#recent_view thead th[data-sort]:hover {
            cursor: pointer;
            background-color: var(
                --color-background-recent-view-table-thead-sort-header
            );
            transition: background-color 100ms ease-in-out;
        }

#recent_view .recent_topic_stream,#recent_view .recent-view-stream-header {
        width: 25%;
    }

#recent_view .recent-view-topic-header {
        width: 33%;
    }

#recent_view .recent-view-unread-header {
        width: 7%;
        /* 64px at 20px/1em */
        min-width: 3.2em;
    }

#recent_view .recent-view-unread-header .zulip-icon-unread {
            position: relative;
            top: 3px;
        }

#recent_view .recent_topic_users,#recent_view .recent-view-participants-header {
        width: 20%;
    }

#recent_view .recent_topic_timestamp,#recent_view .recent-view-last-msg-time-header {
        width: 15%;
    }

/* These fixed column widths prevent column widths from being adjusted
        as new messages arrive from the server. */

#recent_view .recent_topic_stream {
        padding: 8px 0 8px 8px;
    }

#recent_view .recent_topic_stream .recent_view_focusable {
            display: grid;
            grid-template-areas: "starting-anchor-element row-content";
            /* 14px at 14px/1em */
            grid-template-columns: 1em minmax(0, 1fr);
            /* Visually match the 8px of padding to
               the left of the filter icon. */
            gap: 7px;
            place-content: center center;
            /* Visually match the 8px of padding around the
               filter icon, and keep DM icons from colliding
               with the "Direct messages" text. */
            margin-right: 9px;
        }

#recent_view .recent_topic_stream a {
            overflow-wrap: anywhere;
            -webkit-hyphens: auto;
                    hyphens: auto;
        }

#recent_view .recent_topic_name {
        width: 40%;
    }

#recent_view .recent_topic_name .line_clamp {
            /* This -webkit-box display property is webkit-specific, but
                it appears that line clamping works fine for this component
                on Firefox anyway. */
            /* stylelint-disable-next-line value-no-vendor-prefix */
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

/* We don't want to apply line clamping to 1:1 DMs,
           as that causes an odd problem with Safari collapsing
           the grid on .user-status-microlayout so that usernames
           always have an ellipsis--no matter how short they are,
           nor how much space is available in the Topic column.

           `display: inherit` here will set the value to what is
           already established on .recent_view_focusable. */

#recent_view .recent_topic_name .line_clamp:has(.recent-view-dm) {
            display: inherit;
        }

#recent_view thead .last_msg_time_header {
        /* The responsive table of bootstrap
            somehow ignores the width of ::after
            element. This ensures it is always visible.
            20px = space occupied by ::after (icon) +
            some extra padding.
        */
        padding-right: 20px;
    }

@media (max-width: 767.98px) {
        /* Hide participants and last message time
            on smaller screens. This ensures user always
            has a nice UI experience. */
        #recent_view .recent_topic_users,#recent_view .recent_topic_timestamp,#recent_view thead .participants_header,#recent_view thead .last_msg_time_header {
            display: none;
        }

        #recent_view .recent_topic_actions {
            margin-right: 5px;
            font-size: 1.0714em; /* 15px at 14px / em */
        }
    }

#recent_view .private_conversation_row .recent_topic_stream {
            /* Reduce padding of stream section so that user status
                icon can have more padding without impacting height of the row */
            padding: 5px 0 5px 8px;
        }

#recent_view .private_conversation_row .pm_status_icon {
            display: flex;
            justify-content: center;
            align-items: center;
        }

#recent_view .private_conversation_row .pm_status_icon .zulip-icon.conversation-partners-icon,#recent_view .private_conversation_row .pm_status_icon .zulip-icon.zulip-icon-bot {
                opacity: 0.6;
            }

#recent_view .private_conversation_row .pm_status_icon .user-circle {
                min-width: var(
                    --length-user-status-circle-recent-conversations
                );
                font-size: 0.625em;
                float: left;
                position: unset;
            }

/* We don't display status emoji in group DMs,
               so prepare an ordinary inline layout... */

#recent_view .private_conversation_row .recent-view-dm-group .user-status-microlayout {
                display: inline;
                white-space: collapse;
            }

/* ...and hide the status emoji. */

#recent_view .private_conversation_row .recent-view-dm-group .status-emoji {
                display: none;
            }

#recent_view .stream-privacy .zulip-icon {
        /* Let flexbox handle vertical alignment by
           pushing back against inline-block display. */
        display: block;
        text-align: center;
    }

#recent_view_bottom_whitespace #recent_view_loading_messages_indicator,#recent_view_bottom_whitespace .bottom-messages-logo {
        display: block;
        position: absolute;
        top: 200px;
        left: 0;
        right: 0;
        margin: auto;
    }

#recent_view_bottom_whitespace #recent_view_loading_messages_indicator .loading_indicator_spinner,#recent_view_bottom_whitespace .bottom-messages-logo:not(#does-not-exist) .loading_indicator_spinner {
            position: relative;
            top: -7px;
        }

#recent-view-filter_widget {
    display: inline-flex;
    width: 10.7142em; /* 150px at 14px em */
    /* 1.5px 6px at 16px/1em */
    padding: 0 0.375em;
    /* Matching to the height of the filter search box. */
    height: var(--recent-topics-filters-height);
    /* Matching to the input styles otherwise defined on
       .input-element in inputs.css */
    color: var(--color-text-input);
    background: var(--color-background-input);
    border: none;
    outline: 1px solid var(--color-outline-input);
    outline-offset: -1px;
}

#recent-view-filter_widget:hover {
        outline-color: var(--color-outline-input-hover);
    }

#recent-view-filter_widget:focus {
        background-color: var(--color-background-input-focus);
        outline-color: var(--color-outline-input-focus);
        box-shadow: 0 0 5px var(--color-box-shadow-input-focus);
    }

.dropdown-widget-disabled-for-spectators #recent-view-filter_widget {
    cursor: not-allowed;
    opacity: 0.5;
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/typing_notifications.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
#typing_notifications {
    display: none;
    margin-left: 10px;
    font-style: italic;
    color: hsl(0deg 0% 53%);
}

#typing_notification_list {
    list-style: none;
    margin: 0;
}

#mark_as_read_turned_off_banner {
    /* override the margin of main-view-banner since it causes
       more gap than we want between mark as read banner and typing
       notification.  */
    margin: 5px 0;
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/dark_theme.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*
      /*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
/*
      /*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
@keyframes fpFadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -20px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/************************* MODAL DARK THEME *******************/
/* this one is because in the app we have blue and in dark-theme it should be white. */
/* these are converting grey things to "new grey".
       :disabled rules are exploded for CSS selector performance reasons. */
/* Light theme shows hover mostly through box-shadow,
          and dark theme shows it mostly through changing color
          of the search button. */
/* Search highlight used in both topics and rendered_markdown */
@media screen {
    .dark-theme:root .flatpickr-calendar {
  background: transparent;
  opacity: 0;
  display: none;
  text-align: center;
  visibility: hidden;
  padding: 0;
  animation: none;
  direction: ltr;
  border: 0;
  font-size: 14px;
  line-height: 24px;
  border-radius: 5px;
  position: absolute;
  width: 307.875px;
  box-sizing: border-box;
  touch-action: manipulation;
  background: #3f4458;
  box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c, 0 -1px 0 #20222c, 0 3px 13px rgba(0,0,0,0.08);
    }
    .dark-theme:root .flatpickr-calendar.open, .dark-theme:root .flatpickr-calendar.inline {
  opacity: 1;
  max-height: 640px;
  visibility: visible;
    }
    .dark-theme:root .flatpickr-calendar.open {
  display: inline-block;
  z-index: 99999;
    }
    .dark-theme:root .flatpickr-calendar.animate.open {
  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
    }
    .dark-theme:root .flatpickr-calendar.inline {
  display: block;
  position: relative;
  top: 2px;
    }
    .dark-theme:root .flatpickr-calendar.static {
  position: absolute;
  top: calc(100% + 2px);
    }
    .dark-theme:root .flatpickr-calendar.static.open {
  z-index: 999;
  display: block;
    }
    .dark-theme:root .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
  box-shadow: none !important;
    }
    .dark-theme:root .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
  box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
    }
    .dark-theme:root .flatpickr-calendar .hasWeeks .dayContainer, .dark-theme:root .flatpickr-calendar .hasTime .dayContainer {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
    }
    .dark-theme:root .flatpickr-calendar .hasWeeks .dayContainer {
  border-left: 0;
    }
    .dark-theme:root .flatpickr-calendar.hasTime .flatpickr-time {
  height: 40px;
  border-top: 1px solid #20222c;
    }
    .dark-theme:root .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
  height: auto;
    }
    .dark-theme:root .flatpickr-calendar:before, .dark-theme:root .flatpickr-calendar:after {
  position: absolute;
  display: block;
  pointer-events: none;
  border: solid transparent;
  content: '';
  height: 0;
  width: 0;
  left: 22px;
    }
    .dark-theme:root .flatpickr-calendar.rightMost:before, .dark-theme:root .flatpickr-calendar.arrowRight:before, .dark-theme:root .flatpickr-calendar.rightMost:after, .dark-theme:root .flatpickr-calendar.arrowRight:after {
  left: auto;
  right: 22px;
    }
    .dark-theme:root .flatpickr-calendar.arrowCenter:before, .dark-theme:root .flatpickr-calendar.arrowCenter:after {
  left: 50%;
  right: 50%;
    }
    .dark-theme:root .flatpickr-calendar:before {
  border-width: 5px;
  margin: 0 -5px;
    }
    .dark-theme:root .flatpickr-calendar:after {
  border-width: 4px;
  margin: 0 -4px;
    }
    .dark-theme:root .flatpickr-calendar.arrowTop:before, .dark-theme:root .flatpickr-calendar.arrowTop:after {
  bottom: 100%;
    }
    .dark-theme:root .flatpickr-calendar.arrowTop:before {
  border-bottom-color: #20222c;
    }
    .dark-theme:root .flatpickr-calendar.arrowTop:after {
  border-bottom-color: #3f4458;
    }
    .dark-theme:root .flatpickr-calendar.arrowBottom:before, .dark-theme:root .flatpickr-calendar.arrowBottom:after {
  top: 100%;
    }
    .dark-theme:root .flatpickr-calendar.arrowBottom:before {
  border-top-color: #20222c;
    }
    .dark-theme:root .flatpickr-calendar.arrowBottom:after {
  border-top-color: #3f4458;
    }
    .dark-theme:root .flatpickr-calendar:focus {
  outline: 0;
    }
    .dark-theme:root .flatpickr-wrapper {
  position: relative;
  display: inline-block;
    }
    .dark-theme:root .flatpickr-months {
  display: flex;
    }
    .dark-theme:root .flatpickr-months .flatpickr-month {
  background: #3f4458;
  color: #fff;
  fill: #fff;
  height: 34px;
  line-height: 1;
  text-align: center;
  position: relative;
  -webkit-user-select: none;
          user-select: none;
  overflow: hidden;
  flex: 1;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month, .dark-theme:root .flatpickr-months .flatpickr-next-month {
  -webkit-user-select: none;
          user-select: none;
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
  position: absolute;
  top: 0;
  height: 34px;
  padding: 10px;
  z-index: 3;
  color: #fff;
  fill: #fff;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month.flatpickr-disabled, .dark-theme:root .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
  display: none;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month i, .dark-theme:root .flatpickr-months .flatpickr-next-month i {
  position: relative;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, .dark-theme:root .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
/*
      /*rtl:begin:ignore*/
/*
      */
  left: 0;
/*
      /*rtl:end:ignore*/
/*
      */
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month.flatpickr-next-month, .dark-theme:root .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
/*
      /*rtl:begin:ignore*/
/*
      */
  right: 0;
/*
      /*rtl:end:ignore*/
/*
      */
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month:hover, .dark-theme:root .flatpickr-months .flatpickr-next-month:hover {
  color: #eee;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month:hover svg, .dark-theme:root .flatpickr-months .flatpickr-next-month:hover svg {
  fill: #f64747;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month svg, .dark-theme:root .flatpickr-months .flatpickr-next-month svg {
  width: 14px;
  height: 14px;
    }
    .dark-theme:root .flatpickr-months .flatpickr-prev-month svg path, .dark-theme:root .flatpickr-months .flatpickr-next-month svg path {
  transition: fill 0.1s;
  fill: inherit;
    }
    .dark-theme:root .numInputWrapper {
  position: relative;
  height: auto;
    }
    .dark-theme:root .numInputWrapper input, .dark-theme:root .numInputWrapper span {
  display: inline-block;
    }
    .dark-theme:root .numInputWrapper input {
  width: 100%;
    }
    .dark-theme:root .numInputWrapper input::-ms-clear {
  display: none;
    }
    .dark-theme:root .numInputWrapper input::-webkit-outer-spin-button, .dark-theme:root .numInputWrapper input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
    }
    .dark-theme:root .numInputWrapper span {
  position: absolute;
  right: 0;
  width: 14px;
  padding: 0 4px 0 2px;
  height: 50%;
  line-height: 50%;
  opacity: 0;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.15);
  box-sizing: border-box;
    }
    .dark-theme:root .numInputWrapper span:hover {
  background: rgba(192,187,167,0.1);
    }
    .dark-theme:root .numInputWrapper span:active {
  background: rgba(192,187,167,0.2);
    }
    .dark-theme:root .numInputWrapper span:after {
  display: block;
  content: "";
  position: absolute;
    }
    .dark-theme:root .numInputWrapper span.arrowUp {
  top: 0;
  border-bottom: 0;
    }
    .dark-theme:root .numInputWrapper span.arrowUp:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-bottom: 4px solid rgba(255,255,255,0.6);
  top: 26%;
    }
    .dark-theme:root .numInputWrapper span.arrowDown {
  top: 50%;
    }
    .dark-theme:root .numInputWrapper span.arrowDown:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid rgba(255,255,255,0.6);
  top: 40%;
    }
    .dark-theme:root .numInputWrapper span svg {
  width: inherit;
  height: auto;
    }
    .dark-theme:root .numInputWrapper span svg path {
  fill: rgba(255,255,255,0.5);
    }
    .dark-theme:root .numInputWrapper:hover {
  background: rgba(192,187,167,0.05);
    }
    .dark-theme:root .numInputWrapper:hover span {
  opacity: 1;
    }
    .dark-theme:root .flatpickr-current-month {
  font-size: 135%;
  line-height: inherit;
  font-weight: 300;
  color: inherit;
  position: absolute;
  width: 75%;
  left: 12.5%;
  padding: 7.48px 0 0 0;
  line-height: 1;
  height: 34px;
  display: inline-block;
  text-align: center;
  transform: translate3d(0px, 0px, 0px);
    }
    .dark-theme:root .flatpickr-current-month span.cur-month {
  font-family: inherit;
  font-weight: 700;
  color: inherit;
  display: inline-block;
  margin-left: 0.5ch;
  padding: 0;
    }
    .dark-theme:root .flatpickr-current-month span.cur-month:hover {
  background: rgba(192,187,167,0.05);
    }
    .dark-theme:root .flatpickr-current-month .numInputWrapper {
  width: 6ch;
  width: 7ch\0;
  display: inline-block;
    }
    .dark-theme:root .flatpickr-current-month .numInputWrapper span.arrowUp:after {
  border-bottom-color: #fff;
    }
    .dark-theme:root .flatpickr-current-month .numInputWrapper span.arrowDown:after {
  border-top-color: #fff;
    }
    .dark-theme:root .flatpickr-current-month input.cur-year {
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: text;
  padding: 0 0 0 0.5ch;
  margin: 0;
  display: inline-block;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  line-height: inherit;
  height: auto;
  border: 0;
  border-radius: 0;
  vertical-align: initial;
  -webkit-appearance: textfield;
  appearance: textfield;
    }
    .dark-theme:root .flatpickr-current-month input.cur-year:focus {
  outline: 0;
    }
    .dark-theme:root .flatpickr-current-month input.cur-year[disabled], .dark-theme:root .flatpickr-current-month input.cur-year[disabled]:hover {
  font-size: 100%;
  color: rgba(255,255,255,0.5);
  background: transparent;
  pointer-events: none;
    }
    .dark-theme:root .flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: menulist;
  background: #3f4458;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  height: auto;
  line-height: inherit;
  margin: -1px 0 0 0;
  outline: none;
  padding: 0 0 0 0.5ch;
  position: relative;
  vertical-align: initial;
  -webkit-box-sizing: border-box;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  width: auto;
    }
    .dark-theme:root .flatpickr-current-month .flatpickr-monthDropdown-months:focus, .dark-theme:root .flatpickr-current-month .flatpickr-monthDropdown-months:active {
  outline: none;
    }
    .dark-theme:root .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: rgba(192,187,167,0.05);
    }
    .dark-theme:root .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background-color: #3f4458;
  outline: none;
  padding: 0;
    }
    .dark-theme:root .flatpickr-weekdays {
  background: transparent;
  text-align: center;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  height: 28px;
    }
    .dark-theme:root .flatpickr-weekdays .flatpickr-weekdaycontainer {
  display: flex;
  flex: 1;
    }
    .dark-theme:root span.flatpickr-weekday {
  cursor: default;
  font-size: 90%;
  background: #3f4458;
  color: #fff;
  line-height: 1;
  margin: 0;
  text-align: center;
  display: block;
  flex: 1;
  font-weight: bolder;
    }
    .dark-theme:root .dayContainer, .dark-theme:root .flatpickr-weeks {
  padding: 1px 0 0 0;
    }
    .dark-theme:root .flatpickr-days {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  width: 307.875px;
    }
    .dark-theme:root .flatpickr-days:focus {
  outline: 0;
    }
    .dark-theme:root .dayContainer {
  padding: 0;
  outline: 0;
  text-align: left;
  width: 307.875px;
  min-width: 307.875px;
  max-width: 307.875px;
  box-sizing: border-box;
  display: inline-block;
  display: flex;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  justify-content: space-around;
  transform: translate3d(0px, 0px, 0px);
  opacity: 1;
    }
    .dark-theme:root .dayContainer + .dayContainer {
  box-shadow: -1px 0 0 #20222c;
    }
    .dark-theme:root .flatpickr-day {
  background: none;
  border: 1px solid transparent;
  border-radius: 150px;
  box-sizing: border-box;
  color: rgba(255,255,255,0.95);
  cursor: pointer;
  font-weight: 400;
  width: 14.2857143%;
  flex-basis: 14.2857143%;
  max-width: 39px;
  height: 39px;
  line-height: 39px;
  margin: 0;
  display: inline-block;
  position: relative;
  justify-content: center;
  text-align: center;
    }
    .dark-theme:root .flatpickr-day.inRange, .dark-theme:root .flatpickr-day.prevMonthDay.inRange, .dark-theme:root .flatpickr-day.nextMonthDay.inRange, .dark-theme:root .flatpickr-day.today.inRange, .dark-theme:root .flatpickr-day.prevMonthDay.today.inRange, .dark-theme:root .flatpickr-day.nextMonthDay.today.inRange, .dark-theme:root .flatpickr-day:hover, .dark-theme:root .flatpickr-day.prevMonthDay:hover, .dark-theme:root .flatpickr-day.nextMonthDay:hover, .dark-theme:root .flatpickr-day:focus, .dark-theme:root .flatpickr-day.prevMonthDay:focus, .dark-theme:root .flatpickr-day.nextMonthDay:focus {
  cursor: pointer;
  outline: 0;
  background: #646c8c;
  border-color: #646c8c;
    }
    .dark-theme:root .flatpickr-day.today {
  border-color: #eee;
    }
    .dark-theme:root .flatpickr-day.today:hover, .dark-theme:root .flatpickr-day.today:focus {
  border-color: #eee;
  background: #eee;
  color: #3f4458;
    }
    .dark-theme:root .flatpickr-day.selected, .dark-theme:root .flatpickr-day.startRange, .dark-theme:root .flatpickr-day.endRange, .dark-theme:root .flatpickr-day.selected.inRange, .dark-theme:root .flatpickr-day.startRange.inRange, .dark-theme:root .flatpickr-day.endRange.inRange, .dark-theme:root .flatpickr-day.selected:focus, .dark-theme:root .flatpickr-day.startRange:focus, .dark-theme:root .flatpickr-day.endRange:focus, .dark-theme:root .flatpickr-day.selected:hover, .dark-theme:root .flatpickr-day.startRange:hover, .dark-theme:root .flatpickr-day.endRange:hover, .dark-theme:root .flatpickr-day.selected.prevMonthDay, .dark-theme:root .flatpickr-day.startRange.prevMonthDay, .dark-theme:root .flatpickr-day.endRange.prevMonthDay, .dark-theme:root .flatpickr-day.selected.nextMonthDay, .dark-theme:root .flatpickr-day.startRange.nextMonthDay, .dark-theme:root .flatpickr-day.endRange.nextMonthDay {
  background: #80cbc4;
  box-shadow: none;
  color: #fff;
  border-color: #80cbc4;
    }
    .dark-theme:root .flatpickr-day.selected.startRange, .dark-theme:root .flatpickr-day.startRange.startRange, .dark-theme:root .flatpickr-day.endRange.startRange {
  border-radius: 50px 0 0 50px;
    }
    .dark-theme:root .flatpickr-day.selected.endRange, .dark-theme:root .flatpickr-day.startRange.endRange, .dark-theme:root .flatpickr-day.endRange.endRange {
  border-radius: 0 50px 50px 0;
    }
    .dark-theme:root .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .dark-theme:root .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .dark-theme:root .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 #80cbc4;
    }
    .dark-theme:root .flatpickr-day.selected.startRange.endRange, .dark-theme:root .flatpickr-day.startRange.startRange.endRange, .dark-theme:root .flatpickr-day.endRange.startRange.endRange {
  border-radius: 50px;
    }
    .dark-theme:root .flatpickr-day.inRange {
  border-radius: 0;
  box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
    }
    .dark-theme:root .flatpickr-day.flatpickr-disabled, .dark-theme:root .flatpickr-day.flatpickr-disabled:hover, .dark-theme:root .flatpickr-day.prevMonthDay, .dark-theme:root .flatpickr-day.nextMonthDay, .dark-theme:root .flatpickr-day.notAllowed, .dark-theme:root .flatpickr-day.notAllowed.prevMonthDay, .dark-theme:root .flatpickr-day.notAllowed.nextMonthDay {
  color: rgba(255,255,255,0.3);
  background: transparent;
  border-color: transparent;
  cursor: default;
    }
    .dark-theme:root .flatpickr-day.flatpickr-disabled, .dark-theme:root .flatpickr-day.flatpickr-disabled:hover {
  cursor: not-allowed;
  color: rgba(255,255,255,0.1);
    }
    .dark-theme:root .flatpickr-day.week.selected {
  border-radius: 0;
  box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
    }
    .dark-theme:root .flatpickr-day.hidden {
  visibility: hidden;
    }
    .dark-theme:root .rangeMode .flatpickr-day {
  margin-top: 1px;
    }
    .dark-theme:root .flatpickr-weekwrapper {
  float: left;
    }
    .dark-theme:root .flatpickr-weekwrapper .flatpickr-weeks {
  padding: 0 12px;
  box-shadow: 1px 0 0 #20222c;
    }
    .dark-theme:root .flatpickr-weekwrapper .flatpickr-weekday {
  float: none;
  width: 100%;
  line-height: 28px;
    }
    .dark-theme:root .flatpickr-weekwrapper span.flatpickr-day, .dark-theme:root .flatpickr-weekwrapper span.flatpickr-day:hover {
  display: block;
  width: 100%;
  max-width: none;
  color: rgba(255,255,255,0.3);
  background: transparent;
  cursor: default;
  border: none;
    }
    .dark-theme:root .flatpickr-innerContainer {
  display: block;
  display: flex;
  box-sizing: border-box;
  overflow: hidden;
    }
    .dark-theme:root .flatpickr-rContainer {
  display: inline-block;
  padding: 0;
  box-sizing: border-box;
    }
    .dark-theme:root .flatpickr-time {
  text-align: center;
  outline: 0;
  display: block;
  height: 0;
  line-height: 40px;
  max-height: 40px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
    }
    .dark-theme:root .flatpickr-time:after {
  content: "";
  display: table;
  clear: both;
    }
    .dark-theme:root .flatpickr-time .numInputWrapper {
  flex: 1;
  width: 40%;
  height: 40px;
  float: left;
    }
    .dark-theme:root .flatpickr-time .numInputWrapper span.arrowUp:after {
  border-bottom-color: rgba(255,255,255,0.95);
    }
    .dark-theme:root .flatpickr-time .numInputWrapper span.arrowDown:after {
  border-top-color: rgba(255,255,255,0.95);
    }
    .dark-theme:root .flatpickr-time.hasSeconds .numInputWrapper {
  width: 26%;
    }
    .dark-theme:root .flatpickr-time.time24hr .numInputWrapper {
  width: 49%;
    }
    .dark-theme:root .flatpickr-time input {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  text-align: center;
  margin: 0;
  padding: 0;
  height: inherit;
  line-height: inherit;
  color: rgba(255,255,255,0.95);
  font-size: 14px;
  position: relative;
  box-sizing: border-box;
  -webkit-appearance: textfield;
  appearance: textfield;
    }
    .dark-theme:root .flatpickr-time input.flatpickr-hour {
  font-weight: bold;
    }
    .dark-theme:root .flatpickr-time input.flatpickr-minute, .dark-theme:root .flatpickr-time input.flatpickr-second {
  font-weight: 400;
    }
    .dark-theme:root .flatpickr-time input:focus {
  outline: 0;
  border: 0;
    }
    .dark-theme:root .flatpickr-time .flatpickr-time-separator, .dark-theme:root .flatpickr-time .flatpickr-am-pm {
  height: inherit;
  float: left;
  line-height: inherit;
  color: rgba(255,255,255,0.95);
  font-weight: bold;
  width: 2%;
  -webkit-user-select: none;
          user-select: none;
  align-self: center;
    }
    .dark-theme:root .flatpickr-time .flatpickr-am-pm {
  outline: 0;
  width: 18%;
  cursor: pointer;
  text-align: center;
  font-weight: 400;
    }
    .dark-theme:root .flatpickr-time input:hover, .dark-theme:root .flatpickr-time .flatpickr-am-pm:hover, .dark-theme:root .flatpickr-time input:focus, .dark-theme:root .flatpickr-time .flatpickr-am-pm:focus {
  background: #6a7395;
    }
    .dark-theme:root .flatpickr-input[readonly] {
  cursor: pointer;
    }
    .dark-theme:root {
    --csstools-color-scheme--light:  ;
    color-scheme: dark;
    }
    .dark-theme:root kbd {
        text-shadow: none;
    }
    .dark-theme:root #message-formatting kbd, .dark-theme:root #keyboard-shortcuts kbd {
            border: 1px solid var(--color-hotkey-hint);
            border-radius: 3px;
            color: var(--color-hotkey-hint);
            opacity: 0.8;
    }
    .dark-theme:root .enter_sends_choices {
        color: hsl(236deg 33% 90%);
    }
    .dark-theme:root .enter_sends_choices .enter_sends_minor {
            color: hsl(0deg 0% 80%);
    }
    .dark-theme:root .dropdown-list-delete {
        /* hsl(7deg 100% 74%) corresponds to var(--red-250) */
        color: rgba(255, 138, 122, 0.7) !important;
    }
    .dark-theme:root .dropdown-list-delete:hover {
            color: hsl(7deg 100% 74%) !important;
    }
    .dark-theme:root .popover a {
        color: inherit;
    }
    .dark-theme:root button:disabled:not(.action-button):not(.icon-button):not(.info-density-button), .dark-theme:root option:disabled, .dark-theme:root select:disabled, .dark-theme:root textarea:disabled, .dark-theme:root input:disabled, .dark-theme:root input:not([type="radio"]):read-only, .dark-theme:root textarea:read-only, .dark-theme:root #organization-permissions .dropdown-widget-button:disabled, .dark-theme:root #organization-settings .dropdown-widget-button:disabled {
        color: inherit;
        opacity: 0.5;
    }
    .dark-theme:root button.info-density-button:disabled {
        color: inherit;
        opacity: 0.4;
    }
    .dark-theme:root textarea, .dark-theme:root select, .dark-theme:root .user-status-content-wrapper, .dark-theme:root .custom-time-input-value, .dark-theme:root #organization-permissions .dropdown-widget-button, .dark-theme:root #organization-settings .dropdown-widget-button {
        background-color: hsl(0deg 0% 0% / 20%);
        border-color: hsl(0deg 0% 0% / 60%);
    }
    .dark-theme:root .popover-filter-input-wrapper .popover-filter-input:focus {
        background-color: hsl(225deg 6% 7%);
        border: 1px solid hsl(0deg 0% 100% / 50%);
        box-shadow: 0 0 5px hsl(0deg 0% 100% / 40%);
    }
    .dark-theme:root select option {
        background-color: var(--color-background);
        color: hsl(236deg 33% 90%);
    }
    .dark-theme:root .pill-container.not-editable-by-user {
        opacity: 0.5;
    }
    .dark-theme:root #searchbox .navbar-search:not(.expanded) #searchbox-input-container:hover .search_icon {
            opacity: 0.75;
    }
    .dark-theme:root textarea:focus, .dark-theme:root textarea.new_message_textarea:focus, .dark-theme:root #compose_recipient_box:focus {
        border-color: hsl(0deg 0% 0% / 90%);
    }
    .dark-theme:root .popover hr, .dark-theme:root hr {
        opacity: 0.2;
    }
    .dark-theme:root .zoom-in #topics_header {
            background-color: var(--color-background);
    }
    .dark-theme:root #recent_view_table .zulip-icon-user {
            opacity: 0.7;
    }
    .dark-theme:root #recent_view .change_visibility_policy .visibility-status-icon:not(.recent-view-row-topic-menu):hover {
        filter: invert(1);
    }
    .dark-theme:root .drafts-container .header-body .delete-drafts-group > *:focus {
        background-color: hsl(228deg 11% 17%);
    }
    .dark-theme:root .table-striped tbody tr:nth-child(even) td {
        border-color: hsl(0deg 0% 0% / 20%);
        background-color: color-mix(
            in srgb,
            hsl(0deg 0% 0%) 20%,
            var(--color-background-modal)
        );
    }
    .dark-theme:root .overlay-message-row .message_header_private_message .message_label_clickable {
        padding: 4px 6px 3px;
        color: inherit;
    }
    .dark-theme:root time {
        background: hsl(0deg 0% 0% / 20%);
        box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 40%);
    }
    .dark-theme:root .upgrade-tip, .dark-theme:root .upgrade-or-sponsorship-tip, .dark-theme:root .tip, .dark-theme:root .invite-stream-notice {
        color: inherit;
    }
    .dark-theme:root #request-progress-status-banner {
        background-color: hsl(212deg 32% 14%);
    }
    .dark-theme:root .alert.home-error-bar {
        color: hsl(236deg 33% 90%);
        background-color: hsl(35deg 84% 62% / 25%);
        border: 1px solid hsl(11deg 46% 54%);
    }
    .dark-theme:root .alert.alert-success {
        color: inherit;
        background-color: hsl(161deg 60% 46% / 20%);
        border-color: hsl(165deg 68% 37%);
    }
    .dark-theme:root .alert.alert-info {
        color: hsl(205deg 58% 80%);
        background-color: hsl(204deg 100% 12%);
        border-color: hsl(205deg 58% 69% / 40%);
    }
    .dark-theme:root .alert.alert-error, .dark-theme:root .alert.alert-danger {
        background-color: hsl(318deg 12% 21%);
        color: inherit;
        border: 1px solid hsl(0deg 75% 65%);
    }
    .dark-theme:root .alert-box .alert, .dark-theme:root .alert-box .stacktrace, .dark-theme:root .alert.alert-error {
        background-color: hsl(318deg 12% 21%);
        color: inherit;
        border: 1px solid hsl(0deg 75% 65%);
    }
    .dark-theme:root .alert-box .alert.alert-error::before {
            color: hsl(0deg 75% 65%);
    }
    .dark-theme:root .stacktrace {
        color: hsl(314deg 22% 85%);
        background-color: hsl(318deg 12% 21%);
        border: 1px solid hsl(0deg 75% 65%);
    }
    .dark-theme:root .stacktrace .expand {
            color: hsl(318deg 14% 36%);
    }
    .dark-theme:root .stacktrace .subtle {
            color: hsl(314deg 19% 63%);
    }
    .dark-theme:root .stacktrace .stacktrace-more-info {
            background-color: hsl(312deg 7% 14%);
    }
    .dark-theme:root .stacktrace .code-context {
            color: hsl(314deg 27% 82%);
            background-color: hsl(312deg 7% 14%);
            box-shadow:
                inset 0 11px 10px -10px hsl(0deg 0% 6%),
                inset 0 -11px 10px -10px hsl(0deg 0% 6%);
    }
    .dark-theme:root .stacktrace .code-context .line-number {
                color: hsl(318deg 14% 44%);
    }
    .dark-theme:root .stacktrace .code-context .focus-line {
                background-color: hsl(307deg 9% 19%);
    }
    .dark-theme:root .top-messages-logo {
        opacity: 0.7;
    }
    .dark-theme:root .history-limited-box, .dark-theme:root .all-messages-search-caution {
        background-color: hsl(0deg 0% 0% / 20%);
    }
    .dark-theme:root .highlight {
        background-color: hsl(51deg 100% 23%);
    }
    .dark-theme:root .searching-for-more-topics img {
        filter: invert(100%);
    }
    .dark-theme:root .simplebar-track .simplebar-scrollbar::before {
        background-color: hsl(0deg 0% 100%);
        box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 33%);
    }
    .dark-theme:root .collapse-settings-button:hover {
        color: hsl(200deg 79% 66%);
    }
    .dark-theme:root #request-progress-status-banner .loading-indicator path, .dark-theme:root #loading_older_messages_indicator:not(.does-not-exist) path, .dark-theme:root #recent_view_loading_messages_indicator:not(.does-not-exist) path {
            fill: hsl(0deg 0% 100%);
    }
    .dark-theme:root a:not(:active):focus, .dark-theme:root button:not(.action-button):not(.icon-button):focus-visible, .dark-theme:root i.fa:focus, .dark-theme:root i.zulip-icon:focus, .dark-theme:root [role="button"]:focus {
        outline-color: hsl(0deg 0% 67%);
    }
    .dark-theme:root .color_animated_button .zulip-icon {
            color: hsl(0deg 0% 100%);
    }
    .dark-theme:root .panel_user_list > .pill-container:hover, .dark-theme:root .creator_details > .display_only_pill:hover {
            color: inherit;
    }
    .dark-theme:root .panel_user_list > .pill-container > .pill:focus, .dark-theme:root .creator_details > .display_only_pill > .pill:focus, .dark-theme:root .panel_user_list > .pill-container > .pill:hover, .dark-theme:root .creator_details > .display_only_pill > .pill:hover {
                color: inherit;
    }
    .dark-theme:root .help_link_widget:hover {
        color: inherit;
    }
}
@media screen and (prefers-color-scheme: dark) {
    .color-scheme-automatic:root .flatpickr-calendar {
  background: transparent;
  opacity: 0;
  display: none;
  text-align: center;
  visibility: hidden;
  padding: 0;
  animation: none;
  direction: ltr;
  border: 0;
  font-size: 14px;
  line-height: 24px;
  border-radius: 5px;
  position: absolute;
  width: 307.875px;
  box-sizing: border-box;
  touch-action: manipulation;
  background: #3f4458;
  box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c, 0 -1px 0 #20222c, 0 3px 13px rgba(0,0,0,0.08);
    }
    .color-scheme-automatic:root .flatpickr-calendar.open, .color-scheme-automatic:root .flatpickr-calendar.inline {
  opacity: 1;
  max-height: 640px;
  visibility: visible;
    }
    .color-scheme-automatic:root .flatpickr-calendar.open {
  display: inline-block;
  z-index: 99999;
    }
    .color-scheme-automatic:root .flatpickr-calendar.animate.open {
  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
    }
    .color-scheme-automatic:root .flatpickr-calendar.inline {
  display: block;
  position: relative;
  top: 2px;
    }
    .color-scheme-automatic:root .flatpickr-calendar.static {
  position: absolute;
  top: calc(100% + 2px);
    }
    .color-scheme-automatic:root .flatpickr-calendar.static.open {
  z-index: 999;
  display: block;
    }
    .color-scheme-automatic:root .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
  box-shadow: none !important;
    }
    .color-scheme-automatic:root .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
  box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
    }
    .color-scheme-automatic:root .flatpickr-calendar .hasWeeks .dayContainer, .color-scheme-automatic:root .flatpickr-calendar .hasTime .dayContainer {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
    }
    .color-scheme-automatic:root .flatpickr-calendar .hasWeeks .dayContainer {
  border-left: 0;
    }
    .color-scheme-automatic:root .flatpickr-calendar.hasTime .flatpickr-time {
  height: 40px;
  border-top: 1px solid #20222c;
    }
    .color-scheme-automatic:root .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
  height: auto;
    }
    .color-scheme-automatic:root .flatpickr-calendar:before, .color-scheme-automatic:root .flatpickr-calendar:after {
  position: absolute;
  display: block;
  pointer-events: none;
  border: solid transparent;
  content: '';
  height: 0;
  width: 0;
  left: 22px;
    }
    .color-scheme-automatic:root .flatpickr-calendar.rightMost:before, .color-scheme-automatic:root .flatpickr-calendar.arrowRight:before, .color-scheme-automatic:root .flatpickr-calendar.rightMost:after, .color-scheme-automatic:root .flatpickr-calendar.arrowRight:after {
  left: auto;
  right: 22px;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowCenter:before, .color-scheme-automatic:root .flatpickr-calendar.arrowCenter:after {
  left: 50%;
  right: 50%;
    }
    .color-scheme-automatic:root .flatpickr-calendar:before {
  border-width: 5px;
  margin: 0 -5px;
    }
    .color-scheme-automatic:root .flatpickr-calendar:after {
  border-width: 4px;
  margin: 0 -4px;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowTop:before, .color-scheme-automatic:root .flatpickr-calendar.arrowTop:after {
  bottom: 100%;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowTop:before {
  border-bottom-color: #20222c;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowTop:after {
  border-bottom-color: #3f4458;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowBottom:before, .color-scheme-automatic:root .flatpickr-calendar.arrowBottom:after {
  top: 100%;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowBottom:before {
  border-top-color: #20222c;
    }
    .color-scheme-automatic:root .flatpickr-calendar.arrowBottom:after {
  border-top-color: #3f4458;
    }
    .color-scheme-automatic:root .flatpickr-calendar:focus {
  outline: 0;
    }
    .color-scheme-automatic:root .flatpickr-wrapper {
  position: relative;
  display: inline-block;
    }
    .color-scheme-automatic:root .flatpickr-months {
  display: flex;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-month {
  background: #3f4458;
  color: #fff;
  fill: #fff;
  height: 34px;
  line-height: 1;
  text-align: center;
  position: relative;
  -webkit-user-select: none;
          user-select: none;
  overflow: hidden;
  flex: 1;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month {
  -webkit-user-select: none;
          user-select: none;
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
  position: absolute;
  top: 0;
  height: 34px;
  padding: 10px;
  z-index: 3;
  color: #fff;
  fill: #fff;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month.flatpickr-disabled, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
  display: none;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month i, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month i {
  position: relative;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
/*
      /*rtl:begin:ignore*/
/*
      */
  left: 0;
/*
      /*rtl:end:ignore*/
/*
      */
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month.flatpickr-next-month, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
/*
      /*rtl:begin:ignore*/
/*
      */
  right: 0;
/*
      /*rtl:end:ignore*/
/*
      */
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month:hover, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month:hover {
  color: #eee;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month:hover svg, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month:hover svg {
  fill: #f64747;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month svg, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month svg {
  width: 14px;
  height: 14px;
    }
    .color-scheme-automatic:root .flatpickr-months .flatpickr-prev-month svg path, .color-scheme-automatic:root .flatpickr-months .flatpickr-next-month svg path {
  transition: fill 0.1s;
  fill: inherit;
    }
    .color-scheme-automatic:root .numInputWrapper {
  position: relative;
  height: auto;
    }
    .color-scheme-automatic:root .numInputWrapper input, .color-scheme-automatic:root .numInputWrapper span {
  display: inline-block;
    }
    .color-scheme-automatic:root .numInputWrapper input {
  width: 100%;
    }
    .color-scheme-automatic:root .numInputWrapper input::-ms-clear {
  display: none;
    }
    .color-scheme-automatic:root .numInputWrapper input::-webkit-outer-spin-button, .color-scheme-automatic:root .numInputWrapper input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
    }
    .color-scheme-automatic:root .numInputWrapper span {
  position: absolute;
  right: 0;
  width: 14px;
  padding: 0 4px 0 2px;
  height: 50%;
  line-height: 50%;
  opacity: 0;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.15);
  box-sizing: border-box;
    }
    .color-scheme-automatic:root .numInputWrapper span:hover {
  background: rgba(192,187,167,0.1);
    }
    .color-scheme-automatic:root .numInputWrapper span:active {
  background: rgba(192,187,167,0.2);
    }
    .color-scheme-automatic:root .numInputWrapper span:after {
  display: block;
  content: "";
  position: absolute;
    }
    .color-scheme-automatic:root .numInputWrapper span.arrowUp {
  top: 0;
  border-bottom: 0;
    }
    .color-scheme-automatic:root .numInputWrapper span.arrowUp:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-bottom: 4px solid rgba(255,255,255,0.6);
  top: 26%;
    }
    .color-scheme-automatic:root .numInputWrapper span.arrowDown {
  top: 50%;
    }
    .color-scheme-automatic:root .numInputWrapper span.arrowDown:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid rgba(255,255,255,0.6);
  top: 40%;
    }
    .color-scheme-automatic:root .numInputWrapper span svg {
  width: inherit;
  height: auto;
    }
    .color-scheme-automatic:root .numInputWrapper span svg path {
  fill: rgba(255,255,255,0.5);
    }
    .color-scheme-automatic:root .numInputWrapper:hover {
  background: rgba(192,187,167,0.05);
    }
    .color-scheme-automatic:root .numInputWrapper:hover span {
  opacity: 1;
    }
    .color-scheme-automatic:root .flatpickr-current-month {
  font-size: 135%;
  line-height: inherit;
  font-weight: 300;
  color: inherit;
  position: absolute;
  width: 75%;
  left: 12.5%;
  padding: 7.48px 0 0 0;
  line-height: 1;
  height: 34px;
  display: inline-block;
  text-align: center;
  transform: translate3d(0px, 0px, 0px);
    }
    .color-scheme-automatic:root .flatpickr-current-month span.cur-month {
  font-family: inherit;
  font-weight: 700;
  color: inherit;
  display: inline-block;
  margin-left: 0.5ch;
  padding: 0;
    }
    .color-scheme-automatic:root .flatpickr-current-month span.cur-month:hover {
  background: rgba(192,187,167,0.05);
    }
    .color-scheme-automatic:root .flatpickr-current-month .numInputWrapper {
  width: 6ch;
  width: 7ch\0;
  display: inline-block;
    }
    .color-scheme-automatic:root .flatpickr-current-month .numInputWrapper span.arrowUp:after {
  border-bottom-color: #fff;
    }
    .color-scheme-automatic:root .flatpickr-current-month .numInputWrapper span.arrowDown:after {
  border-top-color: #fff;
    }
    .color-scheme-automatic:root .flatpickr-current-month input.cur-year {
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: text;
  padding: 0 0 0 0.5ch;
  margin: 0;
  display: inline-block;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  line-height: inherit;
  height: auto;
  border: 0;
  border-radius: 0;
  vertical-align: initial;
  -webkit-appearance: textfield;
  appearance: textfield;
    }
    .color-scheme-automatic:root .flatpickr-current-month input.cur-year:focus {
  outline: 0;
    }
    .color-scheme-automatic:root .flatpickr-current-month input.cur-year[disabled], .color-scheme-automatic:root .flatpickr-current-month input.cur-year[disabled]:hover {
  font-size: 100%;
  color: rgba(255,255,255,0.5);
  background: transparent;
  pointer-events: none;
    }
    .color-scheme-automatic:root .flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: menulist;
  background: #3f4458;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  height: auto;
  line-height: inherit;
  margin: -1px 0 0 0;
  outline: none;
  padding: 0 0 0 0.5ch;
  position: relative;
  vertical-align: initial;
  -webkit-box-sizing: border-box;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  width: auto;
    }
    .color-scheme-automatic:root .flatpickr-current-month .flatpickr-monthDropdown-months:focus, .color-scheme-automatic:root .flatpickr-current-month .flatpickr-monthDropdown-months:active {
  outline: none;
    }
    .color-scheme-automatic:root .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: rgba(192,187,167,0.05);
    }
    .color-scheme-automatic:root .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background-color: #3f4458;
  outline: none;
  padding: 0;
    }
    .color-scheme-automatic:root .flatpickr-weekdays {
  background: transparent;
  text-align: center;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  height: 28px;
    }
    .color-scheme-automatic:root .flatpickr-weekdays .flatpickr-weekdaycontainer {
  display: flex;
  flex: 1;
    }
    .color-scheme-automatic:root span.flatpickr-weekday {
  cursor: default;
  font-size: 90%;
  background: #3f4458;
  color: #fff;
  line-height: 1;
  margin: 0;
  text-align: center;
  display: block;
  flex: 1;
  font-weight: bolder;
    }
    .color-scheme-automatic:root .dayContainer, .color-scheme-automatic:root .flatpickr-weeks {
  padding: 1px 0 0 0;
    }
    .color-scheme-automatic:root .flatpickr-days {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  width: 307.875px;
    }
    .color-scheme-automatic:root .flatpickr-days:focus {
  outline: 0;
    }
    .color-scheme-automatic:root .dayContainer {
  padding: 0;
  outline: 0;
  text-align: left;
  width: 307.875px;
  min-width: 307.875px;
  max-width: 307.875px;
  box-sizing: border-box;
  display: inline-block;
  display: flex;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  justify-content: space-around;
  transform: translate3d(0px, 0px, 0px);
  opacity: 1;
    }
    .color-scheme-automatic:root .dayContainer + .dayContainer {
  box-shadow: -1px 0 0 #20222c;
    }
    .color-scheme-automatic:root .flatpickr-day {
  background: none;
  border: 1px solid transparent;
  border-radius: 150px;
  box-sizing: border-box;
  color: rgba(255,255,255,0.95);
  cursor: pointer;
  font-weight: 400;
  width: 14.2857143%;
  flex-basis: 14.2857143%;
  max-width: 39px;
  height: 39px;
  line-height: 39px;
  margin: 0;
  display: inline-block;
  position: relative;
  justify-content: center;
  text-align: center;
    }
    .color-scheme-automatic:root .flatpickr-day.inRange, .color-scheme-automatic:root .flatpickr-day.prevMonthDay.inRange, .color-scheme-automatic:root .flatpickr-day.nextMonthDay.inRange, .color-scheme-automatic:root .flatpickr-day.today.inRange, .color-scheme-automatic:root .flatpickr-day.prevMonthDay.today.inRange, .color-scheme-automatic:root .flatpickr-day.nextMonthDay.today.inRange, .color-scheme-automatic:root .flatpickr-day:hover, .color-scheme-automatic:root .flatpickr-day.prevMonthDay:hover, .color-scheme-automatic:root .flatpickr-day.nextMonthDay:hover, .color-scheme-automatic:root .flatpickr-day:focus, .color-scheme-automatic:root .flatpickr-day.prevMonthDay:focus, .color-scheme-automatic:root .flatpickr-day.nextMonthDay:focus {
  cursor: pointer;
  outline: 0;
  background: #646c8c;
  border-color: #646c8c;
    }
    .color-scheme-automatic:root .flatpickr-day.today {
  border-color: #eee;
    }
    .color-scheme-automatic:root .flatpickr-day.today:hover, .color-scheme-automatic:root .flatpickr-day.today:focus {
  border-color: #eee;
  background: #eee;
  color: #3f4458;
    }
    .color-scheme-automatic:root .flatpickr-day.selected, .color-scheme-automatic:root .flatpickr-day.startRange, .color-scheme-automatic:root .flatpickr-day.endRange, .color-scheme-automatic:root .flatpickr-day.selected.inRange, .color-scheme-automatic:root .flatpickr-day.startRange.inRange, .color-scheme-automatic:root .flatpickr-day.endRange.inRange, .color-scheme-automatic:root .flatpickr-day.selected:focus, .color-scheme-automatic:root .flatpickr-day.startRange:focus, .color-scheme-automatic:root .flatpickr-day.endRange:focus, .color-scheme-automatic:root .flatpickr-day.selected:hover, .color-scheme-automatic:root .flatpickr-day.startRange:hover, .color-scheme-automatic:root .flatpickr-day.endRange:hover, .color-scheme-automatic:root .flatpickr-day.selected.prevMonthDay, .color-scheme-automatic:root .flatpickr-day.startRange.prevMonthDay, .color-scheme-automatic:root .flatpickr-day.endRange.prevMonthDay, .color-scheme-automatic:root .flatpickr-day.selected.nextMonthDay, .color-scheme-automatic:root .flatpickr-day.startRange.nextMonthDay, .color-scheme-automatic:root .flatpickr-day.endRange.nextMonthDay {
  background: #80cbc4;
  box-shadow: none;
  color: #fff;
  border-color: #80cbc4;
    }
    .color-scheme-automatic:root .flatpickr-day.selected.startRange, .color-scheme-automatic:root .flatpickr-day.startRange.startRange, .color-scheme-automatic:root .flatpickr-day.endRange.startRange {
  border-radius: 50px 0 0 50px;
    }
    .color-scheme-automatic:root .flatpickr-day.selected.endRange, .color-scheme-automatic:root .flatpickr-day.startRange.endRange, .color-scheme-automatic:root .flatpickr-day.endRange.endRange {
  border-radius: 0 50px 50px 0;
    }
    .color-scheme-automatic:root .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .color-scheme-automatic:root .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .color-scheme-automatic:root .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 #80cbc4;
    }
    .color-scheme-automatic:root .flatpickr-day.selected.startRange.endRange, .color-scheme-automatic:root .flatpickr-day.startRange.startRange.endRange, .color-scheme-automatic:root .flatpickr-day.endRange.startRange.endRange {
  border-radius: 50px;
    }
    .color-scheme-automatic:root .flatpickr-day.inRange {
  border-radius: 0;
  box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
    }
    .color-scheme-automatic:root .flatpickr-day.flatpickr-disabled, .color-scheme-automatic:root .flatpickr-day.flatpickr-disabled:hover, .color-scheme-automatic:root .flatpickr-day.prevMonthDay, .color-scheme-automatic:root .flatpickr-day.nextMonthDay, .color-scheme-automatic:root .flatpickr-day.notAllowed, .color-scheme-automatic:root .flatpickr-day.notAllowed.prevMonthDay, .color-scheme-automatic:root .flatpickr-day.notAllowed.nextMonthDay {
  color: rgba(255,255,255,0.3);
  background: transparent;
  border-color: transparent;
  cursor: default;
    }
    .color-scheme-automatic:root .flatpickr-day.flatpickr-disabled, .color-scheme-automatic:root .flatpickr-day.flatpickr-disabled:hover {
  cursor: not-allowed;
  color: rgba(255,255,255,0.1);
    }
    .color-scheme-automatic:root .flatpickr-day.week.selected {
  border-radius: 0;
  box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
    }
    .color-scheme-automatic:root .flatpickr-day.hidden {
  visibility: hidden;
    }
    .color-scheme-automatic:root .rangeMode .flatpickr-day {
  margin-top: 1px;
    }
    .color-scheme-automatic:root .flatpickr-weekwrapper {
  float: left;
    }
    .color-scheme-automatic:root .flatpickr-weekwrapper .flatpickr-weeks {
  padding: 0 12px;
  box-shadow: 1px 0 0 #20222c;
    }
    .color-scheme-automatic:root .flatpickr-weekwrapper .flatpickr-weekday {
  float: none;
  width: 100%;
  line-height: 28px;
    }
    .color-scheme-automatic:root .flatpickr-weekwrapper span.flatpickr-day, .color-scheme-automatic:root .flatpickr-weekwrapper span.flatpickr-day:hover {
  display: block;
  width: 100%;
  max-width: none;
  color: rgba(255,255,255,0.3);
  background: transparent;
  cursor: default;
  border: none;
    }
    .color-scheme-automatic:root .flatpickr-innerContainer {
  display: block;
  display: flex;
  box-sizing: border-box;
  overflow: hidden;
    }
    .color-scheme-automatic:root .flatpickr-rContainer {
  display: inline-block;
  padding: 0;
  box-sizing: border-box;
    }
    .color-scheme-automatic:root .flatpickr-time {
  text-align: center;
  outline: 0;
  display: block;
  height: 0;
  line-height: 40px;
  max-height: 40px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
    }
    .color-scheme-automatic:root .flatpickr-time:after {
  content: "";
  display: table;
  clear: both;
    }
    .color-scheme-automatic:root .flatpickr-time .numInputWrapper {
  flex: 1;
  width: 40%;
  height: 40px;
  float: left;
    }
    .color-scheme-automatic:root .flatpickr-time .numInputWrapper span.arrowUp:after {
  border-bottom-color: rgba(255,255,255,0.95);
    }
    .color-scheme-automatic:root .flatpickr-time .numInputWrapper span.arrowDown:after {
  border-top-color: rgba(255,255,255,0.95);
    }
    .color-scheme-automatic:root .flatpickr-time.hasSeconds .numInputWrapper {
  width: 26%;
    }
    .color-scheme-automatic:root .flatpickr-time.time24hr .numInputWrapper {
  width: 49%;
    }
    .color-scheme-automatic:root .flatpickr-time input {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  text-align: center;
  margin: 0;
  padding: 0;
  height: inherit;
  line-height: inherit;
  color: rgba(255,255,255,0.95);
  font-size: 14px;
  position: relative;
  box-sizing: border-box;
  -webkit-appearance: textfield;
  appearance: textfield;
    }
    .color-scheme-automatic:root .flatpickr-time input.flatpickr-hour {
  font-weight: bold;
    }
    .color-scheme-automatic:root .flatpickr-time input.flatpickr-minute, .color-scheme-automatic:root .flatpickr-time input.flatpickr-second {
  font-weight: 400;
    }
    .color-scheme-automatic:root .flatpickr-time input:focus {
  outline: 0;
  border: 0;
    }
    .color-scheme-automatic:root .flatpickr-time .flatpickr-time-separator, .color-scheme-automatic:root .flatpickr-time .flatpickr-am-pm {
  height: inherit;
  float: left;
  line-height: inherit;
  color: rgba(255,255,255,0.95);
  font-weight: bold;
  width: 2%;
  -webkit-user-select: none;
          user-select: none;
  align-self: center;
    }
    .color-scheme-automatic:root .flatpickr-time .flatpickr-am-pm {
  outline: 0;
  width: 18%;
  cursor: pointer;
  text-align: center;
  font-weight: 400;
    }
    .color-scheme-automatic:root .flatpickr-time input:hover, .color-scheme-automatic:root .flatpickr-time .flatpickr-am-pm:hover, .color-scheme-automatic:root .flatpickr-time input:focus, .color-scheme-automatic:root .flatpickr-time .flatpickr-am-pm:focus {
  background: #6a7395;
    }
    .color-scheme-automatic:root .flatpickr-input[readonly] {
  cursor: pointer;
    }
    .color-scheme-automatic:root {
    --csstools-color-scheme--light:  ;
    color-scheme: dark;
    }
    .color-scheme-automatic:root kbd {
        text-shadow: none;
    }
    .color-scheme-automatic:root #message-formatting kbd, .color-scheme-automatic:root #keyboard-shortcuts kbd {
            border: 1px solid var(--color-hotkey-hint);
            border-radius: 3px;
            color: var(--color-hotkey-hint);
            opacity: 0.8;
    }
    .color-scheme-automatic:root .enter_sends_choices {
        color: hsl(236deg 33% 90%);
    }
    .color-scheme-automatic:root .enter_sends_choices .enter_sends_minor {
            color: hsl(0deg 0% 80%);
    }
    .color-scheme-automatic:root .dropdown-list-delete {
        /* hsl(7deg 100% 74%) corresponds to var(--red-250) */
        color: rgba(255, 138, 122, 0.7) !important;
    }
    .color-scheme-automatic:root .dropdown-list-delete:hover {
            color: hsl(7deg 100% 74%) !important;
    }
    .color-scheme-automatic:root .popover a {
        color: inherit;
    }
    .color-scheme-automatic:root button:disabled:not(.action-button):not(.icon-button):not(.info-density-button), .color-scheme-automatic:root option:disabled, .color-scheme-automatic:root select:disabled, .color-scheme-automatic:root textarea:disabled, .color-scheme-automatic:root input:disabled, .color-scheme-automatic:root input:not([type="radio"]):read-only, .color-scheme-automatic:root textarea:read-only, .color-scheme-automatic:root #organization-permissions .dropdown-widget-button:disabled, .color-scheme-automatic:root #organization-settings .dropdown-widget-button:disabled {
        color: inherit;
        opacity: 0.5;
    }
    .color-scheme-automatic:root button.info-density-button:disabled {
        color: inherit;
        opacity: 0.4;
    }
    .color-scheme-automatic:root textarea, .color-scheme-automatic:root select, .color-scheme-automatic:root .user-status-content-wrapper, .color-scheme-automatic:root .custom-time-input-value, .color-scheme-automatic:root #organization-permissions .dropdown-widget-button, .color-scheme-automatic:root #organization-settings .dropdown-widget-button {
        background-color: hsl(0deg 0% 0% / 20%);
        border-color: hsl(0deg 0% 0% / 60%);
    }
    .color-scheme-automatic:root .popover-filter-input-wrapper .popover-filter-input:focus {
        background-color: hsl(225deg 6% 7%);
        border: 1px solid hsl(0deg 0% 100% / 50%);
        box-shadow: 0 0 5px hsl(0deg 0% 100% / 40%);
    }
    .color-scheme-automatic:root select option {
        background-color: var(--color-background);
        color: hsl(236deg 33% 90%);
    }
    .color-scheme-automatic:root .pill-container.not-editable-by-user {
        opacity: 0.5;
    }
    .color-scheme-automatic:root #searchbox .navbar-search:not(.expanded) #searchbox-input-container:hover .search_icon {
            opacity: 0.75;
    }
    .color-scheme-automatic:root textarea:focus, .color-scheme-automatic:root textarea.new_message_textarea:focus, .color-scheme-automatic:root #compose_recipient_box:focus {
        border-color: hsl(0deg 0% 0% / 90%);
    }
    .color-scheme-automatic:root .popover hr, .color-scheme-automatic:root hr {
        opacity: 0.2;
    }
    .color-scheme-automatic:root .zoom-in #topics_header {
            background-color: var(--color-background);
    }
    .color-scheme-automatic:root #recent_view_table .zulip-icon-user {
            opacity: 0.7;
    }
    .color-scheme-automatic:root #recent_view .change_visibility_policy .visibility-status-icon:not(.recent-view-row-topic-menu):hover {
        filter: invert(1);
    }
    .color-scheme-automatic:root .drafts-container .header-body .delete-drafts-group > *:focus {
        background-color: hsl(228deg 11% 17%);
    }
    .color-scheme-automatic:root .table-striped tbody tr:nth-child(even) td {
        border-color: hsl(0deg 0% 0% / 20%);
        background-color: color-mix(
            in srgb,
            hsl(0deg 0% 0%) 20%,
            var(--color-background-modal)
        );
    }
    .color-scheme-automatic:root .overlay-message-row .message_header_private_message .message_label_clickable {
        padding: 4px 6px 3px;
        color: inherit;
    }
    .color-scheme-automatic:root time {
        background: hsl(0deg 0% 0% / 20%);
        box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 40%);
    }
    .color-scheme-automatic:root .upgrade-tip, .color-scheme-automatic:root .upgrade-or-sponsorship-tip, .color-scheme-automatic:root .tip, .color-scheme-automatic:root .invite-stream-notice {
        color: inherit;
    }
    .color-scheme-automatic:root #request-progress-status-banner {
        background-color: hsl(212deg 32% 14%);
    }
    .color-scheme-automatic:root .alert.home-error-bar {
        color: hsl(236deg 33% 90%);
        background-color: hsl(35deg 84% 62% / 25%);
        border: 1px solid hsl(11deg 46% 54%);
    }
    .color-scheme-automatic:root .alert.alert-success {
        color: inherit;
        background-color: hsl(161deg 60% 46% / 20%);
        border-color: hsl(165deg 68% 37%);
    }
    .color-scheme-automatic:root .alert.alert-info {
        color: hsl(205deg 58% 80%);
        background-color: hsl(204deg 100% 12%);
        border-color: hsl(205deg 58% 69% / 40%);
    }
    .color-scheme-automatic:root .alert.alert-error, .color-scheme-automatic:root .alert.alert-danger {
        background-color: hsl(318deg 12% 21%);
        color: inherit;
        border: 1px solid hsl(0deg 75% 65%);
    }
    .color-scheme-automatic:root .alert-box .alert, .color-scheme-automatic:root .alert-box .stacktrace, .color-scheme-automatic:root .alert.alert-error {
        background-color: hsl(318deg 12% 21%);
        color: inherit;
        border: 1px solid hsl(0deg 75% 65%);
    }
    .color-scheme-automatic:root .alert-box .alert.alert-error::before {
            color: hsl(0deg 75% 65%);
    }
    .color-scheme-automatic:root .stacktrace {
        color: hsl(314deg 22% 85%);
        background-color: hsl(318deg 12% 21%);
        border: 1px solid hsl(0deg 75% 65%);
    }
    .color-scheme-automatic:root .stacktrace .expand {
            color: hsl(318deg 14% 36%);
    }
    .color-scheme-automatic:root .stacktrace .subtle {
            color: hsl(314deg 19% 63%);
    }
    .color-scheme-automatic:root .stacktrace .stacktrace-more-info {
            background-color: hsl(312deg 7% 14%);
    }
    .color-scheme-automatic:root .stacktrace .code-context {
            color: hsl(314deg 27% 82%);
            background-color: hsl(312deg 7% 14%);
            box-shadow:
                inset 0 11px 10px -10px hsl(0deg 0% 6%),
                inset 0 -11px 10px -10px hsl(0deg 0% 6%);
    }
    .color-scheme-automatic:root .stacktrace .code-context .line-number {
                color: hsl(318deg 14% 44%);
    }
    .color-scheme-automatic:root .stacktrace .code-context .focus-line {
                background-color: hsl(307deg 9% 19%);
    }
    .color-scheme-automatic:root .top-messages-logo {
        opacity: 0.7;
    }
    .color-scheme-automatic:root .history-limited-box, .color-scheme-automatic:root .all-messages-search-caution {
        background-color: hsl(0deg 0% 0% / 20%);
    }
    .color-scheme-automatic:root .highlight {
        background-color: hsl(51deg 100% 23%);
    }
    .color-scheme-automatic:root .searching-for-more-topics img {
        filter: invert(100%);
    }
    .color-scheme-automatic:root .simplebar-track .simplebar-scrollbar::before {
        background-color: hsl(0deg 0% 100%);
        box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 33%);
    }
    .color-scheme-automatic:root .collapse-settings-button:hover {
        color: hsl(200deg 79% 66%);
    }
    .color-scheme-automatic:root #request-progress-status-banner .loading-indicator path, .color-scheme-automatic:root #loading_older_messages_indicator:not(.does-not-exist) path, .color-scheme-automatic:root #recent_view_loading_messages_indicator:not(.does-not-exist) path {
            fill: hsl(0deg 0% 100%);
    }
    .color-scheme-automatic:root a:not(:active):focus, .color-scheme-automatic:root button:not(.action-button):not(.icon-button):focus-visible, .color-scheme-automatic:root i.fa:focus, .color-scheme-automatic:root i.zulip-icon:focus, .color-scheme-automatic:root [role="button"]:focus {
        outline-color: hsl(0deg 0% 67%);
    }
    .color-scheme-automatic:root .color_animated_button .zulip-icon {
            color: hsl(0deg 0% 100%);
    }
    .color-scheme-automatic:root .panel_user_list > .pill-container:hover, .color-scheme-automatic:root .creator_details > .display_only_pill:hover {
            color: inherit;
    }
    .color-scheme-automatic:root .panel_user_list > .pill-container > .pill:focus, .color-scheme-automatic:root .creator_details > .display_only_pill > .pill:focus, .color-scheme-automatic:root .panel_user_list > .pill-container > .pill:hover, .color-scheme-automatic:root .creator_details > .display_only_pill > .pill:hover {
                color: inherit;
    }
    .color-scheme-automatic:root .help_link_widget:hover {
        color: inherit;
    }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/user_status.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
#set-user-status-modal {
    /* A narrower width is more attractive for this modal. */
    width: 384px;
}
#set-user-status-modal .user-status-content-wrapper {
        display: grid;
        grid-template:
            "status-icon search-input clear-search" auto / auto minmax(0, 1fr)
            auto;
        align-items: center;
        outline: 1px solid hsl(0deg 0% 0% / 60%);
        outline-offset: -1px;
        border-radius: 4px;
        background-color: var(--color-background-input);
    }
#set-user-status-modal .user-status-content-wrapper input.user-status {
            grid-area: search-input;
            line-height: 1.25em; /* 20px at 16px/em */
            padding: 0.5em 0.125em; /* 8px 2px at 16px/1em */
            width: 100%;
            /* Override default input height */
            height: unset;
            border: none;
            outline: none;
            box-shadow: none;
            /* Transparent here is to allow the input
               background set on the wrapper to show
               through. */
            background-color: transparent;
            margin: 0;
        }
#set-user-status-modal .user-status-content-wrapper input.user-status:focus {
                box-shadow: none;
            }
#set-user-status-modal .user-status-content-wrapper #clear_status_message_button {
            grid-area: clear-search;
            padding: 0.5em; /* 8px at 16px/1em */
            margin: 0.125em; /* 2px at 16px/1em */
        }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper {
            display: flex;
            padding: 0.375em; /* 6px at 16px/1em */
            margin: 0.125em; /* 2px at 16px/1em */
            border-radius: 4px;
            cursor: pointer;
        }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper .selected-emoji,#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper .smiley-icon {
                width: 1.25em; /* 20px at 16px/em */
                height: 1.25em; /* 20px at 16px/em */
                cursor: pointer;
            }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper .smiley-icon {
                display: flex;
                align-items: center;
                justify-content: center;
                color: var(--color-modal-selectable-icon);
            }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper .smiley-icon:hover {
                    -webkit-text-decoration: none;
                    text-decoration: none;
                }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper:hover,#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper.active-emoji-picker-reference {
                background-color: var(
                    --background-color-modal-selectable-icon-hover
                );
            }
#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper:hover .smiley-icon,#set-user-status-modal .user-status-content-wrapper .status-emoji-wrapper.active-emoji-picker-reference .smiley-icon {
                    color: var(--color-modal-selectable-icon-hover);
                }
#set-user-status-modal .user-status-options {
        padding-top: 15px;
    }
#set-user-status-modal .user-status-options .user-status-value {
            /* We set the gap between the status emoji and text
               in the default user status options to match the gap
               between the corresponding emoji and text of the
               custom user status input.
               6px (emoji button padding)
               + 2px (emoji button margin)
               + 2px (input padding) */
            gap: 0.625em; /* 10px at 16px/em */
        }
#set-user-status-modal .user-status-options .user-status-value .status-emoji {
                /* Size and align status emoji to match
                   the top line of the modal. */
                height: 1.25em; /* 20px at 16px/em */
                width: 1.25em; /* 20px at 16px/em */
                margin: 0;
            }

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/widgets.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.widget-content {
    margin-bottom: var(--markdown-interelement-space-px);
}

.widget-choices ul {
        padding: 3px;
    }

.widget-choices li {
        padding: 2px;
        list-style: none;
    }

.widget-choices button {
        font-weight: 700;
        color: hsl(240deg 100% 50%);
    }

.widget-choices .widget-choices-heading {
        font-weight: 600;
    }

.todo-widget .todo-task-list-title-bar {
        flex: 1 1 auto;
        display: flex;
        /* Ensure controls remain visible on narrower screens. */
        flex-flow: row wrap;
        gap: 5px;
        margin-bottom: var(--markdown-interelement-space-px);
    }

.todo-widget .add-task-bar {
        display: flex;
        /* Ensure controls remain visible on narrower screens. */
        flex-flow: row wrap;
        gap: 5px;
    }

/* For the box-shadow to be visible on the left */

.todo-widget .add-task,.todo-widget .add-desc {
        font-weight: 400;
    }

.todo-widget label.checkbox {
        display: flex; /* Arrange that a multi-line description line wraps properly. */
        /* Keep checkboxes vertically aligned, including with multi-line tasks. */
        align-items: baseline;
        /* Reset default label.checkbox styles. */
        gap: 5px;
        position: static;
        min-height: 0;
    }

.todo-widget label.checkbox input[type="checkbox"]  ~ .custom-checkbox {
                display: inline-block;
                vertical-align: middle;
                position: static;

                padding: 2px;
                margin: 0;

                font-size: 1.3em; /* 18.2px / 14px em */
                height: 0.6593em; /* 12px at 18.2px / em */
                width: 0.6593em; /* 12px at 18.2px / em */

                font-weight: 300;
                line-height: 0.8;
                text-align: center;
                border: 2px solid var(--color-border-todo-checkbox);

                border-radius: 4px;
                filter: brightness(1);

                cursor: pointer;
            }

.todo-widget label.checkbox input[type="checkbox"]:checked ~ .custom-checkbox {
                background-image: url(files/images/checkbox-white.svg);
                background-size: 75%;
                background-position: 50% 50%;
                background-repeat: no-repeat;
                background-color: var(--color-background-todo-checkbox-checked);
                border-color: var(--color-border-todo-checkbox-checked);
            }

.todo-widget label.checkbox input[type="checkbox"]:disabled ~ .custom-checkbox {
                opacity: 0.5;
                cursor: not-allowed;
            }

.todo-widget label.checkbox input[type="checkbox"]:hover ~ .custom-checkbox {
                border-color: var(--color-border-todo-checkbox-hover);
            }

.todo-widget label.checkbox input[type="checkbox"]:not(:checked):hover ~ .custom-checkbox {
                /* We only change the background color on hover,
                   when the checkbox is not checked. */
                background-color: var(--color-background-todo-checkbox-hover);
            }

.todo-widget label.checkbox input[type="checkbox"]:focus ~ .custom-checkbox {
                outline-color: hsl(0deg 0% 100% / 0%);
            }

.todo-widget .poll-question-header,.poll-widget .poll-question-header,.todo-widget .todo-task-list-title-header,.poll-widget .todo-task-list-title-header {
        font-size: 1.1em;
        font-weight: 600;
    }

.todo-widget li,.poll-widget li {
        display: flex;
        gap: 5px;
        align-items: baseline;
        list-style: none;
        margin: 0 0 5px;
    }

.todo-widget ul,.poll-widget ul {
        margin: 0 0 5px;
        padding: 0;
    }

.todo-widget input[type="text"],.poll-widget input[type="text"] {
        /* Reset from zulip.css */
        height: unset;
        border: 1px solid hsl(0deg 0% 80%);
        box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
        border-radius: 4px;
        color: var(--color-text-default);
    }

.todo-widget input[type="text"]:focus,.poll-widget input[type="text"]:focus {
            border-color: hsl(206deg 80% 62% / 80%);
            outline: 0;
            box-shadow: none;
            background-color: var(--color-background-widget-input);
            transition:
                border-color linear 0.2s,
                box-shadow linear 0.2s;
        }

.poll-widget .poll-option-bar {
        display: flex;
        /* Ensure controls remain visible on narrower screens. */
        flex-flow: row wrap;
        gap: 5px;
    }

.poll-widget .poll-option {
        font-weight: 400;
    }

.poll-widget .poll-option-label {
        display: flex;
        gap: 5px;
        align-items: baseline;
    }

.poll-widget .poll-option-text {
        font-weight: 600;
        /* Start with max-content, but allow options
           to shrink, so that voting names wrap comfortably. */
        flex: 0 1 max-content;
    }

.poll-widget .poll-vote {
        color: var(--color-poll-vote);
        border-color: var(--color-border-poll-vote);
        border-style: solid;
        font-weight: 600;
        border-radius: 3px;
        /* We don't want poll-vote tallies to spill
           digits onto second lines in narrow viewports. */
        flex-shrink: 0;
        min-width: 1.7857em; /* 25px at 14px / em */
        height: 1.7857em; /* 25px at 14px / em */
        font-size: 0.9285em; /* 13px at 14px / em */
        background-color: var(--color-background-widget-button);
    }

.poll-widget .poll-vote:hover {
            color: var(--color-poll-vote-hover);
            background-color: var(--color-background-poll-vote-hover);
            border-color: var(--color-border-poll-vote-hover);
        }

.poll-widget .poll-vote:focus {
            outline: 0;
            color: var(--color-poll-vote-focus);
            background-color: var(--color-background-poll-vote-focus);
            border-color: var(--color-border-poll-vote-focus);
        }

.poll-widget .poll-names {
        color: var(--color-poll-names);
        /* Aim for 50% of the flexbox for voting names,
           but also shrink modestly (.5) adjacent a long
           option. */
        flex: 1 0.5 50%;
    }

button.task {
        height: 20px;
        width: 20px;
        background-color: transparent;
        border-color: hsl(156deg 28% 70%);
        margin-right: 4px;
        border-radius: 3px;
    }

button.task:hover {
            border: 1px solid hsl(194deg 60% 40%);
        }

button.add-task,button.poll-option {
        color: hsl(156deg 41% 40%);
        border: 1px solid hsl(156deg 28% 70%);
        width: max-content;
        flex: 0 0 auto;
        border-radius: 3px;
        background-color: var(--color-background-widget-button);
        padding: 4px;
        padding-left: 14px;
        padding-right: 14px;
    }

button.add-task:hover,button.poll-option:hover,button.add-task:focus,button.poll-option:focus {
            outline: 0;
            border-color: hsl(156deg 30% 50%);
            transition: 0.2s ease;
            transition-property: background-color, border-color, color;
        }

button.add-task:active {
            transition: 0.2s ease;
            transition-property: background-color, border-color, color;
        }

button.poll-option:active {
            transition: 0.2s ease;
            transition-property: background-color, border-color, color;
        }

button.add-task:disabled {
            cursor: not-allowed;
            filter: saturate(0);
            background-color: var(--color-background-zulip-button-disabled);
            color: hsl(0deg 3% 52%);
        }

button.poll-option:disabled {
            cursor: not-allowed;
            filter: saturate(0);
            background-color: var(--color-background-zulip-button-disabled);
            color: hsl(0deg 3% 52%);
        }

input.add-task,input.add-desc,input.poll-option,input.poll-question,input.todo-task-list-title {
        flex: 1 0 auto;
        padding: 4px 6px;
    }

.widget-error {
    color: hsl(1deg 45% 50%);
    font-size: 0.8571em; /* 12px at 14px/em */
    display: flex;
    align-items: center;
}

.poll-question-check,
.poll-question-remove,
.todo-task-list-title-check,
.todo-task-list-title-remove {
    align-self: stretch;
    /* TODO: Re-express the 30.5px value here
       as part of information density work. */
    flex: 0 0 30.5px;
    min-height: 30.5px;
    border-radius: 3px;
    border: 1px solid var(--color-border-zulip-button);
    background-color: var(--color-background-zulip-button);
}

.poll-question-check:hover,.poll-question-remove:hover,.todo-task-list-title-check:hover,.todo-task-list-title-remove:hover {
        border-color: var(--color-border-zulip-button-interactive);
        background-color: var(--color-background-zulip-button-hover);
    }

.poll-edit-question,
.todo-edit-task-list-title {
    color: var(--color-message-action-visible);
}

.poll-edit-question:focus-visible {
        color: var(--color-message-action-interactive);
    }

.todo-edit-task-list-title:focus-visible {
        color: var(--color-message-action-interactive);
    }

.poll-edit-question:hover,.todo-edit-task-list-title:hover {
        color: var(--color-message-action-interactive);
    }

.poll-question-bar {
    flex: 1 1 auto;
    display: flex;
    /* Ensure controls remain visible on narrower screens. */
    flex-flow: row wrap;
    gap: 5px;
    /* Reserve space for the focus outline to prevent it from being cut off */
    margin-right: 2px;
    margin-bottom: var(--markdown-interelement-space-px);
}

.poll-widget-header-area,
.todo-widget-header-area {
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.current-user-vote {
    background-color: hsl(156deg 10% 90% / 90%);
}

.add-task-wrapper {
    display: inline;
    position: relative;
    z-index: 1;

    /* Unlike other browsers like Chrome, Microsoft Edge, etc.,
    Firefox does not automatically display the "not-allowed"
    cursor for disabled elements. The below css ensures that the
    correct cursor is shown across all browsers. */
}

.add-task-wrapper:hover {
        cursor: not-allowed;
    }

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/print.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
@media print {
    /* Hide unnecessary blocks. */
    #navbar_alerts_wrapper,
    #streamlist-toggle,
    #left-sidebar-container,
    #right-sidebar-container,
    .column-left,
    .top-messages-logo,
    #userlist-toggle,
    .message_length_controller,
    #loading_older_messages_indicator,
    #page_loading_indicator,
    #message_feed_errors_container,
    #bottom_whitespace,
    #mark_read_on_scroll_state_banner,
    #mark_read_on_scroll_state_banner_place_holder,
    .trailing_bookend,
    #compose {
        display: none;
    }

    /* Allow printer to set the margins, and
       prevent Safari from using screen-based ones. */
    .column-middle {
        margin: 0;
    }

    /* Prevent headers from running on every page. */
    #navbar-fixed-container,
    .message-feed .message_header {
        position: static;
    }

    /* Save a bit of paper by removing height, which
       otherwise creates a blank final page, and padding. */
    html,
    body {
        height: auto;
    }

    #message_feed_container {
        padding-top: 0;
    }

    /* Hide unnecessary controls, but leave them
       in the document flow. */
    .search_icon,
    #search_exit,
    .settings-dropdown-cog,
    .recipient_bar_controls {
        visibility: hidden;
    }

    /* Try to keep the message header with the messages
       that follow in interleaved views. */
    .message_header_stream {
        page-break-after: avoid;
        -moz-column-break-after: avoid;
             break-after: avoid;
    }

    /* Don't highlight the selected message. */
    .selected_message .messagebox-content {
        outline: 0;
    }
        .messagebox-content .message_edit_notice,.messagebox-content .message-time {
            /* Firefox seems to have a bug that fuzzes out
               small text with opacity; this unsets that
               value, and replaces with a matching gray. */
            opacity: unset;
            color: hsl(0deg 0% 0% / 48%);
        }

    /* Show collapsed content for printing. Note that
       CSS Grid does not yet break very intelligently
       in all browsers, so longer messages may sometimes
       appear at the top of new pages. */
    .message_content.collapsed,
    .message_content.condensed {
        max-height: unset !important;
        min-height: unset !important;
        overflow: auto !important;
        height: auto !important;
        -webkit-mask-image: none;
                mask-image: none;
    }

    /* Print links in the same color as text, with any
       likely full URL values in parentheses. */
    .message_content a {
        color: inherit;
    }

        .message_content a[href^="http"]::after {
            content: " (" attr(href) ")";
        }

    /* Ensure that emoji print. They are background-images,
       which ordinarily do not print, so these properties
       should ensure proper printing of inline, status, and
       other emoji. */
    .emoji {
        -webkit-print-color-adjust: exact;
                print-color-adjust: exact;
    }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/inbox.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.inbox-container {
    display: flex;
    flex-direction: column;
    background: var(--color-background-inbox);
    padding: 0;
    min-height: 100vh;
}

.inbox-container #inbox-pane {
        max-width: 100%;
        display: flex;
        flex-direction: column;
        margin: var(--navbar-fixed-height) 25px 0;
    }

.inbox-container #inbox-pane a {
            color: var(--color-text-message-header);
            -webkit-text-decoration: none;
            text-decoration: none;
        }

.inbox-container #inbox-pane .unread_count {
            opacity: 1;
            outline: 0 solid var(--color-background-unread-counter);
            transition: outline-width 0.1s ease;
        }

.inbox-container #inbox-pane .unread_count:hover {
                outline-width: 1.5px;
            }

.inbox-container #inbox-pane .search_group {
            position: sticky;
            top: var(--navbar-fixed-height);
            background: var(--color-background-inbox);
            display: flex;
            /* This padding-top value aligns the inbox filters
               with the filters in the left and right sidebars. */
            padding: 10px 0;
            z-index: 1;
        }

.inbox-container #inbox-pane .button-inbox-selected {
            background-color: var(--color-background-button-inbox-selected);
        }

.inbox-container #inbox-pane #inbox-filters .inbox-search-wrapper {
                flex-grow: 1;
                max-width: var(--width-inbox-search);
            }

.inbox-container #inbox-pane .inbox-empty-text {
            display: none;
        }

.inbox-container #inbox-pane #inbox-loading-indicator {
            margin-top: 20px;
            margin-bottom: var(--max-unmaximized-compose-height);
        }

.inbox-container #inbox-pane #inbox-loading-indicator .searching-for-more-topics {
                margin-left: 0;
            }

.inbox-container #inbox-pane #inbox-list {
            overflow: hidden;
            /* search box left border (1px) + search box right border (1px)
               + dropdown left border (1px) + dropdown right border (1px) = 4px at 16px em */
            max-width: calc(
                var(--width-inbox-search) +
                    var(--width-inbox-filters-dropdown) + 0.25em
            );
        }

.inbox-container #inbox-pane #inbox-list .inbox-channel-topic-list {
                margin: 0;
            }

.inbox-container #inbox-pane #inbox-list .inbox-focus-border {
                display: flex;
                min-height: 1.875em; /* 30px at 16px em */
                border: 2px solid transparent;
                border-radius: 3px;
                box-sizing: border-box;
                justify-content: space-between;
            }

.inbox-container #inbox-pane #inbox-list .inbox-header {
                -webkit-user-select: none;
                        user-select: none;
                display: block;
                height: 1.875em; /* 30px at 16px em */
            }

.inbox-container #inbox-pane #inbox-list .inbox-header .inbox-focus-border {
                    height: 1.875em; /* 30px at 16px em */
                }

.inbox-container #inbox-pane #inbox-list .inbox-header .inbox-left-part {
                    grid-template:
                        auto / minmax(auto, min-content)
                        auto min-content min-content;
                    grid-template-areas: "header_name collapse_button unread_mention_info unread_count";
                }

.inbox-container #inbox-pane #inbox-list .inbox-header .inbox-header-name {
                    grid-area: header_name;
                    display: flex;
                    align-items: center;
                    overflow: hidden;
                    outline: 0;
                    cursor: pointer;
                }

.inbox-container #inbox-pane #inbox-list .inbox-header .inbox-header-name .inbox-header-name-text {
                        margin: 0;
                        padding: 1px 0;
                        text-overflow: ellipsis;
                        overflow: hidden;
                        white-space: nowrap;
                        font-weight: 600;
                    }

.inbox-container #inbox-pane #inbox-list .inbox-header:focus {
                    outline: 0;
                }

.inbox-container #inbox-pane #inbox-list .inbox-header:hover .collapsible-button {
                        visibility: visible;
                    }

.inbox-container #inbox-pane #inbox-list .fa-lock {
                margin-right: 3px;
            }

.inbox-container #inbox-pane #inbox-list .stream-privacy.filter-icon {
                /* 0 5px at 16px/1em */
                padding: 0 0.3125em;
                margin: 0;
            }

.inbox-container #inbox-pane #inbox-list .zulip-icon-user {
                position: relative;
                top: -1px;
                margin-right: 4px;
            }

.inbox-container #inbox-pane #inbox-list .collapsible-button {
                grid-area: collapse_button;
            }

.inbox-container #inbox-pane #inbox-list .collapsible-button:hover {
                    cursor: pointer;
                }

.inbox-container #inbox-pane #inbox-list .collapsible-button .zulip-icon-chevron-down {
                    padding: 0.3125em 0.25em; /* 5px 4px at 16px em */
                    transform: rotate(180deg);
                }

.inbox-container #inbox-pane #inbox-list .user-circle {
                /* 8.5328px at 16px/1em */
                font-size: 0.5333em;
                /* TODO: Refactor inbox rows to use grid, to avoid the
                   min-width here that holds the other rows to similar
                   columns. */
                /* 16px at 8.5328px/1em */
                min-width: 1.8751em;
                top: 0;
                text-align: center;
            }

.inbox-container #inbox-pane #inbox-list .zulip-icon-bot,.inbox-container #inbox-pane #inbox-list .conversation-partners-icon {
                opacity: 0.7;
                /* Required to align DM fullnames in user circle icon */
                /* 2px at 16px / 1em */
                margin-left: 0.125em;
            }

.inbox-container #inbox-pane #inbox-list .user_block .zulip-icon {
                /* 0 5px at 16px/1em */
                padding: 0 0.3125em;
            }

.inbox-container #inbox-pane #inbox-list .user_block .zulip-icon.user-circle {
                    /* 5px at 16px / ~ 0.5em */
                    padding: 0 0.586em;
                }

.inbox-container #inbox-pane #inbox-list .inbox-row {
                -webkit-user-select: none;
                        user-select: none;
                display: block;
                background-color: var(--color-background-inbox-row);
            }

.inbox-container #inbox-pane #inbox-list .inbox-row:hover {
                    background: var(--color-background-inbox-row-hover);
                }

.inbox-container #inbox-pane #inbox-list .inbox-row .inbox-left-part {
                    grid-template:
                        auto / min-content minmax(0, 1fr)
                        min-content min-content;
                    grid-template-areas: "match_topic_and_dm_start recipient_info unread_mention_info unread_count";
                }

.inbox-container #inbox-pane #inbox-list .inbox-row .inbox-topic-container .user-circle {
                    grid-area: match_topic_and_dm_start;
                }

.inbox-container #inbox-pane #inbox-list .inbox-row .recipients_info,.inbox-container #inbox-pane #inbox-list .inbox-row .inbox-topic-name {
                    grid-area: recipient_info;
                }

.inbox-container #inbox-pane #inbox-list .channel-visibility-policy-indicator,.inbox-container #inbox-pane #inbox-list .visibility-policy-indicator {
                display: flex;
                align-items: center;
                border-radius: 3px;
                margin-left: 3px;
            }

.inbox-container #inbox-pane #inbox-list .unread-count-focus-outline {
                /* Because the inbox view font-size will
                   never be smaller than the em-equivalent
                   of 15px, we restate the base font-size
                   here so that unreads match others in
                   the UI at legacy size (14px). */
                font-size: var(--base-font-size-px);
                grid-area: unread_count;
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 3px;
                padding: 0 5px;
                /* Stretch to the row to keep unread
                   count from affecting overall row
                   size as test scales up. */
                align-self: stretch;
            }

.inbox-container #inbox-pane #inbox-list .unread_mention_info {
                grid-area: unread_mention_info;
                margin-right: 0;
            }

.inbox-container #inbox-pane #inbox-list .stream-privacy {
                display: flex;
                align-items: center;
                margin-right: 4px;
                margin-left: 17px;
            }

.inbox-container #inbox-pane #inbox-list .stream-privacy .zulip-icon {
                    line-height: 0.875em; /* 14px at 16px em */
                    height: 1em;
                    width: 1em;
                }

.inbox-container #inbox-pane #inbox-list .inbox-topic-name {
                /* 16px channel icon width + 10px padding */
                padding-left: 1.625em; /* 26x at 16px em */
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

.inbox-container #inbox-pane #inbox-list .inbox-topic-name a {
                    padding: 1px 0;
                    white-space: pre;
                }

.inbox-container #inbox-pane #inbox-list .inbox-left-part-wrapper {
                display: flex;
                width: 80%;
            }

/* Since a direct message row can have span to multiple lines,
                   having an underline focus will not work very well.
                */

.inbox-container #inbox-pane #inbox-list #inbox-direct-messages-container .inbox-row:focus-visible {
                    box-shadow: inset 0 0 0 2px var(--color-outline-focus);
                }

.inbox-container #inbox-pane #inbox-list .inbox-left-part {
                width: 100%;
                display: grid;
                align-items: center;
            }

.inbox-container #inbox-pane #inbox-list .inbox-left-part:hover {
                    cursor: pointer;
                }

.inbox-container #inbox-pane #inbox-list .inbox-left-part .inbox-group-or-bot-dm {
                    position: relative;
                    left: -3px;

                    /* We don't display status emoji in group DMs,
                       so prepare an ordinary inline layout... */
                }

.inbox-container #inbox-pane #inbox-list .inbox-left-part .inbox-group-or-bot-dm .user-status-microlayout {
                        display: inline;
                        white-space: collapse;
                    }

/* ...and hide the status emoji. */

.inbox-container #inbox-pane #inbox-list .inbox-left-part .inbox-group-or-bot-dm .status-emoji {
                        display: none;
                    }

.inbox-container #inbox-pane #inbox-list .inbox-left-part .recipients_info {
                    display: flex;
                    flex-wrap: wrap;
                    -moz-column-gap: 10px;
                         column-gap: 10px;
                    grid-area: recipient_info;
                }

.inbox-container #inbox-pane #inbox-list .inbox-left-part .recipients_info .user_block {
                        display: flex;
                        align-items: center;
                    }

.inbox-container #inbox-pane #inbox-collapsed-note {
            display: none;
            overflow: hidden;
            max-width: calc(
                var(--width-inbox-search) +
                    var(--width-inbox-filters-dropdown) + 0.25em
            );
        }

.inbox-container #inbox-pane #inbox-collapsed-note .inbox-collapsed-note-and-button-wrapper {
                margin-top: 3px;
                padding-left: 8px;
            }

.inbox-container #inbox-pane #inbox-collapsed-note .inbox-collapsed-note-and-button-wrapper .inbox-collpased-note-span {
                    font-size: 1em;
                }

.inbox-container #inbox-pane #inbox-collapsed-note .inbox-collapsed-note-and-button-wrapper #inbox-expand-all-button {
                    display: block;
                    margin-top: 5px;
                }

.inbox-container #inbox-pane .inbox-right-part-wrapper {
            flex-grow: 1;
        }

.inbox-container #inbox-pane .inbox-right-part-wrapper .inbox-right-part {
                display: flex;
                justify-content: space-between;
                flex-grow: 1;
            }

.inbox-container #inbox-pane .inbox-right-part-wrapper .inbox-right-part  > .inbox-action-button:first-child {
                    margin-left: auto;
                }

.inbox-container #inbox-pane .inbox-row:hover .inbox-row-visibility-policy-inherit,.inbox-container #inbox-pane .inbox-header:hover .inbox-row-visibility-policy-inherit,.inbox-container #inbox-pane .inbox-row:hover .inbox-action-button,.inbox-container #inbox-pane .inbox-header:hover .inbox-action-button {
                    opacity: 1;
                }

.inbox-container #inbox-pane .inbox-row-visibility-policy-inherit {
            opacity: 0;
        }

.inbox-container #inbox-pane .inbox-row-visibility-policy-inherit.visibility-policy-popover-visible {
                opacity: 1;
            }

.inbox-container #inbox-pane .inbox-action-button {
            display: flex;
            border-radius: 3px;
            outline: none;
            opacity: 0;
        }

.inbox-container #inbox-pane .inbox-action-button.hide {
                display: none;
            }

.inbox-container #inbox-pane .inbox-action-button i {
                padding: 0.3125em; /* 5px at 16px em */
                opacity: 0.3;
                color: var(--color-vdots-hover);
            }

.inbox-container #inbox-pane .inbox-action-button i:hover {
                    opacity: 1;
                    cursor: pointer;
                }

.inbox-container .inbox-header-stream-archived {
        color: var(--color-text-message-header-archived);
    }

#inbox-view {
    display: none;
    position: relative;
}

#inbox-view .inbox-folder {
        margin-bottom: 1px;
        background-color: transparent;
    }

#inbox-view .inbox-folder .inbox-header-name-text,#inbox-view .inbox-folder .unread_mention_info {
            color: var(--color-folder-header);
            opacity: 0.5;
        }

#inbox-view .inbox-folder .inbox-header-name-text {
            font-style: normal;
            font-weight: var(--font-weight-sidebar-heading);
            line-height: 112.5%;
            letter-spacing: var(--letter-spacing-sidebar-heading);
            text-transform: uppercase;
            outline: none;
            /* 16px at 16px / 1em */
            font-size: 1em;
            /* Align the folder title with the channel privacy icons; 5px at 16px/1em.

            TODO: Reduce the depth of selectors in this file,
            so that the use of !important becomes unnecessary
            here. */
            padding-left: 0.3125em !important;
        }

#inbox-view .inbox-folder:hover .inbox-header-name-text,#inbox-view .inbox-folder:hover .collapsible-button .zulip-icon,#inbox-view .inbox-folder:hover .unread_mention_info,#inbox-view .inbox-folder:hover .unread_count {
                opacity: 1;
            }

#inbox-view .hidden_by_filters {
        display: none !important;
    }

.inbox-container #inbox-pane #inbox-empty-without-search {
    margin-top: 70px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.inbox-empty-illustration {
    width: 54px;
    height: 54px;
    margin-bottom: 16px;
    background-color: var(--color-background-inbox-no-unreads-illustration);
    -webkit-mask: url(files/images/empty-view-illustrations/inbox-done.svg) no-repeat
        center;
            mask: url(files/images/empty-view-illustrations/inbox-done.svg) no-repeat
        center;
}

.inbox-empty-title {
    /* Matches the font-size used for .empty-list-message */
    font-size: 1.5em;
    color: var(--color-background-inbox-no-unreads-illustration);
}

.inbox-empty-action {
    font-size: 1.3em;
    padding-top: 0.5em;
}

.inbox-container #inbox-pane .inbox-empty-action-link {
    color: var(--color-text-url);
}

.inbox-container #inbox-pane .inbox-empty-action-link:hover {
        color: var(--color-text-url-hover);
    }

#inbox-filter_widget {
    margin-right: 0.3571em; /* 5px / 14px em */
    max-width: var(--width-inbox-filters-dropdown);
    border: 1px solid var(--color-border-inbox-search);
    background-color: var(--color-background-inbox-search);
    gap: 0.3571em; /* 5px / 14px em */
    /* 1.5px at 16px/1em and legacy 6px at 14px/1em. */
    padding: 0.0937em 0.4285em;
}

#inbox-filter_widget:hover {
        background-color: var(--color-background-inbox-search-hover);
        border: 1px solid var(--color-border-inbox-search-hover);
    }

#inbox-filter_widget:focus {
        outline: none;
    }

#recent-view-filter_widget .dropdown_widget_value,
#inbox-filter_widget .dropdown_widget_value {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    text-align: left;
}

#recent-view-filter_widget .zulip-icon-chevron-down,
#inbox-filter_widget .zulip-icon-chevron-down {
    color: var(--color-icons-inbox);
    opacity: 0.4;
}

.dropdown-list-item-common-styles .dropdown-list-text-selected {
    font-weight: 700;
}

.recent-view-filter-dropdown-list-container .dropdown-list-wrapper,
.inbox-filter-dropdown-list-container .dropdown-list-wrapper {
    /* We want these dropdowns to open to fit their
       contents, which differ based on the language
       in use. */
    width: 100%;
    /* We also don't want to set a min-width, again
       so that the content is in charge. This pushes
       back against more generic styles. */
    min-width: unset;
}

.recent-view-filter-dropdown-list-container
    .dropdown-list
    .dropdown-list-item-common-styles,
.inbox-filter-dropdown-list-container
    .dropdown-list
    .dropdown-list-item-common-styles {
    /* Parallel to the `width: 100%` set on
       .dropdown-list-wrapper above, we set
       min-width here to max-content so that
       the box opens to accommodate different
       lengths of text--and to ensure that
       hovered/selectable areas look correct. */
    min-width: max-content;
    padding: 5px 10px;
    display: flex;
    flex-direction: column;
    /* For columnar flex items, we need
       to make set alignment to the start
       of the flex container. This pushes
       back against non-columnar flexboxes
       that require centered alignment. */
    align-items: flex-start;
}

.recent-view-filter-dropdown-list-container .dropdown-list-item-name,
.inbox-filter-dropdown-list-container .dropdown-list-item-name {
    white-space: nowrap;
    font-weight: 500;
    padding: 0;
    margin: 0;
    text-overflow: ellipsis;
    overflow: hidden;
}

.recent-view-filter-dropdown-list-container .dropdown-list-item-description,
.inbox-filter-dropdown-list-container .dropdown-list-item-description {
    white-space: nowrap;
    font-weight: 400;
    font-size: 0.9285em; /* 13px at 14px em */
    opacity: 0.8;
    padding: 0;
    text-overflow: ellipsis;
    overflow: hidden;
}

.inbox-container #inbox-pane .inbox-folder .unread_count {
    transition: none;
    cursor: default;
}

.inbox-container #inbox-pane .inbox-folder .unread_count:hover {
        outline: 0;
    }

.inbox-container #inbox-pane .inbox-folder:not(#inbox-dm-header) .unread_count {
    display: none;
}

#inbox-pane #inbox-list .collapsible-button {
    visibility: hidden;
}

#inbox-pane #inbox-list .inbox-collapsed-state .collapsible-button {
    visibility: visible;
}

#inbox-pane #inbox-list .inbox-collapsed-state .collapsible-button .zulip-icon-chevron-down {
        transform: rotate(0deg);
    }

.folder-row-chevron {
    color: var(--color-folder-header);
}

.channel-row-chevron {
    color: var(--color-inbox-row-chevron);
}

.inbox-collapsed-state .folder-row-chevron,.inbox-collapsed-state .channel-row-chevron {
        opacity: 0.5;
    }

.inbox-container #inbox-pane .inbox-folder .unread_mention_info {
    display: none;
}

.inbox-container
    #inbox-pane
    .inbox-folder.inbox-collapsed-state
    .unread_mention_info,
.inbox-container
    #inbox-pane
    .inbox-folder.inbox-collapsed-state:not(#inbox-dm-header)
    .unread_count {
    display: inline;
}

.inbox-folder-components {
    border-radius: 5px;
    border: 0.5px solid hsl(0deg 0% 0% / 13%);
    overflow: hidden;
}

.inbox-folder-components:has(.inbox-row:not(.hidden_by_filters)),.inbox-folder-components:has(.inbox-header:not(.hidden_by_filters)) {
        margin-bottom: 0.5em;
    }

.inbox-folder.inbox-collapsed-state  + .inbox-folder-components,.inbox-folder.hidden_by_filters  + .inbox-folder-components {
        border: 0;
    }

#inbox-pane #inbox-list .inbox-collapsed-state  + .inbox-folder-components,#inbox-pane #inbox-list .inbox-collapsed-state  + .inbox-topic-container {
        display: none;
    }

#inbox-pane
    #inbox-list
    .inbox-streams-container
    .inbox-header
    .inbox-header-name {
    /* 5px at 16px / 1em */
    padding: 1px 0.3125em 1px 0;
}

/* Remove default focus outline from elements. */

#inbox-view.no-visible-focus-outlines .inbox-container #inbox-pane [tabindex="0"]:focus-visible {
        outline: 0;
    }

/* Only show focus outlines when user uses keyboard. */

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane #inbox-filter_widget:focus-visible {
            outline: 2px solid var(--color-outline-focus);
        }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible .inbox-focus-border {
                border-color: var(--color-outline-focus);
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible .collapsible-button > .zulip-icon {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible .collapsible-button {
                visibility: visible;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-visible .inbox-focus-border {
                border: 2px solid var(--color-outline-focus);
                border-radius: 3px;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-visible {

            outline: 0;
            padding: 0;
        }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .channel-visibility-policy-indicator:focus-visible {
            outline: 2px solid var(--color-outline-focus);
        }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .visibility-policy-indicator:focus-visible {
            outline: 2px solid var(--color-outline-focus);
        }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-action-button:focus-visible {
            box-shadow: 0 0 0 2px var(--color-outline-focus);
        }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .unread-count-focus-outline:focus-visible {
            outline: 2px solid var(--color-outline-focus);
        }

/* Don't show the icons unless user is visibly focused
            on the element or one of the elements within it. */

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-within:not(:focus) .channel-visibility-policy-indicator {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-within:not(:focus) .channel-visibility-policy-indicator {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-visible:not(.does-not-exist) .channel-visibility-policy-indicator {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible:not(.does-not-exist) .channel-visibility-policy-indicator {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-within:not(:focus) .inbox-row-visibility-policy-inherit {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-within:not(:focus) .inbox-row-visibility-policy-inherit {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-visible:not(.does-not-exist) .inbox-row-visibility-policy-inherit {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible:not(.does-not-exist) .inbox-row-visibility-policy-inherit {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-within:not(:focus) .inbox-action-button {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-within:not(:focus) .inbox-action-button {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-row:focus-visible:not(.does-not-exist) .inbox-action-button {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-header:focus-visible:not(.does-not-exist) .inbox-action-button {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible .inbox-header-name-text {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible .collapsible-button .zulip-icon {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible .unread_mention_info {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible .unread_count {
                opacity: 1;
            }

#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible {

            --csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-background-hover-popover-menu);

            background: var(--csstools-light-dark-toggle--0, transparent);
        }

@supports (color: light-dark(red, red)) {
#inbox-view:not(.no-visible-focus-outlines) .inbox-container #inbox-pane .inbox-folder:focus-visible {

            background: light-dark(
                transparent,
                var(--color-background-hover-popover-menu)
            );
        }
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!../node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_typescript@5.9.3_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./styles/color_picker.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.color-swatch-list {
    display: grid;
    grid-template-columns: repeat(6, var(--size-color-swatch));
    gap: var(--grid-gap-color-swatch);
    place-items: center;
    padding: var(--padding-color-swatch-list);
}

.color-swatch-input {
    display: none;
}

.color-swatch-input:checked + .color-swatch-label {
    outline: 2px solid var(--color-outline-focus);
    outline-offset: 1px;
}

.color-swatch-label {
    width: var(--size-color-swatch);
    height: var(--size-color-swatch);
    border-radius: 50%;
    cursor: pointer;
}

.color-swatch-label:focus-visible {
        outline: 2px solid var(--color-outline-focus);
        outline-offset: 1px;
    }

.custom-color-picker {
    position: relative;
}

.color-picker-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100% !important;
    visibility: hidden;
}

.custom-color-swatch-icon {
    border-radius: 50%;
    background: var(--gradient-custom-swatch);
}

.color-picker-popover .message-header-contents {
    border: none;
}

.color_picker_confirm_button {
    height: 100%;
}

.color_picker_confirm_button:focus-visible {
        outline: 1px solid var(--color-outline-focus);
        outline-offset: -2px;
    }


/*# sourceMappingURL=app.css.map*/